Page MenuHomec4science

No OneTemporary

File Metadata

Created
Tue, Jul 16, 12:30
This file is larger than 256 KB, so syntax highlighting was skipped.
This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/doc/Eqs/box.jpg b/doc/Eqs/box.jpg
index 712d49cdd..df1c2bfce 100644
Binary files a/doc/Eqs/box.jpg and b/doc/Eqs/box.jpg differ
diff --git a/doc/Eqs/box_inverse.jpg b/doc/Eqs/box_inverse.jpg
index dabcfb7b5..1815bba23 100644
Binary files a/doc/Eqs/box_inverse.jpg and b/doc/Eqs/box_inverse.jpg differ
diff --git a/doc/Section_accelerate.html b/doc/Section_accelerate.html
index 4541dc170..345bd7af0 100644
--- a/doc/Section_accelerate.html
+++ b/doc/Section_accelerate.html
@@ -1,259 +1,446 @@
<HTML>
<CENTER><A HREF = "Section_python.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_errors.html">Next Section</A>
</CENTER>
<HR>
<H3>10. Using accelerated CPU and GPU styles
</H3>
<P>NOTE: These doc pages are still incomplete as of 1Jun11.
</P>
<P>NOTE: The USER-CUDA package discussed below has not yet been
officially released in LAMMPS.
</P>
<P>Accelerated versions of various <A HREF = "pair_style.html">pair_style</A>,
<A HREF = "fix.html">fixes</A>, <A HREF = "compute.html">computes</A>, and other commands have
been added to LAMMPS, which will typically run faster than the
standard non-accelerated versions, if you have the appropriate
hardware on your system.
</P>
<P>The accelerated styles have the same name as the standard styles,
except that a suffix is appended. Otherwise, the syntax for the
command is identical, their functionality is the same, and the
numerical results it produces should also be identical, except for
precision and round-off issues.
</P>
<P>For example, all of these variants of the basic Lennard-Jones pair
style exist in LAMMPS:
</P>
<UL><LI><A HREF = "pair_lj.html">pair_style lj/cut</A>
<LI><A HREF = "pair_lj.html">pair_style lj/cut/opt</A>
<LI><A HREF = "pair_lj.html">pair_style lj/cut/gpu</A>
<LI><A HREF = "pair_lj.html">pair_style lj/cut/cuda</A>
</UL>
<P>Assuming you have built LAMMPS with the appropriate package, these
styles can be invoked by specifying them explicitly in your input
script. Or you can use the <A HREF = "Section_start.html#2_6">-suffix command-line
switch</A> to invoke the accelerated versions
automatically, without changing your input script. The
<A HREF = "suffix.html">suffix</A> command also allows you to set a suffix and to
turn off/on the comand-line switch setting within your input script.
</P>
<P>Styles with an "opt" suffix are part of the OPT package and typically
speed-up the pairwise calculations of your simulation by 5-25%.
</P>
<P>Styles with a "gpu" or "cuda" suffix are part of the GPU or USER-CUDA
packages, and can be run on NVIDIA GPUs associated with your CPUs.
The speed-up due to GPU usage depends on a variety of factors, as
discussed below.
</P>
<P>To see what styles are currently available in each of the accelerated
packages, see <A HREF = "Section_commands.html#3_5">this section</A> of the manual.
A list of accelerated styles is included in the pair, fix, compute,
and kspace sections.
</P>
<P>The following sections explain:
</P>
<UL><LI>what hardware and software the accelerated styles require
<LI>how to install the accelerated packages
<LI>what kind of problems they run best on
<LI>guidelines for how to use them to best advantage
<LI>the kinds of speed-ups you can expect
</UL>
<P>The final section compares and contrasts the GPU and USER-CUDA
packages, since they are both designed to use NVIDIA GPU hardware.
</P>
10.1 <A HREF = "#10_1">OPT package</A><BR>
10.2 <A HREF = "#10_2">GPU package</A><BR>
10.3 <A HREF = "#10_3">USER-CUDA package</A><BR>
10.4 <A HREF = "#10_4">Comparison of GPU and USER-CUDA packages</A> <BR>
<HR>
<HR>
<H4><A NAME = "10_1"></A>10.1 OPT package
</H4>
<P>The OPT package was developed by James Fischer (High Performance
Technologies), David Richie and Vincent Natoli (Stone Ridge
Technologies). It contains a handful of pair styles whose compute()
methods were rewritten in C++ templated form to reduce the overhead
due to if tests and other conditional code.
</P>
<P>The procedure for building LAMMPS with the OPT package is simple. It
is the same as for any other package which has no additional library
dependencies:
</P>
<PRE>make yes-opt
make machine
</PRE>
<P>If your input script uses one of the OPT pair styles,
you can run it as follows:
</P>
<PRE>lmp_machine -sf opt < in.script
mpirun -np 4 lmp_machine -sf opt < in.script
</PRE>
<P>You should see a reduction in the "Pair time" printed out at the end
of the run. On most machines and problems, this will typically be a 5
to 20% savings.
</P>
<HR>
<H4><A NAME = "10_2"></A>10.2 GPU package
</H4>
+<P>The GPU package was developed by Mike Brown at ORNL.
+</P>
<P>Additional requirements in your input script to run the styles with a
<I>gpu</I> suffix are as follows:
</P>
<P>The <A HREF = "newton.html">newton pair</A> setting must be <I>off</I> and the <A HREF = "fix_gpu.html">fix
gpu</A> command must be used. The fix controls the GPU
selection and initialization steps.
</P>
-<P>The GPU package was developed by Mike Brown at ORNL.
-</P>
<P>A few LAMMPS <A HREF = "pair_style.html">pair styles</A> can be run on graphical
processing units (GPUs). We plan to add more over time. Currently,
they only support NVIDIA GPU cards. To use them you need to install
certain NVIDIA CUDA software on your system:
</P>
<UL><LI>Check if you have an NVIDIA card: cat /proc/driver/nvidia/cards/0 Go
<LI>to http://www.nvidia.com/object/cuda_get.html Install a driver and
<LI>toolkit appropriate for your system (SDK is not necessary) Follow the
<LI>instructions in README in lammps/lib/gpu to build the library Run
<LI>lammps/lib/gpu/nvc_get_devices to list supported devices and
<LI>properties
</UL>
<H4>GPU configuration
</H4>
<P>When using GPUs, you are restricted to one physical GPU per LAMMPS
-process. Multiple processes can share a single GPU and in many cases
+process. Multiple processes can share a single GPU and in many cases
it will be more efficient to run with multiple processes per GPU. Any
GPU accelerated style requires that <A HREF = "fix_gpu.html">fix gpu</A> be used in
the input script to select and initialize the GPUs. The format for the
fix is:
</P>
<PRE>fix <I>name</I> all gpu <I>mode</I> <I>first</I> <I>last</I> <I>split</I>
</PRE>
<P>where <I>name</I> is the name for the fix. The gpu fix must be the first
fix specified for a given run, otherwise the program will exit with an
error. The gpu fix will not have any effect on runs that do not use
GPU acceleration; there should be no problem with specifying the fix
first in any input script.
</P>
<P><I>mode</I> can be either "force" or "force/neigh". In the former, neighbor
list calculation is performed on the CPU using the standard LAMMPS
routines. In the latter, the neighbor list calculation is performed on
the GPU. The GPU neighbor list can be used for better performance,
however, it cannot not be used with a triclinic box or with
<A HREF = "pair_hybrid.html">hybrid</A> pair styles.
</P>
<P>There are cases when it might be more efficient to select the CPU for
neighbor list builds. If a non-GPU enabled style requires a neighbor
list, it will also be built using CPU routines. Redundant CPU and GPU
neighbor list calculations will typically be less efficient.
</P>
<P><I>first</I> is the ID (as reported by lammps/lib/gpu/nvc_get_devices) of
the first GPU that will be used on each node. <I>last</I> is the ID of the
last GPU that will be used on each node. If you have only one GPU per
node, <I>first</I> and <I>last</I> will typically both be 0. Selecting a
non-sequential set of GPU IDs (e.g. 0,1,3) is not currently supported.
</P>
<P><I>split</I> is the fraction of particles whose forces, torques, energies,
and/or virials will be calculated on the GPU. This can be used to
perform CPU and GPU force calculations simultaneously. If <I>split</I> is
negative, the software will attempt to calculate the optimal fraction
automatically every 25 timesteps based on CPU and GPU timings. Because
the GPU speedups are dependent on the number of particles, automatic
calculation of the split can be less efficient, but typically results
in loop times within 20% of an optimal fixed split.
</P>
<P>If you have two GPUs per node, 8 CPU cores per node, and would like to
run on 4 nodes with dynamic balancing of force calculation across CPU
and GPU cores, the fix might be
</P>
<PRE>fix 0 all gpu force/neigh 0 1 -1
</PRE>
<P>with LAMMPS run on 32 processes. In this case, all CPU cores and GPU
devices on the nodes would be utilized. Each GPU device would be
shared by 4 CPU cores. The CPU cores would perform force calculations
for some fraction of the particles at the same time the GPUs performed
force calculation for the other particles.
</P>
<P>Because of the large number of cores on each GPU device, it might be
more efficient to run on fewer processes per GPU when the number of
particles per process is small (100's of particles); this can be
necessary to keep the GPU cores busy.
</P>
<H4>GPU input script
</H4>
<P>In order to use GPU acceleration in LAMMPS, <A HREF = "fix_gpu.html">fix_gpu</A>
should be used in order to initialize and configure the GPUs for
use. Additionally, GPU enabled styles must be selected in the input
script. Currently, this is limited to a few <A HREF = "pair_style.html">pair
styles</A> and PPPM. Some GPU-enabled styles have
additional restrictions listed in their documentation.
</P>
<H4>GPU asynchronous pair computation
</H4>
<P>The GPU accelerated pair styles can be used to perform pair style
force calculation on the GPU while other calculations are performed on
the CPU. One method to do this is to specify a <I>split</I> in the gpu fix
as described above. In this case, force calculation for the pair
style will also be performed on the CPU.
</P>
<P>When the CPU work in a GPU pair style has finished, the next force
computation will begin, possibly before the GPU has finished. If
<I>split</I> is 1.0 in the gpu fix, the next force computation will begin
almost immediately. This can be used to run a
<A HREF = "pair_hybrid.html">hybrid</A> GPU pair style at the same time as a hybrid
CPU pair style. In this case, the GPU pair style should be first in
the hybrid command in order to perform simultaneous calculations. This
also allows <A HREF = "bond_style.html">bond</A>, <A HREF = "angle_style.html">angle</A>,
<A HREF = "dihedral_style.html">dihedral</A>, <A HREF = "improper_style.html">improper</A>, and
<A HREF = "kspace_style.html">long-range</A> force computations to be run
simultaneously with the GPU pair style. Once all CPU force
computations have completed, the gpu fix will block until the GPU has
finished all work before continuing the run.
</P>
<H4>GPU timing
</H4>
<P>GPU accelerated pair styles can perform computations asynchronously
with CPU computations. The "Pair" time reported by LAMMPS will be the
maximum of the time required to complete the CPU pair style
computations and the time required to complete the GPU pair style
computations. Any time spent for GPU-enabled pair styles for
computations that run simultaneously with <A HREF = "bond_style.html">bond</A>,
<A HREF = "angle_style.html">angle</A>, <A HREF = "dihedral_style.html">dihedral</A>,
<A HREF = "improper_style.html">improper</A>, and <A HREF = "kspace_style.html">long-range</A>
calculations will not be included in the "Pair" time.
</P>
<P>When <I>mode</I> for the gpu fix is force/neigh, the time for neighbor list
calculations on the GPU will be added into the "Pair" time, not the
"Neigh" time. A breakdown of the times required for various tasks on
the GPU (data copy, neighbor calculations, force computations, etc.)
are output only with the LAMMPS screen output at the end of each
run. These timings represent total time spent on the GPU for each
routine, regardless of asynchronous CPU calculations.
</P>
<H4>GPU single vs double precision
</H4>
<P>See the lammps/lib/gpu/README file for instructions on how to build
the LAMMPS gpu library for single, mixed, and double precision. The
latter requires that your GPU card supports double precision.
</P>
<HR>
<H4><A NAME = "10_3"></A>10.3 USER-CUDA package
</H4>
<P>The USER-CUDA package was developed by Christian Trott at U Technology
Ilmenau in Germany.
</P>
+<P>This package will only be of any use to you, if you have an NVIDIA(tm)
+graphics card being CUDA(tm) enabled. Your GPU needs to support
+Compute Capability 1.3. This list may help
+you to find out the Compute Capability of your card:
+</P>
+<P>http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units
+</P>
+<P>Install the Nvidia Cuda Toolkit in version 3.2 or higher and the
+corresponding GPU drivers. The Nvidia Cuda SDK is not required for
+LAMMPSCUDA but we recommend to install it and
+</P>
+<P>make sure that the sample projects can be compiled without problems.
+</P>
+<P>You should also be able to compile LAMMPS by typing
+</P>
+<P><I>make YourMachine</I>
+</P>
+<P>inside the src directory of LAMMPS root path. If not, you should
+consult the LAMMPS documentation.
+</P>
+<H4>Compilation
+</H4>
+<P>If your <I>CUDA</I> toolkit is not installed in the default directoy
+<I>/usr/local/cuda</I> edit the file <I>lib/cuda/Makefile.common</I>
+accordingly.
+</P>
+<P>Go to <I>lib/cuda/</I> and type
+</P>
+<P><I>make OPTIONS</I>
+</P>
+<P>where <I>OPTIONS</I> are one or more of the following:
+</P>
+<UL><LI><I>precision = 2</I> set precision level: 1 .. single precision, 2
+.. double precision, 3 .. positions in double precision, 4
+.. positions and velocities in double precision
+
+<LI><I>arch = 20</I> set GPU compute capability: 20 .. CC2.0 (GF100/110
+e.g. C2050,GTX580,GTX470), 21 .. CC2.1 (GF104/114 e.g. GTX560, GTX460,
+GTX450), 13 .. CC1.3 (GF200 e.g. C1060, GTX285)
+
+<LI><I>prec_timer = 1</I> do not use precision timers if set to 0. This is
+usually only usefull for compiling on Mac machines.
+
+<LI><I>dbg = 0</I> activate debug mode when setting to 1. Only usefull for
+developers.
+
+<LI><I>cufft = 1</I> set CUDA FFT library. Can currently only be used to not
+compile with cufft support (set to 0). In the future other CUDA
+enabled FFT libraries might be supported.
+</UL>
+<P>The settings will be written to the <I>lib/cuda/Makefile.defaults</I>. When
+compiling with <I>make</I> only those settings will be used.
+</P>
+<P>Go to <I>src</I>, install the USER-CUDA package with <I>make yes-USER-CUDA</I>
+and compile the binary with <I>make YourMachine</I>. You might need to
+delete old object files if you compiled without the USER-CUDA package
+before, using the same Machine file (<I>rm Obj_YourMachine/*</I>).
+</P>
+<P>CUDA versions of classes are only installed if the corresponding CPU
+versions are installed as well. E.g. you need to install the KSPACE
+package to use <I>pppm/cuda</I>.
+</P>
+<H4>Usage
+</H4>
+<P>In order to make use of the GPU acceleration provided by the USER-CUDA
+package, you only have to add
+</P>
+<P><I>accelerator cuda</I>
+</P>
+<P>at the top of your input script. See the <A HREF = "accelerator.html">accelerator</A> command for details of additional options.
+</P>
+<P>When compiling with USER-CUDA support the <A HREF = "Section_start.html#2_6">-accelerator command-line
+switch</A> is effectively set to "cuda" by default
+and does not have to be given.
+</P>
+<P>If you want to run simulations without using the "cuda" styles with
+the same binary, you need to turn it explicitely off by giving "-a
+none", "-a opt" or "-a gpu" as a command-
+</P>
+<P>line argument.
+</P>
+<P>The kspace style <I>pppm/cuda</I> has to be requested explicitely.
+</P>
<HR>
<H4><A NAME = "10_4"></A>10.4 Comparison of GPU and USER-CUDA packages
</H4>
+<P>The USER-CUDA package is an alternative package for GPU acceleration
+that runs as much of the simulation as possible on the GPU. Depending on
+the simulation, this can provide a significant speedup when the number
+of atoms per GPU is large.
+</P>
+<P>The styles available for GPU acceleration
+will be different in each package.
+</P>
+<P>The main difference between the "GPU" and the "USER-CUDA" package is
+that while the latter aims at calculating everything on the device the
+GPU package uses it as an accelerator for the pair force, neighbor
+list and pppm calculations only. As a consequence in different
+scenarios either package can be faster. Generally the GPU package is
+faster than the USER-CUDA package, if the number of atoms per device
+is small. Also the GPU package profits from oversubscribing
+devices. Hence one usually wants to launch two (or more) MPI processes
+per device.
+</P>
+<P>The exact crossover where the USER-CUDA package becomes faster depends
+strongly on the pair-style. For example for a simple Lennard Jones
+system the crossover (in single precision) can often be found between
+50,000 - 100,000 atoms per device. When performing double precision
+calculations this threshold can be significantly smaller. As a result
+the GPU package can show better "strong scaling" behaviour in
+comparison with the USER-CUDA package as long as this limit of atoms
+per GPU is not reached.
+</P>
+<P>Another scenario where the GPU package can be faster is, when a lot of
+bonded interactions are calculated. Those are handled by both packages
+by the host while the device simultaniously calculates the
+pair-forces. Since, when using the GPU package, one launches several
+MPI processes per device, this work is spread over more CPU cores as
+compared to running the same simulation with the USER-CUDA package.
+</P>
+<P>As a side note: the GPU package performance depends to some extent on
+optimal bandwidth between host and device. Hence its performance is
+affected if no full 16 PCIe lanes are available for each device. In
+HPC environments this can be the case if S2050/70 servers are used,
+where two devices generally share one PCIe 2.0 16x slot. Also many
+multi GPU mainboards do not provide full 16 lanes to each of the PCIe
+2.0 16x slots.
+</P>
+<P>While the GPU package uses considerable more device memory than the
+USER-CUDA package, this is generally not much of a problem. Typically
+run times are larger than desired, before the memory is exhausted.
+</P>
+<P>Currently the USER-CUDA package supports a wider range of
+force-fields. On the other hand its performance is considerably
+reduced if one has to use a fix at every timestep, which is not yet
+available as a "CUDA"-accelerated version.
+</P>
+<P>In the end for each simulations its best to just try both packages and
+see which one is performing better in the particular situation.
+</P>
+<H4>Benchmark
+</H4>
+<P>In the following 4 benchmark systems which are supported by both the
+GPu and the CUDA package are shown:
+</P>
+<P>1. Lennard Jones, 2.5A
+256,000 atoms
+2.5 A cutoff
+0.844 density
+</P>
+<P>2. Lennard Jones, 5.0A
+256,000 atoms
+5.0 A cutoff
+0.844 density
+</P>
+<P>3. Rhodopsin model
+256,000 atoms
+10A cutoff
+Coulomb via PPPM
+</P>
+<P>4. Lihtium-Phosphate
+295650 atoms
+15A cutoff
+Coulomb via PPPM
+</P>
+<P>Hardware:
+Workstation:
+2x GTX470
+i7 950@3GHz
+24Gb DDR3 @ 1066Mhz
+CentOS 5.5
+CUDA 3.2
+Driver 260.19.12
+</P>
+<P>eStella:
+6 Nodes
+2xC2050
+2xQDR Infiniband interconnect(aggregate bandwidth 80GBps)
+Intel X5650 HexCore @ 2.67GHz
+SL 5.5
+CUDA 3.2
+Driver 260.19.26
+</P>
+<P>Keeneland:
+HP SL-390 (Ariston) cluster
+120 nodes
+2x Intel Westmere hex-core CPUs
+3xC2070s
+QDR InfiniBand interconnec
+</P>
</HTML>
diff --git a/doc/Section_accelerate.txt b/doc/Section_accelerate.txt
index 3ff91a6a4..498e7d559 100644
--- a/doc/Section_accelerate.txt
+++ b/doc/Section_accelerate.txt
@@ -1,255 +1,442 @@
"Previous Section"_Section_python.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_errors.html :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
10. Using accelerated CPU and GPU styles :h3
NOTE: These doc pages are still incomplete as of 1Jun11.
NOTE: The USER-CUDA package discussed below has not yet been
officially released in LAMMPS.
Accelerated versions of various "pair_style"_pair_style.html,
"fixes"_fix.html, "computes"_compute.html, and other commands have
been added to LAMMPS, which will typically run faster than the
standard non-accelerated versions, if you have the appropriate
hardware on your system.
The accelerated styles have the same name as the standard styles,
except that a suffix is appended. Otherwise, the syntax for the
command is identical, their functionality is the same, and the
numerical results it produces should also be identical, except for
precision and round-off issues.
For example, all of these variants of the basic Lennard-Jones pair
style exist in LAMMPS:
"pair_style lj/cut"_pair_lj.html
"pair_style lj/cut/opt"_pair_lj.html
"pair_style lj/cut/gpu"_pair_lj.html
"pair_style lj/cut/cuda"_pair_lj.html :ul
Assuming you have built LAMMPS with the appropriate package, these
styles can be invoked by specifying them explicitly in your input
script. Or you can use the "-suffix command-line
switch"_Section_start.html#2_6 to invoke the accelerated versions
automatically, without changing your input script. The
"suffix"_suffix.html command also allows you to set a suffix and to
turn off/on the comand-line switch setting within your input script.
Styles with an "opt" suffix are part of the OPT package and typically
speed-up the pairwise calculations of your simulation by 5-25%.
Styles with a "gpu" or "cuda" suffix are part of the GPU or USER-CUDA
packages, and can be run on NVIDIA GPUs associated with your CPUs.
The speed-up due to GPU usage depends on a variety of factors, as
discussed below.
To see what styles are currently available in each of the accelerated
packages, see "this section"_Section_commands.html#3_5 of the manual.
A list of accelerated styles is included in the pair, fix, compute,
and kspace sections.
The following sections explain:
what hardware and software the accelerated styles require
how to install the accelerated packages
what kind of problems they run best on
guidelines for how to use them to best advantage
the kinds of speed-ups you can expect :ul
The final section compares and contrasts the GPU and USER-CUDA
packages, since they are both designed to use NVIDIA GPU hardware.
10.1 "OPT package"_#10_1
10.2 "GPU package"_#10_2
10.3 "USER-CUDA package"_#10_3
10.4 "Comparison of GPU and USER-CUDA packages"_#10_4 :all(b)
:line
:line
10.1 OPT package :h4,link(10_1)
The OPT package was developed by James Fischer (High Performance
Technologies), David Richie and Vincent Natoli (Stone Ridge
Technologies). It contains a handful of pair styles whose compute()
methods were rewritten in C++ templated form to reduce the overhead
due to if tests and other conditional code.
The procedure for building LAMMPS with the OPT package is simple. It
is the same as for any other package which has no additional library
dependencies:
make yes-opt
make machine :pre
If your input script uses one of the OPT pair styles,
you can run it as follows:
lmp_machine -sf opt < in.script
mpirun -np 4 lmp_machine -sf opt < in.script :pre
You should see a reduction in the "Pair time" printed out at the end
of the run. On most machines and problems, this will typically be a 5
to 20% savings.
:line
10.2 GPU package :h4,link(10_2)
+The GPU package was developed by Mike Brown at ORNL.
+
Additional requirements in your input script to run the styles with a
{gpu} suffix are as follows:
The "newton pair"_newton.html setting must be {off} and the "fix
gpu"_fix_gpu.html command must be used. The fix controls the GPU
selection and initialization steps.
-
-
-The GPU package was developed by Mike Brown at ORNL.
-
A few LAMMPS "pair styles"_pair_style.html can be run on graphical
processing units (GPUs). We plan to add more over time. Currently,
they only support NVIDIA GPU cards. To use them you need to install
certain NVIDIA CUDA software on your system:
Check if you have an NVIDIA card: cat /proc/driver/nvidia/cards/0 Go
to http://www.nvidia.com/object/cuda_get.html Install a driver and
toolkit appropriate for your system (SDK is not necessary) Follow the
instructions in README in lammps/lib/gpu to build the library Run
lammps/lib/gpu/nvc_get_devices to list supported devices and
properties :ul
GPU configuration :h4
When using GPUs, you are restricted to one physical GPU per LAMMPS
-process. Multiple processes can share a single GPU and in many cases
+process. Multiple processes can share a single GPU and in many cases
it will be more efficient to run with multiple processes per GPU. Any
GPU accelerated style requires that "fix gpu"_fix_gpu.html be used in
the input script to select and initialize the GPUs. The format for the
fix is:
fix {name} all gpu {mode} {first} {last} {split} :pre
where {name} is the name for the fix. The gpu fix must be the first
fix specified for a given run, otherwise the program will exit with an
error. The gpu fix will not have any effect on runs that do not use
GPU acceleration; there should be no problem with specifying the fix
first in any input script.
{mode} can be either "force" or "force/neigh". In the former, neighbor
list calculation is performed on the CPU using the standard LAMMPS
routines. In the latter, the neighbor list calculation is performed on
the GPU. The GPU neighbor list can be used for better performance,
however, it cannot not be used with a triclinic box or with
"hybrid"_pair_hybrid.html pair styles.
There are cases when it might be more efficient to select the CPU for
neighbor list builds. If a non-GPU enabled style requires a neighbor
list, it will also be built using CPU routines. Redundant CPU and GPU
neighbor list calculations will typically be less efficient.
{first} is the ID (as reported by lammps/lib/gpu/nvc_get_devices) of
the first GPU that will be used on each node. {last} is the ID of the
last GPU that will be used on each node. If you have only one GPU per
node, {first} and {last} will typically both be 0. Selecting a
non-sequential set of GPU IDs (e.g. 0,1,3) is not currently supported.
{split} is the fraction of particles whose forces, torques, energies,
and/or virials will be calculated on the GPU. This can be used to
perform CPU and GPU force calculations simultaneously. If {split} is
negative, the software will attempt to calculate the optimal fraction
automatically every 25 timesteps based on CPU and GPU timings. Because
the GPU speedups are dependent on the number of particles, automatic
calculation of the split can be less efficient, but typically results
in loop times within 20% of an optimal fixed split.
If you have two GPUs per node, 8 CPU cores per node, and would like to
run on 4 nodes with dynamic balancing of force calculation across CPU
and GPU cores, the fix might be
fix 0 all gpu force/neigh 0 1 -1 :pre
with LAMMPS run on 32 processes. In this case, all CPU cores and GPU
devices on the nodes would be utilized. Each GPU device would be
shared by 4 CPU cores. The CPU cores would perform force calculations
for some fraction of the particles at the same time the GPUs performed
force calculation for the other particles.
Because of the large number of cores on each GPU device, it might be
more efficient to run on fewer processes per GPU when the number of
particles per process is small (100's of particles); this can be
necessary to keep the GPU cores busy.
GPU input script :h4
In order to use GPU acceleration in LAMMPS, "fix_gpu"_fix_gpu.html
should be used in order to initialize and configure the GPUs for
use. Additionally, GPU enabled styles must be selected in the input
script. Currently, this is limited to a few "pair
styles"_pair_style.html and PPPM. Some GPU-enabled styles have
additional restrictions listed in their documentation.
GPU asynchronous pair computation :h4
The GPU accelerated pair styles can be used to perform pair style
force calculation on the GPU while other calculations are performed on
the CPU. One method to do this is to specify a {split} in the gpu fix
as described above. In this case, force calculation for the pair
style will also be performed on the CPU.
When the CPU work in a GPU pair style has finished, the next force
computation will begin, possibly before the GPU has finished. If
{split} is 1.0 in the gpu fix, the next force computation will begin
almost immediately. This can be used to run a
"hybrid"_pair_hybrid.html GPU pair style at the same time as a hybrid
CPU pair style. In this case, the GPU pair style should be first in
the hybrid command in order to perform simultaneous calculations. This
also allows "bond"_bond_style.html, "angle"_angle_style.html,
"dihedral"_dihedral_style.html, "improper"_improper_style.html, and
"long-range"_kspace_style.html force computations to be run
simultaneously with the GPU pair style. Once all CPU force
computations have completed, the gpu fix will block until the GPU has
finished all work before continuing the run.
GPU timing :h4
GPU accelerated pair styles can perform computations asynchronously
with CPU computations. The "Pair" time reported by LAMMPS will be the
maximum of the time required to complete the CPU pair style
computations and the time required to complete the GPU pair style
computations. Any time spent for GPU-enabled pair styles for
computations that run simultaneously with "bond"_bond_style.html,
"angle"_angle_style.html, "dihedral"_dihedral_style.html,
"improper"_improper_style.html, and "long-range"_kspace_style.html
calculations will not be included in the "Pair" time.
When {mode} for the gpu fix is force/neigh, the time for neighbor list
calculations on the GPU will be added into the "Pair" time, not the
"Neigh" time. A breakdown of the times required for various tasks on
the GPU (data copy, neighbor calculations, force computations, etc.)
are output only with the LAMMPS screen output at the end of each
run. These timings represent total time spent on the GPU for each
routine, regardless of asynchronous CPU calculations.
GPU single vs double precision :h4
See the lammps/lib/gpu/README file for instructions on how to build
the LAMMPS gpu library for single, mixed, and double precision. The
latter requires that your GPU card supports double precision.
:line
10.3 USER-CUDA package :h4,link(10_3)
The USER-CUDA package was developed by Christian Trott at U Technology
Ilmenau in Germany.
+This package will only be of any use to you, if you have an NVIDIA(tm)
+graphics card being CUDA(tm) enabled. Your GPU needs to support
+Compute Capability 1.3. This list may help
+you to find out the Compute Capability of your card:
+
+http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units
+
+Install the Nvidia Cuda Toolkit in version 3.2 or higher and the
+corresponding GPU drivers. The Nvidia Cuda SDK is not required for
+LAMMPSCUDA but we recommend to install it and
+
+make sure that the sample projects can be compiled without problems.
+
+You should also be able to compile LAMMPS by typing
+
+{make YourMachine}
+
+inside the src directory of LAMMPS root path. If not, you should
+consult the LAMMPS documentation.
+
+Compilation :h4
+
+If your {CUDA} toolkit is not installed in the default directoy
+{/usr/local/cuda} edit the file {lib/cuda/Makefile.common}
+accordingly.
+
+Go to {lib/cuda/} and type
+
+{make OPTIONS}
+
+where {OPTIONS} are one or more of the following:
+
+{precision = 2} set precision level: 1 .. single precision, 2
+.. double precision, 3 .. positions in double precision, 4
+.. positions and velocities in double precision :ulb,l
+
+{arch = 20} set GPU compute capability: 20 .. CC2.0 (GF100/110
+e.g. C2050,GTX580,GTX470), 21 .. CC2.1 (GF104/114 e.g. GTX560, GTX460,
+GTX450), 13 .. CC1.3 (GF200 e.g. C1060, GTX285) :l
+
+{prec_timer = 1} do not use precision timers if set to 0. This is
+usually only usefull for compiling on Mac machines. :l
+
+{dbg = 0} activate debug mode when setting to 1. Only usefull for
+developers. :l
+
+{cufft = 1} set CUDA FFT library. Can currently only be used to not
+compile with cufft support (set to 0). In the future other CUDA
+enabled FFT libraries might be supported. :l,ule
+
+The settings will be written to the {lib/cuda/Makefile.defaults}. When
+compiling with {make} only those settings will be used.
+
+Go to {src}, install the USER-CUDA package with {make yes-USER-CUDA}
+and compile the binary with {make YourMachine}. You might need to
+delete old object files if you compiled without the USER-CUDA package
+before, using the same Machine file ({rm Obj_YourMachine/*}).
+
+CUDA versions of classes are only installed if the corresponding CPU
+versions are installed as well. E.g. you need to install the KSPACE
+package to use {pppm/cuda}.
+
+Usage :h4
+
+In order to make use of the GPU acceleration provided by the USER-CUDA
+package, you only have to add
+
+{accelerator cuda}
+
+at the top of your input script. See the "accelerator"_accelerator.html command for details of additional options.
+
+When compiling with USER-CUDA support the "-accelerator command-line
+switch"_Section_start.html#2_6 is effectively set to "cuda" by default
+and does not have to be given.
+
+If you want to run simulations without using the "cuda" styles with
+the same binary, you need to turn it explicitely off by giving "-a
+none", "-a opt" or "-a gpu" as a command-
+
+line argument.
+
+The kspace style {pppm/cuda} has to be requested explicitely.
+
+
:line
10.4 Comparison of GPU and USER-CUDA packages :h4,link(10_4)
+
+The USER-CUDA package is an alternative package for GPU acceleration
+that runs as much of the simulation as possible on the GPU. Depending on
+the simulation, this can provide a significant speedup when the number
+of atoms per GPU is large.
+
+The styles available for GPU acceleration
+will be different in each package.
+
+The main difference between the "GPU" and the "USER-CUDA" package is
+that while the latter aims at calculating everything on the device the
+GPU package uses it as an accelerator for the pair force, neighbor
+list and pppm calculations only. As a consequence in different
+scenarios either package can be faster. Generally the GPU package is
+faster than the USER-CUDA package, if the number of atoms per device
+is small. Also the GPU package profits from oversubscribing
+devices. Hence one usually wants to launch two (or more) MPI processes
+per device.
+
+The exact crossover where the USER-CUDA package becomes faster depends
+strongly on the pair-style. For example for a simple Lennard Jones
+system the crossover (in single precision) can often be found between
+50,000 - 100,000 atoms per device. When performing double precision
+calculations this threshold can be significantly smaller. As a result
+the GPU package can show better "strong scaling" behaviour in
+comparison with the USER-CUDA package as long as this limit of atoms
+per GPU is not reached.
+
+Another scenario where the GPU package can be faster is, when a lot of
+bonded interactions are calculated. Those are handled by both packages
+by the host while the device simultaniously calculates the
+pair-forces. Since, when using the GPU package, one launches several
+MPI processes per device, this work is spread over more CPU cores as
+compared to running the same simulation with the USER-CUDA package.
+
+As a side note: the GPU package performance depends to some extent on
+optimal bandwidth between host and device. Hence its performance is
+affected if no full 16 PCIe lanes are available for each device. In
+HPC environments this can be the case if S2050/70 servers are used,
+where two devices generally share one PCIe 2.0 16x slot. Also many
+multi GPU mainboards do not provide full 16 lanes to each of the PCIe
+2.0 16x slots.
+
+While the GPU package uses considerable more device memory than the
+USER-CUDA package, this is generally not much of a problem. Typically
+run times are larger than desired, before the memory is exhausted.
+
+Currently the USER-CUDA package supports a wider range of
+force-fields. On the other hand its performance is considerably
+reduced if one has to use a fix at every timestep, which is not yet
+available as a "CUDA"-accelerated version.
+
+In the end for each simulations its best to just try both packages and
+see which one is performing better in the particular situation.
+
+Benchmark :h4
+
+In the following 4 benchmark systems which are supported by both the
+GPu and the CUDA package are shown:
+
+1. Lennard Jones, 2.5A
+256,000 atoms
+2.5 A cutoff
+0.844 density
+
+2. Lennard Jones, 5.0A
+256,000 atoms
+5.0 A cutoff
+0.844 density
+
+3. Rhodopsin model
+256,000 atoms
+10A cutoff
+Coulomb via PPPM
+
+4. Lihtium-Phosphate
+295650 atoms
+15A cutoff
+Coulomb via PPPM
+
+Hardware:
+Workstation:
+2x GTX470
+i7 950@3GHz
+24Gb DDR3 @ 1066Mhz
+CentOS 5.5
+CUDA 3.2
+Driver 260.19.12
+
+eStella:
+6 Nodes
+2xC2050
+2xQDR Infiniband interconnect(aggregate bandwidth 80GBps)
+Intel X5650 HexCore @ 2.67GHz
+SL 5.5
+CUDA 3.2
+Driver 260.19.26
+
+Keeneland:
+HP SL-390 (Ariston) cluster
+120 nodes
+2x Intel Westmere hex-core CPUs
+3xC2070s
+QDR InfiniBand interconnec
+
diff --git a/doc/Section_commands.html b/doc/Section_commands.html
index fee185afd..fd1a6992c 100644
--- a/doc/Section_commands.html
+++ b/doc/Section_commands.html
@@ -1,540 +1,541 @@
<HTML>
<CENTER><A HREF = "Section_start.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_howto.html">Next Section</A>
</CENTER>
<HR>
<H3>3. Commands
</H3>
<P>This section describes how a LAMMPS input script is formatted and what
commands are used to define a LAMMPS simulation.
</P>
3.1 <A HREF = "#3_1">LAMMPS input script</A><BR>
3.2 <A HREF = "#3_2">Parsing rules</A><BR>
3.3 <A HREF = "#3_3">Input script structure</A><BR>
3.4 <A HREF = "#3_4">Commands listed by category</A><BR>
3.5 <A HREF = "#3_5">Commands listed alphabetically</A> <BR>
<HR>
<A NAME = "3_1"></A><H4>3.1 LAMMPS input script
</H4>
<P>LAMMPS executes by reading commands from a input script (text file),
one line at a time. When the input script ends, LAMMPS exits. Each
command causes LAMMPS to take some action. It may set an internal
variable, read in a file, or run a simulation. Most commands have
default settings, which means you only need to use the command if you
wish to change the default.
</P>
<P>In many cases, the ordering of commands in an input script is not
important. However the following rules apply:
</P>
<P>(1) LAMMPS does not read your entire input script and then perform a
simulation with all the settings. Rather, the input script is read
one line at a time and each command takes effect when it is read.
Thus this sequence of commands:
</P>
<PRE>timestep 0.5
run 100
run 100
</PRE>
<P>does something different than this sequence:
</P>
<PRE>run 100
timestep 0.5
run 100
</PRE>
<P>In the first case, the specified timestep (0.5 fmsec) is used for two
simulations of 100 timesteps each. In the 2nd case, the default
timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5
fmsec timestep is used for the 2nd one.
</P>
<P>(2) Some commands are only valid when they follow other commands. For
example you cannot set the temperature of a group of atoms until atoms
have been defined and a group command is used to define which atoms
belong to the group.
</P>
<P>(3) Sometimes command B will use values that can be set by command A.
This means command A must precede command B in the input script if it
is to have the desired effect. For example, the
<A HREF = "read_data.html">read_data</A> command initializes the system by setting
up the simulation box and assigning atoms to processors. If default
values are not desired, the <A HREF = "processors.html">processors</A> and
<A HREF = "boundary.html">boundary</A> commands need to be used before read_data to
tell LAMMPS how to map processors to the simulation box.
</P>
<P>Many input script errors are detected by LAMMPS and an ERROR or
WARNING message is printed. <A HREF = "Section_errors.html">This section</A> gives
more information on what errors mean. The documentation for each
command lists restrictions on how the command can be used.
</P>
<HR>
<A NAME = "3_2"></A><H4>3.2 Parsing rules
</H4>
<P>Each non-blank line in the input script is treated as a command.
LAMMPS commands are case sensitive. Command names are lower-case, as
are specified command arguments. Upper case letters may be used in
file names or user-chosen ID strings.
</P>
<P>Here is how each line in the input script is parsed by LAMMPS:
</P>
<P>(1) If the last printable character on the line is a "&" character
(with no surrounding quotes), the command is assumed to continue on
the next line. The next line is concatenated to the previous line by
removing the "&" character and newline. This allows long commands to
be continued across two or more lines.
</P>
<P>(2) All characters from the first "#" character onward are treated as
comment and discarded. See an exception in (6). Note that a
comment after a trailing "&" character will prevent the command from
continuing on the next line. Also note that for multi-line commands a
single leading "#" will comment out the entire command.
</P>
<P>(3) The line is searched repeatedly for $ characters, which indicate
variables that are replaced with a text string. See an exception in
(6). If the $ is followed by curly brackets, then the variable name
is the text inside the curly brackets. If no curly brackets follow
the $, then the variable name is the single character immediately
following the $. Thus ${myTemp} and $x refer to variable names
"myTemp" and "x". See the <A HREF = "variable.html">variable</A> command for
details of how strings are assigned to variables and how they are
substituted for in input script commands.
</P>
<P>(4) The line is broken into "words" separated by whitespace (tabs,
spaces). Note that words can thus contain letters, digits,
underscores, or punctuation characters.
</P>
<P>(5) The first word is the command name. All successive words in the
line are arguments.
</P>
<P>(6) If you want text with spaces to be treated as a single argument,
it can be enclosed in either double or single quotes. E.g.
</P>
<PRE>print "Volume = $v"
print 'Volume = $v'
</PRE>
<P>The quotes are removed when the single argument is stored internally.
See the <A HREF = "dump_modify.html">dump modify format</A> or <A HREF = "if.html">if</A> commands
for examples. A "#" or "$" character that is between quotes will not
be treated as a comment indicator in (2) or substituted for as a
variable in (3).
</P>
<P>IMPORTANT NOTE: If the argument is itself a command that requires a
quoted argument (e.g. using a <A HREF = "print.html">print</A> command as part of an
<A HREF = "if.html">if</A> or <A HREF = "run.html">run every</A> command), then the double and
single quotes can be nested in the usual manner. See the doc pages
for those commands for examples. Only one of level of nesting is
allowed, but that should be sufficient for most use cases.
</P>
<HR>
<H4><A NAME = "3_3"></A>3.3 Input script structure
</H4>
<P>This section describes the structure of a typical LAMMPS input script.
The "examples" directory in the LAMMPS distribution contains many
sample input scripts; the corresponding problems are discussed in
<A HREF = "Section_example.html">this section</A>, and animated on the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW
Site</A>.
</P>
<P>A LAMMPS input script typically has 4 parts:
</P>
<OL><LI>Initialization
<LI>Atom definition
<LI>Settings
<LI>Run a simulation
</OL>
<P>The last 2 parts can be repeated as many times as desired. I.e. run a
simulation, change some settings, run some more, etc. Each of the 4
parts is now described in more detail. Remember that almost all the
commands need only be used if a non-default value is desired.
</P>
<P>(1) Initialization
</P>
<P>Set parameters that need to be defined before atoms are created or
read-in from a file.
</P>
<P>The relevant commands are <A HREF = "units.html">units</A>,
<A HREF = "dimension.html">dimension</A>, <A HREF = "newton.html">newton</A>,
<A HREF = "processors.html">processors</A>, <A HREF = "boundary.html">boundary</A>,
<A HREF = "atom_style.html">atom_style</A>, <A HREF = "atom_modify.html">atom_modify</A>.
</P>
<P>If force-field parameters appear in the files that will be read, these
commands tell LAMMPS what kinds of force fields are being used:
<A HREF = "pair_style.html">pair_style</A>, <A HREF = "bond_style.html">bond_style</A>,
<A HREF = "angle_style.html">angle_style</A>, <A HREF = "dihedral_style.html">dihedral_style</A>,
<A HREF = "improper_style.html">improper_style</A>.
</P>
<P>(2) Atom definition
</P>
<P>There are 3 ways to define atoms in LAMMPS. Read them in from a data
or restart file via the <A HREF = "read_data.html">read_data</A> or
<A HREF = "read_restart.html">read_restart</A> commands. These files can contain
molecular topology information. Or create atoms on a lattice (with no
molecular topology), using these commands: <A HREF = "lattice.html">lattice</A>,
<A HREF = "region.html">region</A>, <A HREF = "create_box.html">create_box</A>,
<A HREF = "create_atoms.html">create_atoms</A>. The entire set of atoms can be
duplicated to make a larger simulation using the
<A HREF = "replicate.html">replicate</A> command.
</P>
<P>(3) Settings
</P>
<P>Once atoms and molecular topology are defined, a variety of settings
can be specified: force field coefficients, simulation parameters,
output options, etc.
</P>
<P>Force field coefficients are set by these commands (they can also be
set in the read-in files): <A HREF = "pair_coeff.html">pair_coeff</A>,
<A HREF = "bond_coeff.html">bond_coeff</A>, <A HREF = "angle_coeff.html">angle_coeff</A>,
<A HREF = "dihedral_coeff.html">dihedral_coeff</A>,
<A HREF = "improper_coeff.html">improper_coeff</A>,
<A HREF = "kspace_style.html">kspace_style</A>, <A HREF = "dielectric.html">dielectric</A>,
<A HREF = "special_bonds.html">special_bonds</A>.
</P>
<P>Various simulation parameters are set by these commands:
<A HREF = "neighbor.html">neighbor</A>, <A HREF = "neigh_modify.html">neigh_modify</A>,
<A HREF = "group.html">group</A>, <A HREF = "timestep.html">timestep</A>,
<A HREF = "reset_timestep.html">reset_timestep</A>, <A HREF = "run_style.html">run_style</A>,
<A HREF = "min_style.html">min_style</A>, <A HREF = "min_modify.html">min_modify</A>.
</P>
<P>Fixes impose a variety of boundary conditions, time integration, and
diagnostic options. The <A HREF = "fix.html">fix</A> command comes in many flavors.
</P>
<P>Various computations can be specified for execution during a
simulation using the <A HREF = "compute.html">compute</A>,
<A HREF = "compute_modify.html">compute_modify</A>, and <A HREF = "variable.html">variable</A>
commands.
</P>
<P>Output options are set by the <A HREF = "thermo.html">thermo</A>, <A HREF = "dump.html">dump</A>,
and <A HREF = "restart.html">restart</A> commands.
</P>
<P>(4) Run a simulation
</P>
<P>A molecular dynamics simulation is run using the <A HREF = "run.html">run</A>
command. Energy minimization (molecular statics) is performed using
the <A HREF = "minimize.html">minimize</A> command. A parallel tempering
(replica-exchange) simulation can be run using the
<A HREF = "temper.html">temper</A> command.
</P>
<HR>
<A NAME = "3_4"></A><H4>3.4 Commands listed by category
</H4>
<P>This section lists all LAMMPS commands, grouped by category. The
<A HREF = "#3_5">next section</A> lists the same commands alphabetically. Note that
some style options for some commands are part of specific LAMMPS
packages, which means they cannot be used unless the package was
included when LAMMPS was built. Not all packages are included in a
default LAMMPS build. These dependencies are listed as Restrictions
in the command's documentation.
</P>
<P>Initialization:
</P>
<P><A HREF = "atom_modify.html">atom_modify</A>, <A HREF = "atom_style.html">atom_style</A>,
<A HREF = "boundary.html">boundary</A>, <A HREF = "dimension.html">dimension</A>,
<A HREF = "newton.html">newton</A>, <A HREF = "processors.html">processors</A>, <A HREF = "units.html">units</A>
</P>
<P>Atom definition:
</P>
<P><A HREF = "create_atoms.html">create_atoms</A>, <A HREF = "create_box.html">create_box</A>,
<A HREF = "lattice.html">lattice</A>, <A HREF = "read_data.html">read_data</A>,
<A HREF = "read_restart.html">read_restart</A>, <A HREF = "region.html">region</A>,
<A HREF = "replicate.html">replicate</A>
</P>
<P>Force fields:
</P>
<P><A HREF = "angle_coeff.html">angle_coeff</A>, <A HREF = "angle_style.html">angle_style</A>,
<A HREF = "bond_coeff.html">bond_coeff</A>, <A HREF = "bond_style.html">bond_style</A>,
<A HREF = "dielectric.html">dielectric</A>, <A HREF = "dihedral_coeff.html">dihedral_coeff</A>,
<A HREF = "dihedral_style.html">dihedral_style</A>,
<A HREF = "improper_coeff.html">improper_coeff</A>,
<A HREF = "improper_style.html">improper_style</A>,
<A HREF = "kspace_modify.html">kspace_modify</A>, <A HREF = "kspace_style.html">kspace_style</A>,
<A HREF = "pair_coeff.html">pair_coeff</A>, <A HREF = "pair_modify.html">pair_modify</A>,
<A HREF = "pair_style.html">pair_style</A>, <A HREF = "pair_write.html">pair_write</A>,
<A HREF = "special_bonds.html">special_bonds</A>
</P>
<P>Settings:
</P>
<P><A HREF = "communicate.html">communicate</A>, <A HREF = "group.html">group</A>, <A HREF = "mass.html">mass</A>,
<A HREF = "min_modify.html">min_modify</A>, <A HREF = "min_style.html">min_style</A>,
<A HREF = "neigh_modify.html">neigh_modify</A>, <A HREF = "neighbor.html">neighbor</A>,
<A HREF = "reset_timestep.html">reset_timestep</A>, <A HREF = "run_style.html">run_style</A>,
<A HREF = "set.html">set</A>, <A HREF = "timestep.html">timestep</A>, <A HREF = "velocity.html">velocity</A>
</P>
<P>Fixes:
</P>
<P><A HREF = "fix.html">fix</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "unfix.html">unfix</A>
</P>
<P>Computes:
</P>
<P><A HREF = "compute.html">compute</A>, <A HREF = "compute_modify.html">compute_modify</A>,
<A HREF = "uncompute.html">uncompute</A>
</P>
<P>Output:
</P>
<P><A HREF = "dump.html">dump</A>, <A HREF = "dump_modify.html">dump_modify</A>,
<A HREF = "restart.html">restart</A>, <A HREF = "thermo.html">thermo</A>,
<A HREF = "thermo_modify.html">thermo_modify</A>, <A HREF = "thermo_style.html">thermo_style</A>,
<A HREF = "undump.html">undump</A>, <A HREF = "write_restart.html">write_restart</A>
</P>
<P>Actions:
</P>
<P><A HREF = "delete_atoms.html">delete_atoms</A>, <A HREF = "delete_bonds.html">delete_bonds</A>,
<A HREF = "displace_atoms.html">displace_atoms</A>,
<A HREF = "displace_box.html">displace_box</A>, <A HREF = "minimize.html">minimize</A>,
<A HREF = "neb.html">neb</A> <A HREF = "prd.html">prd</A>, <A HREF = "run.html">run</A>, <A HREF = "temper.html">temper</A>
</P>
<P>Miscellaneous:
</P>
<P><A HREF = "clear.html">clear</A>, <A HREF = "echo.html">echo</A>, <A HREF = "if.html">if</A>,
<A HREF = "include.html">include</A>, <A HREF = "jump.html">jump</A>, <A HREF = "label.html">label</A>,
<A HREF = "log.html">log</A>, <A HREF = "next.html">next</A>, <A HREF = "print.html">print</A>,
<A HREF = "shell.html">shell</A>, <A HREF = "variable.html">variable</A>
</P>
<HR>
<H4><A NAME = "3_5"></A><A NAME = "comm"></A>3.5 Individual commands
</H4>
<P>This section lists all LAMMPS commands alphabetically, with a separate
listing below of styles within certain commands. The <A HREF = "#3_4">previous
section</A> lists the same commands, grouped by category. Note that
some style options for some commands are part of specific LAMMPS
packages, which means they cannot be used unless the package was
included when LAMMPS was built. Not all packages are included in a
default LAMMPS build. These dependencies are listed as Restrictions
in the command's documentation.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "angle_coeff.html">angle_coeff</A></TD><TD ><A HREF = "angle_style.html">angle_style</A></TD><TD ><A HREF = "atom_modify.html">atom_modify</A></TD><TD ><A HREF = "atom_style.html">atom_style</A></TD><TD ><A HREF = "bond_coeff.html">bond_coeff</A></TD><TD ><A HREF = "bond_style.html">bond_style</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "boundary.html">boundary</A></TD><TD ><A HREF = "change_box.html">change_box</A></TD><TD ><A HREF = "clear.html">clear</A></TD><TD ><A HREF = "communicate.html">communicate</A></TD><TD ><A HREF = "compute.html">compute</A></TD><TD ><A HREF = "compute_modify.html">compute_modify</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "create_atoms.html">create_atoms</A></TD><TD ><A HREF = "create_box.html">create_box</A></TD><TD ><A HREF = "delete_atoms.html">delete_atoms</A></TD><TD ><A HREF = "delete_bonds.html">delete_bonds</A></TD><TD ><A HREF = "dielectric.html">dielectric</A></TD><TD ><A HREF = "dihedral_coeff.html">dihedral_coeff</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dihedral_style.html">dihedral_style</A></TD><TD ><A HREF = "dimension.html">dimension</A></TD><TD ><A HREF = "displace_atoms.html">displace_atoms</A></TD><TD ><A HREF = "displace_box.html">displace_box</A></TD><TD ><A HREF = "dump.html">dump</A></TD><TD ><A HREF = "dump_modify.html">dump_modify</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "echo.html">echo</A></TD><TD ><A HREF = "fix.html">fix</A></TD><TD ><A HREF = "fix_modify.html">fix_modify</A></TD><TD ><A HREF = "group.html">group</A></TD><TD ><A HREF = "if.html">if</A></TD><TD ><A HREF = "improper_coeff.html">improper_coeff</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "improper_style.html">improper_style</A></TD><TD ><A HREF = "include.html">include</A></TD><TD ><A HREF = "jump.html">jump</A></TD><TD ><A HREF = "kspace_modify.html">kspace_modify</A></TD><TD ><A HREF = "kspace_style.html">kspace_style</A></TD><TD ><A HREF = "label.html">label</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "lattice.html">lattice</A></TD><TD ><A HREF = "log.html">log</A></TD><TD ><A HREF = "mass.html">mass</A></TD><TD ><A HREF = "minimize.html">minimize</A></TD><TD ><A HREF = "min_modify.html">min_modify</A></TD><TD ><A HREF = "min_style.html">min_style</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "neb.html">neb</A></TD><TD ><A HREF = "neigh_modify.html">neigh_modify</A></TD><TD ><A HREF = "neighbor.html">neighbor</A></TD><TD ><A HREF = "newton.html">newton</A></TD><TD ><A HREF = "next.html">next</A></TD><TD ><A HREF = "package.html">package</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coeff.html">pair_coeff</A></TD><TD ><A HREF = "pair_modify.html">pair_modify</A></TD><TD ><A HREF = "pair_style.html">pair_style</A></TD><TD ><A HREF = "pair_write.html">pair_write</A></TD><TD ><A HREF = "prd.html">prd</A></TD><TD ><A HREF = "print.html">print</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "processors.html">processors</A></TD><TD ><A HREF = "read_data.html">read_data</A></TD><TD ><A HREF = "read_restart.html">read_restart</A></TD><TD ><A HREF = "region.html">region</A></TD><TD ><A HREF = "replicate.html">replicate</A></TD><TD ><A HREF = "reset_timestep.html">reset_timestep</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "restart.html">restart</A></TD><TD ><A HREF = "run.html">run</A></TD><TD ><A HREF = "run_style.html">run_style</A></TD><TD ><A HREF = "set.html">set</A></TD><TD ><A HREF = "shell.html">shell</A></TD><TD ><A HREF = "special_bonds.html">special_bonds</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "suffix.html">suffix</A></TD><TD ><A HREF = "tad.html">tad</A></TD><TD ><A HREF = "temper.html">temper</A></TD><TD ><A HREF = "thermo.html">thermo</A></TD><TD ><A HREF = "thermo_modify.html">thermo_modify</A></TD><TD ><A HREF = "thermo_style.html">thermo_style</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "timestep.html">timestep</A></TD><TD ><A HREF = "uncompute.html">uncompute</A></TD><TD ><A HREF = "undump.html">undump</A></TD><TD ><A HREF = "unfix.html">unfix</A></TD><TD ><A HREF = "units.html">units</A></TD><TD ><A HREF = "variable.html">variable</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "velocity.html">velocity</A></TD><TD ><A HREF = "write_restart.html">write_restart</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Fix styles
</H4>
<P>See the <A HREF = "fix.html">fix</A> command for one-line descriptions
of each style or click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "fix_adapt.html">adapt</A></TD><TD ><A HREF = "fix_addforce.html">addforce</A></TD><TD ><A HREF = "fix_aveforce.html">aveforce</A></TD><TD ><A HREF = "fix_ave_atom.html">ave/atom</A></TD><TD ><A HREF = "fix_ave_correlate.html">ave/correlate</A></TD><TD ><A HREF = "fix_ave_histo.html">ave/histo</A></TD><TD ><A HREF = "fix_ave_spatial.html">ave/spatial</A></TD><TD ><A HREF = "fix_ave_time.html">ave/time</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_bond_break.html">bond/break</A></TD><TD ><A HREF = "fix_bond_create.html">bond/create</A></TD><TD ><A HREF = "fix_bond_swap.html">bond/swap</A></TD><TD ><A HREF = "fix_box_relax.html">box/relax</A></TD><TD ><A HREF = "fix_deform.html">deform</A></TD><TD ><A HREF = "fix_deposit.html">deposit</A></TD><TD ><A HREF = "fix_drag.html">drag</A></TD><TD ><A HREF = "fix_dt_reset.html">dt/reset</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_efield.html">efield</A></TD><TD ><A HREF = "fix_enforce2d.html">enforce2d</A></TD><TD ><A HREF = "fix_evaporate.html">evaporate</A></TD><TD ><A HREF = "fix_external.html">external</A></TD><TD ><A HREF = "fix_freeze.html">freeze</A></TD><TD ><A HREF = "fix_gpu.html">gpu</A></TD><TD ><A HREF = "fix_gravity.html">gravity</A></TD><TD ><A HREF = "fix_heat.html">heat</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_indent.html">indent</A></TD><TD ><A HREF = "fix_langevin.html">langevin</A></TD><TD ><A HREF = "fix_lineforce.html">lineforce</A></TD><TD ><A HREF = "fix_momentum.html">momentum</A></TD><TD ><A HREF = "fix_move.html">move</A></TD><TD ><A HREF = "fix_msst.html">msst</A></TD><TD ><A HREF = "fix_neb.html">neb</A></TD><TD ><A HREF = "fix_nh.html">nph</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nph_asphere.html">nph/asphere</A></TD><TD ><A HREF = "fix_nph_sphere.html">nph/sphere</A></TD><TD ><A HREF = "fix_nh.html">npt</A></TD><TD ><A HREF = "fix_npt_asphere.html">npt/asphere</A></TD><TD ><A HREF = "fix_npt_sphere.html">npt/sphere</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD><TD ><A HREF = "fix_nve_asphere.html">nve/asphere</A></TD><TD ><A HREF = "fix_nve_limit.html">nve/limit</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nve_noforce.html">nve/noforce</A></TD><TD ><A HREF = "fix_nve_sphere.html">nve/sphere</A></TD><TD ><A HREF = "fix_nh.html">nvt</A></TD><TD ><A HREF = "fix_nvt_asphere.html">nvt/asphere</A></TD><TD ><A HREF = "fix_nvt_sllod.html">nvt/sllod</A></TD><TD ><A HREF = "fix_nvt_sphere.html">nvt/sphere</A></TD><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_poems.html">poems</A></TD><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_qeq_comb.html">qeq/comb</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_srd.html">srd</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_store_force.html">store/force</A></TD><TD ><A HREF = "fix_store_state.html">store/state</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_wall_srd.html">wall/srd</A>
</TD></TR></TABLE></DIV>
<P>These are fix styles contributed by users, which can be used if
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "fix_atc.html">atc</A></TD><TD ><A HREF = "fix_imd.html">imd</A></TD><TD ><A HREF = "fix_langevin_eff.html">langevin/eff</A></TD><TD ><A HREF = "fix_nh_eff.html">nph/eff</A></TD><TD ><A HREF = "fix_nh_eff.html">npt/eff</A></TD><TD ><A HREF = "fix_nve_eff.html">nve/eff</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nh_eff.html">nvt/eff</A></TD><TD ><A HREF = "fix_nvt_sllod_eff.html">nvt/sllod/eff</A></TD><TD ><A HREF = "fix_qeq_reax.html">qeq/reax</A></TD><TD ><A HREF = "fix_smd.html">smd</A></TD><TD ><A HREF = "fix_temp_rescale_eff.html">temp/rescale/eff</A>
</TD></TR></TABLE></DIV>
<P>These are accelerated fix styles, which can be used if LAMMPS is
built with the <A HREF = "Section_accelerate.html">appropriate accelerated
package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "fix_freeze.html">freeze/cuda</A></TD><TD ><A HREF = "fix_addforce.html">addforce/cuda</A></TD><TD ><A HREF = "fix_aveforce.html">aveforce/cuda</A></TD><TD ><A HREF = "fix_enforce2d.html">enforce2d/cuda</A></TD><TD ><A HREF = "fix_gravity.html">gravity/cuda</A></TD><TD ><A HREF = "fix_nh.html">npt/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nh.html">nve/cuda</A></TD><TD ><A HREF = "fix_nh.html">nvt/cuda</A></TD><TD ><A HREF = "fix_setforce.html">setforce/cuda</A></TD><TD ><A HREF = "fix_shake.html">shake/cuda</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen/cuda</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_temp_rescale.html">temp/rescale/limit/cuda</A></TD><TD ><A HREF = "fix_viscous.html">viscous/cuda</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Compute styles
</H4>
<P>See the <A HREF = "compute.html">compute</A> command for one-line descriptions of
each style or click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "compute_angle_local.html">angle/local</A></TD><TD ><A HREF = "compute_atom_molecule.html">atom/molecule</A></TD><TD ><A HREF = "compute_bond_local.html">bond/local</A></TD><TD ><A HREF = "compute_centro_atom.html">centro/atom</A></TD><TD ><A HREF = "compute_cluster_atom.html">cluster/atom</A></TD><TD ><A HREF = "compute_cna_atom.html">cna/atom</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_com.html">com</A></TD><TD ><A HREF = "compute_com_molecule.html">com/molecule</A></TD><TD ><A HREF = "compute_coord_atom.html">coord/atom</A></TD><TD ><A HREF = "compute_damage_atom.html">damage/atom</A></TD><TD ><A HREF = "compute_dihedral_local.html">dihedral/local</A></TD><TD ><A HREF = "compute_displace_atom.html">displace/atom</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_erotate_asphere.html">erotate/asphere</A></TD><TD ><A HREF = "compute_erotate_sphere.html">erotate/sphere</A></TD><TD ><A HREF = "compute_event_displace.html">event/displace</A></TD><TD ><A HREF = "compute_group_group.html">group/group</A></TD><TD ><A HREF = "compute_gyration.html">gyration</A></TD><TD ><A HREF = "compute_gyration_molecule.html">gyration/molecule</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_heat_flux.html">heat/flux</A></TD><TD ><A HREF = "compute_improper_local.html">improper/local</A></TD><TD ><A HREF = "compute_ke.html">ke</A></TD><TD ><A HREF = "compute_ke_atom.html">ke/atom</A></TD><TD ><A HREF = "compute_msd.html">msd</A></TD><TD ><A HREF = "compute_msd_molecule.html">msd/molecule</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_pair.html">pair</A></TD><TD ><A HREF = "compute_pair_local.html">pair/local</A></TD><TD ><A HREF = "compute_pe.html">pe</A></TD><TD ><A HREF = "compute_pe_atom.html">pe/atom</A></TD><TD ><A HREF = "compute_pressure.html">pressure</A></TD><TD ><A HREF = "compute_property_atom.html">property/atom</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_property_local.html">property/local</A></TD><TD ><A HREF = "compute_property_molecule.html">property/molecule</A></TD><TD ><A HREF = "compute_rdf.html">rdf</A></TD><TD ><A HREF = "compute_reduce.html">reduce</A></TD><TD ><A HREF = "compute_reduce.html">reduce/region</A></TD><TD ><A HREF = "compute_slice.html">slice</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_stress_atom.html">stress/atom</A></TD><TD ><A HREF = "compute_temp.html">temp</A></TD><TD ><A HREF = "compute_temp_asphere.html">temp/asphere</A></TD><TD ><A HREF = "compute_temp_com.html">temp/com</A></TD><TD ><A HREF = "compute_temp_deform.html">temp/deform</A></TD><TD ><A HREF = "compute_temp_partial.html">temp/partial</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "compute_temp_profile.html">temp/profile</A></TD><TD ><A HREF = "compute_temp_ramp.html">temp/ramp</A></TD><TD ><A HREF = "compute_temp_region.html">temp/region</A></TD><TD ><A HREF = "compute_temp_sphere.html">temp/sphere</A></TD><TD ><A HREF = "compute_ti.html">ti</A>
</TD></TR></TABLE></DIV>
<P>These are compute styles contributed by users, which can be used if
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "compute_ackland_atom.html">ackland/atom</A></TD><TD ><A HREF = "compute_ke_eff.html">ke/eff</A></TD><TD ><A HREF = "compute_ke_atom_eff.html">ke/atom/eff</A></TD><TD ><A HREF = "compute_temp_eff.html">temp/eff</A></TD><TD ><A HREF = "compute_temp_deform_eff.html">temp/deform/eff</A></TD><TD ><A HREF = "compute_temp_region_eff.html">temp/region/eff</A>
</TD></TR></TABLE></DIV>
<P>These are accelerated compute styles, which can be used if LAMMPS is
built with the <A HREF = "Section_accelerate.html">appropriate accelerated
package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "compute_pe.html">pe/cuda</A></TD><TD ><A HREF = "compute_pressure.html">pressure/cuda</A></TD><TD ><A HREF = "compute_temp.html">temp/cuda</A></TD><TD ><A HREF = "compute_temp_partial.html">temp/partial/cuda</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Pair_style potentials
</H4>
<P>See the <A HREF = "pair_style.html">pair_style</A> command for an overview of pair
potentials. Click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "pair_none.html">none</A></TD><TD ><A HREF = "pair_hybrid.html">hybrid</A></TD><TD ><A HREF = "pair_hybrid.html">hybrid/overlay</A></TD><TD ><A HREF = "pair_adp.html">adp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">airebo</A></TD><TD ><A HREF = "pair_born.html">born</A></TD><TD ><A HREF = "pair_born.html">born/coul/long</A></TD><TD ><A HREF = "pair_buck.html">buck</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/cut</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long</A></TD><TD ><A HREF = "pair_colloid.html">colloid</A></TD><TD ><A HREF = "pair_comb.html">comb</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/cut</A></TD><TD ><A HREF = "pair_coul.html">coul/debye</A></TD><TD ><A HREF = "pair_coul.html">coul/long</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dpd.html">dpd</A></TD><TD ><A HREF = "pair_dpd.html">dpd/tstat</A></TD><TD ><A HREF = "pair_dsmc.html">dsmc</A></TD><TD ><A HREF = "pair_eam.html">eam</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/alloy</A></TD><TD ><A HREF = "pair_eam.html">eam/fs</A></TD><TD ><A HREF = "pair_eim.html">eim</A></TD><TD ><A HREF = "pair_gauss.html">gauss</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gayberne.html">gayberne</A></TD><TD ><A HREF = "pair_gran.html">gran/hertz/history</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/history</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_class2.html">lj/class2</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/tip4p</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_smooth.html">lj/smooth</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate</A></TD><TD ><A HREF = "pair_meam.html">meam</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse</A></TD><TD ><A HREF = "pair_peri.html">peri/lps</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb</A></TD><TD ><A HREF = "pair_reax.html">reax</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">rebo</A></TD><TD ><A HREF = "pair_resquared.html">resquared</A></TD><TD ><A HREF = "pair_soft.html">soft</A></TD><TD ><A HREF = "pair_sw.html">sw</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_table.html">table</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid</A>
</TD></TR></TABLE></DIV>
<P>These are pair styles contributed by users, which can be used if
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
-<TR ALIGN="center"><TD ><A HREF = "pair_buck_coul.html">buck/coul</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/cut</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/long</A></TD></TR>
-<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/cd</A></TD><TD ><A HREF = "pair_eff.html">eff/cut</A></TD><TD ><A HREF = "pair_lj_coul.html">lj/coul</A></TD><TD ><A HREF = "pair_reax_c.html">reax/c</A>
+<TR ALIGN="center"><TD ><A HREF = "pair_awpmd.html">awpmd/cut</A></TD><TD ><A HREF = "pair_buck_coul.html">buck/coul</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/cut</A></TD></TR>
+<TR ALIGN="center"><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/long</A></TD><TD ><A HREF = "pair_eam.html">eam/cd</A></TD><TD ><A HREF = "pair_eff.html">eff/cut</A></TD><TD ><A HREF = "pair_lj_coul.html">lj/coul</A></TD></TR>
+<TR ALIGN="center"><TD ><A HREF = "pair_reax_c.html">reax/c</A>
</TD></TR></TABLE></DIV>
<P>These are accelerated pair styles, which can be used if LAMMPS is
built with the <A HREF = "Section_accelerate.html">appropriate accelerated
package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/long/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/cut/cuda</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/debye/cuda</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/long/cuda</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/long/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_cmm.html">cg/cmm/cuda</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/gpu</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/opt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/opt</A></TD><TD ><A HREF = "pair_eam.html">eam/opt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gayberne.html">gayberne/gpu</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/gpu</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/opt</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/gpu</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/experimental/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/opt</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/cuda</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/gpu</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs/cuda</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth/cuda</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/cuda</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse/cuda</A></TD><TD ><A HREF = "pair_morse.html">morse/gpu</A></TD><TD ><A HREF = "pair_morse.html">morse/opt</A></TD><TD ><A HREF = "pair_resquared.html">resquared/gpu</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Bond_style potentials
</H4>
<P>See the <A HREF = "bond_style.html">bond_style</A> command for an overview of bond
potentials. Click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_none.html">none</A></TD><TD WIDTH="100"><A HREF = "bond_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "bond_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "bond_fene.html">fene</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_fene_expand.html">fene/expand</A></TD><TD WIDTH="100"><A HREF = "bond_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "bond_morse.html">morse</A></TD><TD WIDTH="100"><A HREF = "bond_nonlinear.html">nonlinear</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_quartic.html">quartic</A></TD><TD WIDTH="100"><A HREF = "bond_table.html">table</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Angle_style potentials
</H4>
<P>See the <A HREF = "angle_style.html">angle_style</A> command for an overview of
angle potentials. Click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_none.html">none</A></TD><TD WIDTH="100"><A HREF = "angle_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "angle_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "angle_class2.html">class2</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_cosine.html">cosine</A></TD><TD WIDTH="100"><A HREF = "angle_cosine_delta.html">cosine/delta</A></TD><TD WIDTH="100"><A HREF = "angle_cosine_periodic.html">cosine/periodic</A></TD><TD WIDTH="100"><A HREF = "angle_cosine_squared.html">cosine/squared</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "angle_table.html">table</A>
</TD></TR></TABLE></DIV>
<P>These are angle styles contributed by users, which can be used if
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "angle_cmm.html">cg/cmm</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Dihedral_style potentials
</H4>
<P>See the <A HREF = "dihedral_style.html">dihedral_style</A> command for an overview
of dihedral potentials. Click on the style itself for a full
description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_none.html">none</A></TD><TD WIDTH="100"><A HREF = "dihedral_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "dihedral_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "dihedral_class2.html">class2</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "dihedral_helix.html">helix</A></TD><TD WIDTH="100"><A HREF = "dihedral_multi_harmonic.html">multi/harmonic</A></TD><TD WIDTH="100"><A HREF = "dihedral_opls.html">opls</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Improper_style potentials
</H4>
<P>See the <A HREF = "improper_style.html">improper_style</A> command for an overview
of improper potentials. Click on the style itself for a full
description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_none.html">none</A></TD><TD WIDTH="100"><A HREF = "improper_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "improper_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "improper_cvff.html">cvff</A></TD></TR>
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "improper_umbrella.html">umbrella</A>
</TD></TR></TABLE></DIV>
<HR>
<H4>Kspace solvers
</H4>
<P>See the <A HREF = "kspace_style.html">kspace_style</A> command for an overview of
Kspace solvers. Click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "kspace_style.html">ewald</A></TD><TD WIDTH="100"><A HREF = "kspace_style.html">pppm</A></TD><TD WIDTH="100"><A HREF = "kspace_style.html">pppm/tip4p</A>
</TD></TR></TABLE></DIV>
<P>These are Kspace solvers contributed by users, which can be used if
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "kspace_style.html">ewald/n</A>
</TD></TR></TABLE></DIV>
<P>These are accelerated Kspace solvers, which can be used if LAMMPS is
built with the <A HREF = "Section_accelerate.html">appropriate accelerated
package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "kspace_style.html">pppm/cuda</A></TD><TD ><A HREF = "kspace_style.html">pppm/gpu/single</A></TD><TD ><A HREF = "kspace_style.html">pppm/gpu/double</A>
</TD></TR></TABLE></DIV>
</HTML>
diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt
index 4be161de9..6af448cd4 100644
--- a/doc/Section_commands.txt
+++ b/doc/Section_commands.txt
@@ -1,818 +1,819 @@
"Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_howto.html :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
3. Commands :h3
This section describes how a LAMMPS input script is formatted and what
commands are used to define a LAMMPS simulation.
3.1 "LAMMPS input script"_#3_1
3.2 "Parsing rules"_#3_2
3.3 "Input script structure"_#3_3
3.4 "Commands listed by category"_#3_4
3.5 "Commands listed alphabetically"_#3_5 :all(b)
:line
3.1 LAMMPS input script :link(3_1),h4
LAMMPS executes by reading commands from a input script (text file),
one line at a time. When the input script ends, LAMMPS exits. Each
command causes LAMMPS to take some action. It may set an internal
variable, read in a file, or run a simulation. Most commands have
default settings, which means you only need to use the command if you
wish to change the default.
In many cases, the ordering of commands in an input script is not
important. However the following rules apply:
(1) LAMMPS does not read your entire input script and then perform a
simulation with all the settings. Rather, the input script is read
one line at a time and each command takes effect when it is read.
Thus this sequence of commands:
timestep 0.5
run 100
run 100 :pre
does something different than this sequence:
run 100
timestep 0.5
run 100 :pre
In the first case, the specified timestep (0.5 fmsec) is used for two
simulations of 100 timesteps each. In the 2nd case, the default
timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5
fmsec timestep is used for the 2nd one.
(2) Some commands are only valid when they follow other commands. For
example you cannot set the temperature of a group of atoms until atoms
have been defined and a group command is used to define which atoms
belong to the group.
(3) Sometimes command B will use values that can be set by command A.
This means command A must precede command B in the input script if it
is to have the desired effect. For example, the
"read_data"_read_data.html command initializes the system by setting
up the simulation box and assigning atoms to processors. If default
values are not desired, the "processors"_processors.html and
"boundary"_boundary.html commands need to be used before read_data to
tell LAMMPS how to map processors to the simulation box.
Many input script errors are detected by LAMMPS and an ERROR or
WARNING message is printed. "This section"_Section_errors.html gives
more information on what errors mean. The documentation for each
command lists restrictions on how the command can be used.
:line
3.2 Parsing rules :link(3_2),h4
Each non-blank line in the input script is treated as a command.
LAMMPS commands are case sensitive. Command names are lower-case, as
are specified command arguments. Upper case letters may be used in
file names or user-chosen ID strings.
Here is how each line in the input script is parsed by LAMMPS:
(1) If the last printable character on the line is a "&" character
(with no surrounding quotes), the command is assumed to continue on
the next line. The next line is concatenated to the previous line by
removing the "&" character and newline. This allows long commands to
be continued across two or more lines.
(2) All characters from the first "#" character onward are treated as
comment and discarded. See an exception in (6). Note that a
comment after a trailing "&" character will prevent the command from
continuing on the next line. Also note that for multi-line commands a
single leading "#" will comment out the entire command.
(3) The line is searched repeatedly for $ characters, which indicate
variables that are replaced with a text string. See an exception in
(6). If the $ is followed by curly brackets, then the variable name
is the text inside the curly brackets. If no curly brackets follow
the $, then the variable name is the single character immediately
following the $. Thus $\{myTemp\} and $x refer to variable names
"myTemp" and "x". See the "variable"_variable.html command for
details of how strings are assigned to variables and how they are
substituted for in input script commands.
(4) The line is broken into "words" separated by whitespace (tabs,
spaces). Note that words can thus contain letters, digits,
underscores, or punctuation characters.
(5) The first word is the command name. All successive words in the
line are arguments.
(6) If you want text with spaces to be treated as a single argument,
it can be enclosed in either double or single quotes. E.g.
print "Volume = $v"
print 'Volume = $v' :pre
The quotes are removed when the single argument is stored internally.
See the "dump modify format"_dump_modify.html or "if"_if.html commands
for examples. A "#" or "$" character that is between quotes will not
be treated as a comment indicator in (2) or substituted for as a
variable in (3).
IMPORTANT NOTE: If the argument is itself a command that requires a
quoted argument (e.g. using a "print"_print.html command as part of an
"if"_if.html or "run every"_run.html command), then the double and
single quotes can be nested in the usual manner. See the doc pages
for those commands for examples. Only one of level of nesting is
allowed, but that should be sufficient for most use cases.
:line
3.3 Input script structure :h4,link(3_3)
This section describes the structure of a typical LAMMPS input script.
The "examples" directory in the LAMMPS distribution contains many
sample input scripts; the corresponding problems are discussed in
"this section"_Section_example.html, and animated on the "LAMMPS WWW
Site"_lws.
A LAMMPS input script typically has 4 parts:
Initialization
Atom definition
Settings
Run a simulation :ol
The last 2 parts can be repeated as many times as desired. I.e. run a
simulation, change some settings, run some more, etc. Each of the 4
parts is now described in more detail. Remember that almost all the
commands need only be used if a non-default value is desired.
(1) Initialization
Set parameters that need to be defined before atoms are created or
read-in from a file.
The relevant commands are "units"_units.html,
"dimension"_dimension.html, "newton"_newton.html,
"processors"_processors.html, "boundary"_boundary.html,
"atom_style"_atom_style.html, "atom_modify"_atom_modify.html.
If force-field parameters appear in the files that will be read, these
commands tell LAMMPS what kinds of force fields are being used:
"pair_style"_pair_style.html, "bond_style"_bond_style.html,
"angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html,
"improper_style"_improper_style.html.
(2) Atom definition
There are 3 ways to define atoms in LAMMPS. Read them in from a data
or restart file via the "read_data"_read_data.html or
"read_restart"_read_restart.html commands. These files can contain
molecular topology information. Or create atoms on a lattice (with no
molecular topology), using these commands: "lattice"_lattice.html,
"region"_region.html, "create_box"_create_box.html,
"create_atoms"_create_atoms.html. The entire set of atoms can be
duplicated to make a larger simulation using the
"replicate"_replicate.html command.
(3) Settings
Once atoms and molecular topology are defined, a variety of settings
can be specified: force field coefficients, simulation parameters,
output options, etc.
Force field coefficients are set by these commands (they can also be
set in the read-in files): "pair_coeff"_pair_coeff.html,
"bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html,
"dihedral_coeff"_dihedral_coeff.html,
"improper_coeff"_improper_coeff.html,
"kspace_style"_kspace_style.html, "dielectric"_dielectric.html,
"special_bonds"_special_bonds.html.
Various simulation parameters are set by these commands:
"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html,
"group"_group.html, "timestep"_timestep.html,
"reset_timestep"_reset_timestep.html, "run_style"_run_style.html,
"min_style"_min_style.html, "min_modify"_min_modify.html.
Fixes impose a variety of boundary conditions, time integration, and
diagnostic options. The "fix"_fix.html command comes in many flavors.
Various computations can be specified for execution during a
simulation using the "compute"_compute.html,
"compute_modify"_compute_modify.html, and "variable"_variable.html
commands.
Output options are set by the "thermo"_thermo.html, "dump"_dump.html,
and "restart"_restart.html commands.
(4) Run a simulation
A molecular dynamics simulation is run using the "run"_run.html
command. Energy minimization (molecular statics) is performed using
the "minimize"_minimize.html command. A parallel tempering
(replica-exchange) simulation can be run using the
"temper"_temper.html command.
:line
3.4 Commands listed by category :link(3_4),h4
This section lists all LAMMPS commands, grouped by category. The
"next section"_#3_5 lists the same commands alphabetically. Note that
some style options for some commands are part of specific LAMMPS
packages, which means they cannot be used unless the package was
included when LAMMPS was built. Not all packages are included in a
default LAMMPS build. These dependencies are listed as Restrictions
in the command's documentation.
Initialization:
"atom_modify"_atom_modify.html, "atom_style"_atom_style.html,
"boundary"_boundary.html, "dimension"_dimension.html,
"newton"_newton.html, "processors"_processors.html, "units"_units.html
Atom definition:
"create_atoms"_create_atoms.html, "create_box"_create_box.html,
"lattice"_lattice.html, "read_data"_read_data.html,
"read_restart"_read_restart.html, "region"_region.html,
"replicate"_replicate.html
Force fields:
"angle_coeff"_angle_coeff.html, "angle_style"_angle_style.html,
"bond_coeff"_bond_coeff.html, "bond_style"_bond_style.html,
"dielectric"_dielectric.html, "dihedral_coeff"_dihedral_coeff.html,
"dihedral_style"_dihedral_style.html,
"improper_coeff"_improper_coeff.html,
"improper_style"_improper_style.html,
"kspace_modify"_kspace_modify.html, "kspace_style"_kspace_style.html,
"pair_coeff"_pair_coeff.html, "pair_modify"_pair_modify.html,
"pair_style"_pair_style.html, "pair_write"_pair_write.html,
"special_bonds"_special_bonds.html
Settings:
"communicate"_communicate.html, "group"_group.html, "mass"_mass.html,
"min_modify"_min_modify.html, "min_style"_min_style.html,
"neigh_modify"_neigh_modify.html, "neighbor"_neighbor.html,
"reset_timestep"_reset_timestep.html, "run_style"_run_style.html,
"set"_set.html, "timestep"_timestep.html, "velocity"_velocity.html
Fixes:
"fix"_fix.html, "fix_modify"_fix_modify.html, "unfix"_unfix.html
Computes:
"compute"_compute.html, "compute_modify"_compute_modify.html,
"uncompute"_uncompute.html
Output:
"dump"_dump.html, "dump_modify"_dump_modify.html,
"restart"_restart.html, "thermo"_thermo.html,
"thermo_modify"_thermo_modify.html, "thermo_style"_thermo_style.html,
"undump"_undump.html, "write_restart"_write_restart.html
Actions:
"delete_atoms"_delete_atoms.html, "delete_bonds"_delete_bonds.html,
"displace_atoms"_displace_atoms.html,
"displace_box"_displace_box.html, "minimize"_minimize.html,
"neb"_neb.html "prd"_prd.html, "run"_run.html, "temper"_temper.html
Miscellaneous:
"clear"_clear.html, "echo"_echo.html, "if"_if.html,
"include"_include.html, "jump"_jump.html, "label"_label.html,
"log"_log.html, "next"_next.html, "print"_print.html,
"shell"_shell.html, "variable"_variable.html
:line
3.5 Individual commands :h4,link(3_5),link(comm)
This section lists all LAMMPS commands alphabetically, with a separate
listing below of styles within certain commands. The "previous
section"_#3_4 lists the same commands, grouped by category. Note that
some style options for some commands are part of specific LAMMPS
packages, which means they cannot be used unless the package was
included when LAMMPS was built. Not all packages are included in a
default LAMMPS build. These dependencies are listed as Restrictions
in the command's documentation.
"angle_coeff"_angle_coeff.html,
"angle_style"_angle_style.html,
"atom_modify"_atom_modify.html,
"atom_style"_atom_style.html,
"bond_coeff"_bond_coeff.html,
"bond_style"_bond_style.html,
"boundary"_boundary.html,
"change_box"_change_box.html,
"clear"_clear.html,
"communicate"_communicate.html,
"compute"_compute.html,
"compute_modify"_compute_modify.html,
"create_atoms"_create_atoms.html,
"create_box"_create_box.html,
"delete_atoms"_delete_atoms.html,
"delete_bonds"_delete_bonds.html,
"dielectric"_dielectric.html,
"dihedral_coeff"_dihedral_coeff.html,
"dihedral_style"_dihedral_style.html,
"dimension"_dimension.html,
"displace_atoms"_displace_atoms.html,
"displace_box"_displace_box.html,
"dump"_dump.html,
"dump_modify"_dump_modify.html,
"echo"_echo.html,
"fix"_fix.html,
"fix_modify"_fix_modify.html,
"group"_group.html,
"if"_if.html,
"improper_coeff"_improper_coeff.html,
"improper_style"_improper_style.html,
"include"_include.html,
"jump"_jump.html,
"kspace_modify"_kspace_modify.html,
"kspace_style"_kspace_style.html,
"label"_label.html,
"lattice"_lattice.html,
"log"_log.html,
"mass"_mass.html,
"minimize"_minimize.html,
"min_modify"_min_modify.html,
"min_style"_min_style.html,
"neb"_neb.html,
"neigh_modify"_neigh_modify.html,
"neighbor"_neighbor.html,
"newton"_newton.html,
"next"_next.html,
"package"_package.html,
"pair_coeff"_pair_coeff.html,
"pair_modify"_pair_modify.html,
"pair_style"_pair_style.html,
"pair_write"_pair_write.html,
"prd"_prd.html,
"print"_print.html,
"processors"_processors.html,
"read_data"_read_data.html,
"read_restart"_read_restart.html,
"region"_region.html,
"replicate"_replicate.html,
"reset_timestep"_reset_timestep.html,
"restart"_restart.html,
"run"_run.html,
"run_style"_run_style.html,
"set"_set.html,
"shell"_shell.html,
"special_bonds"_special_bonds.html,
"suffix"_suffix.html,
"tad"_tad.html,
"temper"_temper.html,
"thermo"_thermo.html,
"thermo_modify"_thermo_modify.html,
"thermo_style"_thermo_style.html,
"timestep"_timestep.html,
"uncompute"_uncompute.html,
"undump"_undump.html,
"unfix"_unfix.html,
"units"_units.html,
"variable"_variable.html,
"velocity"_velocity.html,
"write_restart"_write_restart.html :tb(c=6,ea=c)
:line
Fix styles :h4
See the "fix"_fix.html command for one-line descriptions
of each style or click on the style itself for a full description:
"adapt"_fix_adapt.html,
"addforce"_fix_addforce.html,
"aveforce"_fix_aveforce.html,
"ave/atom"_fix_ave_atom.html,
"ave/correlate"_fix_ave_correlate.html,
"ave/histo"_fix_ave_histo.html,
"ave/spatial"_fix_ave_spatial.html,
"ave/time"_fix_ave_time.html,
"bond/break"_fix_bond_break.html,
"bond/create"_fix_bond_create.html,
"bond/swap"_fix_bond_swap.html,
"box/relax"_fix_box_relax.html,
"deform"_fix_deform.html,
"deposit"_fix_deposit.html,
"drag"_fix_drag.html,
"dt/reset"_fix_dt_reset.html,
"efield"_fix_efield.html,
"enforce2d"_fix_enforce2d.html,
"evaporate"_fix_evaporate.html,
"external"_fix_external.html,
"freeze"_fix_freeze.html,
"gpu"_fix_gpu.html,
"gravity"_fix_gravity.html,
"heat"_fix_heat.html,
"indent"_fix_indent.html,
"langevin"_fix_langevin.html,
"lineforce"_fix_lineforce.html,
"momentum"_fix_momentum.html,
"move"_fix_move.html,
"msst"_fix_msst.html,
"neb"_fix_neb.html,
"nph"_fix_nh.html,
"nph/asphere"_fix_nph_asphere.html,
"nph/sphere"_fix_nph_sphere.html,
"npt"_fix_nh.html,
"npt/asphere"_fix_npt_asphere.html,
"npt/sphere"_fix_npt_sphere.html,
"nve"_fix_nve.html,
"nve/asphere"_fix_nve_asphere.html,
"nve/limit"_fix_nve_limit.html,
"nve/noforce"_fix_nve_noforce.html,
"nve/sphere"_fix_nve_sphere.html,
"nvt"_fix_nh.html,
"nvt/asphere"_fix_nvt_asphere.html,
"nvt/sllod"_fix_nvt_sllod.html,
"nvt/sphere"_fix_nvt_sphere.html,
"orient/fcc"_fix_orient_fcc.html,
"planeforce"_fix_planeforce.html,
"poems"_fix_poems.html,
"pour"_fix_pour.html,
"press/berendsen"_fix_press_berendsen.html,
"print"_fix_print.html,
"qeq/comb"_fix_qeq_comb.html,
"reax/bonds"_fix_reax_bonds.html,
"recenter"_fix_recenter.html,
"rigid"_fix_rigid.html,
"rigid/nve"_fix_rigid.html,
"rigid/nvt"_fix_rigid.html,
"setforce"_fix_setforce.html,
"shake"_fix_shake.html,
"spring"_fix_spring.html,
"spring/rg"_fix_spring_rg.html,
"spring/self"_fix_spring_self.html,
"srd"_fix_srd.html,
"store/force"_fix_store_force.html,
"store/state"_fix_store_state.html,
"temp/berendsen"_fix_temp_berendsen.html,
"temp/rescale"_fix_temp_rescale.html,
"thermal/conductivity"_fix_thermal_conductivity.html,
"tmd"_fix_tmd.html,
"ttm"_fix_ttm.html,
"viscosity"_fix_viscosity.html,
"viscous"_fix_viscous.html,
"wall/colloid"_fix_wall.html,
"wall/gran"_fix_wall_gran.html,
"wall/harmonic"_fix_wall.html,
"wall/lj126"_fix_wall.html,
"wall/lj93"_fix_wall.html,
"wall/reflect"_fix_wall_reflect.html,
"wall/region"_fix_wall_region.html,
"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c)
These are fix styles contributed by users, which can be used if
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
"atc"_fix_atc.html,
"imd"_fix_imd.html,
"langevin/eff"_fix_langevin_eff.html,
"nph/eff"_fix_nh_eff.html,
"npt/eff"_fix_nh_eff.html,
"nve/eff"_fix_nve_eff.html,
"nvt/eff"_fix_nh_eff.html,
"nvt/sllod/eff"_fix_nvt_sllod_eff.html,
"qeq/reax"_fix_qeq_reax.html,
"smd"_fix_smd.html,
"temp/rescale/eff"_fix_temp_rescale_eff.html :tb(c=6,ea=c)
These are accelerated fix styles, which can be used if LAMMPS is
built with the "appropriate accelerated
package"_Section_accelerate.html.
"freeze/cuda"_fix_freeze.html,
"addforce/cuda"_fix_addforce.html,
"aveforce/cuda"_fix_aveforce.html,
"enforce2d/cuda"_fix_enforce2d.html,
"gravity/cuda"_fix_gravity.html,
"npt/cuda"_fix_nh.html,
"nve/cuda"_fix_nh.html,
"nvt/cuda"_fix_nh.html,
"setforce/cuda"_fix_setforce.html,
"shake/cuda"_fix_shake.html,
"temp/berendsen/cuda"_fix_temp_berendsen.html,
"temp/rescale/cuda"_fix_temp_rescale.html,
"temp/rescale/limit/cuda"_fix_temp_rescale.html,
"viscous/cuda"_fix_viscous.html :tb(c=6,ea=c)
:line
Compute styles :h4
See the "compute"_compute.html command for one-line descriptions of
each style or click on the style itself for a full description:
"angle/local"_compute_angle_local.html,
"atom/molecule"_compute_atom_molecule.html,
"bond/local"_compute_bond_local.html,
"centro/atom"_compute_centro_atom.html,
"cluster/atom"_compute_cluster_atom.html,
"cna/atom"_compute_cna_atom.html,
"com"_compute_com.html,
"com/molecule"_compute_com_molecule.html,
"coord/atom"_compute_coord_atom.html,
"damage/atom"_compute_damage_atom.html,
"dihedral/local"_compute_dihedral_local.html,
"displace/atom"_compute_displace_atom.html,
"erotate/asphere"_compute_erotate_asphere.html,
"erotate/sphere"_compute_erotate_sphere.html,
"event/displace"_compute_event_displace.html,
"group/group"_compute_group_group.html,
"gyration"_compute_gyration.html,
"gyration/molecule"_compute_gyration_molecule.html,
"heat/flux"_compute_heat_flux.html,
"improper/local"_compute_improper_local.html,
"ke"_compute_ke.html,
"ke/atom"_compute_ke_atom.html,
"msd"_compute_msd.html,
"msd/molecule"_compute_msd_molecule.html,
"pair"_compute_pair.html,
"pair/local"_compute_pair_local.html,
"pe"_compute_pe.html,
"pe/atom"_compute_pe_atom.html,
"pressure"_compute_pressure.html,
"property/atom"_compute_property_atom.html,
"property/local"_compute_property_local.html,
"property/molecule"_compute_property_molecule.html,
"rdf"_compute_rdf.html,
"reduce"_compute_reduce.html,
"reduce/region"_compute_reduce.html,
"slice"_compute_slice.html,
"stress/atom"_compute_stress_atom.html,
"temp"_compute_temp.html,
"temp/asphere"_compute_temp_asphere.html,
"temp/com"_compute_temp_com.html,
"temp/deform"_compute_temp_deform.html,
"temp/partial"_compute_temp_partial.html,
"temp/profile"_compute_temp_profile.html,
"temp/ramp"_compute_temp_ramp.html,
"temp/region"_compute_temp_region.html,
"temp/sphere"_compute_temp_sphere.html,
"ti"_compute_ti.html :tb(c=6,ea=c)
These are compute styles contributed by users, which can be used if
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
"ackland/atom"_compute_ackland_atom.html,
"ke/eff"_compute_ke_eff.html,
"ke/atom/eff"_compute_ke_atom_eff.html,
"temp/eff"_compute_temp_eff.html,
"temp/deform/eff"_compute_temp_deform_eff.html,
"temp/region/eff"_compute_temp_region_eff.html :tb(c=6,ea=c)
These are accelerated compute styles, which can be used if LAMMPS is
built with the "appropriate accelerated
package"_Section_accelerate.html.
"pe/cuda"_compute_pe.html,
"pressure/cuda"_compute_pressure.html,
"temp/cuda"_compute_temp.html,
"temp/partial/cuda"_compute_temp_partial.html :tb(c=6,ea=c)
:line
Pair_style potentials :h4
See the "pair_style"_pair_style.html command for an overview of pair
potentials. Click on the style itself for a full description:
"none"_pair_none.html,
"hybrid"_pair_hybrid.html,
"hybrid/overlay"_pair_hybrid.html,
"adp"_pair_adp.html,
"airebo"_pair_airebo.html,
"born"_pair_born.html,
"born/coul/long"_pair_born.html,
"buck"_pair_buck.html,
"buck/coul/cut"_pair_buck.html,
"buck/coul/long"_pair_buck.html,
"colloid"_pair_colloid.html,
"comb"_pair_comb.html,
"coul/cut"_pair_coul.html,
"coul/debye"_pair_coul.html,
"coul/long"_pair_coul.html,
"dipole/cut"_pair_dipole.html,
"dpd"_pair_dpd.html,
"dpd/tstat"_pair_dpd.html,
"dsmc"_pair_dsmc.html,
"eam"_pair_eam.html,
"eam/alloy"_pair_eam.html,
"eam/fs"_pair_eam.html,
"eim"_pair_eim.html,
"gauss"_pair_gauss.html,
"gayberne"_pair_gayberne.html,
"gran/hertz/history"_pair_gran.html,
"gran/hooke"_pair_gran.html,
"gran/hooke/history"_pair_gran.html,
"hbond/dreiding/lj"_pair_hbond_dreiding.html,
"hbond/dreiding/morse"_pair_hbond_dreiding.html,
"lj/charmm/coul/charmm"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit"_pair_charmm.html,
"lj/charmm/coul/long"_pair_charmm.html,
"lj/class2"_pair_class2.html,
"lj/class2/coul/cut"_pair_class2.html,
"lj/class2/coul/long"_pair_class2.html,
"lj/cut"_pair_lj.html,
"lj/cut/coul/cut"_pair_lj.html,
"lj/cut/coul/debye"_pair_lj.html,
"lj/cut/coul/long"_pair_lj.html,
"lj/cut/coul/long/tip4p"_pair_lj.html,
"lj/expand"_pair_lj_expand.html,
"lj/gromacs"_pair_gromacs.html,
"lj/gromacs/coul/gromacs"_pair_gromacs.html,
"lj/smooth"_pair_lj_smooth.html,
"lj96/cut"_pair_lj96.html,
"lubricate"_pair_lubricate.html,
"meam"_pair_meam.html,
"morse"_pair_morse.html,
"peri/lps"_pair_peri.html,
"peri/pmb"_pair_peri.html,
"reax"_pair_reax.html,
"rebo"_pair_airebo.html,
"resquared"_pair_resquared.html,
"soft"_pair_soft.html,
"sw"_pair_sw.html,
"table"_pair_table.html,
"tersoff"_pair_tersoff.html,
"tersoff/zbl"_pair_tersoff_zbl.html,
"yukawa"_pair_yukawa.html,
"yukawa/colloid"_pair_yukawa_colloid.html :tb(c=4,ea=c)
These are pair styles contributed by users, which can be used if
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
+"awpmd/cut"_pair_awpmd.html,
"buck/coul"_pair_buck_coul.html,
"cg/cmm"_pair_cmm.html,
"cg/cmm/coul/cut"_pair_cmm.html,
"cg/cmm/coul/long"_pair_cmm.html,
"eam/cd"_pair_eam.html,
"eff/cut"_pair_eff.html,
"lj/coul"_pair_lj_coul.html,
"reax/c"_pair_reax_c.html :tb(c=4,ea=c)
These are accelerated pair styles, which can be used if LAMMPS is
built with the "appropriate accelerated
package"_Section_accelerate.html.
"born/coul/long/cuda"_pair_born.html,
"buck/coul/cut/cuda"_pair_buck.html,
"buck/coul/long/cuda"_pair_buck.html,
"buck/cuda"_pair_buck.html,
"cg/cmm/coul/cut/cuda"_pair_cmm.html,
"cg/cmm/coul/debye/cuda"_pair_cmm.html,
"cg/cmm/coul/long/cuda"_pair_cmm.html,
"cg/cmm/coul/long/gpu"_pair_cmm.html,
"cg/cmm/cuda"_pair_cmm.html,
"cg/cmm/gpu"_pair_cmm.html,
"eam/alloy/cuda"_pair_eam.html,
"eam/alloy/opt"_pair_eam.html,
"eam/cuda"_pair_eam.html,
"eam/fs/cuda"_pair_eam.html,
"eam/fs/opt"_pair_eam.html,
"eam/opt"_pair_eam.html,
"gayberne/gpu"_pair_gayberne.html,
"gran/hooke/cuda"_pair_gran.html,
"lj/charmm/coul/charmm/cuda"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit/cuda"_pair_charmm.html,
"lj/charmm/coul/long/cuda"_pair_charmm.html,
"lj/charmm/coul/long/gpu"_pair_charmm.html,
"lj/charmm/coul/long/opt"_pair_charmm.html,
"lj/class2/coul/cut/cuda"_pair_class2.html,
"lj/class2/coul/long/cuda"_pair_class2.html,
"lj/class2/coul/long/gpu"_pair_class2.html,
"lj/class2/cuda"_pair_class2.html,
"lj/class2/gpu"_pair_class2.html,
"lj/cut/coul/cut/cuda"_pair_lj.html,
"lj/cut/coul/cut/gpu"_pair_lj.html,
"lj/cut/coul/debye/cuda"_pair_lj.html,
"lj/cut/coul/long/cuda"_pair_lj.html,
"lj/cut/coul/long/gpu"_pair_lj.html,
"lj/cut/cuda"_pair_lj.html,
"lj/cut/experimental/cuda"_pair_lj.html,
"lj/cut/gpu"_pair_lj.html,
"lj/cut/opt"_pair_lj.html,
"lj/expand/cuda"_pair_lj_expand.html,
"lj/expand/gpu"_pair_lj_expand.html,
"lj/gromacs/coul/gromacs/cuda"_pair_gromacs.html,
"lj/gromacs/cuda"_pair_gromacs.html,
"lj/smooth/cuda"_pair_lj_smooth.html,
"lj96/cut/cuda"_pair_lj96.html,
"lj96/cut/gpu"_pair_lj96.html,
"morse/cuda"_pair_morse.html,
"morse/gpu"_pair_morse.html,
"morse/opt"_pair_morse.html,
"resquared/gpu"_pair_resquared.html :tb(c=4,ea=c)
:line
Bond_style potentials :h4
See the "bond_style"_bond_style.html command for an overview of bond
potentials. Click on the style itself for a full description:
"none"_bond_none.html,
"hybrid"_bond_hybrid.html,
"class2"_bond_class2.html,
"fene"_bond_fene.html,
"fene/expand"_bond_fene_expand.html,
"harmonic"_bond_harmonic.html,
"morse"_bond_morse.html,
"nonlinear"_bond_nonlinear.html,
"quartic"_bond_quartic.html,
"table"_bond_table.html :tb(c=4,ea=c,w=100)
:line
Angle_style potentials :h4
See the "angle_style"_angle_style.html command for an overview of
angle potentials. Click on the style itself for a full description:
"none"_angle_none.html,
"hybrid"_angle_hybrid.html,
"charmm"_angle_charmm.html,
"class2"_angle_class2.html,
"cosine"_angle_cosine.html,
"cosine/delta"_angle_cosine_delta.html,
"cosine/periodic"_angle_cosine_periodic.html,
"cosine/squared"_angle_cosine_squared.html,
"harmonic"_angle_harmonic.html,
"table"_angle_table.html :tb(c=4,ea=c,w=100)
These are angle styles contributed by users, which can be used if
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
"cg/cmm"_angle_cmm.html :tb(c=4,ea=c)
:line
Dihedral_style potentials :h4
See the "dihedral_style"_dihedral_style.html command for an overview
of dihedral potentials. Click on the style itself for a full
description:
"none"_dihedral_none.html,
"hybrid"_dihedral_hybrid.html,
"charmm"_dihedral_charmm.html,
"class2"_dihedral_class2.html,
"harmonic"_dihedral_harmonic.html,
"helix"_dihedral_helix.html,
"multi/harmonic"_dihedral_multi_harmonic.html,
"opls"_dihedral_opls.html :tb(c=4,ea=c,w=100)
:line
Improper_style potentials :h4
See the "improper_style"_improper_style.html command for an overview
of improper potentials. Click on the style itself for a full
description:
"none"_improper_none.html,
"hybrid"_improper_hybrid.html,
"class2"_improper_class2.html,
"cvff"_improper_cvff.html,
"harmonic"_improper_harmonic.html,
"umbrella"_improper_umbrella.html :tb(c=4,ea=c,w=100)
:line
Kspace solvers :h4
See the "kspace_style"_kspace_style.html command for an overview of
Kspace solvers. Click on the style itself for a full description:
"ewald"_kspace_style.html,
"pppm"_kspace_style.html,
"pppm/tip4p"_kspace_style.html :tb(c=4,ea=c,w=100)
These are Kspace solvers contributed by users, which can be used if
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
"ewald/n"_kspace_style.html :tb(c=4,ea=c,w=100)
These are accelerated Kspace solvers, which can be used if LAMMPS is
built with the "appropriate accelerated
package"_Section_accelerate.html.
"pppm/cuda"_kspace_style.html,
"pppm/gpu/single"_kspace_style.html,
"pppm/gpu/double"_kspace_style.html :tb(c=4,ea=c)
diff --git a/doc/Section_howto.html b/doc/Section_howto.html
index 18c003bb3..1bc6d97ec 100644
--- a/doc/Section_howto.html
+++ b/doc/Section_howto.html
@@ -1,1950 +1,1961 @@
<HTML>
<CENTER><A HREF = "Section_commands.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_example.html">Next Section</A>
</CENTER>
<HR>
<H3>4. How-to discussions
</H3>
<P>The following sections describe how to use various options within
LAMMPS.
</P>
4.1 <A HREF = "#4_1">Restarting a simulation</A><BR>
4.2 <A HREF = "#4_2">2d simulations</A><BR>
4.3 <A HREF = "#4_3">CHARMM, AMBER, and DREIDING force fields</A><BR>
4.4 <A HREF = "#4_4">Running multiple simulations from one input script</A><BR>
4.5 <A HREF = "#4_5">Multi-replica simulations</A><BR>
4.6 <A HREF = "#4_6">Granular models</A><BR>
4.7 <A HREF = "#4_7">TIP3P water model</A><BR>
4.8 <A HREF = "#4_8">TIP4P water model</A><BR>
4.9 <A HREF = "#4_9">SPC water model</A><BR>
4.10 <A HREF = "#4_10">Coupling LAMMPS to other codes</A><BR>
4.11 <A HREF = "#4_11">Visualizing LAMMPS snapshots</A><BR>
4.12 <A HREF = "#4_12">Triclinic (non-orthogonal) simulation boxes</A><BR>
4.13 <A HREF = "#4_13">NEMD simulations</A><BR>
4.14 <A HREF = "#4_14">Extended spherical and aspherical particles</A><BR>
4.15 <A HREF = "#4_15">Output from LAMMPS (thermo, dumps, computes, fixes, variables)</A><BR>
4.16 <A HREF = "#4_16">Thermostatting, barostatting and computing temperature</A><BR>
4.17 <A HREF = "#4_17">Walls</A><BR>
4.18 <A HREF = "#4_18">Elastic constants</A><BR>
4.19 <A HREF = "#4_19">Library interface to LAMMPS</A><BR>
4.20 <A HREF = "#4_20">Calculating thermal conductivity</A><BR>
4.21 <A HREF = "#4_21">Calculating viscosity</A> <BR>
<P>The example input scripts included in the LAMMPS distribution and
highlighted in <A HREF = "Section_example.html">this section</A> also show how to
setup and run various kinds of simulations.
</P>
<HR>
<A NAME = "4_1"></A><H4>4.1 Restarting a simulation
</H4>
<P>There are 3 ways to continue a long LAMMPS simulation. Multiple
<A HREF = "run.html">run</A> commands can be used in the same input script. Each
run will continue from where the previous run left off. Or binary
restart files can be saved to disk using the <A HREF = "restart.html">restart</A>
command. At a later time, these binary files can be read via a
<A HREF = "read_restart.html">read_restart</A> command in a new script. Or they can
be converted to text data files and read by a
<A HREF = "read_data.html">read_data</A> command in a new script. <A HREF = "Section_tools.html">This
section</A> discusses the <I>restart2data</I> tool that is
used to perform the conversion.
</P>
<P>Here we give examples of 2 scripts that read either a binary restart
file or a converted data file and then issue a new run command to
continue where the previous run left off. They illustrate what
settings must be made in the new script. Details are discussed in the
documentation for the <A HREF = "read_restart.html">read_restart</A> and
<A HREF = "read_data.html">read_data</A> commands.
</P>
<P>Look at the <I>in.chain</I> input script provided in the <I>bench</I> directory
of the LAMMPS distribution to see the original script that these 2
scripts are based on. If that script had the line
</P>
<PRE>restart 50 tmp.restart
</PRE>
<P>added to it, it would produce 2 binary restart files (tmp.restart.50
and tmp.restart.100) as it ran.
</P>
<P>This script could be used to read the 1st restart file and re-run the
last 50 timesteps:
</P>
<PRE>read_restart tmp.restart.50
</PRE>
<PRE>neighbor 0.4 bin
neigh_modify every 1 delay 1
</PRE>
<PRE>fix 1 all nve
fix 2 all langevin 1.0 1.0 10.0 904297
</PRE>
<PRE>timestep 0.012
</PRE>
<PRE>run 50
</PRE>
<P>Note that the following commands do not need to be repeated because
their settings are included in the restart file: <I>units, atom_style,
special_bonds, pair_style, bond_style</I>. However these commands do
need to be used, since their settings are not in the restart file:
<I>neighbor, fix, timestep</I>.
</P>
<P>If you actually use this script to perform a restarted run, you will
notice that the thermodynamic data match at step 50 (if you also put a
"thermo 50" command in the original script), but do not match at step
100. This is because the <A HREF = "fix_langevin.html">fix langevin</A> command
uses random numbers in a way that does not allow for perfect restarts.
</P>
<P>As an alternate approach, the restart file could be converted to a data
file using this tool:
</P>
<PRE>restart2data tmp.restart.50 tmp.restart.data
</PRE>
<P>Then, this script could be used to re-run the last 50 steps:
</P>
<PRE>units lj
atom_style bond
pair_style lj/cut 1.12
pair_modify shift yes
bond_style fene
special_bonds 0.0 1.0 1.0
</PRE>
<PRE>read_data tmp.restart.data
</PRE>
<PRE>neighbor 0.4 bin
neigh_modify every 1 delay 1
</PRE>
<PRE>fix 1 all nve
fix 2 all langevin 1.0 1.0 10.0 904297
</PRE>
<PRE>timestep 0.012
</PRE>
<PRE>reset_timestep 50
run 50
</PRE>
<P>Note that nearly all the settings specified in the original <I>in.chain</I>
script must be repeated, except the <I>pair_coeff</I> and <I>bond_coeff</I>
commands since the new data file lists the force field coefficients.
Also, the <A HREF = "reset_timestep.html">reset_timestep</A> command is used to tell
LAMMPS the current timestep. This value is stored in restart files,
but not in data files.
</P>
<HR>
<A NAME = "4_2"></A><H4>4.2 2d simulations
</H4>
<P>Use the <A HREF = "dimension.html">dimension</A> command to specify a 2d simulation.
</P>
<P>Make the simulation box periodic in z via the <A HREF = "boundary.html">boundary</A>
command. This is the default.
</P>
<P>If using the <A HREF = "create_box.html">create box</A> command to define a
simulation box, set the z dimensions narrow, but finite, so that the
create_atoms command will tile the 3d simulation box with a single z
plane of atoms - e.g.
</P>
<PRE><A HREF = "create_box.html">create box</A> 1 -10 10 -10 10 -0.25 0.25
</PRE>
<P>If using the <A HREF = "read_data.html">read data</A> command to read in a file of
atom coordinates, set the "zlo zhi" values to be finite but narrow,
similar to the create_box command settings just described. For each
atom in the file, assign a z coordinate so it falls inside the
z-boundaries of the box - e.g. 0.0.
</P>
<P>Use the <A HREF = "fix_enforce2d.html">fix enforce2d</A> command as the last
defined fix to insure that the z-components of velocities and forces
are zeroed out every timestep. The reason to make it the last fix is
so that any forces induced by other fixes will be zeroed out.
</P>
<P>Many of the example input scripts included in the LAMMPS distribution
are for 2d models.
</P>
<P>IMPORTANT NOTE: Some models in LAMMPS treat particles as extended
spheres, as opposed to point particles. In 2d, the particles will
still be spheres, not disks, meaning their moment of inertia will be
the same as in 3d.
</P>
<HR>
<A NAME = "4_3"></A><H4>4.3 CHARMM, AMBER, and DREIDING force fields
</H4>
<P>A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly
used in the CHARMM, AMBER, and DREIDING force fields. Setting
coefficients is done in the input data file via the
<A HREF = "read_data.html">read_data</A> command or in the input script with
commands like <A HREF = "pair_coeff.html">pair_coeff</A> or
<A HREF = "bond_coeff.html">bond_coeff</A>. See <A HREF = "Section_tools.html">this section</A>
for additional tools that can use CHARMM or AMBER to assign force
field coefficients and convert their output into LAMMPS input.
</P>
<P>See <A HREF = "#MacKerell">(MacKerell)</A> for a description of the CHARMM force
field. See <A HREF = "#Cornell">(Cornell)</A> for a description of the AMBER force
field.
</P>
<P>These style choices compute force field formulas that are consistent
with common options in CHARMM or AMBER. See each command's
documentation for the formula it computes.
</P>
<UL><LI><A HREF = "bond_harmonic.html">bond_style</A> harmonic
<LI><A HREF = "angle_charmm.html">angle_style</A> charmm
<LI><A HREF = "dihedral_charmm.html">dihedral_style</A> charmm
<LI><A HREF = "pair_charmm.html">pair_style</A> lj/charmm/coul/charmm
<LI><A HREF = "pair_charmm.html">pair_style</A> lj/charmm/coul/charmm/implicit
<LI><A HREF = "pair_charmm.html">pair_style</A> lj/charmm/coul/long
</UL>
<UL><LI><A HREF = "special_bonds.html">special_bonds</A> charmm
<LI><A HREF = "special_bonds.html">special_bonds</A> amber
</UL>
<P>DREIDING is a generic force field developed by the <A HREF = "http://www.wag.caltech.edu">Goddard
group</A> at Caltech and is useful for
predicting structures and dynamics of organic, biological and
main-group inorganic molecules. The philosophy in DREIDING is to use
general force constants and geometry parameters based on simple
hybridization considerations, rather than individual force constants
and geometric parameters that depend on the particular combinations of
atoms involved in the bond, angle, or torsion terms. DREIDING has an
<A HREF = "pair_hbond_dreiding.html">explicit hydrogen bond term</A> to describe
interactions involving a hydrogen atom on very electronegative atoms
(N, O, F).
</P>
<P>See <A HREF = "#Mayo">(Mayo)</A> for a description of the DREIDING force field
</P>
<P>These style choices compute force field formulas that are consistent
with the DREIDING force field. See each command's
documentation for the formula it computes.
</P>
<UL><LI><A HREF = "bond_harmonic.html">bond_style</A> harmonic
<LI><A HREF = "bond_morse.html">bond_style</A> morse
</UL>
<UL><LI><A HREF = "angle_harmonic.html">angle_style</A> harmonic
<LI><A HREF = "angle_cosine.html">angle_style</A> cosine
<LI><A HREF = "angle_cosine_periodic.html">angle_style</A> cosine/periodic
</UL>
<UL><LI><A HREF = "dihedral_charmm.html">dihedral_style</A> charmm
<LI><A HREF = "improper_umbrella.html">improper_style</A> umbrella
</UL>
<UL><LI><A HREF = "pair_buck.html">pair_style</A> buck
<LI><A HREF = "pair_buck.html">pair_style</A> buck/coul/cut
<LI><A HREF = "pair_buck.html">pair_style</A> buck/coul/long
<LI><A HREF = "pair_lj.html">pair_style</A> lj/cut
<LI><A HREF = "pair_lj.html">pair_style</A> lj/cut/coul/cut
<LI><A HREF = "pair_lj.html">pair_style</A> lj/cut/coul/long
</UL>
<UL><LI><A HREF = "pair_hbond_dreiding.html">pair_style</A> hbond/dreiding/lj
<LI><A HREF = "pair_hbond_dreiding.html">pair_style</A> hbond/dreiding/morse
</UL>
<UL><LI><A HREF = "special_bonds.html">special_bonds</A> dreiding
</UL>
<HR>
<A NAME = "4_4"></A><H4>4.4 Running multiple simulations from one input script
</H4>
<P>This can be done in several ways. See the documentation for
individual commands for more details on how these examples work.
</P>
<P>If "multiple simulations" means continue a previous simulation for
more timesteps, then you simply use the <A HREF = "run.html">run</A> command
multiple times. For example, this script
</P>
<PRE>units lj
atom_style atomic
read_data data.lj
run 10000
run 10000
run 10000
run 10000
run 10000
</PRE>
<P>would run 5 successive simulations of the same system for a total of
50,000 timesteps.
</P>
<P>If you wish to run totally different simulations, one after the other,
the <A HREF = "clear.html">clear</A> command can be used in between them to
re-initialize LAMMPS. For example, this script
</P>
<PRE>units lj
atom_style atomic
read_data data.lj
run 10000
clear
units lj
atom_style atomic
read_data data.lj.new
run 10000
</PRE>
<P>would run 2 independent simulations, one after the other.
</P>
<P>For large numbers of independent simulations, you can use
<A HREF = "variable.html">variables</A> and the <A HREF = "next.html">next</A> and
<A HREF = "jump.html">jump</A> commands to loop over the same input script
multiple times with different settings. For example, this
script, named in.polymer
</P>
<PRE>variable d index run1 run2 run3 run4 run5 run6 run7 run8
shell cd $d
read_data data.polymer
run 10000
shell cd ..
clear
next d
jump in.polymer
</PRE>
<P>would run 8 simulations in different directories, using a data.polymer
file in each directory. The same concept could be used to run the
same system at 8 different temperatures, using a temperature variable
and storing the output in different log and dump files, for example
</P>
<PRE>variable a loop 8
variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15
log log.$a
read data.polymer
velocity all create $t 352839
fix 1 all nvt $t $t 100.0
dump 1 all atom 1000 dump.$a
run 100000
next t
next a
jump in.polymer
</PRE>
<P>All of the above examples work whether you are running on 1 or
multiple processors, but assumed you are running LAMMPS on a single
partition of processors. LAMMPS can be run on multiple partitions via
the "-partition" command-line switch as described in <A HREF = "Section_start.html#2_6">this
section</A> of the manual.
</P>
<P>In the last 2 examples, if LAMMPS were run on 3 partitions, the same
scripts could be used if the "index" and "loop" variables were
replaced with <I>universe</I>-style variables, as described in the
<A HREF = "variable.html">variable</A> command. Also, the "next t" and "next a"
commands would need to be replaced with a single "next a t" command.
With these modifications, the 8 simulations of each script would run
on the 3 partitions one after the other until all were finished.
Initially, 3 simulations would be started simultaneously, one on each
partition. When one finished, that partition would then start
the 4th simulation, and so forth, until all 8 were completed.
</P>
<HR>
<A NAME = "4_5"></A><H4>4.5 Multi-replica simulations
</H4>
<P>Several commands in LAMMPS run mutli-replica simulations, meaning
that multiple instances (replicas) of your simulation are run
simultaneously, with small amounts of data exchanged between replicas
periodically.
</P>
<P>These are the relevant commands:
</P>
<UL><LI><A HREF = "neb.html">neb</A> for nudged elastic band calculations
<LI><A HREF = "prd.html">prd</A> for parallel replica dynamics
<LI><A HREF = "tad.html">tad</A> for temperature accelerated dynamics
<LI><A HREF = "temper.html">temper</A> for parallel tempering
</UL>
<P>NEB is a method for finding transition states and barrier energies.
PRD and TAD are methods for performing accelerated dynamics to find
and perform infrequent events. Parallel tempering or replica exchange
runs different replicas at a series of temperature to facilitate
rare-event sampling.
</P>
<P>These command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>
<P>In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at
run-time by using the <A HREF = "Section_start.html#2_6">-partition command-line
switch</A> to launch LAMMPS on multiple
partitions, which in this context are the same as replicas. E.g.
these commands:
</P>
<PRE>mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb
</PRE>
<P>would each run 8 replicas, on either 16 or 8 processors. Note the use
of the <A HREF = "Section_start.html#2_6">-in command-line switch</A> to specify the
input script which is required when running in multi-replica mode.
</P>
<P>Also note that with MPI installed on a machine (e.g. your desktop),
you can run on more (virtual) processors than you have physical
processors. Thus the above commands could be run on a
single-processor (or few-processor) desktop so that you can run
a multi-replica simulation on more replicas than you have
physical processors.
</P>
<HR>
<A NAME = "4_6"></A><H4>4.6 Granular models
</H4>
<P>Granular system are composed of spherical particles with a diameter,
as opposed to point particles. This means they have an angular
velocity and torque can be imparted to them to cause them to rotate.
</P>
<P>To run a simulation of a granular model, you will want to use
the following commands:
</P>
<UL><LI><A HREF = "atom_style.html">atom_style sphere</A>
<LI><A HREF = "fix_nve_sphere.html">fix nve/sphere</A>
<LI><A HREF = "fix_gravity.html">fix gravity</A>
</UL>
<P>This compute
</P>
<UL><LI><A HREF = "compute_erotate_sphere.html">compute erotate/sphere</A>
</UL>
<P>calculates rotational kinetic energy which can be <A HREF = "Section_howto.html#4_15">output with
thermodynamic info</A>.
</P>
<P>Use one of these 3 pair potentials, which compute forces and torques
between interacting pairs of particles:
</P>
<UL><LI><A HREF = "pair_style.html">pair_style</A> gran/history
<LI><A HREF = "pair_style.html">pair_style</A> gran/no_history
<LI><A HREF = "pair_style.html">pair_style</A> gran/hertzian
</UL>
<P>These commands implement fix options specific to granular systems:
</P>
<UL><LI><A HREF = "fix_freeze.html">fix freeze</A>
<LI><A HREF = "fix_pour.html">fix pour</A>
<LI><A HREF = "fix_viscous.html">fix viscous</A>
<LI><A HREF = "fix_wall_gran.html">fix wall/gran</A>
</UL>
<P>The fix style <I>freeze</I> zeroes both the force and torque of frozen
atoms, and should be used for granular system instead of the fix style
<I>setforce</I>.
</P>
<P>For computational efficiency, you can eliminate needless pairwise
computations between frozen atoms by using this command:
</P>
<UL><LI><A HREF = "neigh_modify.html">neigh_modify</A> exclude
</UL>
<HR>
<A NAME = "4_7"></A><H4>4.7 TIP3P water model
</H4>
<P>The TIP3P water model as implemented in CHARMM
<A HREF = "#MacKerell">(MacKerell)</A> specifies a 3-site rigid water molecule with
charges and Lennard-Jones parameters assigned to each of the 3 atoms.
In LAMMPS the <A HREF = "fix_shake.html">fix shake</A> command can be used to hold
the two O-H bonds and the H-O-H angle rigid. A bond style of
<I>harmonic</I> and an angle style of <I>harmonic</I> or <I>charmm</I> should also be
used.
</P>
<P>These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP3P-CHARMM model with a
cutoff. The K values can be used if a flexible TIP3P model (without
fix shake) is desired. If the LJ epsilon and sigma for HH and OH are
set to 0.0, it corresponds to the original 1983 TIP3P model
<A HREF = "#Jorgensen">(Jorgensen)</A>.
</P>
<P>O mass = 15.9994<BR>
H mass = 1.008 <BR>
</P>
<P>O charge = -0.834<BR>
H charge = 0.417 <BR>
</P>
<P>LJ epsilon of OO = 0.1521<BR>
LJ sigma of OO = 3.1507<BR>
LJ epsilon of HH = 0.0460<BR>
LJ sigma of HH = 0.4000<BR>
LJ epsilon of OH = 0.0836<BR>
LJ sigma of OH = 1.7753 <BR>
</P>
<P>K of OH bond = 450<BR>
r0 of OH bond = 0.9572 <BR>
</P>
<P>K of HOH angle = 55<BR>
theta of HOH angle = 104.52 <BR>
</P>
<P>These are the parameters to use for TIP3P with a long-range Coulombic
solver (Ewald or PPPM in LAMMPS), see <A HREF = "#Price">(Price)</A> for details:
</P>
<P>O mass = 15.9994<BR>
H mass = 1.008 <BR>
</P>
<P>O charge = -0.830<BR>
H charge = 0.415 <BR>
</P>
<P>LJ epsilon of OO = 0.102<BR>
LJ sigma of OO = 3.188<BR>
LJ epsilon, sigma of OH, HH = 0.0 <BR>
</P>
<P>K of OH bond = 450<BR>
r0 of OH bond = 0.9572 <BR>
</P>
<P>K of HOH angle = 55<BR>
theta of HOH angle = 104.52 <BR>
</P>
<P>Wikipedia also has a nice article on <A HREF = "http://en.wikipedia.org/wiki/Water_model">water
models</A>.
</P>
<HR>
<A NAME = "4_8"></A><H4>4.8 TIP4P water model
</H4>
<P>The four-point TIP4P rigid water model extends the traditional
three-point TIP3P model by adding an additional site, usually
massless, where the charge associated with the oxygen atom is placed.
This site M is located at a fixed distance away from the oxygen along
the bisector of the HOH bond angle. A bond style of <I>harmonic</I> and an
angle style of <I>harmonic</I> or <I>charmm</I> should also be used.
</P>
<P>Currently, only a four-point model for long-range Coulombics is
implemented via the LAMMPS <A HREF = "pair_lj.html">pair style
lj/cut/coul/long/tip4p</A>. A cutoff version may be added
the future. For both models, the bond lengths and bond angles should
be held fixed using the <A HREF = "fix_shake.html">fix shake</A> command.
</P>
<P>These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP4P model with a cutoff
<A HREF = "#Jorgensen">(Jorgensen)</A>. Note that the OM distance is specified in
the <A HREF = "pair_style.html">pair_style</A> command, not as part of the pair
coefficients.
</P>
<P>O mass = 15.9994<BR>
H mass = 1.008 <BR>
</P>
<P>O charge = -1.040<BR>
H charge = 0.520 <BR>
</P>
<P>r0 of OH bond = 0.9572<BR>
theta of HOH angle = 104.52 <BR>
</P>
<P>OM distance = 0.15 <BR>
</P>
<P>LJ epsilon of O-O = 0.1550<BR>
LJ sigma of O-O = 3.1536<BR>
LJ epsilon, sigma of OH, HH = 0.0 <BR>
</P>
<P>These are the parameters to use for TIP4P with a long-range Coulombic
solver (Ewald or PPPM in LAMMPS):
</P>
<P>O mass = 15.9994<BR>
H mass = 1.008 <BR>
</P>
<P>O charge = -1.0484<BR>
H charge = 0.5242 <BR>
</P>
<P>r0 of OH bond = 0.9572<BR>
theta of HOH angle = 104.52 <BR>
</P>
<P>OM distance = 0.1250 <BR>
</P>
<P>LJ epsilon of O-O = 0.16275<BR>
LJ sigma of O-O = 3.16435<BR>
LJ epsilon, sigma of OH, HH = 0.0 <BR>
</P>
<P>Wikipedia also has a nice article on <A HREF = "http://en.wikipedia.org/wiki/Water_model">water
models</A>.
</P>
<HR>
<A NAME = "4_9"></A><H4>4.9 SPC water model
</H4>
<P>The SPC water model specifies a 3-site rigid water molecule with
charges and Lennard-Jones parameters assigned to each of the 3 atoms.
In LAMMPS the <A HREF = "fix_shake.html">fix shake</A> command can be used to hold
the two O-H bonds and the H-O-H angle rigid. A bond style of
<I>harmonic</I> and an angle style of <I>harmonic</I> or <I>charmm</I> should also be
used.
</P>
<P>These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid SPC model.
</P>
<P>O mass = 15.9994<BR>
H mass = 1.008 <BR>
</P>
<P>O charge = -0.820<BR>
H charge = 0.410 <BR>
</P>
<P>LJ epsilon of OO = 0.1553<BR>
LJ sigma of OO = 3.166<BR>
LJ epsilon, sigma of OH, HH = 0.0 <BR>
</P>
<P>r0 of OH bond = 1.0<BR>
theta of HOH angle = 109.47 <BR>
</P>
<P>Note that as originally proposed, the SPC model was run with a 9
Angstrom cutoff for both LJ and Coulommbic terms. It can also be used
with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing
any of the parameters above, though it becomes a different model in
that mode of usage.
</P>
<P>The SPC/E (extended) water model is the same, except
the partial charge assignemnts change:
</P>
<P>O charge = -0.8476<BR>
H charge = 0.4238 <BR>
</P>
<P>See the <A HREF = "#Berendsen">(Berendsen)</A> reference for more details on both
the SPC and SPC/E models.
</P>
<P>Wikipedia also has a nice article on <A HREF = "http://en.wikipedia.org/wiki/Water_model">water
models</A>.
</P>
<HR>
<A NAME = "4_10"></A><H4>4.10 Coupling LAMMPS to other codes
</H4>
<P>LAMMPS is designed to allow it to be coupled to other codes. For
example, a quantum mechanics code might compute forces on a subset of
atoms and pass those forces to LAMMPS. Or a continuum finite element
(FE) simulation might use atom positions as boundary conditions on FE
nodal points, compute a FE solution, and return interpolated forces on
MD atoms.
</P>
<P>LAMMPS can be coupled to other codes in at least 3 ways. Each has
advantages and disadvantages, which you'll have to think about in the
context of your application.
</P>
<P>(1) Define a new <A HREF = "fix.html">fix</A> command that calls the other code. In
this scenario, LAMMPS is the driver code. During its timestepping,
the fix is invoked, and can make library calls to the other code,
which has been linked to LAMMPS as a library. This is the way the
<A HREF = "http://www.rpi.edu/~anderk5/lab">POEMS</A> package that performs constrained rigid-body motion on
groups of atoms is hooked to LAMMPS. See the
<A HREF = "fix_poems.html">fix_poems</A> command for more details. See <A HREF = "Section_modify.html">this
section</A> of the documentation for info on how to add
a new fix to LAMMPS.
</P>
<P>(2) Define a new LAMMPS command that calls the other code. This is
conceptually similar to method (1), but in this case LAMMPS and the
other code are on a more equal footing. Note that now the other code
is not called during the timestepping of a LAMMPS run, but between
runs. The LAMMPS input script can be used to alternate LAMMPS runs
with calls to the other code, invoked via the new command. The
<A HREF = "run.html">run</A> command facilitates this with its <I>every</I> option, which
makes it easy to run a few steps, invoke the command, run a few steps,
invoke the command, etc.
</P>
<P>In this scenario, the other code can be called as a library, as in
(1), or it could be a stand-alone code, invoked by a system() call
made by the command (assuming your parallel machine allows one or more
processors to start up another program). In the latter case the
stand-alone code could communicate with LAMMPS thru files that the
command writes and reads.
</P>
<P>See <A HREF = "Section_modify.html">this section</A> of the documentation for how to
add a new command to LAMMPS.
</P>
<P>(3) Use LAMMPS as a library called by another code. In this case the
other code is the driver and calls LAMMPS as needed. Or a wrapper
code could link and call both LAMMPS and another code as libraries.
Again, the <A HREF = "run.html">run</A> command has options that allow it to be
invoked with minimal overhead (no setup or clean-up) if you wish to do
multiple short runs, driven by another program.
</P>
<P>Examples of driver codes that call LAMMPS as a library are included in
the "couple" directory of the LAMMPS distribution; see couple/README
for more details:
</P>
<UL><LI>simple: simple driver programs in C++ and C which invoke LAMMPS as a
library
<LI>lammps_quest: coupling of LAMMPS and <A HREF = "http://dft.sandia.gov/Quest">Quest</A>, to run classical
MD with quantum forces calculated by a density functional code
<LI>lammps_spparks: coupling of LAMMPS and <A HREF = "http://www.sandia.gov/~sjplimp/spparks.html">SPPARKS</A>, to couple
a kinetic Monte Carlo model for grain growth using MD to calculate
strain induced across grain boundaries
</UL>
<P><A HREF = "Section_start.html#2_4">This section</A> of the documentation describes
how to build LAMMPS as a library. Once this is done, you can
interface with LAMMPS either via C++, C, Fortran, or Python (or any
other language that supports a vanilla C-like interface). For
example, from C++ you could create one (or more) "instances" of
LAMMPS, pass it an input script to process, or execute individual
commands, all by invoking the correct class methods in LAMMPS. From C
or Fortran you can make function calls to do the same things. See
<A HREF = "Section_python.html">this section</A> of the manual for a description of
the Python wrapper provided with LAMMPS that operates through the
LAMMPS library interface.
</P>
<P>The files src/library.cpp and library.h contain the C-style interface
to LAMMPS. See <A HREF = "Section_howto.html#4_19">this section</A> of the manual
for a description of the interface and how to extend it for your
needs.
</P>
<P>Note that the lammps_open() function that creates an instance of
LAMMPS takes an MPI communicator as an argument. This means that
instance of LAMMPS will run on the set of processors in the
communicator. Thus the calling code can run LAMMPS on all or a subset
of processors. For example, a wrapper script might decide to
alternate between LAMMPS and another code, allowing them both to run
on all the processors. Or it might allocate half the processors to
LAMMPS and half to the other code and run both codes simultaneously
before syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
</P>
<HR>
<A NAME = "4_11"></A><H4>4.11 Visualizing LAMMPS snapshots
</H4>
<P>LAMMPS itself does not do visualization, but snapshots from LAMMPS
simulations can be visualized (and analyzed) in a variety of ways.
</P>
<P>LAMMPS snapshots are created by the <A HREF = "dump.html">dump</A> command which can
create files in several formats. The native LAMMPS dump format is a
text file (see "dump atom" or "dump custom") which can be visualized
by the <A HREF = "Section_tools.html#xmovie">xmovie</A> program, included with the
LAMMPS package. This produces simple, fast 2d projections of 3d
systems, and can be useful for rapid debugging of simulation geometry
and atom trajectories.
</P>
<P>Several programs included with LAMMPS as auxiliary tools can convert
native LAMMPS dump files to other formats. See the
<A HREF = "Section_tools.html">Section_tools</A> doc page for details. The first is
the <A HREF = "Section_tools.html#charmm">ch2lmp tool</A>, which contains a
lammps2pdb Perl script which converts LAMMPS dump files into PDB
files. The second is the <A HREF = "Section_tools.html#arc">lmp2arc tool</A> which
converts LAMMPS dump files into Accelrys' Insight MD program files.
The third is the <A HREF = "Section_tools.html#cfg">lmp2cfg tool</A> which converts
LAMMPS dump files into CFG files which can be read into the
<A HREF = "http://mt.seas.upenn.edu/Archive/Graphics/A">AtomEye</A> visualizer.
</P>
<P>A Python-based toolkit distributed by our group can read native LAMMPS
dump files, including custom dump files with additional columns of
user-specified atom information, and convert them to various formats
or pipe them into visualization software directly. See the <A HREF = "http://www.sandia.gov/~sjplimp/pizza.html">Pizza.py
WWW site</A> for details. Specifically, Pizza.py can convert
LAMMPS dump files into PDB, XYZ, <A HREF = "http://www.ensight.com">Ensight</A>, and VTK formats.
Pizza.py can pipe LAMMPS dump files directly into the Raster3d and
RasMol visualization programs. Pizza.py has tools that do interactive
3d OpenGL visualization and one that creates SVG images of dump file
snapshots.
</P>
<P>LAMMPS can create XYZ files directly (via "dump xyz") which is a
simple text-based file format used by many visualization programs
including <A HREF = "http://www.ks.uiuc.edu/Research/vmd">VMD</A>.
</P>
<P>LAMMPS can create DCD files directly (via "dump dcd") which can be
read by <A HREF = "http://www.ks.uiuc.edu/Research/vmd">VMD</A> in conjunction with a CHARMM PSF file. Using this
form of output avoids the need to convert LAMMPS snapshots to PDB
files. See the <A HREF = "dump.html">dump</A> command for more information on DCD
files.
</P>
<P>LAMMPS can create XTC files directly (via "dump xtc") which is GROMACS
file format which can also be read by <A HREF = "http://www.ks.uiuc.edu/Research/vmd">VMD</A> for visualization.
See the <A HREF = "dump.html">dump</A> command for more information on XTC files.
</P>
<HR>
<A NAME = "4_12"></A><H4>4.12 Triclinic (non-orthogonal) simulation boxes
</H4>
<P>By default, LAMMPS uses an orthogonal simulation box to encompass the
particles. The <A HREF = "boundary.html">boundary</A> command sets the boundary
conditions of the box (periodic, non-periodic, etc). The orthogonal
box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors
-starting from the origin given by A = (xhi-xlo,0,0); B =
-(0,yhi-ylo,0); C = (0,0,zhi-zlo). The 6 parameters
+starting from the origin given by <B>a</B> = (xhi-xlo,0,0); <B>b</B> =
+(0,yhi-ylo,0); <B>c</B> = (0,0,zhi-zlo). The 6 parameters
(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simluation box
is created, e.g. by the <A HREF = "create_box.html">create_box</A> or
<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
commands. Additionally, LAMMPS defines box size parameters lx,ly,lz
where lx = xhi-xlo, and similarly in the y and z dimensions. The 6
parameters, as well as lx,ly,lz, can be output via the <A HREF = "thermo_style.html">thermo_style
custom</A> command.
</P>
<P>LAMMPS also allows simulations to be perfored in non-orthogonal
simulation boxes shaped as a parallelepiped with triclinic symmetry.
The parallelepiped has its "origin" at (xlo,ylo,zlo) and is defined by
-3 edge vectors starting from the origin given by A = (xhi-xlo,0,0); B
-= (xy,yhi-ylo,0); C = (xz,yz,zhi-zlo). <I>Xy,xz,yz</I> can be 0.0 or
+3 edge vectors starting from the origin given by <B>a</B> = (xhi-xlo,0,0); <B>b</B>
+= (xy,yhi-ylo,0); <B>c</B> = (xz,yz,zhi-zlo). <I>Xy,xz,yz</I> can be 0.0 or
positive or negative values and are called "tilt factors" because they
are the amount of displacement applied to faces of an originally
orthogonal box to transform it into the parallelepiped. Note that in
-LAMMPS the triclinic simulation box edge vectors A,B,C cannot be
-arbitrary vectors. As indicated, A must be aligned with the x axis, B
-must be in the xy plane, and C is arbitrary. However, this is not a
+LAMMPS the triclinic simulation box edge vectors <B>a</B>, <B>b</B>, and <B>c</B> cannot be
+arbitrary vectors. As indicated, <B>a</B> must be aligned with the x axis, <B>b</B>
+must be in the xy plane, and <B>c</B> is arbitrary. However, this is not a
restriction since it is possible to rotate any set of 3 crystal basis
vectors so that they meet this restriction.
</P>
<P>The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the
time the simluation box is created. This happens in one of 3 ways.
If the <A HREF = "create_box.html">create_box</A> command is used with a region of
style <I>prism</I>, then a triclinic box is setup. See the
<A HREF = "region.html">region</A> command for details. If the
<A HREF = "read_data.html">read_data</A> command is used to define the simulation
box, and the header of the data file contains a line with the "xy xz
yz" keyword, then a triclinic box is setup. See the
<A HREF = "read_data.html">read_data</A> command for details. Finally, if the
<A HREF = "read_restart.html">read_restart</A> command reads a restart file which
was written from a simulation using a triclinic box, then a triclinic
box will be setup for the restarted simulation.
</P>
<P>Note that you can define a triclinic box with all 3 tilt factors =
0.0, so that it is initially orthogonal. This is necessary if the box
will become non-orthogonal, e.g. due to the <A HREF = "fix_nh.html">fix npt</A> or
<A HREF = "fix_deform.html">fix deform</A> commands. Alternatively, you can use the
<A HREF = "change_box.html">change_box</A> command to convert a simulation box from
orthogonal to triclinic and vice versa.
</P>
<P>As with orthogonal boxes, LAMMPS defines triclinic box size parameters
lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions.
The 9 parameters, as well as lx,ly,lz, can be output via the
<A HREF = "thermo_style.html">thermo_style custom</A> command.
</P>
<P>To avoid extremely tilted boxes (which would be computationally
inefficient), no tilt factor can skew the box more than half the
distance of the parallel box length, which is the 1st dimension in the
tilt factor (x for xz). For example, if xlo = 2 and xhi = 12, then
the x box length is 10 and the xy tilt factor must be between -5 and
5. Similarly, both xz and yz must be between -(xhi-xlo)/2 and
+(yhi-ylo)/2. Note that this is not a limitation, since if the
maximum tilt factor is 5 (as in this example), then configurations
with tilt = ..., -15, -5, 5, 15, 25, ... are geometrically all
equivalent.
</P>
<P>Triclinic crystal structures are often defined using three lattice
constants <I>a</I>, <I>b</I>, and <I>c</I>, and three angles <I>alpha</I>, <I>beta</I> and
-<I>gamma</I>. Note that in this nomenclature, the a,b,c lattice constants
-are the scalar lengths of the 3 A,B,C edge vectors defined above. The
+<I>gamma</I>. Note that in this nomenclature, the a, b, and c lattice constants
+are the scalar lengths of the edge vectors <B>a</B>, <B>b</B>, and <B>c</B> defined
+above. The
relationship between these 6 quantities (a,b,c,alpha,beta,gamma) and
the LAMMPS box sizes (lx,ly,lz) = (xhi-xlo,yhi-ylo,zhi-zlo) and tilt
factors (xy,xz,yz) is as follows:
</P>
<CENTER><IMG SRC = "Eqs/box.jpg">
</CENTER>
+<P>The inverse relationship can be written as follows:
+</P>
+<CENTER><IMG SRC = "Eqs/box_inverse.jpg">
+</CENTER>
+<P>The values of <I>a</I>, <I>b</I>, <I>c</I> , <I>alpha</I>, <I>beta</I> , and <I>gamma</I> can be printed
+out or accessed by computes using the
+<A HREF = "thermo_style.html">thermo_style custom</A> keywords
+<I>cella</I>, <I>cellb</I>, <I>cellc</I>, <I>cellalpha</I>, <I>cellbeta</I>, <I>cellgamma</I>,
+respectively.
+</P>
<P>As discussed on the <A HREF = "dump.html">dump</A> command doc page, when the BOX
BOUNDS for a snapshot is written to a dump file for a triclinic box,
an orthogonal bounding box which encloses the triclinic simulation box
is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic
box, formatted as follows:
</P>
<PRE>ITEM: BOX BOUNDS xy xz yz
xlo_bound xhi_bound xy
ylo_bound yhi_bound xz
zlo_bound zhi_bound yz
</PRE>
<P>This bounding box is convenient for many visualization programs and is
calculated from the 9 triclinic box parameters
(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows:
</P>
<PRE>xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz)
xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz)
ylo_bound = ylo + MIN(0.0,yz)
yhi_bound = yhi + MAX(0.0,yz)
zlo_bound = zlo
zhi_bound = zhi
</PRE>
<P>These formulas can be inverted if you need to convert the bounding box
back into the triclinic box parameters, e.g. xlo = xlo_bound -
MIN(0.0,xy,xz,xy+xz).
</P>
<P>One use of triclinic simulation boxes is to model solid-state crystals
with triclinic symmetry. The <A HREF = "lattice.html">lattice</A> command can be
used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the
<A HREF = "create_atoms.html">create_atoms</A> command.
</P>
<P>A second use is to run Parinello-Rahman dyanamics via the <A HREF = "fix_nh.html">fix
npt</A> command, which will adjust the xy, xz, yz tilt
factors to compensate for off-diagonal components of the pressure
tensor. The analalog for an <A HREF = "minimize.html">energy minimization</A> is
the <A HREF = "fix_box_relax.html">fix box/relax</A> command.
</P>
<P>A third use is to shear a bulk solid to study the response of the
material. The <A HREF = "fix_deform.html">fix deform</A> command can be used for
this purpose. It allows dynamic control of the xy, xz, yz tilt
factors as a simulation runs. This is discussed in the next section
on non-equilibrium MD (NEMD) simulations.
</P>
<HR>
<A NAME = "4_13"></A><H4>4.13 NEMD simulations
</H4>
<P>Non-equilibrium molecular dynamics or NEMD simulations are typically
used to measure a fluid's rheological properties such as viscosity.
In LAMMPS, such simulations can be performed by first setting up a
non-orthogonal simulation box (see the preceding Howto section).
</P>
<P>A shear strain can be applied to the simulation box at a desired
strain rate by using the <A HREF = "fix_deform.html">fix deform</A> command. The
<A HREF = "fix_nvt_sllod.html">fix nvt/sllod</A> command can be used to thermostat
the sheared fluid and integrate the SLLOD equations of motion for the
system. Fix nvt/sllod uses <A HREF = "compute_temp_deform.html">compute
temp/deform</A> to compute a thermal temperature
by subtracting out the streaming velocity of the shearing atoms. The
velocity profile or other properties of the fluid can be monitored via
the <A HREF = "fix_ave_spatial.html">fix ave/spatial</A> command.
</P>
<P>As discussed in the previous section on non-orthogonal simulation
boxes, the amount of tilt or skew that can be applied is limited by
LAMMPS for computational efficiency to be 1/2 of the parallel box
length. However, <A HREF = "fix_deform.html">fix deform</A> can continuously strain
a box by an arbitrary amount. As discussed in the <A HREF = "fix_deform.html">fix
deform</A> command, when the tilt value reaches a limit,
the box is re-shaped to the opposite limit which is an equivalent
tiling of periodic space. The strain rate can then continue to change
as before. In a long NEMD simulation these box re-shaping events may
occur many times.
</P>
<P>In a NEMD simulation, the "remap" option of <A HREF = "fix_deform.html">fix
deform</A> should be set to "remap v", since that is what
<A HREF = "fix_nvt_sllod.html">fix nvt/sllod</A> assumes to generate a velocity
profile consistent with the applied shear strain rate.
</P>
<P>An alternative method for calculating viscosities is provided via the
<A HREF = "fix_viscosity.html">fix viscosity</A> command.
</P>
<HR>
<A NAME = "4_14"></A><H4>4.14 Extended spherical and aspherical particles
</H4>
<P>Typical MD models treat atoms or particles as point masses.
Sometimes, however, it is desirable to have a model with finite-size
particles such as spheres or aspherical ellipsoids. The difference is
that such particles have a moment of inertia, rotational energy, and
angular momentum. Rotation is induced by torque from interactions
with other particles.
</P>
<P>LAMMPS has several options for running simulations with these kinds of
particles. The following aspects are discussed in turn:
</P>
<UL><LI>atom styles
<LI>pair potentials
<LI>time integration
<LI>computes, thermodynamics, and dump output
<LI>rigid bodies composed of extended particles
</UL>
<H5>Atom styles
</H5>
<P>There are 2 <A HREF = "atom_style.html">atom styles</A> that allow for definition of
finite-size particles: sphere and ellipsoid. The peri atom style also
treats particles as having a volume, but that is internal to the
<A HREF = "pair_peri.html">pair_style peri</A> potentials. The dipole atom style is
most often used in conjunction with finite-size particles.
</P>
<P>The sphere style defines particles that are spheriods and each
particle can have a unique diameter and mass (or density). These
particles store an angular velocity (omega) and can be acted upon by
torque. The "set" command can be used to modify the diameter and mass
of individual particles, after then are created.
</P>
<P>The ellipsoid style defines particles that are ellipsoids and thus can
be aspherical. Each particle has a shape, specified by 3 diameters,
and mass (or density). These particles store an angular momentum and
their orientation (quaternion), and can be acted upon by torque. They
do not store an angular velocity (omega), which can be in a different
direction than angular momentum, rather they compute it as needed.
The "set" command can be used to modify the diameter, orientation, and
mass of individual particles, after then are created. It also has a
brief explanation of what quaternions are.
</P>
<P>The dipole style does not define extended particles, but is often
used in conjunction with spherical particles, via a command like
</P>
<PRE>atom_style hybrid sphere dipole
</PRE>
<P>This is because when dipoles interact with each other, they induce
torques, and a particle must be extended (i.e. have a moment of
inertia) in order to respond and rotate. See the <A HREF = "atom_style.html">atom_style
dipole</A> command for details. The "set" command can be
used to modify the orientation and length of the dipole moment of
individual particles, after then are created.
</P>
<P>Note that if one of these atom styles is used (or multiple styles via
the <A HREF = "atom_style.html">atom_style hybrid</A> command), not all particles in
the system are required to be finite-size or aspherical. For example,
if the 3 shape parameters are set to the same value, the particle will
be a sphere rather than an ellipsoid. If the 3 shape parameters are
all set to 0.0 or if the diameter is set to 0.0, it will be a point
particle. If the length of the dipole moment is set to zero, the
particle will not have a point dipole associated with it. The pair
styles used to compute pairwise interactions will typically compute
the correct interaction in these simplified (cheaper) cases.
<A HREF = "pair_hybrid.html">Pair_style hybrid</A> can be used to insure the correct
interactions are computed for the appropriate style of interactions.
Likewise, using groups to partition particles (ellipsoids versus
spheres versus point particles) will allow you to use the appropriate
time integrators and temperature computations for each class of
particles. See the doc pages for various commands for details.
</P>
<P>Also note that for <A HREF = "dimension.html">2d simulations</A>, finite-size
spheres and ellipsoids are still treated as 3d particles, rather than
as circular disks or ellipses. This means they have the same moment
of inertia for a 3d extended object. When their temperature is
coomputed, the correct degrees of freedom are used for rotation in a
2d versus 3d system.
</P>
<H5>Pair potentials
</H5>
<P>When a system with extended particles is defined, the particles will
only rotate and experience torque if the force field computes such
interactions. These are the various <A HREF = "pair_style.html">pair styles</A>
that generate torque:
</P>
<UL><LI><A HREF = "pair_gran.html">pair_style gran/history</A>
<LI><A HREF = "pair_gran.html">pair_style gran/hertzian</A>
<LI><A HREF = "pair_gran.html">pair_style gran/no_history</A>
<LI><A HREF = "pair_dipole.html">pair_style dipole/cut</A>
<LI><A HREF = "pair_gayberne.html">pair_style gayberne</A>
<LI><A HREF = "pair_resquared.html">pair_style resquared</A>
<LI><A HREF = "pair_lubricate.html">pair_style lubricate</A>
</UL>
<P>The <A HREF = "pair_gran.html">granular pair styles</A> are used with spherical
particles. The <A HREF = "pair_dipole.html">dipole pair style</A> is used with
<A HREF = "atom_style.html">atom_style dipole</A>, which could be applied to
spherical or ellipsoidal particles. The <A HREF = "pair_gayberne.html">GayBerne</A>
and <A HREF = "pair_resquared.html">REsquared</A> potentials require ellipsoidal
particles, though they will also work if the 3 shape parameters are
the same (a sphere). The <A HREF = "pair_lubricate.html">lubrication potential</A>
works with spherical particles.
</P>
<H5>Time integration
</H5>
<P>There are 3 fixes that perform time integration on extended spherical
particles, meaning the integrators update the rotational orientation
and angular velocity or angular momentum of the particles:
</P>
<UL><LI><A HREF = "fix_nve_sphere.html">fix nve/sphere</A>
<LI><A HREF = "fix_nvt_sphere.html">fix nvt/sphere</A>
<LI><A HREF = "fix_npt_sphere.html">fix npt/sphere</A>
</UL>
<P>Likewise, there are 3 fixes that perform time integration on
ellipsoids as extended aspherical particles:
</P>
<UL><LI><A HREF = "fix_nve_asphere.html">fix nve/asphere</A>
<LI><A HREF = "fix_nvt_asphere.html">fix nvt/asphere</A>
<LI><A HREF = "fix_npt_asphere.html">fix npt/asphere</A>
</UL>
<P>The advantage of these fixes is that those which thermostat the
particles include the rotational degrees of freedom in the temperature
calculation and thermostatting. Other thermostats can be used with
fix nve/sphere or fix nve/asphere, such as fix langevin or fix
temp/berendsen, but those thermostats only operate on the
translational kinetic energy of the extended particles.
</P>
<P>Note that for mixtures of point and extended particles, you should
only use these integration fixes on <A HREF = "group.html">groups</A> which contain
extended particles.
</P>
<H5>Computes, thermodynamics, and dump output
</H5>
<P>There are 4 computes that calculate the temperature or rotational energy
of extended spherical or aspherical particles (ellipsoids):
</P>
<UL><LI><A HREF = "compute_temp_sphere.html">compute temp/sphere</A>
<LI><A HREF = "compute_temp_asphere.html">compute temp/asphere</A>
<LI><A HREF = "compute_erotate_sphere.html">compute erotate/sphere</A>
<LI><A HREF = "compute_erotate_asphere.html">compute erotate/asphere</A>
</UL>
<P>These include rotational degrees of freedom in their computation. If
you wish the thermodynamic output of temperature or pressure to use
one of these computes (e.g. for a system entirely composed of extended
particles), then the compute can be defined and the
<A HREF = "thermo_modify.html">thermo_modify</A> command used. Note that by
default thermodynamic quantities will be calculated with a temperature
that only includes translational degrees of freedom. See the
<A HREF = "thermo_style.html">thermo_style</A> command for details.
</P>
<P>The <A HREF = "dump.html">dump custom</A> command can output various attributes of
extended particles, including the dipole moment (mu), the angular
velocity (omega), the angular momentum (angmom), the quaternion
(quat), and the torque (tq) on the particle.
</P>
<H5>Rigid bodies composed of extended particles
</H5>
<P>The <A HREF = "fix_rigid.html">fix rigid</A> command treats a collection of
particles as a rigid body, computes its inertia tensor, sums the total
force and torque on the rigid body each timestep due to forces on its
constituent particles, and integrates the motion of the rigid body.
</P>
<P>If any of the constituent particles of a rigid body are extended
particles (spheres or ellipsoids), then their contribution to the
inertia tensor of the body is different than if they were point
particles. This means the rotational dynamics of the rigid body will
be different. Thus a model of a dimer is different if the dimer
consists of two point masses versus two extended sphereoids, even if
the two particles have the same mass. Extended particles that
experience torque due to their interaction with other particles will
also impart that torque to a rigid body they are part of.
</P>
<P>See the "fix rigid" command for example of complex rigid-body models
it is possible to define in LAMMPS.
</P>
<P>Note that the <A HREF = "fix_shake.html">fix shake</A> command can also be used to
treat 2, 3, or 4 particles as a rigid body, but it always assumes the
particles are point masses.
</P>
<HR>
<A NAME = "4_15"></A><H4>4.15 Output from LAMMPS (thermo, dumps, computes, fixes, variables)
</H4>
<P>There are four basic kinds of LAMMPS output:
</P>
<UL><LI><A HREF = "thermo_style.html">Thermodynamic output</A>, which is a list
of quantities printed every few timesteps to the screen and logfile.
<LI><A HREF = "dump.html">Dump files</A>, which contain snapshots of atoms and various
per-atom values and are written at a specified frequency.
<LI>Certain fixes can output user-specified quantities to files: <A HREF = "fix_ave_time.html">fix
ave/time</A> for time averaging, <A HREF = "fix_ave_spatial.html">fix
ave/spatial</A> for spatial averaging, and <A HREF = "fix_print.html">fix
print</A> for single-line output of
<A HREF = "variable.html">variables</A>. Fix print can also output to the
screen.
<LI><A HREF = "restart.html">Restart files</A>.
</UL>
<P>A simulation prints one set of thermodynamic output and (optionally)
restart files. It can generate any number of dump files and fix
output files, depending on what <A HREF = "dump.html">dump</A> and <A HREF = "fix.html">fix</A>
commands you specify.
</P>
<P>As discussed below, LAMMPS gives you a variety of ways to determine
what quantities are computed and printed when the thermodynamics,
dump, or fix commands listed above perform output. Throughout this
discussion, note that users can also <A HREF = "Section_modify.html">add their own computes and fixes
to LAMMPS</A> which can then generate values that can
then be output with these commands.
</P>
<P>The following sub-sections discuss different LAMMPS command related
to output and the kind of data they operate on and produce:
</P>
<UL><LI><A HREF = "#global">Global/per-atom/local data</A>
<LI><A HREF = "#scalar">Scalar/vector/array data</A>
<LI><A HREF = "#thermo">Thermodynamic output</A>
<LI><A HREF = "#dump">Dump file output</A>
<LI><A HREF = "#fixoutput">Fixes that write output files</A>
<LI><A HREF = "#computeoutput">Computes that process output quantities</A>
<LI><A HREF = "#fixoutput">Fixes that process output quantities</A>
<LI><A HREF = "#compute">Computes that generate values to output</A>
<LI><A HREF = "#fix">Fixes that generate values to output</A>
<LI><A HREF = "#variable">Variables that generate values to output</A>
<LI><A HREF = "#table">Summary table of output options and data flow between commands</A>
</UL>
<H5><A NAME = "global"></A>Global/per-atom/local data
</H5>
<P>Various output-related commands work with three different styles of
data: global, per-atom, or local. A global datum is one or more
system-wide values, e.g. the temperature of the system. A per-atom
datum is one or more values per atom, e.g. the kinetic energy of each
atom. Local datums are calculated by each processor based on the
atoms it owns, but there may be zero or more per atom, e.g. a list of
bond distances.
</P>
<H5><A NAME = "scalar"></A>Scalar/vector/array data
</H5>
<P>Global, per-atom, and local datums can each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
doc page for a "compute" or "fix" or "variable" that generates data
will specify both the style and kind of data it produces, e.g. a
per-atom vector.
</P>
<P>When a quantity is accessed, as in many of the output commands
discussed below, it can be referenced via the following bracket
notation, where ID in this case is the ID of a compute. The leading
"c_" would be replaced by "f_" for a fix, or "v_" for a variable:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >c_ID </TD><TD > entire scalar, vector, or array</TD></TR>
<TR><TD >c_ID[I] </TD><TD > one element of vector, one column of array</TD></TR>
<TR><TD >c_ID[I][J] </TD><TD > one element of array
</TD></TR></TABLE></DIV>
<P>In other words, using one bracket reduces the dimension of the data
once (vector -> scalar, array -> vector). Using two brackets reduces
the dimension twice (array -> scalar). Thus a command that uses
scalar values as input can typically also process elements of a vector
or array.
</P>
<H5><A NAME = "thermo"></A>Thermodynamic output
</H5>
<P>The frequency and format of thermodynamic output is set by the
<A HREF = "thermo.html">thermo</A>, <A HREF = "thermo_style.html">thermo_style</A>, and
<A HREF = "thermo_modify.html">thermo_modify</A> commands. The
<A HREF = "thermo_style.html">thermo_style</A> command also specifies what values
are calculated and written out. Pre-defined keywords can be specified
(e.g. press, etotal, etc). Three additional kinds of keywords can
also be specified (c_ID, f_ID, v_name), where a <A HREF = "compute.html">compute</A>
or <A HREF = "fix.html">fix</A> or <A HREF = "variable.html">variable</A> provides the value to be
output. In each case, the compute, fix, or variable must generate
global values for input to the <A HREF = "dump.html">thermo_style custom</A>
command.
</P>
<H5><A NAME = "dump"></A>Dump file output
</H5>
<P>Dump file output is specified by the <A HREF = "dump.html">dump</A> and
<A HREF = "dump_modify.html">dump_modify</A> commands. There are several
pre-defined formats (dump atom, dump xtc, etc).
</P>
<P>There is also a <A HREF = "dump.html">dump custom</A> format where the user
specifies what values are output with each atom. Pre-defined atom
attributes can be specified (id, x, fx, etc). Three additional kinds
of keywords can also be specified (c_ID, f_ID, v_name), where a
<A HREF = "compute.html">compute</A> or <A HREF = "fix.html">fix</A> or <A HREF = "variable.html">variable</A>
provides the values to be output. In each case, the compute, fix, or
variable must generate per-atom values for input to the <A HREF = "dump.html">dump
custom</A> command.
</P>
<P>There is also a <A HREF = "dump.html">dump local</A> format where the user specifies
what local values to output. A pre-defined index keyword can be
specified to enumuerate the local values. Two additional kinds of
keywords can also be specified (c_ID, f_ID), where a
<A HREF = "compute.html">compute</A> or <A HREF = "fix.html">fix</A> or <A HREF = "variable.html">variable</A>
provides the values to be output. In each case, the compute or fix
must generate local values for input to the <A HREF = "dump.html">dump local</A>
command.
</P>
<H5><A NAME = "fixoutput"></A>Fixes that write output files
</H5>
<P>Sevarl fixes take various quantities as input and can write output
files: <A HREF = "fix_ave_time.html">fix ave/time</A>, <A HREF = "fix_ave_spatial.html">fix
ave/spatial</A>, <A HREF = "fix_ave_histo.html">fix ave/histo</A>,
<A HREF = "fix_ave_correlate.html">fix ave/correlate</A>, and <A HREF = "fix_print.html">fix
print</A>.
</P>
<P>The <A HREF = "fix_ave_time.html">fix ave/time</A> command enables direct output to
a file and/or time-averaging of global scalars or vectors. The user
specifies one or more quantities as input. These can be global
<A HREF = "compute.html">compute</A> values, global <A HREF = "fix.html">fix</A> values, or
<A HREF = "variable.html">variables</A> of any style except the atom style which
produces per-atom values. Since a variable can refer to keywords used
by the <A HREF = "thermo_style.html">thermo_style custom</A> command (like temp or
press) and individual per-atom values, a wide variety of quantities
can be time averaged and/or output in this way. If the inputs are one
or more scalar values, then the fix generate a global scalar or vector
of output. If the inputs are one or more vector values, then the fix
generates a global vector or array of output. The time-averaged
output of this fix can also be used as input to other output commands.
</P>
<P>The <A HREF = "fix_ave_spatial.html">fix ave/spatial</A> command enables direct
output to a file of spatial-averaged per-atom quantities like those
output in dump files, within 1d layers of the simulation box. The
per-atom quantities can be atom density (mass or number) or atom
attributes such as position, velocity, force. They can also be
per-atom quantities calculated by a <A HREF = "compute.html">compute</A>, by a
<A HREF = "fix.html">fix</A>, or by an atom-style <A HREF = "variable.html">variable</A>. The
spatial-averaged output of this fix can also be used as input to other
output commands.
</P>
<P>The <A HREF = "fix_ave_histo.html">fix ave/histo</A> command enables direct output
to a file of histogrammed quantities, which can be global or per-atom
or local quantities. The histogram output of this fix can also be
used as input to other output commands.
</P>
<P>The <A HREF = "fix_ave_histo.html">fix ave/correlate</A> command enables direct
output to a file of time-correlated quantities, which can be global
scalars. The correlation matrix output of this fix can also be used
as input to other output commands.
</P>
<P>The <A HREF = "fix_print.html">fix print</A> command can generate a line of output
written to the screen and log file or to a separate file, periodically
during a running simulation. The line can contain one or more
<A HREF = "variable.html">variable</A> values for any style variable except the atom
style). As explained above, variables themselves can contain
references to global values generated by <A HREF = "thermo_style.html">thermodynamic
keywords</A>, <A HREF = "compute.html">computes</A>,
<A HREF = "fix.html">fixes</A>, or other <A HREF = "variable.html">variables</A>, or to per-atom
values for a specific atom. Thus the <A HREF = "fix_print.html">fix print</A>
command is a means to output a wide variety of quantities separate
from normal thermodynamic or dump file output.
</P>
<H5><A NAME = "computeoutput"></A>Computes that process output quantities
</H5>
<P>The <A HREF = "compute_reduce.html">compute reduce</A> and <A HREF = "compute_reduce.html">compute
reduce/region</A> commands take one or more per-atom
or local vector quantities as inputs and "reduce" them (sum, min, max,
ave) to scalar quantities. These are produced as output values which
can be used as input to other output commands.
</P>
<P>The <A HREF = "compute_slice.html">compute slice</A> command take one or more global
vector or array quantities as inputs and extracts a subset of their
values to create a new vector or array. These are produced as output
values which can be used as input to other output commands.
</P>
<P>The <A HREF = "compute_property_atom.html">compute property/atom</A> command takes a
list of one or more pre-defined atom attributes (id, x, fx, etc) and
stores the values in a per-atom vector or array. These are produced
as output values which can be used as input to other output commands.
The list of atom attributes is the same as for the <A HREF = "dump.html">dump
custom</A> command.
</P>
<P>The <A HREF = "compute_property_local.html">compute property/local</A> command takes
a list of one or more pre-defined local attributes (bond info, angle
info, etc) and stores the values in a local vector or array. These
are produced as output values which can be used as input to other
output commands.
</P>
<P>The <A HREF = "compute_atom_molecule.html">compute atom/molecule</A> command takes a
list of one or more per-atom quantities (from a compute, fix, per-atom
variable) and sums the quantities on a per-molecule basis. It
produces a global vector or array as output values which can be used
as input to other output commands.
</P>
<H5><A NAME = "fixoutput"></A>Fixes that process output quantities
</H5>
<P>The <A HREF = "fix_ave_atom.html">fix ave/atom</A> command performs time-averaging
of per-atom vectors. The per-atom quantities can be atom attributes
such as position, velocity, force. They can also be per-atom
quantities calculated by a <A HREF = "compute.html">compute</A>, by a
<A HREF = "fix.html">fix</A>, or by an atom-style <A HREF = "variable.html">variable</A>. The
time-averaged per-atom output of this fix can be used as input to
other output commands.
</P>
<P>The <A HREF = "fix_store_state.html">fix store/state</A> command can archive one or
more per-atom attributes at a particular time, so that the old values
can be used in a future calculation or output. The list of atom
attributes is the same as for the <A HREF = "dump.html">dump custom</A> command,
including per-atom quantities calculated by a <A HREF = "compute.html">compute</A>,
by a <A HREF = "fix.html">fix</A>, or by an atom-style <A HREF = "variable.html">variable</A>.
The output of this fix can be used as input to other output commands.
</P>
<H5><A NAME = "compute"></A>Computes that generate values to output
</H5>
<P>Every <A HREF = "compute.html">compute</A> in LAMMPS produces either global or
per-atom or local values. The values can be scalars or vectors or
arrays of data. These values can be output using the other commands
described in this section. The doc page for each compute command
describes what it produces. Computes that produce per-atom or local
values have the word "atom" or "local" in their style name. Computes
without the word "atom" or "local" produce global values.
</P>
<H5><A NAME = "fix"></A>Fixes that generate values to output
</H5>
<P>Some <A HREF = "fix.html">fixes</A> in LAMMPS produces either global or per-atom or
local values which can be accessed by other commands. The values can
be scalars or vectors or arrays of data. These values can be output
using the other commands described in this section. The doc page for
each fix command tells whether it produces any output quantities and
describes them.
</P>
<H5><A NAME = "variable"></A>Variables that generate values to output
</H5>
<P>Every <A HREF = "variable.html">variables</A> defined in an input script generates
either a global scalar value or a per-atom vector (only atom-style
variables) when it is accessed. The formulas used to define equal-
and atom-style variables can contain references to the thermodynamic
keywords and to global and per-atom data generated by computes, fixes,
and other variables. The values generated by variables can be output
using the other commands described in this section.
</P>
<H5><A NAME = "table"></A>Summary table of output options and data flow between commands
</H5>
<P>This table summarizes the various commands that can be used for
generating output from LAMMPS. Each command produces output data of
some kind and/or writes data to a file. Most of the commands can take
data from other commands as input. Thus you can link many of these
commands together in pipeline form, where data produced by one command
is used as input to another command and eventually written to the
screen or to a file. Note that to hook two commands together the
output and input data types must match, e.g. global/per-atom/local
data and scalar/vector/array data.
</P>
<P>Also note that, as described above, when a command takes a scalar as
input, that could be an element of a vector or array. Likewise a
vector input could be a column of an array.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >Command</TD><TD > Input</TD><TD > Output</TD><TD ></TD></TR>
<TR><TD ><A HREF = "thermo_style.html">thermo_style custom</A></TD><TD > global scalars</TD><TD > screen, log file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "dump.html">dump custom</A></TD><TD > per-atom vectors</TD><TD > dump file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "dump.html">dump local</A></TD><TD > local vectors</TD><TD > dump file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_print.html">fix print</A></TD><TD > global scalar from variable</TD><TD > screen, file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "print.html">print</A></TD><TD > global scalar from variable</TD><TD > screen</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute.html">computes</A></TD><TD > N/A</TD><TD > global/per-atom/local scalar/vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix.html">fixes</A></TD><TD > N/A</TD><TD > global/per-atom/local scalar/vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "variable.html">variables</A></TD><TD > global scalars, per-atom vectors</TD><TD > global scalar, per-atom vector</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute_reduce.html">compute reduce</A></TD><TD > per-atom/local vectors</TD><TD > global scalar/vector</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute_slice.html">compute slice</A></TD><TD > global vectors/arrays</TD><TD > global vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute_property_atom.html">compute property/atom</A></TD><TD > per-atom vectors</TD><TD > per-atom vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute_property_local.html">compute property/local</A></TD><TD > local vectors</TD><TD > local vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "compute_atom_molecule.html">compute atom/molecule</A></TD><TD > per-atom vectors</TD><TD > global vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_ave_atom.html">fix ave/atom</A></TD><TD > per-atom vectors</TD><TD > per-atom vector/array</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_ave_time.html">fix ave/time</A></TD><TD > global scalars/vectors</TD><TD > global scalar/vector/array, file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_ave_spatial.html">fix ave/spatial</A></TD><TD > per-atom vectors</TD><TD > global array, file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_ave_histo.html">fix ave/histo</A></TD><TD > global/per-atom/local scalars and vectors</TD><TD > global array, file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_ave_correlate.html">fix ave/correlate</A></TD><TD > global scalars</TD><TD > global array, file</TD><TD ></TD></TR>
<TR><TD ><A HREF = "fix_store_state.html">fix store/state</A></TD><TD > per-atom vectors</TD><TD > per-atom vector/array</TD><TD ></TD></TR>
<TR><TD >
</TD></TR></TABLE></DIV>
<HR>
<A NAME = "4_16"></A><H4>4.16 Thermostatting, barostatting, and computing temperature
</H4>
<P>Thermostatting means controlling the temperature of particles in an MD
simulation. Barostatting means controlling the pressure. Since the
pressure includes a kinetic component due to particle velocities, both
these operations require calculation of the temperature. Typically a
target temperature (T) and/or pressure (P) is specified by the user,
and the thermostat or barostat attempts to equilibrate the system to
the requested T and/or P.
</P>
<P>Temperature is computed as kinetic energy divided by some number of
degrees of freedom (and the Boltzmann constant). Since kinetic energy
is a function of particle velocity, there is often a need to
distinguish between a particle's advection velocity (due to some
aggregate motiion of particles) and its thermal velocity. The sum of
the two is the particle's total velocity, but the latter is often what
is wanted to compute a temperature.
</P>
<P>LAMMPS has several options for computing temperatures, any of which
can be used in thermostatting and barostatting. These <A HREF = "compute.html">compute
commands</A> calculate temperature, and the <A HREF = "compute_pressure.html">compute
pressure</A> command calculates pressure.
</P>
<UL><LI><A HREF = "compute_temp.html">compute temp</A>
<LI><A HREF = "compute_temp_sphere.html">compute temp/sphere</A>
<LI><A HREF = "compute_temp_asphere.html">compute temp/asphere</A>
<LI><A HREF = "compute_temp_com.html">compute temp/com</A>
<LI><A HREF = "compute_temp_deform.html">compute temp/deform</A>
<LI><A HREF = "compute_temp_partial.html">compute temp/partial</A>
<LI><A HREF = "compute_temp_profile.html">compute temp/profile</A>
<LI><A HREF = "compute_temp_ramp.html">compute temp/ramp</A>
<LI><A HREF = "compute_temp_region.html">compute temp/region</A>
</UL>
<P>All but the first 3 calculate velocity biases (i.e. advection
velocities) that are removed when computing the thermal temperature.
<A HREF = "compute_temp_sphere.html">Compute temp/sphere</A> and <A HREF = "compute_temp_asphere.html">compute
temp/asphere</A> compute kinetic energy for
extended particles that includes rotational degrees of freedom. They
both allow, as an extra argument, which is another temperature compute
that subtracts a velocity bias. This allows the translational
velocity of extended spherical or aspherical particles to be adjusted
in prescribed ways.
</P>
<P>Thermostatting in LAMMPS is performed by <A HREF = "fix.html">fixes</A>, or in one
case by a pair style. Four thermostatting fixes are currently
available: Nose-Hoover (nvt), Berendsen, Langevin, and direct
rescaling (temp/rescale). Dissipative particle dynamics (DPD)
thermostatting can be invoked via the <I>dpd/tstat</I> pair style:
</P>
<UL><LI><A HREF = "fix_nh.html">fix nvt</A>
<LI><A HREF = "fix_nvt_sphere.html">fix nvt/sphere</A>
<LI><A HREF = "fix_nvt_asphere.html">fix nvt/asphere</A>
<LI><A HREF = "fix_nvt_sllod.html">fix nvt/sllod</A>
<LI><A HREF = "fix_temp_berendsen.html">fix temp/berendsen</A>
<LI><A HREF = "fix_langevin.html">fix langevin</A>
<LI><A HREF = "fix_temp_rescale.html">fix temp/rescale</A>
<LI><A HREF = "pair_dpd.html">pair_style dpd/tstat</A>
</UL>
<P><A HREF = "fix_nh.html">Fix nvt</A> only thermostats the translational velocity of
particles. <A HREF = "fix_nvt_sllod.html">Fix nvt/sllod</A> also does this, except
that it subtracts out a velocity bias due to a deforming box and
integrates the SLLOD equations of motion. See the <A HREF = "#4_13">NEMD
simulations</A> section of this page for further details. <A HREF = "fix_nvt_sphere.html">Fix
nvt/sphere</A> and <A HREF = "fix_nvt_asphere.html">fix
nvt/asphere</A> thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.
</P>
<P>DPD thermostatting alters pairwise interactions in a manner analagous
to the per-particle thermostatting of <A HREF = "fix_langevin.html">fix
langevin</A>.
</P>
<P>Any of the thermostatting fixes can use temperature computes that
remove bias for two purposes: (a) computing the current temperature to
compare to the requested target temperature, and (b) adjusting only
the thermal temperature component of the particle's velocities. See
the doc pages for the individual fixes and for the
<A HREF = "fix_modify.html">fix_modify</A> command for instructions on how to assign
a temperature compute to a thermostatting fix. For example, you can
apply a thermostat to only the x and z components of velocity by using
it in conjunction with <A HREF = "compute_temp_partial.html">compute
temp/partial</A>.
</P>
<P>IMPORTANT NOTE: Only the nvt fixes perform time integration, meaning
they update the velocities and positions of particles due to forces
and velocities respectively. The other thermostat fixes only adjust
velocities; they do NOT perform time integration updates. Thus they
should be used in conjunction with a constant NVE integration fix such
as these:
</P>
<UL><LI><A HREF = "fix_nve.html">fix nve</A>
<LI><A HREF = "fix_nve_sphere.html">fix nve/sphere</A>
<LI><A HREF = "fix_nve_asphere.html">fix nve/asphere</A>
</UL>
<P>Barostatting in LAMMPS is also performed by <A HREF = "fix.html">fixes</A>. Two
barosttating methods are currently available: Nose-Hoover (npt and
nph) and Berendsen:
</P>
<UL><LI><A HREF = "fix_nh.html">fix npt</A>
<LI><A HREF = "fix_npt_sphere.html">fix npt/sphere</A>
<LI><A HREF = "fix_npt_asphere.html">fix npt/asphere</A>
<LI><A HREF = "fix_nh.html">fix nph</A>
<LI><A HREF = "fix_press_berendsen.html">fix press/berendsen</A>
</UL>
<P>The <A HREF = "fix_nh.html">fix npt</A> commands include a Nose-Hoover thermostat
and barostat. <A HREF = "fix_nh.html">Fix nph</A> is just a Nose/Hoover barostat;
it does no thermostatting. Both <A HREF = "fix_nh.html">fix nph</A> and <A HREF = "fix_press_berendsen.html">fix
press/bernendsen</A> can be used in conjunction
with any of the thermostatting fixes.
</P>
<P>As with the thermostats, <A HREF = "fix_nh.html">fix npt</A> and <A HREF = "fix_nh.html">fix
nph</A> only use translational motion of the particles in
computing T and P and performing thermo/barostatting. <A HREF = "fix_npt_sphere.html">Fix
npt/sphere</A> and <A HREF = "fix_npt_asphere.html">fix
npt/asphere</A> thermo/barostat using not only
translation velocities but also rotational velocities for spherical
and aspherical particles.
</P>
<P>All of the barostatting fixes use the <A HREF = "compute_pressure.html">compute
pressure</A> compute to calculate a current
pressure. By default, this compute is created with a simple <A HREF = "compute_temp.html">compute
temp</A> (see the last argument of the <A HREF = "compute_pressure.html">compute
pressure</A> command), which is used to calculated
the kinetic componenet of the pressure. The barostatting fixes can
also use temperature computes that remove bias for the purpose of
computing the kinetic componenet which contributes to the current
pressure. See the doc pages for the individual fixes and for the
<A HREF = "fix_modify.html">fix_modify</A> command for instructions on how to assign
a temperature or pressure compute to a barostatting fix.
</P>
<P>IMPORTANT NOTE: As with the thermostats, the Nose/Hoover methods (<A HREF = "fix_nh.html">fix
npt</A> and <A HREF = "fix_nh.html">fix nph</A>) perform time
integration. <A HREF = "fix_press_berendsen.html">Fix press/berendsen</A> does NOT,
so it should be used with one of the constant NVE fixes or with one of
the NVT fixes.
</P>
<P>Finally, thermodynamic output, which can be setup via the
<A HREF = "thermo_style.html">thermo_style</A> command, often includes temperature
and pressure values. As explained on the doc page for the
<A HREF = "thermo_style.html">thermo_style</A> command, the default T and P are
setup by the thermo command itself. They are NOT the ones associated
with any thermostatting or barostatting fix you have defined or with
any compute that calculates a temperature or pressure. Thus if you
want to view these values of T and P, you need to specify them
explicitly via a <A HREF = "thermo_style.html">thermo_style custom</A> command. Or
you can use the <A HREF = "thermo_modify.html">thermo_modify</A> command to
re-define what temperature or pressure compute is used for default
thermodynamic output.
</P>
<HR>
<A NAME = "4_17"></A><H4>4.17 Walls
</H4>
<P>Walls in an MD simulation are typically used to bound particle motion,
i.e. to serve as a boundary condition.
</P>
<P>Walls in LAMMPS can be of rough (made of particles) or idealized
surfaces. Ideal walls can be smooth, generating forces only in the
normal direction, or frictional, generating forces also in the
tangential direction.
</P>
<P>Rough walls, built of particles, can be created in various ways. The
particles themselves can be generated like any other particle, via the
<A HREF = "lattice.html">lattice</A> and <A HREF = "create_atoms.html">create_atoms</A> commands,
or read in via the <A HREF = "read_data.html">read_data</A> command.
</P>
<P>Their motion can be constrained by many different commands, so that
they do not move at all, move together as a group at constant velocity
or in response to a net force acting on them, move in a prescribed
fashion (e.g. rotate around a point), etc. Note that if a time
integration fix like <A HREF = "fix_nve.html">fix nve</A> or <A HREF = "fix_nh.html">fix nvt</A>
is not used with the group that contains wall particles, their
positions and velocities will not be updated.
</P>
<UL><LI><A HREF = "fix_aveforce.html">fix aveforce</A> - set force on particles to average value, so they move together
<LI><A HREF = "fix_setforce.html">fix setforce</A> - set force on particles to a value, e.g. 0.0
<LI><A HREF = "fix_freeze.html">fix freeze</A> - freeze particles for use as granular walls
<LI><A HREF = "fix_nve_noforce.html">fix nve/noforce</A> - advect particles by their velocity, but without force
<LI><A HREF = "fix_move.html">fix move</A> - prescribe motion of particles by a linear velocity, oscillation, rotation, variable
</UL>
<P>The <A HREF = "fix_move.html">fix move</A> command offers the most generality, since
the motion of individual particles can be specified with
<A HREF = "variable.html">variable</A> formula which depends on time and/or the
particle position.
</P>
<P>For rough walls, it may be useful to turn off pairwise interactions
between wall particles via the <A HREF = "neigh_modify.html">neigh_modify
exclude</A> command.
</P>
<P>Rough walls can also be created by specifying frozen particles that do
not move and do not interact with mobile particles, and then tethering
other particles to the fixed particles, via a <A HREF = "bond_style.html">bond</A>.
The bonded particles do interact with other mobile particles.
</P>
<P>Idealized walls can be specified via several fix commands. <A HREF = "fix_wall_gran.html">Fix
wall/gran</A> creates frictional walls for use with
granular particles; all the other commands create smooth walls.
</P>
<UL><LI><A HREF = "fix_wall_reflect.html">fix wall/reflect</A> - reflective flat walls
<LI><A HREF = "fix_wall.html">fix wall/lj93</A> - flat walls, with Lennard-Jones 9/3 potential
<LI><A HREF = "fix_wall.html">fix wall/lj126</A> - flat walls, with Lennard-Jones 12/6 potential
<LI><A HREF = "fix_wall.html">fix wall/colloid</A> - flat walls, with <A HREF = "pair_colloid.html">pair_style colloid</A> potential
<LI><A HREF = "fix_wall.html">fix wall/harmonic</A> - flat walls, with repulsive harmonic spring potential
<LI><A HREF = "fix_wall_region.html">fix wall/region</A> - use region surface as wall
<LI><A HREF = "fix_wall_gran.html">fix wall/gran</A> - flat or curved walls with <A HREF = "pair_gran.html">pair_style granular</A> potential
</UL>
<P>The <I>lj93</I>, <I>lj126</I>, <I>colloid</I>, and <I>harmonic</I> styles all allow the
flat walls to move with a constant velocity, or oscillate in time.
The <A HREF = "fix_wall_region.html">fix wall/region</A> command offers the most
generality, since the region surface is treated as a wall, and the
geometry of the region can be a simple primitive volume (e.g. a
sphere, or cube, or plane), or a complex volume made from the union
and intersection of primitive volumes. <A HREF = "region.html">Regions</A> can also
specify a volume "interior" or "exterior" to the specified primitive
shape or <I>union</I> or <I>intersection</I>. <A HREF = "region.html">Regions</A> can also be
"dynamic" meaning they move with constant velocity, oscillate, or
rotate.
</P>
<P>The only frictional idealized walls currently in LAMMPS are flat or
curved surfaces specified by the <A HREF = "fix_wall_gran.html">fix wall/gran</A>
command. At some point we plan to allow regoin surfaces to be used as
frictional walls, as well as triangulated surfaces.
</P>
<HR>
<A NAME = "4_18"></A><H4>4.18 Elastic constants
</H4>
<P>Elastic constants characterize the stiffness of a material. The formal
definition is provided by the linear relation that holds between the
stress and strain tensors in the limit of infinitesimal deformation.
In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where
the repeated indices imply summation. s_ij are the elements of the
symmetric stress tensor. e_kl are the elements of the symmetric strain
tensor. C_ijkl are the elements of the fourth rank tensor of elastic
constants. In three dimensions, this tensor has 3^4=81 elements. Using
Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij
is now the derivative of s_i w.r.t. e_j. Because s_i is itself a
derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at
most 7*6/2 = 21 distinct elements.
</P>
<P>At zero temperature, it is easy to estimate these derivatives by
deforming the cell in one of the six directions using the command
<A HREF = "displace_box.html">displace_box</A> and measuring the change in the
stress tensor. A general-purpose script that does this is given in the
examples/elastic directory described in <A HREF = "Section_example.html">this
section</A>.
</P>
<P>Calculating elastic constants at finite temperature is more
challenging, because it is necessary to run a simulation that perfoms
time averages of differential properties. One way to do this is to
measure the change in average stress tensor in an NVT simulations when
the cell volume undergoes a finite deformation. In order to balance
the systematic and statistical errors in this method, the magnitude of
the deformation must be chosen judiciously, and care must be taken to
fully equilibrate the deformed cell before sampling the stress
tensor. Another approach is to sample the triclinic cell fluctuations
that occur in an NPT simulation. This method can also be slow to
converge and requires careful post-processing <A HREF = "#Shinoda">(Shinoda)</A>
</P>
<HR>
<A NAME = "4_19"></A><H4>4.19 Library interface to LAMMPS
</H4>
<P>As described in <A HREF = "Section_start.html#2_4">this section</A>, LAMMPS can be
built as a library, so that it can be called by another code, used in
a <A HREF = "Section_howto.html#4_10">coupled manner</A> with other codes, or driven
through a <A HREF = "Section_python.html">Python interface</A>.
</P>
<P>All of these methodologies use a C-style interface to LAMMPS that is
provided in the files src/library.cpp and src/library.h. The
functions therein have a C-style argument list, but contain C++ code
you could write yourself in a C++ application that was invoking LAMMPS
directly. The C++ code in the functions illustrates how to invoke
internal LAMMPS operations. Note that LAMMPS classes are defined
within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++
application.
</P>
<P>Library.cpp contains these 4 functions:
</P>
<PRE>void lammps_open(int, char **, MPI_Comm, void **);
void lammps_close(void *);
void lammps_file(void *, char *);
char *lammps_command(void *, char *);
</PRE>
<P>The lammps_open() function is used to initialize LAMMPS, passing in a
list of strings as if they were <A HREF = "#2_6">command-line arguments</A> when
LAMMPS is run in stand-alone mode from the command line, and a MPI
communicator for LAMMPS to run under. It returns a ptr to the LAMMPS
object that is created, and which is used in subsequent library calls.
The lammps_open() function can be called multiple times, to create
multiple instances of LAMMPS.
</P>
<P>LAMMPS will run on the set of processors in the communicator. This
means the calling code can run LAMMPS on all or a subset of
processors. For example, a wrapper script might decide to alternate
between LAMMPS and another code, allowing them both to run on all the
processors. Or it might allocate half the processors to LAMMPS and
half to the other code and run both codes simultaneously before
syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
</P>
<P>The lammps_close() function is used to shut down an instance of LAMMPS
and free all its memory.
</P>
<P>The lammps_file() and lammps_command() functions are used to pass a
file or string to LAMMPS as if it were an input script or single
command in an input script. Thus the calling code can read or
generate a series of LAMMPS commands one line at a time and pass it
thru the library interface to setup a problem and then run it,
interleaving the lammps_command() calls with other calls to extract
information from LAMMPS, perform its own operations, or call another
code's library.
</P>
<P>Other useful functions are also included in library.cpp. For example:
</P>
<PRE>void *lammps_extract_global(void *, char *)
void *lammps_extract_atom(void *, char *)
void *lammps_extract_compute(void *, char *, int, int)
void *lammps_extract_fix(void *, char *, int, int, int, int)
void *lammps_extract_variable(void *, char *, char *)
int lammps_get_natoms(void *)
void lammps_get_coords(void *, double *)
void lammps_put_coords(void *, double *)
</PRE>
<P>These can extract various global or per-atom quantities from LAMMPS as
well as values calculated by a compute, fix, or variable. The "get"
and "put" operations can retrieve and reset atom coordinates.
See the library.cpp file and its associated header file library.h for
details.
</P>
<P>The key idea of the library interface is that you can write any
functions you wish to define how your code talks to LAMMPS and add
them to src/library.cpp and src/library.h, as well as to the <A HREF = "Section_python.html">Python
interface</A>. The routines you add can access
or change any LAMMPS data you wish. The couple and python directories
have example C++ and C and Python codes which show how a driver code
can link to LAMMPS as a library, run LAMMPS on a subset of processors,
grab data from LAMMPS, change it, and put it back into LAMMPS.
</P>
<HR>
<A NAME = "4_20"></A><H4>4.20 Calculating thermal conductivity
</H4>
<P>The thermal conductivity kappa of a material can be measured in at
least 3 ways using various options in LAMMPS. (See <A HREF = "Section_howto.html#4_21">this
section</A> of the manual for an analogous
discussion for viscosity). The thermal conducitivity tensor kappa is
a measure of the propensity of a material to transmit heat energy in a
diffusive manner as given by Fourier's law
</P>
<P>J = -kappa grad(T)
</P>
<P>where J is the heat flux in units of energy per area per time and
grad(T) is the spatial gradient of temperature. The thermal
conductivity thus has units of energy per distance per time per degree
K and is often approximated as an isotropic quantity, i.e. as a
scalar.
</P>
<P>The first method is to setup two thermostatted regions at opposite
ends of a simulation box, or one in the middle and one at the end of a
periodic box. By holding the two regions at different temperatures
with a <A HREF = "Section_howto.html#4_13">thermostatting fix</A>, the energy added
to the hot region should equal the energy subtracted from the cold
region and be proportional to the heat flux moving between the
regions. See the paper by <A HREF = "#Ikeshoji">Ikeshoji and Hafskjold</A> for
details of this idea. Note that thermostatting fixes such as <A HREF = "fix_nh.html">fix
nvt</A>, <A HREF = "fix_langevin.html">fix langevin</A>, and <A HREF = "fix_temp_rescale.html">fix
temp/rescale</A> store the cumulative energy they
add/subtract. Alternatively, the <A HREF = "fix_heat.html">fix heat</A> command can
used in place of thermostats on each of two regions, and the resulting
temperatures of the two regions monitored with the "compute
temp/region" command or the temperature profile of the intermediate
region monitored with the <A HREF = "fix_ave_spatial.html">fix ave/spatial</A> and
<A HREF = "compute_ke_atom.html">compute ke/atom</A> commands.
</P>
<P>The second method is to perform a reverse non-equilibrium MD
simulation using the <A HREF = "fix_thermal_conductivity.html">fix
thermal/conductivity</A> command which
implements the rNEMD algorithm of Muller-Plathe. Kinetic energy is
swapped between atoms in two different layers of the simulation box.
This induces a temperature gradient between the two layers which can
be monitored with the <A HREF = "fix_ave_spatial.html">fix ave/spatial</A> and
<A HREF = "compute_ke_atom.html">compute ke/atom</A> commands. The fix tallies the
cumulative energy transfer that it performs. See the <A HREF = "fix_thermal_conductivity.html">fix
thermal/conductivity</A> command for
details.
</P>
<P>The third method is based on the Green-Kubo (GK) formula which relates
the ensemble average of the auto-correlation of the heat flux to
kappa. The heat flux can be calculated from the fluctuations of
per-atom potential and kinetic energies and per-atom stress tensor in
a steady-state equilibrated simulation. This is in contrast to the
two preceding non-equilibrium methods, where energy flows continuously
between hot and cold regions of the simulation box.
</P>
<P>The <A HREF = "compute_heat_flux.html">compute heat/flux</A> command can calculate
the needed heat flux and describes how to implement the Green_Kubo
formalism using additional LAMMPS commands, such as the <A HREF = "fix_ave_correlate.html">fix
ave/correlate</A> command to calculate the needed
auto-correlation. See the doc page for the <A HREF = "compute_heat_flux.html">compute
heat/flux</A> command for an example input script
that calculates the thermal conductivity of solid Ar via the GK
formalism.
</P>
<HR>
<A NAME = "4_21"></A><H4>4.21 Calculating viscosity
</H4>
<P>The shear viscosity eta of a fluid can be measured in at least 3 ways
using various options in LAMMPS. (See <A HREF = "Section_howto.html#4_20">this
section</A> of the manual for an analogous
discussion for thermal conductivity). Eta is a measure of the
propensity of a fluid to transmit momentum in a direction
perpendicular to the direction of velocity or momentum flow.
Alternatively it is the resistance the fluid has to being sheared. It
is given by
</P>
<P>J = -eta grad(Vstream)
</P>
<P>where J is the momentum flux in units of momentum per area per time.
and grad(Vstream) is the spatial gradient of the velocity of the fluid
moving in another direction, normal to the area through which the
momentum flows. Viscosity thus has units of pressure-time.
</P>
<P>The first method is to perform a non-equlibrium MD (NEMD) simulation
by shearing the simulation box via the <A HREF = "fix_deform.html">fix deform</A>
command, and using the <A HREF = "fix_nvt_sllod.html">fix nvt/sllod</A> command to
thermostat the fluid via the SLLOD equations of motion. The velocity
profile setup in the fluid by this procedure can be monitored by the
<A HREF = "fix_ave_spatial.html">fix ave/spatial</A> command, which determines
grad(Vstream) in the equation above. E.g. the derivative in the
y-direction of the Vx component of fluid motion or grad(Vstream) =
dVx/dy. In this case, the Pxy off-diagonal component of the pressure
or stress tensor, as calculated by the <A HREF = "compute_pressure.html">compute
pressure</A> command, can also be monitored, which
is the J term in the equation above. See <A HREF = "Section_howto.html#4_13">this
section</A> of the manual for details on NEMD
simulations.
</P>
<P>The second method is to perform a reverse non-equilibrium MD
simulation using the <A HREF = "fix_viscosity.html">fix viscosity</A> command which
implements the rNEMD algorithm of Muller-Plathe. Momentum in one
dimension is swapped between atoms in two different layers of the
simulation box in a different dimension. This induces a velocity
gradient which can be monitored with the <A HREF = "fix_ave_spatial.html">fix
ave/spatial</A> command. The fix tallies the
cummulative momentum transfer that it performs. See the <A HREF = "fix_viscosity.html">fix
viscosity</A> command for details.
</P>
<P>The third method is based on the Green-Kubo (GK) formula which relates
the ensemble average of the auto-correlation of the stress/pressure
tensor to eta. This can be done in a steady-state equilibrated
simulation which is in contrast to the two preceding non-equilibrium
methods, where momentum flows continuously through the simulation box.
</P>
<P>Here is an example input script that calculates the viscosity of
liquid Ar via the GK formalism:
</P>
<PRE># Sample LAMMPS input script for viscosity of liquid Ar
</PRE>
<PRE>units real
variable T equal 86.4956
variable V equal vol
variable dt equal 4.0
variable p equal 400 # correlation length
variable s equal 5 # sample interval
variable d equal $p*$s # dump interval
</PRE>
<PRE># convert from LAMMPS real units to SI
</PRE>
<PRE>variable kB equal 1.3806504e-23 # [J/K/</B> Boltzmann
variable atm2Pa equal 101325.0
variable A2m equal 1.0e-10
variable fs2s equal 1.0e-15
variable convert equal ${atm2Pa}*${atm2Pa}*${fs2s}*${A2m}*${A2m}*${A2m}
</PRE>
<PRE># setup problem
</PRE>
<PRE>dimension 3
boundary p p p
lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 39.948
pair_style lj/cut 13.0
pair_coeff * * 0.2381 3.405
timestep ${dt}
thermo $d
</PRE>
<PRE># equilibration and thermalization
</PRE>
<PRE>velocity all create $T 102486 mom yes rot yes dist gaussian
fix NVT all nvt temp $T $T 10 drag 0.2
run 8000
</PRE>
<PRE># viscosity calculation, switch to NVE if desired
</PRE>
<PRE>#unfix NVT
#fix NVE all nve
</PRE>
<PRE>reset_timestep 0
variable pxy equal pxy
variable pxz equal pxz
variable pyz equal pyz
fix SS all ave/correlate $s $p $d &
v_pxy v_pxz v_pyz type auto file S0St.dat ave running
variable scale equal ${convert}/(${kB}*$T)*$V*$s*${dt}
variable v11 equal trap(f_SS[3/</B>)*${scale}
variable v22 equal trap(f_SS[4/</B>)*${scale}
variable v33 equal trap(f_SS[5/</B>)*${scale}
thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33
run 100000
variable v equal (v_v11+v_v22+v_v33)/3.0
variable ndens equal count(all)/vol
print "average viscosity: $v [Pa.s/</B> @ $T K, ${ndens} /A^3"
</PRE>
<HR>
<HR>
<A NAME = "Berendsen"></A>
<P><B>(Berendsen)</B> Berendsen, Grigera, Straatsma, J Phys Chem, 91,
6269-6271 (1987).
</P>
<A NAME = "Cornell"></A>
<P><B>(Cornell)</B> Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
</P>
<A NAME = "Horn"></A>
<P><B>(Horn)</B> Horn, Swope, Pitera, Madura, Dick, Hura, and Head-Gordon,
J Chem Phys, 120, 9665 (2004).
</P>
<A NAME = "Ikeshoji"></A>
<P><B>(Ikeshoji)</B> Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261
(1994).
</P>
<A NAME = "MacKerell"></A>
<P><B>(MacKerell)</B> MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,
Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
</P>
<A NAME = "Mayo"></A>
<P><B>(Mayo)</B> Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
(1990).
</P>
<A NAME = "Jorgensen"></A>
<P><B>(Jorgensen)</B> Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
</P>
<A NAME = "Price"></A>
<P><B>(Price)</B> Price and Brooks, J Chem Phys, 121, 10096 (2004).
</P>
<A NAME = "Shinoda"></A>
<P><B>(Shinoda)</B> Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
</P>
</HTML>
diff --git a/doc/Section_howto.txt b/doc/Section_howto.txt
index 0404b67bf..b6337c7de 100644
--- a/doc/Section_howto.txt
+++ b/doc/Section_howto.txt
@@ -1,1926 +1,1937 @@
"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_example.html :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
4. How-to discussions :h3
The following sections describe how to use various options within
LAMMPS.
4.1 "Restarting a simulation"_#4_1
4.2 "2d simulations"_#4_2
4.3 "CHARMM, AMBER, and DREIDING force fields"_#4_3
4.4 "Running multiple simulations from one input script"_#4_4
4.5 "Multi-replica simulations"_#4_5
4.6 "Granular models"_#4_6
4.7 "TIP3P water model"_#4_7
4.8 "TIP4P water model"_#4_8
4.9 "SPC water model"_#4_9
4.10 "Coupling LAMMPS to other codes"_#4_10
4.11 "Visualizing LAMMPS snapshots"_#4_11
4.12 "Triclinic (non-orthogonal) simulation boxes"_#4_12
4.13 "NEMD simulations"_#4_13
4.14 "Extended spherical and aspherical particles"_#4_14
4.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_#4_15
4.16 "Thermostatting, barostatting and computing temperature"_#4_16
4.17 "Walls"_#4_17
4.18 "Elastic constants"_#4_18
4.19 "Library interface to LAMMPS"_#4_19
4.20 "Calculating thermal conductivity"_#4_20
4.21 "Calculating viscosity"_#4_21 :all(b)
The example input scripts included in the LAMMPS distribution and
highlighted in "this section"_Section_example.html also show how to
setup and run various kinds of simulations.
:line
4.1 Restarting a simulation :link(4_1),h4
There are 3 ways to continue a long LAMMPS simulation. Multiple
"run"_run.html commands can be used in the same input script. Each
run will continue from where the previous run left off. Or binary
restart files can be saved to disk using the "restart"_restart.html
command. At a later time, these binary files can be read via a
"read_restart"_read_restart.html command in a new script. Or they can
be converted to text data files and read by a
"read_data"_read_data.html command in a new script. "This
section"_Section_tools.html discusses the {restart2data} tool that is
used to perform the conversion.
Here we give examples of 2 scripts that read either a binary restart
file or a converted data file and then issue a new run command to
continue where the previous run left off. They illustrate what
settings must be made in the new script. Details are discussed in the
documentation for the "read_restart"_read_restart.html and
"read_data"_read_data.html commands.
Look at the {in.chain} input script provided in the {bench} directory
of the LAMMPS distribution to see the original script that these 2
scripts are based on. If that script had the line
restart 50 tmp.restart :pre
added to it, it would produce 2 binary restart files (tmp.restart.50
and tmp.restart.100) as it ran.
This script could be used to read the 1st restart file and re-run the
last 50 timesteps:
read_restart tmp.restart.50 :pre
neighbor 0.4 bin
neigh_modify every 1 delay 1 :pre
fix 1 all nve
fix 2 all langevin 1.0 1.0 10.0 904297 :pre
timestep 0.012 :pre
run 50 :pre
Note that the following commands do not need to be repeated because
their settings are included in the restart file: {units, atom_style,
special_bonds, pair_style, bond_style}. However these commands do
need to be used, since their settings are not in the restart file:
{neighbor, fix, timestep}.
If you actually use this script to perform a restarted run, you will
notice that the thermodynamic data match at step 50 (if you also put a
"thermo 50" command in the original script), but do not match at step
100. This is because the "fix langevin"_fix_langevin.html command
uses random numbers in a way that does not allow for perfect restarts.
As an alternate approach, the restart file could be converted to a data
file using this tool:
restart2data tmp.restart.50 tmp.restart.data :pre
Then, this script could be used to re-run the last 50 steps:
units lj
atom_style bond
pair_style lj/cut 1.12
pair_modify shift yes
bond_style fene
special_bonds 0.0 1.0 1.0 :pre
read_data tmp.restart.data :pre
neighbor 0.4 bin
neigh_modify every 1 delay 1 :pre
fix 1 all nve
fix 2 all langevin 1.0 1.0 10.0 904297 :pre
timestep 0.012 :pre
reset_timestep 50
run 50 :pre
Note that nearly all the settings specified in the original {in.chain}
script must be repeated, except the {pair_coeff} and {bond_coeff}
commands since the new data file lists the force field coefficients.
Also, the "reset_timestep"_reset_timestep.html command is used to tell
LAMMPS the current timestep. This value is stored in restart files,
but not in data files.
:line
4.2 2d simulations :link(4_2),h4
Use the "dimension"_dimension.html command to specify a 2d simulation.
Make the simulation box periodic in z via the "boundary"_boundary.html
command. This is the default.
If using the "create box"_create_box.html command to define a
simulation box, set the z dimensions narrow, but finite, so that the
create_atoms command will tile the 3d simulation box with a single z
plane of atoms - e.g.
"create box"_create_box.html 1 -10 10 -10 10 -0.25 0.25 :pre
If using the "read data"_read_data.html command to read in a file of
atom coordinates, set the "zlo zhi" values to be finite but narrow,
similar to the create_box command settings just described. For each
atom in the file, assign a z coordinate so it falls inside the
z-boundaries of the box - e.g. 0.0.
Use the "fix enforce2d"_fix_enforce2d.html command as the last
defined fix to insure that the z-components of velocities and forces
are zeroed out every timestep. The reason to make it the last fix is
so that any forces induced by other fixes will be zeroed out.
Many of the example input scripts included in the LAMMPS distribution
are for 2d models.
IMPORTANT NOTE: Some models in LAMMPS treat particles as extended
spheres, as opposed to point particles. In 2d, the particles will
still be spheres, not disks, meaning their moment of inertia will be
the same as in 3d.
:line
4.3 CHARMM, AMBER, and DREIDING force fields :link(4_3),h4
A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly
used in the CHARMM, AMBER, and DREIDING force fields. Setting
coefficients is done in the input data file via the
"read_data"_read_data.html command or in the input script with
commands like "pair_coeff"_pair_coeff.html or
"bond_coeff"_bond_coeff.html. See "this section"_Section_tools.html
for additional tools that can use CHARMM or AMBER to assign force
field coefficients and convert their output into LAMMPS input.
See "(MacKerell)"_#MacKerell for a description of the CHARMM force
field. See "(Cornell)"_#Cornell for a description of the AMBER force
field.
:link(charmm,http://www.scripps.edu/brooks)
:link(amber,http://amber.scripps.edu)
These style choices compute force field formulas that are consistent
with common options in CHARMM or AMBER. See each command's
documentation for the formula it computes.
"bond_style"_bond_harmonic.html harmonic
"angle_style"_angle_charmm.html charmm
"dihedral_style"_dihedral_charmm.html charmm
"pair_style"_pair_charmm.html lj/charmm/coul/charmm
"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit
"pair_style"_pair_charmm.html lj/charmm/coul/long :ul
"special_bonds"_special_bonds.html charmm
"special_bonds"_special_bonds.html amber :ul
DREIDING is a generic force field developed by the "Goddard
group"_http://www.wag.caltech.edu at Caltech and is useful for
predicting structures and dynamics of organic, biological and
main-group inorganic molecules. The philosophy in DREIDING is to use
general force constants and geometry parameters based on simple
hybridization considerations, rather than individual force constants
and geometric parameters that depend on the particular combinations of
atoms involved in the bond, angle, or torsion terms. DREIDING has an
"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe
interactions involving a hydrogen atom on very electronegative atoms
(N, O, F).
See "(Mayo)"_#Mayo for a description of the DREIDING force field
These style choices compute force field formulas that are consistent
with the DREIDING force field. See each command's
documentation for the formula it computes.
"bond_style"_bond_harmonic.html harmonic
"bond_style"_bond_morse.html morse :ul
"angle_style"_angle_harmonic.html harmonic
"angle_style"_angle_cosine.html cosine
"angle_style"_angle_cosine_periodic.html cosine/periodic :ul
"dihedral_style"_dihedral_charmm.html charmm
"improper_style"_improper_umbrella.html umbrella :ul
"pair_style"_pair_buck.html buck
"pair_style"_pair_buck.html buck/coul/cut
"pair_style"_pair_buck.html buck/coul/long
"pair_style"_pair_lj.html lj/cut
"pair_style"_pair_lj.html lj/cut/coul/cut
"pair_style"_pair_lj.html lj/cut/coul/long :ul
"pair_style"_pair_hbond_dreiding.html hbond/dreiding/lj
"pair_style"_pair_hbond_dreiding.html hbond/dreiding/morse :ul
"special_bonds"_special_bonds.html dreiding :ul
:line
4.4 Running multiple simulations from one input script :link(4_4),h4
This can be done in several ways. See the documentation for
individual commands for more details on how these examples work.
If "multiple simulations" means continue a previous simulation for
more timesteps, then you simply use the "run"_run.html command
multiple times. For example, this script
units lj
atom_style atomic
read_data data.lj
run 10000
run 10000
run 10000
run 10000
run 10000 :pre
would run 5 successive simulations of the same system for a total of
50,000 timesteps.
If you wish to run totally different simulations, one after the other,
the "clear"_clear.html command can be used in between them to
re-initialize LAMMPS. For example, this script
units lj
atom_style atomic
read_data data.lj
run 10000
clear
units lj
atom_style atomic
read_data data.lj.new
run 10000 :pre
would run 2 independent simulations, one after the other.
For large numbers of independent simulations, you can use
"variables"_variable.html and the "next"_next.html and
"jump"_jump.html commands to loop over the same input script
multiple times with different settings. For example, this
script, named in.polymer
variable d index run1 run2 run3 run4 run5 run6 run7 run8
shell cd $d
read_data data.polymer
run 10000
shell cd ..
clear
next d
jump in.polymer :pre
would run 8 simulations in different directories, using a data.polymer
file in each directory. The same concept could be used to run the
same system at 8 different temperatures, using a temperature variable
and storing the output in different log and dump files, for example
variable a loop 8
variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15
log log.$a
read data.polymer
velocity all create $t 352839
fix 1 all nvt $t $t 100.0
dump 1 all atom 1000 dump.$a
run 100000
next t
next a
jump in.polymer :pre
All of the above examples work whether you are running on 1 or
multiple processors, but assumed you are running LAMMPS on a single
partition of processors. LAMMPS can be run on multiple partitions via
the "-partition" command-line switch as described in "this
section"_Section_start.html#2_6 of the manual.
In the last 2 examples, if LAMMPS were run on 3 partitions, the same
scripts could be used if the "index" and "loop" variables were
replaced with {universe}-style variables, as described in the
"variable"_variable.html command. Also, the "next t" and "next a"
commands would need to be replaced with a single "next a t" command.
With these modifications, the 8 simulations of each script would run
on the 3 partitions one after the other until all were finished.
Initially, 3 simulations would be started simultaneously, one on each
partition. When one finished, that partition would then start
the 4th simulation, and so forth, until all 8 were completed.
:line
4.5 Multi-replica simulations :link(4_5),h4
Several commands in LAMMPS run mutli-replica simulations, meaning
that multiple instances (replicas) of your simulation are run
simultaneously, with small amounts of data exchanged between replicas
periodically.
These are the relevant commands:
"neb"_neb.html for nudged elastic band calculations
"prd"_prd.html for parallel replica dynamics
"tad"_tad.html for temperature accelerated dynamics
"temper"_temper.html for parallel tempering :ul
NEB is a method for finding transition states and barrier energies.
PRD and TAD are methods for performing accelerated dynamics to find
and perform infrequent events. Parallel tempering or replica exchange
runs different replicas at a series of temperature to facilitate
rare-event sampling.
These command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.
In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at
run-time by using the "-partition command-line
switch"_Section_start.html#2_6 to launch LAMMPS on multiple
partitions, which in this context are the same as replicas. E.g.
these commands:
mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre
would each run 8 replicas, on either 16 or 8 processors. Note the use
of the "-in command-line switch"_Section_start.html#2_6 to specify the
input script which is required when running in multi-replica mode.
Also note that with MPI installed on a machine (e.g. your desktop),
you can run on more (virtual) processors than you have physical
processors. Thus the above commands could be run on a
single-processor (or few-processor) desktop so that you can run
a multi-replica simulation on more replicas than you have
physical processors.
:line
4.6 Granular models :link(4_6),h4
Granular system are composed of spherical particles with a diameter,
as opposed to point particles. This means they have an angular
velocity and torque can be imparted to them to cause them to rotate.
To run a simulation of a granular model, you will want to use
the following commands:
"atom_style sphere"_atom_style.html
"fix nve/sphere"_fix_nve_sphere.html
"fix gravity"_fix_gravity.html :ul
This compute
"compute erotate/sphere"_compute_erotate_sphere.html :ul
calculates rotational kinetic energy which can be "output with
thermodynamic info"_Section_howto.html#4_15.
Use one of these 3 pair potentials, which compute forces and torques
between interacting pairs of particles:
"pair_style"_pair_style.html gran/history
"pair_style"_pair_style.html gran/no_history
"pair_style"_pair_style.html gran/hertzian :ul
These commands implement fix options specific to granular systems:
"fix freeze"_fix_freeze.html
"fix pour"_fix_pour.html
"fix viscous"_fix_viscous.html
"fix wall/gran"_fix_wall_gran.html :ul
The fix style {freeze} zeroes both the force and torque of frozen
atoms, and should be used for granular system instead of the fix style
{setforce}.
For computational efficiency, you can eliminate needless pairwise
computations between frozen atoms by using this command:
"neigh_modify"_neigh_modify.html exclude :ul
:line
4.7 TIP3P water model :link(4_7),h4
The TIP3P water model as implemented in CHARMM
"(MacKerell)"_#MacKerell specifies a 3-site rigid water molecule with
charges and Lennard-Jones parameters assigned to each of the 3 atoms.
In LAMMPS the "fix shake"_fix_shake.html command can be used to hold
the two O-H bonds and the H-O-H angle rigid. A bond style of
{harmonic} and an angle style of {harmonic} or {charmm} should also be
used.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP3P-CHARMM model with a
cutoff. The K values can be used if a flexible TIP3P model (without
fix shake) is desired. If the LJ epsilon and sigma for HH and OH are
set to 0.0, it corresponds to the original 1983 TIP3P model
"(Jorgensen)"_#Jorgensen.
O mass = 15.9994
H mass = 1.008 :all(b),p
O charge = -0.834
H charge = 0.417 :all(b),p
LJ epsilon of OO = 0.1521
LJ sigma of OO = 3.1507
LJ epsilon of HH = 0.0460
LJ sigma of HH = 0.4000
LJ epsilon of OH = 0.0836
LJ sigma of OH = 1.7753 :all(b),p
K of OH bond = 450
r0 of OH bond = 0.9572 :all(b),p
K of HOH angle = 55
theta of HOH angle = 104.52 :all(b),p
These are the parameters to use for TIP3P with a long-range Coulombic
solver (Ewald or PPPM in LAMMPS), see "(Price)"_#Price for details:
O mass = 15.9994
H mass = 1.008 :all(b),p
O charge = -0.830
H charge = 0.415 :all(b),p
LJ epsilon of OO = 0.102
LJ sigma of OO = 3.188
LJ epsilon, sigma of OH, HH = 0.0 :all(b),p
K of OH bond = 450
r0 of OH bond = 0.9572 :all(b),p
K of HOH angle = 55
theta of HOH angle = 104.52 :all(b),p
Wikipedia also has a nice article on "water
models"_http://en.wikipedia.org/wiki/Water_model.
:line
4.8 TIP4P water model :link(4_8),h4
The four-point TIP4P rigid water model extends the traditional
three-point TIP3P model by adding an additional site, usually
massless, where the charge associated with the oxygen atom is placed.
This site M is located at a fixed distance away from the oxygen along
the bisector of the HOH bond angle. A bond style of {harmonic} and an
angle style of {harmonic} or {charmm} should also be used.
Currently, only a four-point model for long-range Coulombics is
implemented via the LAMMPS "pair style
lj/cut/coul/long/tip4p"_pair_lj.html. A cutoff version may be added
the future. For both models, the bond lengths and bond angles should
be held fixed using the "fix shake"_fix_shake.html command.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP4P model with a cutoff
"(Jorgensen)"_#Jorgensen. Note that the OM distance is specified in
the "pair_style"_pair_style.html command, not as part of the pair
coefficients.
O mass = 15.9994
H mass = 1.008 :all(b),p
O charge = -1.040
H charge = 0.520 :all(b),p
r0 of OH bond = 0.9572
theta of HOH angle = 104.52 :all(b),p
OM distance = 0.15 :all(b),p
LJ epsilon of O-O = 0.1550
LJ sigma of O-O = 3.1536
LJ epsilon, sigma of OH, HH = 0.0 :all(b),p
These are the parameters to use for TIP4P with a long-range Coulombic
solver (Ewald or PPPM in LAMMPS):
O mass = 15.9994
H mass = 1.008 :all(b),p
O charge = -1.0484
H charge = 0.5242 :all(b),p
r0 of OH bond = 0.9572
theta of HOH angle = 104.52 :all(b),p
OM distance = 0.1250 :all(b),p
LJ epsilon of O-O = 0.16275
LJ sigma of O-O = 3.16435
LJ epsilon, sigma of OH, HH = 0.0 :all(b),p
Wikipedia also has a nice article on "water
models"_http://en.wikipedia.org/wiki/Water_model.
:line
4.9 SPC water model :link(4_9),h4
The SPC water model specifies a 3-site rigid water molecule with
charges and Lennard-Jones parameters assigned to each of the 3 atoms.
In LAMMPS the "fix shake"_fix_shake.html command can be used to hold
the two O-H bonds and the H-O-H angle rigid. A bond style of
{harmonic} and an angle style of {harmonic} or {charmm} should also be
used.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid SPC model.
O mass = 15.9994
H mass = 1.008 :all(b),p
O charge = -0.820
H charge = 0.410 :all(b),p
LJ epsilon of OO = 0.1553
LJ sigma of OO = 3.166
LJ epsilon, sigma of OH, HH = 0.0 :all(b),p
r0 of OH bond = 1.0
theta of HOH angle = 109.47 :all(b),p
Note that as originally proposed, the SPC model was run with a 9
Angstrom cutoff for both LJ and Coulommbic terms. It can also be used
with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing
any of the parameters above, though it becomes a different model in
that mode of usage.
The SPC/E (extended) water model is the same, except
the partial charge assignemnts change:
O charge = -0.8476
H charge = 0.4238 :all(b),p
See the "(Berendsen)"_#Berendsen reference for more details on both
the SPC and SPC/E models.
Wikipedia also has a nice article on "water
models"_http://en.wikipedia.org/wiki/Water_model.
:line
4.10 Coupling LAMMPS to other codes :link(4_10),h4
LAMMPS is designed to allow it to be coupled to other codes. For
example, a quantum mechanics code might compute forces on a subset of
atoms and pass those forces to LAMMPS. Or a continuum finite element
(FE) simulation might use atom positions as boundary conditions on FE
nodal points, compute a FE solution, and return interpolated forces on
MD atoms.
LAMMPS can be coupled to other codes in at least 3 ways. Each has
advantages and disadvantages, which you'll have to think about in the
context of your application.
(1) Define a new "fix"_fix.html command that calls the other code. In
this scenario, LAMMPS is the driver code. During its timestepping,
the fix is invoked, and can make library calls to the other code,
which has been linked to LAMMPS as a library. This is the way the
"POEMS"_poems package that performs constrained rigid-body motion on
groups of atoms is hooked to LAMMPS. See the
"fix_poems"_fix_poems.html command for more details. See "this
section"_Section_modify.html of the documentation for info on how to add
a new fix to LAMMPS.
:link(poems,http://www.rpi.edu/~anderk5/lab)
(2) Define a new LAMMPS command that calls the other code. This is
conceptually similar to method (1), but in this case LAMMPS and the
other code are on a more equal footing. Note that now the other code
is not called during the timestepping of a LAMMPS run, but between
runs. The LAMMPS input script can be used to alternate LAMMPS runs
with calls to the other code, invoked via the new command. The
"run"_run.html command facilitates this with its {every} option, which
makes it easy to run a few steps, invoke the command, run a few steps,
invoke the command, etc.
In this scenario, the other code can be called as a library, as in
(1), or it could be a stand-alone code, invoked by a system() call
made by the command (assuming your parallel machine allows one or more
processors to start up another program). In the latter case the
stand-alone code could communicate with LAMMPS thru files that the
command writes and reads.
See "this section"_Section_modify.html of the documentation for how to
add a new command to LAMMPS.
(3) Use LAMMPS as a library called by another code. In this case the
other code is the driver and calls LAMMPS as needed. Or a wrapper
code could link and call both LAMMPS and another code as libraries.
Again, the "run"_run.html command has options that allow it to be
invoked with minimal overhead (no setup or clean-up) if you wish to do
multiple short runs, driven by another program.
Examples of driver codes that call LAMMPS as a library are included in
the "couple" directory of the LAMMPS distribution; see couple/README
for more details:
simple: simple driver programs in C++ and C which invoke LAMMPS as a
library :ulb,l
lammps_quest: coupling of LAMMPS and "Quest"_quest, to run classical
MD with quantum forces calculated by a density functional code :l
lammps_spparks: coupling of LAMMPS and "SPPARKS"_spparks, to couple
a kinetic Monte Carlo model for grain growth using MD to calculate
strain induced across grain boundaries :l,ule
:link(quest,http://dft.sandia.gov/Quest)
:link(spparks,http://www.sandia.gov/~sjplimp/spparks.html)
"This section"_Section_start.html#2_4 of the documentation describes
how to build LAMMPS as a library. Once this is done, you can
interface with LAMMPS either via C++, C, Fortran, or Python (or any
other language that supports a vanilla C-like interface). For
example, from C++ you could create one (or more) "instances" of
LAMMPS, pass it an input script to process, or execute individual
commands, all by invoking the correct class methods in LAMMPS. From C
or Fortran you can make function calls to do the same things. See
"this section"_Section_python.html of the manual for a description of
the Python wrapper provided with LAMMPS that operates through the
LAMMPS library interface.
The files src/library.cpp and library.h contain the C-style interface
to LAMMPS. See "this section"_Section_howto.html#4_19 of the manual
for a description of the interface and how to extend it for your
needs.
Note that the lammps_open() function that creates an instance of
LAMMPS takes an MPI communicator as an argument. This means that
instance of LAMMPS will run on the set of processors in the
communicator. Thus the calling code can run LAMMPS on all or a subset
of processors. For example, a wrapper script might decide to
alternate between LAMMPS and another code, allowing them both to run
on all the processors. Or it might allocate half the processors to
LAMMPS and half to the other code and run both codes simultaneously
before syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
:line
4.11 Visualizing LAMMPS snapshots :link(4_11),h4
LAMMPS itself does not do visualization, but snapshots from LAMMPS
simulations can be visualized (and analyzed) in a variety of ways.
LAMMPS snapshots are created by the "dump"_dump.html command which can
create files in several formats. The native LAMMPS dump format is a
text file (see "dump atom" or "dump custom") which can be visualized
by the "xmovie"_Section_tools.html#xmovie program, included with the
LAMMPS package. This produces simple, fast 2d projections of 3d
systems, and can be useful for rapid debugging of simulation geometry
and atom trajectories.
Several programs included with LAMMPS as auxiliary tools can convert
native LAMMPS dump files to other formats. See the
"Section_tools"_Section_tools.html doc page for details. The first is
the "ch2lmp tool"_Section_tools.html#charmm, which contains a
lammps2pdb Perl script which converts LAMMPS dump files into PDB
files. The second is the "lmp2arc tool"_Section_tools.html#arc which
converts LAMMPS dump files into Accelrys' Insight MD program files.
The third is the "lmp2cfg tool"_Section_tools.html#cfg which converts
LAMMPS dump files into CFG files which can be read into the
"AtomEye"_atomeye visualizer.
A Python-based toolkit distributed by our group can read native LAMMPS
dump files, including custom dump files with additional columns of
user-specified atom information, and convert them to various formats
or pipe them into visualization software directly. See the "Pizza.py
WWW site"_pizza for details. Specifically, Pizza.py can convert
LAMMPS dump files into PDB, XYZ, "Ensight"_ensight, and VTK formats.
Pizza.py can pipe LAMMPS dump files directly into the Raster3d and
RasMol visualization programs. Pizza.py has tools that do interactive
3d OpenGL visualization and one that creates SVG images of dump file
snapshots.
LAMMPS can create XYZ files directly (via "dump xyz") which is a
simple text-based file format used by many visualization programs
including "VMD"_vmd.
LAMMPS can create DCD files directly (via "dump dcd") which can be
read by "VMD"_vmd in conjunction with a CHARMM PSF file. Using this
form of output avoids the need to convert LAMMPS snapshots to PDB
files. See the "dump"_dump.html command for more information on DCD
files.
LAMMPS can create XTC files directly (via "dump xtc") which is GROMACS
file format which can also be read by "VMD"_vmd for visualization.
See the "dump"_dump.html command for more information on XTC files.
:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html)
:link(vmd,http://www.ks.uiuc.edu/Research/vmd)
:link(ensight,http://www.ensight.com)
:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
:line
4.12 Triclinic (non-orthogonal) simulation boxes :link(4_12),h4
By default, LAMMPS uses an orthogonal simulation box to encompass the
particles. The "boundary"_boundary.html command sets the boundary
conditions of the box (periodic, non-periodic, etc). The orthogonal
box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors
-starting from the origin given by A = (xhi-xlo,0,0); B =
-(0,yhi-ylo,0); C = (0,0,zhi-zlo). The 6 parameters
+starting from the origin given by [a] = (xhi-xlo,0,0); [b] =
+(0,yhi-ylo,0); [c] = (0,0,zhi-zlo). The 6 parameters
(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simluation box
is created, e.g. by the "create_box"_create_box.html or
"read_data"_read_data.html or "read_restart"_read_restart.html
commands. Additionally, LAMMPS defines box size parameters lx,ly,lz
where lx = xhi-xlo, and similarly in the y and z dimensions. The 6
parameters, as well as lx,ly,lz, can be output via the "thermo_style
custom"_thermo_style.html command.
LAMMPS also allows simulations to be perfored in non-orthogonal
simulation boxes shaped as a parallelepiped with triclinic symmetry.
The parallelepiped has its "origin" at (xlo,ylo,zlo) and is defined by
-3 edge vectors starting from the origin given by A = (xhi-xlo,0,0); B
-= (xy,yhi-ylo,0); C = (xz,yz,zhi-zlo). {Xy,xz,yz} can be 0.0 or
+3 edge vectors starting from the origin given by [a] = (xhi-xlo,0,0); [b]
+= (xy,yhi-ylo,0); [c] = (xz,yz,zhi-zlo). {Xy,xz,yz} can be 0.0 or
positive or negative values and are called "tilt factors" because they
are the amount of displacement applied to faces of an originally
orthogonal box to transform it into the parallelepiped. Note that in
-LAMMPS the triclinic simulation box edge vectors A,B,C cannot be
-arbitrary vectors. As indicated, A must be aligned with the x axis, B
-must be in the xy plane, and C is arbitrary. However, this is not a
+LAMMPS the triclinic simulation box edge vectors [a], [b], and [c] cannot be
+arbitrary vectors. As indicated, [a] must be aligned with the x axis, [b]
+must be in the xy plane, and [c] is arbitrary. However, this is not a
restriction since it is possible to rotate any set of 3 crystal basis
vectors so that they meet this restriction.
The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the
time the simluation box is created. This happens in one of 3 ways.
If the "create_box"_create_box.html command is used with a region of
style {prism}, then a triclinic box is setup. See the
"region"_region.html command for details. If the
"read_data"_read_data.html command is used to define the simulation
box, and the header of the data file contains a line with the "xy xz
yz" keyword, then a triclinic box is setup. See the
"read_data"_read_data.html command for details. Finally, if the
"read_restart"_read_restart.html command reads a restart file which
was written from a simulation using a triclinic box, then a triclinic
box will be setup for the restarted simulation.
Note that you can define a triclinic box with all 3 tilt factors =
0.0, so that it is initially orthogonal. This is necessary if the box
will become non-orthogonal, e.g. due to the "fix npt"_fix_nh.html or
"fix deform"_fix_deform.html commands. Alternatively, you can use the
"change_box"_change_box.html command to convert a simulation box from
orthogonal to triclinic and vice versa.
As with orthogonal boxes, LAMMPS defines triclinic box size parameters
lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions.
The 9 parameters, as well as lx,ly,lz, can be output via the
"thermo_style custom"_thermo_style.html command.
To avoid extremely tilted boxes (which would be computationally
inefficient), no tilt factor can skew the box more than half the
distance of the parallel box length, which is the 1st dimension in the
tilt factor (x for xz). For example, if xlo = 2 and xhi = 12, then
the x box length is 10 and the xy tilt factor must be between -5 and
5. Similarly, both xz and yz must be between -(xhi-xlo)/2 and
+(yhi-ylo)/2. Note that this is not a limitation, since if the
maximum tilt factor is 5 (as in this example), then configurations
with tilt = ..., -15, -5, 5, 15, 25, ... are geometrically all
equivalent.
Triclinic crystal structures are often defined using three lattice
constants {a}, {b}, and {c}, and three angles {alpha}, {beta} and
-{gamma}. Note that in this nomenclature, the a,b,c lattice constants
-are the scalar lengths of the 3 A,B,C edge vectors defined above. The
+{gamma}. Note that in this nomenclature, the a, b, and c lattice constants
+are the scalar lengths of the edge vectors [a], [b], and [c] defined
+above. The
relationship between these 6 quantities (a,b,c,alpha,beta,gamma) and
the LAMMPS box sizes (lx,ly,lz) = (xhi-xlo,yhi-ylo,zhi-zlo) and tilt
factors (xy,xz,yz) is as follows:
:c,image(Eqs/box.jpg)
+The inverse relationship can be written as follows:
+
+:c,image(Eqs/box_inverse.jpg)
+
+The values of {a}, {b}, {c} , {alpha}, {beta} , and {gamma} can be printed
+out or accessed by computes using the
+"thermo_style custom"_thermo_style.html keywords
+{cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma},
+respectively.
+
As discussed on the "dump"_dump.html command doc page, when the BOX
BOUNDS for a snapshot is written to a dump file for a triclinic box,
an orthogonal bounding box which encloses the triclinic simulation box
is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic
box, formatted as follows:
ITEM: BOX BOUNDS xy xz yz
xlo_bound xhi_bound xy
ylo_bound yhi_bound xz
zlo_bound zhi_bound yz :pre
This bounding box is convenient for many visualization programs and is
calculated from the 9 triclinic box parameters
(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows:
xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz)
xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz)
ylo_bound = ylo + MIN(0.0,yz)
yhi_bound = yhi + MAX(0.0,yz)
zlo_bound = zlo
zhi_bound = zhi :pre
These formulas can be inverted if you need to convert the bounding box
back into the triclinic box parameters, e.g. xlo = xlo_bound -
MIN(0.0,xy,xz,xy+xz).
One use of triclinic simulation boxes is to model solid-state crystals
with triclinic symmetry. The "lattice"_lattice.html command can be
used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the
"create_atoms"_create_atoms.html command.
A second use is to run Parinello-Rahman dyanamics via the "fix
npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt
factors to compensate for off-diagonal components of the pressure
tensor. The analalog for an "energy minimization"_minimize.html is
the "fix box/relax"_fix_box_relax.html command.
A third use is to shear a bulk solid to study the response of the
material. The "fix deform"_fix_deform.html command can be used for
this purpose. It allows dynamic control of the xy, xz, yz tilt
factors as a simulation runs. This is discussed in the next section
on non-equilibrium MD (NEMD) simulations.
:line
4.13 NEMD simulations :link(4_13),h4
Non-equilibrium molecular dynamics or NEMD simulations are typically
used to measure a fluid's rheological properties such as viscosity.
In LAMMPS, such simulations can be performed by first setting up a
non-orthogonal simulation box (see the preceding Howto section).
A shear strain can be applied to the simulation box at a desired
strain rate by using the "fix deform"_fix_deform.html command. The
"fix nvt/sllod"_fix_nvt_sllod.html command can be used to thermostat
the sheared fluid and integrate the SLLOD equations of motion for the
system. Fix nvt/sllod uses "compute
temp/deform"_compute_temp_deform.html to compute a thermal temperature
by subtracting out the streaming velocity of the shearing atoms. The
velocity profile or other properties of the fluid can be monitored via
the "fix ave/spatial"_fix_ave_spatial.html command.
As discussed in the previous section on non-orthogonal simulation
boxes, the amount of tilt or skew that can be applied is limited by
LAMMPS for computational efficiency to be 1/2 of the parallel box
length. However, "fix deform"_fix_deform.html can continuously strain
a box by an arbitrary amount. As discussed in the "fix
deform"_fix_deform.html command, when the tilt value reaches a limit,
the box is re-shaped to the opposite limit which is an equivalent
tiling of periodic space. The strain rate can then continue to change
as before. In a long NEMD simulation these box re-shaping events may
occur many times.
In a NEMD simulation, the "remap" option of "fix
deform"_fix_deform.html should be set to "remap v", since that is what
"fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity
profile consistent with the applied shear strain rate.
An alternative method for calculating viscosities is provided via the
"fix viscosity"_fix_viscosity.html command.
:line
4.14 Extended spherical and aspherical particles :link(4_14),h4
Typical MD models treat atoms or particles as point masses.
Sometimes, however, it is desirable to have a model with finite-size
particles such as spheres or aspherical ellipsoids. The difference is
that such particles have a moment of inertia, rotational energy, and
angular momentum. Rotation is induced by torque from interactions
with other particles.
LAMMPS has several options for running simulations with these kinds of
particles. The following aspects are discussed in turn:
atom styles
pair potentials
time integration
computes, thermodynamics, and dump output
rigid bodies composed of extended particles :ul
Atom styles :h5
There are 2 "atom styles"_atom_style.html that allow for definition of
finite-size particles: sphere and ellipsoid. The peri atom style also
treats particles as having a volume, but that is internal to the
"pair_style peri"_pair_peri.html potentials. The dipole atom style is
most often used in conjunction with finite-size particles.
The sphere style defines particles that are spheriods and each
particle can have a unique diameter and mass (or density). These
particles store an angular velocity (omega) and can be acted upon by
torque. The "set" command can be used to modify the diameter and mass
of individual particles, after then are created.
The ellipsoid style defines particles that are ellipsoids and thus can
be aspherical. Each particle has a shape, specified by 3 diameters,
and mass (or density). These particles store an angular momentum and
their orientation (quaternion), and can be acted upon by torque. They
do not store an angular velocity (omega), which can be in a different
direction than angular momentum, rather they compute it as needed.
The "set" command can be used to modify the diameter, orientation, and
mass of individual particles, after then are created. It also has a
brief explanation of what quaternions are.
The dipole style does not define extended particles, but is often
used in conjunction with spherical particles, via a command like
atom_style hybrid sphere dipole :pre
This is because when dipoles interact with each other, they induce
torques, and a particle must be extended (i.e. have a moment of
inertia) in order to respond and rotate. See the "atom_style
dipole"_atom_style.html command for details. The "set" command can be
used to modify the orientation and length of the dipole moment of
individual particles, after then are created.
Note that if one of these atom styles is used (or multiple styles via
the "atom_style hybrid"_atom_style.html command), not all particles in
the system are required to be finite-size or aspherical. For example,
if the 3 shape parameters are set to the same value, the particle will
be a sphere rather than an ellipsoid. If the 3 shape parameters are
all set to 0.0 or if the diameter is set to 0.0, it will be a point
particle. If the length of the dipole moment is set to zero, the
particle will not have a point dipole associated with it. The pair
styles used to compute pairwise interactions will typically compute
the correct interaction in these simplified (cheaper) cases.
"Pair_style hybrid"_pair_hybrid.html can be used to insure the correct
interactions are computed for the appropriate style of interactions.
Likewise, using groups to partition particles (ellipsoids versus
spheres versus point particles) will allow you to use the appropriate
time integrators and temperature computations for each class of
particles. See the doc pages for various commands for details.
Also note that for "2d simulations"_dimension.html, finite-size
spheres and ellipsoids are still treated as 3d particles, rather than
as circular disks or ellipses. This means they have the same moment
of inertia for a 3d extended object. When their temperature is
coomputed, the correct degrees of freedom are used for rotation in a
2d versus 3d system.
Pair potentials :h5
When a system with extended particles is defined, the particles will
only rotate and experience torque if the force field computes such
interactions. These are the various "pair styles"_pair_style.html
that generate torque:
"pair_style gran/history"_pair_gran.html
"pair_style gran/hertzian"_pair_gran.html
"pair_style gran/no_history"_pair_gran.html
"pair_style dipole/cut"_pair_dipole.html
"pair_style gayberne"_pair_gayberne.html
"pair_style resquared"_pair_resquared.html
"pair_style lubricate"_pair_lubricate.html :ul
The "granular pair styles"_pair_gran.html are used with spherical
particles. The "dipole pair style"_pair_dipole.html is used with
"atom_style dipole"_atom_style.html, which could be applied to
spherical or ellipsoidal particles. The "GayBerne"_pair_gayberne.html
and "REsquared"_pair_resquared.html potentials require ellipsoidal
particles, though they will also work if the 3 shape parameters are
the same (a sphere). The "lubrication potential"_pair_lubricate.html
works with spherical particles.
Time integration :h5
There are 3 fixes that perform time integration on extended spherical
particles, meaning the integrators update the rotational orientation
and angular velocity or angular momentum of the particles:
"fix nve/sphere"_fix_nve_sphere.html
"fix nvt/sphere"_fix_nvt_sphere.html
"fix npt/sphere"_fix_npt_sphere.html :ul
Likewise, there are 3 fixes that perform time integration on
ellipsoids as extended aspherical particles:
"fix nve/asphere"_fix_nve_asphere.html
"fix nvt/asphere"_fix_nvt_asphere.html
"fix npt/asphere"_fix_npt_asphere.html :ul
The advantage of these fixes is that those which thermostat the
particles include the rotational degrees of freedom in the temperature
calculation and thermostatting. Other thermostats can be used with
fix nve/sphere or fix nve/asphere, such as fix langevin or fix
temp/berendsen, but those thermostats only operate on the
translational kinetic energy of the extended particles.
Note that for mixtures of point and extended particles, you should
only use these integration fixes on "groups"_group.html which contain
extended particles.
Computes, thermodynamics, and dump output :h5
There are 4 computes that calculate the temperature or rotational energy
of extended spherical or aspherical particles (ellipsoids):
"compute temp/sphere"_compute_temp_sphere.html
"compute temp/asphere"_compute_temp_asphere.html
"compute erotate/sphere"_compute_erotate_sphere.html
"compute erotate/asphere"_compute_erotate_asphere.html :ul
These include rotational degrees of freedom in their computation. If
you wish the thermodynamic output of temperature or pressure to use
one of these computes (e.g. for a system entirely composed of extended
particles), then the compute can be defined and the
"thermo_modify"_thermo_modify.html command used. Note that by
default thermodynamic quantities will be calculated with a temperature
that only includes translational degrees of freedom. See the
"thermo_style"_thermo_style.html command for details.
The "dump custom"_dump.html command can output various attributes of
extended particles, including the dipole moment (mu), the angular
velocity (omega), the angular momentum (angmom), the quaternion
(quat), and the torque (tq) on the particle.
Rigid bodies composed of extended particles :h5
The "fix rigid"_fix_rigid.html command treats a collection of
particles as a rigid body, computes its inertia tensor, sums the total
force and torque on the rigid body each timestep due to forces on its
constituent particles, and integrates the motion of the rigid body.
If any of the constituent particles of a rigid body are extended
particles (spheres or ellipsoids), then their contribution to the
inertia tensor of the body is different than if they were point
particles. This means the rotational dynamics of the rigid body will
be different. Thus a model of a dimer is different if the dimer
consists of two point masses versus two extended sphereoids, even if
the two particles have the same mass. Extended particles that
experience torque due to their interaction with other particles will
also impart that torque to a rigid body they are part of.
See the "fix rigid" command for example of complex rigid-body models
it is possible to define in LAMMPS.
Note that the "fix shake"_fix_shake.html command can also be used to
treat 2, 3, or 4 particles as a rigid body, but it always assumes the
particles are point masses.
:line
4.15 Output from LAMMPS (thermo, dumps, computes, fixes, variables) :link(4_15),h4
There are four basic kinds of LAMMPS output:
"Thermodynamic output"_thermo_style.html, which is a list
of quantities printed every few timesteps to the screen and logfile. :ulb,l
"Dump files"_dump.html, which contain snapshots of atoms and various
per-atom values and are written at a specified frequency. :l
Certain fixes can output user-specified quantities to files: "fix
ave/time"_fix_ave_time.html for time averaging, "fix
ave/spatial"_fix_ave_spatial.html for spatial averaging, and "fix
print"_fix_print.html for single-line output of
"variables"_variable.html. Fix print can also output to the
screen. :l
"Restart files"_restart.html. :l,ule
A simulation prints one set of thermodynamic output and (optionally)
restart files. It can generate any number of dump files and fix
output files, depending on what "dump"_dump.html and "fix"_fix.html
commands you specify.
As discussed below, LAMMPS gives you a variety of ways to determine
what quantities are computed and printed when the thermodynamics,
dump, or fix commands listed above perform output. Throughout this
discussion, note that users can also "add their own computes and fixes
to LAMMPS"_Section_modify.html which can then generate values that can
then be output with these commands.
The following sub-sections discuss different LAMMPS command related
to output and the kind of data they operate on and produce:
"Global/per-atom/local data"_#global
"Scalar/vector/array data"_#scalar
"Thermodynamic output"_#thermo
"Dump file output"_#dump
"Fixes that write output files"_#fixoutput
"Computes that process output quantities"_#computeoutput
"Fixes that process output quantities"_#fixoutput
"Computes that generate values to output"_#compute
"Fixes that generate values to output"_#fix
"Variables that generate values to output"_#variable
"Summary table of output options and data flow between commands"_#table :ul
Global/per-atom/local data :h5,link(global)
Various output-related commands work with three different styles of
data: global, per-atom, or local. A global datum is one or more
system-wide values, e.g. the temperature of the system. A per-atom
datum is one or more values per atom, e.g. the kinetic energy of each
atom. Local datums are calculated by each processor based on the
atoms it owns, but there may be zero or more per atom, e.g. a list of
bond distances.
Scalar/vector/array data :h5,link(scalar)
Global, per-atom, and local datums can each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
doc page for a "compute" or "fix" or "variable" that generates data
will specify both the style and kind of data it produces, e.g. a
per-atom vector.
When a quantity is accessed, as in many of the output commands
discussed below, it can be referenced via the following bracket
notation, where ID in this case is the ID of a compute. The leading
"c_" would be replaced by "f_" for a fix, or "v_" for a variable:
c_ID | entire scalar, vector, or array
c_ID\[I\] | one element of vector, one column of array
c_ID\[I\]\[J\] | one element of array :tb(s=|)
In other words, using one bracket reduces the dimension of the data
once (vector -> scalar, array -> vector). Using two brackets reduces
the dimension twice (array -> scalar). Thus a command that uses
scalar values as input can typically also process elements of a vector
or array.
Thermodynamic output :h5,link(thermo)
The frequency and format of thermodynamic output is set by the
"thermo"_thermo.html, "thermo_style"_thermo_style.html, and
"thermo_modify"_thermo_modify.html commands. The
"thermo_style"_thermo_style.html command also specifies what values
are calculated and written out. Pre-defined keywords can be specified
(e.g. press, etotal, etc). Three additional kinds of keywords can
also be specified (c_ID, f_ID, v_name), where a "compute"_compute.html
or "fix"_fix.html or "variable"_variable.html provides the value to be
output. In each case, the compute, fix, or variable must generate
global values for input to the "thermo_style custom"_dump.html
command.
Dump file output :h5,link(dump)
Dump file output is specified by the "dump"_dump.html and
"dump_modify"_dump_modify.html commands. There are several
pre-defined formats (dump atom, dump xtc, etc).
There is also a "dump custom"_dump.html format where the user
specifies what values are output with each atom. Pre-defined atom
attributes can be specified (id, x, fx, etc). Three additional kinds
of keywords can also be specified (c_ID, f_ID, v_name), where a
"compute"_compute.html or "fix"_fix.html or "variable"_variable.html
provides the values to be output. In each case, the compute, fix, or
variable must generate per-atom values for input to the "dump
custom"_dump.html command.
There is also a "dump local"_dump.html format where the user specifies
what local values to output. A pre-defined index keyword can be
specified to enumuerate the local values. Two additional kinds of
keywords can also be specified (c_ID, f_ID), where a
"compute"_compute.html or "fix"_fix.html or "variable"_variable.html
provides the values to be output. In each case, the compute or fix
must generate local values for input to the "dump local"_dump.html
command.
Fixes that write output files :h5,link(fixoutput)
Sevarl fixes take various quantities as input and can write output
files: "fix ave/time"_fix_ave_time.html, "fix
ave/spatial"_fix_ave_spatial.html, "fix ave/histo"_fix_ave_histo.html,
"fix ave/correlate"_fix_ave_correlate.html, and "fix
print"_fix_print.html.
The "fix ave/time"_fix_ave_time.html command enables direct output to
a file and/or time-averaging of global scalars or vectors. The user
specifies one or more quantities as input. These can be global
"compute"_compute.html values, global "fix"_fix.html values, or
"variables"_variable.html of any style except the atom style which
produces per-atom values. Since a variable can refer to keywords used
by the "thermo_style custom"_thermo_style.html command (like temp or
press) and individual per-atom values, a wide variety of quantities
can be time averaged and/or output in this way. If the inputs are one
or more scalar values, then the fix generate a global scalar or vector
of output. If the inputs are one or more vector values, then the fix
generates a global vector or array of output. The time-averaged
output of this fix can also be used as input to other output commands.
The "fix ave/spatial"_fix_ave_spatial.html command enables direct
output to a file of spatial-averaged per-atom quantities like those
output in dump files, within 1d layers of the simulation box. The
per-atom quantities can be atom density (mass or number) or atom
attributes such as position, velocity, force. They can also be
per-atom quantities calculated by a "compute"_compute.html, by a
"fix"_fix.html, or by an atom-style "variable"_variable.html. The
spatial-averaged output of this fix can also be used as input to other
output commands.
The "fix ave/histo"_fix_ave_histo.html command enables direct output
to a file of histogrammed quantities, which can be global or per-atom
or local quantities. The histogram output of this fix can also be
used as input to other output commands.
The "fix ave/correlate"_fix_ave_histo.html command enables direct
output to a file of time-correlated quantities, which can be global
scalars. The correlation matrix output of this fix can also be used
as input to other output commands.
The "fix print"_fix_print.html command can generate a line of output
written to the screen and log file or to a separate file, periodically
during a running simulation. The line can contain one or more
"variable"_variable.html values for any style variable except the atom
style). As explained above, variables themselves can contain
references to global values generated by "thermodynamic
keywords"_thermo_style.html, "computes"_compute.html,
"fixes"_fix.html, or other "variables"_variable.html, or to per-atom
values for a specific atom. Thus the "fix print"_fix_print.html
command is a means to output a wide variety of quantities separate
from normal thermodynamic or dump file output.
Computes that process output quantities :h5,link(computeoutput)
The "compute reduce"_compute_reduce.html and "compute
reduce/region"_compute_reduce.html commands take one or more per-atom
or local vector quantities as inputs and "reduce" them (sum, min, max,
ave) to scalar quantities. These are produced as output values which
can be used as input to other output commands.
The "compute slice"_compute_slice.html command take one or more global
vector or array quantities as inputs and extracts a subset of their
values to create a new vector or array. These are produced as output
values which can be used as input to other output commands.
The "compute property/atom"_compute_property_atom.html command takes a
list of one or more pre-defined atom attributes (id, x, fx, etc) and
stores the values in a per-atom vector or array. These are produced
as output values which can be used as input to other output commands.
The list of atom attributes is the same as for the "dump
custom"_dump.html command.
The "compute property/local"_compute_property_local.html command takes
a list of one or more pre-defined local attributes (bond info, angle
info, etc) and stores the values in a local vector or array. These
are produced as output values which can be used as input to other
output commands.
The "compute atom/molecule"_compute_atom_molecule.html command takes a
list of one or more per-atom quantities (from a compute, fix, per-atom
variable) and sums the quantities on a per-molecule basis. It
produces a global vector or array as output values which can be used
as input to other output commands.
Fixes that process output quantities :h5,link(fixoutput)
The "fix ave/atom"_fix_ave_atom.html command performs time-averaging
of per-atom vectors. The per-atom quantities can be atom attributes
such as position, velocity, force. They can also be per-atom
quantities calculated by a "compute"_compute.html, by a
"fix"_fix.html, or by an atom-style "variable"_variable.html. The
time-averaged per-atom output of this fix can be used as input to
other output commands.
The "fix store/state"_fix_store_state.html command can archive one or
more per-atom attributes at a particular time, so that the old values
can be used in a future calculation or output. The list of atom
attributes is the same as for the "dump custom"_dump.html command,
including per-atom quantities calculated by a "compute"_compute.html,
by a "fix"_fix.html, or by an atom-style "variable"_variable.html.
The output of this fix can be used as input to other output commands.
Computes that generate values to output :h5,link(compute)
Every "compute"_compute.html in LAMMPS produces either global or
per-atom or local values. The values can be scalars or vectors or
arrays of data. These values can be output using the other commands
described in this section. The doc page for each compute command
describes what it produces. Computes that produce per-atom or local
values have the word "atom" or "local" in their style name. Computes
without the word "atom" or "local" produce global values.
Fixes that generate values to output :h5,link(fix)
Some "fixes"_fix.html in LAMMPS produces either global or per-atom or
local values which can be accessed by other commands. The values can
be scalars or vectors or arrays of data. These values can be output
using the other commands described in this section. The doc page for
each fix command tells whether it produces any output quantities and
describes them.
Variables that generate values to output :h5,link(variable)
Every "variables"_variable.html defined in an input script generates
either a global scalar value or a per-atom vector (only atom-style
variables) when it is accessed. The formulas used to define equal-
and atom-style variables can contain references to the thermodynamic
keywords and to global and per-atom data generated by computes, fixes,
and other variables. The values generated by variables can be output
using the other commands described in this section.
Summary table of output options and data flow between commands :h5,link(table)
This table summarizes the various commands that can be used for
generating output from LAMMPS. Each command produces output data of
some kind and/or writes data to a file. Most of the commands can take
data from other commands as input. Thus you can link many of these
commands together in pipeline form, where data produced by one command
is used as input to another command and eventually written to the
screen or to a file. Note that to hook two commands together the
output and input data types must match, e.g. global/per-atom/local
data and scalar/vector/array data.
Also note that, as described above, when a command takes a scalar as
input, that could be an element of a vector or array. Likewise a
vector input could be a column of an array.
Command: Input: Output:
"thermo_style custom"_thermo_style.html: global scalars: screen, log file:
"dump custom"_dump.html: per-atom vectors: dump file:
"dump local"_dump.html: local vectors: dump file:
"fix print"_fix_print.html: global scalar from variable: screen, file:
"print"_print.html: global scalar from variable: screen:
"computes"_compute.html: N/A: global/per-atom/local scalar/vector/array:
"fixes"_fix.html: N/A: global/per-atom/local scalar/vector/array:
"variables"_variable.html: global scalars, per-atom vectors: global scalar, per-atom vector:
"compute reduce"_compute_reduce.html: per-atom/local vectors: global scalar/vector:
"compute slice"_compute_slice.html: global vectors/arrays: global vector/array:
"compute property/atom"_compute_property_atom.html: per-atom vectors: per-atom vector/array:
"compute property/local"_compute_property_local.html: local vectors: local vector/array:
"compute atom/molecule"_compute_atom_molecule.html: per-atom vectors: global vector/array:
"fix ave/atom"_fix_ave_atom.html: per-atom vectors: per-atom vector/array:
"fix ave/time"_fix_ave_time.html: global scalars/vectors: global scalar/vector/array, file:
"fix ave/spatial"_fix_ave_spatial.html: per-atom vectors: global array, file:
"fix ave/histo"_fix_ave_histo.html: global/per-atom/local scalars and vectors: global array, file:
"fix ave/correlate"_fix_ave_correlate.html: global scalars: global array, file:
"fix store/state"_fix_store_state.html: per-atom vectors: per-atom vector/array:
:tb(s=:)
:line
4.16 Thermostatting, barostatting, and computing temperature :link(4_16),h4
Thermostatting means controlling the temperature of particles in an MD
simulation. Barostatting means controlling the pressure. Since the
pressure includes a kinetic component due to particle velocities, both
these operations require calculation of the temperature. Typically a
target temperature (T) and/or pressure (P) is specified by the user,
and the thermostat or barostat attempts to equilibrate the system to
the requested T and/or P.
Temperature is computed as kinetic energy divided by some number of
degrees of freedom (and the Boltzmann constant). Since kinetic energy
is a function of particle velocity, there is often a need to
distinguish between a particle's advection velocity (due to some
aggregate motiion of particles) and its thermal velocity. The sum of
the two is the particle's total velocity, but the latter is often what
is wanted to compute a temperature.
LAMMPS has several options for computing temperatures, any of which
can be used in thermostatting and barostatting. These "compute
commands"_compute.html calculate temperature, and the "compute
pressure"_compute_pressure.html command calculates pressure.
"compute temp"_compute_temp.html
"compute temp/sphere"_compute_temp_sphere.html
"compute temp/asphere"_compute_temp_asphere.html
"compute temp/com"_compute_temp_com.html
"compute temp/deform"_compute_temp_deform.html
"compute temp/partial"_compute_temp_partial.html
"compute temp/profile"_compute_temp_profile.html
"compute temp/ramp"_compute_temp_ramp.html
"compute temp/region"_compute_temp_region.html :ul
All but the first 3 calculate velocity biases (i.e. advection
velocities) that are removed when computing the thermal temperature.
"Compute temp/sphere"_compute_temp_sphere.html and "compute
temp/asphere"_compute_temp_asphere.html compute kinetic energy for
extended particles that includes rotational degrees of freedom. They
both allow, as an extra argument, which is another temperature compute
that subtracts a velocity bias. This allows the translational
velocity of extended spherical or aspherical particles to be adjusted
in prescribed ways.
Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one
case by a pair style. Four thermostatting fixes are currently
available: Nose-Hoover (nvt), Berendsen, Langevin, and direct
rescaling (temp/rescale). Dissipative particle dynamics (DPD)
thermostatting can be invoked via the {dpd/tstat} pair style:
"fix nvt"_fix_nh.html
"fix nvt/sphere"_fix_nvt_sphere.html
"fix nvt/asphere"_fix_nvt_asphere.html
"fix nvt/sllod"_fix_nvt_sllod.html
"fix temp/berendsen"_fix_temp_berendsen.html
"fix langevin"_fix_langevin.html
"fix temp/rescale"_fix_temp_rescale.html
"pair_style dpd/tstat"_pair_dpd.html :ul
"Fix nvt"_fix_nh.html only thermostats the translational velocity of
particles. "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except
that it subtracts out a velocity bias due to a deforming box and
integrates the SLLOD equations of motion. See the "NEMD
simulations"_#4_13 section of this page for further details. "Fix
nvt/sphere"_fix_nvt_sphere.html and "fix
nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.
DPD thermostatting alters pairwise interactions in a manner analagous
to the per-particle thermostatting of "fix
langevin"_fix_langevin.html.
Any of the thermostatting fixes can use temperature computes that
remove bias for two purposes: (a) computing the current temperature to
compare to the requested target temperature, and (b) adjusting only
the thermal temperature component of the particle's velocities. See
the doc pages for the individual fixes and for the
"fix_modify"_fix_modify.html command for instructions on how to assign
a temperature compute to a thermostatting fix. For example, you can
apply a thermostat to only the x and z components of velocity by using
it in conjunction with "compute
temp/partial"_compute_temp_partial.html.
IMPORTANT NOTE: Only the nvt fixes perform time integration, meaning
they update the velocities and positions of particles due to forces
and velocities respectively. The other thermostat fixes only adjust
velocities; they do NOT perform time integration updates. Thus they
should be used in conjunction with a constant NVE integration fix such
as these:
"fix nve"_fix_nve.html
"fix nve/sphere"_fix_nve_sphere.html
"fix nve/asphere"_fix_nve_asphere.html :ul
Barostatting in LAMMPS is also performed by "fixes"_fix.html. Two
barosttating methods are currently available: Nose-Hoover (npt and
nph) and Berendsen:
"fix npt"_fix_nh.html
"fix npt/sphere"_fix_npt_sphere.html
"fix npt/asphere"_fix_npt_asphere.html
"fix nph"_fix_nh.html
"fix press/berendsen"_fix_press_berendsen.html :ul
The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat
and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat;
it does no thermostatting. Both "fix nph"_fix_nh.html and "fix
press/bernendsen"_fix_press_berendsen.html can be used in conjunction
with any of the thermostatting fixes.
As with the thermostats, "fix npt"_fix_nh.html and "fix
nph"_fix_nh.html only use translational motion of the particles in
computing T and P and performing thermo/barostatting. "Fix
npt/sphere"_fix_npt_sphere.html and "fix
npt/asphere"_fix_npt_asphere.html thermo/barostat using not only
translation velocities but also rotational velocities for spherical
and aspherical particles.
All of the barostatting fixes use the "compute
pressure"_compute_pressure.html compute to calculate a current
pressure. By default, this compute is created with a simple "compute
temp"_compute_temp.html (see the last argument of the "compute
pressure"_compute_pressure.html command), which is used to calculated
the kinetic componenet of the pressure. The barostatting fixes can
also use temperature computes that remove bias for the purpose of
computing the kinetic componenet which contributes to the current
pressure. See the doc pages for the individual fixes and for the
"fix_modify"_fix_modify.html command for instructions on how to assign
a temperature or pressure compute to a barostatting fix.
IMPORTANT NOTE: As with the thermostats, the Nose/Hoover methods ("fix
npt"_fix_nh.html and "fix nph"_fix_nh.html) perform time
integration. "Fix press/berendsen"_fix_press_berendsen.html does NOT,
so it should be used with one of the constant NVE fixes or with one of
the NVT fixes.
Finally, thermodynamic output, which can be setup via the
"thermo_style"_thermo_style.html command, often includes temperature
and pressure values. As explained on the doc page for the
"thermo_style"_thermo_style.html command, the default T and P are
setup by the thermo command itself. They are NOT the ones associated
with any thermostatting or barostatting fix you have defined or with
any compute that calculates a temperature or pressure. Thus if you
want to view these values of T and P, you need to specify them
explicitly via a "thermo_style custom"_thermo_style.html command. Or
you can use the "thermo_modify"_thermo_modify.html command to
re-define what temperature or pressure compute is used for default
thermodynamic output.
:line
4.17 Walls :link(4_17),h4
Walls in an MD simulation are typically used to bound particle motion,
i.e. to serve as a boundary condition.
Walls in LAMMPS can be of rough (made of particles) or idealized
surfaces. Ideal walls can be smooth, generating forces only in the
normal direction, or frictional, generating forces also in the
tangential direction.
Rough walls, built of particles, can be created in various ways. The
particles themselves can be generated like any other particle, via the
"lattice"_lattice.html and "create_atoms"_create_atoms.html commands,
or read in via the "read_data"_read_data.html command.
Their motion can be constrained by many different commands, so that
they do not move at all, move together as a group at constant velocity
or in response to a net force acting on them, move in a prescribed
fashion (e.g. rotate around a point), etc. Note that if a time
integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html
is not used with the group that contains wall particles, their
positions and velocities will not be updated.
"fix aveforce"_fix_aveforce.html - set force on particles to average value, so they move together
"fix setforce"_fix_setforce.html - set force on particles to a value, e.g. 0.0
"fix freeze"_fix_freeze.html - freeze particles for use as granular walls
"fix nve/noforce"_fix_nve_noforce.html - advect particles by their velocity, but without force
"fix move"_fix_move.html - prescribe motion of particles by a linear velocity, oscillation, rotation, variable :ul
The "fix move"_fix_move.html command offers the most generality, since
the motion of individual particles can be specified with
"variable"_variable.html formula which depends on time and/or the
particle position.
For rough walls, it may be useful to turn off pairwise interactions
between wall particles via the "neigh_modify
exclude"_neigh_modify.html command.
Rough walls can also be created by specifying frozen particles that do
not move and do not interact with mobile particles, and then tethering
other particles to the fixed particles, via a "bond"_bond_style.html.
The bonded particles do interact with other mobile particles.
Idealized walls can be specified via several fix commands. "Fix
wall/gran"_fix_wall_gran.html creates frictional walls for use with
granular particles; all the other commands create smooth walls.
"fix wall/reflect"_fix_wall_reflect.html - reflective flat walls
"fix wall/lj93"_fix_wall.html - flat walls, with Lennard-Jones 9/3 potential
"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential
"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential
"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential
"fix wall/region"_fix_wall_region.html - use region surface as wall
"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul
The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the
flat walls to move with a constant velocity, or oscillate in time.
The "fix wall/region"_fix_wall_region.html command offers the most
generality, since the region surface is treated as a wall, and the
geometry of the region can be a simple primitive volume (e.g. a
sphere, or cube, or plane), or a complex volume made from the union
and intersection of primitive volumes. "Regions"_region.html can also
specify a volume "interior" or "exterior" to the specified primitive
shape or {union} or {intersection}. "Regions"_region.html can also be
"dynamic" meaning they move with constant velocity, oscillate, or
rotate.
The only frictional idealized walls currently in LAMMPS are flat or
curved surfaces specified by the "fix wall/gran"_fix_wall_gran.html
command. At some point we plan to allow regoin surfaces to be used as
frictional walls, as well as triangulated surfaces.
:line
4.18 Elastic constants :link(4_18),h4
Elastic constants characterize the stiffness of a material. The formal
definition is provided by the linear relation that holds between the
stress and strain tensors in the limit of infinitesimal deformation.
In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where
the repeated indices imply summation. s_ij are the elements of the
symmetric stress tensor. e_kl are the elements of the symmetric strain
tensor. C_ijkl are the elements of the fourth rank tensor of elastic
constants. In three dimensions, this tensor has 3^4=81 elements. Using
Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij
is now the derivative of s_i w.r.t. e_j. Because s_i is itself a
derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at
most 7*6/2 = 21 distinct elements.
At zero temperature, it is easy to estimate these derivatives by
deforming the cell in one of the six directions using the command
"displace_box"_displace_box.html and measuring the change in the
stress tensor. A general-purpose script that does this is given in the
examples/elastic directory described in "this
section"_Section_example.html.
Calculating elastic constants at finite temperature is more
challenging, because it is necessary to run a simulation that perfoms
time averages of differential properties. One way to do this is to
measure the change in average stress tensor in an NVT simulations when
the cell volume undergoes a finite deformation. In order to balance
the systematic and statistical errors in this method, the magnitude of
the deformation must be chosen judiciously, and care must be taken to
fully equilibrate the deformed cell before sampling the stress
tensor. Another approach is to sample the triclinic cell fluctuations
that occur in an NPT simulation. This method can also be slow to
converge and requires careful post-processing "(Shinoda)"_#Shinoda
:line
4.19 Library interface to LAMMPS :link(4_19),h4
As described in "this section"_Section_start.html#2_4, LAMMPS can be
built as a library, so that it can be called by another code, used in
a "coupled manner"_Section_howto.html#4_10 with other codes, or driven
through a "Python interface"_Section_python.html.
All of these methodologies use a C-style interface to LAMMPS that is
provided in the files src/library.cpp and src/library.h. The
functions therein have a C-style argument list, but contain C++ code
you could write yourself in a C++ application that was invoking LAMMPS
directly. The C++ code in the functions illustrates how to invoke
internal LAMMPS operations. Note that LAMMPS classes are defined
within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++
application.
Library.cpp contains these 4 functions:
void lammps_open(int, char **, MPI_Comm, void **);
void lammps_close(void *);
void lammps_file(void *, char *);
char *lammps_command(void *, char *); :pre
The lammps_open() function is used to initialize LAMMPS, passing in a
list of strings as if they were "command-line arguments"_#2_6 when
LAMMPS is run in stand-alone mode from the command line, and a MPI
communicator for LAMMPS to run under. It returns a ptr to the LAMMPS
object that is created, and which is used in subsequent library calls.
The lammps_open() function can be called multiple times, to create
multiple instances of LAMMPS.
LAMMPS will run on the set of processors in the communicator. This
means the calling code can run LAMMPS on all or a subset of
processors. For example, a wrapper script might decide to alternate
between LAMMPS and another code, allowing them both to run on all the
processors. Or it might allocate half the processors to LAMMPS and
half to the other code and run both codes simultaneously before
syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
The lammps_close() function is used to shut down an instance of LAMMPS
and free all its memory.
The lammps_file() and lammps_command() functions are used to pass a
file or string to LAMMPS as if it were an input script or single
command in an input script. Thus the calling code can read or
generate a series of LAMMPS commands one line at a time and pass it
thru the library interface to setup a problem and then run it,
interleaving the lammps_command() calls with other calls to extract
information from LAMMPS, perform its own operations, or call another
code's library.
Other useful functions are also included in library.cpp. For example:
void *lammps_extract_global(void *, char *)
void *lammps_extract_atom(void *, char *)
void *lammps_extract_compute(void *, char *, int, int)
void *lammps_extract_fix(void *, char *, int, int, int, int)
void *lammps_extract_variable(void *, char *, char *)
int lammps_get_natoms(void *)
void lammps_get_coords(void *, double *)
void lammps_put_coords(void *, double *) :pre
These can extract various global or per-atom quantities from LAMMPS as
well as values calculated by a compute, fix, or variable. The "get"
and "put" operations can retrieve and reset atom coordinates.
See the library.cpp file and its associated header file library.h for
details.
The key idea of the library interface is that you can write any
functions you wish to define how your code talks to LAMMPS and add
them to src/library.cpp and src/library.h, as well as to the "Python
interface"_Section_python.html. The routines you add can access
or change any LAMMPS data you wish. The couple and python directories
have example C++ and C and Python codes which show how a driver code
can link to LAMMPS as a library, run LAMMPS on a subset of processors,
grab data from LAMMPS, change it, and put it back into LAMMPS.
:line
4.20 Calculating thermal conductivity :link(4_20),h4
The thermal conductivity kappa of a material can be measured in at
least 3 ways using various options in LAMMPS. (See "this
section"_Section_howto.html#4_21 of the manual for an analogous
discussion for viscosity). The thermal conducitivity tensor kappa is
a measure of the propensity of a material to transmit heat energy in a
diffusive manner as given by Fourier's law
J = -kappa grad(T)
where J is the heat flux in units of energy per area per time and
grad(T) is the spatial gradient of temperature. The thermal
conductivity thus has units of energy per distance per time per degree
K and is often approximated as an isotropic quantity, i.e. as a
scalar.
The first method is to setup two thermostatted regions at opposite
ends of a simulation box, or one in the middle and one at the end of a
periodic box. By holding the two regions at different temperatures
with a "thermostatting fix"_Section_howto.html#4_13, the energy added
to the hot region should equal the energy subtracted from the cold
region and be proportional to the heat flux moving between the
regions. See the paper by "Ikeshoji and Hafskjold"_#Ikeshoji for
details of this idea. Note that thermostatting fixes such as "fix
nvt"_fix_nh.html, "fix langevin"_fix_langevin.html, and "fix
temp/rescale"_fix_temp_rescale.html store the cumulative energy they
add/subtract. Alternatively, the "fix heat"_fix_heat.html command can
used in place of thermostats on each of two regions, and the resulting
temperatures of the two regions monitored with the "compute
temp/region" command or the temperature profile of the intermediate
region monitored with the "fix ave/spatial"_fix_ave_spatial.html and
"compute ke/atom"_compute_ke_atom.html commands.
The second method is to perform a reverse non-equilibrium MD
simulation using the "fix
thermal/conductivity"_fix_thermal_conductivity.html command which
implements the rNEMD algorithm of Muller-Plathe. Kinetic energy is
swapped between atoms in two different layers of the simulation box.
This induces a temperature gradient between the two layers which can
be monitored with the "fix ave/spatial"_fix_ave_spatial.html and
"compute ke/atom"_compute_ke_atom.html commands. The fix tallies the
cumulative energy transfer that it performs. See the "fix
thermal/conductivity"_fix_thermal_conductivity.html command for
details.
The third method is based on the Green-Kubo (GK) formula which relates
the ensemble average of the auto-correlation of the heat flux to
kappa. The heat flux can be calculated from the fluctuations of
per-atom potential and kinetic energies and per-atom stress tensor in
a steady-state equilibrated simulation. This is in contrast to the
two preceding non-equilibrium methods, where energy flows continuously
between hot and cold regions of the simulation box.
The "compute heat/flux"_compute_heat_flux.html command can calculate
the needed heat flux and describes how to implement the Green_Kubo
formalism using additional LAMMPS commands, such as the "fix
ave/correlate"_fix_ave_correlate.html command to calculate the needed
auto-correlation. See the doc page for the "compute
heat/flux"_compute_heat_flux.html command for an example input script
that calculates the thermal conductivity of solid Ar via the GK
formalism.
:line
4.21 Calculating viscosity :link(4_21),h4
The shear viscosity eta of a fluid can be measured in at least 3 ways
using various options in LAMMPS. (See "this
section"_Section_howto.html#4_20 of the manual for an analogous
discussion for thermal conductivity). Eta is a measure of the
propensity of a fluid to transmit momentum in a direction
perpendicular to the direction of velocity or momentum flow.
Alternatively it is the resistance the fluid has to being sheared. It
is given by
J = -eta grad(Vstream)
where J is the momentum flux in units of momentum per area per time.
and grad(Vstream) is the spatial gradient of the velocity of the fluid
moving in another direction, normal to the area through which the
momentum flows. Viscosity thus has units of pressure-time.
The first method is to perform a non-equlibrium MD (NEMD) simulation
by shearing the simulation box via the "fix deform"_fix_deform.html
command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to
thermostat the fluid via the SLLOD equations of motion. The velocity
profile setup in the fluid by this procedure can be monitored by the
"fix ave/spatial"_fix_ave_spatial.html command, which determines
grad(Vstream) in the equation above. E.g. the derivative in the
y-direction of the Vx component of fluid motion or grad(Vstream) =
dVx/dy. In this case, the Pxy off-diagonal component of the pressure
or stress tensor, as calculated by the "compute
pressure"_compute_pressure.html command, can also be monitored, which
is the J term in the equation above. See "this
section"_Section_howto.html#4_13 of the manual for details on NEMD
simulations.
The second method is to perform a reverse non-equilibrium MD
simulation using the "fix viscosity"_fix_viscosity.html command which
implements the rNEMD algorithm of Muller-Plathe. Momentum in one
dimension is swapped between atoms in two different layers of the
simulation box in a different dimension. This induces a velocity
gradient which can be monitored with the "fix
ave/spatial"_fix_ave_spatial.html command. The fix tallies the
cummulative momentum transfer that it performs. See the "fix
viscosity"_fix_viscosity.html command for details.
The third method is based on the Green-Kubo (GK) formula which relates
the ensemble average of the auto-correlation of the stress/pressure
tensor to eta. This can be done in a steady-state equilibrated
simulation which is in contrast to the two preceding non-equilibrium
methods, where momentum flows continuously through the simulation box.
Here is an example input script that calculates the viscosity of
liquid Ar via the GK formalism:
# Sample LAMMPS input script for viscosity of liquid Ar :pre
units real
variable T equal 86.4956
variable V equal vol
variable dt equal 4.0
variable p equal 400 # correlation length
variable s equal 5 # sample interval
variable d equal $p*$s # dump interval :pre
# convert from LAMMPS real units to SI :pre
variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann
variable atm2Pa equal 101325.0
variable A2m equal 1.0e-10
variable fs2s equal 1.0e-15
variable convert equal $\{atm2Pa\}*$\{atm2Pa\}*$\{fs2s\}*$\{A2m\}*$\{A2m\}*$\{A2m\} :pre
# setup problem :pre
dimension 3
boundary p p p
lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 39.948
pair_style lj/cut 13.0
pair_coeff * * 0.2381 3.405
timestep $\{dt\}
thermo $d :pre
# equilibration and thermalization :pre
velocity all create $T 102486 mom yes rot yes dist gaussian
fix NVT all nvt temp $T $T 10 drag 0.2
run 8000 :pre
# viscosity calculation, switch to NVE if desired :pre
#unfix NVT
#fix NVE all nve :pre
reset_timestep 0
variable pxy equal pxy
variable pxz equal pxz
variable pyz equal pyz
fix SS all ave/correlate $s $p $d &
v_pxy v_pxz v_pyz type auto file S0St.dat ave running
variable scale equal $\{convert\}/($\{kB\}*$T)*$V*$s*$\{dt\}
variable v11 equal trap(f_SS\[3/])*$\{scale\}
variable v22 equal trap(f_SS\[4/])*$\{scale\}
variable v33 equal trap(f_SS\[5/])*$\{scale\}
thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33
run 100000
variable v equal (v_v11+v_v22+v_v33)/3.0
variable ndens equal count(all)/vol
print "average viscosity: $v \[Pa.s/] @ $T K, $\{ndens\} /A^3" :pre
:line
:line
:link(Berendsen)
[(Berendsen)] Berendsen, Grigera, Straatsma, J Phys Chem, 91,
6269-6271 (1987).
:link(Cornell)
[(Cornell)] Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
:link(Horn)
[(Horn)] Horn, Swope, Pitera, Madura, Dick, Hura, and Head-Gordon,
J Chem Phys, 120, 9665 (2004).
:link(Ikeshoji)
[(Ikeshoji)] Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261
(1994).
:link(MacKerell)
[(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,
Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
:link(Mayo)
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
(1990).
:link(Jorgensen)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
:link(Price)
[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004).
:link(Shinoda)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
diff --git a/doc/Section_intro.html b/doc/Section_intro.html
index 36bab8fa6..db64d2821 100644
--- a/doc/Section_intro.html
+++ b/doc/Section_intro.html
@@ -1,633 +1,633 @@
<HTML>
<CENTER><A HREF = "Manual.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_start.html">Next Section</A>
</CENTER>
<HR>
<H3>1. Introduction
</H3>
<P>These sections provide an overview of what LAMMPS can and can't do,
describe what it means for LAMMPS to be an open-source code, and
acknowledge the funding and people who have contributed to LAMMPS over
the years.
</P>
1.1 <A HREF = "#1_1">What is LAMMPS</A><BR>
1.2 <A HREF = "#1_2">LAMMPS features</A><BR>
1.3 <A HREF = "#1_3">LAMMPS non-features</A><BR>
1.4 <A HREF = "#1_4">Open source distribution</A><BR>
1.5 <A HREF = "#1_5">Acknowledgments and citations</A> <BR>
<HR>
<A NAME = "1_1"></A><H4>1.1 What is LAMMPS
</H4>
<P>LAMMPS is a classical molecular dynamics code that models an ensemble
of particles in a liquid, solid, or gaseous state. It can model
atomic, polymeric, biological, metallic, granular, and coarse-grained
systems using a variety of force fields and boundary conditions.
</P>
<P>For examples of LAMMPS simulations, see the Publications page of the
<A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>.
</P>
<P>LAMMPS runs efficiently on single-processor desktop or laptop
machines, but is designed for parallel computers. It will run on any
parallel machine that compiles C++ and supports the <A HREF = "http://www-unix.mcs.anl.gov/mpi">MPI</A>
message-passing library. This includes distributed- or shared-memory
parallel machines and Beowulf-style clusters.
</P>
<P>LAMMPS can model systems with only a few particles up to millions or
billions. See <A HREF = "Section_perf.html">this section</A> for information on LAMMPS
performance and scalability, or the Benchmarks section of the <A HREF = "http://lammps.sandia.gov">LAMMPS
WWW Site</A>.
</P>
<P>LAMMPS is a freely-available open-source code, distributed under the
terms of the <A HREF = "http://www.gnu.org/copyleft/gpl.html">GNU Public License</A>, which means you can use or
modify the code however you wish. See <A HREF = "#1_4">this section</A> for a brief
discussion of the open-source philosophy.
</P>
<P>LAMMPS is designed to be easy to modify or extend with new
capabilities, such as new force fields, atom types, boundary
conditions, or diagnostics. See <A HREF = "Section_modify.html">this section</A> for
more details.
</P>
<P>The current version of LAMMPS is written in C++. Earlier versions
were written in F77 and F90. See <A HREF = "Section_history.html">this section</A>
for more information on different versions. All versions can be
downloaded from the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>.
</P>
<P>LAMMPS was originally developed under a US Department of Energy CRADA
(Cooperative Research and Development Agreement) between two DOE labs
and 3 companies. It is distributed by <A HREF = "http://www.sandia.gov">Sandia National Labs</A>.
See <A HREF = "#1_5">this section</A> for more information on LAMMPS funding and
individuals who have contributed to LAMMPS.
</P>
<P>In the most general sense, LAMMPS integrates Newton's equations of
motion for collections of atoms, molecules, or macroscopic particles
that interact via short- or long-range forces with a variety of
initial and/or boundary conditions. For computational efficiency
LAMMPS uses neighbor lists to keep track of nearby particles. The
lists are optimized for systems with particles that are repulsive at
short distances, so that the local density of particles never becomes
too large. On parallel machines, LAMMPS uses spatial-decomposition
techniques to partition the simulation domain into small 3d
sub-domains, one of which is assigned to each processor. Processors
communicate and store "ghost" atom information for atoms that border
their sub-domain. LAMMPS is most efficient (in a parallel sense) for
systems whose particles fill a 3d rectangular box with roughly uniform
density. Papers with technical details of the algorithms used in
LAMMPS are listed in <A HREF = "#1_5">this section</A>.
</P>
<HR>
<A NAME = "1_2"></A><H4>1.2 LAMMPS features
</H4>
<P>This section highlights LAMMPS features, with pointers to specific
commands which give more details. If LAMMPS doesn't have your
favorite interatomic potential, boundary condition, or atom type, see
<A HREF = "Section_modify.html">this section</A>, which describes how you can add it to
LAMMPS.
</P>
<H4>General features
</H4>
<UL><LI> runs on a single processor or in parallel
<LI> distributed-memory message-passing parallelism (MPI)
<LI> spatial-decomposition of simulation domain for parallelism
<LI> open-source distribution
<LI> highly portable C++
<LI> optional libraries used: MPI and single-processor FFT
<LI> easy to extend with new features and functionality
<LI> runs from an input script
<LI> syntax for defining and using variables and formulas
<LI> syntax for looping over runs and breaking out of loops
<LI> run one or multiple simulations simultaneously (in parallel) from one script
<LI> build as library, invoke LAMMPS thru library interface or provided Python wrapper
<LI> couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both
</UL>
<H4>Particle and model types
</H4>
<P>(<A HREF = "atom_style.html">atom style</A> command)
</P>
<UL><LI> atoms
<LI> coarse-grained particles (e.g. bead-spring polymers)
<LI> united-atom polymers or organic molecules
<LI> all-atom polymers, organic molecules, proteins, DNA
<LI> metals
<LI> granular materials
<LI> coarse-grained mesoscale models
<LI> extended spherical and ellipsoidal particles
<LI> point dipolar particles
<LI> rigid collections of particles
<LI> hybrid combinations of these
</UL>
<H4>Force fields
</H4>
<P>(<A HREF = "pair_style.html">pair style</A>, <A HREF = "bond_style.html">bond style</A>,
<A HREF = "angle_style.html">angle style</A>, <A HREF = "dihedral_style.html">dihedral style</A>,
<A HREF = "improper_style.html">improper style</A>, <A HREF = "kspace_style.html">kspace style</A>
commands)
</P>
<UL><LI> pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated
<LI> charged pairwise potentials: Coulombic, point-dipole
<LI> manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), embedded ion method (EIM), ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB
-<LI> electron force field (eFF)
+<LI> electron force field (eFF, AWPMD)
<LI> coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
<LI> mesoscopic potentials: granular, Peridynamics
<LI> bond potentials: harmonic, FENE, Morse, nonlinear, class 2, quartic (breakable)
<LI> angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, class 2 (COMPASS)
<LI> dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, class 2 (COMPASS), OPLS
<LI> improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS)
<LI> polymer potentials: all-atom, united-atom, bead-spring, breakable
<LI> water potentials: TIP3P, TIP4P, SPC
<LI> implicit solvent potentials: hydrodynamic lubrication, Debye
<LI> long-range Coulombics and dispersion: Ewald, PPPM (similar to particle-mesh Ewald), Ewald/N for long-range Lennard-Jones
<LI> force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
<LI> handful of GPU-enabled pair styles
</UL>
<P> hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials
</P>
<H4>Atom creation
</H4>
<P>(<A HREF = "read_data.html">read_data</A>, <A HREF = "lattice.html">lattice</A>,
<A HREF = "create_atoms.html">create_atoms</A>, <A HREF = "delete_atoms.html">delete_atoms</A>,
<A HREF = "displace_atoms.html">displace_atoms</A>, <A HREF = "replicate.html">replicate</A> commands)
</P>
<UL><LI> read in atom coords from files
<LI> create atoms on one or more lattices (e.g. grain boundaries)
<LI> delete geometric or logical groups of atoms (e.g. voids)
<LI> replicate existing atoms multiple times
<LI> displace atoms
</UL>
<H4>Ensembles, constraints, and boundary conditions
</H4>
<P>(<A HREF = "fix.html">fix</A> command)
</P>
<UL><LI> 2d or 3d systems
<LI> orthogonal or non-orthogonal (triclinic symmetry) simulation domains
<LI> constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators
<LI> thermostatting options for groups and geometric regions of atoms
<LI> pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions
<LI> simulation box deformation (tensile and shear)
<LI> harmonic (umbrella) constraint forces
<LI> rigid body constraints
<LI> SHAKE bond and angle constraints
<LI> bond breaking, formation, swapping
<LI> walls of various kinds
<LI> non-equilibrium molecular dynamics (NEMD)
<LI> variety of additional boundary conditions and constraints
</UL>
<H4>Integrators
</H4>
<P>(<A HREF = "run.html">run</A>, <A HREF = "run_style.html">run_style</A>, <A HREF = "minimize.html">minimize</A> commands)
</P>
<UL><LI> velocity-Verlet integrator
<LI> Brownian dynamics
<LI> rigid body integration
<LI> energy minimization via conjugate gradient or steepest descent relaxation
<LI> rRESPA hierarchical timestepping
</UL>
<H4>Diagnostics
</H4>
<UL><LI> see the various flavors of the <A HREF = "fix.html">fix</A> and <A HREF = "compute.html">compute</A> commands
</UL>
<H4>Output
</H4>
<P>(<A HREF = "dump.html">dump</A>, <A HREF = "restart.html">restart</A> commands)
</P>
<UL><LI> log file of thermodynamic info
<LI> text dump files of atom coords, velocities, other per-atom quantities
<LI> binary restart files
<LI> parallel I/O of dump and restart files
<LI> per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc)
<LI> user-defined system-wide (log file) or per-atom (dump file) calculations
<LI> spatial and time averaging of per-atom quantities
<LI> time averaging of system-wide quantities
<LI> atom snapshots in native, XYZ, XTC, DCD, CFG formats
</UL>
<H4>Multi-replica models
</H4>
<P><A HREF = "neb.html">nudged elastic band</A>
<A HREF = "prd.html">parallel replica dynamics</A>
<A HREF = "tad.html">temperature accelerated dynamics</A>
<A HREF = "temper.html">parallel tempering</A>
</P>
<H4>Pre- and post-processing
</H4>
<UL><LI>Various pre- and post-processing serial tools are packaged
with LAMMPS; see these <A HREF = "Section_tools.html">doc pages</A>.
<LI>Our group has also written and released a separate toolkit called
<A HREF = "http://www.sandia.gov/~sjplimp/pizza.html">Pizza.py</A> which provides tools for doing setup, analysis,
plotting, and visualization for LAMMPS simulations. Pizza.py is
written in <A HREF = "http://www.python.org">Python</A> and is available for download from <A HREF = "http://www.sandia.gov/~sjplimp/pizza.html">the
Pizza.py WWW site</A>.
</UL>
<H4>Specialized features
</H4>
<P>These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:
</P>
<UL><LI><A HREF = "fix_srd.html">stochastic rotation dynamics (SRD)</A>
<LI><A HREF = "fix_imd.html">real-time visualization and interactive MD</A>
<LI><A HREF = "fix_atc.html">atom-to-continuum coupling</A> with finite elements
<LI>coupled rigid body integration via the <A HREF = "fix_poems.html">POEMS</A> library
<LI><A HREF = "pair_dsmc.html">Direct Simulation Monte Carlo</A> for low-density fluids
<LI><A HREF = "pair_peri.html">Peridynamics mesoscale modeling</A>
<LI><A HREF = "fix_tmd.html">targeted</A> and <A HREF = "fix_smd.html">steered</A> molecular dynamics
<LI><A HREF = "fix_ttm.html">two-temperature electron model</A>
</UL>
<HR>
<A NAME = "1_3"></A><H4>1.3 LAMMPS non-features
</H4>
<P>LAMMPS is designed to efficiently compute Newton's equations of motion
for a system of interacting particles. Many of the tools needed to
pre- and post-process the data for such simulations are not included
in the LAMMPS kernel for several reasons:
</P>
<UL><LI>the desire to keep LAMMPS simple
<LI>they are not parallel operations
<LI>other codes already do them
<LI>limited development resources
</UL>
<P>Specifically, LAMMPS itself does not:
</P>
<UL><LI>run thru a GUI
<LI>build molecular systems
<LI>assign force-field coefficients automagically
<LI>perform sophisticated analyses of your MD simulation
<LI>visualize your MD simulation
<LI>plot your output data
</UL>
<P>A few tools for pre- and post-processing tasks are provided as part of
the LAMMPS package; they are described in <A HREF = "Section_tools.html">this
section</A>. However, many people use other codes or
write their own tools for these tasks.
</P>
<P>As noted above, our group has also written and released a separate
toolkit called <A HREF = "http://www.sandia.gov/~sjplimp/pizza.html">Pizza.py</A> which addresses some of the listed
bullets. It provides tools for doing setup, analysis, plotting, and
visualization for LAMMPS simulations. Pizza.py is written in
<A HREF = "http://www.python.org">Python</A> and is available for download from <A HREF = "http://www.sandia.gov/~sjplimp/pizza.html">the Pizza.py WWW
site</A>.
</P>
<P>LAMMPS requires as input a list of initial atom coordinates and types,
molecular topology information, and force-field coefficients assigned
to all atoms and bonds. LAMMPS will not build molecular systems and
assign force-field parameters for you.
</P>
<P>For atomic systems LAMMPS provides a <A HREF = "create_atoms.html">create_atoms</A>
command which places atoms on solid-state lattices (fcc, bcc,
user-defined, etc). Assigning small numbers of force field
coefficients can be done via the <A HREF = "pair_coeff.html">pair coeff</A>, <A HREF = "bond_coeff.html">bond
coeff</A>, <A HREF = "angle_coeff.html">angle coeff</A>, etc commands.
For molecular systems or more complicated simulation geometries, users
typically use another code as a builder and convert its output to
LAMMPS input format, or write their own code to generate atom
coordinate and molecular topology for LAMMPS to read in.
</P>
<P>For complicated molecular systems (e.g. a protein), a multitude of
topology information and hundreds of force-field coefficients must
typically be specified. We suggest you use a program like
<A HREF = "http://www.scripps.edu/brooks">CHARMM</A> or <A HREF = "http://amber.scripps.edu">AMBER</A> or other molecular builders to setup
such problems and dump its information to a file. You can then
reformat the file as LAMMPS input. Some of the tools in <A HREF = "Section_tools.html">this
section</A> can assist in this process.
</P>
<P>Similarly, LAMMPS creates output files in a simple format. Most users
post-process these files with their own analysis tools or re-format
them for input into other programs, including visualization packages.
If you are convinced you need to compute something on-the-fly as
LAMMPS runs, see <A HREF = "Section_modify.html">this section</A> for a discussion
of how you can use the <A HREF = "dump.html">dump</A> and <A HREF = "compute.html">compute</A> and
<A HREF = "fix.html">fix</A> commands to print out data of your choosing. Keep in
mind that complicated computations can slow down the molecular
dynamics timestepping, particularly if the computations are not
parallel, so it is often better to leave such analysis to
post-processing codes.
</P>
<P>A very simple (yet fast) visualizer is provided with the LAMMPS
package - see the <A HREF = "Section_tools.html#xmovie">xmovie</A> tool in <A HREF = "Section_tools.html">this
section</A>. It creates xyz projection views of
atomic coordinates and animates them. We find it very useful for
debugging purposes. For high-quality visualization we recommend the
following packages:
</P>
<UL><LI><A HREF = "http://www.ks.uiuc.edu/Research/vmd">VMD</A>
<LI><A HREF = "http://mt.seas.upenn.edu/Archive/Graphics/A">AtomEye</A>
<LI><A HREF = "http://pymol.sourceforge.net">PyMol</A>
<LI><A HREF = "http://www.bmsc.washington.edu/raster3d/raster3d.html">Raster3d</A>
<LI><A HREF = "http://www.openrasmol.org">RasMol</A>
</UL>
<P>Other features that LAMMPS does not yet (and may never) support are
discussed in <A HREF = "Section_history.html">this section</A>.
</P>
<P>Finally, these are freely-available molecular dynamics codes, most of
them parallel, which may be well-suited to the problems you want to
model. They can also be used in conjunction with LAMMPS to perform
complementary modeling tasks.
</P>
<UL><LI><A HREF = "http://www.scripps.edu/brooks">CHARMM</A>
<LI><A HREF = "http://amber.scripps.edu">AMBER</A>
<LI><A HREF = "http://www.ks.uiuc.edu/Research/namd/">NAMD</A>
<LI><A HREF = "http://www.emsl.pnl.gov/docs/nwchem/nwchem.html">NWCHEM</A>
<LI><A HREF = "http://www.cse.clrc.ac.uk/msi/software/DL_POLY">DL_POLY</A>
<LI><A HREF = "http://dasher.wustl.edu/tinker">Tinker</A>
</UL>
<P>CHARMM, AMBER, NAMD, NWCHEM, and Tinker are designed primarily for
modeling biological molecules. CHARMM and AMBER use
atom-decomposition (replicated-data) strategies for parallelism; NAMD
and NWCHEM use spatial-decomposition approaches, similar to LAMMPS.
Tinker is a serial code. DL_POLY includes potentials for a variety of
biological and non-biological materials; both a replicated-data and
spatial-decomposition version exist.
</P>
<HR>
<A NAME = "1_4"></A><H4>1.4 Open source distribution
</H4>
<P>LAMMPS comes with no warranty of any kind. As each source file states
in its header, it is a copyrighted code that is distributed free-of-
charge, under the terms of the <A HREF = "http://www.gnu.org/copyleft/gpl.html">GNU Public License</A> (GPL). This
is often referred to as open-source distribution - see
<A HREF = "http://www.gnu.org">www.gnu.org</A> or <A HREF = "http://www.opensource.org">www.opensource.org</A> for more
details. The legal text of the GPL is in the LICENSE file that is
included in the LAMMPS distribution.
</P>
<P>Here is a summary of what the GPL means for LAMMPS users:
</P>
<P>(1) Anyone is free to use, modify, or extend LAMMPS in any way they
choose, including for commercial purposes.
</P>
<P>(2) If you distribute a modified version of LAMMPS, it must remain
open-source, meaning you distribute it under the terms of the GPL.
You should clearly annotate such a code as a derivative version of
LAMMPS.
</P>
<P>(3) If you release any code that includes LAMMPS source code, then it
must also be open-sourced, meaning you distribute it under the terms
of the GPL.
</P>
<P>(4) If you give LAMMPS files to someone else, the GPL LICENSE file and
source file headers (including the copyright and GPL notices) should
remain part of the code.
</P>
<P>In the spirit of an open-source code, these are various ways you can
contribute to making LAMMPS better. You can send email to the
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A> on any of these
items.
</P>
<UL><LI>Point prospective users to the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>. Mention it in
talks or link to it from your WWW site.
<LI>If you find an error or omission in this manual or on the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW
Site</A>, or have a suggestion for something to clarify or include,
send an email to the
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>.
<LI>If you find a bug, <A HREF = "Section_errors.html#10_2">this section</A> describes
how to report it.
<LI>If you publish a paper using LAMMPS results, send the citation (and
any cool pictures or movies if you like) to add to the Publications,
Pictures, and Movies pages of the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>, with links
and attributions back to you.
<LI>Create a new Makefile.machine that can be added to the src/MAKE
directory.
<LI>The tools sub-directory of the LAMMPS distribution has various
stand-alone codes for pre- and post-processing of LAMMPS data. More
details are given in <A HREF = "Section_tools.html">this section</A>. If you write
a new tool that users will find useful, it can be added to the LAMMPS
distribution.
<LI>LAMMPS is designed to be easy to extend with new code for features
like potentials, boundary conditions, diagnostic computations, etc.
<A HREF = "Section_modify.html">This section</A> gives details. If you add a
feature of general interest, it can be added to the LAMMPS
distribution.
<LI>The Benchmark page of the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> lists LAMMPS
performance on various platforms. The files needed to run the
benchmarks are part of the LAMMPS distribution. If your machine is
sufficiently different from those listed, your timing data can be
added to the page.
<LI>You can send feedback for the User Comments page of the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW
Site</A>. It might be added to the page. No promises.
<LI>Cash. Small denominations, unmarked bills preferred. Paper sack OK.
Leave on desk. VISA also accepted. Chocolate chip cookies
encouraged.
</UL>
<HR>
<H4><A NAME = "1_5"></A>1.5 Acknowledgments and citations
</H4>
<P>LAMMPS development has been funded by the <A HREF = "http://www.doe.gov">US Department of
Energy</A> (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life
programs and its <A HREF = "http://www.sc.doe.gov/ascr/home.html">OASCR</A> and <A HREF = "http://www.er.doe.gov/production/ober/ober_top.html">OBER</A> offices.
</P>
<P>Specifically, work on the latest version was funded in part by the US
Department of Energy's Genomics:GTL program
(<A HREF = "http://www.doegenomestolife.org">www.doegenomestolife.org</A>) under the <A HREF = "http://www.genomes2life.org">project</A>, "Carbon
Sequestration in Synechococcus Sp.: From Molecular Machines to
Hierarchical Modeling".
</P>
<P>The following papers describe the parallel algorithms used in LAMMPS.
</P>
<P>S. J. Plimpton, <B>Fast Parallel Algorithms for Short-Range Molecular
Dynamics</B>, J Comp Phys, 117, 1-19 (1995).
</P>
<P>S. J. Plimpton, R. Pollock, M. Stevens, <B>Particle-Mesh Ewald and
rRESPA for Parallel Molecular Dynamics Simulations</B>, in Proc of the
Eighth SIAM Conference on Parallel Processing for Scientific
Computing, Minneapolis, MN (March 1997).
</P>
<P>If you use LAMMPS results in your published work, please cite the J
Comp Phys reference and include a pointer to the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>
(http://lammps.sandia.gov).
</P>
<P>If you send is information about your publication, we'll be pleased to
add it to the Publications page of the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A>. Ditto
for a picture or movie for the Pictures or Movies pages.
</P>
<P>The core group of LAMMPS developers is at Sandia National Labs. They
include <A HREF = "http://www.sandia.gov/~sjplimp">Steve Plimpton</A>, Paul Crozier, and Aidan Thompson and can
be contacted via email: sjplimp, pscrozi, athomps at sandia.gov.
</P>
<P>Here are various folks who have made significant contributions to
features in LAMMPS. The most recent contributions are at the top of
the list.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >pppm GPU single and double </TD><TD > Mike Brown (ORNL)</TD></TR>
<TR><TD >pair_style lj/cut/expand </TD><TD > Inderaj Bains (NVIDIA)</TD></TR>
<TR><TD >temperature accelerated dynamics (TAD) </TD><TD > Aidan Thompson (Sandia)</TD></TR>
<TR><TD >pair reax/c and fix qeq/reax </TD><TD > Metin Aktulga (Purdue, now LBNL)</TD></TR>
<TR><TD >DREIDING force field, pair_style hbond/dreiding, etc </TD><TD > Tod Pascal (CalTech)</TD></TR>
<TR><TD >fix adapt and compute ti for thermodynamic integreation for free energies </TD><TD > Sai Jayaraman (Sandia)</TD></TR>
<TR><TD >pair born and pair gauss </TD><TD > Sai Jayaraman (Sandia)</TD></TR>
<TR><TD >stochastic rotation dynamics (SRD) via fix srd </TD><TD > Jemery Lechman (Sandia) and Pieter in 't Veld (BASF)</TD></TR>
<TR><TD >ipp Perl script tool </TD><TD > Reese Jones (Sandia)</TD></TR>
<TR><TD >eam_database and createatoms tools </TD><TD > Xiaowang Zhou (Sandia)</TD></TR>
<TR><TD >electron force field (eFF) </TD><TD > Andres Jaramillo-Botero and Julius Su (Caltech)</TD></TR>
<TR><TD >embedded ion method (EIM) potential </TD><TD > Xiaowang Zhou (Sandia)</TD></TR>
<TR><TD >COMB potential with charge equilibration </TD><TD > Tzu-Ray Shan (U Florida)</TD></TR>
<TR><TD >fix ave/correlate </TD><TD > Benoit Leblanc, Dave Rigby, Paul Saxe (Materials Design) and Reese Jones (Sandia)</TD></TR>
<TR><TD >pair_style peri/lps </TD><TD > Mike Parks (Sandia)</TD></TR>
<TR><TD >fix msst </TD><TD > Lawrence Fried (LLNL), Evan Reed (LLNL, Stanford)</TD></TR>
<TR><TD >thermo_style custom tpcpu & spcpu keywords </TD><TD > Axel Kohlmeyer (Temple U) </TD></TR>
<TR><TD >fix rigid/nve, fix rigid/nvt </TD><TD > Tony Sheh and Trung Dac Nguyen (U Michigan)</TD></TR>
<TR><TD >public SVN & Git repositories for LAMMPS </TD><TD > Axel Kohlmeyer (Temple U) and Bill Goldman (Sandia)</TD></TR>
<TR><TD >fix nvt, fix nph, fix npt, Parinello/Rahman dynamics, fix box/relax </TD><TD > Aidan Thompson (Sandia)</TD></TR>
<TR><TD >compute heat/flux </TD><TD > German Samolyuk (ORNL) and Mario Pinto (Computational Research Lab, Pune, India)</TD></TR>
<TR><TD >pair yukawa/colloid </TD><TD > Randy Schunk (Sandia)</TD></TR>
<TR><TD >fix wall/colloid </TD><TD > Jeremy Lechman (Sandia)</TD></TR>
<TR><TD >pair_style dsmc for Direct Simulation Monte Carlo (DSMC) modeling </TD><TD > Paul Crozier (Sandia)</TD></TR>
<TR><TD >fix imd for real-time viz and interactive MD </TD><TD > Axel Kohlmeyer (Temple Univ)</TD></TR>
<TR><TD >concentration-dependent EAM potential </TD><TD > Alexander Stukowski (Technical University of Darmstadt)</TD></TR>
<TR><TD >parallel replica dymamics (PRD) </TD><TD > Mike Brown (Sandia)</TD></TR>
<TR><TD >min_style hftn </TD><TD > Todd Plantenga (Sandia)</TD></TR>
<TR><TD >fix atc </TD><TD > Reese Jones, Jon Zimmerman, Jeremy Templeton (Sandia)</TD></TR>
<TR><TD >dump cfg </TD><TD > Liang Wan (Chinese Academy of Sciences)</TD></TR>
<TR><TD >fix nvt with Nose/Hoover chains </TD><TD > Andy Ballard (U Maryland)</TD></TR>
<TR><TD >pair_style lj/cut/gpu, pair_style gayberne/gpu </TD><TD > Mike Brown (Sandia)</TD></TR>
<TR><TD >pair_style lj96/cut, bond_style table, angle_style table </TD><TD > Chuanfu Luo</TD></TR>
<TR><TD >fix langevin tally </TD><TD > Carolyn Phillips (U Michigan)</TD></TR>
<TR><TD >compute heat/flux for Green-Kubo </TD><TD > Reese Jones (Sandia), Philip Howell (Siemens), Vikas Varsney (AFRL)</TD></TR>
<TR><TD >region cone </TD><TD > Pim Schravendijk</TD></TR>
<TR><TD >fix reax/bonds </TD><TD > Aidan Thompson (Sandia)</TD></TR>
<TR><TD >pair born/coul/long </TD><TD > Ahmed Ismail (Sandia)</TD></TR>
<TR><TD >fix ttm </TD><TD > Paul Crozier (Sandia) and Carolyn Phillips (U Michigan)</TD></TR>
<TR><TD >fix box/relax </TD><TD > Aidan Thompson and David Olmsted (Sandia)</TD></TR>
<TR><TD >ReaxFF potential </TD><TD > Aidan Thompson (Sandia) and Hansohl Cho (MIT)</TD></TR>
<TR><TD >compute cna/atom </TD><TD > Wan Liang (Chinese Academy of Sciences)</TD></TR>
<TR><TD >Tersoff/ZBL potential </TD><TD > Dave Farrell (Northwestern U)</TD></TR>
<TR><TD >peridynamics </TD><TD > Mike Parks (Sandia)</TD></TR>
<TR><TD >fix smd for steered MD </TD><TD > Axel Kohlmeyer (U Penn)</TD></TR>
<TR><TD >GROMACS pair potentials </TD><TD > Mark Stevens (Sandia)</TD></TR>
<TR><TD >lmp2vmd tool </TD><TD > Axel Kohlmeyer (U Penn)</TD></TR>
<TR><TD >compute group/group </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >CG-CMM user package for coarse-graining </TD><TD > Axel Kohlmeyer (U Penn)</TD></TR>
<TR><TD >cosine/delta angle potential </TD><TD > Axel Kohlmeyer (U Penn)</TD></TR>
<TR><TD >VIM editor add-ons for LAMMPS input scripts </TD><TD > Gerolf Ziegenhain</TD></TR>
<TR><TD >pair lubricate </TD><TD > Randy Schunk (Sandia)</TD></TR>
<TR><TD >compute ackland/atom </TD><TD > Gerolf Zeigenhain</TD></TR>
<TR><TD >kspace_style ewald/n, pair_style lj/coul, pair_style buck/coul </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >AIREBO bond-order potential </TD><TD > Ase Henry (MIT)</TD></TR>
<TR><TD >making LAMMPS a true "object" that can be instantiated multiple times, e.g. as a library </TD><TD > Ben FrantzDale (RPI)</TD></TR>
<TR><TD >pymol_asphere viz tool </TD><TD > Mike Brown (Sandia)</TD></TR>
<TR><TD >NEMD SLLOD integration </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >tensile and shear deformations </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >GayBerne potential </TD><TD > Mike Brown (Sandia)</TD></TR>
<TR><TD >ellipsoidal particles </TD><TD > Mike Brown (Sandia)</TD></TR>
<TR><TD >colloid potentials </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >fix heat </TD><TD > Paul Crozier and Ed Webb (Sandia)</TD></TR>
<TR><TD >neighbor multi and communicate multi </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >MATLAB post-processing scripts </TD><TD > Arun Subramaniyan (Purdue)</TD></TR>
<TR><TD >triclinic (non-orthogonal) simulation domains </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >thermo_extract tool</TD><TD > Vikas Varshney (Wright Patterson AFB)</TD></TR>
<TR><TD >fix ave/time and fix ave/spatial </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >MEAM potential </TD><TD > Greg Wagner (Sandia)</TD></TR>
<TR><TD >optimized pair potentials for lj/cut, charmm/long, eam, morse </TD><TD > James Fischer (High Performance Technologies), David Richie and Vincent Natoli (Stone Ridge Technologies)</TD></TR>
<TR><TD >fix wall/lj126 </TD><TD > Mark Stevens (Sandia)</TD></TR>
<TR><TD >Stillinger-Weber and Tersoff potentials </TD><TD > Aidan Thompson and Xiaowang Zhou (Sandia)</TD></TR>
<TR><TD >region prism </TD><TD > Pieter in 't Veld (Sandia)</TD></TR>
<TR><TD >LJ tail corrections for energy/pressure </TD><TD > Paul Crozier (Sandia)</TD></TR>
<TR><TD >fix momentum and recenter </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >multi-letter variable names </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >OPLS dihedral potential</TD><TD > Mark Stevens (Sandia)</TD></TR>
<TR><TD >POEMS coupled rigid body integrator</TD><TD > Rudranarayan Mukherjee (RPI)</TD></TR>
<TR><TD >faster pair hybrid potential</TD><TD > James Fischer (High Performance Technologies, Inc), Vincent Natoli and David Richie (Stone Ridge Technology)</TD></TR>
<TR><TD >breakable bond quartic potential</TD><TD > Chris Lorenz and Mark Stevens (Sandia)</TD></TR>
<TR><TD >DCD and XTC dump styles</TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >grain boundary orientation fix </TD><TD > Koenraad Janssens and David Olmsted (Sandia)</TD></TR>
<TR><TD >lj/smooth pair potential </TD><TD > Craig Maloney (UCSB) </TD></TR>
<TR><TD >radius-of-gyration spring fix </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U) and Paul Crozier (Sandia)</TD></TR>
<TR><TD >self spring fix </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >EAM CoAl and AlCu potentials </TD><TD > Kwang-Reoul Lee (KIST, Korea)</TD></TR>
<TR><TD >cosine/squared angle potential </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U)</TD></TR>
<TR><TD >helix dihedral potential </TD><TD > Naveen Michaud-Agrawal (Johns Hopkins U) and Mark Stevens (Sandia)</TD></TR>
<TR><TD >Finnis/Sinclair EAM</TD><TD > Tim Lau (MIT)</TD></TR>
<TR><TD >dissipative particle dynamics (DPD) potentials</TD><TD > Kurt Smith (U Pitt) and Frank van Swol (Sandia)</TD></TR>
<TR><TD >TIP4P potential (4-site water)</TD><TD > Ahmed Ismail and Amalie Frischknecht (Sandia)</TD></TR>
<TR><TD >uniaxial strain fix</TD><TD > Carsten Svaneborg (Max Planck Institute)</TD></TR>
<TR><TD >thermodynamics enhanced by fix quantities</TD><TD > Aidan Thompson (Sandia)</TD></TR>
<TR><TD >compressed dump files</TD><TD > Erik Luijten (U Illinois)</TD></TR>
<TR><TD >cylindrical indenter fix</TD><TD > Ravi Agrawal (Northwestern U)</TD></TR>
<TR><TD >electric field fix</TD><TD > Christina Payne (Vanderbilt U)</TD></TR>
<TR><TD >AMBER <-> LAMMPS tool</TD><TD > Keir Novik (Univ College London) and Vikas Varshney (U Akron)</TD></TR>
<TR><TD >CHARMM <-> LAMMPS tool</TD><TD > Pieter in 't Veld and Paul Crozier (Sandia)</TD></TR>
<TR><TD >Morse bond potential</TD><TD > Jeff Greathouse (Sandia)</TD></TR>
<TR><TD >radial distribution functions</TD><TD > Paul Crozier & Jeff Greathouse (Sandia)</TD></TR>
<TR><TD >force tables for long-range Coulombics</TD><TD > Paul Crozier (Sandia)</TD></TR>
<TR><TD >targeted molecular dynamics (TMD)</TD><TD > Paul Crozier (Sandia) and Christian Burisch (Bochum University, Germany)</TD></TR>
<TR><TD >FFT support for SGI SCSL (Altix)</TD><TD > Jim Shepherd (Ga Tech)</TD></TR>
<TR><TD >lmp2cfg and lmp2traj tools</TD><TD > Ara Kooser, Jeff Greathouse, Andrey Kalinichev (Sandia)</TD></TR>
<TR><TD >parallel tempering</TD><TD > Mark Sears (Sandia)</TD></TR>
<TR><TD >embedded atom method (EAM) potential</TD><TD > Stephen Foiles (Sandia)</TD></TR>
<TR><TD >multi-harmonic dihedral potential</TD><TD > Mathias Puetz (Sandia)</TD></TR>
<TR><TD >granular force fields and BC</TD><TD > Leo Silbert & Gary Grest (Sandia)</TD></TR>
<TR><TD >2d Ewald/PPPM</TD><TD > Paul Crozier (Sandia)</TD></TR>
<TR><TD >CHARMM force fields</TD><TD > Paul Crozier (Sandia)</TD></TR>
<TR><TD >msi2lmp tool</TD><TD > Steve Lustig (Dupont), Mike Peachey & John Carpenter (Cray)</TD></TR>
<TR><TD >HTFN energy minimizer</TD><TD > Todd Plantenga (Sandia)</TD></TR>
<TR><TD >class 2 force fields</TD><TD > Eric Simon (Cray)</TD></TR>
<TR><TD >NVT/NPT integrators</TD><TD > Mark Stevens (Sandia)</TD></TR>
<TR><TD >rRESPA</TD><TD > Mark Stevens & Paul Crozier (Sandia)</TD></TR>
<TR><TD >Ewald and PPPM solvers</TD><TD > Roy Pollock (LLNL) </TD><TD >
</TD></TR></TABLE></DIV>
<P>Other CRADA partners involved in the design and testing of LAMMPS were
</P>
<UL><LI>John Carpenter (Mayo Clinic, formerly at Cray Research)
<LI>Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb)
<LI>Steve Lustig (Dupont)
<LI>Jim Belak (LLNL)
</UL>
</HTML>
diff --git a/doc/Section_intro.txt b/doc/Section_intro.txt
index 520846f43..28c9a1a9d 100644
--- a/doc/Section_intro.txt
+++ b/doc/Section_intro.txt
@@ -1,627 +1,627 @@
"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_start.html :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
1. Introduction :h3
These sections provide an overview of what LAMMPS can and can't do,
describe what it means for LAMMPS to be an open-source code, and
acknowledge the funding and people who have contributed to LAMMPS over
the years.
1.1 "What is LAMMPS"_#1_1
1.2 "LAMMPS features"_#1_2
1.3 "LAMMPS non-features"_#1_3
1.4 "Open source distribution"_#1_4
1.5 "Acknowledgments and citations"_#1_5 :all(b)
:line
1.1 What is LAMMPS :link(1_1),h4
LAMMPS is a classical molecular dynamics code that models an ensemble
of particles in a liquid, solid, or gaseous state. It can model
atomic, polymeric, biological, metallic, granular, and coarse-grained
systems using a variety of force fields and boundary conditions.
For examples of LAMMPS simulations, see the Publications page of the
"LAMMPS WWW Site"_lws.
LAMMPS runs efficiently on single-processor desktop or laptop
machines, but is designed for parallel computers. It will run on any
parallel machine that compiles C++ and supports the "MPI"_mpi
message-passing library. This includes distributed- or shared-memory
parallel machines and Beowulf-style clusters.
:link(mpi,http://www-unix.mcs.anl.gov/mpi)
LAMMPS can model systems with only a few particles up to millions or
billions. See "this section"_Section_perf.html for information on LAMMPS
performance and scalability, or the Benchmarks section of the "LAMMPS
WWW Site"_lws.
LAMMPS is a freely-available open-source code, distributed under the
terms of the "GNU Public License"_gnu, which means you can use or
modify the code however you wish. See "this section"_#1_4 for a brief
discussion of the open-source philosophy.
:link(gnu,http://www.gnu.org/copyleft/gpl.html)
LAMMPS is designed to be easy to modify or extend with new
capabilities, such as new force fields, atom types, boundary
conditions, or diagnostics. See "this section"_Section_modify.html for
more details.
The current version of LAMMPS is written in C++. Earlier versions
were written in F77 and F90. See "this section"_Section_history.html
for more information on different versions. All versions can be
downloaded from the "LAMMPS WWW Site"_lws.
LAMMPS was originally developed under a US Department of Energy CRADA
(Cooperative Research and Development Agreement) between two DOE labs
and 3 companies. It is distributed by "Sandia National Labs"_snl.
See "this section"_#1_5 for more information on LAMMPS funding and
individuals who have contributed to LAMMPS.
:link(snl,http://www.sandia.gov)
In the most general sense, LAMMPS integrates Newton's equations of
motion for collections of atoms, molecules, or macroscopic particles
that interact via short- or long-range forces with a variety of
initial and/or boundary conditions. For computational efficiency
LAMMPS uses neighbor lists to keep track of nearby particles. The
lists are optimized for systems with particles that are repulsive at
short distances, so that the local density of particles never becomes
too large. On parallel machines, LAMMPS uses spatial-decomposition
techniques to partition the simulation domain into small 3d
sub-domains, one of which is assigned to each processor. Processors
communicate and store "ghost" atom information for atoms that border
their sub-domain. LAMMPS is most efficient (in a parallel sense) for
systems whose particles fill a 3d rectangular box with roughly uniform
density. Papers with technical details of the algorithms used in
LAMMPS are listed in "this section"_#1_5.
:line
1.2 LAMMPS features :link(1_2),h4
This section highlights LAMMPS features, with pointers to specific
commands which give more details. If LAMMPS doesn't have your
favorite interatomic potential, boundary condition, or atom type, see
"this section"_Section_modify.html, which describes how you can add it to
LAMMPS.
General features :h4
runs on a single processor or in parallel
distributed-memory message-passing parallelism (MPI)
spatial-decomposition of simulation domain for parallelism
open-source distribution
highly portable C++
optional libraries used: MPI and single-processor FFT
easy to extend with new features and functionality
runs from an input script
syntax for defining and using variables and formulas
syntax for looping over runs and breaking out of loops
run one or multiple simulations simultaneously (in parallel) from one script
build as library, invoke LAMMPS thru library interface or provided Python wrapper
couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both :ul
Particle and model types :h4
("atom style"_atom_style.html command)
atoms
coarse-grained particles (e.g. bead-spring polymers)
united-atom polymers or organic molecules
all-atom polymers, organic molecules, proteins, DNA
metals
granular materials
coarse-grained mesoscale models
extended spherical and ellipsoidal particles
point dipolar particles
rigid collections of particles
hybrid combinations of these :ul
Force fields :h4
("pair style"_pair_style.html, "bond style"_bond_style.html,
"angle style"_angle_style.html, "dihedral style"_dihedral_style.html,
"improper style"_improper_style.html, "kspace style"_kspace_style.html
commands)
pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \
Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated
charged pairwise potentials: Coulombic, point-dipole
manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \
embedded ion method (EIM), ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB
- electron force field (eFF)
+ electron force field (eFF, AWPMD)
coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
mesoscopic potentials: granular, Peridynamics
bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \
quartic (breakable)
angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \
class 2 (COMPASS)
dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, \
class 2 (COMPASS), OPLS
improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS)
polymer potentials: all-atom, united-atom, bead-spring, breakable
water potentials: TIP3P, TIP4P, SPC
implicit solvent potentials: hydrodynamic lubrication, Debye
long-range Coulombics and dispersion: Ewald, \
PPPM (similar to particle-mesh Ewald), Ewald/N for long-range Lennard-Jones
force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
handful of GPU-enabled pair styles :ul
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials
Atom creation :h4
("read_data"_read_data.html, "lattice"_lattice.html,
"create_atoms"_create_atoms.html, "delete_atoms"_delete_atoms.html,
"displace_atoms"_displace_atoms.html, "replicate"_replicate.html commands)
read in atom coords from files
create atoms on one or more lattices (e.g. grain boundaries)
delete geometric or logical groups of atoms (e.g. voids)
replicate existing atoms multiple times
displace atoms :ul
Ensembles, constraints, and boundary conditions :h4
("fix"_fix.html command)
2d or 3d systems
orthogonal or non-orthogonal (triclinic symmetry) simulation domains
constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators
thermostatting options for groups and geometric regions of atoms
pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions
simulation box deformation (tensile and shear)
harmonic (umbrella) constraint forces
rigid body constraints
SHAKE bond and angle constraints
bond breaking, formation, swapping
walls of various kinds
non-equilibrium molecular dynamics (NEMD)
variety of additional boundary conditions and constraints :ul
Integrators :h4
("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands)
velocity-Verlet integrator
Brownian dynamics
rigid body integration
energy minimization via conjugate gradient or steepest descent relaxation
rRESPA hierarchical timestepping :ul
Diagnostics :h4
see the various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul
Output :h4
("dump"_dump.html, "restart"_restart.html commands)
log file of thermodynamic info
text dump files of atom coords, velocities, other per-atom quantities
binary restart files
parallel I/O of dump and restart files
per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc)
user-defined system-wide (log file) or per-atom (dump file) calculations
spatial and time averaging of per-atom quantities
time averaging of system-wide quantities
atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul
Multi-replica models :h4
"nudged elastic band"_neb.html
"parallel replica dynamics"_prd.html
"temperature accelerated dynamics"_tad.html
"parallel tempering"_temper.html
Pre- and post-processing :h4
Various pre- and post-processing serial tools are packaged
with LAMMPS; see these "doc pages"_Section_tools.html. :ulb,l
Our group has also written and released a separate toolkit called
"Pizza.py"_pizza which provides tools for doing setup, analysis,
plotting, and visualization for LAMMPS simulations. Pizza.py is
written in "Python"_python and is available for download from "the
Pizza.py WWW site"_pizza. :l,ule
:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html)
:link(python,http://www.python.org)
Specialized features :h4
These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:
"stochastic rotation dynamics (SRD)"_fix_srd.html
"real-time visualization and interactive MD"_fix_imd.html
"atom-to-continuum coupling"_fix_atc.html with finite elements
coupled rigid body integration via the "POEMS"_fix_poems.html library
"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids
"Peridynamics mesoscale modeling"_pair_peri.html
"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics
"two-temperature electron model"_fix_ttm.html :ul
:line
1.3 LAMMPS non-features :link(1_3),h4
LAMMPS is designed to efficiently compute Newton's equations of motion
for a system of interacting particles. Many of the tools needed to
pre- and post-process the data for such simulations are not included
in the LAMMPS kernel for several reasons:
the desire to keep LAMMPS simple
they are not parallel operations
other codes already do them
limited development resources :ul
Specifically, LAMMPS itself does not:
run thru a GUI
build molecular systems
assign force-field coefficients automagically
perform sophisticated analyses of your MD simulation
visualize your MD simulation
plot your output data :ul
A few tools for pre- and post-processing tasks are provided as part of
the LAMMPS package; they are described in "this
section"_Section_tools.html. However, many people use other codes or
write their own tools for these tasks.
As noted above, our group has also written and released a separate
toolkit called "Pizza.py"_pizza which addresses some of the listed
bullets. It provides tools for doing setup, analysis, plotting, and
visualization for LAMMPS simulations. Pizza.py is written in
"Python"_python and is available for download from "the Pizza.py WWW
site"_pizza.
LAMMPS requires as input a list of initial atom coordinates and types,
molecular topology information, and force-field coefficients assigned
to all atoms and bonds. LAMMPS will not build molecular systems and
assign force-field parameters for you.
For atomic systems LAMMPS provides a "create_atoms"_create_atoms.html
command which places atoms on solid-state lattices (fcc, bcc,
user-defined, etc). Assigning small numbers of force field
coefficients can be done via the "pair coeff"_pair_coeff.html, "bond
coeff"_bond_coeff.html, "angle coeff"_angle_coeff.html, etc commands.
For molecular systems or more complicated simulation geometries, users
typically use another code as a builder and convert its output to
LAMMPS input format, or write their own code to generate atom
coordinate and molecular topology for LAMMPS to read in.
For complicated molecular systems (e.g. a protein), a multitude of
topology information and hundreds of force-field coefficients must
typically be specified. We suggest you use a program like
"CHARMM"_charmm or "AMBER"_amber or other molecular builders to setup
such problems and dump its information to a file. You can then
reformat the file as LAMMPS input. Some of the tools in "this
section"_Section_tools.html can assist in this process.
Similarly, LAMMPS creates output files in a simple format. Most users
post-process these files with their own analysis tools or re-format
them for input into other programs, including visualization packages.
If you are convinced you need to compute something on-the-fly as
LAMMPS runs, see "this section"_Section_modify.html for a discussion
of how you can use the "dump"_dump.html and "compute"_compute.html and
"fix"_fix.html commands to print out data of your choosing. Keep in
mind that complicated computations can slow down the molecular
dynamics timestepping, particularly if the computations are not
parallel, so it is often better to leave such analysis to
post-processing codes.
A very simple (yet fast) visualizer is provided with the LAMMPS
package - see the "xmovie"_Section_tools.html#xmovie tool in "this
section"_Section_tools.html. It creates xyz projection views of
atomic coordinates and animates them. We find it very useful for
debugging purposes. For high-quality visualization we recommend the
following packages:
"VMD"_http://www.ks.uiuc.edu/Research/vmd
"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A
"PyMol"_http://pymol.sourceforge.net
"Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html
"RasMol"_http://www.openrasmol.org :ul
Other features that LAMMPS does not yet (and may never) support are
discussed in "this section"_Section_history.html.
Finally, these are freely-available molecular dynamics codes, most of
them parallel, which may be well-suited to the problems you want to
model. They can also be used in conjunction with LAMMPS to perform
complementary modeling tasks.
"CHARMM"_charmm
"AMBER"_amber
"NAMD"_namd
"NWCHEM"_nwchem
"DL_POLY"_dlpoly
"Tinker"_tinker :ul
:link(charmm,http://www.scripps.edu/brooks)
:link(amber,http://amber.scripps.edu)
:link(namd,http://www.ks.uiuc.edu/Research/namd/)
:link(nwchem,http://www.emsl.pnl.gov/docs/nwchem/nwchem.html)
:link(dlpoly,http://www.cse.clrc.ac.uk/msi/software/DL_POLY)
:link(tinker,http://dasher.wustl.edu/tinker)
CHARMM, AMBER, NAMD, NWCHEM, and Tinker are designed primarily for
modeling biological molecules. CHARMM and AMBER use
atom-decomposition (replicated-data) strategies for parallelism; NAMD
and NWCHEM use spatial-decomposition approaches, similar to LAMMPS.
Tinker is a serial code. DL_POLY includes potentials for a variety of
biological and non-biological materials; both a replicated-data and
spatial-decomposition version exist.
:line
1.4 Open source distribution :link(1_4),h4
LAMMPS comes with no warranty of any kind. As each source file states
in its header, it is a copyrighted code that is distributed free-of-
charge, under the terms of the "GNU Public License"_gnu (GPL). This
is often referred to as open-source distribution - see
"www.gnu.org"_gnuorg or "www.opensource.org"_opensource for more
details. The legal text of the GPL is in the LICENSE file that is
included in the LAMMPS distribution.
:link(gnuorg,http://www.gnu.org)
:link(opensource,http://www.opensource.org)
Here is a summary of what the GPL means for LAMMPS users:
(1) Anyone is free to use, modify, or extend LAMMPS in any way they
choose, including for commercial purposes.
(2) If you distribute a modified version of LAMMPS, it must remain
open-source, meaning you distribute it under the terms of the GPL.
You should clearly annotate such a code as a derivative version of
LAMMPS.
(3) If you release any code that includes LAMMPS source code, then it
must also be open-sourced, meaning you distribute it under the terms
of the GPL.
(4) If you give LAMMPS files to someone else, the GPL LICENSE file and
source file headers (including the copyright and GPL notices) should
remain part of the code.
In the spirit of an open-source code, these are various ways you can
contribute to making LAMMPS better. You can send email to the
"developers"_http://lammps.sandia.gov/authors.html on any of these
items.
Point prospective users to the "LAMMPS WWW Site"_lws. Mention it in
talks or link to it from your WWW site. :ulb,l
If you find an error or omission in this manual or on the "LAMMPS WWW
Site"_lws, or have a suggestion for something to clarify or include,
send an email to the
"developers"_http://lammps.sandia.gov/authors.html. :l
If you find a bug, "this section"_Section_errors.html#10_2 describes
how to report it. :l
If you publish a paper using LAMMPS results, send the citation (and
any cool pictures or movies if you like) to add to the Publications,
Pictures, and Movies pages of the "LAMMPS WWW Site"_lws, with links
and attributions back to you. :l
Create a new Makefile.machine that can be added to the src/MAKE
directory. :l
The tools sub-directory of the LAMMPS distribution has various
stand-alone codes for pre- and post-processing of LAMMPS data. More
details are given in "this section"_Section_tools.html. If you write
a new tool that users will find useful, it can be added to the LAMMPS
distribution. :l
LAMMPS is designed to be easy to extend with new code for features
like potentials, boundary conditions, diagnostic computations, etc.
"This section"_Section_modify.html gives details. If you add a
feature of general interest, it can be added to the LAMMPS
distribution. :l
The Benchmark page of the "LAMMPS WWW Site"_lws lists LAMMPS
performance on various platforms. The files needed to run the
benchmarks are part of the LAMMPS distribution. If your machine is
sufficiently different from those listed, your timing data can be
added to the page. :l
You can send feedback for the User Comments page of the "LAMMPS WWW
Site"_lws. It might be added to the page. No promises. :l
Cash. Small denominations, unmarked bills preferred. Paper sack OK.
Leave on desk. VISA also accepted. Chocolate chip cookies
encouraged. :ule,l
:line
1.5 Acknowledgments and citations :h4,link(1_5)
LAMMPS development has been funded by the "US Department of
Energy"_doe (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life
programs and its "OASCR"_oascr and "OBER"_ober offices.
Specifically, work on the latest version was funded in part by the US
Department of Energy's Genomics:GTL program
("www.doegenomestolife.org"_gtl) under the "project"_ourgtl, "Carbon
Sequestration in Synechococcus Sp.: From Molecular Machines to
Hierarchical Modeling".
:link(doe,http://www.doe.gov)
:link(gtl,http://www.doegenomestolife.org)
:link(ourgtl,http://www.genomes2life.org)
:link(oascr,http://www.sc.doe.gov/ascr/home.html)
:link(ober,http://www.er.doe.gov/production/ober/ober_top.html)
The following papers describe the parallel algorithms used in LAMMPS.
S. J. Plimpton, [Fast Parallel Algorithms for Short-Range Molecular
Dynamics], J Comp Phys, 117, 1-19 (1995).
S. J. Plimpton, R. Pollock, M. Stevens, [Particle-Mesh Ewald and
rRESPA for Parallel Molecular Dynamics Simulations], in Proc of the
Eighth SIAM Conference on Parallel Processing for Scientific
Computing, Minneapolis, MN (March 1997).
If you use LAMMPS results in your published work, please cite the J
Comp Phys reference and include a pointer to the "LAMMPS WWW Site"_lws
(http://lammps.sandia.gov).
If you send is information about your publication, we'll be pleased to
add it to the Publications page of the "LAMMPS WWW Site"_lws. Ditto
for a picture or movie for the Pictures or Movies pages.
The core group of LAMMPS developers is at Sandia National Labs. They
include "Steve Plimpton"_sjp, Paul Crozier, and Aidan Thompson and can
be contacted via email: sjplimp, pscrozi, athomps at sandia.gov.
Here are various folks who have made significant contributions to
features in LAMMPS. The most recent contributions are at the top of
the list.
:link(sjp,http://www.sandia.gov/~sjplimp)
pppm GPU single and double : Mike Brown (ORNL)
pair_style lj/cut/expand : Inderaj Bains (NVIDIA)
temperature accelerated dynamics (TAD) : Aidan Thompson (Sandia)
pair reax/c and fix qeq/reax : Metin Aktulga (Purdue, now LBNL)
DREIDING force field, pair_style hbond/dreiding, etc : Tod Pascal (CalTech)
fix adapt and compute ti for thermodynamic integreation for free energies : Sai Jayaraman (Sandia)
pair born and pair gauss : Sai Jayaraman (Sandia)
stochastic rotation dynamics (SRD) via fix srd : Jemery Lechman (Sandia) and Pieter in 't Veld (BASF)
ipp Perl script tool : Reese Jones (Sandia)
eam_database and createatoms tools : Xiaowang Zhou (Sandia)
electron force field (eFF) : Andres Jaramillo-Botero and Julius Su (Caltech)
embedded ion method (EIM) potential : Xiaowang Zhou (Sandia)
COMB potential with charge equilibration : Tzu-Ray Shan (U Florida)
fix ave/correlate : Benoit Leblanc, Dave Rigby, Paul Saxe (Materials Design) and Reese Jones (Sandia)
pair_style peri/lps : Mike Parks (Sandia)
fix msst : Lawrence Fried (LLNL), Evan Reed (LLNL, Stanford)
thermo_style custom tpcpu & spcpu keywords : Axel Kohlmeyer (Temple U)
fix rigid/nve, fix rigid/nvt : Tony Sheh and Trung Dac Nguyen (U Michigan)
public SVN & Git repositories for LAMMPS : Axel Kohlmeyer (Temple U) and Bill Goldman (Sandia)
fix nvt, fix nph, fix npt, Parinello/Rahman dynamics, fix box/relax : Aidan Thompson (Sandia)
compute heat/flux : German Samolyuk (ORNL) and Mario Pinto (Computational Research Lab, Pune, India)
pair yukawa/colloid : Randy Schunk (Sandia)
fix wall/colloid : Jeremy Lechman (Sandia)
pair_style dsmc for Direct Simulation Monte Carlo (DSMC) modeling : Paul Crozier (Sandia)
fix imd for real-time viz and interactive MD : Axel Kohlmeyer (Temple Univ)
concentration-dependent EAM potential : Alexander Stukowski (Technical University of Darmstadt)
parallel replica dymamics (PRD) : Mike Brown (Sandia)
min_style hftn : Todd Plantenga (Sandia)
fix atc : Reese Jones, Jon Zimmerman, Jeremy Templeton (Sandia)
dump cfg : Liang Wan (Chinese Academy of Sciences)
fix nvt with Nose/Hoover chains : Andy Ballard (U Maryland)
pair_style lj/cut/gpu, pair_style gayberne/gpu : Mike Brown (Sandia)
pair_style lj96/cut, bond_style table, angle_style table : Chuanfu Luo
fix langevin tally : Carolyn Phillips (U Michigan)
compute heat/flux for Green-Kubo : Reese Jones (Sandia), Philip Howell (Siemens), Vikas Varsney (AFRL)
region cone : Pim Schravendijk
fix reax/bonds : Aidan Thompson (Sandia)
pair born/coul/long : Ahmed Ismail (Sandia)
fix ttm : Paul Crozier (Sandia) and Carolyn Phillips (U Michigan)
fix box/relax : Aidan Thompson and David Olmsted (Sandia)
ReaxFF potential : Aidan Thompson (Sandia) and Hansohl Cho (MIT)
compute cna/atom : Wan Liang (Chinese Academy of Sciences)
Tersoff/ZBL potential : Dave Farrell (Northwestern U)
peridynamics : Mike Parks (Sandia)
fix smd for steered MD : Axel Kohlmeyer (U Penn)
GROMACS pair potentials : Mark Stevens (Sandia)
lmp2vmd tool : Axel Kohlmeyer (U Penn)
compute group/group : Naveen Michaud-Agrawal (Johns Hopkins U)
CG-CMM user package for coarse-graining : Axel Kohlmeyer (U Penn)
cosine/delta angle potential : Axel Kohlmeyer (U Penn)
VIM editor add-ons for LAMMPS input scripts : Gerolf Ziegenhain
pair lubricate : Randy Schunk (Sandia)
compute ackland/atom : Gerolf Zeigenhain
kspace_style ewald/n, pair_style lj/coul, pair_style buck/coul : \
Pieter in 't Veld (Sandia)
AIREBO bond-order potential : Ase Henry (MIT)
making LAMMPS a true "object" that can be instantiated multiple times, \
e.g. as a library : Ben FrantzDale (RPI)
pymol_asphere viz tool : Mike Brown (Sandia)
NEMD SLLOD integration : Pieter in 't Veld (Sandia)
tensile and shear deformations : Pieter in 't Veld (Sandia)
GayBerne potential : Mike Brown (Sandia)
ellipsoidal particles : Mike Brown (Sandia)
colloid potentials : Pieter in 't Veld (Sandia)
fix heat : Paul Crozier and Ed Webb (Sandia)
neighbor multi and communicate multi : Pieter in 't Veld (Sandia)
MATLAB post-processing scripts : Arun Subramaniyan (Purdue)
triclinic (non-orthogonal) simulation domains : Pieter in 't Veld (Sandia)
thermo_extract tool: Vikas Varshney (Wright Patterson AFB)
fix ave/time and fix ave/spatial : Pieter in 't Veld (Sandia)
MEAM potential : Greg Wagner (Sandia)
optimized pair potentials for lj/cut, charmm/long, eam, morse : \
James Fischer (High Performance Technologies), \
David Richie and Vincent Natoli (Stone Ridge Technologies)
fix wall/lj126 : Mark Stevens (Sandia)
Stillinger-Weber and Tersoff potentials : Aidan Thompson and Xiaowang Zhou (Sandia)
region prism : Pieter in 't Veld (Sandia)
LJ tail corrections for energy/pressure : Paul Crozier (Sandia)
fix momentum and recenter : Naveen Michaud-Agrawal (Johns Hopkins U)
multi-letter variable names : Naveen Michaud-Agrawal (Johns Hopkins U)
OPLS dihedral potential: Mark Stevens (Sandia)
POEMS coupled rigid body integrator: Rudranarayan Mukherjee (RPI)
faster pair hybrid potential: James Fischer \
(High Performance Technologies, Inc), Vincent Natoli and \
David Richie (Stone Ridge Technology)
breakable bond quartic potential: Chris Lorenz and Mark Stevens (Sandia)
DCD and XTC dump styles: Naveen Michaud-Agrawal (Johns Hopkins U)
grain boundary orientation fix : Koenraad Janssens and David Olmsted (Sandia)
lj/smooth pair potential : Craig Maloney (UCSB)
radius-of-gyration spring fix : Naveen Michaud-Agrawal (Johns Hopkins U) and \
Paul Crozier (Sandia)
self spring fix : Naveen Michaud-Agrawal (Johns Hopkins U)
EAM CoAl and AlCu potentials : Kwang-Reoul Lee (KIST, Korea)
cosine/squared angle potential : Naveen Michaud-Agrawal (Johns Hopkins U)
helix dihedral potential : Naveen Michaud-Agrawal (Johns Hopkins U) and \
Mark Stevens (Sandia)
Finnis/Sinclair EAM: Tim Lau (MIT)
dissipative particle dynamics (DPD) potentials: Kurt Smith (U Pitt) and \
Frank van Swol (Sandia)
TIP4P potential (4-site water): Ahmed Ismail and Amalie Frischknecht (Sandia)
uniaxial strain fix: Carsten Svaneborg (Max Planck Institute)
thermodynamics enhanced by fix quantities: Aidan Thompson (Sandia)
compressed dump files: Erik Luijten (U Illinois)
cylindrical indenter fix: Ravi Agrawal (Northwestern U)
electric field fix: Christina Payne (Vanderbilt U)
AMBER <-> LAMMPS tool: Keir Novik (Univ College London) and \
Vikas Varshney (U Akron)
CHARMM <-> LAMMPS tool: Pieter in 't Veld and Paul Crozier (Sandia)
Morse bond potential: Jeff Greathouse (Sandia)
radial distribution functions: Paul Crozier & Jeff Greathouse (Sandia)
force tables for long-range Coulombics: Paul Crozier (Sandia)
targeted molecular dynamics (TMD): Paul Crozier (Sandia) and \
Christian Burisch (Bochum University, Germany)
FFT support for SGI SCSL (Altix): Jim Shepherd (Ga Tech)
lmp2cfg and lmp2traj tools: Ara Kooser, Jeff Greathouse, \
Andrey Kalinichev (Sandia)
parallel tempering: Mark Sears (Sandia)
embedded atom method (EAM) potential: Stephen Foiles (Sandia)
multi-harmonic dihedral potential: Mathias Puetz (Sandia)
granular force fields and BC: Leo Silbert & Gary Grest (Sandia)
2d Ewald/PPPM: Paul Crozier (Sandia)
CHARMM force fields: Paul Crozier (Sandia)
msi2lmp tool: Steve Lustig (Dupont), Mike Peachey & John Carpenter (Cray)
HTFN energy minimizer: Todd Plantenga (Sandia)
class 2 force fields: Eric Simon (Cray)
NVT/NPT integrators: Mark Stevens (Sandia)
rRESPA: Mark Stevens & Paul Crozier (Sandia)
Ewald and PPPM solvers: Roy Pollock (LLNL) : :tb(s=:)
Other CRADA partners involved in the design and testing of LAMMPS were
John Carpenter (Mayo Clinic, formerly at Cray Research)
Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb)
Steve Lustig (Dupont)
Jim Belak (LLNL) :ul
diff --git a/doc/Section_start.html b/doc/Section_start.html
index 3aa567cae..e7f0626fb 100644
--- a/doc/Section_start.html
+++ b/doc/Section_start.html
@@ -1,1080 +1,1137 @@
<HTML>
<CENTER><A HREF = "Section_intro.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_commands.html">Next Section</A>
</CENTER>
<HR>
<H3>2. Getting Started
</H3>
<P>This section describes how to build and run LAMMPS, for both new and
experienced users.
</P>
2.1 <A HREF = "#2_1">What's in the LAMMPS distribution</A><BR>
2.2 <A HREF = "#2_2">Making LAMMPS</A><BR>
2.3 <A HREF = "#2_3">Making LAMMPS with optional packages</A><BR>
2.4 <A HREF = "#2_4">Building LAMMPS as a library</A><BR>
2.5 <A HREF = "#2_5">Running LAMMPS</A><BR>
2.6 <A HREF = "#2_6">Command-line options</A><BR>
2.7 <A HREF = "#2_7">Screen output</A><BR>
2.8 <A HREF = "#2_8">Tips for users of previous versions</A> <BR>
<HR>
<H4><A NAME = "2_1"></A>2.1 What's in the LAMMPS distribution
</H4>
<P>When you download LAMMPS you will need to unzip and untar the
downloaded file with the following commands, after placing the file in
an appropriate directory.
</P>
<PRE>gunzip lammps*.tar.gz
tar xvf lammps*.tar
</PRE>
<P>This will create a LAMMPS directory containing two files and several
sub-directories:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >README</TD><TD > text file</TD></TR>
<TR><TD >LICENSE</TD><TD > the GNU General Public License (GPL)</TD></TR>
<TR><TD >bench</TD><TD > benchmark problems</TD></TR>
<TR><TD >couple</TD><TD > code coupling examples, using LAMMPS as a library</TD></TR>
<TR><TD >doc</TD><TD > documentation</TD></TR>
<TR><TD >examples</TD><TD > simple test problems</TD></TR>
<TR><TD >potentials</TD><TD > embedded atom method (EAM) potential files</TD></TR>
<TR><TD >src</TD><TD > source files</TD></TR>
<TR><TD >tools</TD><TD > pre- and post-processing tools
</TD></TR></TABLE></DIV>
-<P>If you download the Windows executable from the download page,
+<P>If you download one of the Windows executables from the download page,
then you just get a single file:
</P>
<PRE>lmp_windows.exe
</PRE>
-<P>Skip to the <A HREF = "#2_5">Running LAMMPS</A> section, to learn how to launch this
-executable on a Windows box.
+<P>Skip to the <A HREF = "#2_5">Running LAMMPS</A> sections for info on how to launch
+these executables on a Windows box.
</P>
-<P>The Windows executable also only includes certain packages and
-bug-fixes/upgrades listed on <A HREF = "http://lammps.sandia.gov/bug.html">this
+<P>The Windows executables for serial or parallel only include certain
+packages and bug-fixes/upgrades listed on <A HREF = "http://lammps.sandia.gov/bug.html">this
page</A> up to a certain date, as
stated on the download page. If you want something with more packages
or that is more current, you'll have to download the source tarball
-and build it yourself, as described in the next section.
+and build it yourself from source code using Microsoft Visual Studio,
+as described in the next section.
</P>
<HR>
<H4><A NAME = "2_2"></A>2.2 Making LAMMPS
</H4>
<P>This section has the following sub-sections:
</P>
<UL><LI><A HREF = "#2_2_1">Read this first</A>
<LI><A HREF = "#2_2_2">Building a LAMMPS executable</A>
<LI><A HREF = "#2_2_3">Common errors that can occur when making LAMMPS</A>
<LI><A HREF = "#2_2_4">Editing a new low-level Makefile</A>
-<LI><A HREF = "#2_2_5">Additional build tips</A>
+<LI><A HREF = "#2_2_5">Additional build tips</A>
+<LI><A HREF = "#2_2_6">Building for a Mac</A>
+<LI><A HREF = "#2_2_7">Building for Windows</A>
</UL>
<HR>
<A NAME = "2_2_1"></A><B><I>Read this first:</I></B>
<P>Building LAMMPS can be non-trivial. You will likely need to edit a
makefile, there are compiler options, additional libraries can be used
(MPI, FFT, JPEG), etc. Please read this section carefully. If you
are not comfortable with makefiles, or building codes on a Unix
platform, or running an MPI job on your machine, please find a local
expert to help you. Many compiling, linking, and run problems that
users are not really LAMMPS issues - they are peculiar to the user's
system, compilers, libraries, etc. Such questions are better answered
by a local expert.
</P>
<P>If you have a build problem that you are convinced is a LAMMPS issue
(e.g. the compiler complains about a line of LAMMPS source code), then
please send an email to the
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>.
</P>
<P>If you succeed in building LAMMPS on a new kind of machine, for which
there isn't a similar Makefile for in the src/MAKE directory, send it
to the developers and we'll include it in future LAMMPS releases.
</P>
<HR>
<A NAME = "2_2_2"></A><B><I>Building a LAMMPS executable:</I></B>
<P>The src directory contains the C++ source and header files for LAMMPS.
It also contains a top-level Makefile and a MAKE sub-directory with
low-level Makefile.* files for several machines. From within the src
directory, type "make" or "gmake". You should see a list of available
choices. If one of those is the machine and options you want, you can
type a command like:
</P>
<PRE>make linux
gmake mac
</PRE>
<P>Note that on a multi-processor or multi-core platform you can launch a
parallel make, by using the "-j" switch with the make command, which
will build LAMMPS more quickly.
</P>
<P>If you get no errors and an executable like lmp_linux or lmp_mac is
produced, you're done; it's your lucky day.
</P>
<HR>
<A NAME = "2_2_3"></A><B><I>Common errors that can occur when making LAMMPS:</I></B>
<P>(1) If the make command breaks immediately with errors that indicate
it can't find files with a "*" in their names, this can be because
your machine's make doesn't support wildcard expansion in a makefile.
Try gmake instead of make. If that doesn't work, try using a -f
switch with your make command to use Makefile.list which explicitly
lists all the needed files, e.g.
</P>
<PRE>make makelist
make -f Makefile.list linux
gmake -f Makefile.list mac
</PRE>
<P>The first "make" command will create a current Makefile.list with all
the file names in your src dir. The 2nd "make" command (make or
gmake) will use it to build LAMMPS.
</P>
<P>(2) Other errors typically occur because the low-level Makefile isn't
setup correctly for your machine. If your platform is named "foo",
you will need to create a Makefile.foo in the MAKE sub-directory. Use
whatever existing file is closest to your platform as a starting
point. See the next section for more instructions.
</P>
<P>(3) If you get a link-time error about missing libraries or missing
dependencies, then it can be because:
</P>
<UL><LI>you are including a package that needs an extra library, but have not pre-built the necessary <A HREF = "#2_3_3">package library</A>
<LI>you are linking to a library that doesn't exist on your system
<LI>you are not linking to the necessary system library
</UL>
<P>The first issue is discussed below. The other two issue mean you need
to edit your low-level Makefile.foo, as discussed in the next
sub-section.
</P>
<HR>
<A NAME = "2_2_4"></A><B><I>Editing a new low-level Makefile.foo:</I></B>
<P>These are the issues you need to address when editing a low-level
Makefile for your machine. The portions of the file you typically
need to edit are the first line, the "compiler/linker settings"
section, and the "system-specific settings" section.
</P>
<P>(1) Change the first line of Makefile.foo to list the word "foo" after
the "#", and whatever other options you set. This is the line you
will see if you just type "make".
</P>
<P>(3) The "compiler/linker settings" section lists compiler and linker
settings for your C++ compiler, including optimization flags. You can
use g++, the open-source GNU compiler, which is available on all Unix
systems. You can also use mpicc which will typically be available if
MPI is installed on your system, though you should check which actual
compiler it wraps. Vendor compilers often produce faster code. On
boxes with Intel CPUs, we suggest using the free Intel icc compiler,
which you can download from <A HREF = "http://www.intel.com/software/products/noncom">Intel's compiler site</A>.
</P>
<P>If building a C++ code on your machine requires additional libraries,
then you should list them as part of the LIB variable.
</P>
<P>The DEPFLAGS setting is what triggers the C++ compiler to create a
dependency list for a source file. This speeds re-compilation when
source (*.cpp) or header (*.h) files are edited. Some compilers do
not support dependency file creation, or may use a different switch
than -D. GNU g++ works with -D. If your compiler can't create
dependency files (a long list of errors involving *.d files), then
you'll need to create a Makefile.foo patterned after Makefile.storm,
which uses different rules that do not involve dependency files.
</P>
<P>(3) The "system-specific settings" section has 4 parts.
</P>
<P>(3.a) The LMP_INC variable is used to include options that turn on
system-dependent ifdefs within the LAMMPS code. The settings
that are currently recogized are:
</P>
<UL><LI>-DLAMMPS_GZIP
<LI>-DPACK_ARRAY
<LI>-DPACK_POINTER
<LI>-DPACK_MEMCPY
<LI>-DLAMMPS_XDR
<LI>-DLAMMPS_JPEG
</UL>
<P>The read_data and dump commands will read/write gzipped files if you
compile with -DLAMMPS_GZIP. It requires that your Unix support the
"popen" command.
</P>
<P>Using one of the -DPACK_ARRAY, -DPACK_POINTER, and -DPACK_MEMCPY
options can make for faster parallel FFTs (in the PPPM solver) on some
platforms. The -DPACK_ARRAY setting is the default. See the
<A HREF = "kspace_style.html">kspace_style</A> command for info about PPPM. See
section (3.c) below for info about building LAMMPS with an FFT
library.
</P>
<P>If you use -DLAMMPS_XDR, the build will include XDR compatibility
files for doing particle dumps in XTC format. This is only necessary
if your platform does have its own XDR files available. See the
Restrictions section of the <A HREF = "dump.html">dump</A> command for details.
</P>
<P>If you use -DLAMMPS_JPEG, the <A HREF = "dump.html">dump image</A> command will be
able to write out JPEG image files. If not, it will only be able to
write out text-based PPM image files. For JPEG files, you must also
link LAMMPS with a JPEG library. See section (3.d) below for more
details on this.
</P>
<P>(3.b) The 3 MPI variables are used to specify an MPI library to build
LAMMPS with.
</P>
<P>If you want LAMMPS to run in parallel, you must have an MPI library
installed on your platform. If you use an MPI-wrapped compiler, such
as "mpicc" to build LAMMPS, you can probably leave these 3 variables
blank. If you do not use "mpicc" as your compiler/linker, then you
need to specify where the mpi.h file (MPI_INC) and the MPI library
(MPI_PATH) is found and its name (MPI_LIB).
</P>
<P>If you are installing MPI yourself, we recommend Argonne's MPICH 1.2
or 2.0 or OpenMPI. MPICH can be downloaded from the <A HREF = "http://www-unix.mcs.anl.gov/mpi">Argonne MPI
site</A>. OpenMPI can be downloaded the
<A HREF = "http://www.open-mpi.org">OpenMPI site</A>. LAM MPI should also work. If
you are running on a big parallel platform, your system people or the
vendor should have already installed a version of MPI, which will be
faster than MPICH or OpenMPI or LAM, so find out how to build and link
with it. If you use MPICH or OpenMPI or LAM, you will have to
configure and build it for your platform. The MPI configure script
should have compiler options to enable you to use the same compiler
you are using for the LAMMPS build, which can avoid problems that can
arise when linking LAMMPS to the MPI library.
</P>
<P>If you just want LAMMPS to run on a single processor, you can use the
STUBS library in place of MPI, since you don't need a true MPI library
installed on your system. See the Makefile.serial file for how to
specify the 3 MPI variables. You will also need to build the STUBS
library for your platform before making LAMMPS itself. From the STUBS
dir, type "make" and it will hopefully create a libmpi.a suitable for
linking to LAMMPS. If this build fails, you will need to edit the
STUBS/Makefile for your platform.
</P>
<P>The file STUBS/mpi.cpp has a CPU timer function MPI_Wtime() that calls
gettimeofday() . If your system doesn't support gettimeofday() ,
you'll need to insert code to call another timer. Note that the
ANSI-standard function clock() rolls over after an hour or so, and is
therefore insufficient for timing long LAMMPS simulations.
</P>
<P>(3.c) The 3 FFT variables are used to specify an FFT library which
LAMMPS uses when using the particle-particle particle-mesh (PPPM)
option in LAMMPS for long-range Coulombics via the
<A HREF = "kspace_style.html">kspace_style</A> command.
</P>
<P>To use this option, you must have a 1d FFT library installed on your
platform. This is specified by a switch of the form -DFFT_XXX where
XXX = INTEL, DEC, SGI, SCSL, or FFTW. All but the last one are native
vendor-provided libraries. FFTW is a fast, portable library that
should work on any platform. You can download it from
<A HREF = "http://www.fftw.org">www.fftw.org</A>. Use version 2.1.X, not the newer
3.0.X. Building FFTW for your box should be as simple as ./configure;
make. Whichever FFT library you have on your platform, you'll need to
set the appropriate FFT_INC, FFT_PATH, and FFT_LIB variables in
Makefile.foo, so the compiler and linker can find it.
</P>
<P>If you examine src/fft3d.c and src.fft3d.h you'll see it's possible to
add other vendor FFT libraries via #ifdef statements in the
appropriate places. If you successfully add a new FFT option, like
-DFFT_IBM, please send the LAMMPS developers an email; we'd like to
add it to LAMMPS.
</P>
<P>If you don't plan to use PPPM, you don't need an FFT library. In this
case you can set FFT_INC to -DFFT_NONE and leave the other 2 FFT
variables blank. Or you can exclude the KSPACE package when you build
LAMMPS (see below).
</P>
<P>(3.d) The 3 JPG variables are used to specify a JPEG library which
LAMMPS uses when writing a JPEG file via the <A HREF = "dump_image.html">dump
image</A> command. These can be left blank if you are
not using the -DLAMMPS_JPEG switch discussed above in section (3.a).
</P>
<P>A standard JPEG library usually goes by the name libjpeg.a and has an
associated header file jpeglib.h. Whichever JPEG library you have on
your platform, you'll need to set the appropriate JPG_INC, JPG_PATH,
and JPG_LIB variables in Makefile.foo so that the compiler and linker
can find it.
</P>
<P>(3.e) The several SYSLIB and SYSPATH variables can be ignored unless
you are building LAMMPS with one or more of the LAMMPS packages that
require these extra system libraries. The names of these packages are
the prefixes on the SYSLIB and SYSPATH variables. See the <A HREF = "#2_3_4">section
below</A> for more details. The SYSLIB variables list the system
libraries. The SYSPATH variables are where they are located on your
machine, which is typically only needed if they are in some
non-standard place, that is not in your library search path.
</P>
<P>That's it. Once you have a correct Makefile.foo and you have
pre-built any other libraries it will use (e.g. MPI, FFT, package
libraries), all you need to do from the src directory is type one of
these 2 commands:
</P>
<PRE>make foo
gmake foo
</PRE>
<P>You should get the executable lmp_foo when the build is complete.
</P>
<HR>
<A NAME = "2_2_5"></A><B><I>Additional build tips:</I></B>
<P>(1) Building LAMMPS for multiple platforms.
</P>
<P>You can make LAMMPS for multiple platforms from the same src
directory. Each target creates its own object sub-directory called
Obj_name where it stores the system-specific *.o files.
</P>
<P>(2) Cleaning up.
</P>
<P>Typing "make clean-all" or "make clean-foo" will delete *.o object
files created when LAMMPS is built, for either all builds or for a
particular machine.
</P>
-<P>(3) Building for a Mac.
-</P>
+<HR>
+
+<A NAME = "2_2_6"></A><B><I>Building for a Mac:</I></B>
+
<P>OS X is BSD Unix, so it should just work. See the Makefile.mac file.
</P>
-<P>(4) Building for MicroSoft Windows.
-</P>
-<P>The LAMMPS download page has an option to download a pre-built Windows
-exeutable. See below for instructions for running this executable on
-a Windows box.
+<HR>
+
+<A NAME = "2_2_7"></A><B><I>Building for Windows:</I></B>
+
+<P>The LAMMPS download page has an option to download both a serial and
+parallel pre-built Windows exeutable. See the <A HREF = "#2_5">Running LAMMPS</A>
+section for instructions for running these executables on a Windows
+box.
</P>
<P>If the pre-built executable doesn't have the options you want, then
-you should be able to build LAMMPS from source files on a Windows box.
-I've never done this, but LAMMPS is just standard C++ with MPI and FFT
-calls. You can use cygwin to build LAMMPS with a Unix make; see
-Makefile.cygwin. Or you should be able to pull all the source files
-into Visual C++ (ugh) or some similar development environment and
-build it. In the src/MAKE/Windows directory are some notes from users
-on how they built LAMMPS under Windows, so you can look at their
-instructions for tips. Good luck - we can't help you on this one.
+you can build LAMMPS from its source files on a Windows box. One way
+to do this is install and use cygwin to build LAMMPS with a standard
+Linus make, just as you would on any Linux box; see
+src/MAKE/Makefile.cygwin.
+</P>
+<P>There is a also a src/WINDOWS directory that contains project files
+for Microsoft Visual Studio 2005, which should also work with later
+versions of VS. That directory contains a README.txt file which
+provides instructions for building LAMMPS from source code using
+Visual Studio that are hopefully easy to follow for Windows and VS
+users.
+</P>
+<P>Four VS project options are provided. The first includes the default
+packages (MANYBODY, MOLECULE, and KSPACE). The second includes all
+standard packages (except GPU, MEAM, and REAX which are not yet
+included because they require NVIDIA or Fortran compilation). The
+third includes all standard packages (with the exceptions) and some
+user packages. The included user packages are USER-EFF, USER-CG-CMM,
+and USER-REAXC. The fourth project includes the USER-AWPMD package.
</P>
<P>(5) Changing the size limits in src/lmptype.h
</P>
<P>If you are running a very large problem (billions of atoms or more)
and get a run-time error about the system being too big, either on a
per-processor basis or in total size, then you may need to change one
or more settings in src/lmptype.h and re-compile LAMMPS.
</P>
<P>As the documentation in that file explains, you have basically
two choices to make:
</P>
<UL><LI>set the data type size of integer atom IDs to 4 or 8 bytes
<LI>set the data type size of integers that store the total system size to 4 or 8 bytes
</UL>
<P>The default for atom IDs is 4-byte integers since there is a memory
and communication cost for 8-byte integers. Non-molecular problems do
not need atom IDs so this does not restrict their size. Molecular
problems (which use IDs to define molecular topology), are limited to
about 2 billion atoms (2^31) with 4-byte IDs. With 8-byte IDs they
are effectively unlimited in size (2^63).
</P>
<P>The default for total system size quantities (like the number of atoms
or timesteps) is 8-byte integers by default which is effectively
unlimited in size (2^63). If your system does not support 8-byte
integers, an error will be generated, and you will need to set
"bigint" to 4-byte integers. This restricts your total system size to
about 2 billion atoms or timesteps (2^31).
</P>
<P>Note that in src/lmptype.h there are also settings for the MPI data
types associated with the integers that store atom IDs and total
system sizes, which need to be set consistent with the associated C
data types.
</P>
<P>In all cases, the size of problem that can be run on a per-processor
basis is limited by 4-byte integer storage to about 2 billion atoms
per processor (2^31), which should not normally be a restriction since
such a problem would have a huge per-processor memory footprint due to
neighbor lists and would run very slowly in terms of CPU
secs/timestep.
</P>
<HR>
<H4><A NAME = "2_3"></A>2.3 Making LAMMPS with optional packages
</H4>
<P>This section has the following sub-sections:
</P>
<UL><LI><A HREF = "#2_3_1">Package basics</A>
<LI><A HREF = "#2_3_2">Including/excluding packages</A>
<LI><A HREF = "#2_3_3">Packages that require extra LAMMPS libraries</A>
<LI><A HREF = "#2_3_4">Additional Makefile settings for extra libraries</A>
</UL>
<HR>
<A NAME = "2_3_1"></A><B><I>Package basics:</I></B>
<P>The source code for LAMMPS is structured as a large set of core files
which are always included, plus optional packages. Packages are
groups of files that enable a specific set of features. For example,
force fields for molecular systems or granular systems are in
packages. You can see the list of all packages by typing "make
package".
</P>
<P>The current list of standard packages is as follows:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >asphere </TD><TD > aspherical particles and force fields</TD></TR>
<TR><TD >class2 </TD><TD > class 2 force fields</TD></TR>
<TR><TD >colloid </TD><TD > colloidal particle force fields</TD></TR>
<TR><TD >dipole </TD><TD > point dipole particles and force fields</TD></TR>
<TR><TD >dsmc </TD><TD > Direct Simulation Monte Carlo (DMSC) pair style</TD></TR>
<TR><TD >gpu </TD><TD > GPU-enabled force field styles</TD></TR>
<TR><TD >granular </TD><TD > force fields and boundary conditions for granular systems</TD></TR>
<TR><TD >kspace </TD><TD > long-range Ewald and particle-mesh (PPPM) solvers</TD></TR>
<TR><TD >manybody </TD><TD > metal, 3-body, bond-order potentials</TD></TR>
<TR><TD >meam </TD><TD > modified embedded atom method (MEAM) potential</TD></TR>
<TR><TD >molecule </TD><TD > force fields for molecular systems</TD></TR>
<TR><TD >opt </TD><TD > optimized versions of a few pair potentials</TD></TR>
<TR><TD >peri </TD><TD > Peridynamics model and potential</TD></TR>
<TR><TD >poems </TD><TD > coupled rigid body motion</TD></TR>
<TR><TD >reax </TD><TD > ReaxFF potential</TD></TR>
<TR><TD >replica </TD><TD > multi-replica methods</TD></TR>
<TR><TD >shock </TD><TD > methods for MD simulations of shock loading</TD></TR>
<TR><TD >srd </TD><TD > stochastic rotation dynamics (SRD)</TD></TR>
<TR><TD >xtc </TD><TD > dump atom snapshots in XTC format
</TD></TR></TABLE></DIV>
<P>There are also user-contributed packages which may be as simple as a
single additional file or many files grouped together which add a
specific functionality to the code.
</P>
<P>The difference between a <I>standard</I> package versus a <I>user</I> package is
as follows.
</P>
<P>Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means we will answer questions about them, debug and fix them if
necessary, and keep them compatible with future changes to LAMMPS.
</P>
<P>User packages don't necessarily meet these requirements. If you have
problems using a feature provided in a user package, you will likely
need to contact the contributor directly to get help. Information on
how to submit additions you make to LAMMPS as a user-contributed
package is given in <A HREF = "Section_modify.html#package">this section</A> of the
documentation.
</P>
<HR>
<A NAME = "2_3_2"></A><B><I>Including/excluding packages:</I></B>
<P>To use or not use a package you must be include or exclude it before
LAMMPS is built.
</P>
<P>Some packages have individual files that depend on other packages
being included, but LAMMPS checks for this and does the right thing.
I.e. individual files are only included if their dependencies are
already included. Likewise, if a package is excluded, other files
dependent on that package are also excluded.
</P>
<P>The reason to exclude packages is if you will never run certain kinds
of simulations. This will keep you from having to build auxiliary
libraries (see below) and will produce a smaller executable which may
run a bit faster.
</P>
<P>By default, LAMMPS includes only the "kspace", "manybody", and
"molecule" packages.
</P>
<P>Packages are included or excluded by typing "make yes-name" or "make
no-name", where "name" is the name of the package. You can also type
"make yes-standard", "make no-standard", "make yes-user", "make
no-user", "make yes-all" or "make no-all" to include/exclude various
-sets of packages. Type "make package" to see the various options.
+sets of packages. Type "make package" to see the all of the
+package-related make options.
</P>
<P>IMPORTANT NOTE: These make commands work by simply moving files back
and forth between the main src directory and sub-directories with the
package name, so that the files are seen or not seen when LAMMPS is
built. After you have included or excluded a package, you must
re-build LAMMPS.
</P>
-<P>Additional make options exist to help manage LAMMPS files that exist
+<P>Additional package-related make options exist to help manage LAMMPS
+files that exist
in both the src directory and in package sub-directories. You do not
normally need to use these commands unless you are editing LAMMPS
files or have downloaded a patch from the LAMMPS WWW site.
</P>
<P>Typing "make package-update" will overwrite src files with files from
-the package directories if the package has been included. It should
+the package sub-directories if the package has been included. It should
be used after a patch is installed, since patches only update the
-master package version of a file. Typing "make package-overwrite"
-will overwrite files in the package directories with src files.
-Typing "make package-check" will list differences between src and
-package versions of the same files. Again, type "make package" to see
-the various options.
+files in the package sub-directory, but not the src files.
+Typing "make package-overwrite"
+will overwrite files in the package sub-directories with src files.
+</P>
+<P>Typing "make package-status" will show which packages are currently
+included. Of those that are included, it will list files that
+are different in the src directory and package sub-directory.
+Typing "make package-diff" lists all differences between these files.
+Again, type "make package" to see all of the
+package-related make options.
</P>
<HR>
<A NAME = "2_3_3"></A><B><I>Packages that require extra LAMMPS libraries:</I></B>
<P>A few standard or user packages require that additional libraries be
compiled first, which LAMMPS will link to when it builds. The source
code for these libraries is included in the LAMMPS distribution under
the "lib" directory. Look at the README files in the lib directories
(e.g. lib/reax/README) for instructions on how to build each library.
</P>
<P>IMPORTANT NOTE: If you are including a package in your LAMMPS build
that uses one of these libraries, then you must build the library
BEFORE building LAMMPS itself, since the LAMMPS build will attempt to
link with the library file.
</P>
<P>Here is a bit of information about each library:
</P>
<P>The "atc" library in lib/atc is used by the user-atc package. It
provides continuum field estimation and molecular dynamics-finite
element coupling methods. It was written by Reese Jones, Jeremy
Templeton and Jonathan Zimmerman at Sandia.
</P>
<P>The "cuda" library in lib/cuda is used by the user-cuda package. It
was written by Christian Trott at U of Technology Ilmenau in Germany.
It contains code to enable portions of LAMMPS to run on NVIDIA GPUs
associated with your CPUs. Currently, only NVIDIA GPUs are supported.
Building this library requires NVIDIA Cuda tools to be installed on
your system. See <A HREF = "Section_accelerate.html#10_3">this section</A> of the
manual for more information about using this package effectively and
how it differs from the gpu package.
</P>
<P>The "gpu" library in lib/gpu is used by the gpu package. It was
written by Mike Brown at ORNL. It contains code to enable portions of
LAMMPS to run on GPUs associated with your CPUs. Currently, only
NVIDIA GPUs are supported, but eventually this may be extended to
OpenCL. Building this library requires NVIDIA Cuda tools to be
installed on your system. See <A HREF = "Section_accelerate.html#10_2">this
section</A> of the manual for more
information about using this package effectively and how it differs
from the user-cuda package.
</P>
<P>The "meam" library in lib/meam is used by the meam package. It was
written by Greg Wagner at Sandia. It computes the modified embedded
atom method potential, which is a generalization of EAM potentials
that can be used to model a wider variety of materials. This MEAM
implementation was written by Greg Wagner at Sandia. It requires a
F90 compiler to build. The C++ to FORTRAN function calls in
pair_meam.cpp assumes that FORTRAN object names are converted to C
object names by appending an underscore character. This is generally
the case, but on machines that do not conform to this convention, you
will need to modify either the C++ code or your compiler settings.
</P>
<P>The "poems" library in lib/poems is used by the poems package. It was
written by Rudra Mukherjee at JPL. It computes the constrained
rigid-body motion of articulated (jointed) multibody systems. POEMS
is distributed by Prof Kurt Anderson's group at Rensselaer Polytechnic
Institute (RPI).
</P>
<P>The "reax" library in lib/reax is used by the reax package. It was
written by Aidan Thompson at Sandia. It computes the Reactive Force
Field (ReaxFF) potential, developed by Adri van Duin in Bill Goddard's
group at CalTech. This implementation in LAMMPS uses many of Adri's
files and was developed by Aidan Thompson at Sandia and Hansohl Cho at
MIT. It requires a F77 or F90 compiler to build. The C++ to FORTRAN
function calls in pair_reax.cpp assume that FORTRAN object names are
converted to C object names by appending an underscore character. This
is generally the case, but on machines that do not conform to this
convention, you will need to modify either the C++ code or your
compiler settings. The name conversion is handled by the preprocessor
macro called FORTRAN in pair_reax_fortran.h. Different definitions of
this macro can be obtained by adding a machine-specific macro
definition to the CCFLAGS variable in your Makefile e.g. -D_IBM. See
pair_reax_fortran.h for more info.
</P>
<P>As described in the README file in each lib directory, each library is
typically built by typing something like
</P>
<PRE>make -f Makefile.g++
</PRE>
<P>in the appropriate directory, e.g. in lib/reax.
</P>
<P>You must use a Makefile that is a match for your system. If one of
the provided Makefiles is not appropriate for your system you will
need to edit or add one. For example, in the case of Fotran-based
libraries, your system must have a Fortran compiler, the settings for
which will be in the Makefile.
</P>
<P>Note that the cuda library, used by the user-cuda package is an
exception. See its README file and <A HREF = "Section_accelerate.html#10_3">this
section</A> of the manual for instructions
on how to build it.
</P>
<HR>
<A NAME = "2_3_4"></A><B><I>Additional Makefile settings for extra libraries:</I></B>
<P>After the desired library or libraries are built, and the package has
been included, you can build LAMMPS itself. For example, from the
lammps/src directory you would type this, to build LAMMPS with ReaxFF.
Note that as discussed in the preceding section, the package library
itself, namely lib/reax/libreax.a, must already have been built, for
the LAMMPS build to be successful.
</P>
<PRE>make yes-reax
make g++
</PRE>
<P>Also note that simply building the library is not sufficient to use it
from LAMMPS. As in this example, you must also include the package
that uses and wraps the library before you build LAMMPS itself.
</P>
<P>As discussed in point (3.e) of <A HREF = "#2_2_4">this section</A> above, there are
settings in the low-level Makefile that specify additional system
libraries needed by some of the LAMMPS add-on libraries. These are
the settings you must specify correctly in your low-level Makefile in
lammps/src/MAKE, such as Makefile.foo:
</P>
<P>To use the gpu package and library, the settings for gpu_SYSLIB and
gpu_SYSPATH must be correct. These are specific to the NVIDIA CUDA
software which must be installed on your system.
</P>
<P>To use the meam or reax packages and their libraries which are Fortran
based, the settings for meam_SYSLIB, reax_SYSLIB, meam_SYSPATH, and
reax_SYSPATH must be correct. This is so that the C++ compiler can
perform a cross-language link using the appropriate system Fortran
libraries.
</P>
<P>To use the user-atc package and atc library, the settings for
user-atc_SYSLIB and user-atc_SYSPATH must be correct. This is so that
the appropriate BLAS and LAPACK libs, used by the user-atc library,
can be found.
</P>
<HR>
<H4><A NAME = "2_4"></A>2.4 Building LAMMPS as a library
</H4>
<P>LAMMPS can be built as a library, which can then be called from
another application or a scripting language. See <A HREF = "Section_howto.html#4_10">this
section</A> for more info on coupling LAMMPS to
other codes. Building LAMMPS as a library is done by typing
</P>
<PRE>make makelib
make -f Makefile.lib foo
</PRE>
<P>where foo is the machine name. The first "make" command will create a
current Makefile.lib with all the file names in your src dir. The 2nd
"make" command will use it to build LAMMPS as a library. This
requires that Makefile.foo have a library target (lib) and
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
for an example. The build will create the file liblmp_foo.a which
another application can link to.
</P>
<P>When used from a C++ program, the library allows one or more LAMMPS
objects to be instantiated. All of LAMMPS is wrapped in a LAMMPS_NS
namespace; you can safely use any of its classes and methods from
within your application code, as needed.
</P>
<P>When used from a C or Fortran program or a scripting language, the
library has a simple function-style interface, provided in
src/library.cpp and src/library.h.
</P>
<P>See the sample codes couple/simple/simple.cpp and simple.c as examples
of C++ and C codes that invoke LAMMPS thru its library interface.
There are other examples as well in the couple directory which are
discussed in <A HREF = "Section_howto.html#4_10">this section</A> of the manual.
See <A HREF = "Section_python.html">this section</A> of the manual for a description
of the Python wrapper provided with LAMMPS that operates through the
LAMMPS library interface.
</P>
<P>The files src/library.cpp and library.h contain the C-style interface
to LAMMPS. See <A HREF = "Section_howto.html#4_19">this section</A> of the manual
for a description of the interface and how to extend it for your
needs.
</P>
<HR>
<H4><A NAME = "2_5"></A>2.5 Running LAMMPS
</H4>
<P>By default, LAMMPS runs by reading commands from stdin; e.g. lmp_linux
< in.file. This means you first create an input script (e.g. in.file)
containing the desired commands. <A HREF = "Section_commands.html">This section</A>
describes how input scripts are structured and what commands they
contain.
</P>
<P>You can test LAMMPS on any of the sample inputs provided in the
examples or bench directory. Input scripts are named in.* and sample
outputs are named log.*.name.P where name is a machine and P is the
number of processors it was run on.
</P>
<P>Here is how you might run a standard Lennard-Jones benchmark on a
Linux box, using mpirun to launch a parallel job:
</P>
<PRE>cd src
make linux
cp lmp_linux ../bench
cd ../bench
mpirun -np 4 lmp_linux < in.lj
</PRE>
<P>See <A HREF = "http://lammps.sandia.gov/bench.html">this page</A> for timings for this and the other benchmarks
on various platforms.
</P>
<HR>
-<P>On a Windows machine, you can skip making LAMMPS and simply download
-an executable. But note that not all packages are available.
-The following packages are available: asphere, class2, colloid, dipole,
-dsmc, granular, kspace, manybody, molecule, peri, poems, replica, shock,
-user-ackland, user-cd-eam, user-cg-cmm, user-ewaldn, user-smd. But these
-packages are not available: gpu, meam, opt, reax, xtc, user-atc, user-imd.
+<P>On a Windows box, you can skip making LAMMPS and simply download an
+executable, as described above. though the pre-packaged executables
+make only certain packages available.
</P>
-<P>To run the LAMMPS executable on a Windows machine, first decide whether
-you want to download the non-MPI (serial) or the MPI (parallel) version
-of the executable. Download and save the version you have chosen.
+<P>To run a LAMMPS executable on a Windows machine, first decide whether
+you want to download the non-MPI (serial) or the MPI (parallel)
+version of the executable. Download and save the version you have
+chosen.
</P>
<P>For the non-MPI version, follow these steps:
</P>
<UL><LI>Get a command prompt by going to Start->Run... ,
then typing "cmd".
<LI>Move to the directory where you have saved lmp_win_no-mpi.exe
(e.g. by typing: cd "Documents").
<LI>At the command prompt, type "lmp_win_no-mpi -in in.lj", replacing in.lj
with the name of your LAMMPS input script.
</UL>
<P>For the MPI version, which allows you to run LAMMPS under Windows on
multiple processors, follow these steps:
</P>
<UL><LI>Download and install
<A HREF = "http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads">MPICH2</A>
for Windows.
<LI>You'll need to use the mpiexec.exe and smpd.exe files from the MPICH2 package. Put them in
same directory (or path) as the LAMMPS Windows executable.
<LI>Get a command prompt by going to Start->Run... ,
then typing "cmd".
<LI>Move to the directory where you have saved lmp_win_mpi.exe
(e.g. by typing: cd "Documents").
<LI>Then type something like this: "mpiexec -np 4 -localonly lmp_win_mpi -in in.lj",
replacing in.lj with the name of your LAMMPS input script.
<LI>Note that you may need to provide smpd with a passphrase --- it doesn't matter what you
type.
<LI>In this mode, output may not immediately show up on the screen, so
if your input script takes a long time to execute, you may need to be
patient before the output shows up.
<LI>Alternatively, you can still use this executable to run on a single processor by
typing something like: "lmp_win_mpi -in in.lj".
</UL>
<HR>
<P>The screen output from LAMMPS is described in the next section. As it
runs, LAMMPS also writes a log.lammps file with the same information.
</P>
<P>Note that this sequence of commands copies the LAMMPS executable
(lmp_linux) to the directory with the input files. This may not be
necessary, but some versions of MPI reset the working directory to
where the executable is, rather than leave it as the directory where
you launch mpirun from (if you launch lmp_linux on its own and not
under mpirun). If that happens, LAMMPS will look for additional input
files and write its output files to the executable directory, rather
than your working directory, which is probably not what you want.
</P>
<P>If LAMMPS encounters errors in the input script or while running a
simulation it will print an ERROR message and stop or a WARNING
message and continue. See <A HREF = "Section_errors.html">this section</A> for a
discussion of the various kinds of errors LAMMPS can or can't detect,
a list of all ERROR and WARNING messages, and what to do about them.
</P>
<P>LAMMPS can run a problem on any number of processors, including a
single processor. In theory you should get identical answers on any
number of processors and on any machine. In practice, numerical
round-off can cause slight differences and eventual divergence of
molecular dynamics phase space trajectories.
</P>
<P>LAMMPS can run as large a problem as will fit in the physical memory
of one or more processors. If you run out of memory, you must run on
more processors or setup a smaller problem.
</P>
<HR>
<H4><A NAME = "2_6"></A>2.6 Command-line options
</H4>
<P>At run time, LAMMPS recognizes several optional command-line switches
which may be used in any order. Either the full word or a one-letter
abbreviation can be used:
</P>
<UL><LI>-c or -cuda
<LI>-e or -echo
<LI>-i or -in
<LI>-l or -log
<LI>-p or -partition
+<LI>-pl or -plog
+<LI>-ps or -pscreen
<LI>-sc or -screen
<LI>-sf or -suffix
<LI>-v or -var
</UL>
<P>For example, lmp_ibm might be launched as follows:
</P>
<PRE>mpirun -np 16 lmp_ibm -v f tmp.out -l my.log -sc none < in.alloy
mpirun -np 16 lmp_ibm -var f tmp.out -log my.log -screen none < in.alloy
</PRE>
<P>Here are the details on the options:
</P>
<PRE>-cuda on/off
</PRE>
<P>Explicitly enable or disable CUDA support, as provided by the
USER-CUDA package. If LAMMPS is built with this package, as described
above in <A HREF = "#2_3">Section 2.3</A>, then by default LAMMPS will run in CUDA
mode. If this switch is set to "off", then it will not, even if it
was built with the USER-CUDA package, which means you can run standard
LAMMPS or with the GPU package for testing or benchmarking purposes.
The only reason to set the switch to "on", is to check if LAMMPS was
built with the USER-CUDA package, since an error will be generated if
it was not.
</P>
<PRE>-echo style
</PRE>
<P>Set the style of command echoing. The style can be <I>none</I> or <I>screen</I>
or <I>log</I> or <I>both</I>. Depending on the style, each command read from
the input script will be echoed to the screen and/or logfile. This
can be useful to figure out which line of your script is causing an
input error. The default value is <I>log</I>. The echo style can also be
set by using the <A HREF = "echo.html">echo</A> command in the input script itself.
</P>
<PRE>-in file
</PRE>
<P>Specify a file to use as an input script. This is an optional switch
when running LAMMPS in one-partition mode. If it is not specified,
LAMMPS reads its input script from stdin - e.g. lmp_linux < in.run.
This is a required switch when running LAMMPS in multi-partition mode,
since multiple processors cannot all read from stdin.
</P>
<PRE>-log file
</PRE>
<P>Specify a log file for LAMMPS to write status information to. In
one-partition mode, if the switch is not used, LAMMPS writes to the
file log.lammps. If this switch is used, LAMMPS writes to the
specified file. In multi-partition mode, if the switch is not used, a
log.lammps file is created with hi-level status information. Each
partition also writes to a log.lammps.N file where N is the partition
ID. If the switch is specified in multi-partition mode, the hi-level
logfile is named "file" and each partition also logs information to a
file.N. For both one-partition and multi-partition mode, if the
specified file is "none", then no log files are created. Using a
<A HREF = "log.html">log</A> command in the input script will override this setting.
+Option -plog will override the name of the partition log files file.N.
</P>
<PRE>-partition 8x2 4 5 ...
</PRE>
<P>Invoke LAMMPS in multi-partition mode. When LAMMPS is run on P
processors and this switch is not used, LAMMPS runs in one partition,
i.e. all P processors run a single simulation. If this switch is
used, the P processors are split into separate partitions and each
partition runs its own simulation. The arguments to the switch
specify the number of processors in each partition. Arguments of the
form MxN mean M partitions, each with N processors. Arguments of the
form N mean a single partition with N processors. The sum of
processors in all partitions must equal P. Thus the command
"-partition 8x2 4 5" has 10 partitions and runs on a total of 25
processors.
</P>
<P>Note that with MPI installed on a machine (e.g. your desktop), you can
run on more (virtual) processors than you have physical processors.
This can be useful for running <A HREF = "Section_howto.html#4_5">multi-replica
simulations</A>, on one or a few processors.
</P>
<P>The input script specifies what simulation is run on which partition;
see the <A HREF = "variable.html">variable</A> and <A HREF = "next.html">next</A> commands. This
<A HREF = "Section_howto.html#4_4">howto section</A> gives examples of how to use
these commands in this way. Simulations running on different
partitions can also communicate with each other; see the
<A HREF = "temper.html">temper</A> command.
</P>
+<PRE>-plog file
+</PRE>
+<P>Specify the base name for the partition log files,
+so partition N writes log information to file.N. If file is
+none, then no partition log files are created.
+This overrides the
+filename specified in the -log command-line option.
+This option is useful when working with large numbers of partitions,
+allowing the partition log files to be suppressed (-plog none) or
+placed in a sub-directory (-plog replica_files/log.lammps)
+If this option is not used
+the log file for partition N is log.lammps.N or whatever is specified by
+the -log command-line option.
+</P>
+<PRE>-pscreen file
+</PRE>
+<P>Specify the base name for the
+partition screen file, so partition N writes
+screen information to file.N. If file is
+none, then no partition screen files are created.
+This overrides the
+filename specified in the -screen command-line option.
+This option is useful when working with large numbers of partitions,
+allowing the partition screen files to be suppressed (-pscreen none) or
+placed in a sub-directory (-pscreen replica_files/screen)
+If this option is not used
+the screen file for partition N is screen.N or whatever is specified by
+the -screen command-line option.
+</P>
<PRE>-screen file
</PRE>
<P>Specify a file for LAMMPS to write its screen information to. In
one-partition mode, if the switch is not used, LAMMPS writes to the
screen. If this switch is used, LAMMPS writes to the specified file
instead and you will see no screen output. In multi-partition mode,
if the switch is not used, hi-level status information is written to
the screen. Each partition also writes to a screen.N file where N is
the partition ID. If the switch is specified in multi-partition mode,
the hi-level screen dump is named "file" and each partition also
writes screen information to a file.N. For both one-partition and
multi-partition mode, if the specified file is "none", then no screen
-output is performed.
+output is performed. Option -pscreen will override the name of the
+partition screen files file.N.
</P>
<PRE>-suffix style
</PRE>
<P>Use variants of various styles if they exist. The specified style can
be <I>opt</I> or <I>gpu</I> or <I>cuda</I>. These refer to optional packages that
LAMMPS can be built with, as described above in <A HREF = "#2_3">Section 2.3</A>.
The "opt" style corrsponds to the OPT package, the "gpu" style to the
GPU package, and the "cuda" style to the USER-CUDA package.
</P>
<P>As an example, all of the packages provide a <A HREF = "pair_lj.html">pair_style
lj/cut</A> variant, with style names lj/cut/opt or
lj/cut/gpu or lj/cut/cuda. A variant styles can be specified
explicitly in your input script, e.g. pair_style lj/cut/gpu. If the
-suffix switch is used, you do not need to modify your input script.
The specified suffix (opt,gpu,cuda) is automatically appended whenever
your input script command creates a new <A HREF = "atom_style.html">atom</A>,
<A HREF = "pair_style.html">pair</A>, <A HREF = "fix.html">fix</A>, <A HREF = "compute.html">compute</A>, or
<A HREF = "run_style.html">run</A> style. atom, pair, fix, compute, or integrate
style. If the variant version does not exist, the standard version is
created.
</P>
<P>The <A HREF = "suffix.html">suffix</A> command can also set a suffix and it can also
turn off/on any suffix setting made via the command line.
</P>
<PRE>-var name value1 value2 ...
</PRE>
<P>Specify a variable that will be defined for substitution purposes when
the input script is read. "Name" is the variable name which can be a
single character (referenced as $x in the input script) or a full
string (referenced as ${abc}). An <A HREF = "variable.html">index-style
variable</A> will be created and populated with the
subsequent values, e.g. a set of filenames. Using this command-line
option is equivalent to putting the line "variable name index value1
value2 ..." at the beginning of the input script. Defining an index
variable as a command-line argument overrides any setting for the same
index variable in the input script, since index variables cannot be
re-defined. See the <A HREF = "variable.html">variable</A> command for more info on
defining index and other kinds of variables and <A HREF = "Section_commands.html#3_2">this
section</A> for more info on using variables in
input scripts.
</P>
<HR>
<H4><A NAME = "2_7"></A>2.7 LAMMPS screen output
</H4>
<P>As LAMMPS reads an input script, it prints information to both the
screen and a log file about significant actions it takes to setup a
simulation. When the simulation is ready to begin, LAMMPS performs
various initializations and prints the amount of memory (in MBytes per
processor) that the simulation requires. It also prints details of
the initial thermodynamic state of the system. During the run itself,
thermodynamic information is printed periodically, every few
timesteps. When the run concludes, LAMMPS prints the final
thermodynamic state and a total run time for the simulation. It then
appends statistics about the CPU time and storage requirements for the
simulation. An example set of statistics is shown here:
</P>
<PRE>Loop time of 49.002 on 2 procs for 2004 atoms
</PRE>
<PRE>Pair time (%) = 35.0495 (71.5267)
Bond time (%) = 0.092046 (0.187841)
Kspce time (%) = 6.42073 (13.103)
Neigh time (%) = 2.73485 (5.5811)
Comm time (%) = 1.50291 (3.06703)
Outpt time (%) = 0.013799 (0.0281601)
Other time (%) = 2.13669 (4.36041)
</PRE>
<PRE>Nlocal: 1002 ave, 1015 max, 989 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 8720 ave, 8724 max, 8716 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 354141 ave, 361422 max, 346860 min
Histogram: 1 0 0 0 0 0 0 0 0 1
</PRE>
<PRE>Total # of neighbors = 708282
Ave neighs/atom = 353.434
Ave special neighs/atom = 2.34032
Number of reneighborings = 42
Dangerous reneighborings = 2
</PRE>
<P>The first section gives the breakdown of the CPU run time (in seconds)
into major categories. The second section lists the number of owned
atoms (Nlocal), ghost atoms (Nghost), and pair-wise neighbors stored
per processor. The max and min values give the spread of these values
across processors with a 10-bin histogram showing the distribution.
The total number of histogram counts is equal to the number of
processors.
</P>
<P>The last section gives aggregate statistics for pair-wise neighbors
and special neighbors that LAMMPS keeps track of (see the
<A HREF = "special_bonds.html">special_bonds</A> command). The number of times
neighbor lists were rebuilt during the run is given as well as the
number of potentially "dangerous" rebuilds. If atom movement
triggered neighbor list rebuilding (see the
<A HREF = "neigh_modify.html">neigh_modify</A> command), then dangerous
reneighborings are those that were triggered on the first timestep
atom movement was checked for. If this count is non-zero you may wish
to reduce the delay factor to insure no force interactions are missed
by atoms moving beyond the neighbor skin distance before a rebuild
takes place.
</P>
<P>If an energy minimization was performed via the
<A HREF = "minimize.html">minimize</A> command, additional information is printed,
e.g.
</P>
<PRE>Minimization stats:
E initial, next-to-last, final = -0.895962 -2.94193 -2.94342
Gradient 2-norm init/final= 1920.78 20.9992
Gradient inf-norm init/final= 304.283 9.61216
Iterations = 36
Force evaluations = 177
</PRE>
<P>The first line lists the initial and final energy, as well as the
energy on the next-to-last iteration. The next 2 lines give a measure
of the gradient of the energy (force on all atoms). The 2-norm is the
"length" of this force vector; the inf-norm is the largest component.
The last 2 lines are statistics on how many iterations and
force-evaluations the minimizer required. Multiple force evaluations
are typically done at each iteration to perform a 1d line minimization
in the search direction.
</P>
<P>If a <A HREF = "kspace_style.html">kspace_style</A> long-range Coulombics solve was
performed during the run (PPPM, Ewald), then additional information is
printed, e.g.
</P>
<PRE>FFT time (% of Kspce) = 0.200313 (8.34477)
FFT Gflps 3d 1d-only = 2.31074 9.19989
</PRE>
<P>The first line gives the time spent doing 3d FFTs (4 per timestep) and
the fraction it represents of the total KSpace time (listed above).
Each 3d FFT requires computation (3 sets of 1d FFTs) and communication
(transposes). The total flops performed is 5Nlog_2(N), where N is the
number of points in the 3d grid. The FFTs are timed with and without
the communication and a Gflop rate is computed. The 3d rate is with
communication; the 1d rate is without (just the 1d FFTs). Thus you
can estimate what fraction of your FFT time was spent in
communication, roughly 75% in the example above.
</P>
<HR>
<H4><A NAME = "2_8"></A>2.8 Tips for users of previous LAMMPS versions
</H4>
<P>The current C++ began with a complete rewrite of LAMMPS 2001, which
was written in F90. Features of earlier versions of LAMMPS are listed
in <A HREF = "Section_history.html">this section</A>. The F90 and F77 versions
(2001 and 99) are also freely distributed as open-source codes; check
the <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> for distribution information if you prefer
those versions. The 99 and 2001 versions are no longer under active
development; they do not have all the features of C++ LAMMPS.
</P>
<P>If you are a previous user of LAMMPS 2001, these are the most
significant changes you will notice in C++ LAMMPS:
</P>
<P>(1) The names and arguments of many input script commands have
changed. All commands are now a single word (e.g. read_data instead
of read data).
</P>
<P>(2) All the functionality of LAMMPS 2001 is included in C++ LAMMPS,
but you may need to specify the relevant commands in different ways.
</P>
<P>(3) The format of the data file can be streamlined for some problems.
See the <A HREF = "read_data.html">read_data</A> command for details. The data file
section "Nonbond Coeff" has been renamed to "Pair Coeff" in C++ LAMMPS.
</P>
<P>(4) Binary restart files written by LAMMPS 2001 cannot be read by C++
LAMMPS with a <A HREF = "read_restart.html">read_restart</A> command. This is
because they were output by F90 which writes in a different binary
format than C or C++ writes or reads. Use the <I>restart2data</I> tool
provided with LAMMPS 2001 to convert the 2001 restart file to a text
data file. Then edit the data file as necessary before using the C++
LAMMPS <A HREF = "read_data.html">read_data</A> command to read it in.
</P>
<P>(5) There are numerous small numerical changes in C++ LAMMPS that mean
you will not get identical answers when comparing to a 2001 run.
However, your initial thermodynamic energy and MD trajectory should be
close if you have setup the problem for both codes the same.
</P>
</HTML>
diff --git a/doc/Section_start.txt b/doc/Section_start.txt
index ece44a41a..4946914de 100644
--- a/doc/Section_start.txt
+++ b/doc/Section_start.txt
@@ -1,1068 +1,1125 @@
"Previous Section"_Section_intro.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_commands.html :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
2. Getting Started :h3
This section describes how to build and run LAMMPS, for both new and
experienced users.
2.1 "What's in the LAMMPS distribution"_#2_1
2.2 "Making LAMMPS"_#2_2
2.3 "Making LAMMPS with optional packages"_#2_3
2.4 "Building LAMMPS as a library"_#2_4
2.5 "Running LAMMPS"_#2_5
2.6 "Command-line options"_#2_6
2.7 "Screen output"_#2_7
2.8 "Tips for users of previous versions"_#2_8 :all(b)
:line
2.1 What's in the LAMMPS distribution :h4,link(2_1)
When you download LAMMPS you will need to unzip and untar the
downloaded file with the following commands, after placing the file in
an appropriate directory.
gunzip lammps*.tar.gz
tar xvf lammps*.tar :pre
This will create a LAMMPS directory containing two files and several
sub-directories:
README: text file
LICENSE: the GNU General Public License (GPL)
bench: benchmark problems
couple: code coupling examples, using LAMMPS as a library
doc: documentation
examples: simple test problems
potentials: embedded atom method (EAM) potential files
src: source files
tools: pre- and post-processing tools :tb(s=:)
-If you download the Windows executable from the download page,
+If you download one of the Windows executables from the download page,
then you just get a single file:
lmp_windows.exe :pre
-Skip to the "Running LAMMPS"_#2_5 section, to learn how to launch this
-executable on a Windows box.
+Skip to the "Running LAMMPS"_#2_5 sections for info on how to launch
+these executables on a Windows box.
-The Windows executable also only includes certain packages and
-bug-fixes/upgrades listed on "this
+The Windows executables for serial or parallel only include certain
+packages and bug-fixes/upgrades listed on "this
page"_http://lammps.sandia.gov/bug.html up to a certain date, as
stated on the download page. If you want something with more packages
or that is more current, you'll have to download the source tarball
-and build it yourself, as described in the next section.
+and build it yourself from source code using Microsoft Visual Studio,
+as described in the next section.
:line
2.2 Making LAMMPS :h4,link(2_2)
This section has the following sub-sections:
"Read this first"_#2_2_1
"Building a LAMMPS executable"_#2_2_2
"Common errors that can occur when making LAMMPS"_#2_2_3
"Editing a new low-level Makefile"_#2_2_4
-"Additional build tips"_#2_2_5 :ul
+"Additional build tips"_#2_2_5
+"Building for a Mac"_#2_2_6
+"Building for Windows"_#2_2_7 :ul
:line
[{Read this first:}] :link(2_2_1)
Building LAMMPS can be non-trivial. You will likely need to edit a
makefile, there are compiler options, additional libraries can be used
(MPI, FFT, JPEG), etc. Please read this section carefully. If you
are not comfortable with makefiles, or building codes on a Unix
platform, or running an MPI job on your machine, please find a local
expert to help you. Many compiling, linking, and run problems that
users are not really LAMMPS issues - they are peculiar to the user's
system, compilers, libraries, etc. Such questions are better answered
by a local expert.
If you have a build problem that you are convinced is a LAMMPS issue
(e.g. the compiler complains about a line of LAMMPS source code), then
please send an email to the
"developers"_http://lammps.sandia.gov/authors.html.
If you succeed in building LAMMPS on a new kind of machine, for which
there isn't a similar Makefile for in the src/MAKE directory, send it
to the developers and we'll include it in future LAMMPS releases.
:line
[{Building a LAMMPS executable:}] :link(2_2_2)
The src directory contains the C++ source and header files for LAMMPS.
It also contains a top-level Makefile and a MAKE sub-directory with
low-level Makefile.* files for several machines. From within the src
directory, type "make" or "gmake". You should see a list of available
choices. If one of those is the machine and options you want, you can
type a command like:
make linux
gmake mac :pre
Note that on a multi-processor or multi-core platform you can launch a
parallel make, by using the "-j" switch with the make command, which
will build LAMMPS more quickly.
If you get no errors and an executable like lmp_linux or lmp_mac is
produced, you're done; it's your lucky day.
:line
[{Common errors that can occur when making LAMMPS:}] :link(2_2_3)
(1) If the make command breaks immediately with errors that indicate
it can't find files with a "*" in their names, this can be because
your machine's make doesn't support wildcard expansion in a makefile.
Try gmake instead of make. If that doesn't work, try using a -f
switch with your make command to use Makefile.list which explicitly
lists all the needed files, e.g.
make makelist
make -f Makefile.list linux
gmake -f Makefile.list mac :pre
The first "make" command will create a current Makefile.list with all
the file names in your src dir. The 2nd "make" command (make or
gmake) will use it to build LAMMPS.
(2) Other errors typically occur because the low-level Makefile isn't
setup correctly for your machine. If your platform is named "foo",
you will need to create a Makefile.foo in the MAKE sub-directory. Use
whatever existing file is closest to your platform as a starting
point. See the next section for more instructions.
(3) If you get a link-time error about missing libraries or missing
dependencies, then it can be because:
you are including a package that needs an extra library, but have not pre-built the necessary "package library"_#2_3_3
you are linking to a library that doesn't exist on your system
you are not linking to the necessary system library :ul
The first issue is discussed below. The other two issue mean you need
to edit your low-level Makefile.foo, as discussed in the next
sub-section.
:line
[{Editing a new low-level Makefile.foo:}] :link(2_2_4)
These are the issues you need to address when editing a low-level
Makefile for your machine. The portions of the file you typically
need to edit are the first line, the "compiler/linker settings"
section, and the "system-specific settings" section.
(1) Change the first line of Makefile.foo to list the word "foo" after
the "#", and whatever other options you set. This is the line you
will see if you just type "make".
(3) The "compiler/linker settings" section lists compiler and linker
settings for your C++ compiler, including optimization flags. You can
use g++, the open-source GNU compiler, which is available on all Unix
systems. You can also use mpicc which will typically be available if
MPI is installed on your system, though you should check which actual
compiler it wraps. Vendor compilers often produce faster code. On
boxes with Intel CPUs, we suggest using the free Intel icc compiler,
which you can download from "Intel's compiler site"_intel.
:link(intel,http://www.intel.com/software/products/noncom)
If building a C++ code on your machine requires additional libraries,
then you should list them as part of the LIB variable.
The DEPFLAGS setting is what triggers the C++ compiler to create a
dependency list for a source file. This speeds re-compilation when
source (*.cpp) or header (*.h) files are edited. Some compilers do
not support dependency file creation, or may use a different switch
than -D. GNU g++ works with -D. If your compiler can't create
dependency files (a long list of errors involving *.d files), then
you'll need to create a Makefile.foo patterned after Makefile.storm,
which uses different rules that do not involve dependency files.
(3) The "system-specific settings" section has 4 parts.
(3.a) The LMP_INC variable is used to include options that turn on
system-dependent ifdefs within the LAMMPS code. The settings
that are currently recogized are:
-DLAMMPS_GZIP
-DPACK_ARRAY
-DPACK_POINTER
-DPACK_MEMCPY
-DLAMMPS_XDR
-DLAMMPS_JPEG :ul
The read_data and dump commands will read/write gzipped files if you
compile with -DLAMMPS_GZIP. It requires that your Unix support the
"popen" command.
Using one of the -DPACK_ARRAY, -DPACK_POINTER, and -DPACK_MEMCPY
options can make for faster parallel FFTs (in the PPPM solver) on some
platforms. The -DPACK_ARRAY setting is the default. See the
"kspace_style"_kspace_style.html command for info about PPPM. See
section (3.c) below for info about building LAMMPS with an FFT
library.
If you use -DLAMMPS_XDR, the build will include XDR compatibility
files for doing particle dumps in XTC format. This is only necessary
if your platform does have its own XDR files available. See the
Restrictions section of the "dump"_dump.html command for details.
If you use -DLAMMPS_JPEG, the "dump image"_dump.html command will be
able to write out JPEG image files. If not, it will only be able to
write out text-based PPM image files. For JPEG files, you must also
link LAMMPS with a JPEG library. See section (3.d) below for more
details on this.
(3.b) The 3 MPI variables are used to specify an MPI library to build
LAMMPS with.
If you want LAMMPS to run in parallel, you must have an MPI library
installed on your platform. If you use an MPI-wrapped compiler, such
as "mpicc" to build LAMMPS, you can probably leave these 3 variables
blank. If you do not use "mpicc" as your compiler/linker, then you
need to specify where the mpi.h file (MPI_INC) and the MPI library
(MPI_PATH) is found and its name (MPI_LIB).
If you are installing MPI yourself, we recommend Argonne's MPICH 1.2
or 2.0 or OpenMPI. MPICH can be downloaded from the "Argonne MPI
site"_http://www-unix.mcs.anl.gov/mpi. OpenMPI can be downloaded the
"OpenMPI site"_http://www.open-mpi.org. LAM MPI should also work. If
you are running on a big parallel platform, your system people or the
vendor should have already installed a version of MPI, which will be
faster than MPICH or OpenMPI or LAM, so find out how to build and link
with it. If you use MPICH or OpenMPI or LAM, you will have to
configure and build it for your platform. The MPI configure script
should have compiler options to enable you to use the same compiler
you are using for the LAMMPS build, which can avoid problems that can
arise when linking LAMMPS to the MPI library.
If you just want LAMMPS to run on a single processor, you can use the
STUBS library in place of MPI, since you don't need a true MPI library
installed on your system. See the Makefile.serial file for how to
specify the 3 MPI variables. You will also need to build the STUBS
library for your platform before making LAMMPS itself. From the STUBS
dir, type "make" and it will hopefully create a libmpi.a suitable for
linking to LAMMPS. If this build fails, you will need to edit the
STUBS/Makefile for your platform.
The file STUBS/mpi.cpp has a CPU timer function MPI_Wtime() that calls
gettimeofday() . If your system doesn't support gettimeofday() ,
you'll need to insert code to call another timer. Note that the
ANSI-standard function clock() rolls over after an hour or so, and is
therefore insufficient for timing long LAMMPS simulations.
(3.c) The 3 FFT variables are used to specify an FFT library which
LAMMPS uses when using the particle-particle particle-mesh (PPPM)
option in LAMMPS for long-range Coulombics via the
"kspace_style"_kspace_style.html command.
To use this option, you must have a 1d FFT library installed on your
platform. This is specified by a switch of the form -DFFT_XXX where
XXX = INTEL, DEC, SGI, SCSL, or FFTW. All but the last one are native
vendor-provided libraries. FFTW is a fast, portable library that
should work on any platform. You can download it from
"www.fftw.org"_http://www.fftw.org. Use version 2.1.X, not the newer
3.0.X. Building FFTW for your box should be as simple as ./configure;
make. Whichever FFT library you have on your platform, you'll need to
set the appropriate FFT_INC, FFT_PATH, and FFT_LIB variables in
Makefile.foo, so the compiler and linker can find it.
If you examine src/fft3d.c and src.fft3d.h you'll see it's possible to
add other vendor FFT libraries via #ifdef statements in the
appropriate places. If you successfully add a new FFT option, like
-DFFT_IBM, please send the LAMMPS developers an email; we'd like to
add it to LAMMPS.
If you don't plan to use PPPM, you don't need an FFT library. In this
case you can set FFT_INC to -DFFT_NONE and leave the other 2 FFT
variables blank. Or you can exclude the KSPACE package when you build
LAMMPS (see below).
(3.d) The 3 JPG variables are used to specify a JPEG library which
LAMMPS uses when writing a JPEG file via the "dump
image"_dump_image.html command. These can be left blank if you are
not using the -DLAMMPS_JPEG switch discussed above in section (3.a).
A standard JPEG library usually goes by the name libjpeg.a and has an
associated header file jpeglib.h. Whichever JPEG library you have on
your platform, you'll need to set the appropriate JPG_INC, JPG_PATH,
and JPG_LIB variables in Makefile.foo so that the compiler and linker
can find it.
(3.e) The several SYSLIB and SYSPATH variables can be ignored unless
you are building LAMMPS with one or more of the LAMMPS packages that
require these extra system libraries. The names of these packages are
the prefixes on the SYSLIB and SYSPATH variables. See the "section
below"_#2_3_4 for more details. The SYSLIB variables list the system
libraries. The SYSPATH variables are where they are located on your
machine, which is typically only needed if they are in some
non-standard place, that is not in your library search path.
That's it. Once you have a correct Makefile.foo and you have
pre-built any other libraries it will use (e.g. MPI, FFT, package
libraries), all you need to do from the src directory is type one of
these 2 commands:
make foo
gmake foo :pre
You should get the executable lmp_foo when the build is complete.
:line
[{Additional build tips:}] :link(2_2_5)
(1) Building LAMMPS for multiple platforms.
You can make LAMMPS for multiple platforms from the same src
directory. Each target creates its own object sub-directory called
Obj_name where it stores the system-specific *.o files.
(2) Cleaning up.
Typing "make clean-all" or "make clean-foo" will delete *.o object
files created when LAMMPS is built, for either all builds or for a
particular machine.
-(3) Building for a Mac.
+:line
+
+[{Building for a Mac:}] :link(2_2_6)
OS X is BSD Unix, so it should just work. See the Makefile.mac file.
-(4) Building for MicroSoft Windows.
+:line
+
+[{Building for Windows:}] :link(2_2_7)
-The LAMMPS download page has an option to download a pre-built Windows
-exeutable. See below for instructions for running this executable on
-a Windows box.
+The LAMMPS download page has an option to download both a serial and
+parallel pre-built Windows exeutable. See the "Running LAMMPS"_#2_5
+section for instructions for running these executables on a Windows
+box.
If the pre-built executable doesn't have the options you want, then
-you should be able to build LAMMPS from source files on a Windows box.
-I've never done this, but LAMMPS is just standard C++ with MPI and FFT
-calls. You can use cygwin to build LAMMPS with a Unix make; see
-Makefile.cygwin. Or you should be able to pull all the source files
-into Visual C++ (ugh) or some similar development environment and
-build it. In the src/MAKE/Windows directory are some notes from users
-on how they built LAMMPS under Windows, so you can look at their
-instructions for tips. Good luck - we can't help you on this one.
+you can build LAMMPS from its source files on a Windows box. One way
+to do this is install and use cygwin to build LAMMPS with a standard
+Linus make, just as you would on any Linux box; see
+src/MAKE/Makefile.cygwin.
+
+There is a also a src/WINDOWS directory that contains project files
+for Microsoft Visual Studio 2005, which should also work with later
+versions of VS. That directory contains a README.txt file which
+provides instructions for building LAMMPS from source code using
+Visual Studio that are hopefully easy to follow for Windows and VS
+users.
+
+Four VS project options are provided. The first includes the default
+packages (MANYBODY, MOLECULE, and KSPACE). The second includes all
+standard packages (except GPU, MEAM, and REAX which are not yet
+included because they require NVIDIA or Fortran compilation). The
+third includes all standard packages (with the exceptions) and some
+user packages. The included user packages are USER-EFF, USER-CG-CMM,
+and USER-REAXC. The fourth project includes the USER-AWPMD package.
(5) Changing the size limits in src/lmptype.h
If you are running a very large problem (billions of atoms or more)
and get a run-time error about the system being too big, either on a
per-processor basis or in total size, then you may need to change one
or more settings in src/lmptype.h and re-compile LAMMPS.
As the documentation in that file explains, you have basically
two choices to make:
set the data type size of integer atom IDs to 4 or 8 bytes
set the data type size of integers that store the total system size to 4 or 8 bytes :ul
The default for atom IDs is 4-byte integers since there is a memory
and communication cost for 8-byte integers. Non-molecular problems do
not need atom IDs so this does not restrict their size. Molecular
problems (which use IDs to define molecular topology), are limited to
about 2 billion atoms (2^31) with 4-byte IDs. With 8-byte IDs they
are effectively unlimited in size (2^63).
The default for total system size quantities (like the number of atoms
or timesteps) is 8-byte integers by default which is effectively
unlimited in size (2^63). If your system does not support 8-byte
integers, an error will be generated, and you will need to set
"bigint" to 4-byte integers. This restricts your total system size to
about 2 billion atoms or timesteps (2^31).
Note that in src/lmptype.h there are also settings for the MPI data
types associated with the integers that store atom IDs and total
system sizes, which need to be set consistent with the associated C
data types.
In all cases, the size of problem that can be run on a per-processor
basis is limited by 4-byte integer storage to about 2 billion atoms
per processor (2^31), which should not normally be a restriction since
such a problem would have a huge per-processor memory footprint due to
neighbor lists and would run very slowly in terms of CPU
secs/timestep.
:line
2.3 Making LAMMPS with optional packages :h4,link(2_3)
This section has the following sub-sections:
"Package basics"_#2_3_1
"Including/excluding packages"_#2_3_2
"Packages that require extra LAMMPS libraries"_#2_3_3
"Additional Makefile settings for extra libraries"_#2_3_4 :ul
:line
[{Package basics:}] :link(2_3_1)
The source code for LAMMPS is structured as a large set of core files
which are always included, plus optional packages. Packages are
groups of files that enable a specific set of features. For example,
force fields for molecular systems or granular systems are in
packages. You can see the list of all packages by typing "make
package".
The current list of standard packages is as follows:
asphere : aspherical particles and force fields
class2 : class 2 force fields
colloid : colloidal particle force fields
dipole : point dipole particles and force fields
dsmc : Direct Simulation Monte Carlo (DMSC) pair style
gpu : GPU-enabled force field styles
granular : force fields and boundary conditions for granular systems
kspace : long-range Ewald and particle-mesh (PPPM) solvers
manybody : metal, 3-body, bond-order potentials
meam : modified embedded atom method (MEAM) potential
molecule : force fields for molecular systems
opt : optimized versions of a few pair potentials
peri : Peridynamics model and potential
poems : coupled rigid body motion
reax : ReaxFF potential
replica : multi-replica methods
shock : methods for MD simulations of shock loading
srd : stochastic rotation dynamics (SRD)
xtc : dump atom snapshots in XTC format :tb(s=:)
There are also user-contributed packages which may be as simple as a
single additional file or many files grouped together which add a
specific functionality to the code.
The difference between a {standard} package versus a {user} package is
as follows.
Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means we will answer questions about them, debug and fix them if
necessary, and keep them compatible with future changes to LAMMPS.
User packages don't necessarily meet these requirements. If you have
problems using a feature provided in a user package, you will likely
need to contact the contributor directly to get help. Information on
how to submit additions you make to LAMMPS as a user-contributed
package is given in "this section"_Section_modify.html#package of the
documentation.
:line
[{Including/excluding packages:}] :link(2_3_2)
To use or not use a package you must be include or exclude it before
LAMMPS is built.
Some packages have individual files that depend on other packages
being included, but LAMMPS checks for this and does the right thing.
I.e. individual files are only included if their dependencies are
already included. Likewise, if a package is excluded, other files
dependent on that package are also excluded.
The reason to exclude packages is if you will never run certain kinds
of simulations. This will keep you from having to build auxiliary
libraries (see below) and will produce a smaller executable which may
run a bit faster.
By default, LAMMPS includes only the "kspace", "manybody", and
"molecule" packages.
Packages are included or excluded by typing "make yes-name" or "make
no-name", where "name" is the name of the package. You can also type
"make yes-standard", "make no-standard", "make yes-user", "make
no-user", "make yes-all" or "make no-all" to include/exclude various
-sets of packages. Type "make package" to see the various options.
+sets of packages. Type "make package" to see the all of the
+package-related make options.
IMPORTANT NOTE: These make commands work by simply moving files back
and forth between the main src directory and sub-directories with the
package name, so that the files are seen or not seen when LAMMPS is
built. After you have included or excluded a package, you must
re-build LAMMPS.
-Additional make options exist to help manage LAMMPS files that exist
+Additional package-related make options exist to help manage LAMMPS
+files that exist
in both the src directory and in package sub-directories. You do not
normally need to use these commands unless you are editing LAMMPS
files or have downloaded a patch from the LAMMPS WWW site.
Typing "make package-update" will overwrite src files with files from
-the package directories if the package has been included. It should
+the package sub-directories if the package has been included. It should
be used after a patch is installed, since patches only update the
-master package version of a file. Typing "make package-overwrite"
-will overwrite files in the package directories with src files.
-Typing "make package-check" will list differences between src and
-package versions of the same files. Again, type "make package" to see
-the various options.
+files in the package sub-directory, but not the src files.
+Typing "make package-overwrite"
+will overwrite files in the package sub-directories with src files.
+
+Typing "make package-status" will show which packages are currently
+included. Of those that are included, it will list files that
+are different in the src directory and package sub-directory.
+Typing "make package-diff" lists all differences between these files.
+Again, type "make package" to see all of the
+package-related make options.
:line
[{Packages that require extra LAMMPS libraries:}] :link(2_3_3)
A few standard or user packages require that additional libraries be
compiled first, which LAMMPS will link to when it builds. The source
code for these libraries is included in the LAMMPS distribution under
the "lib" directory. Look at the README files in the lib directories
(e.g. lib/reax/README) for instructions on how to build each library.
IMPORTANT NOTE: If you are including a package in your LAMMPS build
that uses one of these libraries, then you must build the library
BEFORE building LAMMPS itself, since the LAMMPS build will attempt to
link with the library file.
Here is a bit of information about each library:
The "atc" library in lib/atc is used by the user-atc package. It
provides continuum field estimation and molecular dynamics-finite
element coupling methods. It was written by Reese Jones, Jeremy
Templeton and Jonathan Zimmerman at Sandia.
The "cuda" library in lib/cuda is used by the user-cuda package. It
was written by Christian Trott at U of Technology Ilmenau in Germany.
It contains code to enable portions of LAMMPS to run on NVIDIA GPUs
associated with your CPUs. Currently, only NVIDIA GPUs are supported.
Building this library requires NVIDIA Cuda tools to be installed on
your system. See "this section"_Section_accelerate.html#10_3 of the
manual for more information about using this package effectively and
how it differs from the gpu package.
The "gpu" library in lib/gpu is used by the gpu package. It was
written by Mike Brown at ORNL. It contains code to enable portions of
LAMMPS to run on GPUs associated with your CPUs. Currently, only
NVIDIA GPUs are supported, but eventually this may be extended to
OpenCL. Building this library requires NVIDIA Cuda tools to be
installed on your system. See "this
section"_Section_accelerate.html#10_2 of the manual for more
information about using this package effectively and how it differs
from the user-cuda package.
The "meam" library in lib/meam is used by the meam package. It was
written by Greg Wagner at Sandia. It computes the modified embedded
atom method potential, which is a generalization of EAM potentials
that can be used to model a wider variety of materials. This MEAM
implementation was written by Greg Wagner at Sandia. It requires a
F90 compiler to build. The C++ to FORTRAN function calls in
pair_meam.cpp assumes that FORTRAN object names are converted to C
object names by appending an underscore character. This is generally
the case, but on machines that do not conform to this convention, you
will need to modify either the C++ code or your compiler settings.
The "poems" library in lib/poems is used by the poems package. It was
written by Rudra Mukherjee at JPL. It computes the constrained
rigid-body motion of articulated (jointed) multibody systems. POEMS
is distributed by Prof Kurt Anderson's group at Rensselaer Polytechnic
Institute (RPI).
The "reax" library in lib/reax is used by the reax package. It was
written by Aidan Thompson at Sandia. It computes the Reactive Force
Field (ReaxFF) potential, developed by Adri van Duin in Bill Goddard's
group at CalTech. This implementation in LAMMPS uses many of Adri's
files and was developed by Aidan Thompson at Sandia and Hansohl Cho at
MIT. It requires a F77 or F90 compiler to build. The C++ to FORTRAN
function calls in pair_reax.cpp assume that FORTRAN object names are
converted to C object names by appending an underscore character. This
is generally the case, but on machines that do not conform to this
convention, you will need to modify either the C++ code or your
compiler settings. The name conversion is handled by the preprocessor
macro called FORTRAN in pair_reax_fortran.h. Different definitions of
this macro can be obtained by adding a machine-specific macro
definition to the CCFLAGS variable in your Makefile e.g. -D_IBM. See
pair_reax_fortran.h for more info.
As described in the README file in each lib directory, each library is
typically built by typing something like
make -f Makefile.g++ :pre
in the appropriate directory, e.g. in lib/reax.
You must use a Makefile that is a match for your system. If one of
the provided Makefiles is not appropriate for your system you will
need to edit or add one. For example, in the case of Fotran-based
libraries, your system must have a Fortran compiler, the settings for
which will be in the Makefile.
Note that the cuda library, used by the user-cuda package is an
exception. See its README file and "this
section"_Section_accelerate.html#10_3 of the manual for instructions
on how to build it.
:line
[{Additional Makefile settings for extra libraries:}] :link(2_3_4)
After the desired library or libraries are built, and the package has
been included, you can build LAMMPS itself. For example, from the
lammps/src directory you would type this, to build LAMMPS with ReaxFF.
Note that as discussed in the preceding section, the package library
itself, namely lib/reax/libreax.a, must already have been built, for
the LAMMPS build to be successful.
make yes-reax
make g++ :pre
Also note that simply building the library is not sufficient to use it
from LAMMPS. As in this example, you must also include the package
that uses and wraps the library before you build LAMMPS itself.
As discussed in point (3.e) of "this section"_#2_2_4 above, there are
settings in the low-level Makefile that specify additional system
libraries needed by some of the LAMMPS add-on libraries. These are
the settings you must specify correctly in your low-level Makefile in
lammps/src/MAKE, such as Makefile.foo:
To use the gpu package and library, the settings for gpu_SYSLIB and
gpu_SYSPATH must be correct. These are specific to the NVIDIA CUDA
software which must be installed on your system.
To use the meam or reax packages and their libraries which are Fortran
based, the settings for meam_SYSLIB, reax_SYSLIB, meam_SYSPATH, and
reax_SYSPATH must be correct. This is so that the C++ compiler can
perform a cross-language link using the appropriate system Fortran
libraries.
To use the user-atc package and atc library, the settings for
user-atc_SYSLIB and user-atc_SYSPATH must be correct. This is so that
the appropriate BLAS and LAPACK libs, used by the user-atc library,
can be found.
:line
2.4 Building LAMMPS as a library :h4,link(2_4)
LAMMPS can be built as a library, which can then be called from
another application or a scripting language. See "this
section"_Section_howto.html#4_10 for more info on coupling LAMMPS to
other codes. Building LAMMPS as a library is done by typing
make makelib
make -f Makefile.lib foo :pre
where foo is the machine name. The first "make" command will create a
current Makefile.lib with all the file names in your src dir. The 2nd
"make" command will use it to build LAMMPS as a library. This
requires that Makefile.foo have a library target (lib) and
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
for an example. The build will create the file liblmp_foo.a which
another application can link to.
When used from a C++ program, the library allows one or more LAMMPS
objects to be instantiated. All of LAMMPS is wrapped in a LAMMPS_NS
namespace; you can safely use any of its classes and methods from
within your application code, as needed.
When used from a C or Fortran program or a scripting language, the
library has a simple function-style interface, provided in
src/library.cpp and src/library.h.
See the sample codes couple/simple/simple.cpp and simple.c as examples
of C++ and C codes that invoke LAMMPS thru its library interface.
There are other examples as well in the couple directory which are
discussed in "this section"_Section_howto.html#4_10 of the manual.
See "this section"_Section_python.html of the manual for a description
of the Python wrapper provided with LAMMPS that operates through the
LAMMPS library interface.
The files src/library.cpp and library.h contain the C-style interface
to LAMMPS. See "this section"_Section_howto.html#4_19 of the manual
for a description of the interface and how to extend it for your
needs.
:line
2.5 Running LAMMPS :h4,link(2_5)
By default, LAMMPS runs by reading commands from stdin; e.g. lmp_linux
< in.file. This means you first create an input script (e.g. in.file)
containing the desired commands. "This section"_Section_commands.html
describes how input scripts are structured and what commands they
contain.
You can test LAMMPS on any of the sample inputs provided in the
examples or bench directory. Input scripts are named in.* and sample
outputs are named log.*.name.P where name is a machine and P is the
number of processors it was run on.
Here is how you might run a standard Lennard-Jones benchmark on a
Linux box, using mpirun to launch a parallel job:
cd src
make linux
cp lmp_linux ../bench
cd ../bench
mpirun -np 4 lmp_linux < in.lj :pre
See "this page"_bench for timings for this and the other benchmarks
on various platforms.
:link(bench,http://lammps.sandia.gov/bench.html)
:line
-On a Windows machine, you can skip making LAMMPS and simply download
-an executable. But note that not all packages are available.
-The following packages are available: asphere, class2, colloid, dipole,
-dsmc, granular, kspace, manybody, molecule, peri, poems, replica, shock,
-user-ackland, user-cd-eam, user-cg-cmm, user-ewaldn, user-smd. But these
-packages are not available: gpu, meam, opt, reax, xtc, user-atc, user-imd.
+On a Windows box, you can skip making LAMMPS and simply download an
+executable, as described above. though the pre-packaged executables
+make only certain packages available.
-To run the LAMMPS executable on a Windows machine, first decide whether
-you want to download the non-MPI (serial) or the MPI (parallel) version
-of the executable. Download and save the version you have chosen.
+To run a LAMMPS executable on a Windows machine, first decide whether
+you want to download the non-MPI (serial) or the MPI (parallel)
+version of the executable. Download and save the version you have
+chosen.
For the non-MPI version, follow these steps:
Get a command prompt by going to Start->Run... ,
then typing "cmd". :ulb,l
Move to the directory where you have saved lmp_win_no-mpi.exe
(e.g. by typing: cd "Documents"). :l
At the command prompt, type "lmp_win_no-mpi -in in.lj", replacing in.lj
with the name of your LAMMPS input script. :l,ule
For the MPI version, which allows you to run LAMMPS under Windows on
multiple processors, follow these steps:
Download and install
"MPICH2"_http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
for Windows. :ulb,l
You'll need to use the mpiexec.exe and smpd.exe files from the MPICH2 package. Put them in
same directory (or path) as the LAMMPS Windows executable. :l
Get a command prompt by going to Start->Run... ,
then typing "cmd". :l
Move to the directory where you have saved lmp_win_mpi.exe
(e.g. by typing: cd "Documents"). :l
Then type something like this: "mpiexec -np 4 -localonly lmp_win_mpi -in in.lj",
replacing in.lj with the name of your LAMMPS input script. :l
Note that you may need to provide smpd with a passphrase --- it doesn't matter what you
type. :l
In this mode, output may not immediately show up on the screen, so
if your input script takes a long time to execute, you may need to be
patient before the output shows up. :l
Alternatively, you can still use this executable to run on a single processor by
typing something like: "lmp_win_mpi -in in.lj". :l,ule
:line
The screen output from LAMMPS is described in the next section. As it
runs, LAMMPS also writes a log.lammps file with the same information.
Note that this sequence of commands copies the LAMMPS executable
(lmp_linux) to the directory with the input files. This may not be
necessary, but some versions of MPI reset the working directory to
where the executable is, rather than leave it as the directory where
you launch mpirun from (if you launch lmp_linux on its own and not
under mpirun). If that happens, LAMMPS will look for additional input
files and write its output files to the executable directory, rather
than your working directory, which is probably not what you want.
If LAMMPS encounters errors in the input script or while running a
simulation it will print an ERROR message and stop or a WARNING
message and continue. See "this section"_Section_errors.html for a
discussion of the various kinds of errors LAMMPS can or can't detect,
a list of all ERROR and WARNING messages, and what to do about them.
LAMMPS can run a problem on any number of processors, including a
single processor. In theory you should get identical answers on any
number of processors and on any machine. In practice, numerical
round-off can cause slight differences and eventual divergence of
molecular dynamics phase space trajectories.
LAMMPS can run as large a problem as will fit in the physical memory
of one or more processors. If you run out of memory, you must run on
more processors or setup a smaller problem.
:line
2.6 Command-line options :h4,link(2_6)
At run time, LAMMPS recognizes several optional command-line switches
which may be used in any order. Either the full word or a one-letter
abbreviation can be used:
-c or -cuda
-e or -echo
-i or -in
-l or -log
-p or -partition
+-pl or -plog
+-ps or -pscreen
-sc or -screen
-sf or -suffix
-v or -var :ul
For example, lmp_ibm might be launched as follows:
mpirun -np 16 lmp_ibm -v f tmp.out -l my.log -sc none < in.alloy
mpirun -np 16 lmp_ibm -var f tmp.out -log my.log -screen none < in.alloy :pre
Here are the details on the options:
-cuda on/off :pre
Explicitly enable or disable CUDA support, as provided by the
USER-CUDA package. If LAMMPS is built with this package, as described
above in "Section 2.3"_#2_3, then by default LAMMPS will run in CUDA
mode. If this switch is set to "off", then it will not, even if it
was built with the USER-CUDA package, which means you can run standard
LAMMPS or with the GPU package for testing or benchmarking purposes.
The only reason to set the switch to "on", is to check if LAMMPS was
built with the USER-CUDA package, since an error will be generated if
it was not.
-echo style :pre
Set the style of command echoing. The style can be {none} or {screen}
or {log} or {both}. Depending on the style, each command read from
the input script will be echoed to the screen and/or logfile. This
can be useful to figure out which line of your script is causing an
input error. The default value is {log}. The echo style can also be
set by using the "echo"_echo.html command in the input script itself.
-in file :pre
Specify a file to use as an input script. This is an optional switch
when running LAMMPS in one-partition mode. If it is not specified,
LAMMPS reads its input script from stdin - e.g. lmp_linux < in.run.
This is a required switch when running LAMMPS in multi-partition mode,
since multiple processors cannot all read from stdin.
-log file :pre
Specify a log file for LAMMPS to write status information to. In
one-partition mode, if the switch is not used, LAMMPS writes to the
file log.lammps. If this switch is used, LAMMPS writes to the
specified file. In multi-partition mode, if the switch is not used, a
log.lammps file is created with hi-level status information. Each
partition also writes to a log.lammps.N file where N is the partition
ID. If the switch is specified in multi-partition mode, the hi-level
logfile is named "file" and each partition also logs information to a
file.N. For both one-partition and multi-partition mode, if the
specified file is "none", then no log files are created. Using a
"log"_log.html command in the input script will override this setting.
+Option -plog will override the name of the partition log files file.N.
-partition 8x2 4 5 ... :pre
Invoke LAMMPS in multi-partition mode. When LAMMPS is run on P
processors and this switch is not used, LAMMPS runs in one partition,
i.e. all P processors run a single simulation. If this switch is
used, the P processors are split into separate partitions and each
partition runs its own simulation. The arguments to the switch
specify the number of processors in each partition. Arguments of the
form MxN mean M partitions, each with N processors. Arguments of the
form N mean a single partition with N processors. The sum of
processors in all partitions must equal P. Thus the command
"-partition 8x2 4 5" has 10 partitions and runs on a total of 25
processors.
Note that with MPI installed on a machine (e.g. your desktop), you can
run on more (virtual) processors than you have physical processors.
This can be useful for running "multi-replica
simulations"_Section_howto.html#4_5, on one or a few processors.
The input script specifies what simulation is run on which partition;
see the "variable"_variable.html and "next"_next.html commands. This
"howto section"_Section_howto.html#4_4 gives examples of how to use
these commands in this way. Simulations running on different
partitions can also communicate with each other; see the
"temper"_temper.html command.
+-plog file :pre
+
+Specify the base name for the partition log files,
+so partition N writes log information to file.N. If file is
+none, then no partition log files are created.
+This overrides the
+filename specified in the -log command-line option.
+This option is useful when working with large numbers of partitions,
+allowing the partition log files to be suppressed (-plog none) or
+placed in a sub-directory (-plog replica_files/log.lammps)
+If this option is not used
+the log file for partition N is log.lammps.N or whatever is specified by
+the -log command-line option.
+
+-pscreen file :pre
+
+Specify the base name for the
+partition screen file, so partition N writes
+screen information to file.N. If file is
+none, then no partition screen files are created.
+This overrides the
+filename specified in the -screen command-line option.
+This option is useful when working with large numbers of partitions,
+allowing the partition screen files to be suppressed (-pscreen none) or
+placed in a sub-directory (-pscreen replica_files/screen)
+If this option is not used
+the screen file for partition N is screen.N or whatever is specified by
+the -screen command-line option.
+
-screen file :pre
Specify a file for LAMMPS to write its screen information to. In
one-partition mode, if the switch is not used, LAMMPS writes to the
screen. If this switch is used, LAMMPS writes to the specified file
instead and you will see no screen output. In multi-partition mode,
if the switch is not used, hi-level status information is written to
the screen. Each partition also writes to a screen.N file where N is
the partition ID. If the switch is specified in multi-partition mode,
the hi-level screen dump is named "file" and each partition also
writes screen information to a file.N. For both one-partition and
multi-partition mode, if the specified file is "none", then no screen
-output is performed.
+output is performed. Option -pscreen will override the name of the
+partition screen files file.N.
-suffix style :pre
Use variants of various styles if they exist. The specified style can
be {opt} or {gpu} or {cuda}. These refer to optional packages that
LAMMPS can be built with, as described above in "Section 2.3"_#2_3.
The "opt" style corrsponds to the OPT package, the "gpu" style to the
GPU package, and the "cuda" style to the USER-CUDA package.
As an example, all of the packages provide a "pair_style
lj/cut"_pair_lj.html variant, with style names lj/cut/opt or
lj/cut/gpu or lj/cut/cuda. A variant styles can be specified
explicitly in your input script, e.g. pair_style lj/cut/gpu. If the
-suffix switch is used, you do not need to modify your input script.
The specified suffix (opt,gpu,cuda) is automatically appended whenever
your input script command creates a new "atom"_atom_style.html,
"pair"_pair_style.html, "fix"_fix.html, "compute"_compute.html, or
"run"_run_style.html style. atom, pair, fix, compute, or integrate
style. If the variant version does not exist, the standard version is
created.
The "suffix"_suffix.html command can also set a suffix and it can also
turn off/on any suffix setting made via the command line.
-var name value1 value2 ... :pre
Specify a variable that will be defined for substitution purposes when
the input script is read. "Name" is the variable name which can be a
single character (referenced as $x in the input script) or a full
string (referenced as $\{abc\}). An "index-style
variable"_variable.html will be created and populated with the
subsequent values, e.g. a set of filenames. Using this command-line
option is equivalent to putting the line "variable name index value1
value2 ..." at the beginning of the input script. Defining an index
variable as a command-line argument overrides any setting for the same
index variable in the input script, since index variables cannot be
re-defined. See the "variable"_variable.html command for more info on
defining index and other kinds of variables and "this
section"_Section_commands.html#3_2 for more info on using variables in
input scripts.
:line
2.7 LAMMPS screen output :h4,link(2_7)
As LAMMPS reads an input script, it prints information to both the
screen and a log file about significant actions it takes to setup a
simulation. When the simulation is ready to begin, LAMMPS performs
various initializations and prints the amount of memory (in MBytes per
processor) that the simulation requires. It also prints details of
the initial thermodynamic state of the system. During the run itself,
thermodynamic information is printed periodically, every few
timesteps. When the run concludes, LAMMPS prints the final
thermodynamic state and a total run time for the simulation. It then
appends statistics about the CPU time and storage requirements for the
simulation. An example set of statistics is shown here:
Loop time of 49.002 on 2 procs for 2004 atoms :pre
Pair time (%) = 35.0495 (71.5267)
Bond time (%) = 0.092046 (0.187841)
Kspce time (%) = 6.42073 (13.103)
Neigh time (%) = 2.73485 (5.5811)
Comm time (%) = 1.50291 (3.06703)
Outpt time (%) = 0.013799 (0.0281601)
Other time (%) = 2.13669 (4.36041) :pre
Nlocal: 1002 ave, 1015 max, 989 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 8720 ave, 8724 max, 8716 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 354141 ave, 361422 max, 346860 min
Histogram: 1 0 0 0 0 0 0 0 0 1 :pre
Total # of neighbors = 708282
Ave neighs/atom = 353.434
Ave special neighs/atom = 2.34032
Number of reneighborings = 42
Dangerous reneighborings = 2 :pre
The first section gives the breakdown of the CPU run time (in seconds)
into major categories. The second section lists the number of owned
atoms (Nlocal), ghost atoms (Nghost), and pair-wise neighbors stored
per processor. The max and min values give the spread of these values
across processors with a 10-bin histogram showing the distribution.
The total number of histogram counts is equal to the number of
processors.
The last section gives aggregate statistics for pair-wise neighbors
and special neighbors that LAMMPS keeps track of (see the
"special_bonds"_special_bonds.html command). The number of times
neighbor lists were rebuilt during the run is given as well as the
number of potentially "dangerous" rebuilds. If atom movement
triggered neighbor list rebuilding (see the
"neigh_modify"_neigh_modify.html command), then dangerous
reneighborings are those that were triggered on the first timestep
atom movement was checked for. If this count is non-zero you may wish
to reduce the delay factor to insure no force interactions are missed
by atoms moving beyond the neighbor skin distance before a rebuild
takes place.
If an energy minimization was performed via the
"minimize"_minimize.html command, additional information is printed,
e.g.
Minimization stats:
E initial, next-to-last, final = -0.895962 -2.94193 -2.94342
Gradient 2-norm init/final= 1920.78 20.9992
Gradient inf-norm init/final= 304.283 9.61216
Iterations = 36
Force evaluations = 177 :pre
The first line lists the initial and final energy, as well as the
energy on the next-to-last iteration. The next 2 lines give a measure
of the gradient of the energy (force on all atoms). The 2-norm is the
"length" of this force vector; the inf-norm is the largest component.
The last 2 lines are statistics on how many iterations and
force-evaluations the minimizer required. Multiple force evaluations
are typically done at each iteration to perform a 1d line minimization
in the search direction.
If a "kspace_style"_kspace_style.html long-range Coulombics solve was
performed during the run (PPPM, Ewald), then additional information is
printed, e.g.
FFT time (% of Kspce) = 0.200313 (8.34477)
FFT Gflps 3d 1d-only = 2.31074 9.19989 :pre
The first line gives the time spent doing 3d FFTs (4 per timestep) and
the fraction it represents of the total KSpace time (listed above).
Each 3d FFT requires computation (3 sets of 1d FFTs) and communication
(transposes). The total flops performed is 5Nlog_2(N), where N is the
number of points in the 3d grid. The FFTs are timed with and without
the communication and a Gflop rate is computed. The 3d rate is with
communication; the 1d rate is without (just the 1d FFTs). Thus you
can estimate what fraction of your FFT time was spent in
communication, roughly 75% in the example above.
:line
2.8 Tips for users of previous LAMMPS versions :h4,link(2_8)
The current C++ began with a complete rewrite of LAMMPS 2001, which
was written in F90. Features of earlier versions of LAMMPS are listed
in "this section"_Section_history.html. The F90 and F77 versions
(2001 and 99) are also freely distributed as open-source codes; check
the "LAMMPS WWW Site"_lws for distribution information if you prefer
those versions. The 99 and 2001 versions are no longer under active
development; they do not have all the features of C++ LAMMPS.
If you are a previous user of LAMMPS 2001, these are the most
significant changes you will notice in C++ LAMMPS:
(1) The names and arguments of many input script commands have
changed. All commands are now a single word (e.g. read_data instead
of read data).
(2) All the functionality of LAMMPS 2001 is included in C++ LAMMPS,
but you may need to specify the relevant commands in different ways.
(3) The format of the data file can be streamlined for some problems.
See the "read_data"_read_data.html command for details. The data file
section "Nonbond Coeff" has been renamed to "Pair Coeff" in C++ LAMMPS.
(4) Binary restart files written by LAMMPS 2001 cannot be read by C++
LAMMPS with a "read_restart"_read_restart.html command. This is
because they were output by F90 which writes in a different binary
format than C or C++ writes or reads. Use the {restart2data} tool
provided with LAMMPS 2001 to convert the 2001 restart file to a text
data file. Then edit the data file as necessary before using the C++
LAMMPS "read_data"_read_data.html command to read it in.
(5) There are numerous small numerical changes in C++ LAMMPS that mean
you will not get identical answers when comparing to a 2001 run.
However, your initial thermodynamic energy and MD trajectory should be
close if you have setup the problem for both codes the same.
diff --git a/doc/atom_style.html b/doc/atom_style.html
index 85690fb03..616a0f323 100644
--- a/doc/atom_style.html
+++ b/doc/atom_style.html
@@ -1,136 +1,145 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>atom_style command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>atom_style style args
</PRE>
<UL><LI>style = <I>angle</I> or <I>atomic</I> or <I>bond</I> or <I>charge</I> or <I>dipole</I> or <I>electron</I> or <I>ellipsoid</I> or <I>full</I> or <I>molecular</I> or <I>peri</I> or <I>sphere</I> or <I>hybrid</I>
</UL>
<PRE> args = none for any style except <I>hybrid</I>
<I>hybrid</I> args = list of one or more sub-styles
</PRE>
<P><B>Examples:</B>
</P>
<PRE>atom_style atomic
atom_style bond
atom_style full
atom_style hybrid charge bond
</PRE>
<P><B>Description:</B>
</P>
<P>Define what style of atoms to use in a simulation. This determines
what attributes are associated with the atoms. This command must be
used before a simulation is setup via a <A HREF = "read_data.html">read_data</A>,
<A HREF = "read_restart.html">read_restart</A>, or <A HREF = "create_box.html">create_box</A>
command.
</P>
<P>Once a style is assigned, it cannot be changed, so use a style general
enough to encompass all attributes. E.g. with style <I>bond</I>, angular
terms cannot be used or added later to the model. It is OK to use a
style more general than needed, though it may be slightly inefficient.
</P>
<P>The choice of style affects what quantities are stored by each atom,
what quantities are communicated between processors to enable forces
to be computed, and what quantities are listed in the data file read
by the <A HREF = "read_data.html">read_data</A> command.
</P>
<P>These are the additional attributes of each style and the typical
kinds of physical systems they are used to model. All styles store
coordinates, velocities, atom IDs and types. See the
<A HREF = "read_data.html">read_data</A>, <A HREF = "create_atoms.html">create_atoms</A>, and
<A HREF = "set.html">set</A> commands for info on how to set these various
quantities.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD ><I>angle</I> </TD><TD > bonds and angles </TD><TD > bead-spring polymers with stiffness </TD></TR>
<TR><TD ><I>atomic</I> </TD><TD > only the default values </TD><TD > coarse-grain liquids, solids, metals </TD></TR>
<TR><TD ><I>bond</I> </TD><TD > bonds </TD><TD > bead-spring polymers </TD></TR>
<TR><TD ><I>charge</I> </TD><TD > charge </TD><TD > atomic system with charges </TD></TR>
<TR><TD ><I>dipole</I> </TD><TD > charge and dipole moment </TD><TD > system with dipolar particles </TD></TR>
<TR><TD ><I>electron</I> </TD><TD > charge and spin and eradius </TD><TD > electronic force field </TD></TR>
<TR><TD ><I>ellipsoid</I> </TD><TD > shape, quaternion for particle orientation, angular momentum </TD><TD > extended aspherical particles </TD></TR>
<TR><TD ><I>full</I> </TD><TD > molecular + charge </TD><TD > bio-molecules </TD></TR>
<TR><TD ><I>molecular</I> </TD><TD > bonds, angles, dihedrals, impropers </TD><TD > uncharged molecules </TD></TR>
<TR><TD ><I>peri</I> </TD><TD > mass, volume </TD><TD > mesocopic Peridynamic models </TD></TR>
-<TR><TD ><I>sphere</I> </TD><TD > diameter, mass, angular velocity </TD><TD > granular models
+<TR><TD ><I>sphere</I> </TD><TD > diameter, mass, angular velocity </TD><TD > granular models </TD></TR>
+<TR><TD ><I>wavepacket</I> </TD><TD > charge, spin, eradius, etag, cs_re, cs_im </TD><TD > AWPMD
</TD></TR></TABLE></DIV>
<P>All of the styles assign mass to particles on a per-type basis, using
the <A HREF = "mass.html">mass</A> command, except for the finite-size particle
styles discussed below. They assign mass on a per-atom basis.
</P>
<P>All of the styles define point particles, except the <I>sphere</I>,
-<I>ellipsoid</I>, <I>electron</I>, and <I>peri</I> styles, which define finite-size
-particles.
+<I>ellipsoid</I>, <I>electron</I>, <I>peri</I>, and <I>wavepacket</I> styles, which define
+finite-size particles.
</P>
<P>For the <I>sphere</I> style, the particles are spheres and each stores a
per-particle diameter and mass. If the diameter > 0.0, the particle
is a finite-size sphere. If the diameter = 0.0, it is a point
particle.
</P>
<P>For the <I>ellipsoid</I> style, the particles are ellipsoids and each
stores a flag which indicates whether it is a finite-size ellipsoid or
a point particle. If it is an ellipsoid, it also stores a shape
vector with the 3 diamters of the ellipsoid and a quaternion 4-vector
with its orientation.
</P>
<P>For the <I>electron</I> style, the particles representing electrons are 3d
Gaussians with a specified position and bandwidth or uncertainty in
position, which is represented by the eradius = electron size.
</P>
<P>For the <I>peri</I> style, the particles are spherical and each stores a
per-particle mass and volume.
</P>
+<P>The <I>wavepacket</I> style is similar to <I>electron</I>, but the electrons may
+consist of several Gaussian wave packets, summed up with coefficients
+cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
+particle in LAMMPS, wave packets belonging to the same electron must
+have identical <I>etag</I> values.
+</P>
<HR>
<P>Typically, simulations require only a single (non-hybrid) atom style.
If some atoms in the simulation do not have all the properties defined
by a particular style, use the simplest style that defines all the
needed properties by any atom. For example, if some atoms in a
simulation are charged, but others are not, use the <I>charge</I> style.
If some atoms have bonds, but others do not, use the <I>bond</I> style.
</P>
<P>The only scenario where the <I>hybrid</I> style is needed is if there is no
single style which defines all needed properties of all atoms. For
example, if you want dipolar particles which will be torqued and
rotate, you would need to use "atom_style hybrid sphere dipole". When
a hybrid style is used, atoms store and communicate the union of all
quantities implied by the individual styles.
</P>
<P>LAMMPS can be extended with new atom styles; see <A HREF = "Section_modify.html">this
section</A>.
</P>
<P><B>Restrictions:</B>
</P>
<P>This command cannot be used after the simulation box is defined by a
<A HREF = "read_data.html">read_data</A> or <A HREF = "create_box.html">create_box</A> command.
</P>
<P>The <I>angle</I>, <I>bond</I>, <I>full</I>, and <I>molecular</I> styles are part of the
"molecular" package. The <I>dipole</I> style is part of the "dipole"
package. The <I>ellipsoid</I> style is part of the "asphere" package. The
<I>peri</I> style is part of the "peri" package for Peridynamics. The
<I>electron</I> style is part of the "user-eff" package for <A HREF = "pair_eff.html">electronic
-force fields</A>. They are only enabled if LAMMPS was
-built with that package. See the <A HREF = "Section_start.html#2_3">Making
-LAMMPS</A> section for more info.
+force fields</A>. The <I>wavepacket</I> style is part of the
+"user-awpmd" package for the <A HREF = "pair_awpmd.html">antisymmetrized wave packet MD
+method</A>. They are only enabled if LAMMPS was built
+with that package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A>
+section for more info.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "read_data.html">read_data</A>, <A HREF = "pair_style.html">pair_style</A>
</P>
<P><B>Default:</B>
</P>
<P>atom_style atomic
</P>
</HTML>
diff --git a/doc/atom_style.txt b/doc/atom_style.txt
index 155f34125..40ffb0722 100644
--- a/doc/atom_style.txt
+++ b/doc/atom_style.txt
@@ -1,130 +1,139 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
atom_style command :h3
[Syntax:]
atom_style style args :pre
style = {angle} or {atomic} or {bond} or {charge} or {dipole} or \
{electron} or {ellipsoid} or {full} or {molecular} or \
{peri} or {sphere} or {hybrid} :ul
args = none for any style except {hybrid}
{hybrid} args = list of one or more sub-styles :pre
[Examples:]
atom_style atomic
atom_style bond
atom_style full
atom_style hybrid charge bond :pre
[Description:]
Define what style of atoms to use in a simulation. This determines
what attributes are associated with the atoms. This command must be
used before a simulation is setup via a "read_data"_read_data.html,
"read_restart"_read_restart.html, or "create_box"_create_box.html
command.
Once a style is assigned, it cannot be changed, so use a style general
enough to encompass all attributes. E.g. with style {bond}, angular
terms cannot be used or added later to the model. It is OK to use a
style more general than needed, though it may be slightly inefficient.
The choice of style affects what quantities are stored by each atom,
what quantities are communicated between processors to enable forces
to be computed, and what quantities are listed in the data file read
by the "read_data"_read_data.html command.
These are the additional attributes of each style and the typical
kinds of physical systems they are used to model. All styles store
coordinates, velocities, atom IDs and types. See the
"read_data"_read_data.html, "create_atoms"_create_atoms.html, and
"set"_set.html commands for info on how to set these various
quantities.
{angle} | bonds and angles | bead-spring polymers with stiffness |
{atomic} | only the default values | coarse-grain liquids, solids, metals |
{bond} | bonds | bead-spring polymers |
{charge} | charge | atomic system with charges |
{dipole} | charge and dipole moment | system with dipolar particles |
{electron} | charge and spin and eradius | electronic force field |
{ellipsoid} | shape, quaternion for particle orientation, angular momentum | extended aspherical particles |
{full} | molecular + charge | bio-molecules |
{molecular} | bonds, angles, dihedrals, impropers | uncharged molecules |
{peri} | mass, volume | mesocopic Peridynamic models |
-{sphere} | diameter, mass, angular velocity | granular models :tb(c=3,s=|)
+{sphere} | diameter, mass, angular velocity | granular models |
+{wavepacket} | charge, spin, eradius, etag, cs_re, cs_im | AWPMD :tb(c=3,s=|)
All of the styles assign mass to particles on a per-type basis, using
the "mass"_mass.html command, except for the finite-size particle
styles discussed below. They assign mass on a per-atom basis.
All of the styles define point particles, except the {sphere},
-{ellipsoid}, {electron}, and {peri} styles, which define finite-size
-particles.
+{ellipsoid}, {electron}, {peri}, and {wavepacket} styles, which define
+finite-size particles.
For the {sphere} style, the particles are spheres and each stores a
per-particle diameter and mass. If the diameter > 0.0, the particle
is a finite-size sphere. If the diameter = 0.0, it is a point
particle.
For the {ellipsoid} style, the particles are ellipsoids and each
stores a flag which indicates whether it is a finite-size ellipsoid or
a point particle. If it is an ellipsoid, it also stores a shape
vector with the 3 diamters of the ellipsoid and a quaternion 4-vector
with its orientation.
For the {electron} style, the particles representing electrons are 3d
Gaussians with a specified position and bandwidth or uncertainty in
position, which is represented by the eradius = electron size.
For the {peri} style, the particles are spherical and each stores a
per-particle mass and volume.
+The {wavepacket} style is similar to {electron}, but the electrons may
+consist of several Gaussian wave packets, summed up with coefficients
+cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
+particle in LAMMPS, wave packets belonging to the same electron must
+have identical {etag} values.
+
:line
Typically, simulations require only a single (non-hybrid) atom style.
If some atoms in the simulation do not have all the properties defined
by a particular style, use the simplest style that defines all the
needed properties by any atom. For example, if some atoms in a
simulation are charged, but others are not, use the {charge} style.
If some atoms have bonds, but others do not, use the {bond} style.
The only scenario where the {hybrid} style is needed is if there is no
single style which defines all needed properties of all atoms. For
example, if you want dipolar particles which will be torqued and
rotate, you would need to use "atom_style hybrid sphere dipole". When
a hybrid style is used, atoms store and communicate the union of all
quantities implied by the individual styles.
LAMMPS can be extended with new atom styles; see "this
section"_Section_modify.html.
[Restrictions:]
This command cannot be used after the simulation box is defined by a
"read_data"_read_data.html or "create_box"_create_box.html command.
The {angle}, {bond}, {full}, and {molecular} styles are part of the
"molecular" package. The {dipole} style is part of the "dipole"
package. The {ellipsoid} style is part of the "asphere" package. The
{peri} style is part of the "peri" package for Peridynamics. The
{electron} style is part of the "user-eff" package for "electronic
-force fields"_pair_eff.html. They are only enabled if LAMMPS was
-built with that package. See the "Making
-LAMMPS"_Section_start.html#2_3 section for more info.
+force fields"_pair_eff.html. The {wavepacket} style is part of the
+"user-awpmd" package for the "antisymmetrized wave packet MD
+method"_pair_awpmd.html. They are only enabled if LAMMPS was built
+with that package. See the "Making LAMMPS"_Section_start.html#2_3
+section for more info.
[Related commands:]
"read_data"_read_data.html, "pair_style"_pair_style.html
[Default:]
atom_style atomic
diff --git a/doc/delete_atoms.html b/doc/delete_atoms.html
index bb780a84c..02cc1e272 100644
--- a/doc/delete_atoms.html
+++ b/doc/delete_atoms.html
@@ -1,113 +1,113 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>delete_atoms command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>delete_atoms style args keyword value ...
</PRE>
<UL><LI>style = <I>group</I> or <I>region</I> or <I>overlap</I> or <I>porosity</I>
<PRE> <I>group</I> args = group-ID
<I>region</I> args = region-ID
<I>overlap</I> args = cutoff group1-ID group2-ID
cutoff = delete one atom from pairs of atoms within the cutoff (distance units)
group1-ID = one atom in pair must be in this group
group2-ID = other atom in pair must be in this group
<I>porosity</I> args = region-ID fraction seed
region-ID = region within which to perform deletions
fraction = delete this fraction of atoms
seed = random number seed (positive integer)
</PRE>
<LI>zero or more keyword/value pairs may be appended
<LI>keyword = <I>compress</I>
<PRE> <I>compress</I> value = <I>no</I> or <I>yes</I>
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>delete_atoms group edge
delete_atoms region sphere compress no
delete_atoms overlap 0.3 all all
delete_atoms overlap 0.5 solvent colloid
-delete_atoms porosity cube 0.1
+delete_atoms porosity cube 0.1 482793
</PRE>
<P><B>Description:</B>
</P>
<P>Delete the specified atoms. This command can be used to carve out
voids from a block of material or to delete created atoms that are too
close to each other (e.g. at a grain boundary).
</P>
<P>For style <I>group</I>, all atoms belonging to the group are deleted.
</P>
<P>For style <I>region</I>, all atoms in the region volume are deleted.
</P>
<P>For style <I>overlap</I> pairs of atoms whose distance of separation is
within the specified cutoff distance are searched for, and one of the
2 atoms is deleted. Only pairs where one of the two atoms is in the
first group specified and the other atom is in the second group are
considered. The atom that is in the first group is the one that is
deleted.
</P>
<P>Note that it is OK for the two group IDs to be the same (e.g. group
<I>all</I>), or for some atoms to be members of both groups. In these
cases, either atom in the pair may be deleted. Also note that if
there are atoms which are members of both groups, the only guarantee
is that at the end of the deletion operation, enough deletions will
have occurred that no atom pairs within the cutoff will remain
(subject to the group restriction). There is no guarantee that the
minimum number of atoms will be deleted, or that the same atoms will
be deleted when running on different numbers of processors.
</P>
<P>For style <I>porosity</I> a specified <I>fraction</I> of atoms are deleted
within the specified region. For example, if fraction is 0.1, then
10% of the atoms will be deleted. The atoms to delete are chosen
randomly. There is no guarantee that the exact fraction of atoms will
be deleted, or that the same atoms will be deleted when running on
different numbers of processors.
</P>
<P>If the <I>compress</I> keyword is set to <I>yes</I>, then after atoms are
deleted, then atom IDs are re-assigned so that they run from 1 to the
number of atoms in the system. This is not done for molecular systems
(see the <A HREF = "atom_style.html">atom_style</A> command), regardless of the
<I>compress</I> setting, since it would foul up the bond connectivity that
has already been assigned.
</P>
<P><B>Restrictions:</B>
</P>
<P>The <I>overlap</I> styles requires inter-processor communication to acquire
ghost atoms and build a neighbor list. This means that your system
must be ready to perform a simulation before using this command (force
fields setup, atom masses set, etc). Since a neighbor list is used to
find overlapping atom pairs, it also means that you must define a
<A HREF = "pair_style.html">pair style</A> with force cutoffs greater than or equal
to the desired overlap cutoff between pairs of relevant atom types,
even though the pair potential will not be evaluated.
</P>
<P>If the <A HREF = "special_bonds.html">special_bonds</A> command is used with a
setting of 0, then a pair of bonded atoms (1-2, 1-3, or 1-4) will not
appear in the neighbor list, and thus will not be considered for
deletion by the <I>overlap</I> styles. You probably don't want to be
deleting one atom in a bonded pair anyway.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "create_atoms.html">create_atoms</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are compress = yes.
</P>
</HTML>
diff --git a/doc/delete_atoms.txt b/doc/delete_atoms.txt
index f8c6b5804..5a613a352 100644
--- a/doc/delete_atoms.txt
+++ b/doc/delete_atoms.txt
@@ -1,103 +1,103 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
delete_atoms command :h3
[Syntax:]
delete_atoms style args keyword value ... :pre
style = {group} or {region} or {overlap} or {porosity} :ulb,l
{group} args = group-ID
{region} args = region-ID
{overlap} args = cutoff group1-ID group2-ID
cutoff = delete one atom from pairs of atoms within the cutoff (distance units)
group1-ID = one atom in pair must be in this group
group2-ID = other atom in pair must be in this group
{porosity} args = region-ID fraction seed
region-ID = region within which to perform deletions
fraction = delete this fraction of atoms
seed = random number seed (positive integer) :pre
zero or more keyword/value pairs may be appended :l
keyword = {compress} :l
{compress} value = {no} or {yes} :pre
:ule
[Examples:]
delete_atoms group edge
delete_atoms region sphere compress no
delete_atoms overlap 0.3 all all
delete_atoms overlap 0.5 solvent colloid
-delete_atoms porosity cube 0.1 :pre
+delete_atoms porosity cube 0.1 482793 :pre
[Description:]
Delete the specified atoms. This command can be used to carve out
voids from a block of material or to delete created atoms that are too
close to each other (e.g. at a grain boundary).
For style {group}, all atoms belonging to the group are deleted.
For style {region}, all atoms in the region volume are deleted.
For style {overlap} pairs of atoms whose distance of separation is
within the specified cutoff distance are searched for, and one of the
2 atoms is deleted. Only pairs where one of the two atoms is in the
first group specified and the other atom is in the second group are
considered. The atom that is in the first group is the one that is
deleted.
Note that it is OK for the two group IDs to be the same (e.g. group
{all}), or for some atoms to be members of both groups. In these
cases, either atom in the pair may be deleted. Also note that if
there are atoms which are members of both groups, the only guarantee
is that at the end of the deletion operation, enough deletions will
have occurred that no atom pairs within the cutoff will remain
(subject to the group restriction). There is no guarantee that the
minimum number of atoms will be deleted, or that the same atoms will
be deleted when running on different numbers of processors.
For style {porosity} a specified {fraction} of atoms are deleted
within the specified region. For example, if fraction is 0.1, then
10% of the atoms will be deleted. The atoms to delete are chosen
randomly. There is no guarantee that the exact fraction of atoms will
be deleted, or that the same atoms will be deleted when running on
different numbers of processors.
If the {compress} keyword is set to {yes}, then after atoms are
deleted, then atom IDs are re-assigned so that they run from 1 to the
number of atoms in the system. This is not done for molecular systems
(see the "atom_style"_atom_style.html command), regardless of the
{compress} setting, since it would foul up the bond connectivity that
has already been assigned.
[Restrictions:]
The {overlap} styles requires inter-processor communication to acquire
ghost atoms and build a neighbor list. This means that your system
must be ready to perform a simulation before using this command (force
fields setup, atom masses set, etc). Since a neighbor list is used to
find overlapping atom pairs, it also means that you must define a
"pair style"_pair_style.html with force cutoffs greater than or equal
to the desired overlap cutoff between pairs of relevant atom types,
even though the pair potential will not be evaluated.
If the "special_bonds"_special_bonds.html command is used with a
setting of 0, then a pair of bonded atoms (1-2, 1-3, or 1-4) will not
appear in the neighbor list, and thus will not be considered for
deletion by the {overlap} styles. You probably don't want to be
deleting one atom in a bonded pair anyway.
[Related commands:]
"create_atoms"_create_atoms.html
[Default:]
The option defaults are compress = yes.
diff --git a/doc/fix_nh.html b/doc/fix_nh.html
index 757319b5c..af7ec64a5 100644
--- a/doc/fix_nh.html
+++ b/doc/fix_nh.html
@@ -1,514 +1,545 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>fix nvt command
</H3>
<H3>fix nvt/cuda command
</H3>
<H3>fix npt command
</H3>
<H3>fix npt/cuda command
</H3>
<H3>fix nph command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>fix ID group-ID style_name keyword value ...
</PRE>
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<LI>style_name = <I>nvt</I> or <I>npt</I> or <I>nph</I>
<PRE>one or more keyword value pairs may be appended
keyword = <I>temp</I> or <I>iso</I> or <I>aniso</I> or <I>tri</I> or <I>x</I> or <I>y</I> or <I>z</I> or <I>xy</I> or <I>yz</I> or <I>xz</I> or <I>couple</I> or <I>tchain</I> or <I>pchain</I> or <I>mtk</I> or <I>tloop</I> or <I>ploop</I> or <I>nreset</I> or <I>drag</I> or <I>dilate</I>
<I>temp</I> values = Tstart Tstop Tdamp
Tstart,Tstop = external temperature at start/end of run
Tdamp = temperature damping parameter (time units)
<I>iso</I> or <I>aniso</I> or <I>tri</I> values = Pstart Pstop Pdamp
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
Pdamp = pressure damping parameter (time units)
<I>x</I> or <I>y</I> or <I>z</I> or <I>xy</I> or <I>yz</I> or <I>xz</I> values = Pstart Pstop Pdamp
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
Pdamp = stress damping parameter (time units)
<I>couple</I> = <I>none</I> or <I>xyz</I> or <I>xy</I> or <I>yz</I> or <I>xz</I>
<I>tchain</I> value = length of thermostat chain (1 = single thermostat)
<I>pchain</I> values = length of thermostat chain on barostat (0 = no thermostat)
<I>mtk</I> value = <I>yes</I> or <I>no</I> = add in MTK adjustment term or not
<I>tloop</I> value = number of sub-cycles to perform on thermostat
<I>ploop</I> value = number of sub-cycles to perform on barostat thermostat
<I>nreset</I> value = reset reference cell every this many timesteps
<I>drag</I> value = drag factor added to barostat/thermostat (0.0 = no drag)
- <I>dilate</I> value = <I>all</I> or <I>partial</I>
+ <I>dilate</I> value = <I>all</I> or <I>partial</I>
+ <I>scaleyz</I> value = <I>yes</I> or <I>no</I> = scale yz with lz
+ <I>scalexz</I> value = <I>yes</I> or <I>no</I> = scale xz with lz
+ <I>scalexy</I> value = <I>yes</I> or <I>no</I> = scale xy with ly
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>fix 1 all nvt temp 300.0 300.0 100.0
fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
fix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0
fix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000
</PRE>
<P><B>Description:</B>
</P>
<P>These commands perform time integration on Nose-Hoover style
non-Hamiltonian equations of motion which are designed to generate
positions and velocities sampled from the canonical (nvt),
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. This is
achieved by adding some dynamic variables which are coupled to the
particle velocities (thermostatting) and simulation domain dimensions
(barostatting). In addition to basic thermostatting and barostatting,
these fixes can also create a chain of thermostats coupled to the
particle thermostat, and another chain of thermostats coupled to the
barostat variables. The barostat can be coupled to the overall box
volume, or to individual dimensions, including the <I>xy</I>, <I>xz</I> and <I>yz</I>
tilt dimensions. The external pressure of the barostat can be
specified as either a scalar pressure (isobaric ensemble) or as
components of a symmetric stress tensor (constant stress ensemble).
When used correctly, the time-averaged temperature and stress tensor
of the particles will match the target values specified by
Tstart/Tstop and Pstart/Pstop.
</P>
<P>The equations of motion used are those of Shinoda et al. in
<A HREF = "#Shinoda">(Shinoda)</A>, which combine the hydrostatic equations of
Martyna, Tobias and Klein in <A HREF = "#Martyna">(Martyna)</A> with the strain
energy proposed by Parrinello and Rahman in
<A HREF = "#Parrinello">(Parrinello)</A>. The time integration schemes closely
follow the time-reversible measure-preserving Verlet and
rRESPA integrators derived by Tuckerman et al. in <A HREF = "#Tuckerman">(Tuckerman)</A>.
</P>
<HR>
<P>The thermostat for fix styles <I>nvt</I> and <I>npt</I> is specified using the
<I>temp</I> keyword. Other thermostat-related keywords are <I>tchain</I>,
<I>tloop</I> and <I>drag</I>, which are discussed below.
</P>
<P>The thermostat is applied to only the translational degrees of freedom
for the particles. The translational degrees of freedom can also have
a bias velocity removed before thermostatting takes place; see the
description below. The desired temperature at each timestep is a
ramped value during the run from <I>Tstart</I> to <I>Tstop</I>. The <I>Tdamp</I>
parameter is specified in time units and determines how rapidly the
temperature is relaxed. For example, a value of 10.0 means to relax
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
fmsec or psec - see the <A HREF = "units.html">units</A> command). The atoms in the
fix group are the only ones whose velocities and positions are updated
by the velocity/position update portion of the integration.
</P>
<P>IMPORTANT NOTE: A Nose-Hoover thermostat will not work well for
arbitrary values of <I>Tdamp</I>. If <I>Tdamp</I> is too small, the temperature
can fluctuate wildly; if it is too large, the temperature will take a
very long time to equilibrate. A good choice for many models is a
<I>Tdamp</I> of around 100 timesteps. Note that this is NOT the same as
100 time units for most <A HREF = "units.html">units</A> settings.
</P>
<HR>
<P>The barostat for fix styles <I>npt</I> and <I>nph</I> is specified using one or
more of the <I>iso</I>, <I>aniso</I>, <I>tri</I>, <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>,
and <I>couple</I> keywords. These keywords give you the ability to specify
all 6 components of an external stress tensor, and to couple various
of these components together so that the dimensions they represent are
varied together during a constant-pressure simulation.
</P>
<P>Other barostat-related keywords are <I>pchain</I>, <I>mtk</I>, <I>ploop</I>,
<I>nreset</I>, <I>drag</I>, and <I>dilate</I>, which are discussed below.
</P>
<P>Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
dimensions (x,y,z,xy,xz,yz). The <A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read
data</A>, and <A HREF = "read_restart.html">read_restart</A> commands
specify whether the simulation box is orthogonal or non-orthogonal
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
</P>
<P>The target pressures for each of the 6 components of the stress tensor
can be specified independently via the <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>
keywords, which correspond to the 6 simulation box dimensions. For
each component, the external pressure or tensor component at each
timestep is a ramped value during the run from <I>Pstart</I> to <I>Pstop</I>.
If a target pressure is specified for a component, then the
corresponding box dimension will change during a simulation. For
example, if the <I>y</I> keyword is used, the y-box length will change. If
the <I>xy</I> keyword is used, the xy tilt factor will change. A box
dimension will not change if that component is not specified, although
you have the option to change that dimension via the <A HREF = "fix_deform.html">fix
deform</A> command.
</P>
<P>Note that in order to use the <I>xy</I>, <I>xz</I>, or <I>yz</I> keywords, the
simulation box must be triclinic, even if its initial tilt factors are
0.0.
</P>
<P>For all barostat keywords, the <I>Pdamp</I> parameter operates like the
<I>Tdamp</I> parameter, determining the time scale on which pressure is
relaxed. For example, a value of 10.0 means to relax the pressure in
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
the <A HREF = "units.html">units</A> command).
</P>
<P>IMPORTANT NOTE: A Nose-Hoover barostat will not work well for
arbitrary values of <I>Pdamp</I>. If <I>Pdamp</I> is too small, the pressure
and volume can fluctuate wildly; if it is too large, the pressure will
take a very long time to equilibrate. A good choice for many models
is a <I>Pdamp</I> of around 1000 timesteps. Note that this is NOT the same
as 1000 time units for most <A HREF = "units.html">units</A> settings.
</P>
<P>Regardless of what atoms are in the fix group, a global pressure or
stress tensor is computed for all atoms. Similarly, when the size of
the simulation box is changed, all atoms are re-scaled to new
positions, unless the keyword <I>dilate</I> is specified with a value of
<I>partial</I>, in which case only the atoms in the fix group are
re-scaled. The latter can be useful for leaving the coordinates of
atoms in a solid substrate unchanged and controlling the pressure of a
surrounding fluid.
</P>
<HR>
<P>The <I>couple</I> keyword allows two or three of the diagonal components of
the pressure tensor to be "coupled" together. The value specified
with the keyword determines which are coupled. For example, <I>xz</I>
means the <I>Pxx</I> and <I>Pzz</I> components of the stress tensor are coupled.
<I>Xyz</I> means all 3 diagonal components are coupled. Coupling means two
things: the instantaneous stress will be computed as an average of the
corresponding diagonal components, and the coupled box dimensions will
be changed together in lockstep, meaning coupled dimensions will be
dilated or contracted by the same percentage every timestep. The
<I>Pstart</I>, <I>Pstop</I>, <I>Pdamp</I> parameters for any coupled dimensions must
be identical. <I>Couple xyz</I> can be used for a 2d simulation; the <I>z</I>
dimension is simply ignored.
</P>
<HR>
<P>The <I>iso</I>, <I>aniso</I>, and <I>tri</I> keywords are simply shortcuts that are
equivalent to specifying several other keywords together.
</P>
<P>The keyword <I>iso</I> means couple all 3 diagonal components together when
pressure is computed (hydrostatic pressure), and dilate/contract the
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
specifying these 4 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple xyz
</PRE>
<P>The keyword <I>aniso</I> means <I>x</I>, <I>y</I>, and <I>z</I> dimensions are controlled
independently using the <I>Pxx</I>, <I>Pyy</I>, and <I>Pzz</I> components of the
stress tensor as the driving forces, and the specified scalar external
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
these 4 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple none
</PRE>
<P>The keyword <I>tri</I> means <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, and <I>yz</I> dimensions
are controlled independently using their individual stress components
as the driving forces, and the specified scalar pressure as the
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
specifying these 7 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
xy 0.0 0.0 Pdamp
yz 0.0 0.0 Pdamp
xz 0.0 0.0 Pdamp
couple none
</PRE>
<HR>
<P>In some cases (e.g. for solids) the pressure (volume) and/or
temperature of the system can oscillate undesirably when a Nose/Hoover
barostat and thermostat is applied. The optional <I>drag</I> keyword will
damp these oscillations, although it alters the Nose/Hoover equations.
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
A non-zero value adds a drag term; the larger the value specified, the
greater the damping effect. Performing a short run and monitoring the
pressure and temperature is the best way to determine if the drag term
is working. Typically a value between 0.2 to 2.0 is sufficient to
damp oscillations after a few periods. Note that use of the drag
keyword will interfere with energy conservation and will also change
the distribution of positions and velocities so that they do not
correspond to the nominal NVT, NPT, or NPH ensembles.
</P>
<P>An alternative way to control initial oscillations is to use chain
thermostats. The keyword <I>tchain</I> determines the number of thermostats
in the particle thermostat. A value of 1 corresponds to the original
Nose-Hoover thermostat. The keyword <I>pchain</I> specifies the number of
thermostats in the chain thermostatting the barostat degrees of
freedom. A value of 0 corresponds to no thermostatting of the
barostat variables.
</P>
<P>The <I>mtk</I> keyword controls whether or not the correction terms due to
Martyna, Tuckerman, and Klein are included in the equations of motion
<A HREF = "#Martyna">(Martyna)</A>. Specifying <I>no</I> reproduces the original
Hoover barostat, whose volume probability distribution function
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence
using <I>yes</I> is more correct, but in many cases the difference is
negligible.
</P>
<P>The keyword <I>tloop</I> can be used to improve the accuracy of integration
scheme at little extra cost. The initial and final updates of the
thermostat variables are broken up into <I>tloop</I> substeps, each of
length <I>dt</I>/<I>tloop</I>. This corresponds to using a first-order
Suzuki-Yoshida scheme <A HREF = "#Tuckerman2006">(Tuckerman2006)</A>. The keyword
<I>ploop</I> does the same thing for the barostat thermostat.
</P>
<P>The keyword <I>nreset</I> controls how often the reference dimensions used
to define the strain energy are reset. If this keyword is not used,
or is given a value of zero, then the reference dimensions are set to
those of the initial simulation domain and are never changed. If the
simulation domain changes significantly during the simulation, then
the final average pressure tensor will differ significantly from the
specified values of the external stress tensor. A value of <I>nstep</I>
means that every <I>nstep</I> timesteps, the reference dimensions are set
to those of the current simulation domain.
</P>
+<P>The <I>scaleyz</I>, <I>scalexz</I>, and <I>scalexy</I> keywords control whether or
+not the corresponding tilt factors are scaled with the
+associated box dimensions
+when barostatting triclinic periodic cells.
+The default values <I>yes</I> will turn on scaling, which corresponds to
+adjusting the linear dimensions of the cell while preserving its shape.
+Choosing <I>no</I> ensures that the tilt factors are not scaled with the
+box dimensions. See below for restrictions and default values in different
+situations. In older versions of LAMMPS, scaling of tilt factors was not
+performed. The old behavior can be recovered by setting all three
+scale keywords to <I>no</I>.
+</P>
<HR>
<P>IMPORTANT NOTE: Using a barostat coupled to tilt dimensions <I>xy</I>,
<I>xz</I>, <I>yz</I> can sometimes result in arbitrarily large values of the
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
-imposes reasonable limits on how large the tilt values can be, and
-exits with an error if these are exceeded. This error typically
+allows the tilt factors to grow a little beyond the normal limit
+of half the box length (0.6 times the box length), and then performs
+flipping or re-shaping to an equivalent periodic cell. The re-shaping
+operation is described in more detail in the doc page for
+<A HREF = "fix_deform.html">fix deform</A>. Both the barostat dynamics and
+the atom trajectories are unaffected by this operation. However,
+if a tilt factor is incremented by a large amount (1.5 times the
+box length) on a single timestep, LAMMPS can not accomodate
+this event and will terminate the simulation
+with an error. This error typically
indicates that there is something badly wrong with how the simulation
-was constructed. The three most common sources of this error are
-using keyword <I>tri</I> on a liquid system, specifying an external shear
-stress tensor that exceeds the yield stress of the solid, and
-specifying values of <I>Pstart</I> that are too far from the current stress
-value. In other words, triclinic barostatting should be used with
-care. This also is true for other barostat styles, although they tend
-to be more forgiving of insults.
+was constructed, such as specifying values of <I>Pstart</I> that are
+too far from the current stress value, or specifying a timestep that
+is too large. Triclinic barostatting should be used with
+care. This also is true for other barostat styles, although they tend
+to be more forgiving of insults. In particular, it is important to
+recognize that equilibrium liquids can not support a shear stress and
+that equilibrium solids can not support shear stresses that exceed the yield stress.
</P>
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_temp_berendsen.html">fix
temp/berendsen</A> command which performs
thermostatting but NO time integration, these fixes perform
thermostatting/barostatting AND time integration. Thus you should not
use any other time integration fix, such as <A HREF = "fix_nve.html">fix nve</A> on
atoms to which this fix is applied. Likewise, the <I>temp</I> options for
fix nvt and fix npt should not normally be used on atoms that also
have their temperature controlled by another fix - e.g. by <A HREF = "fix_nh.html">fix
langevin</A> or <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>
commands.
</P>
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
discussion of different ways to compute temperature and perform
thermostatting and barostatting.
</P>
<HR>
<P>These fixes compute a temperature and pressure each timestep. To do
this, the fix creates its own computes of style "temp" and "pressure",
as if one of these two sets of commands had been issued:
</P>
<PRE>compute fix-ID_temp group-ID temp
compute fix-ID_press group-ID pressure fix-ID_temp
</PRE>
<PRE>compute fix-ID_temp all temp
compute fix-ID_press all pressure fix-ID_temp
</PRE>
<P>See the <A HREF = "compute_temp.html">compute temp</A> and <A HREF = "compute_pressure.html">compute
pressure</A> commands for details. Note that the
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
+ underscore + "press". For fix nvt, the group for the new computes
is the same as the fix group. For fix nph and fix npt, the group for
the new computes is "all" since pressure is computed for the entire
system.
</P>
<P>Note that these are NOT the computes used by thermodynamic output (see
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>
and <I>thermo_press</I>. This means you can change the attributes of this
fix's temperature or pressure via the
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
or pressure during thermodynamic output via the <A HREF = "thermo_style.html">thermo_style
custom</A> command using the appropriate compute-ID.
It also means that changing attributes of <I>thermo_temp</I> or
<I>thermo_press</I> will have no effect on this fix.
</P>
<P>Like other fixes that perform thermostatting, fix nvt and fix npt can
be used with <A HREF = "compute.html">compute commands</A> that calculate a
temperature after removing a "bias" from the atom velocities.
E.g. removing the center-of-mass velocity from a group of atoms or
only calculating temperature on the x-component of velocity or only
calculating temperature for atoms in a geometric region. This is not
done by default, but only if the <A HREF = "fix_modify.html">fix_modify</A> command
is used to assign a temperature compute to this fix that includes such
a bias term. See the doc pages for individual <A HREF = "compute.html">compute
commands</A> to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
</P>
<HR>
<P>Styles with a <I>cuda</I> suffix are functionally the same as the
corresponding style without the suffix. They have been optimized to
run faster, depending on your available hardware, as discussed in
<A HREF = "Section_accelerate.html">this section</A> of the manual. The accelerated
styles take the same arguments and should produce the same results,
except for round-off and precision issues.
</P>
<P>These accelerated styles are part of the "user-cuda" package. They
are only enabled if LAMMPS was built with that package. See the
<A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for more info.
</P>
<P>You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the <A HREF = "Section_start.html#2_6">-suffix command-line
switch</A> when you invoke LAMMPS, or you can use
the <A HREF = "suffix.html">suffix</A> command in your input script.
</P>
<P>See <A HREF = "Section_accelerate.html">this section</A> of the manual for more
instructions on how to use the accelerated styles effectively.
</P>
<HR>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P>
<P>These fixes writes the state of all the thermostat and barostat
variables to <A HREF = "restart.html">binary restart files</A>. See the
<A HREF = "read_restart.html">read_restart</A> command for info on how to re-specify
a fix in an input script that reads a restart file, so that the
operation of the fix continues in an uninterrupted fashion.
</P>
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> and <I>press</I> options are
supported by these fixes. You can use them to assign a
<A HREF = "compute.html">compute</A> you have defined to this fix which will be used
in its thermostatting or barostatting procedure, as described above.
If you do this, note that the kinetic energy derived from the compute
temperature should be consistent with the virial term computed using
all atoms for the pressure. LAMMPS will warn you if you choose to
compute temperature on a subset of atoms.
</P>
<P>IMPORTANT NOTE: If both the <I>temp</I> and <I>press</I> keywords are used in a
single thermo_modify command (or in two separate commands), then the
order in which the keywords are specified is important. Note that a
<A HREF = "compute_pressure.html">pressure compute</A> defines its own temperature
compute as an argument when it is specified. The <I>temp</I> keyword will
override this (for the pressure compute being used by fix npt), but
only if the <I>temp</I> keyword comes after the <I>press</I> keyword. If the
<I>temp</I> keyword comes before the <I>press</I> keyword, then the new pressure
compute specified by the <I>press</I> keyword will be unaffected by the
<I>temp</I> setting.
</P>
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by these
fixes to add the energy change induced by Nose/Hoover thermostatting
and barostatting to the system's potential energy as part of
<A HREF = "thermo_style.html">thermodynamic output</A>.
</P>
<P>These fixes compute a global scalar and a global vector of quantities,
which can be accessed by various <A HREF = "Section_howto.html#4_15">output
commands</A>. The scalar value calculated by
these fixes is "extensive"; the vector values are "intensive".
</P>
<P>The scalar is the cumulative energy change due to the fix.
</P>
<P>The vector stores internal Nose/Hoover thermostat and barostat
variables. The number and meaning of the vector values depends on
which fix is used and the settings for keywords <I>tchain</I> and <I>pchain</I>,
which specify the number of Nose/Hoover chains for the thermostat and
barostat. If no thermostatting is done, then <I>tchain</I> is 0. If no
barostatting is done, then <I>pchain</I> is 0. In the following list,
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
the barostat. Its value is 0 if no barostat is used, else its value
is 6 if any off-diagonal stress tensor component is barostatted, else
its value is 1 if <I>couple xyz</I> is used or <I>couple xy</I> for a 2d
simulation, otherwise its value is 3.
</P>
<P>The order of values in the global vector and their meaning is as
follows. The notation means there are tchain values for eta, followed
by tchain for eta_dot, followed by ndof for omega, etc:
</P>
<UL><LI>eta[tchain] = particle thermostat displacements
<LI>eta_dot[tchain] = particle thermostat velocities
<LI>omega[ndof] = barostat displacements
<LI>omega_dot[ndof] = barostat velocities
<LI>etap[pchain] = barostat thermostat displacements
<LI>etap_dot[pchain] = barostat thermostat velocities
<LI>PE_eta[tchain] = potential energy of each particle thermostat displacement
<LI>KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity
<LI>PE_omega[ndof] = potential energy of each barostat displacement
<LI>KE_omega_dot[ndof] = kinetic energy of each barostat velocity
<LI>PE_etap[pchain] = potential energy of each barostat thermostat displacement
<LI>KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity
<LI>PE_strain[1] = scalar strain energy
</UL>
<P>These fixes can ramp their external temperature and pressure over
multiple runs, using the <I>start</I> and <I>stop</I> keywords of the
<A HREF = "run.html">run</A> command. See the <A HREF = "run.html">run</A> command for details of
how to do this.
</P>
<P>These fixes are not invoked during <A HREF = "minimize.html">energy
minimization</A>.
</P>
<P>These fixes can be used with either the <I>verlet</I> or <I>respa</I>
<A HREF = "run_style.html">integrators</A>. When using one of the barostat fixes
with <I>respa</I>, LAMMPS uses an integrator constructed
according to the following factorization of the Liouville propagator
(for two rRESPA levels):
</P>
<CENTER><IMG SRC = "Eqs/fix_nh1.jpg">
</CENTER>
<P>This factorization differs somewhat from that of Tuckerman et al., in that
the barostat is only updated at the outermost rRESPA level, whereas
Tuckerman's factorization requires splitting the pressure into pieces
corresponding to the forces computed at each rRESPA level. In theory, the
latter method will exhibit better numerical stability. In practice,
because Pdamp is normally chosen to be a large multiple of the
outermost rRESPA timestep, the barostat dynamics are not the
limiting factor for numerical stability. Both
factorizations are time-reversible and can be shown to preserve the phase
space measure of the underlying non-Hamiltonian equations of motion.
</P>
<P><B>Restrictions:</B>
</P>
<P>Non-periodic dimensions cannot be barostatted. <I>Z</I>, <I>xz</I>, and <I>yz</I>,
cannot be barostatted 2D simulations. <I>Xy</I>, <I>xz</I>, and <I>yz</I> can only
be barostatted if the simulation domain is triclinic and the 2nd
dimension in the keyword (<I>y</I> dimension in <I>xy</I>) is periodic. The
<A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read data</A>, and
<A HREF = "read_restart.html">read_restart</A> commands specify whether the
simulation box is orthogonal or non-orthogonal (triclinic) and explain
the meaning of the xy,xz,yz tilt factors.
</P>
<P>For the <I>temp</I> keyword, the final Tstop cannot be 0.0 since it would
make the external T = 0.0 at some timestep during the simulation which
is not allowed in the Nose/Hoover formulation.
</P>
+<P>The <I>scaleyz yes</I> and <I>scalexz yes</I> keyword/value pairs can not be used
+for 2D simulations. <I>scaleyz yes</I>, <I>scalexz yes</I>, and <I>scalexy yes</I> options
+can only be used if the 2nd dimension in the keyword is periodic,
+and if the tilt factor is not coupled to the barostat via keywords
+<I>tri</I>, <I>yz</I>, <I>xz</I>, and <I>xy</I>.
+</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "fix_nve.html">fix nve</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "run_style.html">run_style</A>
</P>
<P><B>Default:</B>
</P>
<P>The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop =
-ploop = 1, nreset = 0, drag = 0.0, dilate = all, and couple = none.
+ploop = 1, nreset = 0, drag = 0.0, dilate = all, couple = none,
+scaleyz = scalexz = scalexy = yes if periodic in 2nd dimension and
+not coupled to barostat, otherwise no.
</P>
<HR>
<A NAME = "Martyna"></A>
<P><B>(Martyna)</B> Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).
</P>
<A NAME = "Parrinello"></A>
<P><B>(Parrinello)</B> Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).
</P>
<A NAME = "Tuckerman"></A>
<P><B>(Tuckerman)</B> Tuckerman, Alejandre, Lopez-Rendon, Jochim, and
Martyna, J Phys A: Math Gen, 39, 5629 (2006).
</P>
<A NAME = "Shinoda"></A>
<P><B>(Shinoda)</B> Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
</P>
</HTML>
diff --git a/doc/fix_nh.txt b/doc/fix_nh.txt
index e44e24b16..898163708 100644
--- a/doc/fix_nh.txt
+++ b/doc/fix_nh.txt
@@ -1,498 +1,529 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix nvt command :h3
fix nvt/cuda command :h3
fix npt command :h3
fix npt/cuda command :h3
fix nph command :h3
[Syntax:]
fix ID group-ID style_name keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
style_name = {nvt} or {npt} or {nph} :l
one or more keyword value pairs may be appended
keyword = {temp} or {iso} or {aniso} or {tri} or {x} or {y} or {z} or {xy} or {yz} or {xz} or {couple} or {tchain} or {pchain} or {mtk} or {tloop} or {ploop} or {nreset} or {drag} or {dilate}
{temp} values = Tstart Tstop Tdamp
Tstart,Tstop = external temperature at start/end of run
Tdamp = temperature damping parameter (time units)
{iso} or {aniso} or {tri} values = Pstart Pstop Pdamp
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
Pdamp = pressure damping parameter (time units)
{x} or {y} or {z} or {xy} or {yz} or {xz} values = Pstart Pstop Pdamp
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
Pdamp = stress damping parameter (time units)
{couple} = {none} or {xyz} or {xy} or {yz} or {xz}
{tchain} value = length of thermostat chain (1 = single thermostat)
{pchain} values = length of thermostat chain on barostat (0 = no thermostat)
{mtk} value = {yes} or {no} = add in MTK adjustment term or not
{tloop} value = number of sub-cycles to perform on thermostat
{ploop} value = number of sub-cycles to perform on barostat thermostat
{nreset} value = reset reference cell every this many timesteps
{drag} value = drag factor added to barostat/thermostat (0.0 = no drag)
- {dilate} value = {all} or {partial} :pre
+ {dilate} value = {all} or {partial}
+ {scaleyz} value = {yes} or {no} = scale yz with lz
+ {scalexz} value = {yes} or {no} = scale xz with lz
+ {scalexy} value = {yes} or {no} = scale xy with ly :pre
:ule
[Examples:]
fix 1 all nvt temp 300.0 300.0 100.0
fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
fix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0
fix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000 :pre
[Description:]
These commands perform time integration on Nose-Hoover style
non-Hamiltonian equations of motion which are designed to generate
positions and velocities sampled from the canonical (nvt),
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. This is
achieved by adding some dynamic variables which are coupled to the
particle velocities (thermostatting) and simulation domain dimensions
(barostatting). In addition to basic thermostatting and barostatting,
these fixes can also create a chain of thermostats coupled to the
particle thermostat, and another chain of thermostats coupled to the
barostat variables. The barostat can be coupled to the overall box
volume, or to individual dimensions, including the {xy}, {xz} and {yz}
tilt dimensions. The external pressure of the barostat can be
specified as either a scalar pressure (isobaric ensemble) or as
components of a symmetric stress tensor (constant stress ensemble).
When used correctly, the time-averaged temperature and stress tensor
of the particles will match the target values specified by
Tstart/Tstop and Pstart/Pstop.
The equations of motion used are those of Shinoda et al. in
"(Shinoda)"_#Shinoda, which combine the hydrostatic equations of
Martyna, Tobias and Klein in "(Martyna)"_#Martyna with the strain
energy proposed by Parrinello and Rahman in
"(Parrinello)"_#Parrinello. The time integration schemes closely
follow the time-reversible measure-preserving Verlet and
rRESPA integrators derived by Tuckerman et al. in "(Tuckerman)"_#Tuckerman.
:line
The thermostat for fix styles {nvt} and {npt} is specified using the
{temp} keyword. Other thermostat-related keywords are {tchain},
{tloop} and {drag}, which are discussed below.
The thermostat is applied to only the translational degrees of freedom
for the particles. The translational degrees of freedom can also have
a bias velocity removed before thermostatting takes place; see the
description below. The desired temperature at each timestep is a
ramped value during the run from {Tstart} to {Tstop}. The {Tdamp}
parameter is specified in time units and determines how rapidly the
temperature is relaxed. For example, a value of 10.0 means to relax
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
fmsec or psec - see the "units"_units.html command). The atoms in the
fix group are the only ones whose velocities and positions are updated
by the velocity/position update portion of the integration.
IMPORTANT NOTE: A Nose-Hoover thermostat will not work well for
arbitrary values of {Tdamp}. If {Tdamp} is too small, the temperature
can fluctuate wildly; if it is too large, the temperature will take a
very long time to equilibrate. A good choice for many models is a
{Tdamp} of around 100 timesteps. Note that this is NOT the same as
100 time units for most "units"_units.html settings.
:line
The barostat for fix styles {npt} and {nph} is specified using one or
more of the {iso}, {aniso}, {tri}, {x}, {y}, {z}, {xy}, {xz}, {yz},
and {couple} keywords. These keywords give you the ability to specify
all 6 components of an external stress tensor, and to couple various
of these components together so that the dimensions they represent are
varied together during a constant-pressure simulation.
Other barostat-related keywords are {pchain}, {mtk}, {ploop},
{nreset}, {drag}, and {dilate}, which are discussed below.
Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
dimensions (x,y,z,xy,xz,yz). The "create_box"_create_box.html, "read
data"_read_data.html, and "read_restart"_read_restart.html commands
specify whether the simulation box is orthogonal or non-orthogonal
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
The target pressures for each of the 6 components of the stress tensor
can be specified independently via the {x}, {y}, {z}, {xy}, {xz}, {yz}
keywords, which correspond to the 6 simulation box dimensions. For
each component, the external pressure or tensor component at each
timestep is a ramped value during the run from {Pstart} to {Pstop}.
If a target pressure is specified for a component, then the
corresponding box dimension will change during a simulation. For
example, if the {y} keyword is used, the y-box length will change. If
the {xy} keyword is used, the xy tilt factor will change. A box
dimension will not change if that component is not specified, although
you have the option to change that dimension via the "fix
deform"_fix_deform.html command.
Note that in order to use the {xy}, {xz}, or {yz} keywords, the
simulation box must be triclinic, even if its initial tilt factors are
0.0.
For all barostat keywords, the {Pdamp} parameter operates like the
{Tdamp} parameter, determining the time scale on which pressure is
relaxed. For example, a value of 10.0 means to relax the pressure in
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
the "units"_units.html command).
IMPORTANT NOTE: A Nose-Hoover barostat will not work well for
arbitrary values of {Pdamp}. If {Pdamp} is too small, the pressure
and volume can fluctuate wildly; if it is too large, the pressure will
take a very long time to equilibrate. A good choice for many models
is a {Pdamp} of around 1000 timesteps. Note that this is NOT the same
as 1000 time units for most "units"_units.html settings.
Regardless of what atoms are in the fix group, a global pressure or
stress tensor is computed for all atoms. Similarly, when the size of
the simulation box is changed, all atoms are re-scaled to new
positions, unless the keyword {dilate} is specified with a value of
{partial}, in which case only the atoms in the fix group are
re-scaled. The latter can be useful for leaving the coordinates of
atoms in a solid substrate unchanged and controlling the pressure of a
surrounding fluid.
:line
The {couple} keyword allows two or three of the diagonal components of
the pressure tensor to be "coupled" together. The value specified
with the keyword determines which are coupled. For example, {xz}
means the {Pxx} and {Pzz} components of the stress tensor are coupled.
{Xyz} means all 3 diagonal components are coupled. Coupling means two
things: the instantaneous stress will be computed as an average of the
corresponding diagonal components, and the coupled box dimensions will
be changed together in lockstep, meaning coupled dimensions will be
dilated or contracted by the same percentage every timestep. The
{Pstart}, {Pstop}, {Pdamp} parameters for any coupled dimensions must
be identical. {Couple xyz} can be used for a 2d simulation; the {z}
dimension is simply ignored.
:line
The {iso}, {aniso}, and {tri} keywords are simply shortcuts that are
equivalent to specifying several other keywords together.
The keyword {iso} means couple all 3 diagonal components together when
pressure is computed (hydrostatic pressure), and dilate/contract the
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
specifying these 4 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple xyz :pre
The keyword {aniso} means {x}, {y}, and {z} dimensions are controlled
independently using the {Pxx}, {Pyy}, and {Pzz} components of the
stress tensor as the driving forces, and the specified scalar external
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
these 4 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple none :pre
The keyword {tri} means {x}, {y}, {z}, {xy}, {xz}, and {yz} dimensions
are controlled independently using their individual stress components
as the driving forces, and the specified scalar pressure as the
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
specifying these 7 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
xy 0.0 0.0 Pdamp
yz 0.0 0.0 Pdamp
xz 0.0 0.0 Pdamp
couple none :pre
:line
In some cases (e.g. for solids) the pressure (volume) and/or
temperature of the system can oscillate undesirably when a Nose/Hoover
barostat and thermostat is applied. The optional {drag} keyword will
damp these oscillations, although it alters the Nose/Hoover equations.
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
A non-zero value adds a drag term; the larger the value specified, the
greater the damping effect. Performing a short run and monitoring the
pressure and temperature is the best way to determine if the drag term
is working. Typically a value between 0.2 to 2.0 is sufficient to
damp oscillations after a few periods. Note that use of the drag
keyword will interfere with energy conservation and will also change
the distribution of positions and velocities so that they do not
correspond to the nominal NVT, NPT, or NPH ensembles.
An alternative way to control initial oscillations is to use chain
thermostats. The keyword {tchain} determines the number of thermostats
in the particle thermostat. A value of 1 corresponds to the original
Nose-Hoover thermostat. The keyword {pchain} specifies the number of
thermostats in the chain thermostatting the barostat degrees of
freedom. A value of 0 corresponds to no thermostatting of the
barostat variables.
The {mtk} keyword controls whether or not the correction terms due to
Martyna, Tuckerman, and Klein are included in the equations of motion
"(Martyna)"_#Martyna. Specifying {no} reproduces the original
Hoover barostat, whose volume probability distribution function
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence
using {yes} is more correct, but in many cases the difference is
negligible.
The keyword {tloop} can be used to improve the accuracy of integration
scheme at little extra cost. The initial and final updates of the
thermostat variables are broken up into {tloop} substeps, each of
length {dt}/{tloop}. This corresponds to using a first-order
Suzuki-Yoshida scheme "(Tuckerman2006)"_#Tuckerman2006. The keyword
{ploop} does the same thing for the barostat thermostat.
The keyword {nreset} controls how often the reference dimensions used
to define the strain energy are reset. If this keyword is not used,
or is given a value of zero, then the reference dimensions are set to
those of the initial simulation domain and are never changed. If the
simulation domain changes significantly during the simulation, then
the final average pressure tensor will differ significantly from the
specified values of the external stress tensor. A value of {nstep}
means that every {nstep} timesteps, the reference dimensions are set
to those of the current simulation domain.
+The {scaleyz}, {scalexz}, and {scalexy} keywords control whether or
+not the corresponding tilt factors are scaled with the
+associated box dimensions
+when barostatting triclinic periodic cells.
+The default values {yes} will turn on scaling, which corresponds to
+adjusting the linear dimensions of the cell while preserving its shape.
+Choosing {no} ensures that the tilt factors are not scaled with the
+box dimensions. See below for restrictions and default values in different
+situations. In older versions of LAMMPS, scaling of tilt factors was not
+performed. The old behavior can be recovered by setting all three
+scale keywords to {no}.
+
:line
IMPORTANT NOTE: Using a barostat coupled to tilt dimensions {xy},
{xz}, {yz} can sometimes result in arbitrarily large values of the
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
-imposes reasonable limits on how large the tilt values can be, and
-exits with an error if these are exceeded. This error typically
+allows the tilt factors to grow a little beyond the normal limit
+of half the box length (0.6 times the box length), and then performs
+flipping or re-shaping to an equivalent periodic cell. The re-shaping
+operation is described in more detail in the doc page for
+"fix deform"_fix_deform.html. Both the barostat dynamics and
+the atom trajectories are unaffected by this operation. However,
+if a tilt factor is incremented by a large amount (1.5 times the
+box length) on a single timestep, LAMMPS can not accomodate
+this event and will terminate the simulation
+with an error. This error typically
indicates that there is something badly wrong with how the simulation
-was constructed. The three most common sources of this error are
-using keyword {tri} on a liquid system, specifying an external shear
-stress tensor that exceeds the yield stress of the solid, and
-specifying values of {Pstart} that are too far from the current stress
-value. In other words, triclinic barostatting should be used with
-care. This also is true for other barostat styles, although they tend
-to be more forgiving of insults.
+was constructed, such as specifying values of {Pstart} that are
+too far from the current stress value, or specifying a timestep that
+is too large. Triclinic barostatting should be used with
+care. This also is true for other barostat styles, although they tend
+to be more forgiving of insults. In particular, it is important to
+recognize that equilibrium liquids can not support a shear stress and
+that equilibrium solids can not support shear stresses that exceed the yield stress.
IMPORTANT NOTE: Unlike the "fix
temp/berendsen"_fix_temp_berendsen.html command which performs
thermostatting but NO time integration, these fixes perform
thermostatting/barostatting AND time integration. Thus you should not
use any other time integration fix, such as "fix nve"_fix_nve.html on
atoms to which this fix is applied. Likewise, the {temp} options for
fix nvt and fix npt should not normally be used on atoms that also
have their temperature controlled by another fix - e.g. by "fix
langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html
commands.
See "this howto section"_Section_howto.html#4_16 of the manual for a
discussion of different ways to compute temperature and perform
thermostatting and barostatting.
:line
These fixes compute a temperature and pressure each timestep. To do
this, the fix creates its own computes of style "temp" and "pressure",
as if one of these two sets of commands had been issued:
compute fix-ID_temp group-ID temp
compute fix-ID_press group-ID pressure fix-ID_temp :pre
compute fix-ID_temp all temp
compute fix-ID_press all pressure fix-ID_temp :pre
See the "compute temp"_compute_temp.html and "compute
pressure"_compute_pressure.html commands for details. Note that the
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
+ underscore + "press". For fix nvt, the group for the new computes
is the same as the fix group. For fix nph and fix npt, the group for
the new computes is "all" since pressure is computed for the entire
system.
Note that these are NOT the computes used by thermodynamic output (see
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
and {thermo_press}. This means you can change the attributes of this
fix's temperature or pressure via the
"compute_modify"_compute_modify.html command or print this temperature
or pressure during thermodynamic output via the "thermo_style
custom"_thermo_style.html command using the appropriate compute-ID.
It also means that changing attributes of {thermo_temp} or
{thermo_press} will have no effect on this fix.
Like other fixes that perform thermostatting, fix nvt and fix npt can
be used with "compute commands"_compute.html that calculate a
temperature after removing a "bias" from the atom velocities.
E.g. removing the center-of-mass velocity from a group of atoms or
only calculating temperature on the x-component of velocity or only
calculating temperature for atoms in a geometric region. This is not
done by default, but only if the "fix_modify"_fix_modify.html command
is used to assign a temperature compute to this fix that includes such
a bias term. See the doc pages for individual "compute
commands"_compute.html to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
:line
Styles with a {cuda} suffix are functionally the same as the
corresponding style without the suffix. They have been optimized to
run faster, depending on your available hardware, as discussed in
"this section"_Section_accelerate.html of the manual. The accelerated
styles take the same arguments and should produce the same results,
except for round-off and precision issues.
These accelerated styles are part of the "user-cuda" package. They
are only enabled if LAMMPS was built with that package. See the
"Making LAMMPS"_Section_start.html#2_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#2_6 when you invoke LAMMPS, or you can use
the "suffix"_suffix.html command in your input script.
See "this section"_Section_accelerate.html of the manual for more
instructions on how to use the accelerated styles effectively.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
These fixes writes the state of all the thermostat and barostat
variables to "binary restart files"_restart.html. See the
"read_restart"_read_restart.html command for info on how to re-specify
a fix in an input script that reads a restart file, so that the
operation of the fix continues in an uninterrupted fashion.
The "fix_modify"_fix_modify.html {temp} and {press} options are
supported by these fixes. You can use them to assign a
"compute"_compute.html you have defined to this fix which will be used
in its thermostatting or barostatting procedure, as described above.
If you do this, note that the kinetic energy derived from the compute
temperature should be consistent with the virial term computed using
all atoms for the pressure. LAMMPS will warn you if you choose to
compute temperature on a subset of atoms.
IMPORTANT NOTE: If both the {temp} and {press} keywords are used in a
single thermo_modify command (or in two separate commands), then the
order in which the keywords are specified is important. Note that a
"pressure compute"_compute_pressure.html defines its own temperature
compute as an argument when it is specified. The {temp} keyword will
override this (for the pressure compute being used by fix npt), but
only if the {temp} keyword comes after the {press} keyword. If the
{temp} keyword comes before the {press} keyword, then the new pressure
compute specified by the {press} keyword will be unaffected by the
{temp} setting.
The "fix_modify"_fix_modify.html {energy} option is supported by these
fixes to add the energy change induced by Nose/Hoover thermostatting
and barostatting to the system's potential energy as part of
"thermodynamic output"_thermo_style.html.
These fixes compute a global scalar and a global vector of quantities,
which can be accessed by various "output
commands"_Section_howto.html#4_15. The scalar value calculated by
these fixes is "extensive"; the vector values are "intensive".
The scalar is the cumulative energy change due to the fix.
The vector stores internal Nose/Hoover thermostat and barostat
variables. The number and meaning of the vector values depends on
which fix is used and the settings for keywords {tchain} and {pchain},
which specify the number of Nose/Hoover chains for the thermostat and
barostat. If no thermostatting is done, then {tchain} is 0. If no
barostatting is done, then {pchain} is 0. In the following list,
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
the barostat. Its value is 0 if no barostat is used, else its value
is 6 if any off-diagonal stress tensor component is barostatted, else
its value is 1 if {couple xyz} is used or {couple xy} for a 2d
simulation, otherwise its value is 3.
The order of values in the global vector and their meaning is as
follows. The notation means there are tchain values for eta, followed
by tchain for eta_dot, followed by ndof for omega, etc:
eta\[tchain\] = particle thermostat displacements
eta_dot\[tchain\] = particle thermostat velocities
omega\[ndof\] = barostat displacements
omega_dot\[ndof\] = barostat velocities
etap\[pchain\] = barostat thermostat displacements
etap_dot\[pchain\] = barostat thermostat velocities
PE_eta\[tchain\] = potential energy of each particle thermostat displacement
KE_eta_dot\[tchain\] = kinetic energy of each particle thermostat velocity
PE_omega\[ndof\] = potential energy of each barostat displacement
KE_omega_dot\[ndof\] = kinetic energy of each barostat velocity
PE_etap\[pchain\] = potential energy of each barostat thermostat displacement
KE_etap_dot\[pchain\] = kinetic energy of each barostat thermostat velocity
PE_strain\[1\] = scalar strain energy :ul
These fixes can ramp their external temperature and pressure over
multiple runs, using the {start} and {stop} keywords of the
"run"_run.html command. See the "run"_run.html command for details of
how to do this.
These fixes are not invoked during "energy
minimization"_minimize.html.
These fixes can be used with either the {verlet} or {respa}
"integrators"_run_style.html. When using one of the barostat fixes
with {respa}, LAMMPS uses an integrator constructed
according to the following factorization of the Liouville propagator
(for two rRESPA levels):
:c,image(Eqs/fix_nh1.jpg)
This factorization differs somewhat from that of Tuckerman et al., in that
the barostat is only updated at the outermost rRESPA level, whereas
Tuckerman's factorization requires splitting the pressure into pieces
corresponding to the forces computed at each rRESPA level. In theory, the
latter method will exhibit better numerical stability. In practice,
because Pdamp is normally chosen to be a large multiple of the
outermost rRESPA timestep, the barostat dynamics are not the
limiting factor for numerical stability. Both
factorizations are time-reversible and can be shown to preserve the phase
space measure of the underlying non-Hamiltonian equations of motion.
[Restrictions:]
Non-periodic dimensions cannot be barostatted. {Z}, {xz}, and {yz},
cannot be barostatted 2D simulations. {Xy}, {xz}, and {yz} can only
be barostatted if the simulation domain is triclinic and the 2nd
dimension in the keyword ({y} dimension in {xy}) is periodic. The
"create_box"_create_box.html, "read data"_read_data.html, and
"read_restart"_read_restart.html commands specify whether the
simulation box is orthogonal or non-orthogonal (triclinic) and explain
the meaning of the xy,xz,yz tilt factors.
For the {temp} keyword, the final Tstop cannot be 0.0 since it would
make the external T = 0.0 at some timestep during the simulation which
is not allowed in the Nose/Hoover formulation.
+The {scaleyz yes} and {scalexz yes} keyword/value pairs can not be used
+for 2D simulations. {scaleyz yes}, {scalexz yes}, and {scalexy yes} options
+can only be used if the 2nd dimension in the keyword is periodic,
+and if the tilt factor is not coupled to the barostat via keywords
+{tri}, {yz}, {xz}, and {xy}.
+
[Related commands:]
"fix nve"_fix_nve.html, "fix_modify"_fix_modify.html, "run_style"_run_style.html
[Default:]
The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop =
-ploop = 1, nreset = 0, drag = 0.0, dilate = all, and couple = none.
+ploop = 1, nreset = 0, drag = 0.0, dilate = all, couple = none,
+scaleyz = scalexz = scalexy = yes if periodic in 2nd dimension and
+not coupled to barostat, otherwise no.
:line
:link(Martyna)
[(Martyna)] Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).
:link(Parrinello)
[(Parrinello)] Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).
:link(Tuckerman)
[(Tuckerman)] Tuckerman, Alejandre, Lopez-Rendon, Jochim, and
Martyna, J Phys A: Math Gen, 39, 5629 (2006).
:link(Shinoda)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
diff --git a/doc/pair_adp.html b/doc/pair_adp.html
index 77d01a493..7bbfd6349 100644
--- a/doc/pair_adp.html
+++ b/doc/pair_adp.html
@@ -1,156 +1,163 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>pair_style adp command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style adp
</PRE>
<P><B>Examples:</B>
</P>
<PRE>pair_style adp
pair_coeff * * Ta.adp Ta
pair_coeff * * ../potentials/AlCu.adp Al Al Cu
</PRE>
<P><B>Description:</B>
</P>
<P>Style <I>adp</I> computes pairwise interactions for metals and metal alloys
using the angular dependent potential (ADP) of <A HREF = "#Mishin">(Mishin)</A>,
which is a generalization of the <A HREF = "pair_eam.html">embedded atom method (EAM)
-potential</A>. The total energy Ei of an atom I is given
-by
+potential</A>. The LAMMPS implementation is discussed in
+<A HREF = "#Singh">(Singh)</A>. The total energy Ei of an atom I is given by
</P>
<CENTER><IMG SRC = "Eqs/pair_adp.jpg">
</CENTER>
<P>where F is the embedding energy which is a function of the atomic
electron density rho, phi is a pair potential interaction, alpha and
beta are the element types of atoms I and J, and s and t = 1,2,3 and
refer to the cartesian coordinates. The mu and lambda terms represent
the dipole and quadruple distortions of the local atomic environment
which extend the original EAM framework by introducing angular forces.
</P>
<P>Note that unlike for other potentials, cutoffs for ADP potentials are
not set in the pair_style or pair_coeff command; they are specified in
the ADP potential files themselves. Likewise, the ADP potential files
list atomic masses; thus you do not need to use the <A HREF = "mass.html">mass</A>
command to specify them.
</P>
<P>The NIST WWW site distributes and documents ADP potentials:
</P>
<PRE>http://www.ctcms.nist.gov/potentials
</PRE>
<P>Note that these must be converted into the extended DYNAMO <I>setfl</I>
format discussed below.
</P>
<P>The NIST site is maintained by Chandler Becker (cbecker at nist.gov)
who is good resource for info on interatomic potentials and file
formats.
</P>
<HR>
<P>Only a single pair_coeff command is used with the <I>adp</I> style which
specifies an extended DYNAMO <I>setfl</I> file, which contains information
for M elements. These are mapped to LAMMPS atom types by specifying N
additional arguments after the filename in the pair_coeff command,
where N is the number of LAMMPS atom types:
</P>
<UL><LI>filename
<LI>N element names = mapping of extended <I>setfl</I> elements to atom types
</UL>
-<P>As an example, the potentials/AlCu.adp file is an extended <I>setfl</I>
+<P>As an example, the potentials/AlCu.adp file, included in the
+potentials directory of the LAMMPS distrbution, is an extended <I>setfl</I>
file which has tabulated ADP values for w elements and their alloy
interactions: Cu and Al. If your LAMMPS simulation has 4 atoms types
and you want the 1st 3 to be Al, and the 4th to be Cu, you would use
the following pair_coeff command:
</P>
<PRE>pair_coeff * * AlCu.adp Al Al Al Cu
</PRE>
<P>The 1st 2 arguments must be * * so as to span all LAMMPS atom types.
The first three Al arguments map LAMMPS atom types 1,2,3 to the Al
element in the extended <I>setfl</I> file. The final Cu argument maps
LAMMPS atom type 4 to the Al element in the extended <I>setfl</I> file.
Note that there is no requirement that your simulation use all the
elements specified by the extended <I>setfl</I> file.
</P>
<P>If a mapping value is specified as NULL, the mapping is not performed.
This can be used when an <I>adp</I> potential is used as part of the
<I>hybrid</I> pair style. The NULL values are placeholders for atom types
that will be used with other potentials.
</P>
<P><I>Adp</I> files in the <I>potentials</I> directory of the LAMMPS distribution
have an ".adp" suffix. A DYNAMO <I>setfl</I> file extended for ADP is
formatted as follows. Basically it is the standard <I>setfl</I> format
with additional tabulated functions u and w added to the file after
the tabulated pair potentials. See the <A HREF = "pair_eam.html">pair_eam</A>
command for further details on the <I>setfl</I> format.
</P>
<UL><LI>lines 1,2,3 = comments (ignored)
<LI>line 4: Nelements Element1 Element2 ... ElementN
<LI>line 5: Nrho, drho, Nr, dr, cutoff
</UL>
<P>Following the 5 header lines are Nelements sections, one for each
element, each with the following format:
</P>
<UL><LI>line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)
<LI>embedding function F(rho) (Nrho values)
<LI>density function rho(r) (Nr values)
</UL>
<P>Following the Nelements sections, Nr values for each pair potential
phi(r) array are listed for all i,j element pairs in the same format
as other arrays. Since these interactions are symmetric (i,j = j,i)
only phi arrays with i >= j are listed, in the following order: i,j =
(1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (Nelements,
Nelements).
</P>
<P>After the phi(r) arrays, each of the u(r) arrays are listed in the
same order with the same assumptions of symmetry. Directly following
the u(r), the w(r) arrays are listed.
</P>
<HR>
<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
</P>
<P>For atom type pairs I,J and I != J, where types I and J correspond to
two different element types, no special mixing rules are needed, since
the ADP potential files specify alloy interactions explicitly.
</P>
<P>This pair style does not support the <A HREF = "pair_modify.html">pair_modify</A>
shift, table, and tail options.
</P>
<P>This pair style does not write its information to <A HREF = "restart.html">binary restart
files</A>, since it is stored in tabulated potential files.
Thus, you need to re-specify the pair_style and pair_coeff commands in
an input script that reads a restart file.
</P>
<P>This pair style can only be used via the <I>pair</I> keyword of the
<A HREF = "run_style.html">run_style respa</A> command. It does not support the
<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>This pair style is part of the "manybody" package. It is only enabled
if LAMMPS was built with that package (which it is by default).
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "pair_coeff.html">pair_coeff</A>, <A HREF = "pair_eam.html">pair_eam</A>
</P>
<P><B>Default:</B> none
</P>
<HR>
-<P>:link(Mishin) <B>(Mishin)</B> Mishin, Mehl, and Papaconstantopoulos, Acta
-Mater, 53, 4029 (2005).
+<A NAME = "Mishin"></A>
+
+<P><B>(Mishin)</B> Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029
+(2005).
+</P>
+<A NAME = "Singh"></A>
+
+<P><B>(Singh)</B> Singh and Warner, Acta Mater, 58, 5797-5805 (2010),
</P>
</HTML>
diff --git a/doc/pair_adp.txt b/doc/pair_adp.txt
index 974466398..f064a89c6 100644
--- a/doc/pair_adp.txt
+++ b/doc/pair_adp.txt
@@ -1,151 +1,156 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style adp command :h3
[Syntax:]
pair_style adp :pre
[Examples:]
pair_style adp
pair_coeff * * Ta.adp Ta
pair_coeff * * ../potentials/AlCu.adp Al Al Cu :pre
[Description:]
Style {adp} computes pairwise interactions for metals and metal alloys
using the angular dependent potential (ADP) of "(Mishin)"_#Mishin,
which is a generalization of the "embedded atom method (EAM)
-potential"_pair_eam.html. The total energy Ei of an atom I is given
-by
+potential"_pair_eam.html. The LAMMPS implementation is discussed in
+"(Singh)"_#Singh. The total energy Ei of an atom I is given by
:c,image(Eqs/pair_adp.jpg)
where F is the embedding energy which is a function of the atomic
electron density rho, phi is a pair potential interaction, alpha and
beta are the element types of atoms I and J, and s and t = 1,2,3 and
refer to the cartesian coordinates. The mu and lambda terms represent
the dipole and quadruple distortions of the local atomic environment
which extend the original EAM framework by introducing angular forces.
Note that unlike for other potentials, cutoffs for ADP potentials are
not set in the pair_style or pair_coeff command; they are specified in
the ADP potential files themselves. Likewise, the ADP potential files
list atomic masses; thus you do not need to use the "mass"_mass.html
command to specify them.
The NIST WWW site distributes and documents ADP potentials:
http://www.ctcms.nist.gov/potentials :pre
Note that these must be converted into the extended DYNAMO {setfl}
format discussed below.
The NIST site is maintained by Chandler Becker (cbecker at nist.gov)
who is good resource for info on interatomic potentials and file
formats.
:line
Only a single pair_coeff command is used with the {adp} style which
specifies an extended DYNAMO {setfl} file, which contains information
for M elements. These are mapped to LAMMPS atom types by specifying N
additional arguments after the filename in the pair_coeff command,
where N is the number of LAMMPS atom types:
filename
N element names = mapping of extended {setfl} elements to atom types :ul
-As an example, the potentials/AlCu.adp file is an extended {setfl}
+As an example, the potentials/AlCu.adp file, included in the
+potentials directory of the LAMMPS distrbution, is an extended {setfl}
file which has tabulated ADP values for w elements and their alloy
interactions: Cu and Al. If your LAMMPS simulation has 4 atoms types
and you want the 1st 3 to be Al, and the 4th to be Cu, you would use
the following pair_coeff command:
pair_coeff * * AlCu.adp Al Al Al Cu :pre
The 1st 2 arguments must be * * so as to span all LAMMPS atom types.
The first three Al arguments map LAMMPS atom types 1,2,3 to the Al
element in the extended {setfl} file. The final Cu argument maps
LAMMPS atom type 4 to the Al element in the extended {setfl} file.
Note that there is no requirement that your simulation use all the
elements specified by the extended {setfl} file.
If a mapping value is specified as NULL, the mapping is not performed.
This can be used when an {adp} potential is used as part of the
{hybrid} pair style. The NULL values are placeholders for atom types
that will be used with other potentials.
{Adp} files in the {potentials} directory of the LAMMPS distribution
have an ".adp" suffix. A DYNAMO {setfl} file extended for ADP is
formatted as follows. Basically it is the standard {setfl} format
with additional tabulated functions u and w added to the file after
the tabulated pair potentials. See the "pair_eam"_pair_eam.html
command for further details on the {setfl} format.
lines 1,2,3 = comments (ignored)
line 4: Nelements Element1 Element2 ... ElementN
line 5: Nrho, drho, Nr, dr, cutoff :ul
Following the 5 header lines are Nelements sections, one for each
element, each with the following format:
line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)
embedding function F(rho) (Nrho values)
density function rho(r) (Nr values) :ul
Following the Nelements sections, Nr values for each pair potential
phi(r) array are listed for all i,j element pairs in the same format
as other arrays. Since these interactions are symmetric (i,j = j,i)
only phi arrays with i >= j are listed, in the following order: i,j =
(1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (Nelements,
Nelements).
After the phi(r) arrays, each of the u(r) arrays are listed in the
same order with the same assumptions of symmetry. Directly following
the u(r), the w(r) arrays are listed.
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:
For atom type pairs I,J and I != J, where types I and J correspond to
two different element types, no special mixing rules are needed, since
the ADP potential files specify alloy interactions explicitly.
This pair style does not support the "pair_modify"_pair_modify.html
shift, table, and tail options.
This pair style does not write its information to "binary restart
files"_restart.html, since it is stored in tabulated potential files.
Thus, you need to re-specify the pair_style and pair_coeff commands in
an input script that reads a restart file.
This pair style can only be used via the {pair} keyword of the
"run_style respa"_run_style.html command. It does not support the
{inner}, {middle}, {outer} keywords.
:line
[Restrictions:]
This pair style is part of the "manybody" package. It is only enabled
if LAMMPS was built with that package (which it is by default).
[Related commands:]
"pair_coeff"_pair_coeff.html, "pair_eam"_pair_eam.html
[Default:] none
:line
-:link(Mishin) [(Mishin)] Mishin, Mehl, and Papaconstantopoulos, Acta
-Mater, 53, 4029 (2005).
+:link(Mishin)
+[(Mishin)] Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029
+(2005).
+
+:link(Singh)
+[(Singh)] Singh and Warner, Acta Mater, 58, 5797-5805 (2010),
diff --git a/doc/pair_awpmd.html b/doc/pair_awpmd.html
new file mode 100644
index 000000000..7ab6be867
--- /dev/null
+++ b/doc/pair_awpmd.html
@@ -0,0 +1,130 @@
+<HTML>
+<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
+</CENTER>
+
+
+
+
+
+
+<HR>
+
+<H3>pair_style awpmd/cut command
+</H3>
+<P><B>Syntax:</B>
+</P>
+<PRE>pair_style awpmd/cut Rc keyword value ...
+</PRE>
+<UL><LI>Rc = global cutoff, -1 means cutoff of half the shortest box length
+
+<LI>zero or more keyword/value pairs may be appended
+
+<LI>keyword = <I>hartree</I> or <I>dproduct</I> or <I>uhf</I> or <I>free</I> or <I>pbc</I> or <I>fix</I> or <I>harm</I> or <I>ermscale</I> or <I>flex_press</I>
+
+<PRE> <I>hartree</I> value = none
+ <I>dproduct</I> value = none
+ <I>uhf</I> value = none
+ <I>free</I> value = none
+ <I>pbc</I> value = Plen
+ Plen = periodic width of electron = -1 or positive value (distance units)
+ <I>fix</I> value = Flen
+ Flen = fixed width of electron = -1 or positive value (distance units)
+ <I>harm</I> value = width
+ width = harmonic width constraint
+ <I>ermscale</I> value = factor
+ factor = scaling between electron mass and width variable mass
+ <I>flex_press</I> value = none
+</PRE>
+
+</UL>
+<P><B>Examples:</B>
+</P>
+<PRE>pair_style awpmd/cut -1
+pair_style awpmd/cut 40.0 uhf free
+pair_coeff * *
+pair_coeff 2 2 20.0
+</PRE>
+<P><B>Description:</B>
+</P>
+<P>This pair style contains an implementation of the Antisymmetrized Wave
+Packet Molecular Dynamics (AWPMD) method. Need citation here. Need
+basic formulas here. Could be links to other documents.
+</P>
+<P>Rc is the cutoff.
+</P>
+<P>The pair_style command allows for several optional keywords
+to be specified.
+</P>
+<P>The <I>hartree</I>, <I>dproduct</I>, and <I>uhf</I> keywords specify the form of the
+initial trial wave function for the system. If the <I>hartree</I> keyword
+is used, then a Hartree multielectron trial wave function is used. If
+the <I>dproduct</I> keyword is used, then a trial function which is a
+product of two determinants for each spin type is used. If the <I>uhf</I>
+keyword is used, then an unrestricted Hartree-Fock trial wave function
+is used.
+</P>
+<P>The <I>free</I>, <I>pbc</I>, and <I>fix</I> keywords specify a width constraint on
+the electron wavepackets. If the <I>free</I> keyword is specified, then there is no
+constraint. If the <I>pbc</I> keyword is used and <I>Plen</I> is specified as
+-1, then the maximum width is half the shortest box length. If <I>Plen</I>
+is a positive value, then the value is the maximum width. If the
+<I>fix</I> keyword is used and <I>Flen</I> is specified as -1, then electrons
+have a constant width that is read from the data file. If <I>Flen</I> is a
+positive value, then the constant width for all electrons is set to
+<I>Flen</I>.
+</P>
+<P>The <I>harm</I> keyword allow oscillations in the width of the
+electron wavepackets. More details are needed.
+</P>
+<P>The <I>ermscale</I> keyword specifies a unitless scaling factor
+between the electron masses and the width variable mass. More
+details needed.
+</P>
+<P>If the <I>flex_press</I> keyword is used, then a contribution from the
+electrons is added to the total virial and pressure of the system.
+</P>
+<P>This potential is designed to be used with <A HREF = "atom_style.html">atom_style
+wavepacket</A> definitions, in order to handle the
+description of systems with interacting nuclei and explicit electrons.
+</P>
+<P>The following coefficients must be defined for each pair of atoms
+types via the <A HREF = "pair_coeff.html">pair_coeff</A> command as in the examples
+above, or in the data file or restart files read by the
+<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
+commands, or by mixing as described below:
+</P>
+<UL><LI>cutoff (distance units)
+</UL>
+<P>For <I>awpmd/cut</I>, the cutoff coefficient is optional. If it is not
+used (as in some of the examples above), the default global value
+specified in the pair_style command is used.
+</P>
+<HR>
+
+<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
+</P>
+<P>The <A HREF = "pair_modify.html">pair_modify</A> mix, shift, table, and tail options
+are not relevant for this pair style.
+</P>
+<P>This pair style writes its information to <A HREF = "restart.html">binary restart
+files</A>, so pair_style and pair_coeff commands do not need
+to be specified in an input script that reads a restart file.
+</P>
+<P>This pair style can only be used via the <I>pair</I> keyword of the
+<A HREF = "run_style.html">run_style respa</A> command. It does not support the
+<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
+</P>
+<HR>
+
+<P><B>Restrictions:</B> none
+</P>
+<P><B>Related commands:</B>
+</P>
+<P><A HREF = "pair_coeff.html">pair_coeff</A>
+</P>
+<P><B>Default:</B>
+</P>
+<P>These are the defaults for the pair_style keywords: <I>hartree</I> for the
+initial wavefunction, <I>free</I> for the wavepacket width.
+</P>
+</HTML>
diff --git a/doc/pair_awpmd.txt b/doc/pair_awpmd.txt
new file mode 100644
index 000000000..fe0e3c952
--- /dev/null
+++ b/doc/pair_awpmd.txt
@@ -0,0 +1,123 @@
+"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
+
+:link(lws,http://lammps.sandia.gov)
+:link(ld,Manual.html)
+:link(lc,Section_commands.html#comm)
+
+:line
+
+pair_style awpmd/cut command :h3
+
+[Syntax:]
+
+pair_style awpmd/cut Rc keyword value ... :pre
+
+Rc = global cutoff, -1 means cutoff of half the shortest box length :ulb,l
+zero or more keyword/value pairs may be appended :l
+keyword = {hartree} or {dproduct} or {uhf} or {free} or {pbc} or {fix} or {harm} or {ermscale} or {flex_press} :l
+ {hartree} value = none
+ {dproduct} value = none
+ {uhf} value = none
+ {free} value = none
+ {pbc} value = Plen
+ Plen = periodic width of electron = -1 or positive value (distance units)
+ {fix} value = Flen
+ Flen = fixed width of electron = -1 or positive value (distance units)
+ {harm} value = width
+ width = harmonic width constraint
+ {ermscale} value = factor
+ factor = scaling between electron mass and width variable mass
+ {flex_press} value = none :pre
+:ule
+
+
+[Examples:]
+
+pair_style awpmd/cut -1
+pair_style awpmd/cut 40.0 uhf free
+pair_coeff * *
+pair_coeff 2 2 20.0 :pre
+
+[Description:]
+
+This pair style contains an implementation of the Antisymmetrized Wave
+Packet Molecular Dynamics (AWPMD) method. Need citation here. Need
+basic formulas here. Could be links to other documents.
+
+Rc is the cutoff.
+
+The pair_style command allows for several optional keywords
+to be specified.
+
+The {hartree}, {dproduct}, and {uhf} keywords specify the form of the
+initial trial wave function for the system. If the {hartree} keyword
+is used, then a Hartree multielectron trial wave function is used. If
+the {dproduct} keyword is used, then a trial function which is a
+product of two determinants for each spin type is used. If the {uhf}
+keyword is used, then an unrestricted Hartree-Fock trial wave function
+is used.
+
+The {free}, {pbc}, and {fix} keywords specify a width constraint on
+the electron wavepackets. If the {free} keyword is specified, then there is no
+constraint. If the {pbc} keyword is used and {Plen} is specified as
+-1, then the maximum width is half the shortest box length. If {Plen}
+is a positive value, then the value is the maximum width. If the
+{fix} keyword is used and {Flen} is specified as -1, then electrons
+have a constant width that is read from the data file. If {Flen} is a
+positive value, then the constant width for all electrons is set to
+{Flen}.
+
+The {harm} keyword allow oscillations in the width of the
+electron wavepackets. More details are needed.
+
+The {ermscale} keyword specifies a unitless scaling factor
+between the electron masses and the width variable mass. More
+details needed.
+
+If the {flex_press} keyword is used, then a contribution from the
+electrons is added to the total virial and pressure of the system.
+
+This potential is designed to be used with "atom_style
+wavepacket"_atom_style.html definitions, in order to handle the
+description of systems with interacting nuclei and explicit electrons.
+
+The following coefficients must be defined for each pair of atoms
+types via the "pair_coeff"_pair_coeff.html command as in the examples
+above, or in the data file or restart files read by the
+"read_data"_read_data.html or "read_restart"_read_restart.html
+commands, or by mixing as described below:
+
+cutoff (distance units) :ul
+
+For {awpmd/cut}, the cutoff coefficient is optional. If it is not
+used (as in some of the examples above), the default global value
+specified in the pair_style command is used.
+
+:line
+
+[Mixing, shift, table, tail correction, restart, rRESPA info]:
+
+The "pair_modify"_pair_modify.html mix, shift, table, and tail options
+are not relevant for this pair style.
+
+This pair style writes its information to "binary restart
+files"_restart.html, so pair_style and pair_coeff commands do not need
+to be specified in an input script that reads a restart file.
+
+This pair style can only be used via the {pair} keyword of the
+"run_style respa"_run_style.html command. It does not support the
+{inner}, {middle}, {outer} keywords.
+
+:line
+
+[Restrictions:] none
+
+[Related commands:]
+
+"pair_coeff"_pair_coeff.html
+
+[Default:]
+
+These are the defaults for the pair_style keywords: {hartree} for the
+initial wavefunction, {free} for the wavepacket width.
+
diff --git a/doc/pair_coeff.html b/doc/pair_coeff.html
index 7346fc4cd..7debbbd72 100644
--- a/doc/pair_coeff.html
+++ b/doc/pair_coeff.html
@@ -1,174 +1,174 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>pair_coeff command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_coeff I J args
</PRE>
<UL><LI>I,J = atom types (see asterisk form below)
<LI>args = coefficients for one or more pairs of atom types
</UL>
<P><B>Examples:</B>
</P>
<PRE>pair_coeff 1 2 1.0 1.0 2.5
pair_coeff 2 * 1.0 1.0
pair_coeff 3* 1*2 1.0 1.0 2.5
pair_coeff * * 1.0 1.0
pair_coeff * * nialhjea 1 1 2
pair_coeff * 3 morse.table ENTRY1
pair_coeff 1 2 lj/cut 1.0 1.0 2.5 (for pair_style hybrid)
</PRE>
<P><B>Description:</B>
</P>
<P>Specify the pairwise force field coefficients for one or more pairs of
atom types. The number and meaning of the coefficients depends on the
pair style. Pair coefficients can also be set in the data file read
by the <A HREF = "read_data.html">read_data</A> command or in a restart file.
</P>
<P>I and J can be specified in one of two ways. Explicit numeric values
can be used for each, as in the 1st example above. I <= J is
required. LAMMPS sets the coefficients for the symmetric J,I
interaction to the same values.
</P>
<P>A wildcard asterisk can be used in place of or in conjunction with the
I,J arguments to set the coefficients for multiple pairs of atom
types. This takes the form "*" or "*n" or "n*" or "m*n". If N = the
number of atom types, then an asterisk with no numeric values means all
types from 1 to N. A leading asterisk means all types from 1 to n
(inclusive). A trailing asterisk means all types from n to N
(inclusive). A middle asterisk means all types from m to n
(inclusive). Note that only type pairs with I <= J are considered; if
asterisks imply type pairs where J < I, they are ignored.
</P>
<P>Note that a pair_coeff command can override a previous setting for the
same I,J pair. For example, these commands set the coeffs for all I,J
pairs, then overwrite the coeffs for just the I,J = 2,3 pair:
</P>
<PRE>pair_coeff * * 1.0 1.0 2.5
pair_coeff 2 3 2.0 1.0 1.12
</PRE>
<P>A line in a data file that specifies pair coefficients uses the exact
same format as the arguments of the pair_coeff command in an input
script, with the exception of the I,J type arguments. In each line of
the "Pair Coeffs" section of a data file, only a single type I is
specified, which sets the coefficients for type I interacting with
type I. This is because the section has exactly N lines, where N =
the number of atom types. For this reason, the wild-card asterisk
should also not be used as part of the I argument. Thus in a data
file, the line corresponding to the 1st example above would be listed
as
</P>
<PRE>2 1.0 1.0 2.5
</PRE>
<P>For many potentials, if coefficients for type pairs with I != J are
not set explicitly by a pair_coeff command, the values are inferred
from the I,I and J,J settings by mixing rules; see the
<A HREF = "pair_modify.html">pair_modify</A> command for a discussion. Details on
this option as it pertains to individual potentials are described on
the doc page for the potential.
</P>
<HR>
<P>Here is an alphabetic list of pair styles defined in LAMMPS. Click on
the style to display the formula it computes, arguments specified in
the pair_style command, and coefficients specified by the associated
<A HREF = "pair_coeff.html">pair_coeff</A> command:
</P>
<UL><LI><A HREF = "pair_hybrid.html">pair_style hybrid</A> - multiple styles of pairwise interactions
<LI><A HREF = "pair_hybrid.html">pair_style hybrid/overlay</A> - multiple styles of superposed pairwise interactions
</UL>
<UL><LI><A HREF = "pair_adp.html">pair_style adp</A> - angular dependent potential (ADP) of Mishin
<LI><A HREF = "pair_airebo.html">pair_style airebo</A> - AIREBO potential of Stuart
<LI><A HREF = "pair_born.html">pair_style born</A> - Born-Mayer-Huggins potential
<LI><A HREF = "pair_born.html">pair_style born/coul/long</A> - Born-Mayer-Huggins with long-range Coulomb
<LI><A HREF = "pair_buck.html">pair_style buck</A> - Buckingham potential
<LI><A HREF = "pair_buck.html">pair_style buck/coul/cut</A> - Buckingham with cutoff Coulomb
<LI><A HREF = "pair_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
<LI><A HREF = "pair_colloid.html">pair_style colloid</A> - integrated colloidal potential
<LI><A HREF = "pair_coul.html">pair_style coul/cut</A> - cutoff Coulombic potential
<LI><A HREF = "pair_coul.html">pair_style coul/debye</A> - cutoff Coulombic potential with Debye screening
<LI><A HREF = "pair_coul.html">pair_style coul/long</A> - long-range Coulombic potential
<LI><A HREF = "pair_dipole.html">pair_style dipole/cut</A> - point dipoles with cutoff
<LI><A HREF = "pair_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
<LI><A HREF = "pair_dpd.html">pair_style dpd/tstat</A> - DPD thermostatting
<LI><A HREF = "pair_dsmc.html">pair_style dsmc</A> - Direct Simulation Monte Carlo (DSMC)
<LI><A HREF = "pair_eam.html">pair_style eam</A> - embedded atom method (EAM)
<LI><A HREF = "pair_eam.html">pair_style eam/alloy</A> - alloy EAM
<LI><A HREF = "pair_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
<LI><A HREF = "pair_eim.html">pair_style eim</A> - embedded ion method (EIM)
<LI><A HREF = "pair_gauss.html">pair_style gauss</A> - Gaussian potential
<LI><A HREF = "pair_gayberne.html">pair_style gayberne</A> - Gay-Berne ellipsoidal potential
<LI><A HREF = "pair_gran.html">pair_style gran/hertz/history</A> - granular potential with Hertzian interactions
<LI><A HREF = "pair_gran.html">pair_style gran/hooke</A> - granular potential with history effects
<LI><A HREF = "pair_gran.html">pair_style gran/hooke/history</A> - granular potential without history effects
<LI><A HREF = "pair_hbond_dreiding.html">pair_style hbond/dreiding/lj</A> - DREIDING hydrogen bonding LJ potential
<LI><A HREF = "pair_hbond_dreiding.html">pair_style hbond/dreiding/morse</A> - DREIDING hydrogen bonding Morse potential
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye screening added to Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs</A> - GROMACS-style Lennard-Jones potential
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs/coul/gromacs</A> - GROMACS-style LJ and Coulombic potential
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
-<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
+<LI><A HREF = "pair_lj96.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
<LI><A HREF = "pair_lubricate.html">pair_style lubricate</A> - hydrodynamic lubrication forces
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential
<LI><A HREF = "pair_peri.html">pair_style peri/lps</A> - peridynamic LPS potential
<LI><A HREF = "pair_peri.html">pair_style peri/pmb</A> - peridynamic PMB potential
<LI><A HREF = "pair_reax.html">pair_style reax</A> - ReaxFF potential
<LI><A HREF = "pair_airebo.html">pair_style rebo</A> - 2nd-generation REBO potential of Brenner
<LI><A HREF = "pair_resquared.html">pair_style resquared</A> - Everaers RE-Squared ellipsoidal potential
<LI><A HREF = "pair_soft.html">pair_style soft</A> - Soft (cosine) potential
<LI><A HREF = "pair_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
<LI><A HREF = "pair_table.html">pair_style table</A> - tabulated pair potential
<LI><A HREF = "pair_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
<LI><A HREF = "pair_tersoff_zbl.html">pair_style tersoff/zbl</A> - Tersoff/ZBL 3-body potential
<LI><A HREF = "pair_yukawa.html">pair_style yukawa</A> - Yukawa potential
<LI><A HREF = "pair_yukawa_colloid.html">pair_style yukawa/colloid</A> - screened Yukawa potential for finite-size particles
</UL>
<P>There are also additional pair styles submitted by users which are
included in the LAMMPS distribution. The list of these with links to
the individual styles are given in the pair section of <A HREF = "Section_commands.html#3_5">this
page</A>.
</P>
<P>There are also additional accelerated pair styles included in the
LAMMPS distribution for faster performance on CPUs and GPUs. The list
of these with links to the individual styles are given in the pair
section of <A HREF = "Section_commands.html#3_5">this page</A>.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>This command must come after the simulation box is defined by a
<A HREF = "read_data.html">read_data</A>, <A HREF = "read_restart.html">read_restart</A>, or
<A HREF = "create_box.html">create_box</A> command.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "pair_style.html">pair_style</A>, <A HREF = "pair_modify.html">pair_modify</A>,
<A HREF = "read_data.html">read_data</A>, <A HREF = "read_restart.html">read_restart</A>,
<A HREF = "pair_write.html">pair_write</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>
diff --git a/doc/pair_coeff.txt b/doc/pair_coeff.txt
index eba785320..887ef456d 100644
--- a/doc/pair_coeff.txt
+++ b/doc/pair_coeff.txt
@@ -1,169 +1,169 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_coeff command :h3
[Syntax:]
pair_coeff I J args :pre
I,J = atom types (see asterisk form below)
args = coefficients for one or more pairs of atom types :ul
[Examples:]
pair_coeff 1 2 1.0 1.0 2.5
pair_coeff 2 * 1.0 1.0
pair_coeff 3* 1*2 1.0 1.0 2.5
pair_coeff * * 1.0 1.0
pair_coeff * * nialhjea 1 1 2
pair_coeff * 3 morse.table ENTRY1
pair_coeff 1 2 lj/cut 1.0 1.0 2.5 (for pair_style hybrid) :pre
[Description:]
Specify the pairwise force field coefficients for one or more pairs of
atom types. The number and meaning of the coefficients depends on the
pair style. Pair coefficients can also be set in the data file read
by the "read_data"_read_data.html command or in a restart file.
I and J can be specified in one of two ways. Explicit numeric values
can be used for each, as in the 1st example above. I <= J is
required. LAMMPS sets the coefficients for the symmetric J,I
interaction to the same values.
A wildcard asterisk can be used in place of or in conjunction with the
I,J arguments to set the coefficients for multiple pairs of atom
types. This takes the form "*" or "*n" or "n*" or "m*n". If N = the
number of atom types, then an asterisk with no numeric values means all
types from 1 to N. A leading asterisk means all types from 1 to n
(inclusive). A trailing asterisk means all types from n to N
(inclusive). A middle asterisk means all types from m to n
(inclusive). Note that only type pairs with I <= J are considered; if
asterisks imply type pairs where J < I, they are ignored.
Note that a pair_coeff command can override a previous setting for the
same I,J pair. For example, these commands set the coeffs for all I,J
pairs, then overwrite the coeffs for just the I,J = 2,3 pair:
pair_coeff * * 1.0 1.0 2.5
pair_coeff 2 3 2.0 1.0 1.12 :pre
A line in a data file that specifies pair coefficients uses the exact
same format as the arguments of the pair_coeff command in an input
script, with the exception of the I,J type arguments. In each line of
the "Pair Coeffs" section of a data file, only a single type I is
specified, which sets the coefficients for type I interacting with
type I. This is because the section has exactly N lines, where N =
the number of atom types. For this reason, the wild-card asterisk
should also not be used as part of the I argument. Thus in a data
file, the line corresponding to the 1st example above would be listed
as
2 1.0 1.0 2.5 :pre
For many potentials, if coefficients for type pairs with I != J are
not set explicitly by a pair_coeff command, the values are inferred
from the I,I and J,J settings by mixing rules; see the
"pair_modify"_pair_modify.html command for a discussion. Details on
this option as it pertains to individual potentials are described on
the doc page for the potential.
:line
Here is an alphabetic list of pair styles defined in LAMMPS. Click on
the style to display the formula it computes, arguments specified in
the pair_style command, and coefficients specified by the associated
"pair_coeff"_pair_coeff.html command:
"pair_style hybrid"_pair_hybrid.html - multiple styles of pairwise interactions
"pair_style hybrid/overlay"_pair_hybrid.html - multiple styles of superposed pairwise interactions :ul
"pair_style adp"_pair_adp.html - angular dependent potential (ADP) of Mishin
"pair_style airebo"_pair_airebo.html - AIREBO potential of Stuart
"pair_style born"_pair_born.html - Born-Mayer-Huggins potential
"pair_style born/coul/long"_pair_born.html - Born-Mayer-Huggins with long-range Coulomb
"pair_style buck"_pair_buck.html - Buckingham potential
"pair_style buck/coul/cut"_pair_buck.html - Buckingham with cutoff Coulomb
"pair_style buck/coul/long"_pair_buck.html - Buckingham with long-range Coulomb
"pair_style colloid"_pair_colloid.html - integrated colloidal potential
"pair_style coul/cut"_pair_coul.html - cutoff Coulombic potential
"pair_style coul/debye"_pair_coul.html - cutoff Coulombic potential with Debye screening
"pair_style coul/long"_pair_coul.html - long-range Coulombic potential
"pair_style dipole/cut"_pair_dipole.html - point dipoles with cutoff
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
"pair_style dpd/tstat"_pair_dpd.html - DPD thermostatting
"pair_style dsmc"_pair_dsmc.html - Direct Simulation Monte Carlo (DSMC)
"pair_style eam"_pair_eam.html - embedded atom method (EAM)
"pair_style eam/alloy"_pair_eam.html - alloy EAM
"pair_style eam/fs"_pair_eam.html - Finnis-Sinclair EAM
"pair_style eim"_pair_eim.html - embedded ion method (EIM)
"pair_style gauss"_pair_gauss.html - Gaussian potential
"pair_style gayberne"_pair_gayberne.html - Gay-Berne ellipsoidal potential
"pair_style gran/hertz/history"_pair_gran.html - granular potential with Hertzian interactions
"pair_style gran/hooke"_pair_gran.html - granular potential with history effects
"pair_style gran/hooke/history"_pair_gran.html - granular potential without history effects
"pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html - DREIDING hydrogen bonding LJ potential
"pair_style hbond/dreiding/morse"_pair_hbond_dreiding.html - DREIDING hydrogen bonding Morse potential
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
"pair_style lj/class2/coul/long"_pair_class2.html - COMPASS with long-range Coulomb
"pair_style lj/cut"_pair_lj.html - cutoff Lennard-Jones potential with no Coulomb
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye screening added to Coulomb
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
"pair_style lj/gromacs"_pair_gromacs.html - GROMACS-style Lennard-Jones potential
"pair_style lj/gromacs/coul/gromacs"_pair_gromacs.html - GROMACS-style LJ and Coulombic potential
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
-"pair_style lj96/cut"_pair_lj96_cut.html - Lennard-Jones 9/6 potential
+"pair_style lj96/cut"_pair_lj96.html - Lennard-Jones 9/6 potential
"pair_style lubricate"_pair_lubricate.html - hydrodynamic lubrication forces
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
"pair_style morse"_pair_morse.html - Morse potential
"pair_style peri/lps"_pair_peri.html - peridynamic LPS potential
"pair_style peri/pmb"_pair_peri.html - peridynamic PMB potential
"pair_style reax"_pair_reax.html - ReaxFF potential
"pair_style rebo"_pair_airebo.html - 2nd-generation REBO potential of Brenner
"pair_style resquared"_pair_resquared.html - Everaers RE-Squared ellipsoidal potential
"pair_style soft"_pair_soft.html - Soft (cosine) potential
"pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential
"pair_style table"_pair_table.html - tabulated pair potential
"pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential
"pair_style tersoff/zbl"_pair_tersoff_zbl.html - Tersoff/ZBL 3-body potential
"pair_style yukawa"_pair_yukawa.html - Yukawa potential
"pair_style yukawa/colloid"_pair_yukawa_colloid.html - screened Yukawa potential for finite-size particles :ul
There are also additional pair styles submitted by users which are
included in the LAMMPS distribution. The list of these with links to
the individual styles are given in the pair section of "this
page"_Section_commands.html#3_5.
There are also additional accelerated pair styles included in the
LAMMPS distribution for faster performance on CPUs and GPUs. The list
of these with links to the individual styles are given in the pair
section of "this page"_Section_commands.html#3_5.
:line
[Restrictions:]
This command must come after the simulation box is defined by a
"read_data"_read_data.html, "read_restart"_read_restart.html, or
"create_box"_create_box.html command.
[Related commands:]
"pair_style"_pair_style.html, "pair_modify"_pair_modify.html,
"read_data"_read_data.html, "read_restart"_read_restart.html,
"pair_write"_pair_write.html
[Default:] none
diff --git a/doc/pair_eff.html b/doc/pair_eff.html
index ecf925d13..086c13e53 100644
--- a/doc/pair_eff.html
+++ b/doc/pair_eff.html
@@ -1,290 +1,290 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>pair_style eff/cut command
</H3>
<P><B>Syntax:</B>
</P>
<P>pair_style eff/cut cutoff eradius_limit_flag pressure_flag
</P>
<UL><LI>cutoff = global cutoff for Coulombic interactions
<LI>eradius_limit_flag = 0 or 1 for whether electron size is restrained (optional)
<LI>pressure_flag = 0 or 1 to define the type of pressure calculation (optional)
</UL>
<P><B>Examples:</B>
</P>
<PRE>pair_style eff/cut 39.7
pair_style eff/cut 40.0 1 1
pair_coeff * *
pair_coeff 2 2 20.0
</PRE>
<P><B>Description:</B>
</P>
-<P>Contains a LAMMPS implementation of the electron Force Field (eFF)
-potential currently under development at Caltech, as described in
-<A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>. The eFF was first introduced
-by <A HREF = "#Su">(Su)</A> in 2007.
+<P>This pair style contains a LAMMPS implementation of the electron Force
+Field (eFF) potential currently under development at Caltech, as
+described in <A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>. The eFF was
+first introduced by <A HREF = "#Su">(Su)</A> in 2007.
</P>
<P>eFF can be viewed as an approximation to QM wave packet dynamics and
Fermionic molecular dynamics, combining the ability of electronic
structure methods to describe atomic structure, bonding, and chemistry
in materials, and of plasma methods to describe nonequilibrium
dynamics of large systems with a large number of highly excited
electrons. Yet, eFF relies on a simplification of the electronic
wavefunction in which electrons are described as floating Gaussian
wave packets whose position and size respond to the various dynamic
forces between interacting classical nuclear particles and spherical
Gaussian electron wavepackets. The wavefunction is taken to be a
Hartree product of the wave packets. To compensate for the lack of
explicit antisymmetry in the resulting wavefunction, a spin-dependent
Pauli potential is included in the Hamiltonian. Substituting this
wavefunction into the time-dependent Schrodinger equation produces
equations of motion that correspond - to second order - to classical
Hamiltonian relations between electron position and size, and their
conjugate momenta. The N-electron wavefunction is described as a
product of one-electron Gaussian functions, whose size is a dynamical
variable and whose position is not constrained to a nuclear
center. This form allows for straightforward propagation of the
wavefunction, with time, using a simple formulation from which the
equations of motion are then integrated with conventional MD
algorithms. In addition to this spin-dependent Pauli repulsion
potential term between Gaussians, eFF includes the electron kinetic
energy from the Gaussians. These two terms are based on
first-principles quantum mechanics. On the other hand, nuclei are
described as point charges, which interact with other nuclei and
electrons through standard electrostatic potential forms.
</P>
<P>The full Hamiltonian (shown below), contains then a standard
description for electrostatic interactions between a set of
delocalized point and Gaussian charges which include, nuclei-nuclei
(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a
mixed QM-classical mechanics method rather than a conventional force
field method (in which electron motions are averaged out into ground
state nuclear motions, i.e a single electronic state, and particle
interactions are described via empirically parameterized interatomic
potential functions). This makes eFF uniquely suited to simulate
materials over a wide range of temperatures and pressures where
electronically excited and ionized states of matter can occur and
coexist. Furthermore, the interactions between particles -nuclei and
electrons- reduce to the sum of a set of effective pairwise potentials
in the eFF formulation. The <I>eff/cut</I> style computes the pairwise
Coulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),
and the quantum-derived Pauli (E_PR) and Kinetic energy interactions
potentials between electrons (E_KE) for a total energy expression
given as,
</P>
<CENTER><IMG SRC = "Eqs/eff_energy_expression.jpg">
</CENTER>
<P>The individual terms are defined as follows:
</P>
<CENTER><IMG SRC = "Eqs/eff_KE.jpg">
</CENTER>
<CENTER><IMG SRC = "Eqs/eff_NN.jpg">
</CENTER>
<CENTER><IMG SRC = "Eqs/eff_Ne.jpg">
</CENTER>
<CENTER><IMG SRC = "Eqs/eff_ee.jpg">
</CENTER>
<CENTER><IMG SRC = "Eqs/eff_Pauli.jpg">
</CENTER>
<P>where, s_i correspond to the electron sizes, the sigmas i's to the
fixed spins of the electrons, Z_i to the charges on the nuclei, R_ij
to the distances between the nuclei or the nuclei and electrons, and
r_ij to the distances between electrons. For additional details see
<A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>.
</P>
<P>The overall electrostatics energy is given in Hartree units of energy
by default and can be modified by an energy-conversion constant,
according to the units chosen (see <A HREF = "units.html">electron_units</A>). The
cutoff Rc, given in Bohrs (by default), truncates the interaction
distance. The recommended cutoff for this pair style should follow
the minimum image criterion, i.e. half of the minimum unit cell
length.
</P>
<P>Style <I>eff/long</I> (not yet available) computes the same interactions as
style <I>eff/cut</I> except that an additional damping factor is applied so
it can be used in conjunction with the
<A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
</P>
-<P>These potentials are designed to be used with <A HREF = "atom_electron.html">atom_style
+<P>This potential is designed to be used with <A HREF = "atom_style.html">atom_style
electron</A> definitions, in order to handle the
description of systems with interacting nuclei and explicit electrons.
</P>
<P>The following coefficients must be defined for each pair of atoms
types via the <A HREF = "pair_coeff.html">pair_coeff</A> command as in the examples
above, or in the data file or restart files read by the
<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
commands, or by mixing as described below:
</P>
<UL><LI>cutoff (distance units)
</UL>
<P>For <I>eff/cut</I>, the cutoff coefficient is optional. If it is not used
(as in some of the examples above), the default global value specified
in the pair_style command is used.
</P>
<P>For <I>eff/long</I> (not yet available) no cutoff will be specified for an
individual I,J type pair via the <A HREF = "pair_coeff.html">pair_coeff</A> command.
All type pairs use the same global cutoff specified in the pair_style
command.
</P>
<P>The <I>eradius_limit_flag</I> and <I>pressure_flag</I> settings are optional.
Neither or both must be specified. If not specified they are
both set to 0 by default.
</P>
<P>The <I>eradius_limit_flag</I> is used to restrain electrons from becoming
unbounded in size at very high temperatures were the Gaussian wave
packet representation breaks down, and from expanding as free
particles to infinite size. A setting of 0 means do not impose this
restraint. A setting of 1 imposes the restraint. The restraining
harmonic potential takes the form E = 1/2k_ss^2 for s > L_box/2, where
k_s = 1 Hartrees/Bohr^2.
</P>
<P>The <I>pressure_flag</I> is used to control between two types of pressure
computation: if set to 0, the computed pressure does not include the
electronic radial virials contributions to the total pressure (scalar
or tensor). If set to 1, the computed pressure will include the
electronic radial virial contributions to the total pressure (scalar
and tensor).
</P>
<P>IMPORTANT NOTE: there are two different pressures that can be reported
for eFF when defining this pair_style, one (default) that considers
electrons do not contribute radial virial components (i.e. electrons
treated as incompressible 'rigid' spheres) and one that does. The
radial electronic contributions to the virials are only tallied if the
flexible pressure option is set, and this will affect both global and
per-atom quantities. In principle, the true pressure of a system is
somewhere in between the rigid and the flexible eFF pressures, but,
for most cases, the difference between these two pressures will not be
significant over long-term averaged runs (i.e. even though the energy
partitioning changes, the total energy remains similar).
</P>
<HR>
<P>IMPORTANT NOTE: The currently implemented eFF gives a reasonably
accurate description for systems containing nuclei from Z = 1-6.
Users interested in applying eFF should restrict to systems where
electrons are s-like, or contain p character only insofar as a single
lobe of electron density is shifted away from the nuclear center. See
further details about some of the virtues and current limitations of
the method in <A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>.
</P>
<P>Work is underway to extend the eFF to higher Z elements with
increasingly non-spherical electrons (p-block and d-block), to provide
explicit terms for electron correlation/exchange, and to improve its
computational efficiency via atom models with fixed 2 s core electrons
and atom models represented as pseudo-cores plus valence electrons.
</P>
<P>The current version adds support for models with fixed-core and
effective pseudo-core (i.e. effective core pseudopotentials, ECP)
definitions. to enable larger timesteps (i.e. by avoiding the high
frequency vibrational modes -translational and radial- of the 2 s
electrons), and in the ECP case to reduce the p-character effects in
higher Z elements (e.g. Silicon). A fixed-core should be defined with
a mass that includes the corresponding nuclear mass plus the 2 s
electrons in atomic mass units (2x5.4857990943e-4), and a radius
equivalent to that of minimized 1s electrons (see examples under
/examples/USER/eff/fixed-core). An pseudo-core should be described
with a mass that includes the corresponding nuclear mass, plus all the
core electrons (i.e no outer shell electrons), and a radius equivalent
to that of a corresponding minimized full-electron system. The charge
for a pseudo-core atom should be given by the number of outer shell
electrons.
</P>
<P>In general, eFF excels at computing the properties of materials in
extreme conditions and tracing the system dynamics over multi-picosend
timescales; this is particularly relevant where electron excitations
can change significantly the nature of bonding in the system. It can
capture with surprising accuracy the behavior of such systems because
it describes consistently and in an unbiased manner many different
kinds of bonds, including covalent, ionic, multicenter, ionic, and
plasma, and how they interconvert and/or change when they become
excited. eFF also excels in computing the relative thermochemistry of
isodemic reactions and conformational changes, where the bonds of the
reactants are of the same type as the bonds of the products. eFF
assumes that kinetic energy differences dominate the overall exchange
energy, which is true when the electrons present are nearly spherical
and nodeless and valid for covalent compounds such as dense hydrogen,
hydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth
metals (e.g. beryllium) and semimetals such as boron; and various
compounds containing ionic and/or multicenter bonds, such as boron
dihydride.
</P>
<HR>
<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
</P>
<P>For atom type pairs I,J and I != J, the cutoff distance for the
<I>eff/cut</I> style can be mixed. The default mix value is <I>geometric</I>.
See the "pair_modify" command for details.
</P>
<P>The <A HREF = "pair_modify.html">pair_modify</A> shift option is not relevant for
these pair styles.
</P>
<P>The <I>eff/long</I> (not yet available) style supports the
<A HREF = "pair_modify.html">pair_modify</A> table option for tabulation of the
short-range portion of the long-range Coulombic interaction.
</P>
<P>These pair styles do not support the <A HREF = "pair_modify.html">pair_modify</A>
tail option for adding long-range tail corrections to energy and
pressure.
</P>
<P>These pair styles write their information to <A HREF = "restart.html">binary restart
files</A>, so pair_style and pair_coeff commands do not need
to be specified in an input script that reads a restart file.
</P>
<P>These pair styles can only be used via the <I>pair</I> keyword of the
<A HREF = "run_style.html">run_style respa</A> command. They do not support the
<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>These pair styles will only be enabled if LAMMPS is built with the
"user-eff" package. It will only be enabled if LAMMPS was built with
that package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section
for more info.
</P>
<P>These pair styles require that particles store electron attributes
such as radius, radial velocity, and radital force, as defined by the
<A HREF = "atom_style.html">atom_style</A>. The <I>electron</I> atom style does all of
this.
</P>
<P>Thes pair styles require you to use the <A HREF = "communicate.html">communicate vel
yes</A> option so that velocites are stored by ghost
atoms.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "pair_coeff.html">pair_coeff</A>
</P>
<P><B>Default:</B>
</P>
<P>If not specified, eradius_limit_flag = 0 and pressure_flag = 0.
</P>
<HR>
<A NAME = "Su"></A>
<P><B>(Su)</B> Su and Goddard, Excited Electron Dynamics Modeling of Warm
Dense Matter, Phys Rev Lett, 99:185003 (2007).
</P>
<A NAME = "Jaramillo-Botero"></A>
<P><B>(Jaramillo-Botero)</B> Jaramillo-Botero, Su, Qi, Goddard, Large-scale,
Long-term Non-adiabatic Electron Molecular Dynamics for Describing
Material Properties and Phenomena in Extreme Environments, J Comp
Chem, 32, 497-512 (2011).
</P>
</HTML>
diff --git a/doc/pair_eff.txt b/doc/pair_eff.txt
index ac2a5f30b..232b785ef 100644
--- a/doc/pair_eff.txt
+++ b/doc/pair_eff.txt
@@ -1,283 +1,283 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style eff/cut command :h3
[Syntax:]
pair_style eff/cut cutoff eradius_limit_flag pressure_flag
cutoff = global cutoff for Coulombic interactions
eradius_limit_flag = 0 or 1 for whether electron size is restrained (optional)
pressure_flag = 0 or 1 to define the type of pressure calculation (optional) :ul
[Examples:]
pair_style eff/cut 39.7
pair_style eff/cut 40.0 1 1
pair_coeff * *
pair_coeff 2 2 20.0 :pre
[Description:]
-Contains a LAMMPS implementation of the electron Force Field (eFF)
-potential currently under development at Caltech, as described in
-"(Jaramillo-Botero)"_#Jaramillo-Botero. The eFF was first introduced
-by "(Su)"_#Su in 2007.
+This pair style contains a LAMMPS implementation of the electron Force
+Field (eFF) potential currently under development at Caltech, as
+described in "(Jaramillo-Botero)"_#Jaramillo-Botero. The eFF was
+first introduced by "(Su)"_#Su in 2007.
eFF can be viewed as an approximation to QM wave packet dynamics and
Fermionic molecular dynamics, combining the ability of electronic
structure methods to describe atomic structure, bonding, and chemistry
in materials, and of plasma methods to describe nonequilibrium
dynamics of large systems with a large number of highly excited
electrons. Yet, eFF relies on a simplification of the electronic
wavefunction in which electrons are described as floating Gaussian
wave packets whose position and size respond to the various dynamic
forces between interacting classical nuclear particles and spherical
Gaussian electron wavepackets. The wavefunction is taken to be a
Hartree product of the wave packets. To compensate for the lack of
explicit antisymmetry in the resulting wavefunction, a spin-dependent
Pauli potential is included in the Hamiltonian. Substituting this
wavefunction into the time-dependent Schrodinger equation produces
equations of motion that correspond - to second order - to classical
Hamiltonian relations between electron position and size, and their
conjugate momenta. The N-electron wavefunction is described as a
product of one-electron Gaussian functions, whose size is a dynamical
variable and whose position is not constrained to a nuclear
center. This form allows for straightforward propagation of the
wavefunction, with time, using a simple formulation from which the
equations of motion are then integrated with conventional MD
algorithms. In addition to this spin-dependent Pauli repulsion
potential term between Gaussians, eFF includes the electron kinetic
energy from the Gaussians. These two terms are based on
first-principles quantum mechanics. On the other hand, nuclei are
described as point charges, which interact with other nuclei and
electrons through standard electrostatic potential forms.
The full Hamiltonian (shown below), contains then a standard
description for electrostatic interactions between a set of
delocalized point and Gaussian charges which include, nuclei-nuclei
(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a
mixed QM-classical mechanics method rather than a conventional force
field method (in which electron motions are averaged out into ground
state nuclear motions, i.e a single electronic state, and particle
interactions are described via empirically parameterized interatomic
potential functions). This makes eFF uniquely suited to simulate
materials over a wide range of temperatures and pressures where
electronically excited and ionized states of matter can occur and
coexist. Furthermore, the interactions between particles -nuclei and
electrons- reduce to the sum of a set of effective pairwise potentials
in the eFF formulation. The {eff/cut} style computes the pairwise
Coulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),
and the quantum-derived Pauli (E_PR) and Kinetic energy interactions
potentials between electrons (E_KE) for a total energy expression
given as,
:c,image(Eqs/eff_energy_expression.jpg)
The individual terms are defined as follows:
:c,image(Eqs/eff_KE.jpg)
:c,image(Eqs/eff_NN.jpg)
:c,image(Eqs/eff_Ne.jpg)
:c,image(Eqs/eff_ee.jpg)
:c,image(Eqs/eff_Pauli.jpg)
where, s_i correspond to the electron sizes, the sigmas i's to the
fixed spins of the electrons, Z_i to the charges on the nuclei, R_ij
to the distances between the nuclei or the nuclei and electrons, and
r_ij to the distances between electrons. For additional details see
"(Jaramillo-Botero)"_#Jaramillo-Botero.
The overall electrostatics energy is given in Hartree units of energy
by default and can be modified by an energy-conversion constant,
according to the units chosen (see "electron_units"_units.html). The
cutoff Rc, given in Bohrs (by default), truncates the interaction
distance. The recommended cutoff for this pair style should follow
the minimum image criterion, i.e. half of the minimum unit cell
length.
Style {eff/long} (not yet available) computes the same interactions as
style {eff/cut} except that an additional damping factor is applied so
it can be used in conjunction with the
"kspace_style"_kspace_style.html command and its {ewald} or {pppm}
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
-These potentials are designed to be used with "atom_style
-electron"_atom_electron.html definitions, in order to handle the
+This potential is designed to be used with "atom_style
+electron"_atom_style.html definitions, in order to handle the
description of systems with interacting nuclei and explicit electrons.
The following coefficients must be defined for each pair of atoms
types via the "pair_coeff"_pair_coeff.html command as in the examples
above, or in the data file or restart files read by the
"read_data"_read_data.html or "read_restart"_read_restart.html
commands, or by mixing as described below:
cutoff (distance units) :ul
For {eff/cut}, the cutoff coefficient is optional. If it is not used
(as in some of the examples above), the default global value specified
in the pair_style command is used.
For {eff/long} (not yet available) no cutoff will be specified for an
individual I,J type pair via the "pair_coeff"_pair_coeff.html command.
All type pairs use the same global cutoff specified in the pair_style
command.
The {eradius_limit_flag} and {pressure_flag} settings are optional.
Neither or both must be specified. If not specified they are
both set to 0 by default.
The {eradius_limit_flag} is used to restrain electrons from becoming
unbounded in size at very high temperatures were the Gaussian wave
packet representation breaks down, and from expanding as free
particles to infinite size. A setting of 0 means do not impose this
restraint. A setting of 1 imposes the restraint. The restraining
harmonic potential takes the form E = 1/2k_ss^2 for s > L_box/2, where
k_s = 1 Hartrees/Bohr^2.
The {pressure_flag} is used to control between two types of pressure
computation: if set to 0, the computed pressure does not include the
electronic radial virials contributions to the total pressure (scalar
or tensor). If set to 1, the computed pressure will include the
electronic radial virial contributions to the total pressure (scalar
and tensor).
IMPORTANT NOTE: there are two different pressures that can be reported
for eFF when defining this pair_style, one (default) that considers
electrons do not contribute radial virial components (i.e. electrons
treated as incompressible 'rigid' spheres) and one that does. The
radial electronic contributions to the virials are only tallied if the
flexible pressure option is set, and this will affect both global and
per-atom quantities. In principle, the true pressure of a system is
somewhere in between the rigid and the flexible eFF pressures, but,
for most cases, the difference between these two pressures will not be
significant over long-term averaged runs (i.e. even though the energy
partitioning changes, the total energy remains similar).
:line
IMPORTANT NOTE: The currently implemented eFF gives a reasonably
accurate description for systems containing nuclei from Z = 1-6.
Users interested in applying eFF should restrict to systems where
electrons are s-like, or contain p character only insofar as a single
lobe of electron density is shifted away from the nuclear center. See
further details about some of the virtues and current limitations of
the method in "(Jaramillo-Botero)"_#Jaramillo-Botero.
Work is underway to extend the eFF to higher Z elements with
increasingly non-spherical electrons (p-block and d-block), to provide
explicit terms for electron correlation/exchange, and to improve its
computational efficiency via atom models with fixed 2 s core electrons
and atom models represented as pseudo-cores plus valence electrons.
The current version adds support for models with fixed-core and
effective pseudo-core (i.e. effective core pseudopotentials, ECP)
definitions. to enable larger timesteps (i.e. by avoiding the high
frequency vibrational modes -translational and radial- of the 2 s
electrons), and in the ECP case to reduce the p-character effects in
higher Z elements (e.g. Silicon). A fixed-core should be defined with
a mass that includes the corresponding nuclear mass plus the 2 s
electrons in atomic mass units (2x5.4857990943e-4), and a radius
equivalent to that of minimized 1s electrons (see examples under
/examples/USER/eff/fixed-core). An pseudo-core should be described
with a mass that includes the corresponding nuclear mass, plus all the
core electrons (i.e no outer shell electrons), and a radius equivalent
to that of a corresponding minimized full-electron system. The charge
for a pseudo-core atom should be given by the number of outer shell
electrons.
In general, eFF excels at computing the properties of materials in
extreme conditions and tracing the system dynamics over multi-picosend
timescales; this is particularly relevant where electron excitations
can change significantly the nature of bonding in the system. It can
capture with surprising accuracy the behavior of such systems because
it describes consistently and in an unbiased manner many different
kinds of bonds, including covalent, ionic, multicenter, ionic, and
plasma, and how they interconvert and/or change when they become
excited. eFF also excels in computing the relative thermochemistry of
isodemic reactions and conformational changes, where the bonds of the
reactants are of the same type as the bonds of the products. eFF
assumes that kinetic energy differences dominate the overall exchange
energy, which is true when the electrons present are nearly spherical
and nodeless and valid for covalent compounds such as dense hydrogen,
hydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth
metals (e.g. beryllium) and semimetals such as boron; and various
compounds containing ionic and/or multicenter bonds, such as boron
dihydride.
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:
For atom type pairs I,J and I != J, the cutoff distance for the
{eff/cut} style can be mixed. The default mix value is {geometric}.
See the "pair_modify" command for details.
The "pair_modify"_pair_modify.html shift option is not relevant for
these pair styles.
The {eff/long} (not yet available) style supports the
"pair_modify"_pair_modify.html table option for tabulation of the
short-range portion of the long-range Coulombic interaction.
These pair styles do not support the "pair_modify"_pair_modify.html
tail option for adding long-range tail corrections to energy and
pressure.
These pair styles write their information to "binary restart
files"_restart.html, so pair_style and pair_coeff commands do not need
to be specified in an input script that reads a restart file.
These pair styles can only be used via the {pair} keyword of the
"run_style respa"_run_style.html command. They do not support the
{inner}, {middle}, {outer} keywords.
:line
[Restrictions:]
These pair styles will only be enabled if LAMMPS is built with the
"user-eff" package. It will only be enabled if LAMMPS was built with
that package. See the "Making LAMMPS"_Section_start.html#2_3 section
for more info.
These pair styles require that particles store electron attributes
such as radius, radial velocity, and radital force, as defined by the
"atom_style"_atom_style.html. The {electron} atom style does all of
this.
Thes pair styles require you to use the "communicate vel
yes"_communicate.html option so that velocites are stored by ghost
atoms.
[Related commands:]
"pair_coeff"_pair_coeff.html
[Default:]
If not specified, eradius_limit_flag = 0 and pressure_flag = 0.
:line
:link(Su)
[(Su)] Su and Goddard, Excited Electron Dynamics Modeling of Warm
Dense Matter, Phys Rev Lett, 99:185003 (2007).
:link(Jaramillo-Botero)
[(Jaramillo-Botero)] Jaramillo-Botero, Su, Qi, Goddard, Large-scale,
Long-term Non-adiabatic Electron Molecular Dynamics for Describing
Material Properties and Phenomena in Extreme Environments, J Comp
Chem, 32, 497-512 (2011).
diff --git a/doc/pair_lj96_cut.html b/doc/pair_lj96.html
similarity index 100%
rename from doc/pair_lj96_cut.html
rename to doc/pair_lj96.html
diff --git a/doc/pair_lj96_cut.txt b/doc/pair_lj96.txt
similarity index 100%
rename from doc/pair_lj96_cut.txt
rename to doc/pair_lj96.txt
diff --git a/doc/pair_style.html b/doc/pair_style.html
index 5d747c3ca..afbdcb8a7 100644
--- a/doc/pair_style.html
+++ b/doc/pair_style.html
@@ -1,184 +1,184 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>pair_style command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = one of the styles from the list below
<LI>args = arguments used by a particular style
</UL>
<P><B>Examples:</B>
</P>
<PRE>pair_style lj/cut 2.5
pair_style eam/alloy
pair_style hybrid lj/charmm/coul/long 10.0 eam
pair_style table linear 1000
pair_style none
</PRE>
<P><B>Description:</B>
</P>
<P>Set the formula(s) LAMMPS uses to compute pairwise interactions. In
LAMMPS, pair potentials are defined between pairs of atoms that are
within a cutoff distance and the set of active interactions typically
changes over time. See the <A HREF = "bond_style.html">bond_style</A> command to
define potentials between pairs of bonded atoms, which typically
remain in place for the duration of a simulation.
</P>
<P>In LAMMPS, pairwise force fields encompass a variety of interactions,
some of which include many-body effects, e.g. EAM, Stillinger-Weber,
Tersoff, REBO potentials. They are still classified as "pairwise"
potentials because the set of interacting atoms changes with time
(unlike molecular bonds) and thus a neighbor list is used to find
nearby interacting atoms.
</P>
<P>Hybrid models where specified pairs of atom types interact via
different pair potentials can be setup using the <I>hybrid</I> pair style.
</P>
<P>The coefficients associated with a pair style are typically set for
each pair of atom types, and are specified by the
<A HREF = "pair_coeff.html">pair_coeff</A> command or read from a file by the
<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
commands.
</P>
<P>The <A HREF = "pair_modify.html">pair_modify</A> command sets options for mixing of
type I-J interaction coefficients and adding energy offsets or tail
corrections to Lennard-Jones potentials. Details on these options as
they pertain to individual potentials are described on the doc page
for the potential. Likewise, info on whether the potential
information is stored in a <A HREF = "write_restart.html">restart file</A> is listed
on the potential doc page.
</P>
<P>In the formulas listed for each pair style, <I>E</I> is the energy of a
pairwise interaction between two atoms separated by a distance <I>r</I>.
The force between the atoms is the negative derivative of this
expression.
</P>
<P>If the pair_style command has a cutoff argument, it sets global
cutoffs for all pairs of atom types. The distance(s) can be smaller
or larger than the dimensions of the simulation box.
</P>
<P>Typically, the global cutoff value can be overridden for a specific
pair of atom types by the <A HREF = "pair_coeff.html">pair_coeff</A> command. The
pair style settings (including global cutoffs) can be changed by a
subsequent pair_style command using the same style. This will reset
the cutoffs for all atom type pairs, including those previously set
explicitly by a <A HREF = "pair_coeff.html">pair_coeff</A> command. The exceptions
to this are that pair_style <I>table</I> and <I>hybrid</I> settings cannot be
reset. A new pair_style command for these styles will wipe out all
previously specified pair_coeff values.
</P>
<HR>
<P>Here is an alphabetic list of pair styles defined in LAMMPS. Click on
the style to display the formula it computes, arguments specified in
the pair_style command, and coefficients specified by the associated
<A HREF = "pair_coeff.html">pair_coeff</A> command:
</P>
<UL><LI><A HREF = "pair_none.html">pair_style none</A> - turn off pairwise interactions
<LI><A HREF = "pair_hybrid.html">pair_style hybrid</A> - multiple styles of pairwise interactions
<LI><A HREF = "pair_hybrid.html">pair_style hybrid/overlay</A> - multiple styles of superposed pairwise interactions
</UL>
<UL><LI><A HREF = "pair_adp.html">pair_style adp</A> - angular dependent potential (ADP) of Mishin
<LI><A HREF = "pair_airebo.html">pair_style airebo</A> - AIREBO potential of Stuart
<LI><A HREF = "pair_born.html">pair_style born</A> - Born-Mayer-Huggins potential
<LI><A HREF = "pair_born.html">pair_style born/coul/long</A> - Born-Mayer-Huggins with long-range Coulomb
<LI><A HREF = "pair_buck.html">pair_style buck</A> - Buckingham potential
<LI><A HREF = "pair_buck.html">pair_style buck/coul/cut</A> - Buckingham with cutoff Coulomb
<LI><A HREF = "pair_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
<LI><A HREF = "pair_colloid.html">pair_style colloid</A> - integrated colloidal potential
<LI><A HREF = "pair_coul.html">pair_style coul/cut</A> - cutoff Coulombic potential
<LI><A HREF = "pair_coul.html">pair_style coul/debye</A> - cutoff Coulombic potential with Debye screening
<LI><A HREF = "pair_coul.html">pair_style coul/long</A> - long-range Coulombic potential
<LI><A HREF = "pair_dipole.html">pair_style dipole/cut</A> - point dipoles with cutoff
<LI><A HREF = "pair_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
<LI><A HREF = "pair_dpd.html">pair_style dpd/tstat</A> - DPD thermostatting
<LI><A HREF = "pair_dsmc.html">pair_style dsmc</A> - Direct Simulation Monte Carlo (DSMC)
<LI><A HREF = "pair_eam.html">pair_style eam</A> - embedded atom method (EAM)
<LI><A HREF = "pair_eam.html">pair_style eam/alloy</A> - alloy EAM
<LI><A HREF = "pair_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
<LI><A HREF = "pair_eim.html">pair_style eim</A> - embedded ion method (EIM)
<LI><A HREF = "pair_gauss.html">pair_style gauss</A> - Gaussian potential
<LI><A HREF = "pair_gayberne.html">pair_style gayberne</A> - Gay-Berne ellipsoidal potential
<LI><A HREF = "pair_gran.html">pair_style gran/hertz/history</A> - granular potential with Hertzian interactions
<LI><A HREF = "pair_gran.html">pair_style gran/hooke</A> - granular potential with history effects
<LI><A HREF = "pair_gran.html">pair_style gran/hooke/history</A> - granular potential without history effects
<LI><A HREF = "pair_hbond_dreiding.html">pair_style hbond/dreiding/lj</A> - DREIDING hydrogen bonding LJ potential
<LI><A HREF = "pair_hbond_dreiding.html">pair_style hbond/dreiding/morse</A> - DREIDING hydrogen bonding Morse potential
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye screening added to Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs</A> - GROMACS-style Lennard-Jones potential
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs/coul/gromacs</A> - GROMACS-style LJ and Coulombic potential
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
-<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
+<LI><A HREF = "pair_lj96.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
<LI><A HREF = "pair_lubricate.html">pair_style lubricate</A> - hydrodynamic lubrication forces
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential
<LI><A HREF = "pair_peri.html">pair_style peri/lps</A> - peridynamic LPS potential
<LI><A HREF = "pair_peri.html">pair_style peri/pmb</A> - peridynamic PMB potential
<LI><A HREF = "pair_reax.html">pair_style reax</A> - ReaxFF potential
<LI><A HREF = "pair_airebo.html">pair_style rebo</A> - 2nd generation REBO potential of Brenner
<LI><A HREF = "pair_resquared.html">pair_style resquared</A> - Everaers RE-Squared ellipsoidal potential
<LI><A HREF = "pair_soft.html">pair_style soft</A> - Soft (cosine) potential
<LI><A HREF = "pair_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
<LI><A HREF = "pair_table.html">pair_style table</A> - tabulated pair potential
<LI><A HREF = "pair_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
<LI><A HREF = "pair_tersoff_zbl.html">pair_style tersoff/zbl</A> - Tersoff/ZBL 3-body potential
<LI><A HREF = "pair_yukawa.html">pair_style yukawa</A> - Yukawa potential
<LI><A HREF = "pair_yukawa_colloid.html">pair_style yukawa/colloid</A> - screened Yukawa potential for finite-size particles
</UL>
<P>There are also additional pair styles submitted by users which are
included in the LAMMPS distribution. The list of these with links to
the individual styles are given in the pair section of <A HREF = "Section_commands.html#3_5">this
page</A>.
</P>
<P>There are also additional accelerated pair styles included in the
LAMMPS distribution for faster performance on CPUs and GPUs. The list
of these with links to the individual styles are given in the pair
section of <A HREF = "Section_commands.html#3_5">this page</A>.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>This command must be used before any coefficients are set by the
<A HREF = "pair_coeff.html">pair_coeff</A>, <A HREF = "read_data.html">read_data</A>, or
<A HREF = "read_restart.html">read_restart</A> commands.
</P>
<P>Some pair styles are part of specific packages. They are only enabled
if LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
LAMMPS</A> section for more info on packages. The
doc pages for individual pair potentials tell if it is part of a
package.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "pair_coeff.html">pair_coeff</A>, <A HREF = "read_data.html">read_data</A>,
<A HREF = "pair_modify.html">pair_modify</A>, <A HREF = "kspace_style.html">kspace_style</A>,
<A HREF = "dielectric.html">dielectric</A>, <A HREF = "pair_write.html">pair_write</A>
</P>
<P><B>Default:</B>
</P>
<PRE>pair_style none
</PRE>
</HTML>
diff --git a/doc/pair_style.txt b/doc/pair_style.txt
index 1e3860e24..5af324b41 100644
--- a/doc/pair_style.txt
+++ b/doc/pair_style.txt
@@ -1,179 +1,179 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style command :h3
[Syntax:]
pair_style style args :pre
style = one of the styles from the list below
args = arguments used by a particular style :ul
[Examples:]
pair_style lj/cut 2.5
pair_style eam/alloy
pair_style hybrid lj/charmm/coul/long 10.0 eam
pair_style table linear 1000
pair_style none :pre
[Description:]
Set the formula(s) LAMMPS uses to compute pairwise interactions. In
LAMMPS, pair potentials are defined between pairs of atoms that are
within a cutoff distance and the set of active interactions typically
changes over time. See the "bond_style"_bond_style.html command to
define potentials between pairs of bonded atoms, which typically
remain in place for the duration of a simulation.
In LAMMPS, pairwise force fields encompass a variety of interactions,
some of which include many-body effects, e.g. EAM, Stillinger-Weber,
Tersoff, REBO potentials. They are still classified as "pairwise"
potentials because the set of interacting atoms changes with time
(unlike molecular bonds) and thus a neighbor list is used to find
nearby interacting atoms.
Hybrid models where specified pairs of atom types interact via
different pair potentials can be setup using the {hybrid} pair style.
The coefficients associated with a pair style are typically set for
each pair of atom types, and are specified by the
"pair_coeff"_pair_coeff.html command or read from a file by the
"read_data"_read_data.html or "read_restart"_read_restart.html
commands.
The "pair_modify"_pair_modify.html command sets options for mixing of
type I-J interaction coefficients and adding energy offsets or tail
corrections to Lennard-Jones potentials. Details on these options as
they pertain to individual potentials are described on the doc page
for the potential. Likewise, info on whether the potential
information is stored in a "restart file"_write_restart.html is listed
on the potential doc page.
In the formulas listed for each pair style, {E} is the energy of a
pairwise interaction between two atoms separated by a distance {r}.
The force between the atoms is the negative derivative of this
expression.
If the pair_style command has a cutoff argument, it sets global
cutoffs for all pairs of atom types. The distance(s) can be smaller
or larger than the dimensions of the simulation box.
Typically, the global cutoff value can be overridden for a specific
pair of atom types by the "pair_coeff"_pair_coeff.html command. The
pair style settings (including global cutoffs) can be changed by a
subsequent pair_style command using the same style. This will reset
the cutoffs for all atom type pairs, including those previously set
explicitly by a "pair_coeff"_pair_coeff.html command. The exceptions
to this are that pair_style {table} and {hybrid} settings cannot be
reset. A new pair_style command for these styles will wipe out all
previously specified pair_coeff values.
:line
Here is an alphabetic list of pair styles defined in LAMMPS. Click on
the style to display the formula it computes, arguments specified in
the pair_style command, and coefficients specified by the associated
"pair_coeff"_pair_coeff.html command:
"pair_style none"_pair_none.html - turn off pairwise interactions
"pair_style hybrid"_pair_hybrid.html - multiple styles of pairwise interactions
"pair_style hybrid/overlay"_pair_hybrid.html - multiple styles of superposed pairwise interactions :ul
"pair_style adp"_pair_adp.html - angular dependent potential (ADP) of Mishin
"pair_style airebo"_pair_airebo.html - AIREBO potential of Stuart
"pair_style born"_pair_born.html - Born-Mayer-Huggins potential
"pair_style born/coul/long"_pair_born.html - Born-Mayer-Huggins with long-range Coulomb
"pair_style buck"_pair_buck.html - Buckingham potential
"pair_style buck/coul/cut"_pair_buck.html - Buckingham with cutoff Coulomb
"pair_style buck/coul/long"_pair_buck.html - Buckingham with long-range Coulomb
"pair_style colloid"_pair_colloid.html - integrated colloidal potential
"pair_style coul/cut"_pair_coul.html - cutoff Coulombic potential
"pair_style coul/debye"_pair_coul.html - cutoff Coulombic potential with Debye screening
"pair_style coul/long"_pair_coul.html - long-range Coulombic potential
"pair_style dipole/cut"_pair_dipole.html - point dipoles with cutoff
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
"pair_style dpd/tstat"_pair_dpd.html - DPD thermostatting
"pair_style dsmc"_pair_dsmc.html - Direct Simulation Monte Carlo (DSMC)
"pair_style eam"_pair_eam.html - embedded atom method (EAM)
"pair_style eam/alloy"_pair_eam.html - alloy EAM
"pair_style eam/fs"_pair_eam.html - Finnis-Sinclair EAM
"pair_style eim"_pair_eim.html - embedded ion method (EIM)
"pair_style gauss"_pair_gauss.html - Gaussian potential
"pair_style gayberne"_pair_gayberne.html - Gay-Berne ellipsoidal potential
"pair_style gran/hertz/history"_pair_gran.html - granular potential with Hertzian interactions
"pair_style gran/hooke"_pair_gran.html - granular potential with history effects
"pair_style gran/hooke/history"_pair_gran.html - granular potential without history effects
"pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html - DREIDING hydrogen bonding LJ potential
"pair_style hbond/dreiding/morse"_pair_hbond_dreiding.html - DREIDING hydrogen bonding Morse potential
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
"pair_style lj/class2/coul/long"_pair_class2.html - COMPASS with long-range Coulomb
"pair_style lj/cut"_pair_lj.html - cutoff Lennard-Jones potential with no Coulomb
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye screening added to Coulomb
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
"pair_style lj/gromacs"_pair_gromacs.html - GROMACS-style Lennard-Jones potential
"pair_style lj/gromacs/coul/gromacs"_pair_gromacs.html - GROMACS-style LJ and Coulombic potential
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
-"pair_style lj96/cut"_pair_lj96_cut.html - Lennard-Jones 9/6 potential
+"pair_style lj96/cut"_pair_lj96.html - Lennard-Jones 9/6 potential
"pair_style lubricate"_pair_lubricate.html - hydrodynamic lubrication forces
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
"pair_style morse"_pair_morse.html - Morse potential
"pair_style peri/lps"_pair_peri.html - peridynamic LPS potential
"pair_style peri/pmb"_pair_peri.html - peridynamic PMB potential
"pair_style reax"_pair_reax.html - ReaxFF potential
"pair_style rebo"_pair_airebo.html - 2nd generation REBO potential of Brenner
"pair_style resquared"_pair_resquared.html - Everaers RE-Squared ellipsoidal potential
"pair_style soft"_pair_soft.html - Soft (cosine) potential
"pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential
"pair_style table"_pair_table.html - tabulated pair potential
"pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential
"pair_style tersoff/zbl"_pair_tersoff_zbl.html - Tersoff/ZBL 3-body potential
"pair_style yukawa"_pair_yukawa.html - Yukawa potential
"pair_style yukawa/colloid"_pair_yukawa_colloid.html - screened Yukawa potential for finite-size particles :ul
There are also additional pair styles submitted by users which are
included in the LAMMPS distribution. The list of these with links to
the individual styles are given in the pair section of "this
page"_Section_commands.html#3_5.
There are also additional accelerated pair styles included in the
LAMMPS distribution for faster performance on CPUs and GPUs. The list
of these with links to the individual styles are given in the pair
section of "this page"_Section_commands.html#3_5.
:line
[Restrictions:]
This command must be used before any coefficients are set by the
"pair_coeff"_pair_coeff.html, "read_data"_read_data.html, or
"read_restart"_read_restart.html commands.
Some pair styles are part of specific packages. They are only enabled
if LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#2_3 section for more info on packages. The
doc pages for individual pair potentials tell if it is part of a
package.
[Related commands:]
"pair_coeff"_pair_coeff.html, "read_data"_read_data.html,
"pair_modify"_pair_modify.html, "kspace_style"_kspace_style.html,
"dielectric"_dielectric.html, "pair_write"_pair_write.html
[Default:]
pair_style none :pre
diff --git a/doc/read_data.html b/doc/read_data.html
index af3d2c570..882e5ed1c 100644
--- a/doc/read_data.html
+++ b/doc/read_data.html
@@ -1,730 +1,733 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>read_data command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>read_data file
</PRE>
<UL><LI>file = name of data file to read in
</UL>
<P><B>Examples:</B>
</P>
<PRE>read_data data.lj
read_data ../run7/data.polymer.gz
</PRE>
<P><B>Description:</B>
</P>
<P>Read in a data file containing information LAMMPS needs to run a
simulation. The file can be ASCII text or a gzipped text file
(detected by a .gz suffix). This is one of 3 ways to specify initial
atom coordinates; see the <A HREF = "read_restart.html">read_restart</A> and
<A HREF = "create_atoms.html">create_atoms</A> commands for alternative methods.
</P>
<P>The structure of the data file is important, though many settings and
sections are optional or can come in any order. See the examples
directory for sample data files for different problems.
</P>
<P>A data file has a header and a body. The header appears first. The
first line of the header is always skipped; it typically contains a
description of the file. Then lines are read one at a time. Lines
can have a trailing comment starting with '#' that is ignored. If the
line is blank (only whitespace after comment is deleted), it is
skipped. If the line contains a header keyword, the corresponding
value(s) is read from the line. If it doesn't contain a header
keyword, the line begins the body of the file.
</P>
<P>The body of the file contains zero or more sections. The first line
of a section has only a keyword. The next line is skipped. The
remaining lines of the section contain values. The number of lines
depends on the section keyword as described below. Zero or more blank
lines can be used between sections. Sections can appear in any order,
with a few exceptions as noted below.
</P>
<P>The formatting of individual lines in the data file (indentation,
spacing between words and numbers) is not important except that header
and section keywords (e.g. atoms, xlo xhi, Masses, Bond Coeffs) must
be capitalized as shown and can't have extra white space between their
words - e.g. two spaces or a tab between "Bond" and "Coeffs" is not
valid.
</P>
<HR>
<P>These are the recognized header keywords. Header lines can come in
any order. The value(s) are read from the beginning of the line.
Thus the keyword <I>atoms</I> should be in a line like "1000 atoms"; the
keyword <I>ylo yhi</I> should be in a line like "-10.0 10.0 ylo yhi"; the
keyword <I>xy xz yz</I> should be in a line like "0.0 5.0 6.0 xy xz yz".
All these settings have a default value of 0, except the lo/hi box
size defaults are -0.5 and 0.5. A line need only appear if the value
is different than the default.
</P>
<UL><LI><I>atoms</I> = # of atoms in system
<LI><I>bonds</I> = # of bonds in system
<LI><I>angles</I> = # of angles in system
<LI><I>dihedrals</I> = # of dihedrals in system
<LI><I>impropers</I> = # of impropers in system
<LI><I>atom types</I> = # of atom types in system
<LI><I>bond types</I> = # of bond types in system
<LI><I>angle types</I> = # of angle types in system
<LI><I>dihedral types</I> = # of dihedral types in system
<LI><I>improper types</I> = # of improper types in system
<LI><I>extra bond per atom</I> = leave space for this many new bonds per atom
<LI><I>ellipsoids</I> = # of ellipsoids in system
<LI><I>xlo xhi</I> = simulation box boundaries in x dimension
<LI><I>ylo yhi</I> = simulation box boundaries in y dimension
<LI><I>zlo zhi</I> = simulation box boundaries in z dimension
<LI><I>xy xz yz</I> = simulation box tilt factors for triclinic system
</UL>
<P>The initial simulation box size is determined by the lo/hi settings.
In any dimension, the system may be periodic or non-periodic; see the
<A HREF = "boundary.html">boundary</A> command.
</P>
<P>If the <I>xy xz yz</I> line does not appear, LAMMPS will set up an
axis-aligned (orthogonal) simulation box. If the line does appear,
LAMMPS creates a non-orthogonal simulation domain shaped as a
parallelepiped with triclinic symmetry. The parallelepiped has its
"origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting
from the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =
(xz,yz,zhi-zlo). <I>Xy,xz,yz</I> can be 0.0 or positive or negative values
and are called "tilt factors" because they are the amount of
displacement applied to faces of an originally orthogonal box to
transform it into the parallelepiped.
</P>
<P>The tilt factors (xy,xz,yz) can not skew the box more than half the
distance of the corresponding parallel box length. For example, if
xlo = 2 and xhi = 12, then the x box length is 10 and the xy tilt
factor must be between -5 and 5. Similarly, both xz and yz must be
between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a
limitation, since if the maximum tilt factor is 5 (as in this
example), then configurations with tilt = ..., -15, -5, 5, 15, 25,
... are all geometrically equivalent.
</P>
<P>See <A HREF = "Section_howto.html#4_12">this section</A> of the doc pages for a
geometric description of triclinic boxes, as defined by LAMMPS, and
how to transform these parameters to and from other commonly used
triclinic representations.
</P>
<P>When a triclinic system is used, the simulation domain must be
periodic in any dimensions with a non-zero tilt factor, as defined by
the <A HREF = "boundary.html">boundary</A> command. I.e. if the xy tilt factor is
non-zero, then both the x and y dimensions must be periodic.
Similarly, x and z must be periodic if xz is non-zero and y and z must
be periodic if yz is non-zero. Also note that if your simulation will
tilt the box, e.g. via the <A HREF = "fix_deform.html">fix deform</A> command, the
simulation box must be defined as triclinic, even if the tilt factors
are initially 0.0.
</P>
<P>For 2d simulations, the <I>zlo zhi</I> values should be set to bound the z
coords for atoms that appear in the file; the default of -0.5 0.5 is
valid if all z coords are 0.0. For 2d triclinic simulations, the xz
and yz tilt factors must be 0.0.
</P>
<P>If the system is periodic (in a dimension), then atom coordinates can
be outside the bounds (in that dimension); they will be remapped (in a
periodic sense) back inside the box.
</P>
<P>IMPORTANT NOTE: If the system is non-periodic (in a dimension), then
all atoms in the data file must have coordinates (in that dimension)
that are "greater than or equal to" the lo value and "less than or
equal to" the hi value. If the non-periodic dimension is of style
"fixed" (see the <A HREF = "boundary.html">boundary</A> command), then the atom
coords must be strictly "less than" the hi value, due to the way
LAMMPS assign atoms to processors. Note that you should not make the
lo/hi values radically smaller/larger than the extent of the atoms.
For example, if your atoms extend from 0 to 50, you should not specify
the box bounds as -10000 and 10000. This is because LAMMPS uses the
specified box size to layout the 3d grid of processors. A huge
(mostly empty) box will be sub-optimal for performance when using
"fixed" boundary conditions (see the <A HREF = "boundary.html">boundary</A>
command). When using "shrink-wrap" boundary conditions (see the
<A HREF = "boundary.html">boundary</A> command), a huge (mostly empty) box may cause
a parallel simulation to lose atoms the first time that LAMMPS
shrink-wraps the box around the atoms.
</P>
<P>The "extra bond per atom" setting should be used if new bonds will be
added to the system when a simulation runs, e.g. by using the <A HREF = "fix_bond_create.html">fix
bond/create</A> command. This will pre-allocate
space in LAMMPS data structures for storing the new bonds.
</P>
<P>The "ellipsoids<A HREF = "atom_style.html"> setting is only used with atom_style
ellipsoid</A> and specifies how many of the atoms are
finite-size ellipsoids; the remainder are point particles. See the
discussion of ellipseflag and the <I>Ellipsoids</I> section below.
</P>
<HR>
<P>These are the section keywords for the body of the file.
</P>
<UL><LI><I>Atoms, Velocities, Ellipsoids, Masses</I> = atom-property sections
<LI><I>Bonds, Angles, Dihedrals, Impropers</I> = molecular topology sections
<LI><I>Pair Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs</I> = force field sections
<LI><I>BondBond Coeffs, BondAngle Coeffs, MiddleBondTorsion Coeffs, EndBondTorsion Coeffs, AngleTorsion Coeffs, AngleAngleTorsion Coeffs, BondBond13 Coeffs, AngleAngle Coeffs</I> = class 2 force field sections
</UL>
<P>Each section is listed below in alphabetic order. The format of each
section is described including the number of lines it must contain and
rules (if any) for where it can appear in the data file.
</P>
<P>Any individual line in the various sections can have a trailing
comment starting with "#" for annotation purposes. E.g. in the
Atoms section:
</P>
<PRE>10 1 17 -1.0 10.0 5.0 6.0 # salt ion
</PRE>
<HR>
<P><I>Angle Coeffs</I> section:
</P>
<UL><LI>one line per angle type
<LI>line syntax: ID coeffs
<PRE> ID = angle type (1-N)
coeffs = list of coeffs
</PRE>
<LI>example:
<PRE> 6 70 108.5 0 0
</PRE>
</UL>
<P>The number and meaning of the coefficients are specific to the defined
angle style. See the <A HREF = "angle_style.html">angle_style</A> and
<A HREF = "angle_coeff.html">angle_coeff</A> commands for details. Coefficients can
also be set via the <A HREF = "angle_coeff.html">angle_coeff</A> command in the
input script.
</P>
<HR>
<P><I>AngleAngle Coeffs</I> section:
</P>
<UL><LI>one line per improper type
<LI>line syntax: ID coeffs
<PRE> ID = improper type (1-N)
coeffs = list of coeffs (see <A HREF = "improper_coeff.html">improper_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>AngleAngleTorsion Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs (see <A HREF = "dihedral_coeff.html">dihedral_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>Angles</I> section:
</P>
<UL><LI>one line per angle
<LI>line syntax: ID type atom1 atom2 atom3
<PRE> ID = number of angle (1-Nangles)
type = angle type (1-Nangletype)
atom1,atom2,atom3 = IDs of 1st,2nd,3rd atoms in angle
</PRE>
example:
<BR>
<PRE> 2 2 17 29 430
</PRE>
</UL>
<P>The 3 atoms are ordered linearly within the angle. Thus the central
atom (around which the angle is computed) is the atom2 in the list.
E.g. H,O,H for a water molecule. The <I>Angles</I> section must appear
after the <I>Atoms</I> section. All values in this section must be
integers (1, not 1.0).
</P>
<HR>
<P><I>AngleTorsion Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs (see <A HREF = "dihedral_coeff.html">dihedral_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>Atoms</I> section:
</P>
<UL><LI>one line per atom
<LI>line syntax: depends on atom style
</UL>
<P>An <I>Atoms</I> section must appear in the data file if natoms > 0 in the
header section. The atoms can be listed in any order. These are the
line formats for each <A HREF = "atom_style.html">atom style</A> in LAMMPS. As
discussed below, each line can optionally have 3 flags (nx,ny,nz)
appended to it, which indicate which image of a periodic simulation
box the atom is in. These may be important to include for some kinds
of analysis.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >angle</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
<TR><TD >atomic</TD><TD > atom-ID atom-type x y z</TD></TR>
<TR><TD >bond</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
<TR><TD >charge</TD><TD > atom-ID atom-type q x y z</TD></TR>
<TR><TD >dipole</TD><TD > atom-ID atom-type q x y z mux muy muz</TD></TR>
<TR><TD >electron</TD><TD > atom-ID atom-type q spin eradius x y z</TD></TR>
<TR><TD >ellipsoid</TD><TD > atom-ID atom-type ellipsoidflag density x y z</TD></TR>
<TR><TD >full</TD><TD > atom-ID molecule-ID atom-type q x y z</TD></TR>
<TR><TD >molecular</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
<TR><TD >peri</TD><TD > atom-ID atom-type volume density x y z</TD></TR>
<TR><TD >sphere</TD><TD > atom-ID atom-type diameter density x y z</TD></TR>
+<TR><TD >wavepacket</TD><TD > atom-ID atom-type charge spin eradius etag cs_re cs_im x y z</TD></TR>
<TR><TD >hybrid</TD><TD > atom-ID atom-type x y z sub-style1 sub-style2 ...
</TD></TR></TABLE></DIV>
<P>The keywords have these meanings:
</P>
<UL><LI>atom-ID = integer ID of atom
<LI>molecule-ID = integer ID of molecule the atom belongs to
<LI>atom-type = type of atom (1-Ntype)
<LI>q = charge on atom (charge units)
<LI>diameter = diameter of spherical atom (distance units)
<LI>ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles
<LI>density = density of atom (mass/distance^3 units)
<LI>volume = volume of atom (distance^3 units)
<LI>x,y,z = coordinates of atom
<LI>mux,muy,muz = components of dipole moment of atom (dipole units)
<LI>spin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)
-<LI>eradius = electron radius (or fixed-core radius)
+<LI>eradius = electron radius (or fixed-core radius)
+<LI>etag = integer ID of electron that each wavepacket belongs to
+<LI>cs_re,cs_im = real/imaginary parts of wavepacket coefficients
</UL>
<P>The units for these quantities depend on the unit style; see the
<A HREF = "units.html">units</A> command for details.
</P>
<P>For 2d simulations specify z as 0.0, or a value within the <I>zlo zhi</I>
setting in the data file header.
</P>
<P>The atom-ID is used to identify the atom throughout the simulation and
in dump files. Normally, it is a unique value from 1 to Natoms for
each atom. Unique values larger than Natoms can be used, but they
will cause extra memory to be allocated on each processor, if an atom
map array is used (see the <A HREF = "atom_modify.html">atom_modify</A> command).
If an atom map array is not used (e.g. an atomic system with no
bonds), and velocities are not assigned in the data file, and you
don't care if unique atom IDs appear in dump files, then the atom-IDs
can all be set to 0.
</P>
<P>The molecule ID is a 2nd identifier attached to an atom. Normally, it
is a number from 1 to N, identifying which molecule the atom belongs
to. It can be 0 if it is an unbonded atom or if you don't care to
keep track of molecule assignments.
</P>
<P>The diameter specifies the size of a finite-size spherical particle.
It can be set to 0.0, which means that atom is a point particle.
</P>
<P>The ellipseflag determines whether the particle is a finite-size
ellipsoid of finite size, or a point particle. Additional attributes
must be defined for each ellipsoid in the <I>Ellipsoids</I> section.
</P>
<P>Some pair styles and fixes and computes that operate on finite-size
particles allow for a mixture of finite-size and point particles. See
the doc pages of individual commands for details.
</P>
<P>The density is used in conjunction with the particle volume for
finite-size particles to set the mass of the particle as mass =
density * volume. If the volume is 0.0, meaning a point particle,
then the density value is used as the mass.
</P>
<P>For atom_style hybrid, following the 5 initial values (ID,type,x,y,z),
specific values for each sub-style must be listed. The order of the
sub-styles is the same as they were listed in the
<A HREF = "atom_style.html">atom_style</A> command. The sub-style specific values
are those that are not the 5 standard ones (ID,type,x,y,z). For
example, for the "charge" sub-style, a "q" value would appear. For
the "full" sub-style, a "molecule-ID" and "q" would appear. These are
listed in the same order they appear as listed above. Thus if
</P>
<PRE>atom_style hybrid charge sphere
</PRE>
<P>were used in the input script, each atom line would have these fields:
</P>
<PRE>atom-ID atom-type x y z q diameter density
</PRE>
<P>Atom lines (all lines or none of them) can optionally list 3 trailing
integer values: nx,ny,nz. For periodic dimensions, they specify which
image of the simulation box the atom is considered to be in. An image
of 0 means it is inside the box as defined. A value of 2 means add 2
box lengths to get the true value. A value of -1 means subtract 1 box
length to get the true value. LAMMPS updates these flags as atoms
cross periodic boundaries during the simulation. The flags can be
output with atom snapshots via the <A HREF = "dump.html">dump</A> command.
</P>
<P>If nx,ny,nz values are not set in the data file, LAMMPS initializes
them to 0. If image information is needed for later analysis and they
are not all initially 0, it's important to set them correctly in the
data file. Also, if you plan to use the <A HREF = "replicate.html">replicate</A>
command to generate a larger system, these flags must be listed
correctly for bonded atoms when the bond crosses a periodic boundary.
I.e. the values of the image flags should be different by 1 (in the
appropriate dimension) for the two atoms in such a bond.
</P>
<P>Atom velocities and other atom quantities not defined above are set to
0.0 when the <I>Atoms</I> section is read. Velocities can be set later by
a <I>Velocities</I> section in the data file or by a
<A HREF = "velocity.html">velocity</A> or <A HREF = "set.html">set</A> command in the input
script.
</P>
<HR>
<P><I>Bond Coeffs</I> section:
</P>
<UL><LI>one line per bond type
<LI>line syntax: ID coeffs
<PRE> ID = bond type (1-N)
coeffs = list of coeffs
</PRE>
<LI>example:
<PRE> 4 250 1.49
</PRE>
</UL>
<P>The number and meaning of the coefficients are specific to the defined
bond style. See the <A HREF = "bond_style.html">bond_style</A> and
<A HREF = "bond_coeff.html">bond_coeff</A> commands for details. Coefficients can
also be set via the <A HREF = "bond_coeff.html">bond_coeff</A> command in the input
script.
</P>
<HR>
<P><I>BondAngle Coeffs</I> section:
</P>
<UL><LI>one line per angle type
<LI>line syntax: ID coeffs
<PRE> ID = angle type (1-N)
coeffs = list of coeffs (see class 2 section of <A HREF = "angle_coeff.html">angle_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>BondBond Coeffs</I> section:
</P>
<UL><LI>one line per angle type
<LI>line syntax: ID coeffs
<PRE> ID = angle type (1-N)
coeffs = list of coeffs (see class 2 section of <A HREF = "angle_coeff.html">angle_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>BondBond13 Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of <A HREF = "dihedral_coeff.html">dihedral_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>Bonds</I> section:
</P>
<UL><LI>one line per bond
<LI>line syntax: ID type atom1 atom2
<PRE> ID = bond number (1-Nbonds)
type = bond type (1-Nbondtype)
atom1,atom2 = IDs of 1st,2nd atoms in bond
</PRE>
<LI>example:
<PRE> 12 3 17 29
</PRE>
</UL>
<P>The <I>Bonds</I> section must appear after the <I>Atoms</I> section. All values
in this section must be integers (1, not 1.0).
</P>
<HR>
<P><I>Dihedral Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs
</PRE>
<LI>example:
<PRE> 3 0.6 1 0 1
</PRE>
</UL>
<P>The number and meaning of the coefficients are specific to the defined
dihedral style. See the <A HREF = "dihedral_style.html">dihedral_style</A> and
<A HREF = "dihedral_coeff.html">dihedral_coeff</A> commands for details.
Coefficients can also be set via the
<A HREF = "dihedral_coeff.html">dihedral_coeff</A> command in the input script.
</P>
<HR>
<P><I>Dihedrals</I> section:
</P>
<UL><LI>one line per dihedral
<LI>line syntax: ID type atom1 atom2 atom3 atom4
<PRE> ID = number of dihedral (1-Ndihedrals)
type = dihedral type (1-Ndihedraltype)
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atoms in dihedral
</PRE>
<LI>example:
<PRE> 12 4 17 29 30 21
</PRE>
</UL>
<P>The 4 atoms are ordered linearly within the dihedral. The <I>Dihedrals</I>
section must appear after the <I>Atoms</I> section. All values in this
section must be integers (1, not 1.0).
</P>
<HR>
<P><I>Ellipsoids</I> section:
</P>
<UL><LI>one line per ellipsoid
<LI>line syntax: atom-ID shapex shapey shapez quatw quati quatj quatk
<PRE> atom-ID = ID of atom which is an ellipsoid
shapex,shapey,shapez = 3 diameters of ellipsoid (distance units)
quatw,quati,quatj,quatk = quaternion components for orientation of atom
type = bond type (1-Nbondtype)
atom1,atom2 = IDs of 1st,2nd atoms in bond
</PRE>
<LI>example:
<PRE> 12 3 17 29
</PRE>
</UL>
<P>The <I>Ellipsoids</I> section must appear if <A HREF = "atom_style.html">atom_style
ellipsoid</A> is used and any atoms are listed in the
<I>Atoms</I> section with an ellipsoidflag = 1. The number of ellipsoids
should be specified in the header section via the "ellipsoids"
keyword.
</P>
<P>The 3 shape values specify the 3 diameters or aspect ratios of a
finite-size ellipsoidal particle, when it is oriented along the 3
coordinate axes. They must all be non-zero values.
</P>
<P>The values <I>quatw</I>, <I>quati</I>, <I>quatj</I>, and <I>quatk</I> set the orientation
of the atom as a quaternion (4-vector). Note that the shape
attributes specify the aspect ratios of an ellipsoidal particle, which
is oriented by default with its x-axis along the simulation box's
x-axis, and similarly for y and z. If this body is rotated (via the
right-hand rule) by an angle theta around a unit vector (a,b,c), then
the quaternion that represents its new orientation is given by
(cos(theta/2), a*sin(theta/2), b*sin(theta/2), c*sin(theta/2)). These
4 components are quatw, quati, quatj, and quatk as specified above.
LAMMPS normalizes each atom's quaternion in case (a,b,c) is not
specified as a unit vector.
</P>
<P>The <I>Ellipsoids</I> section must appear after the <I>Atoms</I> section.
</P>
<HR>
<P><I>EndBondTorsion Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of <A HREF = "dihedral_coeff.html">dihedral_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>Improper Coeffs</I> section:
</P>
<UL><LI>one line per improper type
<LI>line syntax: ID coeffs
<PRE> ID = improper type (1-N)
coeffs = list of coeffs
</PRE>
<LI>example:
<PRE> 2 20 0.0548311
</PRE>
</UL>
<P>The number and meaning of the coefficients are specific to the defined
improper style. See the <A HREF = "improper_style.html">improper_style</A> and
<A HREF = "improper_coeff.html">improper_coeff</A> commands for details.
Coefficients can also be set via the
<A HREF = "improper_coeff.html">improper_coeff</A> command in the input script.
</P>
<HR>
<P><I>Impropers</I> section:
</P>
<UL><LI>one line per improper
<LI>line syntax: ID type atom1 atom2 atom3 atom4
<PRE> ID = number of improper (1-Nimpropers)
type = improper type (1-Nimpropertype)
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atoms in improper
</PRE>
<LI>example:
<PRE> 12 3 17 29 13 100
</PRE>
</UL>
<P>The ordering of the 4 atoms determines the definition of the improper
angle used in the formula for each <A HREF = "improper_style.html">improper
style</A>. See the doc pages for individual styles
for details.
</P>
<P>The <I>Impropers</I> section must appear after the <I>Atoms</I> section. All
values in this section must be integers (1, not 1.0).
</P>
<HR>
<P><I>Masses</I> section:
</P>
<UL><LI>one line per atom type
<LI>line syntax: ID mass
<PRE> ID = atom type (1-N)
mass = mass value
</PRE>
<LI>example:
<PRE> 3 1.01
</PRE>
</UL>
<P>This defines the mass of each atom type. This can also be set via the
<A HREF = "mass.html">mass</A> command in the input script. This section cannot be
used for atom styles that define a mass for individual atoms -
e.g. <A HREF = "atom_style.html">atom_style sphere</A>.
</P>
<HR>
<P><I>MiddleBondTorsion Coeffs</I> section:
</P>
<UL><LI>one line per dihedral type
<LI>line syntax: ID coeffs
<PRE> ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of <A HREF = "dihedral_coeff.html">dihedral_coeff</A>)
</PRE>
</UL>
<HR>
<P><I>Pair Coeffs</I> section:
</P>
<UL><LI>one line per atom type
<LI>line syntax: ID coeffs
<PRE> ID = atom type (1-N)
coeffs = list of coeffs
</PRE>
<LI>example:
<PRE> 3 0.022 2.35197 0.022 2.35197
</PRE>
</UL>
<P>The number and meaning of the coefficients are specific to the defined
pair style. See the <A HREF = "pair_style.html">pair_style</A> and
<A HREF = "pair_coeff.html">pair_coeff</A> commands for details. Coefficients can
also be set via the <A HREF = "pair_coeff.html">pair_coeff</A> command in the input
script.
</P>
<HR>
<P><I>Velocities</I> section:
</P>
<UL><LI>one line per atom
<LI>line syntax: depends on atom style
</UL>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >all styles except those listed</TD><TD > atom-ID vx vy vz</TD></TR>
<TR><TD >dipole</TD><TD > atom-ID vx vy vz wx wy wz</TD></TR>
<TR><TD >electron</TD><TD > atom-ID vx vy vz evel</TD></TR>
<TR><TD >ellipsoid</TD><TD > atom-ID vx vy vz lx ly lz</TD></TR>
<TR><TD >sphere</TD><TD > atom-ID vx vy vz wx wy wz
</TD></TR></TABLE></DIV>
<P>where the keywords have these meanings:
</P>
<P>vx,vy,vz = translational velocity of atom
lx,ly,lz = angular momentum of aspherical atom
wx,wy,wz = angular velocity of spherical atom
evel = electron radial velocity (0 for fixed-core):ul
</P>
<P>The velocity lines can appear in any order. This section can only be
used after an <I>Atoms</I> section. This is because the <I>Atoms</I> section
must have assigned a unique atom ID to each atom so that velocities
can be assigned to them.
</P>
<P>Vx, vy, vz, and evel are in <A HREF = "units.html">units</A> of velocity. Lx, ly,
lz are in units of angular momentum (distance-velocity-mass). Wx, Wy,
Wz are in units of angular velocity (radians/time).
</P>
<P>Translational velocities can also be set by the
<A HREF = "velocity.html">velocity</A> command in the input script.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>To read gzipped data files, you must compile LAMMPS with the
-DLAMMPS_GZIP option - see the <A HREF = "Section_start.html#2_2">Making LAMMPS</A>
section of the documentation.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "read_restart.html">read_restart</A>, <A HREF = "create_atoms.html">create_atoms</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>
diff --git a/doc/read_data.txt b/doc/read_data.txt
index 52af541f9..be693515c 100644
--- a/doc/read_data.txt
+++ b/doc/read_data.txt
@@ -1,645 +1,648 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
read_data command :h3
[Syntax:]
read_data file :pre
file = name of data file to read in :ul
[Examples:]
read_data data.lj
read_data ../run7/data.polymer.gz :pre
[Description:]
Read in a data file containing information LAMMPS needs to run a
simulation. The file can be ASCII text or a gzipped text file
(detected by a .gz suffix). This is one of 3 ways to specify initial
atom coordinates; see the "read_restart"_read_restart.html and
"create_atoms"_create_atoms.html commands for alternative methods.
The structure of the data file is important, though many settings and
sections are optional or can come in any order. See the examples
directory for sample data files for different problems.
A data file has a header and a body. The header appears first. The
first line of the header is always skipped; it typically contains a
description of the file. Then lines are read one at a time. Lines
can have a trailing comment starting with '#' that is ignored. If the
line is blank (only whitespace after comment is deleted), it is
skipped. If the line contains a header keyword, the corresponding
value(s) is read from the line. If it doesn't contain a header
keyword, the line begins the body of the file.
The body of the file contains zero or more sections. The first line
of a section has only a keyword. The next line is skipped. The
remaining lines of the section contain values. The number of lines
depends on the section keyword as described below. Zero or more blank
lines can be used between sections. Sections can appear in any order,
with a few exceptions as noted below.
The formatting of individual lines in the data file (indentation,
spacing between words and numbers) is not important except that header
and section keywords (e.g. atoms, xlo xhi, Masses, Bond Coeffs) must
be capitalized as shown and can't have extra white space between their
words - e.g. two spaces or a tab between "Bond" and "Coeffs" is not
valid.
:line
These are the recognized header keywords. Header lines can come in
any order. The value(s) are read from the beginning of the line.
Thus the keyword {atoms} should be in a line like "1000 atoms"; the
keyword {ylo yhi} should be in a line like "-10.0 10.0 ylo yhi"; the
keyword {xy xz yz} should be in a line like "0.0 5.0 6.0 xy xz yz".
All these settings have a default value of 0, except the lo/hi box
size defaults are -0.5 and 0.5. A line need only appear if the value
is different than the default.
{atoms} = # of atoms in system
{bonds} = # of bonds in system
{angles} = # of angles in system
{dihedrals} = # of dihedrals in system
{impropers} = # of impropers in system
{atom types} = # of atom types in system
{bond types} = # of bond types in system
{angle types} = # of angle types in system
{dihedral types} = # of dihedral types in system
{improper types} = # of improper types in system
{extra bond per atom} = leave space for this many new bonds per atom
{ellipsoids} = # of ellipsoids in system
{xlo xhi} = simulation box boundaries in x dimension
{ylo yhi} = simulation box boundaries in y dimension
{zlo zhi} = simulation box boundaries in z dimension
{xy xz yz} = simulation box tilt factors for triclinic system :ul
The initial simulation box size is determined by the lo/hi settings.
In any dimension, the system may be periodic or non-periodic; see the
"boundary"_boundary.html command.
If the {xy xz yz} line does not appear, LAMMPS will set up an
axis-aligned (orthogonal) simulation box. If the line does appear,
LAMMPS creates a non-orthogonal simulation domain shaped as a
parallelepiped with triclinic symmetry. The parallelepiped has its
"origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting
from the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =
(xz,yz,zhi-zlo). {Xy,xz,yz} can be 0.0 or positive or negative values
and are called "tilt factors" because they are the amount of
displacement applied to faces of an originally orthogonal box to
transform it into the parallelepiped.
The tilt factors (xy,xz,yz) can not skew the box more than half the
distance of the corresponding parallel box length. For example, if
xlo = 2 and xhi = 12, then the x box length is 10 and the xy tilt
factor must be between -5 and 5. Similarly, both xz and yz must be
between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a
limitation, since if the maximum tilt factor is 5 (as in this
example), then configurations with tilt = ..., -15, -5, 5, 15, 25,
... are all geometrically equivalent.
See "this section"_Section_howto.html#4_12 of the doc pages for a
geometric description of triclinic boxes, as defined by LAMMPS, and
how to transform these parameters to and from other commonly used
triclinic representations.
When a triclinic system is used, the simulation domain must be
periodic in any dimensions with a non-zero tilt factor, as defined by
the "boundary"_boundary.html command. I.e. if the xy tilt factor is
non-zero, then both the x and y dimensions must be periodic.
Similarly, x and z must be periodic if xz is non-zero and y and z must
be periodic if yz is non-zero. Also note that if your simulation will
tilt the box, e.g. via the "fix deform"_fix_deform.html command, the
simulation box must be defined as triclinic, even if the tilt factors
are initially 0.0.
For 2d simulations, the {zlo zhi} values should be set to bound the z
coords for atoms that appear in the file; the default of -0.5 0.5 is
valid if all z coords are 0.0. For 2d triclinic simulations, the xz
and yz tilt factors must be 0.0.
If the system is periodic (in a dimension), then atom coordinates can
be outside the bounds (in that dimension); they will be remapped (in a
periodic sense) back inside the box.
IMPORTANT NOTE: If the system is non-periodic (in a dimension), then
all atoms in the data file must have coordinates (in that dimension)
that are "greater than or equal to" the lo value and "less than or
equal to" the hi value. If the non-periodic dimension is of style
"fixed" (see the "boundary"_boundary.html command), then the atom
coords must be strictly "less than" the hi value, due to the way
LAMMPS assign atoms to processors. Note that you should not make the
lo/hi values radically smaller/larger than the extent of the atoms.
For example, if your atoms extend from 0 to 50, you should not specify
the box bounds as -10000 and 10000. This is because LAMMPS uses the
specified box size to layout the 3d grid of processors. A huge
(mostly empty) box will be sub-optimal for performance when using
"fixed" boundary conditions (see the "boundary"_boundary.html
command). When using "shrink-wrap" boundary conditions (see the
"boundary"_boundary.html command), a huge (mostly empty) box may cause
a parallel simulation to lose atoms the first time that LAMMPS
shrink-wraps the box around the atoms.
The "extra bond per atom" setting should be used if new bonds will be
added to the system when a simulation runs, e.g. by using the "fix
bond/create"_fix_bond_create.html command. This will pre-allocate
space in LAMMPS data structures for storing the new bonds.
The "ellipsoids" setting is only used with atom_style
ellipsoid"_atom_style.html and specifies how many of the atoms are
finite-size ellipsoids; the remainder are point particles. See the
discussion of ellipseflag and the {Ellipsoids} section below.
:line
These are the section keywords for the body of the file.
{Atoms, Velocities, Ellipsoids, Masses} = atom-property sections
{Bonds, Angles, Dihedrals, Impropers} = molecular topology sections
{Pair Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, \
Improper Coeffs} = force field sections
{BondBond Coeffs, BondAngle Coeffs, MiddleBondTorsion Coeffs, \
EndBondTorsion Coeffs, AngleTorsion Coeffs, AngleAngleTorsion Coeffs, \
BondBond13 Coeffs, AngleAngle Coeffs} = class 2 force field sections :ul
Each section is listed below in alphabetic order. The format of each
section is described including the number of lines it must contain and
rules (if any) for where it can appear in the data file.
Any individual line in the various sections can have a trailing
comment starting with "#" for annotation purposes. E.g. in the
Atoms section:
10 1 17 -1.0 10.0 5.0 6.0 # salt ion :pre
:line
{Angle Coeffs} section:
one line per angle type :ulb,l
line syntax: ID coeffs :l
ID = angle type (1-N)
coeffs = list of coeffs :pre
example: :l
6 70 108.5 0 0 :pre
:ule
The number and meaning of the coefficients are specific to the defined
angle style. See the "angle_style"_angle_style.html and
"angle_coeff"_angle_coeff.html commands for details. Coefficients can
also be set via the "angle_coeff"_angle_coeff.html command in the
input script.
:line
{AngleAngle Coeffs} section:
one line per improper type :ulb,l
line syntax: ID coeffs :l
ID = improper type (1-N)
coeffs = list of coeffs (see "improper_coeff"_improper_coeff.html) :pre
:ule
:line
{AngleAngleTorsion Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs (see "dihedral_coeff"_dihedral_coeff.html) :pre
:ule
:line
{Angles} section:
one line per angle :ulb,l
line syntax: ID type atom1 atom2 atom3 :l
ID = number of angle (1-Nangles)
type = angle type (1-Nangletype)
atom1,atom2,atom3 = IDs of 1st,2nd,3rd atoms in angle :pre
example: :b
2 2 17 29 430 :pre
:ule
The 3 atoms are ordered linearly within the angle. Thus the central
atom (around which the angle is computed) is the atom2 in the list.
E.g. H,O,H for a water molecule. The {Angles} section must appear
after the {Atoms} section. All values in this section must be
integers (1, not 1.0).
:line
{AngleTorsion Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs (see "dihedral_coeff"_dihedral_coeff.html) :pre
:ule
:line
{Atoms} section:
one line per atom
line syntax: depends on atom style :ul
An {Atoms} section must appear in the data file if natoms > 0 in the
header section. The atoms can be listed in any order. These are the
line formats for each "atom style"_atom_style.html in LAMMPS. As
discussed below, each line can optionally have 3 flags (nx,ny,nz)
appended to it, which indicate which image of a periodic simulation
box the atom is in. These may be important to include for some kinds
of analysis.
angle: atom-ID molecule-ID atom-type x y z
atomic: atom-ID atom-type x y z
bond: atom-ID molecule-ID atom-type x y z
charge: atom-ID atom-type q x y z
dipole: atom-ID atom-type q x y z mux muy muz
electron: atom-ID atom-type q spin eradius x y z
ellipsoid: atom-ID atom-type ellipsoidflag density x y z
full: atom-ID molecule-ID atom-type q x y z
molecular: atom-ID molecule-ID atom-type x y z
peri: atom-ID atom-type volume density x y z
sphere: atom-ID atom-type diameter density x y z
+wavepacket: atom-ID atom-type charge spin eradius etag cs_re cs_im x y z
hybrid: atom-ID atom-type x y z sub-style1 sub-style2 ... :tb(s=:)
The keywords have these meanings:
atom-ID = integer ID of atom
molecule-ID = integer ID of molecule the atom belongs to
atom-type = type of atom (1-Ntype)
q = charge on atom (charge units)
diameter = diameter of spherical atom (distance units)
ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles
density = density of atom (mass/distance^3 units)
volume = volume of atom (distance^3 units)
x,y,z = coordinates of atom
mux,muy,muz = components of dipole moment of atom (dipole units)
spin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)
-eradius = electron radius (or fixed-core radius) :ul
+eradius = electron radius (or fixed-core radius)
+etag = integer ID of electron that each wavepacket belongs to
+cs_re,cs_im = real/imaginary parts of wavepacket coefficients :ul
The units for these quantities depend on the unit style; see the
"units"_units.html command for details.
For 2d simulations specify z as 0.0, or a value within the {zlo zhi}
setting in the data file header.
The atom-ID is used to identify the atom throughout the simulation and
in dump files. Normally, it is a unique value from 1 to Natoms for
each atom. Unique values larger than Natoms can be used, but they
will cause extra memory to be allocated on each processor, if an atom
map array is used (see the "atom_modify"_atom_modify.html command).
If an atom map array is not used (e.g. an atomic system with no
bonds), and velocities are not assigned in the data file, and you
don't care if unique atom IDs appear in dump files, then the atom-IDs
can all be set to 0.
The molecule ID is a 2nd identifier attached to an atom. Normally, it
is a number from 1 to N, identifying which molecule the atom belongs
to. It can be 0 if it is an unbonded atom or if you don't care to
keep track of molecule assignments.
The diameter specifies the size of a finite-size spherical particle.
It can be set to 0.0, which means that atom is a point particle.
The ellipseflag determines whether the particle is a finite-size
ellipsoid of finite size, or a point particle. Additional attributes
must be defined for each ellipsoid in the {Ellipsoids} section.
Some pair styles and fixes and computes that operate on finite-size
particles allow for a mixture of finite-size and point particles. See
the doc pages of individual commands for details.
The density is used in conjunction with the particle volume for
finite-size particles to set the mass of the particle as mass =
density * volume. If the volume is 0.0, meaning a point particle,
then the density value is used as the mass.
For atom_style hybrid, following the 5 initial values (ID,type,x,y,z),
specific values for each sub-style must be listed. The order of the
sub-styles is the same as they were listed in the
"atom_style"_atom_style.html command. The sub-style specific values
are those that are not the 5 standard ones (ID,type,x,y,z). For
example, for the "charge" sub-style, a "q" value would appear. For
the "full" sub-style, a "molecule-ID" and "q" would appear. These are
listed in the same order they appear as listed above. Thus if
atom_style hybrid charge sphere :pre
were used in the input script, each atom line would have these fields:
atom-ID atom-type x y z q diameter density :pre
Atom lines (all lines or none of them) can optionally list 3 trailing
integer values: nx,ny,nz. For periodic dimensions, they specify which
image of the simulation box the atom is considered to be in. An image
of 0 means it is inside the box as defined. A value of 2 means add 2
box lengths to get the true value. A value of -1 means subtract 1 box
length to get the true value. LAMMPS updates these flags as atoms
cross periodic boundaries during the simulation. The flags can be
output with atom snapshots via the "dump"_dump.html command.
If nx,ny,nz values are not set in the data file, LAMMPS initializes
them to 0. If image information is needed for later analysis and they
are not all initially 0, it's important to set them correctly in the
data file. Also, if you plan to use the "replicate"_replicate.html
command to generate a larger system, these flags must be listed
correctly for bonded atoms when the bond crosses a periodic boundary.
I.e. the values of the image flags should be different by 1 (in the
appropriate dimension) for the two atoms in such a bond.
Atom velocities and other atom quantities not defined above are set to
0.0 when the {Atoms} section is read. Velocities can be set later by
a {Velocities} section in the data file or by a
"velocity"_velocity.html or "set"_set.html command in the input
script.
:line
{Bond Coeffs} section:
one line per bond type :ulb,l
line syntax: ID coeffs :l
ID = bond type (1-N)
coeffs = list of coeffs :pre
example: :l
4 250 1.49 :pre
:ule
The number and meaning of the coefficients are specific to the defined
bond style. See the "bond_style"_bond_style.html and
"bond_coeff"_bond_coeff.html commands for details. Coefficients can
also be set via the "bond_coeff"_bond_coeff.html command in the input
script.
:line
{BondAngle Coeffs} section:
one line per angle type :ulb,l
line syntax: ID coeffs :l
ID = angle type (1-N)
coeffs = list of coeffs (see class 2 section of "angle_coeff"_angle_coeff.html) :pre
:ule
:line
{BondBond Coeffs} section:
one line per angle type :ulb,l
line syntax: ID coeffs :l
ID = angle type (1-N)
coeffs = list of coeffs (see class 2 section of "angle_coeff"_angle_coeff.html) :pre
:ule
:line
{BondBond13 Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of "dihedral_coeff"_dihedral_coeff.html) :pre
:ule
:line
{Bonds} section:
one line per bond :ulb,l
line syntax: ID type atom1 atom2 :l
ID = bond number (1-Nbonds)
type = bond type (1-Nbondtype)
atom1,atom2 = IDs of 1st,2nd atoms in bond :pre
example: :l
12 3 17 29 :pre
:ule
The {Bonds} section must appear after the {Atoms} section. All values
in this section must be integers (1, not 1.0).
:line
{Dihedral Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs :pre
example: :l
3 0.6 1 0 1 :pre
:ule
The number and meaning of the coefficients are specific to the defined
dihedral style. See the "dihedral_style"_dihedral_style.html and
"dihedral_coeff"_dihedral_coeff.html commands for details.
Coefficients can also be set via the
"dihedral_coeff"_dihedral_coeff.html command in the input script.
:line
{Dihedrals} section:
one line per dihedral :ulb,l
line syntax: ID type atom1 atom2 atom3 atom4 :l
ID = number of dihedral (1-Ndihedrals)
type = dihedral type (1-Ndihedraltype)
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atoms in dihedral :pre
example: :l
12 4 17 29 30 21 :pre
:ule
The 4 atoms are ordered linearly within the dihedral. The {Dihedrals}
section must appear after the {Atoms} section. All values in this
section must be integers (1, not 1.0).
:line
{Ellipsoids} section:
one line per ellipsoid :ulb,l
line syntax: atom-ID shapex shapey shapez quatw quati quatj quatk :l
atom-ID = ID of atom which is an ellipsoid
shapex,shapey,shapez = 3 diameters of ellipsoid (distance units)
quatw,quati,quatj,quatk = quaternion components for orientation of atom
type = bond type (1-Nbondtype)
atom1,atom2 = IDs of 1st,2nd atoms in bond :pre
example: :l
12 3 17 29 :pre
:ule
The {Ellipsoids} section must appear if "atom_style
ellipsoid"_atom_style.html is used and any atoms are listed in the
{Atoms} section with an ellipsoidflag = 1. The number of ellipsoids
should be specified in the header section via the "ellipsoids"
keyword.
The 3 shape values specify the 3 diameters or aspect ratios of a
finite-size ellipsoidal particle, when it is oriented along the 3
coordinate axes. They must all be non-zero values.
The values {quatw}, {quati}, {quatj}, and {quatk} set the orientation
of the atom as a quaternion (4-vector). Note that the shape
attributes specify the aspect ratios of an ellipsoidal particle, which
is oriented by default with its x-axis along the simulation box's
x-axis, and similarly for y and z. If this body is rotated (via the
right-hand rule) by an angle theta around a unit vector (a,b,c), then
the quaternion that represents its new orientation is given by
(cos(theta/2), a*sin(theta/2), b*sin(theta/2), c*sin(theta/2)). These
4 components are quatw, quati, quatj, and quatk as specified above.
LAMMPS normalizes each atom's quaternion in case (a,b,c) is not
specified as a unit vector.
The {Ellipsoids} section must appear after the {Atoms} section.
:line
{EndBondTorsion Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of "dihedral_coeff"_dihedral_coeff.html) :pre
:ule
:line
{Improper Coeffs} section:
one line per improper type :ulb,l
line syntax: ID coeffs :l
ID = improper type (1-N)
coeffs = list of coeffs :pre
example: :l
2 20 0.0548311 :pre
:ule
The number and meaning of the coefficients are specific to the defined
improper style. See the "improper_style"_improper_style.html and
"improper_coeff"_improper_coeff.html commands for details.
Coefficients can also be set via the
"improper_coeff"_improper_coeff.html command in the input script.
:line
{Impropers} section:
one line per improper :ulb,l
line syntax: ID type atom1 atom2 atom3 atom4 :l
ID = number of improper (1-Nimpropers)
type = improper type (1-Nimpropertype)
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atoms in improper :pre
example: :l
12 3 17 29 13 100 :pre
:ule
The ordering of the 4 atoms determines the definition of the improper
angle used in the formula for each "improper
style"_improper_style.html. See the doc pages for individual styles
for details.
The {Impropers} section must appear after the {Atoms} section. All
values in this section must be integers (1, not 1.0).
:line
{Masses} section:
one line per atom type :ulb,l
line syntax: ID mass :l
ID = atom type (1-N)
mass = mass value :pre
example: :l
3 1.01 :pre
:ule
This defines the mass of each atom type. This can also be set via the
"mass"_mass.html command in the input script. This section cannot be
used for atom styles that define a mass for individual atoms -
e.g. "atom_style sphere"_atom_style.html.
:line
{MiddleBondTorsion Coeffs} section:
one line per dihedral type :ulb,l
line syntax: ID coeffs :l
ID = dihedral type (1-N)
coeffs = list of coeffs (see class 2 section of "dihedral_coeff"_dihedral_coeff.html) :pre
:ule
:line
{Pair Coeffs} section:
one line per atom type :ulb,l
line syntax: ID coeffs :l
ID = atom type (1-N)
coeffs = list of coeffs :pre
example: :l
3 0.022 2.35197 0.022 2.35197 :pre
:ule
The number and meaning of the coefficients are specific to the defined
pair style. See the "pair_style"_pair_style.html and
"pair_coeff"_pair_coeff.html commands for details. Coefficients can
also be set via the "pair_coeff"_pair_coeff.html command in the input
script.
:line
{Velocities} section:
one line per atom
line syntax: depends on atom style :ul
all styles except those listed: atom-ID vx vy vz
dipole: atom-ID vx vy vz wx wy wz
electron: atom-ID vx vy vz evel
ellipsoid: atom-ID vx vy vz lx ly lz
sphere: atom-ID vx vy vz wx wy wz :tb(s=:)
where the keywords have these meanings:
vx,vy,vz = translational velocity of atom
lx,ly,lz = angular momentum of aspherical atom
wx,wy,wz = angular velocity of spherical atom
evel = electron radial velocity (0 for fixed-core):ul
The velocity lines can appear in any order. This section can only be
used after an {Atoms} section. This is because the {Atoms} section
must have assigned a unique atom ID to each atom so that velocities
can be assigned to them.
Vx, vy, vz, and evel are in "units"_units.html of velocity. Lx, ly,
lz are in units of angular momentum (distance-velocity-mass). Wx, Wy,
Wz are in units of angular velocity (radians/time).
Translational velocities can also be set by the
"velocity"_velocity.html command in the input script.
:line
[Restrictions:]
To read gzipped data files, you must compile LAMMPS with the
-DLAMMPS_GZIP option - see the "Making LAMMPS"_Section_start.html#2_2
section of the documentation.
[Related commands:]
"read_restart"_read_restart.html, "create_atoms"_create_atoms.html
[Default:] none
diff --git a/doc/region.html b/doc/region.html
index c3fcb7113..df278065f 100644
--- a/doc/region.html
+++ b/doc/region.html
@@ -1,300 +1,309 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>region command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>region ID style args keyword arg ...
</PRE>
<UL><LI>ID = user-assigned name for the region
<LI>style = <I>delete</I> or <I>block</I> or <I>cone</I> or <I>cylinder</I> or <I>plane</I> or <I>prism</I> or <I>sphere</I> or <I>union</I> or <I>intersect</I>
<PRE> <I>delete</I> = no args
<I>block</I> args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all dimensions (distance units)
<I>cone</I> args = dim c1 c2 radlo radhi lo hi
dim = <I>x</I> or <I>y</I> or <I>z</I> = axis of cone
c1,c2 = coords of cone axis in other 2 dimensions (distance units)
radlo,radhi = cone radii at lo and hi end (distance units)
lo,hi = bounds of cone in dim (distance units)
<I>cylinder</I> args = dim c1 c2 radius lo hi
dim = <I>x</I> or <I>y</I> or <I>z</I> = axis of cylinder
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (distance units)
<I>plane</I> args = px py pz nx ny nz
px,py,pz = point on the plane (distance units)
nx,ny,nz = direction normal to plane (distance units)
<I>prism</I> args = xlo xhi ylo yhi zlo zhi xy xz yz
xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism (distance units)
xy = distance to tilt y in x direction (distance units)
xz = distance to tilt z in x direction (distance units)
yz = distance to tilt z in y direction (distance units)
<I>sphere</I> args = x y z radius
x,y,z = center of sphere (distance units)
radius = radius of sphere (distance units)
<I>union</I> args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
<I>intersect</I> args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to intersect
</PRE>
<LI>zero or more keyword/arg pairs may be appended
<LI>keyword = <I>side</I> or <I>units</I> or <I>move</I> or <I>rotate</I>
<PRE> <I>side</I> value = <I>in</I> or <I>out</I>
<I>in</I> = the region is inside the specified geometry
<I>out</I> = the region is outside the specified geometry
<I>units</I> value = <I>lattice</I> or <I>box</I>
<I>lattice</I> = the geometry is defined in lattice units
<I>box</I> = the geometry is defined in simulation box units
<I>move</I> args = v_x v_y v_z
v_x,v_y,v_z = equal-style variables for x,y,z displacement of region over time
<I>rotate</I> args = v_theta Px Py Pz Rx Ry Rz
v_theta = equal-style variable for rotaton of region over time (in radians)
Px,Py,Pz = origin for axis of rotation (distance units)
Rx,Ry,Rz = axis of rotation vector
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>region 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 EDGE units box
region 1 prism 0 10 0 10 0 10 2 0 0
region outside union 4 side1 side2 side3 side4
region 2 sphere 0.0 0.0 0.0 5 side out move v_left v_up NULL
</PRE>
<P><B>Description:</B>
</P>
<P>This command defines a geometric region of space. Various other
commands use regions. For example, the region can be filled with
atoms via the <A HREF = "create_atoms.html">create_atoms</A> command. Or a bounding
box around the region, can be used to define the simulation box via
the <A HREF = "create_box.html">create_box</A> command. Or the atoms in the region
can be identified as a group via the <A HREF = "group.html">group</A> command, or
deleted via the <A HREF = "delete_atoms.html">delete_atoms</A> command. Or the
surface of the region can be used as a boundary wall via the <A HREF = "fix_wall_region.html">fix
wall/region</A> command.
</P>
+<P>Commands which use regions typically test whether an atom's position
+is contained in the region or not. For this purpose, coordinates
+exactly on the region boundary are considered to be interior to the
+region. This means, for example, for a spherical region, an atom on
+the sphere surface would be part of the region if the sphere were
+defined with the <I>side in</I> keyword, but would not be part of the
+region if it were defined using the <I>side out</I> keyword. See more
+details on the <I>side</I> keyword below.
+</P>
<P>Normally, regions in LAMMPS are "static", meaning their geometric
extent does not change with time. If the <I>move</I> or <I>rotate</I> keyword
is used, as described below, the region becomes "dynamic", meaning
it's location or orientation changes with time. This may be useful,
for example, when thermostatting a region, via the compute temp/region
command, or when the fix wall/region command uses a region surface as
a bounding wall on particle motion, i.e. a rotating container.
</P>
<P>The <I>delete</I> style removes the named region. Since there is little
overhead to defining extra regions, there is normally no need to do
this, unless you are defining and discarding large numbers of regions
in your input script.
</P>
<P>The lo/hi values for <I>block</I> or <I>cone</I> or <I>cylinder</I> or <I>prism</I> styles
can be specified as EDGE or INF. EDGE means they extend all the way
to the global simulation box boundary. Note that this is the current
box boundary; if the box changes size during a simulation, the region
does not. INF means a large negative or positive number (1.0e20), so
it should encompass the simulation box even if it changes size. If a
region is defined before the simulation box has been created (via
<A HREF = "create_box.html">create_box</A> or <A HREF = "read_data.html">read_data</A> or
<A HREF = "read_restart.html">read_restart</A> commands), then an EDGE or INF
parameter cannot be used. For a <I>prism</I> region, a non-zero tilt
factor in any pair of dimensions cannot be used if both the lo/hi
values in either of those dimensions are INF. E.g. if the xy tilt is
non-zero, then xlo and xhi cannot both be INF, nor can ylo and yhi.
</P>
<P>IMPORTANT NOTE: Regions in LAMMPS do not get wrapped across periodic
boundaries, as specified by the <A HREF = "boundary.html">boundary</A> command. For
example, a spherical region that is defined so that it overlaps a
periodic boundary is not treated as 2 half-spheres, one on either side
of the simulation box.
</P>
<P>IMPORTANT NOTE: Regions in LAMMPS are always 3d geometric objects,
regardless of whether the <A HREF = "dimension.html">dimension</A> of a simulation
is 2d or 3d. Thus when using regions in a 2d simulation, you should
be careful to define the region so that its intersection with the 2d
x-y plane of the simulation has the 2d geometric extent you want.
</P>
<P>For style <I>cone</I>, an axis-aligned cone is defined which is like a
<I>cylinder</I> except that two different radii (one at each end) can be
defined. Either of the radii (but not both) can be 0.0.
</P>
<P>For style <I>cone</I> and <I>cylinder</I>, the c1,c2 params are coordinates in
the 2 other dimensions besides the cylinder axis dimension. For dim =
x, c1/c2 = y/z; for dim = y, c1/c2 = x/z; for dim = z, c1/c2 = x/y.
Thus the third example above specifies a cylinder with its axis in the
y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and
extending in the y-direction from -5.0 to the upper box boundary.
</P>
<P>For style <I>plane</I>, a plane is defined which contain the point
(px,py,pz) and has a normal vector (nx,ny,nz). The normal vector does
not have to be of unit length. The "inside" of the plane is the
half-space in the direction of the normal vector; see the discussion
of the <I>side</I> option below.
</P>
<P>For style <I>prism</I>, a parallelepiped is defined (it's too hard to spell
parallelepiped in an input script!). The parallelepiped has its
"origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting
from the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =
(xz,yz,zhi-zlo). <I>Xy,xz,yz</I> can be 0.0 or positive or negative values
and are called "tilt factors" because they are the amount of
displacement applied to faces of an originally orthogonal box to
transform it into the parallelepiped.
</P>
<P>A prism region that will be used with the <A HREF = "create_box.html">create_box</A>
command to define a triclinic simulation box must have tilt factors
(xy,xz,yz) that do not skew the box more than half the distance of
corresponding the parallel box length. For example, if xlo = 2 and
xhi = 12, then the x box length is 10 and the xy tilt factor must be
between -5 and 5. Similarly, both xz and yz must be between
-(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a limitation,
since if the maximum tilt factor is 5 (as in this example), then
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
geometrically equivalent.
</P>
<P>See <A HREF = "Section_howto.html#4_12">this section</A> of the doc pages for a
geometric description of triclinic boxes, as defined by LAMMPS, and
how to transform these parameters to and from other commonly used
triclinic representations.
</P>
<P>The <I>union</I> style creates a region consisting of the volume of all the
listed regions combined. The <I>intersect</I> style creates a region
consisting of the volume that is common to all the listed regions.
</P>
<HR>
<P>The <I>side</I> keyword determines whether the region is considered to be
inside or outside of the specified geometry. Using this keyword in
conjunction with <I>union</I> and <I>intersect</I> regions, complex geometries
can be built up. For example, if the interior of two spheres were
each defined as regions, and a <I>union</I> style with <I>side</I> = out was
constructed listing the region-IDs of the 2 spheres, the resulting
region would be all the volume in the simulation box that was outside
both of the spheres.
</P>
<P>The <I>units</I> keyword determines the meaning of the distance units used
to define the region for any argument above listed as having distance
units. It also affects the scaling of the velocity vector specfied
with the <I>vel</I> keyword, the amplitude vector specified with the
<I>wiggle</I> keyword, and the rotation point specified with the <I>rotate</I>
keyword, since they each involve a distance metric.
</P>
<P>A <I>box</I> value selects standard distance units as defined by the
<A HREF = "units.html">units</A> command, e.g. Angstroms for units = real or metal.
A <I>lattice</I> value means the distance units are in lattice spacings.
The <A HREF = "lattice.html">lattice</A> command must have been previously used to
define the lattice spacings which are used as follows:
</P>
<UL><LI>For style <I>block</I>, the lattice spacing in dimension x is applied to
xlo and xhi, similarly the spacings in dimensions y,z are applied to
ylo/yhi and zlo/zhi.
<LI>For style <I>cone</I>, the lattice spacing in argument <I>dim</I> is applied to
lo and hi. The spacings in the two radial dimensions are applied to
c1 and c2. The two cone radii are scaled by the lattice
spacing in the dimension corresponding to c1.
<LI>For style <I>cylinder</I>, the lattice spacing in argument <I>dim</I> is applied
to lo and hi. The spacings in the two radial dimensions are applied
to c1 and c2. The cylinder radius is scaled by the lattice
spacing in the dimension corresponding to c1.
<LI>For style <I>plane</I>, the lattice spacing in dimension x is applied to
px and nx, similarly the spacings in dimensions y,z are applied to
py/ny and pz/nz.
<LI>For style <I>prism</I>, the lattice spacing in dimension x is applied to
xlo and xhi, similarly for ylo/yhi and zlo/zhi. The lattice spacing
in dimension x is applied to xy and xz, and the spacing in dimension y
to yz.
<LI>For style <I>sphere</I>, the lattice spacing in dimensions x,y,z are
applied to the sphere center x,y,z. The spacing in dimension x is
applied to the sphere radius.
</UL>
<HR>
<P>If the <I>move</I> or <I>rotate</I> keywords are used, the region is "dynamic",
meaning its location or orientation changes with time. These keywords
cannot be used with a <I>union</I> or <I>intersect</I> style region. Instead,
the keywords should be used to make the individual sub-regions of the
<I>union</I> or <I>intersect</I> region dynamic. Normally, each sub-region
should be "dynamic" in the same manner (e.g. rotate around the same
point), though this is not a requirement.
</P>
<P>The <I>move</I> keyword allows one or more <A HREF = "variable.html">equal-style
variables</A> to be used to specify the x,y,z displacement
of the region, typically as a function of time. A variable is
specified as v_name, where name is the variable name. Any of the
three variables can be specified as NULL, in which case no
displacement is calculated in that dimension.
</P>
<P>Note that equal-style variables can specify formulas with various
mathematical functions, and include <A HREF = "thermo_style.html">thermo_style</A>
command keywords for the simulation box parameters and timestep and
elapsed time. Thus it is easy to specify a region displacement that
change as a function of time or spans consecutive runs in a continuous
fashion. For the latter, see the <I>start</I> and <I>stop</I> keywords of the
<A HREF = "run.html">run</A> command and the <I>elaplong</I> keyword of <A HREF = "thermo_style.html">thermo_style
custom</A> for details.
</P>
<P>For example, these commands would displace a region from its initial
position, in the positive x direction, effectively at a constant
velocity:
</P>
<PRE>variable dx equal ramp(0,10)
region 2 sphere 10.0 10.0 0.0 5 move v_dx NULL NULL
</PRE>
<P>Note that the initial displacemet is 0.0, though that is not required.
</P>
<P>Either of these varaibles would "wiggle" the region back and forth in
the y direction:
</P>
<PRE>variable dy equal swiggle(0,5,100)
variable dysame equal 5*sin(2*PI*elaplong*dt/100)
region 2 sphere 10.0 10.0 0.0 5 move NULL v_dy NULL
</PRE>
<P>The <I>rotate</I> keyword rotates the region around a rotation axis <I>R</I> =
(Rx,Ry,Rz) that goes thru a point <I>P</I> = (Px,Py,Pz). The rotation
angle is calculated, presumably as a function of time, by a variable
specified as v_theta, where theta is the variable name. The variable
should generate its result in radians. The direction of rotation for
the region around the rotation axis is consistent with the right-hand
rule: if your right-hand thumb points along <I>R</I>, then your fingers
wrap around the axis in the direction of rotation.
</P>
<P>The <I>move</I> and <I>rotate</I> keywords can be used together. In this case,
the displacement specified by the <I>move</I> keyword is applied to the <I>P</I>
point of the <I>rotate</I> keyword.
</P>
<P><B>Restrictions:</B>
</P>
<P>A prism cannot be of 0.0 thickness in any dimension; use a small z
thickness for 2d simulations. For 2d simulations, the xz and yz
parameters must be 0.0.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "lattice.html">lattice</A>, <A HREF = "create_atoms.html">create_atoms</A>,
<A HREF = "delete_atoms.html">delete_atoms</A>, <A HREF = "group.html">group</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are side = in, units = lattice, and no move or
rotation.
</P>
</HTML>
diff --git a/doc/region.txt b/doc/region.txt
index e8c411dcb..0f72de9d5 100644
--- a/doc/region.txt
+++ b/doc/region.txt
@@ -1,289 +1,298 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
region command :h3
[Syntax:]
region ID style args keyword arg ... :pre
ID = user-assigned name for the region :ulb,l
style = {delete} or {block} or {cone} or {cylinder} or {plane} or {prism} or {sphere} or {union} or {intersect} :l
{delete} = no args
{block} args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all dimensions (distance units)
{cone} args = dim c1 c2 radlo radhi lo hi
dim = {x} or {y} or {z} = axis of cone
c1,c2 = coords of cone axis in other 2 dimensions (distance units)
radlo,radhi = cone radii at lo and hi end (distance units)
lo,hi = bounds of cone in dim (distance units)
{cylinder} args = dim c1 c2 radius lo hi
dim = {x} or {y} or {z} = axis of cylinder
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (distance units)
{plane} args = px py pz nx ny nz
px,py,pz = point on the plane (distance units)
nx,ny,nz = direction normal to plane (distance units)
{prism} args = xlo xhi ylo yhi zlo zhi xy xz yz
xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism (distance units)
xy = distance to tilt y in x direction (distance units)
xz = distance to tilt z in x direction (distance units)
yz = distance to tilt z in y direction (distance units)
{sphere} args = x y z radius
x,y,z = center of sphere (distance units)
radius = radius of sphere (distance units)
{union} args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
{intersect} args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to intersect :pre
zero or more keyword/arg pairs may be appended :l
keyword = {side} or {units} or {move} or {rotate} :l
{side} value = {in} or {out}
{in} = the region is inside the specified geometry
{out} = the region is outside the specified geometry
{units} value = {lattice} or {box}
{lattice} = the geometry is defined in lattice units
{box} = the geometry is defined in simulation box units
{move} args = v_x v_y v_z
v_x,v_y,v_z = equal-style variables for x,y,z displacement of region over time
{rotate} args = v_theta Px Py Pz Rx Ry Rz
v_theta = equal-style variable for rotaton of region over time (in radians)
Px,Py,Pz = origin for axis of rotation (distance units)
Rx,Ry,Rz = axis of rotation vector :pre
:ule
[Examples:]
region 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 EDGE units box
region 1 prism 0 10 0 10 0 10 2 0 0
region outside union 4 side1 side2 side3 side4
region 2 sphere 0.0 0.0 0.0 5 side out move v_left v_up NULL :pre
[Description:]
This command defines a geometric region of space. Various other
commands use regions. For example, the region can be filled with
atoms via the "create_atoms"_create_atoms.html command. Or a bounding
box around the region, can be used to define the simulation box via
the "create_box"_create_box.html command. Or the atoms in the region
can be identified as a group via the "group"_group.html command, or
deleted via the "delete_atoms"_delete_atoms.html command. Or the
surface of the region can be used as a boundary wall via the "fix
wall/region"_fix_wall_region.html command.
+Commands which use regions typically test whether an atom's position
+is contained in the region or not. For this purpose, coordinates
+exactly on the region boundary are considered to be interior to the
+region. This means, for example, for a spherical region, an atom on
+the sphere surface would be part of the region if the sphere were
+defined with the {side in} keyword, but would not be part of the
+region if it were defined using the {side out} keyword. See more
+details on the {side} keyword below.
+
Normally, regions in LAMMPS are "static", meaning their geometric
extent does not change with time. If the {move} or {rotate} keyword
is used, as described below, the region becomes "dynamic", meaning
it's location or orientation changes with time. This may be useful,
for example, when thermostatting a region, via the compute temp/region
command, or when the fix wall/region command uses a region surface as
a bounding wall on particle motion, i.e. a rotating container.
The {delete} style removes the named region. Since there is little
overhead to defining extra regions, there is normally no need to do
this, unless you are defining and discarding large numbers of regions
in your input script.
The lo/hi values for {block} or {cone} or {cylinder} or {prism} styles
can be specified as EDGE or INF. EDGE means they extend all the way
to the global simulation box boundary. Note that this is the current
box boundary; if the box changes size during a simulation, the region
does not. INF means a large negative or positive number (1.0e20), so
it should encompass the simulation box even if it changes size. If a
region is defined before the simulation box has been created (via
"create_box"_create_box.html or "read_data"_read_data.html or
"read_restart"_read_restart.html commands), then an EDGE or INF
parameter cannot be used. For a {prism} region, a non-zero tilt
factor in any pair of dimensions cannot be used if both the lo/hi
values in either of those dimensions are INF. E.g. if the xy tilt is
non-zero, then xlo and xhi cannot both be INF, nor can ylo and yhi.
IMPORTANT NOTE: Regions in LAMMPS do not get wrapped across periodic
boundaries, as specified by the "boundary"_boundary.html command. For
example, a spherical region that is defined so that it overlaps a
periodic boundary is not treated as 2 half-spheres, one on either side
of the simulation box.
IMPORTANT NOTE: Regions in LAMMPS are always 3d geometric objects,
regardless of whether the "dimension"_dimension.html of a simulation
is 2d or 3d. Thus when using regions in a 2d simulation, you should
be careful to define the region so that its intersection with the 2d
x-y plane of the simulation has the 2d geometric extent you want.
For style {cone}, an axis-aligned cone is defined which is like a
{cylinder} except that two different radii (one at each end) can be
defined. Either of the radii (but not both) can be 0.0.
For style {cone} and {cylinder}, the c1,c2 params are coordinates in
the 2 other dimensions besides the cylinder axis dimension. For dim =
x, c1/c2 = y/z; for dim = y, c1/c2 = x/z; for dim = z, c1/c2 = x/y.
Thus the third example above specifies a cylinder with its axis in the
y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and
extending in the y-direction from -5.0 to the upper box boundary.
For style {plane}, a plane is defined which contain the point
(px,py,pz) and has a normal vector (nx,ny,nz). The normal vector does
not have to be of unit length. The "inside" of the plane is the
half-space in the direction of the normal vector; see the discussion
of the {side} option below.
For style {prism}, a parallelepiped is defined (it's too hard to spell
parallelepiped in an input script!). The parallelepiped has its
"origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting
from the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =
(xz,yz,zhi-zlo). {Xy,xz,yz} can be 0.0 or positive or negative values
and are called "tilt factors" because they are the amount of
displacement applied to faces of an originally orthogonal box to
transform it into the parallelepiped.
A prism region that will be used with the "create_box"_create_box.html
command to define a triclinic simulation box must have tilt factors
(xy,xz,yz) that do not skew the box more than half the distance of
corresponding the parallel box length. For example, if xlo = 2 and
xhi = 12, then the x box length is 10 and the xy tilt factor must be
between -5 and 5. Similarly, both xz and yz must be between
-(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a limitation,
since if the maximum tilt factor is 5 (as in this example), then
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
geometrically equivalent.
See "this section"_Section_howto.html#4_12 of the doc pages for a
geometric description of triclinic boxes, as defined by LAMMPS, and
how to transform these parameters to and from other commonly used
triclinic representations.
The {union} style creates a region consisting of the volume of all the
listed regions combined. The {intersect} style creates a region
consisting of the volume that is common to all the listed regions.
:line
The {side} keyword determines whether the region is considered to be
inside or outside of the specified geometry. Using this keyword in
conjunction with {union} and {intersect} regions, complex geometries
can be built up. For example, if the interior of two spheres were
each defined as regions, and a {union} style with {side} = out was
constructed listing the region-IDs of the 2 spheres, the resulting
region would be all the volume in the simulation box that was outside
both of the spheres.
The {units} keyword determines the meaning of the distance units used
to define the region for any argument above listed as having distance
units. It also affects the scaling of the velocity vector specfied
with the {vel} keyword, the amplitude vector specified with the
{wiggle} keyword, and the rotation point specified with the {rotate}
keyword, since they each involve a distance metric.
A {box} value selects standard distance units as defined by the
"units"_units.html command, e.g. Angstroms for units = real or metal.
A {lattice} value means the distance units are in lattice spacings.
The "lattice"_lattice.html command must have been previously used to
define the lattice spacings which are used as follows:
For style {block}, the lattice spacing in dimension x is applied to
xlo and xhi, similarly the spacings in dimensions y,z are applied to
ylo/yhi and zlo/zhi. :ulb,l
For style {cone}, the lattice spacing in argument {dim} is applied to
lo and hi. The spacings in the two radial dimensions are applied to
c1 and c2. The two cone radii are scaled by the lattice
spacing in the dimension corresponding to c1. :l
For style {cylinder}, the lattice spacing in argument {dim} is applied
to lo and hi. The spacings in the two radial dimensions are applied
to c1 and c2. The cylinder radius is scaled by the lattice
spacing in the dimension corresponding to c1. :l
For style {plane}, the lattice spacing in dimension x is applied to
px and nx, similarly the spacings in dimensions y,z are applied to
py/ny and pz/nz. :l
For style {prism}, the lattice spacing in dimension x is applied to
xlo and xhi, similarly for ylo/yhi and zlo/zhi. The lattice spacing
in dimension x is applied to xy and xz, and the spacing in dimension y
to yz. :l
For style {sphere}, the lattice spacing in dimensions x,y,z are
applied to the sphere center x,y,z. The spacing in dimension x is
applied to the sphere radius. :l,ule
:line
If the {move} or {rotate} keywords are used, the region is "dynamic",
meaning its location or orientation changes with time. These keywords
cannot be used with a {union} or {intersect} style region. Instead,
the keywords should be used to make the individual sub-regions of the
{union} or {intersect} region dynamic. Normally, each sub-region
should be "dynamic" in the same manner (e.g. rotate around the same
point), though this is not a requirement.
The {move} keyword allows one or more "equal-style
variables"_variable.html to be used to specify the x,y,z displacement
of the region, typically as a function of time. A variable is
specified as v_name, where name is the variable name. Any of the
three variables can be specified as NULL, in which case no
displacement is calculated in that dimension.
Note that equal-style variables can specify formulas with various
mathematical functions, and include "thermo_style"_thermo_style.html
command keywords for the simulation box parameters and timestep and
elapsed time. Thus it is easy to specify a region displacement that
change as a function of time or spans consecutive runs in a continuous
fashion. For the latter, see the {start} and {stop} keywords of the
"run"_run.html command and the {elaplong} keyword of "thermo_style
custom"_thermo_style.html for details.
For example, these commands would displace a region from its initial
position, in the positive x direction, effectively at a constant
velocity:
variable dx equal ramp(0,10)
region 2 sphere 10.0 10.0 0.0 5 move v_dx NULL NULL :pre
Note that the initial displacemet is 0.0, though that is not required.
Either of these varaibles would "wiggle" the region back and forth in
the y direction:
variable dy equal swiggle(0,5,100)
variable dysame equal 5*sin(2*PI*elaplong*dt/100)
region 2 sphere 10.0 10.0 0.0 5 move NULL v_dy NULL :pre
The {rotate} keyword rotates the region around a rotation axis {R} =
(Rx,Ry,Rz) that goes thru a point {P} = (Px,Py,Pz). The rotation
angle is calculated, presumably as a function of time, by a variable
specified as v_theta, where theta is the variable name. The variable
should generate its result in radians. The direction of rotation for
the region around the rotation axis is consistent with the right-hand
rule: if your right-hand thumb points along {R}, then your fingers
wrap around the axis in the direction of rotation.
The {move} and {rotate} keywords can be used together. In this case,
the displacement specified by the {move} keyword is applied to the {P}
point of the {rotate} keyword.
[Restrictions:]
A prism cannot be of 0.0 thickness in any dimension; use a small z
thickness for 2d simulations. For 2d simulations, the xz and yz
parameters must be 0.0.
[Related commands:]
"lattice"_lattice.html, "create_atoms"_create_atoms.html,
"delete_atoms"_delete_atoms.html, "group"_group.html
[Default:]
The option defaults are side = in, units = lattice, and no move or
rotation.
diff --git a/doc/thermo_style.html b/doc/thermo_style.html
index 53fc4dabb..11d4e7a8b 100644
--- a/doc/thermo_style.html
+++ b/doc/thermo_style.html
@@ -1,313 +1,324 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>thermo_style command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>thermo_style style args
</PRE>
<UL><LI>style = <I>one</I> or <I>multi</I> or <I>custom</I>
<LI>args = list of arguments for a particular style
<PRE> <I>one</I> args = none
<I>multi</I> args = none
<I>custom</I> args = list of attributes
possible attributes = step, elapsed, elaplong, dt, cpu, tpcpu, spcpu,
atoms, temp, press, pe, ke, etotal, enthalpy,
evdwl, ecoul, epair, ebond, eangle, edihed, eimp,
emol, elong, etail,
vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi,
xy, xz, yz, xlat, ylat, zlat,
pxx, pyy, pzz, pxy, pxz, pyz,
fmax, fnorm,
+ cella, cellb, cellc, cellalpha, cellbeta, cellgamma,
c_ID, c_ID[I], c_ID[I][J],
f_ID, f_ID[I], f_ID[I][J],
v_name
step = timestep
elapsed = timesteps since start of this run
elaplong = timesteps since start of initial run in a series of runs
dt = timestep size
cpu = elapsed CPU time in seconds
tpcpu = time per CPU second
spcpu = timesteps per CPU second
atoms = # of atoms
temp = temperature
press = pressure
pe = total potential energy
ke = kinetic energy
etotal = total energy (pe + ke)
enthalpy = enthalpy (etotal + press*vol)
evdwl = VanderWaal pairwise energy
ecoul = Coulombic pairwise energy
epair = pairwise energy (evdwl + ecoul + elong + etail)
ebond = bond energy
eangle = angle energy
edihed = dihedral energy
eimp = improper energy
emol = molecular energy (ebond + eangle + edihed + eimp)
elong = long-range kspace energy
etail = VanderWaal energy long-range tail correction
vol = volume
lx,ly,lz = box lengths in x,y,z
xlo,xhi,ylo,yhi,zlo,zhi = box boundaries
xy,xz,yz = box tilt for triclinic (non-orthogonal) simulation boxes
xlat,ylat,zlat = lattice spacings as calculated by <A HREF = "lattice.html">lattice</A> command
pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor
fmax = max component of force on any atom in any dimension
fnorm = length of force vector for all atoms
+ cella,cellb,cellc = periodic cell lattice constants a,b,c
+ cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma
c_ID = global scalar value calculated by a compute with ID
c_ID[I] = Ith component of global vector calculated by a compute with ID
c_ID[I][J] = I,J component of global array calculated by a compute with ID
f_ID = global scalar value calculated by a fix with ID
f_ID[I] = Ith component of global vector calculated by a fix with ID
f_ID[I][J] = I,J component of global array calculated by a fix with ID
v_name = scalar value calculated by an equal-style variable with name
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>thermo_style multi
thermo_style custom step temp pe etotal press vol
thermo_style custom step temp etotal c_myTemp v_abc
</PRE>
<P><B>Description:</B>
</P>
<P>Set the style and content for printing thermodynamic data to the
screen and log file.
</P>
<P>Style <I>one</I> prints a one-line summary of thermodynamic info that is
the equivalent of "thermo_style custom step temp epair emol etotal
press". The line contains only numeric values.
</P>
<P>Style <I>multi</I> prints a multiple-line listing of thermodynamic info
that is the equivalent of "thermo_style custom etotal ke temp pe ebond
eangle edihed eimp evdwl ecoul elong press". The listing contains
numeric values and a string ID for each quantity.
</P>
<P>Style <I>custom</I> is the most general setting and allows you to specify
which of the keywords listed above you want printed on each
thermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are
references to <A HREF = "compute.html">computes</A>, <A HREF = "fix.html">fixes</A>, and
equal-style <A HREF = "variable.html"">variables</A> that have been defined
elsewhere in the input script or can even be new styles which users
have added to LAMMPS (see the <A HREF = "Section_modify.html">Section_modify</A>
section of the documentation). Thus the <I>custom</I> style provides a
flexible means of outputting essentially any desired quantity as a
simulation proceeds.
</P>
<P>All styles except <I>custom</I> have <I>vol</I> appended to their list of
outputs if the simulation box volume changes during the simulation.
</P>
<P>The values printed by the various keywords are instantaneous values,
calculated on the current timestep. Time-averaged quantities, which
include values from previous timesteps, can be output by using the
f_ID keyword and accessing a fix that does time-averaging such as the
<A HREF = "fix_ave_time.html">fix ave/time</A> command.
</P>
<P>Options invoked by the <A HREF = "thermo_modify.html">thermo_modify</A> command can
be used to set the one- or multi-line format of the print-out, the
normalization of thermodynamic output (total values versus per-atom
values for extensive quantities (ones which scale with the number of
atoms in the system), and the numeric precision of each printed value.
</P>
<P>IMPORTANT NOTE: When you use a "thermo_style" command, all
thermodynamic settings are restored to their default values, including
those previously set by a <A HREF = "thermo_modify.html">thermo_modify</A> command.
Thus if your input script specifies a thermo_style command, you should
use the thermo_modify command after it.
</P>
<HR>
<P>Several of the thermodynamic quantities require a temperature to be
computed: "temp", "press", "ke", "etotal", "enthalpy", "pxx", etc. By
default this is done by using a <I>temperature</I> compute which is created
when LAMMPS starts up, as if this command had been issued:
</P>
<PRE>compute thermo_temp all temp
</PRE>
<P>See the <A HREF = "compute_temp.html">compute temp</A> command for details. Note
that the ID of this compute is <I>thermo_temp</I> and the group is <I>all</I>.
You can change the attributes of this temperature (e.g. its
degrees-of-freedom) via the <A HREF = "compute_modify.html">compute_modify</A>
command. Alternatively, you can directly assign a new compute (that
calculates temperature) which you have defined, to be used for
calculating any thermodynamic quantity that requires a temperature.
This is done via the <A HREF = "thermo_modify.html">thermo_modify</A> command.
</P>
<P>Several of the thermodynamic quantities require a pressure to be
computed: "press", "enthalpy", "pxx", etc. By default this is done by
using a <I>pressure</I> compute which is created when LAMMPS starts up, as
if this command had been issued:
</P>
<PRE>compute thermo_press all pressure thermo_temp
</PRE>
<P>See the <A HREF = "compute_pressure.html">compute pressure</A> command for details.
Note that the ID of this compute is <I>thermo_press</I> and the group is
<I>all</I>. You can change the attributes of this pressure via the
<A HREF = "compute_modify.html">compute_modify</A> command. Alternatively, you can
directly assign a new compute (that calculates pressure) which you
have defined, to be used for calculating any thermodynamic quantity
that requires a pressure. This is done via the
<A HREF = "thermo_modify.html">thermo_modify</A> command.
</P>
<P>Several of the thermodynamic quantities require a potential energy to
be computed: "pe", "etotal", "ebond", etc. This is done by using a
<I>pe</I> compute which is created when LAMMPS starts up, as if this
command had been issued:
</P>
<PRE>compute thermo_pe all pe
</PRE>
<P>See the <A HREF = "compute_pe.html">compute pe</A> command for details. Note that
the ID of this compute is <I>thermo_pe</I> and the group is <I>all</I>. You can
change the attributes of this potential energy via the
<A HREF = "compute_modify.html">compute_modify</A> command.
</P>
<HR>
<P>The kinetic energy of the system <I>ke</I> is inferred from the temperature
of the system with 1/2 Kb T of energy for each degree of freedom.
Thus, using different <A HREF = "compute.html">compute commands</A> for calculating
temperature, via the <A HREF = "thermo_modify.html">thermo_modify temp</A> command,
may yield different kinetic energies, since different computes that
calculate temperature can subtract out different non-thermal
components of velocity and/or include different degrees of freedom
(translational, rotational, etc).
</P>
<P>The potential energy of the system <I>pe</I> will include contributions
from fixes if the <A HREF = "fix_modify.html">fix_modify thermo</A> option is set
for a fix that calculates such a contribution. For example, the <A HREF = "fix_wall.html">fix
wall/lj93</A> fix calculates the energy of atoms
interacting with the wall. See the doc pages for "individual fixes"
to see which ones contribute.
</P>
<P>A long-range tail correction <I>etail</I> for the VanderWaal pairwise
energy will be non-zero only if the <A HREF = "pair_modify.html">pair_modify
tail</A> option is turned on. The <I>etail</I> contribution
is included in <I>evdwl</I>, <I>pe</I>, and <I>etotal</I>, and the corresponding tail
correction to the pressure is included in <I>press</I> and <I>pxx</I>, <I>pyy</I>,
etc.
</P>
<HR>
<P>The <I>step</I>, <I>elapsed</I>, and <I>elaplong</I> keywords refer to timestep
count. <I>Step</I> is the current timestep, or iteration count when a
<A HREF = "minimize.html">minimization</A> is being performed. <I>Elapsed</I> is the
number of timesteps elapsed since the beginning of this run.
<I>Elaplong</I> is the number of timesteps elapsed since the beginning of
an initial run in a series of runs. See the <I>start</I> and <I>stop</I>
keywords for the <A HREF = "run.html">run</A> for info on how to invoke a series of
runs that keep track of an initial starting time. If these keywords
are not used, then <I>elapsed</I> and <I>elaplong</I> are the same value.
</P>
<P>The <I>cpu</I> keyword is elapsed CPU seconds since the beginning of this
run. The <I>tpcpu</I> and <I>spcpu</I> keywords are measures of how fast your
simulation is currently running. The <I>tpcpu</I> keyword is simulation
time per CPU second, where simulation time is in time
<A HREF = "units.html">units</A>. E.g. for metal units, the <I>tpcpu</I> value would be
picoseconds per CPU second. The <I>spcpu</I> keyword is the number of
timesteps per CPU second. Both quantities are on-the-fly metrics,
measured relative to the last time they were invoked. Thus if you are
printing out thermodyamic output every 100 timesteps, the two keywords
will continually output the time and timestep rate for the last 100
steps. The <I>tpcpu</I> keyword does not attempt to track any changes in
timestep size, e.g. due to using the <A HREF = "fix_dt_reset.html">fix dt/reset</A>
command.
</P>
<P>The <I>fmax</I> and <I>fnorm</I> keywords are useful for monitoring the progress
of an <A HREF = "minimize.html">energy minimization</A>. The <I>fmax</I> keyword
calculates the maximum force in any dimension on any atom in the
system, or the infinity-norm of the force vector for the system. The
<I>fnorm</I> keyword calculates the 2-norm or length of the force vector.
</P>
+<P>The keywords <I>cella</I>, <I>cellb</I>, <I>cellc</I>, <I>cellalpha</I>, <I>cellbeta</I>, <I>cellgamma</I>,
+correspond to the usual crystallographic quantities that define
+the periodic unit cell of a crystal.
+See <A HREF = "Section_howto.html#4_12">this section</A> of the doc pages for a
+geometric description of triclinic periodic cells, including
+a precise defintion of these quantities in terms of the internal
+LAMMPS cell dimensions <I>lx</I>, <I>ly</I>, <I>lz</I>, <I>yz</I>, <I>xz</I>, <I>xy</I>,
+</P>
<HR>
<P>The <I>c_ID</I> and <I>c_ID[I]</I> and <I>c_ID[I][J]</I> keywords allow global
values calculated by a compute to be output. As discussed on the
<A HREF = "compute.html">compute</A> doc page, computes can calculate global,
per-atom, or local values. Only global values can be referenced by
this command. However, per-atom compute values can be referenced in a
<A HREF = "variable.html">variable</A> and the variable referenced by thermo_style
custom, as discussed below.
</P>
<P>The ID in the keyword should be replaced by the actual ID of a compute
that has been defined elsewhere in the input script. See the
<A HREF = "compute.html">compute</A> command for details. If the compute calculates
a global scalar, vector, or array, then the keyword formats with 0, 1,
or 2 brackets will reference a scalar value from the compute.
</P>
<P>Note that some computes calculate "intensive" global quantities like
temperature; others calculate "extensive" global quantities like
kinetic energy that are summed over all atoms in the compute group.
Intensive quantities are printed directly without normalization by
thermo_style custom. Extensive quantities may be normalized by the
total number of atoms in the simulation (NOT the number of atoms in
the compute group) when output, depending on the <A HREF = "thermo_modify.html">thermo_modify
norm</A> option being used.
</P>
<P>The <I>f_ID</I> and <I>f_ID[I]</I> and <I>f_ID[I][J]</I> keywords allow global
values calculated by a fix to be output. As discussed on the
<A HREF = "fix.html">fix</A> doc page, fixes can calculate global, per-atom, or
local values. Only global values can be referenced by this command.
However, per-atom fix values can be referenced in a
<A HREF = "variable.html">variable</A> and the variable referenced by thermo_style
custom, as discussed below.
</P>
<P>The ID in the keyword should be replaced by the actual ID of a fix
that has been defined elsewhere in the input script. See the
<A HREF = "fix.html">fix</A> command for details. If the fix calculates a global
scalar, vector, or array, then the keyword formats with 0, 1, or 2
brackets will reference a scalar value from the fix.
</P>
<P>Note that some fixes calculate "intensive" global quantities like
timestep size; others calculate "extensive" global quantities like
energy that are summed over all atoms in the fix group. Intensive
quantities are printed directly without normalization by thermo_style
custom. Extensive quantities may be normalized by the total number of
atoms in the simulation (NOT the number of atoms in the fix group)
when output, depending on the <A HREF = "thermo_modify.html">thermo_modify norm</A>
option being used.
</P>
<P>The <I>v_name</I> keyword allow the current value of a variable to be
output. The name in the keyword should be replaced by the variable
name that has been defined elsewhere in the input script. Only
equal-style variables can be referenced. See the
<A HREF = "variable.html">variable</A> command for details. Variables of style
<I>equal</I> can reference per-atom properties or thermodynamic keywords,
or they can invoke other computes, fixes, or variables when evaluated,
so this is a very general means of creating thermodynamic output.
</P>
<P>See <A HREF = "Section_modify.html">this section</A> for information on how to add
new compute and fix styles to LAMMPS to calculate quantities that can
then be referenced with these keywords to generate thermodynamic
output.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>This command must come after the simulation box is defined by a
<A HREF = "read_data.html">read_data</A>, <A HREF = "read_restart.html">read_restart</A>, or
<A HREF = "create_box.html">create_box</A> command.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "thermo.html">thermo</A>, <A HREF = "thermo_modify.html">thermo_modify</A>,
<A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "compute_temp.html">compute temp</A>,
<A HREF = "compute_pressure.html">compute pressure</A>
</P>
<P><B>Default:</B>
</P>
<PRE>thermo_style one
</PRE>
</HTML>
diff --git a/doc/thermo_style.txt b/doc/thermo_style.txt
index daa1ea836..03ad2c917 100644
--- a/doc/thermo_style.txt
+++ b/doc/thermo_style.txt
@@ -1,305 +1,316 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
thermo_style command :h3
[Syntax:]
thermo_style style args :pre
style = {one} or {multi} or {custom} :ulb,l
args = list of arguments for a particular style :l
{one} args = none
{multi} args = none
{custom} args = list of attributes
possible attributes = step, elapsed, elaplong, dt, cpu, tpcpu, spcpu,
atoms, temp, press, pe, ke, etotal, enthalpy,
evdwl, ecoul, epair, ebond, eangle, edihed, eimp,
emol, elong, etail,
vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi,
xy, xz, yz, xlat, ylat, zlat,
pxx, pyy, pzz, pxy, pxz, pyz,
fmax, fnorm,
+ cella, cellb, cellc, cellalpha, cellbeta, cellgamma,
c_ID, c_ID\[I\], c_ID\[I\]\[J\],
f_ID, f_ID\[I\], f_ID\[I\]\[J\],
v_name
step = timestep
elapsed = timesteps since start of this run
elaplong = timesteps since start of initial run in a series of runs
dt = timestep size
cpu = elapsed CPU time in seconds
tpcpu = time per CPU second
spcpu = timesteps per CPU second
atoms = # of atoms
temp = temperature
press = pressure
pe = total potential energy
ke = kinetic energy
etotal = total energy (pe + ke)
enthalpy = enthalpy (etotal + press*vol)
evdwl = VanderWaal pairwise energy
ecoul = Coulombic pairwise energy
epair = pairwise energy (evdwl + ecoul + elong + etail)
ebond = bond energy
eangle = angle energy
edihed = dihedral energy
eimp = improper energy
emol = molecular energy (ebond + eangle + edihed + eimp)
elong = long-range kspace energy
etail = VanderWaal energy long-range tail correction
vol = volume
lx,ly,lz = box lengths in x,y,z
xlo,xhi,ylo,yhi,zlo,zhi = box boundaries
xy,xz,yz = box tilt for triclinic (non-orthogonal) simulation boxes
xlat,ylat,zlat = lattice spacings as calculated by "lattice"_lattice.html command
pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor
fmax = max component of force on any atom in any dimension
fnorm = length of force vector for all atoms
+ cella,cellb,cellc = periodic cell lattice constants a,b,c
+ cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma
c_ID = global scalar value calculated by a compute with ID
c_ID\[I\] = Ith component of global vector calculated by a compute with ID
c_ID\[I\]\[J\] = I,J component of global array calculated by a compute with ID
f_ID = global scalar value calculated by a fix with ID
f_ID\[I\] = Ith component of global vector calculated by a fix with ID
f_ID\[I\]\[J\] = I,J component of global array calculated by a fix with ID
v_name = scalar value calculated by an equal-style variable with name :pre
:ule
[Examples:]
thermo_style multi
thermo_style custom step temp pe etotal press vol
thermo_style custom step temp etotal c_myTemp v_abc :pre
[Description:]
Set the style and content for printing thermodynamic data to the
screen and log file.
Style {one} prints a one-line summary of thermodynamic info that is
the equivalent of "thermo_style custom step temp epair emol etotal
press". The line contains only numeric values.
Style {multi} prints a multiple-line listing of thermodynamic info
that is the equivalent of "thermo_style custom etotal ke temp pe ebond
eangle edihed eimp evdwl ecoul elong press". The listing contains
numeric values and a string ID for each quantity.
Style {custom} is the most general setting and allows you to specify
which of the keywords listed above you want printed on each
thermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are
references to "computes"_compute.html, "fixes"_fix.html, and
equal-style "variables"_variable.html" that have been defined
elsewhere in the input script or can even be new styles which users
have added to LAMMPS (see the "Section_modify"_Section_modify.html
section of the documentation). Thus the {custom} style provides a
flexible means of outputting essentially any desired quantity as a
simulation proceeds.
All styles except {custom} have {vol} appended to their list of
outputs if the simulation box volume changes during the simulation.
The values printed by the various keywords are instantaneous values,
calculated on the current timestep. Time-averaged quantities, which
include values from previous timesteps, can be output by using the
f_ID keyword and accessing a fix that does time-averaging such as the
"fix ave/time"_fix_ave_time.html command.
Options invoked by the "thermo_modify"_thermo_modify.html command can
be used to set the one- or multi-line format of the print-out, the
normalization of thermodynamic output (total values versus per-atom
values for extensive quantities (ones which scale with the number of
atoms in the system), and the numeric precision of each printed value.
IMPORTANT NOTE: When you use a "thermo_style" command, all
thermodynamic settings are restored to their default values, including
those previously set by a "thermo_modify"_thermo_modify.html command.
Thus if your input script specifies a thermo_style command, you should
use the thermo_modify command after it.
:line
Several of the thermodynamic quantities require a temperature to be
computed: "temp", "press", "ke", "etotal", "enthalpy", "pxx", etc. By
default this is done by using a {temperature} compute which is created
when LAMMPS starts up, as if this command had been issued:
compute thermo_temp all temp :pre
See the "compute temp"_compute_temp.html command for details. Note
that the ID of this compute is {thermo_temp} and the group is {all}.
You can change the attributes of this temperature (e.g. its
degrees-of-freedom) via the "compute_modify"_compute_modify.html
command. Alternatively, you can directly assign a new compute (that
calculates temperature) which you have defined, to be used for
calculating any thermodynamic quantity that requires a temperature.
This is done via the "thermo_modify"_thermo_modify.html command.
Several of the thermodynamic quantities require a pressure to be
computed: "press", "enthalpy", "pxx", etc. By default this is done by
using a {pressure} compute which is created when LAMMPS starts up, as
if this command had been issued:
compute thermo_press all pressure thermo_temp :pre
See the "compute pressure"_compute_pressure.html command for details.
Note that the ID of this compute is {thermo_press} and the group is
{all}. You can change the attributes of this pressure via the
"compute_modify"_compute_modify.html command. Alternatively, you can
directly assign a new compute (that calculates pressure) which you
have defined, to be used for calculating any thermodynamic quantity
that requires a pressure. This is done via the
"thermo_modify"_thermo_modify.html command.
Several of the thermodynamic quantities require a potential energy to
be computed: "pe", "etotal", "ebond", etc. This is done by using a
{pe} compute which is created when LAMMPS starts up, as if this
command had been issued:
compute thermo_pe all pe :pre
See the "compute pe"_compute_pe.html command for details. Note that
the ID of this compute is {thermo_pe} and the group is {all}. You can
change the attributes of this potential energy via the
"compute_modify"_compute_modify.html command.
:line
The kinetic energy of the system {ke} is inferred from the temperature
of the system with 1/2 Kb T of energy for each degree of freedom.
Thus, using different "compute commands"_compute.html for calculating
temperature, via the "thermo_modify temp"_thermo_modify.html command,
may yield different kinetic energies, since different computes that
calculate temperature can subtract out different non-thermal
components of velocity and/or include different degrees of freedom
(translational, rotational, etc).
The potential energy of the system {pe} will include contributions
from fixes if the "fix_modify thermo"_fix_modify.html option is set
for a fix that calculates such a contribution. For example, the "fix
wall/lj93"_fix_wall.html fix calculates the energy of atoms
interacting with the wall. See the doc pages for "individual fixes"
to see which ones contribute.
A long-range tail correction {etail} for the VanderWaal pairwise
energy will be non-zero only if the "pair_modify
tail"_pair_modify.html option is turned on. The {etail} contribution
is included in {evdwl}, {pe}, and {etotal}, and the corresponding tail
correction to the pressure is included in {press} and {pxx}, {pyy},
etc.
:line
The {step}, {elapsed}, and {elaplong} keywords refer to timestep
count. {Step} is the current timestep, or iteration count when a
"minimization"_minimize.html is being performed. {Elapsed} is the
number of timesteps elapsed since the beginning of this run.
{Elaplong} is the number of timesteps elapsed since the beginning of
an initial run in a series of runs. See the {start} and {stop}
keywords for the "run"_run.html for info on how to invoke a series of
runs that keep track of an initial starting time. If these keywords
are not used, then {elapsed} and {elaplong} are the same value.
The {cpu} keyword is elapsed CPU seconds since the beginning of this
run. The {tpcpu} and {spcpu} keywords are measures of how fast your
simulation is currently running. The {tpcpu} keyword is simulation
time per CPU second, where simulation time is in time
"units"_units.html. E.g. for metal units, the {tpcpu} value would be
picoseconds per CPU second. The {spcpu} keyword is the number of
timesteps per CPU second. Both quantities are on-the-fly metrics,
measured relative to the last time they were invoked. Thus if you are
printing out thermodyamic output every 100 timesteps, the two keywords
will continually output the time and timestep rate for the last 100
steps. The {tpcpu} keyword does not attempt to track any changes in
timestep size, e.g. due to using the "fix dt/reset"_fix_dt_reset.html
command.
The {fmax} and {fnorm} keywords are useful for monitoring the progress
of an "energy minimization"_minimize.html. The {fmax} keyword
calculates the maximum force in any dimension on any atom in the
system, or the infinity-norm of the force vector for the system. The
{fnorm} keyword calculates the 2-norm or length of the force vector.
+The keywords {cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma},
+correspond to the usual crystallographic quantities that define
+the periodic unit cell of a crystal.
+See "this section"_Section_howto.html#4_12 of the doc pages for a
+geometric description of triclinic periodic cells, including
+a precise defintion of these quantities in terms of the internal
+LAMMPS cell dimensions {lx}, {ly}, {lz}, {yz}, {xz}, {xy},
+
:line
The {c_ID} and {c_ID\[I\]} and {c_ID\[I\]\[J\]} keywords allow global
values calculated by a compute to be output. As discussed on the
"compute"_compute.html doc page, computes can calculate global,
per-atom, or local values. Only global values can be referenced by
this command. However, per-atom compute values can be referenced in a
"variable"_variable.html and the variable referenced by thermo_style
custom, as discussed below.
The ID in the keyword should be replaced by the actual ID of a compute
that has been defined elsewhere in the input script. See the
"compute"_compute.html command for details. If the compute calculates
a global scalar, vector, or array, then the keyword formats with 0, 1,
or 2 brackets will reference a scalar value from the compute.
Note that some computes calculate "intensive" global quantities like
temperature; others calculate "extensive" global quantities like
kinetic energy that are summed over all atoms in the compute group.
Intensive quantities are printed directly without normalization by
thermo_style custom. Extensive quantities may be normalized by the
total number of atoms in the simulation (NOT the number of atoms in
the compute group) when output, depending on the "thermo_modify
norm"_thermo_modify.html option being used.
The {f_ID} and {f_ID\[I\]} and {f_ID\[I\]\[J\]} keywords allow global
values calculated by a fix to be output. As discussed on the
"fix"_fix.html doc page, fixes can calculate global, per-atom, or
local values. Only global values can be referenced by this command.
However, per-atom fix values can be referenced in a
"variable"_variable.html and the variable referenced by thermo_style
custom, as discussed below.
The ID in the keyword should be replaced by the actual ID of a fix
that has been defined elsewhere in the input script. See the
"fix"_fix.html command for details. If the fix calculates a global
scalar, vector, or array, then the keyword formats with 0, 1, or 2
brackets will reference a scalar value from the fix.
Note that some fixes calculate "intensive" global quantities like
timestep size; others calculate "extensive" global quantities like
energy that are summed over all atoms in the fix group. Intensive
quantities are printed directly without normalization by thermo_style
custom. Extensive quantities may be normalized by the total number of
atoms in the simulation (NOT the number of atoms in the fix group)
when output, depending on the "thermo_modify norm"_thermo_modify.html
option being used.
The {v_name} keyword allow the current value of a variable to be
output. The name in the keyword should be replaced by the variable
name that has been defined elsewhere in the input script. Only
equal-style variables can be referenced. See the
"variable"_variable.html command for details. Variables of style
{equal} can reference per-atom properties or thermodynamic keywords,
or they can invoke other computes, fixes, or variables when evaluated,
so this is a very general means of creating thermodynamic output.
See "this section"_Section_modify.html for information on how to add
new compute and fix styles to LAMMPS to calculate quantities that can
then be referenced with these keywords to generate thermodynamic
output.
:line
[Restrictions:]
This command must come after the simulation box is defined by a
"read_data"_read_data.html, "read_restart"_read_restart.html, or
"create_box"_create_box.html command.
[Related commands:]
"thermo"_thermo.html, "thermo_modify"_thermo_modify.html,
"fix_modify"_fix_modify.html, "compute temp"_compute_temp.html,
"compute pressure"_compute_pressure.html
[Default:]
thermo_style one :pre
diff --git a/doc/variable.html b/doc/variable.html
index d0da5e792..fd1e7f765 100644
--- a/doc/variable.html
+++ b/doc/variable.html
@@ -1,861 +1,866 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>variable command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>variable name style args ...
</PRE>
<UL><LI>name = name of variable to define
<LI>style = <I>delete</I> or <I>index</I> or <I>loop</I> or <I>world</I> or <I>universe</I> or <I>uloop</I> or <I>string</I> or <I>equal</I> or <I>atom</I>
<PRE> <I>delete</I> = no args
<I>index</I> args = one or more strings
<I>loop</I> args = N
N = integer size of loop, loop from 1 to N inclusive
<I>loop</I> args = N pad
N = integer size of loop, loop from 1 to N inclusive
pad = all values will be same length, e.g. 001, 002, ..., 100
<I>loop</I> args = N1 N2
N1,N2 = loop from N1 to N2 inclusive
<I>loop</I> args = N1 N2 pad
N1,N2 = loop from N1 to N2 inclusive
pad = all values will be same length, e.g. 050, 051, ..., 100
<I>world</I> args = one string for each partition of processors
<I>universe</I> args = one or more strings
<I>uloop</I> args = N
N = integer size of loop
<I>uloop</I> args = N pad
N = integer size of loop
pad = all values will be same length, e.g. 001, 002, ..., 100
<I>string</I> arg = one string
<I>equal</I> or <I>atom</I> args = one formula containing numbers, thermo keywords, math operations, group functions, atom values and vectors, compute/fix/variable references
numbers = 0.0, 100, -5.4, 2.8e-4, etc
constants = PI
thermo keywords = vol, ke, press, etc from <A HREF = "thermo_style.html">thermo_style</A>
math operators = (), -x, x+y, x-y, x*y, x/y, x^y,
x==y, x!=y, x<y, x<=y, x>y, x>=y, x&&y, x||y, !x
math functions = sqrt(x), exp(x), ln(x), log(x),
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x),
random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x)
ramp(x,y), stagger(x,y), logfreq(x,y,z), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z)
group functions = count(group), mass(group), charge(group),
xcm(group,dim), vcm(group,dim), fcm(group,dim),
bound(group,xmin), gyration(group), ke(group),
angmom(group,dim), torque(group,dim),
inertia(group,dimdim), omega(group,dim)
region functions = count(group,region), mass(group,region), charge(group,region),
xcm(group,dim,region), vcm(group,dim,region), fcm(group,dim,region),
bound(group,xmin,region), gyration(group,region), ke(group,reigon),
angmom(group,dim,region), torque(group,dim,region),
inertia(group,dimdim,region), omega(group,dim,region)
special functions = sum(x), min(x), max(x), ave(x), trap(x), gmask(x), rmask(x), grmask(x,y)
atom value = mass[i], type[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i]
atom vector = mass, type, x, y, z, vx, vy, vz, fx, fy, fz
compute references = c_ID, c_ID[i], c_ID[i][j]
fix references = f_ID, f_ID[i], f_ID[i][j]
variable references = v_name, v_name[i]
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>variable x index run1 run2 run3 run4 run5 run6 run7 run8
variable LoopVar loop $n
variable beta equal temp/3.0
variable b1 equal x[234]+0.5*vol
variable b1 equal "x[234] + 0.5*vol"
variable b equal xcm(mol1,x)/2.0
variable b equal c_myTemp
variable b atom x*y/vol
variable foo string myfile
variable temp world 300.0 310.0 320.0 ${Tfinal}
variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
variable x uloop 15 pad
variable x delete
</PRE>
<P><B>Description:</B>
</P>
<P>This command assigns one or more strings to a variable name for
evaluation later in the input script or during a simulation.
</P>
<P>Variables can be used in several ways in LAMMPS. A variable can be
referenced elsewhere in an input script to become part of a new input
command. For variable styles that store multiple strings, the
<A HREF = "next.html">next</A> command can be used to increment which string is
assigned to the variable. Variables of style <I>equal</I> store a formula
which when evaluated produces a single numeric value which can be
output either directly (see the <A HREF = "print.html">print</A>, <A HREF = "fix_print.html">fix
print</A>, and <A HREF = "run.html">run every</A> commands) or as part
of thermodynamic output (see the <A HREF = "thermo_style.html">thermo_style</A>
command), or used as input to an averaging fix (see the <A HREF = "fix_ave_time.html">fix
ave/time</A> command). Variables of style <I>atom</I> store
a formula which when evaluated produces one numeric value per atom
which can be output to a dump file (see the <A HREF = "dump.html">dump custom</A>
command) or used as input to an averaging fix (see the <A HREF = "fix_ave_spatial.html">fix
ave/spatial</A> and <A HREF = "fix_ave_atom.html">fix ave/atom</A>
commands).
</P>
<P>In the discussion that follows, the "name" of the variable is the
arbitrary string that is the 1st argument in the variable command.
This name can only contain alphanumeric characters and underscores.
The "string" is one or more of the subsequent arguments. The "string"
can be simple text as in the 1st example above, it can contain other
variables as in the 2nd example, or it can be a formula as in the 3rd
example. The "value" is the numeric quantity resulting from
evaluation of the string. Note that the same string can generate
different values when it is evaluated at different times during a
simulation.
</P>
<P>IMPORTANT NOTE: When the input script line that defines a variable of
style <I>equal</I> or <I>atom</I> that contain a formula is encountered, the
formula is NOT immediately evaluated and the result stored. See the
discussion below about "Immediate Evaluation of Variables" if you want
to do this.
</P>
<P>IMPORTANT NOTE: When a variable command is encountered in the input
script and the variable name has already been specified, the command
is ignored. This means variables can NOT be re-defined in an input
script (with 2 exceptions, read further). This is to allow an input
script to be processed multiple times without resetting the variables;
see the <A HREF = "jump.html">jump</A> or <A HREF = "include.html">include</A> commands. It also
means that using the <A HREF = "Section_start.html#2_6">command-line switch</A> -var
will override a corresponding index variable setting in the input
script.
</P>
<P>There are two exceptions to this rule. First, variables of style
<I>string</I> and <I>equal</I> and <I>atom</I> ARE redefined each time the command is
encountered. This allows these style of variables to be redefined
multiple times in an input script. In a loop, this means the formula
associated with an <I>equal</I> or <I>atom</I> style variable can change if it
contains a substitution for another variable, e.g. $x.
</P>
<P>Second, as described below, if a variable is iterated on to the end of
its list of strings via the <A HREF = "next.html">next</A> command, it is removed
from the list of active variables, and is thus available to be
re-defined in a subsequent variable command. The <I>delete</I> style does
the same thing.
</P>
<HR>
<P><A HREF = "Section_commands.html#3_2">This section</A> of the manual explains how
occurrences of a variable name in an input script line are replaced by
the variable's string. The variable name can be referenced as $x if
the name "x" is a single character, or as ${LoopVar} if the name
"LoopVar" is one or more characters.
</P>
<P>As described below, for variable styles <I>index</I>, <I>loop</I>, <I>universe</I>,
and <I>uloop</I>, which string is assigned to a variable can be incremented
via the <A HREF = "next.html">next</A> command. When there are no more strings to
assign, the variable is exhausted and a flag is set that causes the
next <A HREF = "jump.html">jump</A> command encountered in the input script to be
skipped. This enables the construction of simple loops in the input
script that are iterated over and then exited from.
</P>
<P>As explained above, an exhausted variable can be re-used in an input
script. The <I>delete</I> style also removes the variable, the same as if
it were exhausted, allowing it to be redefined later in the input
script or when the input script is looped over. This can be useful
when breaking out of a loop via the <A HREF = "if.html">if</A> and <A HREF = "jump.html">jump</A>
commands before the variable would become exhausted. For example,
</P>
<PRE>label loop
variable a loop 5
print "A = $a"
if "$a > 2" then "jump in.script break"
next a
jump in.script loop
label break
variable a delete
</PRE>
<HR>
<P>For the <I>index</I> style, one or more strings are specified. Initially,
the 1st string is assigned to the variable. Each time a
<A HREF = "next.html">next</A> command is used with the variable name, the next
string is assigned. All processors assign the same string to the
variable.
</P>
<P><I>Index</I> style variables with a single string value can also be set by
using the command-line switch -var; see <A HREF = "Section_start.html#2_6">this
section</A> for details.
</P>
<P>The <I>loop</I> style is identical to the <I>index</I> style except that the
strings are the integers from 1 to N inclusive, if only one argument N
is specified. This allows generation of a long list of runs
(e.g. 1000) without having to list N strings in the input script.
Initially, the string "1" is assigned to the variable. Each time a
<A HREF = "next.html">next</A> command is used with the variable name, the next
string ("2", "3", etc) is assigned. All processors assign the same
string to the variable. The <I>loop</I> style can also be specified with
two arguments N1 and N2. In this case the loop runs from N1 to N2
inclusive, and the string N1 is initially assigned to the variable.
</P>
<P>For the <I>world</I> style, one or more strings are specified. There must
be one string for each processor partition or "world". See <A HREF = "Section_start.html#2_6">this
section</A> of the manual for information on
running LAMMPS with multiple partitions via the "-partition"
command-line switch. This variable command assigns one string to each
world. All processors in the world are assigned the same string. The
next command cannot be used with <I>equal</I> style variables, since there
is only one value per world. This style of variable is useful when
you wish to run different simulations on different partitions, or when
performing a parallel tempering simulation (see the
<A HREF = "temper.html">temper</A> command), to assign different temperatures to
different partitions.
</P>
<P>For the <I>universe</I> style, one or more strings are specified. There
must be at least as many strings as there are processor partitions or
"worlds". See <A HREF = "Section_start.html#2_6">this page</A> for information on
running LAMMPS with multiple partitions via the "-partition"
command-line switch. This variable command initially assigns one
string to each world. When a <A HREF = "next.html">next</A> command is encountered
using this variable, the first processor partition to encounter it, is
assigned the next available string. This continues until all the
variable strings are consumed. Thus, this command can be used to run
50 simulations on 8 processor partitions. The simulations will be run
one after the other on whatever partition becomes available, until
they are all finished. <I>Universe</I> style variables are incremented
using the files "tmp.lammps.variable" and "tmp.lammps.variable.lock"
which you will see in your directory during such a LAMMPS run.
</P>
<P>The <I>uloop</I> style is identical to the <I>universe</I> style except that the
strings are the integers from 1 to N. This allows generation of long
list of runs (e.g. 1000) without having to list N strings in the input
script.
</P>
<HR>
<P>For the <I>equal</I> and <I>atom</I> styles, a single string is specified which
represents a formula that will be evaluated afresh each time the
variable is used. If you want spaces in the string, enclose it in
double quotes so the parser will treat it as a single argument. For
<I>equal</I> style variables the formula computes a scalar quantity, which
becomes the value of the variable whenever it is evaluated. For
<I>atom</I> style variables the formula computes one quantity for each
atom whenever it is evaluated.
</P>
<P>Note that <I>equal</I> and <I>atom</I> variables can produce different values at
different stages of the input script or at different times during a
run. For example, if an <I>equal</I> variable is used in a <A HREF = "fix_print.html">fix
print</A> command, different values could be printed each
timestep it was invoked. If you want a variable to be evaluated
immediately, so that the result is stored by the variable instead of
the string, see the section below on "Immediate Evaluation of
Variables".
</P>
<P>The next command cannot be used with <I>equal</I> or <I>atom</I> style
variables, since there is only one string.
</P>
<P>The formula for an <I>equal</I> or <I>atom</I> variable can contain a variety
of quantities. The syntax for each kind of quantity is simple, but
multiple quantities can be nested and combined in various ways to
build up formulas of arbitrary complexity. For example, this is a
valid (though strange) variable formula:
</P>
<PRE>variable x equal "pe + c_MyTemp / vol^(1/3)"
</PRE>
<P>Specifically, an formula can contain numbers, thermo keywords, math
operators, math functions, group functions, region functions, atom
values, atom vectors, compute references, fix references, and
references to other variables.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >Number</TD><TD > 0.2, 100, 1.0e20, -15.4, etc</TD></TR>
<TR><TD >Constant</TD><TD > PI</TD></TR>
<TR><TD >Thermo keywords</TD><TD > vol, pe, ebond, etc</TD></TR>
<TR><TD >Math operators</TD><TD > (), -x, x+y, x-y, x*y, x/y, x^y, x==y, x!=y, x<y, x<=y, x>y, x>=y, x&&y, x||y, !x</TD></TR>
<TR><TD >Math functions</TD><TD > sqrt(x), exp(x), ln(x), log(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ramp(x,y), stagger(x,y), logfreq(x,y,z), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z)</TD></TR>
<TR><TD >Group functions</TD><TD > count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim)</TD></TR>
<TR><TD >Region functions</TD><TD > count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR)</TD></TR>
<TR><TD >Special functions</TD><TD > sum(x), min(x), max(x), ave(x), trap(x), gmask(x), rmask(x), grmask(x,y)</TD></TR>
<TR><TD >Atom values</TD><TD > mass[i], type[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i]</TD></TR>
<TR><TD >Atom vectors</TD><TD > mass, type, x, y, z, vx, vy, vz, fx, fy, fz</TD></TR>
<TR><TD >Compute references</TD><TD > c_ID, c_ID[i], c_ID[i][j]</TD></TR>
<TR><TD >Fix references</TD><TD > f_ID, f_ID[i], f_ID[i][j]</TD></TR>
<TR><TD >Other variables</TD><TD > v_name, v_name[i]
</TD></TR></TABLE></DIV>
<HR>
<P>Most of the formula elements produce a scalar value. A few produce a
per-atom vector of values. These are the atom vectors, compute
references that represent a per-atom vector, fix references that
represent a per-atom vector, and variables that are atom-style
variables. Math functions that operate on scalar values produce a
scalar value; math function that operate on per-atom vectors do so
element-by-element and produce a per-atom vector.
</P>
<P>A formula for equal-style variables cannot use any formula element
that produces a per-atom vector. A formula for an atom-style variable
can use formula elements that produce either a scalar value or a
-per-atom vector.
+per-atom vector. Atom-style variables are evaluated by other commands
+that define a <A HREF = "group.html">group</A> on which they operate, e.g. a
+<A HREF = "dump.html">dump</A> or <A HREF = "compute.html">compute</A> or <A HREF = "fix.html">fix</A> command.
+When they invoke the atom-style variable, only atoms in the group are
+inlcuded in the formula evaluation. The variable evaluates to 0.0 for
+atoms not in the group.
</P>
<P>The thermo keywords allowed in a formula are those defined by the
<A HREF = "thermo_style.html">thermo_style custom</A> command. Thermo keywords that
require a <A HREF = "compute.html">compute</A> to calculate their values such as
"temp" or "press", use computes stored and invoked by the
<A HREF = "thermo_style.html">thermo_style</A> command. This means that you can
only use those keywords in a variable if the style you are using with
the thermo_style command (and the thermo keywords associated with that
style) also define and use the needed compute. Note that some thermo
keywords use a compute indirectly to calculate their value (e.g. the
enthalpy keyword uses temp, pe, and pressure). If a variable is
evaluated directly in an input script (not during a run), then the
values accessed by the thermo keyword must be current. See the
discussion below about "Variable Accuracy".
</P>
<HR>
<H4>Math Operators
</H4>
<P>Math operators are written in the usual way, where the "x" and "y" in
the examples can themselves be arbitrarily complex formulas, as in the
examples above. In this syntax, "x" and "y" can be scalar values or
per-atom vectors. For example, "ke/natoms" is the division of two
scalars, where "vy+vz" is the element-by-element sum of two per-atom
vectors of y and z velocities.
</P>
<P>Operators are evaluated left to right and have the usual C-style
precedence: unary minus and unary logical NOT operator "!" have the
highest precedence, exponentiation "^" is next; multiplication and
division are next; addition and subtraction are next; the 4 relational
operators "<", "<=", ">", and ">=" are next; the two remaining
relational operators "==" and "!=" are next; then the logical AND
operator "&&"; and finally the logical OR operator "||" has the lowest
precedence. Parenthesis can be used to group one or more portions of
a formula and/or enforce a different order of evaluation than what
would occur with the default precedence.
</P>
<P>The 6 relational operators return either a 1.0 or 0.0 depending on
whether the relationship between x and y is TRUE or FALSE. For
example the expression x<10.0 in an atom-style variable formula will
return 1.0 for all atoms whose x-coordinate is less than 10.0, and 0.0
for the others. The logical AND operator will return 1.0 if both its
arguments are non-zero, else it returns 0.0. The logical OR operator
will return 1.0 if either of its arguments is non-zero, else it
returns 0.0. The logical NOT operator returns 1.0 if its argument is
0.0, else it returns 0.0.
</P>
<P>These relational and logical operators can be used as a masking or
selection operation in a formula. For example, the number of atoms
whose properties satifsy one or more criteria could be calculated by
taking the returned per-atom vector of ones and zeroes and passing it
to the <A HREF = "compute_reduce.html">compute reduce</A> command.
</P>
<HR>
<H4>Math Functions
</H4>
<P>Math functions are specified as keywords followed by one or more
parenthesized arguments "x", "y", "z", each of which can themselves be
arbitrarily complex formulas. In this syntax, the arguments can
represent scalar values or per-atom vectors. In the latter case, the
math operation is performed on each element of the vector. For
example, "sqrt(natoms)" is the sqrt() of a scalar, where "sqrt(y*z)"
yields a per-atom vector with each element being the sqrt() of the
product of one atom's y and z coordinates.
</P>
<P>Most of the math functions perform obvious operations. The ln() is
the natural log; log() is the base 10 log.
</P>
<P>The random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z =
seed. It generates a uniform random number between lo and hi. The
normal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and
z = seed. It generates a Gaussian variate centered on mu with
variance sigma^2. In both cases the seed is used the first time the
internal random number generator is invoked, to initialize it. For
equal-style variables, every processor uses the same seed so that they
each generate the same sequence of random numbers. For atom-style
variables, a unique seed is created for each processor, based on the
specified seed. This effectively generates a different random number
for each atom being looped over in the atom-style variable.
</P>
<P>IMPORTANT NOTE: Internally, there is just one random number generator
for all equal-style variables and one for all atom-style variables.
If you define multiple variables (of each style) which use the
random() or normal() math functions, then the internal random number
generators will only be initialized once, which means only one of the
specified seeds will determine the sequence of generated random
numbers.
</P>
<P>The ceil(), floor(), and round() functions are those in the C math
library. Ceil() is the smallest integer not less than its argument.
Floor() if the largest integer not greater than its argument. Round()
is the nearest integer to its argument.
</P>
<P>The ramp(x,y) function uses the current timestep to generate a value
linearly intepolated between the specified x,y values over the course
of a run, according to this formula:
</P>
<PRE>value = x + (y-x) * (timestep-startstep) / (stopstep-startstep)
</PRE>
<P>The run begins on startstep and ends on stopstep. Startstep and
stopstep can span multiple runs, using the <I>start</I> and <I>stop</I> keywords
of the <A HREF = "run.html">run</A> command. See the <A HREF = "run.html">run</A> command for
details of how to do this.
</P>
<P>The stagger(x,y) function uses the current timestep to generate a new
timestep. X,y > 0 and x > y is required. The generated timesteps
increase in a staggered fashion, as the sequence
x,x+y,2x,2x+y,3x,3x+y,etc. For any current timestep, the next
timestep in the sequence is returned. Thus if stagger(1000,100) is
used in a variable by the <A HREF = "dump_modify.html">dump_modify every</A>
command, it will generate the sequence of output timesteps:
</P>
<PRE>100,1000,1100,2000,2100,3000,etc
</PRE>
<P>The logfreq(x,y,z) function uses the current timestep to generate a
new timestep. X,y,z > 0 and y < z is required. The generated
timesteps increase in a logarithmic fashion, as the sequence
x,2x,3x,...y*x,z*x,2*z*x,3*z*x,...y*z*x,z*z*x,2*z*x*x,etc. For any
current timestep, the next timestep in the sequence is returned. Thus
if logfreq(100,4,10) is used in a variable by the <A HREF = "dump_modify.html">dump_modify
every</A> command, it will generate the sequence of
output timesteps:
</P>
<PRE>100,200,300,400,1000,2000,3000,4000,10000,20000,etc
</PRE>
<P>The vdisplace(x,y) function takes 2 arguments: x = coord0 and y =
velocity, and uses the elapsed time to change the coordinate value by
a linear displacement due to the applied velocity over the course of a
run, according to this formula:
</P>
<PRE>value = coord0 + velocity*(timestep-startstep)*dt
</PRE>
<P>where dt = the timestep size.
</P>
<P>The run begins on startstep. Startstep can span multiple runs, using
the <I>start</I> keyword of the <A HREF = "run.html">run</A> command. See the
<A HREF = "run.html">run</A> command for details of how to do this. Note that the
<A HREF = "thermo_style.html">thermo_style</A> keyword elaplong =
timestep-startstep.
</P>
<P>The swiggle(x,y,z) and cwiggle(x,y,z) functions each take 3 arguments:
x = coord0, y = amplitude, z = period. They use the elapsed time to
oscillate the coordinate value by a sin() or cos() function over the
course of a run, according to one of these formulas, where
omega = 2 PI / period:
</P>
<PRE>value = coord0 + Amplitude * sin(omega*(timestep-startstep)*dt)
value = coord0 + Amplitude * (1 - cos(omega*(timestep-startstep)*dt))
</PRE>
<P>where dt = the timestep size.
</P>
<P>The run begins on startstep. Startstep can span multiple runs, using
the <I>start</I> keyword of the <A HREF = "run.html">run</A> command. See the
<A HREF = "run.html">run</A> command for details of how to do this. Note that the
<A HREF = "thermo_style.html">thermo_style</A> keyword elaplong =
timestep-startstep.
</P>
<HR>
<H4>Group and Region Functions
</H4>
<P>Group functions are specified as keywords followed by one or two
parenthesized arguments. The first argument is the group-ID. The
<I>dim</I> argument, if it exists, is <I>x</I> or <I>y</I> or <I>z</I>. The <I>dir</I>
argument, if it exists, is <I>xmin</I>, <I>xmax</I>, <I>ymin</I>, <I>ymax</I>, <I>zmin</I>, or
<I>zmax</I>. The <I>dimdim</I> argument, if it exists, is <I>xx</I> or <I>yy</I> or <I>zz</I>
or <I>xy</I> or <I>yz</I> or <I>xz</I>.
</P>
<P>The group function count() is the number of atoms in the group. The
group functions mass() and charge() are the total mass and charge of
the group. Xcm() and vcm() return components of the position and
velocity of the center of mass of the group. Fcm() returns a
component of the total force on the group of atoms. Bound() returns
the min/max of a particular coordinate for all atoms in the group.
Gyration() computes the radius-of-gyration of the group of atoms. See
the <A HREF = "compute_gyration.html">compute gyration</A> command for a definition
of the formula. Angmom() returns components of the angular momentum
of the group of atoms around its center of mass. Torque() returns
components of the torque on the group of atoms around its center of
mass, based on current forces on the atoms. Inertia() returns one of
6 components of the inertia tensor of the group of atoms around its
center of mass. Omega() returns components of the angular velocity of
the group of atoms around its center of mass.
</P>
<P>Region functions are specified exactly the same way as group functions
except they take an extra argument which is the region ID. The
function is computed for all atoms that are in both the group and the
region. If the group is "all", then the only criteria for atom
inclusion is that it be in the region.
</P>
<HR>
<H4>Special Functions
</H4>
<P>Special functions take specific kinds of arguments, meaning their
arguments cannot be formulas themselves.
</P>
<P>The sum(x), min(x), max(x), ave(x), and trap(x) functions each take 1
argument which is of the form "c_ID" or "c_ID[N]" or "f_ID" or
"f_ID[N]". The first two are computes and the second two are fixes;
the ID in the reference should be replaced by the ID of a compute or
fix defined elsewhere in the input script. The compute or fix must
produce either a global vector or array. If it produces a global
vector, then the notation without "[N]" should be used. If it
produces a global array, then the notation with "[N]" should be
used, when N is an integer, to specify which column of the global
array is being referenced.
</P>
<P>These functions operate on the global vector of inputs and reduce it
to a single scalar value. This is analagous to the operation of the
<A HREF = "compute_reduce.html">compute reduce</A> command, which invokes the same
functions on per-atom and local vectors.
</P>
<P>The sum() function calculates the sum of all the vector elements. The
min() and max() functions find the minimum and maximum element
respectively. The ave() function is the same as sum() except that it
divides the result by the length of the vector. The trap() function
is the same as sum() except the first and last elements are multiplied
by a weighting factor of 1/2 when performing the sum. This
effectively implements an integratiion via the trapezoidal rule on the
global vector of data. I.e. consider a set of points, equally spaced
by 1 in their x coordinate: (1,V1), (2,V2), ..., (N,VN), where the Vi
are the values in the global vector of length N. The integral from 1
to N of these points is trap(). When appropriately normalized by the
timestep size, this function is useful for calculating integrals of
time-series data, like that generated by the <A HREF = "fix_ave_correlate.html">fix
ave/correlate</A> command.
</P>
<P>The gmask(x) function takes 1 argument which is a group ID. It
can only be used in atom-style variables. It returns a 1 for
atoms that are in the group, and a 0 for atoms that are not.
</P>
<P>The rmask(x) function takes 1 argument which is a region ID. It can
only be used in atom-style variables. It returns a 1 for atoms that
are in the geometric region, and a 0 for atoms that are not.
</P>
<P>The grmask(x,y) function takes 2 arguments. The first is a group ID,
and the second is a region ID. It can only be used in atom-style
variables. It returns a 1 for atoms that are in both the group and
region, and a 0 for atoms that are not in both.
</P>
<HR>
<H4>Atom Values and Vectors
</H4>
<P>Atom values take a single integer argument I from 1 to N, where I is
the an atom-ID, e.g. x[243], which means use the x coordinate of the
atom with ID = 243.
</P>
<P>Atom vectors generate one value per atom, so that a reference like
"vx" means the x-component of each atom's velocity will be used when
evaluating the variable. Note that other atom attributes can be used
as inputs to a variable by using the <A HREF = "compute_property_atom.html">compute
property/atom</A> command and then specifying
a quantity from that compute.
</P>
<HR>
<H4>Compute References
</H4>
<P>Compute references access quantities calculated by a
<A HREF = "compute.html">compute</A>. The ID in the reference should be replaced by
the ID of a compute defined elsewhere in the input script. As
discussed in the doc page for the <A HREF = "compute.html">compute</A> command,
computes can produce global, per-atom, or local values. Only global
and per-atom values can be used in a variable. Computes can also
produce a scalar, vector, or array. An equal-style variable can only
use scalar values, which means a global scalar, or an element of a
global or per-atom vector or array. Atom-style variables can use the
same scalar values. They can also use per-atom vector values. A
vector value can be a per-atom vector itself, or a column of an
per-atom array. See the doc pages for individual computes to see what
kind of values they produce.
</P>
<P>Examples of different kinds of compute references are as follows.
There is no ambiguity as to what a reference means, since computes
only produce global or per-atom quantities, never both.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >c_ID</TD><TD > global scalar, or per-atom vector</TD></TR>
<TR><TD >c_ID[I]</TD><TD > Ith element of global vector, or atom I's value in per-atom vector, or Ith column from per-atom array</TD></TR>
<TR><TD >c_ID[I][J]</TD><TD > I,J element of global array, or atom I's Jth value in per-atom array
</TD></TR></TABLE></DIV>
<P>If a variable containing a compute is evaluated
directly in an input script (not during a run), then the values
accessed by the compute must be current. See the discussion below
about "Variable Accuracy".
</P>
<HR>
<H4>Fix References
</H4>
<P>Fix references access quantities calculated by a <A HREF = "compute.html">fix</A>.
The ID in the reference should be replaced by the ID of a fix defined
elsewhere in the input script. As discussed in the doc page for the
<A HREF = "fix.html">fix</A> command, fixes can produce global, per-atom, or local
values. Only global and per-atom values can be used in a variable.
Fixes can also produce a scalar, vector, or array. An equal-style
variable can only use scalar values, which means a global scalar, or
an element of a global or per-atom vector or array. Atom-style
variables can use the same scalar values. They can also use per-atom
vector values. A vector value can be a per-atom vector itself, or a
column of an per-atom array. See the doc pages for individual fixes
to see what kind of values they produce.
</P>
<P>The different kinds of fix references are exactly the same as the
compute references listed in the above table, where "c_" is replaced
by "f_". Again, there is no ambiguity as to what a reference means,
since fixes only produce global or per-atom quantities, never both.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >f_ID</TD><TD > global scalar, or per-atom vector</TD></TR>
<TR><TD >f_ID[I]</TD><TD > Ith element of global vector, or atom I's value in per-atom vector, or Ith column from per-atom array</TD></TR>
<TR><TD >f_ID[I][J]</TD><TD > I,J element of global array, or atom I's Jth value in per-atom array
</TD></TR></TABLE></DIV>
<P>If a variable containing a fix is evaluated directly in an input
script (not during a run), then the values accessed by the fix should
be current. See the discussion below about "Variable Accuracy".
</P>
<P>Note that some fixes only generate quantities on certain timesteps.
If a variable attempts to access the fix on non-allowed timesteps, an
error is generated. For example, the <A HREF = "fix_ave_time.html">fix ave/time</A>
command may only generate averaged quantities every 100 steps. See
the doc pages for individual fix commands for details.
</P>
<HR>
<H4>Variable References
</H4>
<P>Variable references access quantities calulated by other variables,
which will cause those variables to be evaluated. The name in the
reference should be replaced by the name of a variable defined
elsewhere in the input script. As discussed on this doc page,
atom-style variables generate a per-atom vector of values; all other
variable styles generate a global scalar value. An equal-style
variable can reference a global scalar value produced by another
variable, but not a per-atom vector produced by an atom-style
variable. Atom-style variables can reference either global scalar or
per-atom vector values produced by kind of variable.
</P>
<P>Examples of different kinds of variable references are as follows.
There is no ambiguity as to what a reference means, since variables
produce only a global scalar or a per-atom vectors, never both.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >v_name</TD><TD > scalar, or per-atom vector</TD></TR>
<TR><TD >v_name[I]</TD><TD > atom I's value in per-atom vector
</TD></TR></TABLE></DIV>
<P>IMPORTANT NOTE: If you define variables in circular manner like this:
</P>
<PRE>variable a equal v_b
variable b equal v_a
print $a
</PRE>
<P>then LAMMPS may run for a while when the print statement is invoked!
</P>
<HR>
<P><B>Immediate Evaluation of Variables:</B>
</P>
<P>There is a difference between referencing a variable with a leading $
sign (e.g. $x or ${abc}) versus with a leading "v_" (e.g. v_x or
v_abc). The former can be used in any command, including a variable
command, to force the immediate evaluation of the referenced variable
and the substitution of its value into the command. The latter is a
required kind of argument to some commands (e.g. the <A HREF = "fix_ave_spatial.html">fix
ave/spatial</A> or <A HREF = "dump.html">dump custom</A> or
<A HREF = "thermo_style.html">thermo_style</A> commands) if you wish it to evaluate
a variable periodically during a run. It can also be used in a
variable formula if you wish to reference a second variable. The
second variable will be evaluated whenever the first variable is
evaluated.
</P>
<P>As an example, suppose you use this command in your input script to
define the variable "v" as
</P>
<PRE>variable v equal vol
</PRE>
<P>before a run where the simulation box size changes. You might think
this will assign the initial volume to the variable "v". That is not
the case. Rather it assigns a formula which evaluates the volume
(using the thermo_style keyword "vol") to the variable "v". If you
use the variable "v" in some other command like <A HREF = "fix_ave_time.html">fix
ave/time</A> then the current volume of the box will be
evaluated continuously during the run.
</P>
<P>If you want to store the initial volume of the system, you can do it
this way:
</P>
<PRE>variable v equal vol
variable v0 equal $v
</PRE>
<P>The second command will force "v" to be evaluated (yielding the
initial volume) and assign that value to the variable "v0". Thus the
command
</P>
<PRE>thermo_style custom step v_v v_v0
</PRE>
<P>would print out both the current and initial volume periodically
during the run.
</P>
<P>Note that it is a mistake to enclose a variable formula in double
quotes if it contains variables preceeded by $ signs. For example,
</P>
<PRE>variable vratio equal "${vfinal}/${v0}"
</PRE>
<P>This is because the quotes prevent variable substitution (see <A HREF = "Section_commands.html#3_2">this
section</A> on parsing input script commands),
and thus an error will occur when the formula for "vratio" is
evaluated later.
</P>
<HR>
<P><B>Variable Accuracy:</B>
</P>
<P>Obviously, LAMMPS attempts to evaluate variables containing formulas
(<I>equal</I> and <I>atom</I> style variables) accurately whenever the
evaluation is performed. Depending on what is included in the
formula, this may require invoking a <A HREF = "compute.html">compute</A>, either
directly or indirectly via a thermo keyword, or accessing a value
previously calculated by a compute, or accessing a value calculated
and stored by a <A HREF = "fix.html">fix</A>. If the compute is one that calculates
the pressure or energy of the system, then these quantities need to be
tallied during the evaluation of the interatomic potentials (pair,
bond, etc) on timesteps that the variable will need the values.
</P>
<P>LAMMPS keeps track of all of this during a <A HREF = "run.html">run</A> or <A HREF = "minimize.html">energy
minimization</A>. An error will be generated if you
attempt to evaluate a variable on timesteps when it cannot produce
accurate values. For example, if a <A HREF = "thermo_style.html">thermo_style
custom</A> command prints a variable which accesses
values stored by a <A HREF = "fix_ave_time.html">fix ave/time</A> command and the
timesteps on which thermo output is generated are not multiples of the
averaging frequency used in the fix command, then an error will occur.
</P>
<P>An input script can also request variables be evaluated before or
after or in between runs, e.g. by including them in a
<A HREF = "print.html">print</A> command. In this case, if a compute is needed to
evaluate a variable (either directly or indirectly), LAMMPS will not
invoke the compute, but it will use a value previously calculated by
the compute, and can do this only if it is current. Fixes will always
provide a quantity needed by a variable, but the quantity may or may
not be current. This leads to one of three kinds of behavior:
</P>
<P>(1) The variable may be evaluated accurately. If it contains
references to a compute or fix, and these values were calculated on
the last timestep of a preceeding run, then they will be accessed and
used by the variable and the result will be accurate.
</P>
<P>(2) LAMMPS may not be able to evaluate the variable and generate an
error. For example, if the variable requires a quantity from a
<A HREF = "compute.html">compute</A> that is not current, LAMMPS will generate an
error. This means, for example, that such a variable cannot be
evaluated before the first run has occurred. Likewise, in between
runs, such a variable cannot be accessed unless it was evaluated on
the last timestep of the preceding run, e.g. by thermodynamic output.
</P>
<P>One way to get around this problem is to perform a 0-timestep run
before using the variable. For example, these commands
</P>
<PRE>variable t equal temp
print "Initial temperature = $t"
run 1000
</PRE>
<P>will generate an error if the run is the first run specified in the
input script, because generating a value for the "t" variable requires
a compute for calculating the temperature to be invoked.
</P>
<P>However, this sequence of commands would be fine:
</P>
<PRE>run 0
variable t equal temp
print "Initial temperature = $t"
run 1000
</PRE>
<P>The 0-timestep run initializes and invokes various computes, including
the one for temperature, so that the value it stores is current and
can be accessed by the variable "t" after the run has completed. Note
that a 0-timestep run does not alter the state of the system, so it
does not change the input state for the 1000-timestep run that
follows. Also note that the 0-timestep run must actually use and
invoke the compute in question (e.g. via <A HREF = "thermo_style.html">thermo</A> or
<A HREF = "dump.html">dump</A> output) in order for it to enable the compute to be
used in a variable after the run. Thus if you are trying to print a
variable that uses a compute you have defined, you could insure it was
invoked on the last timestep of the preceding run by including it in
thermodynamic output.
</P>
<P>Unlike computes, <A HREF = "fix.html">fixes</A> will never generate an error if
their values are accessed by a variable in between runs. They always
return some value to the variable. However, the value may not be what
you expect if the fix has not yet calculated the quantity of interest
or it is not current. For example, the <A HREF = "fix_indent.html">fix indent</A>
command stores the force on the indenter. But this is not computed
until a run is performed. Thus if a variable attempts to print this
value before the first run, zeroes will be output. Again, performing
a 0-timestep run before printing the variable has the desired effect.
</P>
<P>(3) The variable may be evaluated incorrectly. And LAMMPS may have
no way to detect this has occurred. Consider the following sequence
of commands:
</P>
<PRE>pair_coeff 1 1 1.0 1.0
run 1000
pair_coeff 1 1 1.5 1.0
variable e equal pe
print "Final potential energy = $e"
</PRE>
<P>The first run is performed using one setting for the pairwise
potential defined by the <A HREF = "pair_style.html">pair_style</A> and
<A HREF = "pair_coeff.html">pair_coeff</A> commands. The potential energy is
evaluated on the final timestep and stored by the <A HREF = "compute_pe.html">compute
pe</A> compute (this is done by the
<A HREF = "thermo_style.html">thermo_style</A> command). Then a pair coefficient is
changed, altering the potential energy of the system. When the
potential energy is printed via the "e" variable, LAMMPS will use the
potential energy value stored by the <A HREF = "compute_pe.html">compute pe</A>
compute, thinking it is current. There are many other commands which
could alter the state of the system between runs, causing a variable
to evaluate incorrectly.
</P>
<P>The solution to this issue is the same as for case (2) above, namely
perform a 0-timestep run before the variable is evaluated to insure
the system is up-to-date. For example, this sequence of commands
would print a potential energy that reflected the changed pairwise
coefficient:
</P>
<PRE>pair_coeff 1 1 1.0 1.0
run 1000
pair_coeff 1 1 1.5 1.0
run 0
variable e equal pe
print "Final potential energy = $e"
</PRE>
<HR>
<P><B>Restrictions:</B>
</P>
<P>Indexing any formula element by global atom ID, such as an atom value,
requires the atom style to use a global mapping in order to look up
the vector indices. By default, only atom styles with molecular
information create global maps. The <A HREF = "atom_modify.html">atom_modify
map</A> command can override the default.
</P>
<P>All <I>universe</I>- and <I>uloop</I>-style variables defined in an input script
must have the same number of values.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "next.html">next</A>, <A HREF = "jump.html">jump</A>, <A HREF = "include.html">include</A>,
<A HREF = "temper.html">temper</A>, <A HREF = "fix_print.html">fix print</A>, <A HREF = "print.html">print</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>
diff --git a/doc/variable.txt b/doc/variable.txt
index 340f8539d..cbd6d57a9 100644
--- a/doc/variable.txt
+++ b/doc/variable.txt
@@ -1,853 +1,858 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
variable command :h3
[Syntax:]
variable name style args ... :pre
name = name of variable to define :ulb,l
style = {delete} or {index} or {loop} or {world} or {universe} or {uloop} or {string} or {equal} or {atom} :l
{delete} = no args
{index} args = one or more strings
{loop} args = N
N = integer size of loop, loop from 1 to N inclusive
{loop} args = N pad
N = integer size of loop, loop from 1 to N inclusive
pad = all values will be same length, e.g. 001, 002, ..., 100
{loop} args = N1 N2
N1,N2 = loop from N1 to N2 inclusive
{loop} args = N1 N2 pad
N1,N2 = loop from N1 to N2 inclusive
pad = all values will be same length, e.g. 050, 051, ..., 100
{world} args = one string for each partition of processors
{universe} args = one or more strings
{uloop} args = N
N = integer size of loop
{uloop} args = N pad
N = integer size of loop
pad = all values will be same length, e.g. 001, 002, ..., 100
{string} arg = one string
{equal} or {atom} args = one formula containing numbers, thermo keywords, math operations, group functions, atom values and vectors, compute/fix/variable references
numbers = 0.0, 100, -5.4, 2.8e-4, etc
constants = PI
thermo keywords = vol, ke, press, etc from "thermo_style"_thermo_style.html
math operators = (), -x, x+y, x-y, x*y, x/y, x^y,
x==y, x!=y, x<y, x<=y, x>y, x>=y, x&&y, x||y, !x
math functions = sqrt(x), exp(x), ln(x), log(x),
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x),
random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x)
ramp(x,y), stagger(x,y), logfreq(x,y,z), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z)
group functions = count(group), mass(group), charge(group),
xcm(group,dim), vcm(group,dim), fcm(group,dim),
bound(group,xmin), gyration(group), ke(group),
angmom(group,dim), torque(group,dim),
inertia(group,dimdim), omega(group,dim)
region functions = count(group,region), mass(group,region), charge(group,region),
xcm(group,dim,region), vcm(group,dim,region), fcm(group,dim,region),
bound(group,xmin,region), gyration(group,region), ke(group,reigon),
angmom(group,dim,region), torque(group,dim,region),
inertia(group,dimdim,region), omega(group,dim,region)
special functions = sum(x), min(x), max(x), ave(x), trap(x), gmask(x), rmask(x), grmask(x,y)
atom value = mass\[i\], type\[i\], x\[i\], y\[i\], z\[i\], vx\[i\], vy\[i\], vz\[i\], fx\[i\], fy\[i\], fz\[i\]
atom vector = mass, type, x, y, z, vx, vy, vz, fx, fy, fz
compute references = c_ID, c_ID\[i\], c_ID\[i\]\[j\]
fix references = f_ID, f_ID\[i\], f_ID\[i\]\[j\]
variable references = v_name, v_name\[i\] :pre
:ule
[Examples:]
variable x index run1 run2 run3 run4 run5 run6 run7 run8
variable LoopVar loop $n
variable beta equal temp/3.0
variable b1 equal x\[234\]+0.5*vol
variable b1 equal "x\[234\] + 0.5*vol"
variable b equal xcm(mol1,x)/2.0
variable b equal c_myTemp
variable b atom x*y/vol
variable foo string myfile
variable temp world 300.0 310.0 320.0 $\{Tfinal\}
variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
variable x uloop 15 pad
variable x delete :pre
[Description:]
This command assigns one or more strings to a variable name for
evaluation later in the input script or during a simulation.
Variables can be used in several ways in LAMMPS. A variable can be
referenced elsewhere in an input script to become part of a new input
command. For variable styles that store multiple strings, the
"next"_next.html command can be used to increment which string is
assigned to the variable. Variables of style {equal} store a formula
which when evaluated produces a single numeric value which can be
output either directly (see the "print"_print.html, "fix
print"_fix_print.html, and "run every"_run.html commands) or as part
of thermodynamic output (see the "thermo_style"_thermo_style.html
command), or used as input to an averaging fix (see the "fix
ave/time"_fix_ave_time.html command). Variables of style {atom} store
a formula which when evaluated produces one numeric value per atom
which can be output to a dump file (see the "dump custom"_dump.html
command) or used as input to an averaging fix (see the "fix
ave/spatial"_fix_ave_spatial.html and "fix ave/atom"_fix_ave_atom.html
commands).
In the discussion that follows, the "name" of the variable is the
arbitrary string that is the 1st argument in the variable command.
This name can only contain alphanumeric characters and underscores.
The "string" is one or more of the subsequent arguments. The "string"
can be simple text as in the 1st example above, it can contain other
variables as in the 2nd example, or it can be a formula as in the 3rd
example. The "value" is the numeric quantity resulting from
evaluation of the string. Note that the same string can generate
different values when it is evaluated at different times during a
simulation.
IMPORTANT NOTE: When the input script line that defines a variable of
style {equal} or {atom} that contain a formula is encountered, the
formula is NOT immediately evaluated and the result stored. See the
discussion below about "Immediate Evaluation of Variables" if you want
to do this.
IMPORTANT NOTE: When a variable command is encountered in the input
script and the variable name has already been specified, the command
is ignored. This means variables can NOT be re-defined in an input
script (with 2 exceptions, read further). This is to allow an input
script to be processed multiple times without resetting the variables;
see the "jump"_jump.html or "include"_include.html commands. It also
means that using the "command-line switch"_Section_start.html#2_6 -var
will override a corresponding index variable setting in the input
script.
There are two exceptions to this rule. First, variables of style
{string} and {equal} and {atom} ARE redefined each time the command is
encountered. This allows these style of variables to be redefined
multiple times in an input script. In a loop, this means the formula
associated with an {equal} or {atom} style variable can change if it
contains a substitution for another variable, e.g. $x.
Second, as described below, if a variable is iterated on to the end of
its list of strings via the "next"_next.html command, it is removed
from the list of active variables, and is thus available to be
re-defined in a subsequent variable command. The {delete} style does
the same thing.
:line
"This section"_Section_commands.html#3_2 of the manual explains how
occurrences of a variable name in an input script line are replaced by
the variable's string. The variable name can be referenced as $x if
the name "x" is a single character, or as $\{LoopVar\} if the name
"LoopVar" is one or more characters.
As described below, for variable styles {index}, {loop}, {universe},
and {uloop}, which string is assigned to a variable can be incremented
via the "next"_next.html command. When there are no more strings to
assign, the variable is exhausted and a flag is set that causes the
next "jump"_jump.html command encountered in the input script to be
skipped. This enables the construction of simple loops in the input
script that are iterated over and then exited from.
As explained above, an exhausted variable can be re-used in an input
script. The {delete} style also removes the variable, the same as if
it were exhausted, allowing it to be redefined later in the input
script or when the input script is looped over. This can be useful
when breaking out of a loop via the "if"_if.html and "jump"_jump.html
commands before the variable would become exhausted. For example,
label loop
variable a loop 5
print "A = $a"
if "$a > 2" then "jump in.script break"
next a
jump in.script loop
label break
variable a delete :pre
:line
For the {index} style, one or more strings are specified. Initially,
the 1st string is assigned to the variable. Each time a
"next"_next.html command is used with the variable name, the next
string is assigned. All processors assign the same string to the
variable.
{Index} style variables with a single string value can also be set by
using the command-line switch -var; see "this
section"_Section_start.html#2_6 for details.
The {loop} style is identical to the {index} style except that the
strings are the integers from 1 to N inclusive, if only one argument N
is specified. This allows generation of a long list of runs
(e.g. 1000) without having to list N strings in the input script.
Initially, the string "1" is assigned to the variable. Each time a
"next"_next.html command is used with the variable name, the next
string ("2", "3", etc) is assigned. All processors assign the same
string to the variable. The {loop} style can also be specified with
two arguments N1 and N2. In this case the loop runs from N1 to N2
inclusive, and the string N1 is initially assigned to the variable.
For the {world} style, one or more strings are specified. There must
be one string for each processor partition or "world". See "this
section"_Section_start.html#2_6 of the manual for information on
running LAMMPS with multiple partitions via the "-partition"
command-line switch. This variable command assigns one string to each
world. All processors in the world are assigned the same string. The
next command cannot be used with {equal} style variables, since there
is only one value per world. This style of variable is useful when
you wish to run different simulations on different partitions, or when
performing a parallel tempering simulation (see the
"temper"_temper.html command), to assign different temperatures to
different partitions.
For the {universe} style, one or more strings are specified. There
must be at least as many strings as there are processor partitions or
"worlds". See "this page"_Section_start.html#2_6 for information on
running LAMMPS with multiple partitions via the "-partition"
command-line switch. This variable command initially assigns one
string to each world. When a "next"_next.html command is encountered
using this variable, the first processor partition to encounter it, is
assigned the next available string. This continues until all the
variable strings are consumed. Thus, this command can be used to run
50 simulations on 8 processor partitions. The simulations will be run
one after the other on whatever partition becomes available, until
they are all finished. {Universe} style variables are incremented
using the files "tmp.lammps.variable" and "tmp.lammps.variable.lock"
which you will see in your directory during such a LAMMPS run.
The {uloop} style is identical to the {universe} style except that the
strings are the integers from 1 to N. This allows generation of long
list of runs (e.g. 1000) without having to list N strings in the input
script.
:line
For the {equal} and {atom} styles, a single string is specified which
represents a formula that will be evaluated afresh each time the
variable is used. If you want spaces in the string, enclose it in
double quotes so the parser will treat it as a single argument. For
{equal} style variables the formula computes a scalar quantity, which
becomes the value of the variable whenever it is evaluated. For
{atom} style variables the formula computes one quantity for each
atom whenever it is evaluated.
Note that {equal} and {atom} variables can produce different values at
different stages of the input script or at different times during a
run. For example, if an {equal} variable is used in a "fix
print"_fix_print.html command, different values could be printed each
timestep it was invoked. If you want a variable to be evaluated
immediately, so that the result is stored by the variable instead of
the string, see the section below on "Immediate Evaluation of
Variables".
The next command cannot be used with {equal} or {atom} style
variables, since there is only one string.
The formula for an {equal} or {atom} variable can contain a variety
of quantities. The syntax for each kind of quantity is simple, but
multiple quantities can be nested and combined in various ways to
build up formulas of arbitrary complexity. For example, this is a
valid (though strange) variable formula:
variable x equal "pe + c_MyTemp / vol^(1/3)" :pre
Specifically, an formula can contain numbers, thermo keywords, math
operators, math functions, group functions, region functions, atom
values, atom vectors, compute references, fix references, and
references to other variables.
Number: 0.2, 100, 1.0e20, -15.4, etc
Constant: PI
Thermo keywords: vol, pe, ebond, etc
Math operators: (), -x, x+y, x-y, x*y, x/y, x^y, x==y, x!=y, x<y, x<=y, x>y, x>=y, x&&y, x||y, !x
Math functions: sqrt(x), exp(x), ln(x), log(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ramp(x,y), stagger(x,y), logfreq(x,y,z), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z)
Group functions: count(ID), mass(ID), charge(ID), xcm(ID,dim), \
vcm(ID,dim), fcm(ID,dim), bound(ID,dir), \
gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), \
inertia(ID,dimdim), omega(ID,dim)
Region functions: count(ID,IDR), mass(ID,IDR), charge(ID,IDR), \
xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), \
bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), \
angmom(ID,dim,IDR), torque(ID,dim,IDR), \
inertia(ID,dimdim,IDR), omega(ID,dim,IDR)
Special functions: sum(x), min(x), max(x), ave(x), trap(x), gmask(x), rmask(x), grmask(x,y)
Atom values: mass\[i\], type\[i\], x\[i\], y\[i\], z\[i\], \
vx\[i\], vy\[i\], vz\[i\], fx\[i\], fy\[i\], fz\[i\]
Atom vectors: mass, type, x, y, z, vx, vy, vz, fx, fy, fz
Compute references: c_ID, c_ID\[i\], c_ID\[i\]\[j\]
Fix references: f_ID, f_ID\[i\], f_ID\[i\]\[j\]
Other variables: v_name, v_name\[i\] :tb(s=:)
:line
Most of the formula elements produce a scalar value. A few produce a
per-atom vector of values. These are the atom vectors, compute
references that represent a per-atom vector, fix references that
represent a per-atom vector, and variables that are atom-style
variables. Math functions that operate on scalar values produce a
scalar value; math function that operate on per-atom vectors do so
element-by-element and produce a per-atom vector.
A formula for equal-style variables cannot use any formula element
that produces a per-atom vector. A formula for an atom-style variable
can use formula elements that produce either a scalar value or a
-per-atom vector.
+per-atom vector. Atom-style variables are evaluated by other commands
+that define a "group"_group.html on which they operate, e.g. a
+"dump"_dump.html or "compute"_compute.html or "fix"_fix.html command.
+When they invoke the atom-style variable, only atoms in the group are
+inlcuded in the formula evaluation. The variable evaluates to 0.0 for
+atoms not in the group.
The thermo keywords allowed in a formula are those defined by the
"thermo_style custom"_thermo_style.html command. Thermo keywords that
require a "compute"_compute.html to calculate their values such as
"temp" or "press", use computes stored and invoked by the
"thermo_style"_thermo_style.html command. This means that you can
only use those keywords in a variable if the style you are using with
the thermo_style command (and the thermo keywords associated with that
style) also define and use the needed compute. Note that some thermo
keywords use a compute indirectly to calculate their value (e.g. the
enthalpy keyword uses temp, pe, and pressure). If a variable is
evaluated directly in an input script (not during a run), then the
values accessed by the thermo keyword must be current. See the
discussion below about "Variable Accuracy".
:line
Math Operators :h4
Math operators are written in the usual way, where the "x" and "y" in
the examples can themselves be arbitrarily complex formulas, as in the
examples above. In this syntax, "x" and "y" can be scalar values or
per-atom vectors. For example, "ke/natoms" is the division of two
scalars, where "vy+vz" is the element-by-element sum of two per-atom
vectors of y and z velocities.
Operators are evaluated left to right and have the usual C-style
precedence: unary minus and unary logical NOT operator "!" have the
highest precedence, exponentiation "^" is next; multiplication and
division are next; addition and subtraction are next; the 4 relational
operators "<", "<=", ">", and ">=" are next; the two remaining
relational operators "==" and "!=" are next; then the logical AND
operator "&&"; and finally the logical OR operator "||" has the lowest
precedence. Parenthesis can be used to group one or more portions of
a formula and/or enforce a different order of evaluation than what
would occur with the default precedence.
The 6 relational operators return either a 1.0 or 0.0 depending on
whether the relationship between x and y is TRUE or FALSE. For
example the expression x<10.0 in an atom-style variable formula will
return 1.0 for all atoms whose x-coordinate is less than 10.0, and 0.0
for the others. The logical AND operator will return 1.0 if both its
arguments are non-zero, else it returns 0.0. The logical OR operator
will return 1.0 if either of its arguments is non-zero, else it
returns 0.0. The logical NOT operator returns 1.0 if its argument is
0.0, else it returns 0.0.
These relational and logical operators can be used as a masking or
selection operation in a formula. For example, the number of atoms
whose properties satifsy one or more criteria could be calculated by
taking the returned per-atom vector of ones and zeroes and passing it
to the "compute reduce"_compute_reduce.html command.
:line
Math Functions :h4
Math functions are specified as keywords followed by one or more
parenthesized arguments "x", "y", "z", each of which can themselves be
arbitrarily complex formulas. In this syntax, the arguments can
represent scalar values or per-atom vectors. In the latter case, the
math operation is performed on each element of the vector. For
example, "sqrt(natoms)" is the sqrt() of a scalar, where "sqrt(y*z)"
yields a per-atom vector with each element being the sqrt() of the
product of one atom's y and z coordinates.
Most of the math functions perform obvious operations. The ln() is
the natural log; log() is the base 10 log.
The random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z =
seed. It generates a uniform random number between lo and hi. The
normal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and
z = seed. It generates a Gaussian variate centered on mu with
variance sigma^2. In both cases the seed is used the first time the
internal random number generator is invoked, to initialize it. For
equal-style variables, every processor uses the same seed so that they
each generate the same sequence of random numbers. For atom-style
variables, a unique seed is created for each processor, based on the
specified seed. This effectively generates a different random number
for each atom being looped over in the atom-style variable.
IMPORTANT NOTE: Internally, there is just one random number generator
for all equal-style variables and one for all atom-style variables.
If you define multiple variables (of each style) which use the
random() or normal() math functions, then the internal random number
generators will only be initialized once, which means only one of the
specified seeds will determine the sequence of generated random
numbers.
The ceil(), floor(), and round() functions are those in the C math
library. Ceil() is the smallest integer not less than its argument.
Floor() if the largest integer not greater than its argument. Round()
is the nearest integer to its argument.
The ramp(x,y) function uses the current timestep to generate a value
linearly intepolated between the specified x,y values over the course
of a run, according to this formula:
value = x + (y-x) * (timestep-startstep) / (stopstep-startstep) :pre
The run begins on startstep and ends on stopstep. Startstep and
stopstep can span multiple runs, using the {start} and {stop} keywords
of the "run"_run.html command. See the "run"_run.html command for
details of how to do this.
The stagger(x,y) function uses the current timestep to generate a new
timestep. X,y > 0 and x > y is required. The generated timesteps
increase in a staggered fashion, as the sequence
x,x+y,2x,2x+y,3x,3x+y,etc. For any current timestep, the next
timestep in the sequence is returned. Thus if stagger(1000,100) is
used in a variable by the "dump_modify every"_dump_modify.html
command, it will generate the sequence of output timesteps:
100,1000,1100,2000,2100,3000,etc :pre
The logfreq(x,y,z) function uses the current timestep to generate a
new timestep. X,y,z > 0 and y < z is required. The generated
timesteps increase in a logarithmic fashion, as the sequence
x,2x,3x,...y*x,z*x,2*z*x,3*z*x,...y*z*x,z*z*x,2*z*x*x,etc. For any
current timestep, the next timestep in the sequence is returned. Thus
if logfreq(100,4,10) is used in a variable by the "dump_modify
every"_dump_modify.html command, it will generate the sequence of
output timesteps:
100,200,300,400,1000,2000,3000,4000,10000,20000,etc :pre
The vdisplace(x,y) function takes 2 arguments: x = coord0 and y =
velocity, and uses the elapsed time to change the coordinate value by
a linear displacement due to the applied velocity over the course of a
run, according to this formula:
value = coord0 + velocity*(timestep-startstep)*dt :pre
where dt = the timestep size.
The run begins on startstep. Startstep can span multiple runs, using
the {start} keyword of the "run"_run.html command. See the
"run"_run.html command for details of how to do this. Note that the
"thermo_style"_thermo_style.html keyword elaplong =
timestep-startstep.
The swiggle(x,y,z) and cwiggle(x,y,z) functions each take 3 arguments:
x = coord0, y = amplitude, z = period. They use the elapsed time to
oscillate the coordinate value by a sin() or cos() function over the
course of a run, according to one of these formulas, where
omega = 2 PI / period:
value = coord0 + Amplitude * sin(omega*(timestep-startstep)*dt)
value = coord0 + Amplitude * (1 - cos(omega*(timestep-startstep)*dt)) :pre
where dt = the timestep size.
The run begins on startstep. Startstep can span multiple runs, using
the {start} keyword of the "run"_run.html command. See the
"run"_run.html command for details of how to do this. Note that the
"thermo_style"_thermo_style.html keyword elaplong =
timestep-startstep.
:line
Group and Region Functions :h4
Group functions are specified as keywords followed by one or two
parenthesized arguments. The first argument is the group-ID. The
{dim} argument, if it exists, is {x} or {y} or {z}. The {dir}
argument, if it exists, is {xmin}, {xmax}, {ymin}, {ymax}, {zmin}, or
{zmax}. The {dimdim} argument, if it exists, is {xx} or {yy} or {zz}
or {xy} or {yz} or {xz}.
The group function count() is the number of atoms in the group. The
group functions mass() and charge() are the total mass and charge of
the group. Xcm() and vcm() return components of the position and
velocity of the center of mass of the group. Fcm() returns a
component of the total force on the group of atoms. Bound() returns
the min/max of a particular coordinate for all atoms in the group.
Gyration() computes the radius-of-gyration of the group of atoms. See
the "compute gyration"_compute_gyration.html command for a definition
of the formula. Angmom() returns components of the angular momentum
of the group of atoms around its center of mass. Torque() returns
components of the torque on the group of atoms around its center of
mass, based on current forces on the atoms. Inertia() returns one of
6 components of the inertia tensor of the group of atoms around its
center of mass. Omega() returns components of the angular velocity of
the group of atoms around its center of mass.
Region functions are specified exactly the same way as group functions
except they take an extra argument which is the region ID. The
function is computed for all atoms that are in both the group and the
region. If the group is "all", then the only criteria for atom
inclusion is that it be in the region.
:line
Special Functions :h4
Special functions take specific kinds of arguments, meaning their
arguments cannot be formulas themselves.
The sum(x), min(x), max(x), ave(x), and trap(x) functions each take 1
argument which is of the form "c_ID" or "c_ID\[N\]" or "f_ID" or
"f_ID\[N\]". The first two are computes and the second two are fixes;
the ID in the reference should be replaced by the ID of a compute or
fix defined elsewhere in the input script. The compute or fix must
produce either a global vector or array. If it produces a global
vector, then the notation without "\[N\]" should be used. If it
produces a global array, then the notation with "\[N\]" should be
used, when N is an integer, to specify which column of the global
array is being referenced.
These functions operate on the global vector of inputs and reduce it
to a single scalar value. This is analagous to the operation of the
"compute reduce"_compute_reduce.html command, which invokes the same
functions on per-atom and local vectors.
The sum() function calculates the sum of all the vector elements. The
min() and max() functions find the minimum and maximum element
respectively. The ave() function is the same as sum() except that it
divides the result by the length of the vector. The trap() function
is the same as sum() except the first and last elements are multiplied
by a weighting factor of 1/2 when performing the sum. This
effectively implements an integratiion via the trapezoidal rule on the
global vector of data. I.e. consider a set of points, equally spaced
by 1 in their x coordinate: (1,V1), (2,V2), ..., (N,VN), where the Vi
are the values in the global vector of length N. The integral from 1
to N of these points is trap(). When appropriately normalized by the
timestep size, this function is useful for calculating integrals of
time-series data, like that generated by the "fix
ave/correlate"_fix_ave_correlate.html command.
The gmask(x) function takes 1 argument which is a group ID. It
can only be used in atom-style variables. It returns a 1 for
atoms that are in the group, and a 0 for atoms that are not.
The rmask(x) function takes 1 argument which is a region ID. It can
only be used in atom-style variables. It returns a 1 for atoms that
are in the geometric region, and a 0 for atoms that are not.
The grmask(x,y) function takes 2 arguments. The first is a group ID,
and the second is a region ID. It can only be used in atom-style
variables. It returns a 1 for atoms that are in both the group and
region, and a 0 for atoms that are not in both.
:line
Atom Values and Vectors :h4
Atom values take a single integer argument I from 1 to N, where I is
the an atom-ID, e.g. x\[243\], which means use the x coordinate of the
atom with ID = 243.
Atom vectors generate one value per atom, so that a reference like
"vx" means the x-component of each atom's velocity will be used when
evaluating the variable. Note that other atom attributes can be used
as inputs to a variable by using the "compute
property/atom"_compute_property_atom.html command and then specifying
a quantity from that compute.
:line
Compute References :h4
Compute references access quantities calculated by a
"compute"_compute.html. The ID in the reference should be replaced by
the ID of a compute defined elsewhere in the input script. As
discussed in the doc page for the "compute"_compute.html command,
computes can produce global, per-atom, or local values. Only global
and per-atom values can be used in a variable. Computes can also
produce a scalar, vector, or array. An equal-style variable can only
use scalar values, which means a global scalar, or an element of a
global or per-atom vector or array. Atom-style variables can use the
same scalar values. They can also use per-atom vector values. A
vector value can be a per-atom vector itself, or a column of an
per-atom array. See the doc pages for individual computes to see what
kind of values they produce.
Examples of different kinds of compute references are as follows.
There is no ambiguity as to what a reference means, since computes
only produce global or per-atom quantities, never both.
c_ID: global scalar, or per-atom vector
c_ID\[I\]: Ith element of global vector, or atom I's value in per-atom vector, or Ith column from per-atom array
c_ID\[I\]\[J\]: I,J element of global array, or atom I's Jth value in per-atom array :tb(s=:)
If a variable containing a compute is evaluated
directly in an input script (not during a run), then the values
accessed by the compute must be current. See the discussion below
about "Variable Accuracy".
:line
Fix References :h4
Fix references access quantities calculated by a "fix"_compute.html.
The ID in the reference should be replaced by the ID of a fix defined
elsewhere in the input script. As discussed in the doc page for the
"fix"_fix.html command, fixes can produce global, per-atom, or local
values. Only global and per-atom values can be used in a variable.
Fixes can also produce a scalar, vector, or array. An equal-style
variable can only use scalar values, which means a global scalar, or
an element of a global or per-atom vector or array. Atom-style
variables can use the same scalar values. They can also use per-atom
vector values. A vector value can be a per-atom vector itself, or a
column of an per-atom array. See the doc pages for individual fixes
to see what kind of values they produce.
The different kinds of fix references are exactly the same as the
compute references listed in the above table, where "c_" is replaced
by "f_". Again, there is no ambiguity as to what a reference means,
since fixes only produce global or per-atom quantities, never both.
f_ID: global scalar, or per-atom vector
f_ID\[I\]: Ith element of global vector, or atom I's value in per-atom vector, or Ith column from per-atom array
f_ID\[I\]\[J\]: I,J element of global array, or atom I's Jth value in per-atom array :tb(s=:)
If a variable containing a fix is evaluated directly in an input
script (not during a run), then the values accessed by the fix should
be current. See the discussion below about "Variable Accuracy".
Note that some fixes only generate quantities on certain timesteps.
If a variable attempts to access the fix on non-allowed timesteps, an
error is generated. For example, the "fix ave/time"_fix_ave_time.html
command may only generate averaged quantities every 100 steps. See
the doc pages for individual fix commands for details.
:line
Variable References :h4
Variable references access quantities calulated by other variables,
which will cause those variables to be evaluated. The name in the
reference should be replaced by the name of a variable defined
elsewhere in the input script. As discussed on this doc page,
atom-style variables generate a per-atom vector of values; all other
variable styles generate a global scalar value. An equal-style
variable can reference a global scalar value produced by another
variable, but not a per-atom vector produced by an atom-style
variable. Atom-style variables can reference either global scalar or
per-atom vector values produced by kind of variable.
Examples of different kinds of variable references are as follows.
There is no ambiguity as to what a reference means, since variables
produce only a global scalar or a per-atom vectors, never both.
v_name: scalar, or per-atom vector
v_name\[I\]: atom I's value in per-atom vector :tb(s=:)
IMPORTANT NOTE: If you define variables in circular manner like this:
variable a equal v_b
variable b equal v_a
print $a :pre
then LAMMPS may run for a while when the print statement is invoked!
:line
[Immediate Evaluation of Variables:]
There is a difference between referencing a variable with a leading $
sign (e.g. $x or $\{abc\}) versus with a leading "v_" (e.g. v_x or
v_abc). The former can be used in any command, including a variable
command, to force the immediate evaluation of the referenced variable
and the substitution of its value into the command. The latter is a
required kind of argument to some commands (e.g. the "fix
ave/spatial"_fix_ave_spatial.html or "dump custom"_dump.html or
"thermo_style"_thermo_style.html commands) if you wish it to evaluate
a variable periodically during a run. It can also be used in a
variable formula if you wish to reference a second variable. The
second variable will be evaluated whenever the first variable is
evaluated.
As an example, suppose you use this command in your input script to
define the variable "v" as
variable v equal vol :pre
before a run where the simulation box size changes. You might think
this will assign the initial volume to the variable "v". That is not
the case. Rather it assigns a formula which evaluates the volume
(using the thermo_style keyword "vol") to the variable "v". If you
use the variable "v" in some other command like "fix
ave/time"_fix_ave_time.html then the current volume of the box will be
evaluated continuously during the run.
If you want to store the initial volume of the system, you can do it
this way:
variable v equal vol
variable v0 equal $v :pre
The second command will force "v" to be evaluated (yielding the
initial volume) and assign that value to the variable "v0". Thus the
command
thermo_style custom step v_v v_v0 :pre
would print out both the current and initial volume periodically
during the run.
Note that it is a mistake to enclose a variable formula in double
quotes if it contains variables preceeded by $ signs. For example,
variable vratio equal "$\{vfinal\}/$\{v0\}" :pre
This is because the quotes prevent variable substitution (see "this
section"_Section_commands.html#3_2 on parsing input script commands),
and thus an error will occur when the formula for "vratio" is
evaluated later.
:line
[Variable Accuracy:]
Obviously, LAMMPS attempts to evaluate variables containing formulas
({equal} and {atom} style variables) accurately whenever the
evaluation is performed. Depending on what is included in the
formula, this may require invoking a "compute"_compute.html, either
directly or indirectly via a thermo keyword, or accessing a value
previously calculated by a compute, or accessing a value calculated
and stored by a "fix"_fix.html. If the compute is one that calculates
the pressure or energy of the system, then these quantities need to be
tallied during the evaluation of the interatomic potentials (pair,
bond, etc) on timesteps that the variable will need the values.
LAMMPS keeps track of all of this during a "run"_run.html or "energy
minimization"_minimize.html. An error will be generated if you
attempt to evaluate a variable on timesteps when it cannot produce
accurate values. For example, if a "thermo_style
custom"_thermo_style.html command prints a variable which accesses
values stored by a "fix ave/time"_fix_ave_time.html command and the
timesteps on which thermo output is generated are not multiples of the
averaging frequency used in the fix command, then an error will occur.
An input script can also request variables be evaluated before or
after or in between runs, e.g. by including them in a
"print"_print.html command. In this case, if a compute is needed to
evaluate a variable (either directly or indirectly), LAMMPS will not
invoke the compute, but it will use a value previously calculated by
the compute, and can do this only if it is current. Fixes will always
provide a quantity needed by a variable, but the quantity may or may
not be current. This leads to one of three kinds of behavior:
(1) The variable may be evaluated accurately. If it contains
references to a compute or fix, and these values were calculated on
the last timestep of a preceeding run, then they will be accessed and
used by the variable and the result will be accurate.
(2) LAMMPS may not be able to evaluate the variable and generate an
error. For example, if the variable requires a quantity from a
"compute"_compute.html that is not current, LAMMPS will generate an
error. This means, for example, that such a variable cannot be
evaluated before the first run has occurred. Likewise, in between
runs, such a variable cannot be accessed unless it was evaluated on
the last timestep of the preceding run, e.g. by thermodynamic output.
One way to get around this problem is to perform a 0-timestep run
before using the variable. For example, these commands
variable t equal temp
print "Initial temperature = $t"
run 1000 :pre
will generate an error if the run is the first run specified in the
input script, because generating a value for the "t" variable requires
a compute for calculating the temperature to be invoked.
However, this sequence of commands would be fine:
run 0
variable t equal temp
print "Initial temperature = $t"
run 1000 :pre
The 0-timestep run initializes and invokes various computes, including
the one for temperature, so that the value it stores is current and
can be accessed by the variable "t" after the run has completed. Note
that a 0-timestep run does not alter the state of the system, so it
does not change the input state for the 1000-timestep run that
follows. Also note that the 0-timestep run must actually use and
invoke the compute in question (e.g. via "thermo"_thermo_style.html or
"dump"_dump.html output) in order for it to enable the compute to be
used in a variable after the run. Thus if you are trying to print a
variable that uses a compute you have defined, you could insure it was
invoked on the last timestep of the preceding run by including it in
thermodynamic output.
Unlike computes, "fixes"_fix.html will never generate an error if
their values are accessed by a variable in between runs. They always
return some value to the variable. However, the value may not be what
you expect if the fix has not yet calculated the quantity of interest
or it is not current. For example, the "fix indent"_fix_indent.html
command stores the force on the indenter. But this is not computed
until a run is performed. Thus if a variable attempts to print this
value before the first run, zeroes will be output. Again, performing
a 0-timestep run before printing the variable has the desired effect.
(3) The variable may be evaluated incorrectly. And LAMMPS may have
no way to detect this has occurred. Consider the following sequence
of commands:
pair_coeff 1 1 1.0 1.0
run 1000
pair_coeff 1 1 1.5 1.0
variable e equal pe
print "Final potential energy = $e" :pre
The first run is performed using one setting for the pairwise
potential defined by the "pair_style"_pair_style.html and
"pair_coeff"_pair_coeff.html commands. The potential energy is
evaluated on the final timestep and stored by the "compute
pe"_compute_pe.html compute (this is done by the
"thermo_style"_thermo_style.html command). Then a pair coefficient is
changed, altering the potential energy of the system. When the
potential energy is printed via the "e" variable, LAMMPS will use the
potential energy value stored by the "compute pe"_compute_pe.html
compute, thinking it is current. There are many other commands which
could alter the state of the system between runs, causing a variable
to evaluate incorrectly.
The solution to this issue is the same as for case (2) above, namely
perform a 0-timestep run before the variable is evaluated to insure
the system is up-to-date. For example, this sequence of commands
would print a potential energy that reflected the changed pairwise
coefficient:
pair_coeff 1 1 1.0 1.0
run 1000
pair_coeff 1 1 1.5 1.0
run 0
variable e equal pe
print "Final potential energy = $e" :pre
:line
[Restrictions:]
Indexing any formula element by global atom ID, such as an atom value,
requires the atom style to use a global mapping in order to look up
the vector indices. By default, only atom styles with molecular
information create global maps. The "atom_modify
map"_atom_modify.html command can override the default.
All {universe}- and {uloop}-style variables defined in an input script
must have the same number of values.
[Related commands:]
"next"_next.html, "jump"_jump.html, "include"_include.html,
"temper"_temper.html, "fix print"_fix_print.html, "print"_print.html
[Default:] none
diff --git a/examples/USER/awpmd/H/README b/examples/USER/awpmd/H/README
new file mode 100644
index 000000000..9ddce2c6f
--- /dev/null
+++ b/examples/USER/awpmd/H/README
@@ -0,0 +1 @@
+These examples demonstrates the use of AWPMD for H atom and H2 molecule.
diff --git a/examples/USER/awpmd/H/data.h_atom b/examples/USER/awpmd/H/data.h_atom
new file mode 100644
index 000000000..eda2da9b3
--- /dev/null
+++ b/examples/USER/awpmd/H/data.h_atom
@@ -0,0 +1,18 @@
+Created by AJB
+
+2 atoms
+2 atom types
+
+-0.529177 0.529177 xlo xhi
+-0.529177 0.529177 ylo yhi
+-0.529177 0.529177 zlo zhi
+
+Masses
+
+1 1.000794 # H nuclei mass
+2 0.000544616997098749 # electron mass
+
+Atoms
+
+1 1 1.0 0 0.000000 0 1.0 0.0 0.0 0.0 0.0 # 0-tag 1-type 2-q 3-spin 4-eradius 5-etag 6-cs_re 7-cs_im 8-x 9-y 10-z
+2 2 -1.0 1 0.861555 1 1.0 0.0 0.0 0.0 0.0
diff --git a/examples/USER/awpmd/H/data.h_molecule b/examples/USER/awpmd/H/data.h_molecule
new file mode 100644
index 000000000..f16454182
--- /dev/null
+++ b/examples/USER/awpmd/H/data.h_molecule
@@ -0,0 +1,25 @@
+Created by AJB
+
+4 atoms
+2 atom types
+
+-0.529177 0.529177 xlo xhi
+-0.529177 0.529177 ylo yhi
+-0.529177 0.529177 zlo zhi
+
+Masses
+
+1 1.000794 # H nuclei mass
+2 0.000544616997098749 # electron mass
+
+
+
+Atoms
+
+1 1 1.0 0 0.000000 0 1.0 0.0 -0.1322943 0.000000 0.000000 # 0-tag 1-type 2-q 3-spin 4-eradius 5-etag 6-cs_re 7-cs_im 8-x 9-y 10-z
+2 2 -1.0 1 0.1 3 1.0 0.0 -0.1322943 0.000000 0.000000
+3 1 1.0 0 0.000000 0 1.0 0.0 0.1322943 0.000000 0.000000
+4 2 -1.0 -1 0.1 4 1.0 0.0 0.1322943 0.000000 0.000000
+
+
+5 2 -1.0 -1 0.1 4 1.0 0.0 0.264589 0.000000 0.000000 # additional WP for the second electron
diff --git a/examples/USER/awpmd/H/in.h_atom b/examples/USER/awpmd/H/in.h_atom
new file mode 100644
index 000000000..4292dec1b
--- /dev/null
+++ b/examples/USER/awpmd/H/in.h_atom
@@ -0,0 +1,40 @@
+variable sname index h_atom
+log ${sname}.spe.log
+
+units real
+newton on
+boundary p p p
+processors 1 * *
+
+
+atom_style wavepacket
+
+read_data data.${sname}
+
+#neighbor 2.0 nsq
+
+pair_style awpmd/cut -1. hartree ermscale 0.99 free flex_press
+pair_coeff * *
+
+
+
+timestep 0.001
+
+fix 1 all nve/awpmd
+
+communicate single vel yes
+
+compute energies all pair awpmd/cut
+variable eke equal c_energies[1]
+variable epauli equal c_energies[2]
+variable estatics equal c_energies[3]
+variable errestrain equal c_energies[4]
+
+compute peratom all stress/atom
+compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
+variable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
+
+thermo 1
+thermo_style custom step etotal pe ke v_eke v_epauli v_estatics v_errestrain temp press v_press
+
+run 0
diff --git a/examples/USER/awpmd/H/in.h_molecule b/examples/USER/awpmd/H/in.h_molecule
new file mode 100644
index 000000000..501846663
--- /dev/null
+++ b/examples/USER/awpmd/H/in.h_molecule
@@ -0,0 +1,40 @@
+variable sname index h_molecule
+log ${sname}.spe.log
+
+units real
+newton on
+boundary p p p
+processors 1 * *
+
+
+atom_style wavepacket
+
+read_data data.${sname}
+
+#neighbor 2.0 nsq
+
+pair_style awpmd/cut -1. hartree ermscale 0.99 free flex_press
+pair_coeff * *
+
+
+
+timestep 0.001
+
+fix 1 all nve/awpmd
+
+communicate single vel yes
+
+compute energies all pair awpmd/cut
+variable eke equal c_energies[1]
+variable epauli equal c_energies[2]
+variable estatics equal c_energies[3]
+variable errestrain equal c_energies[4]
+
+compute peratom all stress/atom
+compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
+variable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
+
+thermo 1
+thermo_style custom step etotal pe ke v_eke v_epauli v_estatics v_errestrain temp press v_press
+
+run 0
diff --git a/examples/dipole/in.dipole b/examples/dipole/in.dipole
index c8f6e887e..5e6320680 100644
--- a/examples/dipole/in.dipole
+++ b/examples/dipole/in.dipole
@@ -1,34 +1,37 @@
# Point dipoles in a 2d box
units lj
atom_style hybrid sphere dipole
dimension 2
lattice sq2 0.7
region box block 0 10 0 10 -0.5 0.5
create_box 1 box
create_atoms 1 box
+# need both mass settings due to hybrid atom style
+
+mass 1 1.0
set group all mass 1.0
set group all dipole/random 98934 0.75
velocity all create 0.0 87287 mom no
pair_style dipole/cut 2.5
pair_coeff * * 1.0 1.0
neighbor 0.3 bin
neigh_modify delay 0
fix 1 all nve/sphere update dipole
fix 2 all enforce2d
timestep 0.005
compute erot all erotate/sphere
thermo_style custom step temp epair c_erot etotal press
thermo 500
dump 1 all custom 200 dump.dipole id type x y z mux muy muz
run 10000
diff --git a/lib/README b/lib/README
index 192589c8b..ffb3e3f44 100644
--- a/lib/README
+++ b/lib/README
@@ -1,21 +1,23 @@
This directory contains libraries that can be linked with when
building LAMMPS. The library itself must be built first, so that a
lib*.a file exists for LAMMPS to link against.
Each library directory contains a README with additional info. You
will need to copy one of the Makefile.* files to Makefile before
building a library. If a Makefile.* suitable for your machine does
not exist, you will need to edit one of the existing Makefiles.
The libraries included in the LAMMPS distribution are the following:
atc atomistic-to-continuum methods
from Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia)
-gpu graphical processor (GPU) routines, currently NVIDIA specific,
+awpmd antisymmetrized wave packet molecular dynamics
+ from Ilya Valuev (JIHT RAS)
+gpu graphical processor (GPU) routines, currently NVIDIA specific
from Mike Brown (Sandia)
poems POEMS rigid-body integration package
from RPI
meam modified embedded atom method (MEAM) potential
from Greg Wagner (Sandia)
reax ReaxFF potential
from Adri van Duin (Penn State) and Aidan Thompson (Sandia)
diff --git a/lib/awpmd/Makefile.openmpi b/lib/awpmd/Makefile.openmpi
new file mode 100644
index 000000000..d70754ef1
--- /dev/null
+++ b/lib/awpmd/Makefile.openmpi
@@ -0,0 +1,64 @@
+SHELL = /bin/sh
+
+# ------ FILES ------
+
+SRC = \
+ ivutils/src/logexc.cpp \
+ systems/interact/TCP/wpmd.cpp \
+ systems/interact/TCP/wpmd_split.cpp
+
+INC = \
+ cerf.h \
+ cerf2.h \
+ cerf_octave.h \
+ cvector_3.h \
+ lapack_inter.h \
+ logexc.h \
+ pairhash.h \
+ refobj.h \
+ tcpdefs.h \
+ vector_3.h \
+ wavepacket.h \
+ wpmd.h \
+ wpmd_split.h
+
+# ------ DEFINITIONS ------
+
+LIB = libawpmd.a
+OBJ = $(SRC:.cpp=.o)
+
+# ------ SETTINGS ------
+
+# include any MPI settings needed for the ATC library to build with
+# the same MPI library that LAMMPS is built with
+
+CC = mpic++
+CCFLAGS = -O -Isystems/interact/TCP/ -Isystems/interact -Iivutils/include
+ARCHIVE = ar
+ARCHFLAG = -rc
+DEPFLAGS = -M
+#LINK =
+#LINKFLAGS =
+USRLIB =
+SYSLIB =
+
+# ------ MAKE PROCEDURE ------
+
+lib: $(OBJ)
+ $(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
+
+# ------ COMPILE RULES ------
+
+%.o:%.cpp
+ $(CC) $(CCFLAGS) -c $< -o $@
+%.d:%.cpp
+ $(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
+
+# ------ DEPENDENCIES ------
+
+DEPENDS = $(OBJ:.o=.d)
+
+# ------ CLEAN ------
+
+clean:
+ rm *.d *~ $(OBJ) $(LIB)
diff --git a/lib/awpmd/README b/lib/awpmd/README
new file mode 100644
index 000000000..0806a31b3
--- /dev/null
+++ b/lib/awpmd/README
@@ -0,0 +1,29 @@
+AWPMD (Antisymmetrized Wave Packet Molecular Dynamics) library
+
+Ilya Valuev, Igor Morozov, JIHT RAS
+valuev at physik.hu-berlin.de
+June 2011
+
+--------------
+
+This is version 0.9 of the AWPMD library taken from JIHT GridMD project.
+It contains interface to calculate electronic and electron-ion Hamiltonian,
+norm matrix and forces for AWPMD method.
+
+
+This library must be built with a C++ compiler, before LAMMPS is
+built, so LAMMPS can link against it.
+
+Build the library using one of the provided Makefiles or creating your
+own, specific to your compiler and system. For example:
+
+make -f Makefile.openmpi++
+
+If the build is successful, you should end up with a libawpmd.a file.
+
+--------------
+
+AWPMD is an open source program distributed under the terms
+of wxWidgets Library License (see license directory for details).
+
+
diff --git a/lib/awpmd/ivutils/include/cerf.h b/lib/awpmd/ivutils/include/cerf.h
new file mode 100644
index 000000000..207fe8f45
--- /dev/null
+++ b/lib/awpmd/ivutils/include/cerf.h
@@ -0,0 +1,245 @@
+# ifndef CERF_H
+# define CERF_H
+
+# include <complex>
+# include <cmath>
+/*
+
+Copyright (C) 1998, 1999 John Smith
+
+This file is part of Octave.
+Or it might be one day....
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+*/
+
+// Put together by John Smith john at arrows dot demon dot co dot uk,
+// using ideas by others.
+//
+// Calculate erf(z) for complex z.
+// Three methods are implemented; which one is used depends on z.
+//
+// The code includes some hard coded constants that are intended to
+// give about 14 decimal places of accuracy. This is appropriate for
+// 64-bit floating point numbers.
+//
+// Oct 1999: Fixed a typo that in
+// const Complex cerf_continued_fraction( const Complex z )
+// that caused erroneous answers for erf(z) where real(z) negative
+//
+
+
+//#include <math.h>
+//#include <octave/oct.h>
+
+//#include "f77-fcn.h"
+
+//
+// Abramowitz and Stegun: (eqn: 7.1.14) gives this continued
+// fraction for erfc(z)
+//
+// erfc(z) = sqrt(pi).exp(-z^2). 1 1/2 1 3/2 2 5/2
+// --- --- --- --- --- --- ...
+// z + z + z + z + z + z +
+//
+// This is evaluated using Lentz's method, as described in the narative
+// of Numerical Recipes in C.
+//
+// The continued fraction is true providing real(z)>0. In practice we
+// like real(z) to be significantly greater than 0, say greater than 0.5.
+//
+template< class Complex>
+const Complex cerfc_continued_fraction( const Complex z )
+{
+ double tiny = 1e-20 ; // a small number, large enough to calculate 1/tiny
+ double eps = 1e-15 ; // large enough so that 1.0+eps > 1.0, when using
+ // the floating point arithmetic
+ //
+ // first calculate z+ 1/2 1
+ // --- --- ...
+ // z + z +
+ Complex f(z) ;
+ Complex C(f) ;
+ Complex D(0.0) ;
+ Complex delta ;
+ double a ;
+
+ a = 0.0 ;
+ do
+ {
+ a = a + 0.5 ;
+ D = z + a*D ;
+ C = z + a/C ;
+
+ if (D.real() == 0.0 && D.imag() == 0.0)
+ D = tiny ;
+
+ D = 1.0 / D ;
+
+ delta = (C * D) ;
+
+ f = f * delta ;
+
+ } while (abs(1.0-delta) > eps ) ;
+
+ //
+ // Do the first term of the continued fraction
+ //
+ f = 1.0 / f ;
+
+ //
+ // and do the final scaling
+ //
+ f = f * exp(-z*z)/ sqrt(M_PI) ;
+
+ return f ;
+}
+
+template< class Complex>
+const Complex cerf_continued_fraction( const Complex z )
+{
+ // warning("cerf_continued_fraction:");
+ if (z.real() > 0)
+ return 1.0 - cerfc_continued_fraction( z ) ;
+ else
+ return -1.0 + cerfc_continued_fraction( -z ) ;
+}
+
+//
+// Abramawitz and Stegun, Eqn. 7.1.5 gives a series for erf(z)
+// good for all z, but converges faster for smallish abs(z), say abs(z)<2.
+//
+template< class Complex>
+const Complex cerf_series( const Complex z )
+{
+ double tiny = 1e-20 ; // a small number compared with 1.
+ // warning("cerf_series:");
+ Complex sum(0.0) ;
+ Complex term(z) ;
+ Complex z2(z*z) ;
+
+ for (int n=0; n<3 || abs(term) > abs(sum)*tiny; n++)
+ {
+ sum = sum + term / (2*n+1) ;
+ term = -term * z2 / (n+1) ;
+ }
+
+ return sum * 2.0 / sqrt(M_PI) ;
+}
+
+//
+// Numerical Recipes quotes a formula due to Rybicki for evaluating
+// Dawson's Integral:
+//
+// exp(-x^2) integral exp(t^2).dt = 1/sqrt(pi) lim sum exp(-(z-n.h)^2) / n
+// 0 to x h->0 n odd
+//
+// This can be adapted to erf(z).
+//
+template< class Complex>
+const Complex cerf_rybicki( const Complex z )
+{
+ // warning("cerf_rybicki:");
+ double h = 0.2 ; // numerical experiment suggests this is small enough
+
+ //
+ // choose an even n0, and then shift z->z-n0.h and n->n-h.
+ // n0 is chosen so that real((z-n0.h)^2) is as small as possible.
+ //
+ int n0 = 2*(int) (floor( z.imag()/(2*h) + 0.5 )) ;
+
+ Complex z0( 0.0, n0*h ) ;
+ Complex zp(z-z0) ;
+ Complex sum(0.0,0.0) ;
+ //
+ // limits of sum chosen so that the end sums of the sum are
+ // fairly small. In this case exp(-(35.h)^2)=5e-22
+ //
+ //
+ for (int np=-35; np<=35; np+=2)
+ {
+ Complex t( zp.real(), zp.imag()-np*h) ;
+ Complex b( exp(t*t) / (np+n0) ) ;
+ sum += b ;
+ }
+
+ sum = sum * 2 * exp(-z*z) / M_PI ;
+
+ return Complex(-sum.imag(), sum.real()) ;
+}
+
+template< class Complex>
+const Complex cerf( const Complex z )
+{
+ //
+ // Use the method appropriate to size of z -
+ // there probably ought to be an extra option for NaN z, or infinite z
+ //
+ //
+ if (abs(z) < 2.0)
+ return cerf_series( z ) ;
+ else if (abs(z.real()) < 0.5)
+ return cerf_rybicki( z ) ;
+ else
+ return cerf_continued_fraction( z ) ;
+}
+
+//
+// Footnote:
+//
+// Using the definitions from Abramowitz and Stegun (7.3.1, 7.3.2)
+// The fresnel intgerals defined as:
+//
+// / t=x
+// C(x) = | cos(pi/2 t^2) dt
+// /
+// t=0
+//
+// and
+// / t=x
+// S(x) = | sin(pi/2 t^2) dt
+// /
+// t=0
+//
+// These can be derived from erf(x) using 7.3.22
+//
+// C(z) +iS(z) = (1+i) erf( sqrt(pi)/2 (1-i) z )
+// -----
+// 2
+//
+// --------------------------------------------------------------------------
+// Some test examples -
+// comparative data taken from Abramowitz and Stegun table 7.9.
+// Table 7.9 tabulates w(z), where w(z) = exp(-z*z) erfc(iz)
+// I have copied twelve values of w(z) from the table, and separately
+// calculated them using this code. The results are identical.
+//
+// x y Abramowitz & Stegun | Octave Calculations
+// w(x+iy) | w(x+iy) cerf ( i.(x+iy))
+// 0.2 0.2 0.783538+0.157403i | 0.783538 +0.157403 0.23154672 -0.219516
+// 0.2 0.7 0.515991+0.077275i | 0.515991 +0.077275 0.69741968 -0.138277
+// 0.2 1.7 0.289309+0.027154i | 0.289309 +0.027154 0.98797507 -0.011744
+// 0.2 2.7 0.196050+0.013002i | 0.196050 +0.013002 0.99994252 -0.000127
+// 1.2 0.2 0.270928+0.469488i | 0.270928 +0.469488 0.90465623 -2.196064
+// 1.2 0.7 0.280740+0.291851i | 0.280740 +0.291851 1.82926135 -0.639343
+// 1.2 1.7 0.222436+0.129684i | 0.222436 +0.129684 1.00630308 +0.060067
+// 1.2 2.7 0.170538+0.068617i | 0.170538 +0.068617 0.99955699 -0.000290
+// 2.2 0.2 0.041927+0.287771i | 0.041927 +0.287771 24.70460755-26.205981
+// 2.2 0.7 0.099943+0.242947i | 0.099943 +0.242947 9.88734713+18.310797
+// 2.2 1.7 0.135021+0.153161i | 0.135021 +0.153161 1.65541359 -1.276707
+// 2.2 2.7 0.127900+0.096330i | 0.127900 +0.096330 0.98619434 +0.000564
+
+# endif
\ No newline at end of file
diff --git a/lib/awpmd/ivutils/include/cvector_3.h b/lib/awpmd/ivutils/include/cvector_3.h
new file mode 100644
index 000000000..be2296275
--- /dev/null
+++ b/lib/awpmd/ivutils/include/cvector_3.h
@@ -0,0 +1,75 @@
+/*s***************************************************************************
+ *
+ * Copyright (c), Ilya Valuev 2005 All Rights Reserved.
+ *
+ * Author : Ilya Valuev, MIPT, Moscow, Russia
+ *
+ * Project : GridMD, ivutils
+ *
+ *
+ *
+ *****************************************************************************/
+/*r @file vector_3.h @brief ðàáîòà ñ òðåõìåðíûìè êîìïëåêñíûìè âåêòîðàìè
+*/
+
+# ifndef CVECTOR_3A_H
+# define CVECTOR_3A_H
+
+# include <complex>
+# include <cmath>
+# include "vector_3.h"
+
+using namespace std;
+
+typedef complex<vec_type> cdouble;
+typedef Vector_Nt<cdouble,3> cVector_3;
+
+//------------------------------------------------------
+// Overloads for cdouble
+//------------------------------------------------------
+
+inline cdouble operator*(int a, const cdouble &b){
+ return ((double)a)*b;
+}
+inline cdouble operator*(const cdouble &b,int a){
+ return a*b;
+}
+inline cdouble operator/(const cdouble &b,int a){
+ return (1./a)*b;
+}
+
+inline cdouble operator/(int a, const cdouble &b){
+ return (a)*(1./b);
+}
+
+//------------------------------------------------------
+// Overloads for cVector_3
+//------------------------------------------------------
+
+inline cVector_3 operator*(const cdouble &a, const Vector_3 &v){
+ return cVector_3(a*v[0], a*v[1], a*v[2]); // a*cVector_3(v);
+}
+
+inline cVector_3 operator*(const Vector_3 &v, const cdouble &a){
+ return a*v;
+}
+
+inline Vector_3 real(const cVector_3 &cv){
+ return Vector_3(cv[0].real(), cv[1].real(), cv[2].real());
+}
+
+inline Vector_3 imag(const cVector_3 &cv){
+ return Vector_3(cv[0].imag(), cv[1].imag(), cv[2].imag());
+}
+
+inline cVector_3 conj(const cVector_3 &cv){
+ return cVector_3(conj(cv[0]), conj(cv[1]), conj(cv[2]));
+}
+
+inline cVector_3 rcell1(cVector_3& cv, Vector_3 &cell, int flags=0xffff) {
+ return cVector_3( real(cv).rcell1(cell, flags) ) + cdouble(0,1)*imag(cv);
+}
+
+
+# endif // __CVECTOR_3A_H
+
diff --git a/lib/awpmd/ivutils/include/erf.h b/lib/awpmd/ivutils/include/erf.h
new file mode 100644
index 000000000..b1cdbcb9d
--- /dev/null
+++ b/lib/awpmd/ivutils/include/erf.h
@@ -0,0 +1,19 @@
+# ifndef ERF_H
+# define ERF_H
+
+# ifdef _WIN32
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+double erf(double x);
+double erfc(double x);
+
+# ifdef __cplusplus
+}
+# endif
+
+# endif
+
+# endif
diff --git a/lib/awpmd/ivutils/include/lapack_inter.h b/lib/awpmd/ivutils/include/lapack_inter.h
new file mode 100644
index 000000000..743c5e605
--- /dev/null
+++ b/lib/awpmd/ivutils/include/lapack_inter.h
@@ -0,0 +1,53 @@
+// Interface for LAPACK function
+
+# ifndef LAPACK_INTER_H
+# define LAPACK_INTER_H
+
+#include <complex>
+typedef int lapack_int;
+typedef complex<float> lapack_complex_float;
+typedef complex<double> lapack_complex_double;
+
+#ifdef _WIN32
+
+ //#define MKL_Complex8 lapack_complex_float
+ //#define MKL_Complex16 lapack_complex_double
+ #include "mkl.h"
+
+ inline void ZPPTRF( char* uplo, const lapack_int* n, lapack_complex_double* ap, lapack_int* info ) {
+ ZPPTRF(uplo, (int*)n, (MKL_Complex16*)ap, (int*)info);
+ }
+ inline void ZPPTRI( char* uplo, const lapack_int* n, lapack_complex_double* ap, lapack_int* info ){
+ ZPPTRI(uplo, (int*)n, (MKL_Complex16*)ap, (int*)info);
+ }
+
+#else
+
+ #define DGETRF dgetrf_
+ #define DGETRS dgetrs_
+ #define DGETRI dgetri_
+ #define ZPPTRF zpptrf_
+ #define ZPPTRI zpptri_
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif /* __cplusplus */
+ void dgetrf_( const lapack_int* m, const lapack_int* n, double* a, const lapack_int* lda,
+ lapack_int* ipiv, lapack_int* info );
+ void dgetrs_( const char* trans, const lapack_int* n, const lapack_int* nrhs,
+ const double* a, const lapack_int* lda, const lapack_int* ipiv,
+ double* b, const lapack_int* ldb, lapack_int* info );
+ void dgetri_( const lapack_int* n, double* a, const lapack_int* lda,
+ const lapack_int* ipiv, double* work, const lapack_int* lwork,
+ lapack_int* info );
+ void zpptrf_( const char* uplo, const lapack_int* n, lapack_complex_double* ap,
+ lapack_int* info );
+ void zpptri_( const char* uplo, const lapack_int* n, lapack_complex_double* ap,
+ lapack_int* info );
+ #ifdef __cplusplus
+ }
+ #endif /* __cplusplus */
+
+#endif
+
+#endif /* lapack_intER_H */
diff --git a/lib/awpmd/ivutils/include/logexc.h b/lib/awpmd/ivutils/include/logexc.h
new file mode 100644
index 000000000..8d6bc50fe
--- /dev/null
+++ b/lib/awpmd/ivutils/include/logexc.h
@@ -0,0 +1,315 @@
+# ifndef LOGEXC_H
+# define LOGEXC_H
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdexcept>
+#include <string>
+
+# ifndef _WIN32
+# include <typeinfo>
+# endif
+
+
+/// this specifies whether to put file/line info in error messages
+# ifndef LINFO
+# define LINFO 1
+# endif
+
+using namespace std;
+
+/// verbosity levels
+enum vbLEVELS{
+ vblNONE = 0, ///< completely silent
+ vblFATAL = 0x1, ///< report fatal errors
+ vblOERR = 0x2, ///< report other errors
+ vblERR = vblFATAL|vblOERR, ///< report all errors
+ vblWARN = 0x4, ///< report warnings
+ vblALLBAD = vblWARN|vblERR, ///< report all errors and warnings
+ vblMESS1 = 0x8, ///< report messages of level 1 (important)
+ vblMESS2 = 0x10, ///< report messages of level 2 (less important)
+ vblMESS3 = 0x20, ///< report messages of level 3 (not important)
+ vblMESS4 = 0x40, ///< report messages of level 4 (anything possible)
+ vblALLMESS = vblMESS1|vblMESS2|vblMESS3|vblMESS4, ///< report all messages
+ vblPROGR = 0x80, ///< report progress
+ vblALL = 0xffff
+};
+
+
+
+/// traits structure to deduce exception level and name from exception class
+/// by default all exceptions have vblFATAL level
+template<class exc_t>
+struct log_exception_traits{
+ /// exeption level according to the vbLEVELS
+ static int level(const exc_t &signal){ return vblFATAL; }
+ /// the string name of exception category
+ static string name(const exc_t &signal){ return typeid(exc_t).name();}
+ /// adds some more explanations to the description
+ /// default behaviour: nothing done
+ static exc_t add_words(const exc_t &orig, const char *words){
+ return orig;
+ }
+};
+
+
+
+
+/// integer exceptions have the level equal to their value
+template<>
+struct log_exception_traits<int>{
+ /// exeption level according to the vbLEVELS
+ static int level(const int &signal){ return signal; }
+ /// the string name of exception category
+ static string name(const int &signal){
+ if(signal&vblFATAL)
+ return "fatal error";
+ else if(signal&vblOERR)
+ return "error";
+ else if(signal&vblWARN)
+ return "warning";
+ else
+ return "";
+ /*
+ else if(signal&vblALLMESS)
+ return "message";
+ else if(signal&vblPROGR)
+ return "progress report";
+ else
+ return "integer exception";*/
+ }
+ /// default behaviour: nothing done
+ static int add_words(const int &orig, const char *words){
+ return orig;
+ }
+};
+
+/// vbLEVELS exceptions act as integers
+template<>
+struct log_exception_traits<enum vbLEVELS>{
+ static int level(const enum vbLEVELS &signal){ return log_exception_traits<int>::level(signal); }
+ static string name(const enum vbLEVELS &signal){ return log_exception_traits<int>::name(signal); }
+ static enum vbLEVELS add_words(const enum vbLEVELS &orig, const char *words){
+ return orig;
+ }
+};
+
+
+
+
+/// Logger class to control (computational) function behaviour when something requiring user attention has happened.
+/// message(signal,errcode, text) is used to either throw an exception or return errorcode
+/// At first, the the level of error is determined via log_exception_traits<>::level(signal)
+/// For integer (enum) signals the level is the signal itself.
+/// Then text is printed, if signal level is listed in output levels or (or in extra outlevels, if they are set)
+/// via log_text() function.
+/// If level has vblERR bit, the behaviour is controlled by the flag specified in set_throw(flag):
+/// flag=0: nothing done;
+/// flag=1: calls add_words() for signal and throws signal;
+/// flag=2: throws pair<>(errcode, text);
+/// flag=3: throws errcode.
+/// Then, if the level is listed in stop_levels (or in extra stop levels, if they are set), the program is aborted,
+/// otherwise errcode is returned;
+/// The function set_levels(out_levels,stop_levels) is used to specify bitflags for the levels which
+/// require message output or/and program termination. Stop level has effect only when exceptions are not thrown.
+/// The function extra_levels(eout_levels,estop_levels) is used to temporarily set the corresponding levels,
+/// they are unset (the original levels are restored) by calling extra_levels(0,0).
+class message_logger {
+ // global message is a friend
+ template<class exc_t>
+ friend int message(const exc_t &signal, int errcode, const char *what, ...);
+protected:
+ string descriptor;
+ int throw_ex;
+ int outlevel, eoutlevel;
+ int stoplevel, estoplevel;
+
+ static message_logger *glogp;
+ /// used to restore the previous global logger
+ message_logger *prev, *next;
+public:
+
+ message_logger(const string &descriptor_="", int out_level=vblALLBAD|vblMESS1,
+ int stop_level=vblFATAL, int throw_exceptions=0, int use_globally=0)
+ :descriptor(descriptor_),prev(NULL),next(NULL){
+ set_throw(throw_exceptions);
+ set_levels(out_level,stop_level);
+ extra_levels(0,0);
+ if(use_globally){
+ set_global(true);
+ }
+ }
+
+ /// returns a reference to global logger
+ /// if not set, links with default message_logger
+ static message_logger &global();
+
+ /// sets/unsets this logger as the global logger
+ int set_global(bool set){
+ if(set){
+ if(prev) // already set
+ return -1;
+ if(glogp)
+ glogp->next=this;
+ prev=glogp;
+ glogp=this;
+ }
+ else{
+ if(glogp!=this) // was not set as the global
+ return -1;
+ glogp=prev;
+ if(glogp)
+ glogp->next=NULL;
+ prev=NULL;
+ }
+ return 1;
+ }
+
+ virtual void set_throw(int throw_exceptions){
+ throw_ex=throw_exceptions;
+ }
+
+ virtual void set_levels(int out_level=vblALLBAD|vblMESS1, int stop_level=vblFATAL){
+ outlevel=out_level;
+ stoplevel=stop_level;
+ }
+
+ /// nonzero extra levels are applied instead of set ones
+ virtual void extra_levels(int out_level=vblALLBAD|vblMESS1, int stop_level=vblFATAL){
+ eoutlevel=out_level;
+ estoplevel=stop_level;
+ }
+
+ template<class exc_t>
+ int message(const exc_t &signal, int errcode, const char *what, ...){
+ int level=log_exception_traits<exc_t>::level(signal);
+ char buff[1024];
+ if(level&(eoutlevel ? eoutlevel : outlevel)){ //needs to print a message
+ va_list args;
+ va_start(args,what);
+ vsnprintf(buff,1024,what,args);
+ log_text(level,log_exception_traits<exc_t>::name(signal).c_str(),buff);
+ }
+ if(level&vblERR){
+ if(throw_ex==1) // throws exc_t exception
+ throw log_exception_traits<exc_t>::add_words(signal,buff);
+ else if(throw_ex==2) // throws pair<>(int,const char*) exception
+ throw make_pair(errcode,what);
+ else if(throw_ex==3) // throws int exception
+ throw errcode;
+ }
+ if(level&(estoplevel ? estoplevel: stoplevel) ){ // needs to stop
+ exit(errcode);
+ }
+ return errcode;
+ }
+
+ virtual void log_text(int level, const char *messtype, const char *messtext){
+ if(descriptor!="") // descriptor is used as header
+ printf("%s:\n",descriptor.c_str());
+ if(messtype!="")
+ printf("%s: ",messtype);
+ printf("%s\n",messtext);
+ }
+
+ /// checks that the deleted one is not in global logger chain
+ ~message_logger(){
+ if(prev){
+ prev->next=next;
+ if(next)
+ next->prev=prev;
+ }
+ set_global(false);
+ }
+};
+
+/// global message function
+template<class exc_t>
+int message(const exc_t &signal, int errcode, const char *what, ...){
+ if(message_logger::glogp){
+ va_list args;
+ va_start(args,what);
+ char buff[1024];
+ vsnprintf(buff,1024,what,args);
+ return message_logger::glogp->message(signal,errcode,buff);
+ }
+ else
+ return -1;
+}
+
+/// message logger for which std and error streams may be specified
+class stdfile_logger: public message_logger {
+protected:
+ FILE *fout, *ferr;
+public:
+ stdfile_logger(const string &descriptor_="", int throw_exceptions=0,
+ FILE *out=stdout, FILE *err=stderr,
+ int out_level=vblALLBAD|vblMESS1,int stop_level=vblFATAL,
+ int use_globally=0)
+ : message_logger(descriptor_,out_level,stop_level,throw_exceptions,use_globally),fout(NULL), ferr(NULL){
+ set_out(out);
+ set_err(err);
+ }
+ virtual void set_out(FILE *out, int close_prev=0){
+ if(close_prev && fout && fout!=stderr && fout !=stdout)
+ fclose(fout);
+ fout=out;
+ }
+
+ virtual void set_err(FILE *err, int close_prev=0){
+ if(close_prev && ferr && ferr!=stderr && ferr !=stdout)
+ fclose(ferr);
+ ferr=err;
+ }
+
+ virtual void log_text(int level, const char *messtype, const char *messtext){
+ FILE *f= (level&vblALLBAD ? ferr : fout);
+ if(!f)
+ return;
+ if(descriptor!="") // descriptor is used as header
+ fprintf(f,"%s:\n",descriptor.c_str());
+ if(string(messtype)!="")
+ fprintf(f,"%s: ",messtype);
+ fprintf(f,"%s\n",messtext);
+ }
+};
+
+/// format a string
+const char *fmt(const char *format,...);
+
+/// macros with common usage
+#define LOGFATAL(code,text,lineinfo) ((lineinfo) ? ::message(vblFATAL,(code)," %s at %s:%d",(text),__FILE__,__LINE__) : \
+ (::message(vblFATAL,(code)," %s",(text))) )
+
+
+#define LOGERR(code,text,lineinfo) ((lineinfo) ? ::message(vblOERR,(code)," %s at %s:%d",(text),__FILE__,__LINE__) : \
+ (::message(vblOERR,(code)," %s",(text))) )
+
+
+#define LOGMSG(cat,text,lineinfo) ((lineinfo) ? ::message((cat),0," %s at %s:%d",(text),__FILE__,__LINE__) : \
+ (::message((cat),0," %s",(text))) )
+
+
+
+# if 0 /// did not work
+
+/// this may be used to inherit exceptions
+/// where level and name are defined whithin a class
+struct log_exception {
+ /// exeption level according to the vbLEVELS
+ static int level(const log_exception &signal){ return vblFATAL; }
+ /// the string name of exception category
+ static string name(const log_exception &signal){ return "undefined exception";}
+};
+
+/// log_exceptions act as themselves
+template<>
+struct log_exception_traits<log_exception>{
+ static int level(const log_exception &signal){ return log_exception::level(signal); }
+ static string name(const log_exception &signal){ return log_exception::name(signal); }
+};
+
+# endif
+
+
+# endif
diff --git a/lib/awpmd/ivutils/include/pairhash.h b/lib/awpmd/ivutils/include/pairhash.h
new file mode 100644
index 000000000..f72c544af
--- /dev/null
+++ b/lib/awpmd/ivutils/include/pairhash.h
@@ -0,0 +1,683 @@
+/*e***************************************************************************
+ *
+ * Copyright (c), Ilya Valuev 2005 All Rights Reserved.
+ *
+ * Author : Ilya Valuev, MIPT, Moscow, Russia
+ *
+ * Project : ivutils
+ *
+ *
+ *****************************************************************************/
+/*e****************************************************************************
+ * $Log: pairhash.h,v $
+ * Revision 1.3 2011/06/11 18:18:50 morozov
+ * USER-AWPMD compiles on Linux now!
+ *
+ * Revision 1.2 2011/06/11 16:53:55 valuev
+ * sync with LAMMPS
+ *
+ * Revision 1.1 2011/06/10 17:15:07 morozov
+ * First Windows project with the correct directory structure
+ *
+ * Revision 1.27 2011/06/09 22:55:08 valuev
+ * norm matrices
+ *
+ * Revision 1.26 2011/06/07 17:43:00 valuev
+ * added Y derivatives
+ *
+ * Revision 1.25 2011/05/24 19:54:32 valuev
+ * fixed sqmatrix::iterator
+ *
+ * Revision 1.24 2011/05/21 23:06:49 valuev
+ * Norm matrix transform to pysical variables
+ *
+ * Revision 1.23 2009/09/24 10:06:38 valuev
+ * moved matrix printing to template function, reproducing old TB calculations
+ *
+ * Revision 1.22 2009/02/10 14:20:45 valuev
+ * sync with FDTD project
+ *
+ * Revision 1.4 2009/01/30 13:54:05 valuev
+ * restructured as a library
+ *
+ * Revision 1.21 2008/08/27 13:34:32 valuev
+ * made icc-compilable
+ *
+ * Revision 1.20 2008/08/25 21:06:11 valuev
+ * moved using delaration to public
+ *
+ * Revision 1.19 2008/07/23 16:55:05 morozov
+ * *** empty log message ***
+ *
+ * Revision 1.18 2008/07/23 16:21:52 morozov
+ * Corrected Makefile for unix compilation of tcpengine
+ *
+ * Revision 1.17 2008/07/18 18:15:31 morozov
+ * *** empty log message ***
+ *
+ * Revision 1.16 2008/07/02 13:11:32 valuev
+ * new C60+O2 experiments
+ *
+ * Revision 1.15 2008/06/24 08:50:00 valuev
+ * made icc-compilable
+ *
+ * Revision 1.14 2008/06/24 08:39:57 valuev
+ * added ESSL support to TB
+ *
+ * Revision 1.13 2008/05/29 14:47:33 valuev
+ * made icc-compilable
+ *
+ * Revision 1.12 2008/05/14 17:17:22 morozov
+ * Passed 2- and 3-electron test. Added Norm matrix.
+ *
+ * Revision 1.11 2008/05/05 17:27:43 morozov
+ * cvector_3.h is the new header for class cVector_3. Old one is moved to cvector_3old.h
+ * class hmatrix is added to pairhash.h
+ * wavepackets.h contains class WavePacket
+ *
+ * Revision 1.10 2008/04/21 22:42:30 valuev
+ * *** empty log message ***
+ *
+ * Revision 1.9 2008/04/15 13:11:41 valuev
+ * Added antisymmetrized wave packets
+ *
+ * Revision 1.8 2008/02/28 13:26:04 valuev
+ * vasp scanner
+ *
+ * Revision 1.7 2007/12/13 19:48:59 valuev
+ * added newlines
+ *
+ * Revision 1.6 2006/12/20 14:29:33 valuev
+ * Updated workflow, sync with FDTD
+ *
+ * Revision 1.3 2006/10/27 20:41:01 valuev
+ * Added detectors sceleton. Updated some of ivutils from MD project.
+ *
+ * Revision 1.5 2006/09/26 10:59:42 valuev
+ * Added nonorthogonal TB (Menon-Subbaswamy)
+ *
+ * Revision 1.4 2006/07/21 16:22:03 valuev
+ * Added Tight Binding for graphite+O
+ *
+ * Revision 1.3 2006/04/26 12:12:01 valuev
+ * Fixed Neighbour Lists (double-single counting), added twostep NL scheme, added Step2 to mdtutorial (use of template potentials), added DelAtom to mdStructure
+ *
+ * Revision 1.2 2005/12/09 21:06:38 valuev
+ * Added neighbour list to mdPotential interface.
+ * Added missing files to ivutils directory.
+ * Added mdtutorial and step1 project
+ *
+ * Revision 1.1 2005/12/02 18:51:06 valuev
+ * added HEAD project tree
+ *
+ * Revision 1.1 2005/11/30 23:36:11 valuev
+ * put ivutils to cvs on biolab1.mipt.ru
+ *
+ * Revision 1.1 2005/11/30 23:15:43 valuev
+ * put ivutils on cvs biolab1.mipt.ru
+ *
+ *
+*******************************************************************************/
+# ifndef PAIRHASH_H
+# define PAIRHASH_H
+
+/*e @file pairhash.h @brief pair hash table
+*/
+
+
+/*r @file pairhash.h @brief ðàáîòà ñ õåø-òàáëèöàìè ïàðíûõ âåëè÷èí
+*/
+
+# include "refobj.h"
+
+
+///\en Rectangular matrix
+template <class T>
+class recmatrix{
+protected:
+ mngptr<T> parr;
+public:
+ class iterator{
+ friend class recmatrix<T>;
+ T *ptr;
+ size_t incr;
+ iterator(const recmatrix<T> *parent,size_t first_,size_t second_, bool inc_first=false){
+ ptr=parent->arr+parent->index(first_,second_);
+ incr=inc_first ? parent->sizex : 1 ;
+ };
+ iterator(T *ptr_,size_t incr_):ptr(ptr_),incr(incr_){}
+ public:
+ iterator(const iterator &other):ptr(other.ptr),incr(other.incr){
+ }
+ iterator():ptr(NULL),incr(0){}
+ iterator &operator++(){ // prefix
+ ptr+=incr;
+ return *this;
+ }
+ iterator operator++(int){ // postfix
+ iterator tmp=*this;
+ ++*this;
+ return tmp;
+ }
+ iterator operator+(int delta) const {
+ return iterator(ptr+delta*incr,incr);
+ }
+ bool operator!=(const iterator &other) const {
+ if(ptr!=other.ptr)return true;
+ else return false;
+ }
+ T &operator*() const {
+ return *ptr;
+ }
+ };
+
+
+ T *arr;
+ size_t sizex, sizey;
+
+ //e default constructor
+ recmatrix(): parr(NULL,1) {
+ sizey=sizex=0;
+ arr=NULL;
+ }
+
+ //e copy constructor: makes a managed copy
+ recmatrix(const recmatrix &other):sizex(0),sizey(0),arr(NULL){
+ *this=other;
+ }
+
+ recmatrix &operator=(const recmatrix &other){
+ if(this!=&other){
+ if(other.sizex*other.sizey<=sizex*sizey)
+ init(other.sizex,other.sizey,-1); // keeping old array
+ else
+ init(other.sizex,other.sizey,1);
+ size_t n=get_datasize(sizex,sizey);
+ for(size_t i=0;i<n;i++)
+ arr[i]=other.arr[i];
+ }
+ return *this;
+ }
+
+ virtual size_t get_datasize(size_t nx, size_t ny) const{
+ return nx*ny;
+ }
+
+ // i is y (row number), j is x (column number)
+ size_t index(size_t i, size_t j) const {
+ return sizey*i+j;
+ }
+
+ T &operator()(size_t i,size_t j){
+ return arr[index(i,j)];
+ }
+
+ T operator()(size_t i,size_t j) const {
+ return arr[index(i,j)];
+ }
+
+
+ void set(long i,long j,const T& val){
+ (*this)(i,j)=val;
+ }
+
+
+ virtual int init(size_t nx, size_t ny, int smanaged=-1){
+ int managed=parr.managed();
+ if(managed && (sizex!=nx || sizey!=ny)){
+ parr.reset(NULL,0);
+ }
+ if(smanaged>=0){ // for changing the managed flag?
+ parr.reset(parr.ptr(),smanaged ? smanaged|0x8 : 0 );
+ managed=smanaged;
+ }
+ if(sizex==nx && sizey==ny) // no need to allocate
+ return 1;
+ sizex=nx;
+ sizey=ny;
+ if(managed){
+ if(sizex>0 && sizey>0)
+ parr.reset(new T[get_datasize(sizex,sizey)],managed|0x8);
+ arr=parr.ptr();
+ }
+ return 1;
+ }
+
+ recmatrix(size_t nx, size_t ny):sizex(0), sizey(0){
+ init(nx,ny,1);
+ }
+
+ //e initializes by unmanaged pointer
+ recmatrix(size_t nx, size_t ny , T *ptr):parr(ptr,0),sizex(nx), sizey(ny) {
+ init(nx,ny);
+ }
+
+ //e attaches to new pointer and sets unmanaged size
+ void AttachTo(size_t nx,size_t ny, T *ptr){
+ init(0,0);
+ sizex=nx;
+ sizey=ny;
+ parr.reset(ptr,0);
+ }
+
+ void Set(const T &val){
+ size_t i, n=get_datasize(sizex,sizey);
+ for(i=0;i<n;i++)arr[i]=val;
+ }
+
+ void SetDiag(const T &val){
+ size_t i, size=(sizex>sizey? sizey: sizex);
+ for(i=0;i<size;i++){
+ (*this)(i,i)=val;
+ }
+ }
+
+ /// returns iterator with fixed first index to iterate through matrix line elements
+ iterator fix_first(size_t first, size_t second) const {
+ return iterator(this,first,second,false);
+ }
+
+ /// returns iterator with fixed second index to iterate through matrix column elements
+ iterator fix_second(size_t first, size_t second) const {
+ return iterator(this,first,second, true);
+ }
+
+};
+
+
+//e square matrix
+template <class T>
+class sqmatrix: public recmatrix<T> {
+
+public:
+
+ size_t size;
+
+ //e default constructor
+ sqmatrix(){}
+
+ //e copy constructor: makes a managed copy
+ sqmatrix(const sqmatrix &other):size(0){
+ *this=other;
+ }
+
+ sqmatrix &operator=(const sqmatrix &other){
+ if(this!=&other){
+ *((recmatrix<T> *)this)=*((recmatrix<T> *)&other);
+ size=other.size;
+ }
+ return *this;
+ }
+
+ virtual size_t get_datasize(size_t n) const{
+ return n*n;
+ }
+
+
+ virtual int init(size_t n, int smanaged=-1){
+ size=n;
+ return recmatrix<T>::init(n,n,smanaged);
+ int managed=recmatrix<T>::parr.managed();
+ }
+
+ sqmatrix(size_t n):size(0){
+ init(n,1);
+ }
+
+ //e initializes by unmanaged pointer
+ sqmatrix(size_t n, T *ptr):size(n){
+ init(n);
+ }
+
+ //e attaches to new pointer and sets unmanaged size
+ void AttachTo(size_t n, T *ptr){
+ init(0);
+ size=n;
+ recmatrix<T>::parr.reset(ptr,0);
+ }
+
+
+};
+
+
+
+# if 0
+//e square matrix
+template <class T>
+class sqmatrix{
+ mngptr<T> parr;
+public:
+ class iterator{
+ friend class sqmatrix<T>;
+ T *ptr;
+ size_t incr;
+ iterator(const sqmatrix<T> *parent,size_t first_,size_t second_, bool inc_first=false){
+ ptr=parent->arr+parent->index(first_,second_);
+ incr=inc_first ? parent->size : 1 ;
+ };
+ iterator(T *ptr_,size_t incr_):ptr(ptr_),incr(incr_){}
+ public:
+ iterator(const iterator &other):ptr(other.ptr),incr(other.incr){
+ }
+ iterator():ptr(NULL),incr(0){}
+ iterator &operator++(){ // prefix
+ ptr+=incr;
+ return *this;
+ }
+ iterator operator++(int){ // postfix
+ iterator tmp=*this;
+ ++*this;
+ return tmp;
+ }
+ iterator operator+(int delta) const {
+ return iterator(ptr+delta*incr,incr);
+ }
+ bool operator!=(const iterator &other) const {
+ if(ptr!=other.ptr)return true;
+ else return false;
+ }
+ T &operator*() const {
+ return *ptr;
+ }
+ };
+
+
+ T *arr;
+ size_t size;
+
+ //e default constructor
+ sqmatrix(): parr(NULL,1) {
+ size=0;
+ arr=NULL;
+ }
+
+ //e copy constructor: makes a managed copy
+ sqmatrix(const sqmatrix &other):size(0),arr(NULL){
+ *this=other;
+ }
+
+ sqmatrix &operator=(const sqmatrix &other){
+ if(this!=&other){
+ if(other.size<=size)
+ init(other.size,-1); // keeping old array
+ else
+ init(other.size,1);
+ size_t n=get_datasize(size);
+ for(size_t i=0;i<n;i++)
+ arr[i]=other.arr[i];
+ }
+ return *this;
+ }
+
+ virtual size_t get_datasize(size_t n) const{
+ return n*n;
+ }
+
+ size_t index(size_t i, size_t j) const {
+ return size*i+j;
+ }
+
+ T &operator()(size_t i,size_t j){
+ return arr[index(i,j)];
+ }
+
+ T operator()(size_t i,size_t j) const {
+ return arr[index(i,j)];
+ }
+
+
+ void set(long i,long j,const T& val){
+ (*this)(i,j)=val;
+ }
+
+
+ virtual int init(size_t n, int smanaged=-1){
+ int managed=parr.managed();
+ if(managed && size!=n){
+ parr.reset(NULL,0);
+ }
+ if(smanaged>=0){ // for changing the managed flag?
+ parr.reset(parr.ptr(),smanaged ? smanaged|0x8 : 0 );
+ managed=smanaged;
+ }
+ if(size==n) // no need to allocate
+ return 1;
+ size=n;
+ if(managed){
+ if(size>0)
+ parr.reset(new T[get_datasize(size)],managed|0x8);
+ arr=parr.ptr();
+ }
+ return 1;
+ }
+
+ sqmatrix(size_t n):size(0){
+ init(n,1);
+ }
+
+ //e initializes by unmanaged pointer
+ sqmatrix(size_t n, T *ptr):parr(ptr,0),size(n){
+ init(n);
+ }
+
+ //e attaches to new pointer and sets unmanaged size
+ void AttachTo(size_t n, T *ptr){
+ init(0);
+ size=n;
+ parr.reset(ptr,0);
+ }
+
+ void Set(const T &val){
+ size_t i, n=get_datasize(size);
+ for(i=0;i<n;i++)arr[i]=val;
+ }
+
+ void SetDiag(const T &val){
+ size_t i;
+ for(i=0;i<size;i++){
+ (*this)(i,i)=val;
+ }
+ }
+
+ /// returns iterator with fixed first index to iterate through matrix line elements
+ iterator fix_first(size_t first, size_t second) const {
+ return iterator(this,first,second,false);
+ }
+
+ /// returns iterator with fixed second index to iterate through matrix column elements
+ iterator fix_second(size_t first, size_t second) const {
+ return iterator(this,first,second, true);
+ }
+
+};
+
+# endif
+
+ //e prints the matrix into a file
+template< class matrix_t>
+int fileout(FILE *f, const matrix_t &matr, const char *elm_fmt, const char *elm_sep=" ", const char *line_sep="\n"){
+ size_t i, j;
+ int res=0;
+ for(i=0;i<matr.size;i++){
+ for(j=0;j<matr.size;j++){
+ res+=fprintf(f,elm_fmt,matr(i,j));
+ fprintf(f,elm_sep);
+ }
+ fprintf(f,line_sep);
+ }
+ return res;
+}
+
+
+//e symmetric matrix
+template <class T>
+class smatrix: public sqmatrix<T>{
+ typedef sqmatrix<T> base_t;
+public:
+
+ virtual size_t get_datasize(size_t n) const{
+ return n*(n+1)/2;
+ }
+
+ size_t index(size_t i, size_t j) const {
+ if(i>=j)
+ return (2*base_t::size-j-1)*j/2+i;
+ else
+ return (2*base_t::size-i-1)*i/2+j;
+ }
+
+ T &operator()(size_t i,size_t j){
+ return base_t::arr[index(i,j)];
+ }
+
+ T operator()(size_t i,size_t j) const {
+ return base_t::arr[index(i,j)];
+ }
+
+ void set(long i,long j,const T& val){
+ (*this)(i,j)=val;
+ }
+
+ void SetDiag(const T &val){
+ size_t i;
+ for(i=0;i<base_t::size;i++){
+ (*this)(i,i)=val;
+ }
+ }
+
+ smatrix(){}
+
+ //e copy constructor: makes a managed copy
+ smatrix(const smatrix &other):sqmatrix<T>(other){}
+
+ smatrix &operator=(const smatrix &other){
+ return (smatrix&)( *(sqmatrix<T> *)this = (sqmatrix<T> &)other );
+ }
+
+ smatrix(size_t n):sqmatrix<T>(n){}
+
+ //e initializes by unmanaged pointer
+ smatrix(size_t n, T *ptr):sqmatrix<T>(n,ptr){}
+
+};
+
+
+
+//e Hermitian matrix
+template<class T>
+class hmatrix : public smatrix<T>
+{
+public:
+ using smatrix<T>::arr;
+ using smatrix<T>::size;
+ hmatrix() : smatrix<T>() {}
+
+ hmatrix(const smatrix<T> &other) : smatrix<T>(other) {}
+
+ //e copy constructor: makes a managed copy
+ hmatrix(const hmatrix &other): smatrix<T>(other){}
+
+ hmatrix &operator=(const hmatrix &other) {
+ return (hmatrix&)( *(smatrix<T>*)this = (smatrix<T>&)other );
+ }
+
+ hmatrix(size_t n) : smatrix<T>(n) {}
+
+ hmatrix(size_t n, T *ptr) : smatrix<T>(n, ptr) {}
+
+ T operator()(size_t i, size_t j) const {
+ if(i<=j) return arr[(2*size-i-1)*i/2+j];
+ else return conj( arr[(2*size-j-1)*j/2+i] );
+ }
+
+ void set(long i,long j,const T& val){
+ if(i<=j) arr[(2*size-i-1)*i/2+j] = val;
+ else arr[(2*size-j-1)*j/2+i] = conj(val);
+ }
+
+};
+
+
+//e Basic pair hash class
+template <class T>
+class PairHash{
+public:
+ //e find the value with indexes i, j
+ //e @return 0 if not found, 1 otherwise
+ //e if retval is not NULL, puts the found value there
+ virtual int Find(long i, long j, T *retval=NULL)=0;
+ virtual int Find(long i, long j, T **retval=NULL)=0;
+ virtual int Del(long i, long j)=0;
+ virtual int Put(long i, long j, const T *value)=0;
+ virtual int Put(long i, long j, const T& value)=0;
+ virtual int Clear()=0;
+ virtual ~PairHash(){}
+};
+
+//e Hash with symmetric matrix
+template <class T>
+class PairHashM: public PairHash<T>{
+ smatrix<long> indm;
+ T *arr;
+ int as;
+public:
+ PairHashM(long n, int antisymmetric =0):indm(n),as(antisymmetric){
+ indm.Set(-1);
+ arr= new T[n*(n+1)/2];
+ }
+ int Find(long i, long j, T *retval=NULL){
+ long ind=indm(i,j);
+ if(ind>=0){
+ if(retval){
+ if(as && i<j)*retval=-arr[ind];
+ else *retval=arr[ind];
+ }
+ return 1;
+ }
+ return 0;
+ }
+ int Find(long i, long j, T **retval){
+ long ind=indm(i,j);
+ if(ind>=0){
+ *retval=&arr[ind];
+ if(as && i<j)return -1;
+ return 1;
+ }
+ return 0;
+ }
+
+
+ int Del(long i, long j){
+ indm(i,j)=-1;
+ return 1;
+ }
+
+ int Put(long i, long j, const T *value){
+ long ind=indm.index(i,j);
+ indm.arr[ind]=ind;
+ arr[ind]=*value;
+ if(as && i<j)arr[ind]=-arr[ind];
+ return 1;
+ }
+
+ int Put(long i, long j, const T& value){
+ long ind=indm.index(i,j);
+ indm.arr[ind]=ind;
+ arr[ind]=value;
+ if(as && i<j)arr[ind]=-arr[ind];
+ return 1;
+ }
+
+ int Clear(){
+ indm.Set(-1);
+ return 1;
+ }
+
+ virtual ~PairHashM(){
+ delete [] arr;
+ }
+};
+
+
+
+# endif
diff --git a/lib/awpmd/ivutils/include/refobj.h b/lib/awpmd/ivutils/include/refobj.h
new file mode 100644
index 000000000..848704dc4
--- /dev/null
+++ b/lib/awpmd/ivutils/include/refobj.h
@@ -0,0 +1,470 @@
+/*s***************************************************************************
+ *
+ * Copyright (c), Ilya Valuev 2006 All Rights Reserved.
+ *
+ * Author : Ilya Valuev, MIPT, Moscow, Russia
+ *
+ * Project : ivutils
+ *
+ *****************************************************************************/
+/*s****************************************************************************
+ * $Log: refobj.h,v $
+ * Revision 1.2 2011/06/11 16:53:55 valuev
+ * sync with LAMMPS
+ *
+ * Revision 1.1 2011/06/10 17:15:07 morozov
+ * First Windows project with the correct directory structure
+ *
+ * Revision 1.15 2010/10/07 11:20:31 valuev
+ * preliminary program restart
+ *
+ * Revision 1.14 2009/07/24 05:08:46 valuev
+ * Sync with FDTD, added molecule setup
+ *
+ * Revision 1.33 2009/05/19 21:50:17 valuev
+ * Added TestRay for plane
+ *
+ * Revision 1.32 2009/03/23 22:00:48 lesha
+ * const mngptr &operator=(const mngarg<T> &arg) is added
+ *
+ * Revision 1.31 2009/01/30 13:54:05 valuev
+ * restructured as a library
+ *
+ * Revision 1.30 2009/01/21 09:28:15 lesha
+ * refvector::clear is added
+ *
+ * Revision 1.29 2009/01/15 07:31:07 lesha
+ * *** empty log message ***
+ *
+ * Revision 1.28 2009/01/14 10:02:36 lesha
+ * operator [] is added to mngptr
+ *
+ * Revision 1.27 2008/04/29 01:23:59 lesha
+ * nothing important
+ *
+ * Revision 1.26 2008/02/28 08:57:27 lesha
+ * shptr::free() is made public
+ *
+ * Revision 1.25 2008/02/27 13:37:23 lesha
+ * shptr is added
+ *
+ * Revision 1.24 2008/01/22 10:14:05 lesha
+ * mngarg is added
+ *
+ * Revision 1.23 2007/08/08 10:55:37 lesha
+ * constructor in refvector is correted
+ *
+ * Revision 1.22 2007/07/10 19:52:44 lesha
+ * make gcc compilable
+ *
+ * Revision 1.21 2007/07/06 12:23:37 valuev
+ * made compilable with icc 9
+ *
+ * Revision 1.20 2007/06/22 09:42:25 valuev
+ * *** empty log message ***
+ *
+ * Revision 1.19 2007/06/17 00:51:44 lesha
+ * refobj, refcounter :: reset is modified for ptr==this->ptr case
+ *
+ * Revision 1.18 2007/06/05 16:30:53 lesha
+ * make gcc compilable
+ *
+ * Revision 1.17 2007/06/05 11:37:53 lesha
+ * make gcc compilable
+ *
+ * Revision 1.16 2007/06/05 11:07:04 lesha
+ * make gcc compilable
+ *
+ * Revision 1.15 2007/06/04 14:03:55 lesha
+ * *** empty log message ***
+ *
+ * Revision 1.14 2007/05/31 18:00:42 lesha
+ * *** empty log message ***
+ *
+ * Revision 1.13 2007/05/31 16:57:30 lesha
+ * ref_sequence is added
+ *
+ * Revision 1.12 2007/05/31 01:25:01 lesha
+ * new version of mng_ptr, pencil etc
+ *
+ * Revision 1.11 2007/02/20 10:26:11 valuev
+ * added newlines at end of file
+ *
+ * Revision 1.10 2007/02/16 10:16:51 valuev
+ * allowed array mngptr
+ *
+ * Revision 1.4 2007/02/16 09:40:32 valuev
+ * Added Nudged Elastic Band saddle point search
+ *
+ * Revision 1.3 2006/12/20 14:29:33 valuev
+ * Updated workflow, sync with FDTD
+ *
+ * Revision 1.9 2006/12/14 08:42:36 valuev
+ * reformulated detector
+ * projectors, corrected open file limit control, tested Fourier sceleton
+ *
+ * Revision 1.8 2006/11/29 18:05:05 valuev
+ * made the code compilable with g++
+ *
+ * Revision 1.7 2006/11/29 17:17:01 valuev
+ * added using base_t::member for ANSI-compatibility
+ *
+ * Revision 1.6 2006/11/29 17:11:59 valuev
+ * added includes
+ *
+ * Revision 1.5 2006/11/28 09:16:59 valuev
+ * Fixed vectors storing managed pointers
+ *
+ * Revision 1.4 2006/11/24 20:17:31 valuev
+ * Added CVS headers
+ *
+*******************************************************************************/
+#ifndef _REFOBJ_H
+#define _REFOBJ_H
+
+# include <utility>
+# include <vector>
+# include <map>
+
+using namespace std;
+
+template<class T>
+class mngarg: public pair<T *, int>{
+public:
+ typedef pair<T *, int> base_t;
+ using base_t::second;
+ using base_t::first;
+
+ mngarg(T *ptr, int managed=0): pair<T*,int>(ptr,managed){}
+ template<class A>
+ mngarg(const mngarg<A> &arg): pair<T*,int>(arg.first,arg.second){}
+};
+
+template<class T>
+mngarg<T> make_mngarg(T *ptr, int managed=1){
+ return mngarg<T>(ptr,managed);
+}
+
+/// managed pointer
+/// managed==0 do not delete
+/// managed==1 delete
+/// (NOT IMPLEMENTED) managed==2 copy and delete, requires copy constructor
+/// flag 0x8 -- delete as array
+template<class T>
+class mngptr: public pair<T *, int>{
+public:
+ typedef pair<T *, int> base_t;
+ typedef T *pointer;
+ using base_t::second;
+ using base_t::first;
+
+ mngptr(T* ptr=NULL, int managed=0): pair<T*,int>(ptr,managed){
+ //if(managed==2)ptr= new T(*ptr);
+ }
+ mngptr(const mngarg<T> &arg): pair<T*,int>(arg.first,arg.second){}
+ const mngptr &operator=(const mngarg<T> &arg){
+ reset(arg.first,arg.second);
+ return *this;
+ }
+ void reset(T* ptr=NULL, int managed=0){
+ if(second && first && first!=ptr){
+ if(second&0x8)delete [] first;
+ else delete first;
+ }
+ first=ptr;
+ second=managed;
+ }
+ void reset(const mngarg<T> &arg){
+ reset(arg.first,arg.second);
+ }
+ T* ptr() const {
+ return first;
+ }
+ T* operator->() const {
+ return first;
+ }
+ T& operator*() const{
+ return *first;
+ }
+ T& operator[] (int i) const{
+ return *(first+i);
+ }
+ int managed() const {
+ return second;
+ }
+ ~mngptr(){
+ reset();
+ }
+};
+
+
+# if 0
+template <template<class _type> class cont_tt, class T>
+class refcontainer: public cont_tt< T * >{
+protected:
+ int man;
+public:
+ typedef cont_tt< T * > base_t;
+ typedef typename base_t::iterator iterator;
+ typedef typename base_t::const_iterator const_iterator;
+
+ refcontainer(int smanaged=0):man(smanaged){}
+ refcontainer(size_t n, int smanaged=0):base_t(n),man(smanaged){}
+
+ void set_managed(int sman){
+ man=sman;
+ }
+
+ ~refcontainer(){
+ if(man){
+ size_t i, n=base_t::size();
+ for(i=0;i<n;i++)
+ if((*this)[i]) delete (*this)[i];
+ }
+ }
+};
+# endif
+
+template < class T >
+class refvector: public std::vector< T * >{
+protected:
+ int man;
+public:
+ typedef vector<T*> base_t;
+ typedef typename base_t::iterator iterator;
+ typedef typename base_t::const_iterator const_iterator;
+
+ refvector(int smanaged=0):man(smanaged){}
+// refvector(size_t n, int smanaged=0):base_t(n),man(smanaged){} // ambigious constructors
+ refvector(size_t n, int smanaged):base_t(n),man(smanaged){}
+
+ void set_managed(int sman){
+ man=sman;
+ }
+
+ ~refvector(){
+ clear();
+ }
+
+ void clear() {
+ if(man){
+ iterator it=base_t::begin();
+ for(;it!=base_t::end();++it)
+ if(*it)
+ delete (*it);
+ }
+ base_t::clear();
+ }
+
+ iterator erase(iterator it){
+ if(man && *it)
+ delete (*it);
+ return base_t::erase(it);
+ }
+
+};
+
+
+template <class key_tt, class T >
+class refmap: public std::map<key_tt, T * >{
+protected:
+ int man;
+public:
+ typedef std::map<key_tt, T * > base_t;
+ typedef typename base_t::iterator iterator;
+ typedef typename base_t::const_iterator const_iterator;
+
+ refmap(int smanaged=0):man(smanaged){}
+ refmap(size_t n, int smanaged=0):base_t(n),man(smanaged){}
+
+ void set_managed(int sman){
+ man=sman;
+ }
+
+ ~refmap(){
+ clear();
+ }
+
+ void clear() {
+ if(man){
+ for(typename base_t::iterator i=base_t::begin();i!=base_t::end();++i)
+ if(i->second) delete i->second;
+ }
+ base_t::clear();
+ }
+
+ iterator erase(iterator it){
+ if(man && it->second)
+ delete it->second;
+ return base_t::erase(it);
+ }
+};
+
+
+template<class T>
+class delete_ptr{
+public:
+ void operator()(T *ptr){
+ delete ptr;
+ }
+};
+
+template<class T, class delete_t=delete_ptr<T> >
+class shptr{
+ template<class Y, class Z> friend class shptr;
+ T *p;
+ int *num; //if num==NULL than p is not managed (as in mngptr)
+
+ void set(T *p_, int managed){
+ p=p_;
+ if(p&&managed){
+ num=new int;
+ *num=1;
+ }
+ else num=NULL;
+ }
+ template<class Y>
+ void set(const Y &other){
+ p=other.p;
+ if(p){
+ num=other.num;
+ if(num)(*num)++;
+ }
+ else num=NULL;
+ }
+ void set(const shptr &other){
+ p=other.p;
+ if(p){
+ num=other.num;
+ if(num)(*num)++;
+ }
+ else num=NULL;
+ }
+
+public:
+ shptr(T* p=NULL, int managed=1){
+ set(p,managed);
+ }
+ shptr(const mngarg<T> &arg){
+ set(arg.first,arg.second);
+ }
+ template<class Y>
+ shptr(const Y &other){
+ set(other);
+ }
+ shptr(const shptr &other){
+ set(other);
+ }
+
+ void reset(T *p_, int managed=1) {
+ if(p!=p_){
+ free();
+ set(p_,managed);
+ }
+ }
+ void reset(const shptr &other) {
+ if(this!=&other){
+ free();
+ set(other);
+ }
+ }
+
+ const shptr &operator=(T *p) {
+ reset(p,0);
+ return *this;
+ }
+ const shptr &operator=(const mngarg<T> &arg) {
+ reset(arg.first,arg.second);
+ return *this;
+ }
+ template<class Y>
+ const shptr &operator=(const Y &other){
+ reset(other);
+ return *this;
+ }
+ const shptr &operator=(const shptr &other) {
+ reset(other);
+ return *this;
+ }
+
+ virtual ~shptr(){
+ free();
+ }
+ void free(){
+ if(p){
+ if(num){
+ (*num)--;
+ if((*num)==0){
+ delete_t()(p);
+ delete num;
+ }
+ num=NULL;
+ }
+ p=NULL;
+ }
+ }
+
+ bool valid() const {
+ return p!=NULL;
+ }
+
+ T* ptr() const {
+ return p;
+ }
+ T* operator->() const {
+ return p;
+ }
+ T& operator*() const{
+ return *p;
+ }
+};
+
+
+
+
+/*
+class RefObject{
+ void *ref_data;
+ int ref_count;
+public:
+
+protected:
+ virtual void delete_data(void *data);
+ virtual void *new_data();
+ virtual void *copy_data(void *data);
+}
+
+
+
+class RefA: public RefObject{
+
+public:
+ refA(){
+ ref_data = new A;
+ }
+ refA(const refA &other){
+ Ref(other);
+ }
+ refA& operator=(const refA &other){
+ if(ref_data != other.ref_data){
+ Ref(other);
+ }
+ return *this;
+ }
+private:
+ void delete_data(void *data){
+ delete (A *)data;
+ }
+ void *new_data(){
+ return (void *)new A;
+ }
+ void *copy_data(void *data){
+ return (void *)(new A(*((A*)data)));
+ }
+
+
+
+}*/
+
+
+#endif
diff --git a/lib/awpmd/ivutils/include/vector_3.h b/lib/awpmd/ivutils/include/vector_3.h
new file mode 100644
index 000000000..c269628c3
--- /dev/null
+++ b/lib/awpmd/ivutils/include/vector_3.h
@@ -0,0 +1,707 @@
+/*s***************************************************************************
+ *
+ * Copyright (c), Ilya Valuev 2005 All Rights Reserved.
+ *
+ * Author : Ilya Valuev, MIPT, Moscow, Russia
+ *
+ * Project : GridMD, ivutils
+ *
+ *****************************************************************************/
+
+/*s****************************************************************************
+ * $Log: vector_3.h,v $
+ * Revision 1.2 2011/06/11 16:53:55 valuev
+ * sync with LAMMPS
+ *
+ * Revision 1.1 2011/06/10 17:15:07 morozov
+ * First Windows project with the correct directory structure
+ *
+ * Revision 1.22 2010/11/17 02:13:32 valuev
+ * Added analysis phase, fixed some memory leaks
+ *
+ * Revision 1.21 2009/09/09 14:43:35 valuev
+ * fixed trajreader
+ *
+ * Revision 1.20 2009/07/24 05:08:46 valuev
+ * Sync with FDTD, added molecule setup
+ *
+ * Revision 1.33 2009/06/01 13:01:42 valuev
+ * Added ShearBox
+ *
+ * Revision 1.32 2009/05/28 07:49:00 valuev
+ * updated chemosensor
+ *
+ * Revision 1.31 2009/05/22 08:53:52 valuev
+ * new uiExperiment interface
+ *
+ * Revision 1.30 2009/02/22 10:49:56 lesha
+ * Vector_Nt constructors are modified
+ *
+ * Revision 1.29 2009/02/04 14:23:31 valuev
+ * fixed bug in maxabscoord and minabscoord functions
+ *
+ * Revision 1.28 2009/02/04 10:56:30 lesha
+ * SINGLE_PRECISION is recovered
+ *
+ * Revision 1.27 2009/02/03 00:47:35 lesha
+ * *** empty log message ***
+ *
+ * Revision 1.26 2009/01/30 13:54:05 valuev
+ * restructured as a library
+ *
+ * Revision 1.16 2008/08/18 21:40:09 valuev
+ * added Gurski-Krasko potential
+ *
+ * Revision 1.15 2008/05/05 17:27:43 morozov
+ * cvector_3.h is the new header for class cVector_3. Old one is moved to cvector_3old.h
+ * class hmatrix is added to pairhash.h
+ * wavepackets.h contains class WavePacket
+ *
+ * Revision 1.14 2008/04/22 12:44:17 valuev
+ * made gcc 4.12 compilable
+ *
+ * Revision 1.13 2008/04/21 23:13:44 valuev
+ * made gcc 4.12 compilable
+ *
+ * Revision 1.12 2008/04/21 22:42:30 valuev
+ * *** empty log message ***
+ *
+ * Revision 1.11 2008/04/15 13:11:41 valuev
+ * Added antisymmetrized wave packets
+ *
+
+ *
+*******************************************************************************/
+/*r @file vector_3.h @brief ðàáîòà ñ òðåõìåðíûìè âåêòîðàìè
+*/
+
+# ifndef VECTOR_3_H
+
+# define VECTOR_3_H
+
+# define _USE_MATH_DEFINES
+
+# include <iostream>
+# include <cmath>
+# include <limits>
+# include <stdlib.h>
+
+// some compilers don't define PI!
+# ifndef M_PI
+# define M_PI 3.1415926535897932385
+# endif
+
+# ifndef fmod
+//r äåëåíèå ïî ìîäóëþ ÷èñåë ñ ïëàâàþùåé òî÷êîé
+# define fmod(a,b) ((a)-((long)((a)/(b))*(b)))
+# endif
+
+using namespace std;
+
+#ifndef SINGLE_PRECISION
+typedef double vec_type;
+#else
+typedef float vec_type;
+#endif
+
+//e "infinitely" large number in Vector_3 sense
+//r "áåñêîíå÷íî áîëüøîå" ÷èñëî â ñìûñëå Vector_3
+//# ifndef SINGLE_PRECISION
+//# define VEC_INFTY 1.e20
+//# else
+//# define VEC_INFTY 1.e20f
+//# endif
+#define VEC_INFTY numeric_limits<vec_type>::max()
+
+//e "infinitely" small number in Vector_3 sense (used for vector comparisons)
+//r "áåñêîíå÷íî ìàëîå" ÷èñëî â ñìûñëå Vector_3 (èñïîëüçóåòñÿ äëÿ ñðàâíåíèé)
+//# ifndef SINGLE_PRECISION
+//# define VEC_ZERO 1.e-20
+//# else
+//# define VEC_ZERO 1.e-20f
+//# endif
+#define VEC_ZERO 512*numeric_limits<vec_type>::epsilon()
+
+//r N-ìåðíûé âåêòîð òèïà T, ñ íåêîòîðûìè ïîëåçíûìè îïåðàöèÿìè
+template <class T, const int N=3>
+struct Vector_Nt {
+ typedef T value_type;
+
+ T v[N];
+
+ Vector_Nt(const T &a=0){
+ for (int i=0; i<N; i++)
+ v[i]=a;
+ }
+
+
+ explicit Vector_Nt(const T &a1, const T &a2) {
+ if(N>0)v[0]=a1;
+ if(N>1)v[1]=a2;
+ for(int i=2;i<N;i++)v[i]=0;
+ }
+
+ explicit Vector_Nt(const T &s1, const T &s2, const T& s3) {
+ if(N>0)v[0]=s1;
+ if(N>1)v[1]=s2;
+ if(N>2)v[2]=s3;
+ for(int i=3;i<N;i++)v[i]=0;
+ }
+ //e construct from input iterator (or array)
+ template <class A>
+ Vector_Nt(const A *beg) {
+ for (int i=0; i<N; i++, ++beg)
+ v[i]=*beg;
+ };
+
+ //e construct from another vector
+ template <class A>
+ Vector_Nt(const Vector_Nt<A,N>& v1) {
+ for (int i=0; i<N; i++) v[i]=v1[i];
+ };
+
+ //r Êîïèðóåò ñîäåðæèìîå âåêòîðà â it
+ template <class A>
+ void copy_to(A *beg) const {
+ for (int i=0; i<N; i++, ++beg)
+ *beg=v[i];
+ };
+
+ //r ïîëó÷åíèå ýëåìåíòà
+ inline T& operator[](int i) const { return (T&)v[i]; };
+
+
+ inline Vector_Nt& operator=(const Vector_Nt &vect){
+ for (int i=0; i<N; i++)
+ v[i]=vect.v[i];
+ return *this;
+ }
+
+ //r ïðèñâàèâàåò âñåì êîìïîíåíòàì çíà÷åíèå a.
+ inline Vector_Nt& operator=(const T &a){
+ for (int i=0; i<N; i++)
+ v[i]=a;
+ return *this;
+ };
+
+ //r ñðàâíåíèå. Ïðè îòëè÷èè ìåíüøå ÷åì íà VEC_ZERO êîìïîíåíòû ñ÷èòàþòñÿ îäèíàêîâûìè
+ inline bool operator==(const Vector_Nt &vect) const{
+ for (int i=0; i<N ;i++)
+ if(fabs(v[i]-vect.v[i])>VEC_ZERO)return false;
+ return true;
+ };
+
+ inline bool operator!=(const Vector_Nt &vect) const{
+ return (!(this->operator==(vect)));
+ };
+
+ inline Vector_Nt operator+(const Vector_Nt& vect) const{
+ Vector_Nt result;
+ for (int i=0; i<N ;i++)
+ result.v[i]=v[i]+vect.v[i];
+ return result;
+ }
+
+ inline Vector_Nt operator-(const Vector_Nt &vect) const {
+ Vector_Nt result;
+ for (int i=0; i<N ;i++)
+ result.v[i]=v[i]-vect.v[i];
+ return result;
+ }
+
+ //r Ñêàëÿðíîå ïðîèçâåäåíèå âåêòîðîâ
+ inline T operator*(const Vector_Nt& vect) const {
+ T result=0;
+ for (int i=0; i<N; i++)
+ result+=v[i]*vect.v[i];
+ return result;
+ }
+
+ //r Ïîêîìïîíåíòíîå óìíîæåíèå íà êîýôôèöèåíò
+ inline Vector_Nt operator*(const T &coeff) const {
+ Vector_Nt result;
+ for (int i=0; i<N; i++)
+ result[i]=coeff*v[i];
+ return result;
+ }
+
+ //e vector multiplication (N=3 only)
+ //r Âåêòîðíîå ïðîèçâåäåíèå
+ inline Vector_Nt operator%(const Vector_Nt &r) const{ //reserved for N specializations
+ if(N==3){
+ return Vector_Nt(v[1]*r.v[2]-v[2]*r.v[1],v[2]*r.v[0]-v[0]*r.v[2],v[0]*r.v[1]-v[1]*r.v[0]);
+ }
+ return *this;
+ }
+
+ //r Óìíîæåíèå ÷èñëà íà âåêòîð (ïåðåñòàâëåíû ìåñòàìè ìíîæèòåëè).
+ // friend Vector_Nt operator*(T coeff,const Vector_Nt& vec);
+
+ //r Ïîêîìïîíåíòíîå äåëåíèå íà êîýôôèöèåíò
+ inline Vector_Nt operator/(const T &coeff) const {
+ Vector_Nt result;
+ for (int i=0; i<N; i++)
+ result[i]=v[i]/coeff;
+ return result;
+ }
+
+ //r Óìíîæåíèå âåêòîðà íà -1
+ inline Vector_Nt operator-() const {
+ Vector_Nt r;
+ for (int i=0; i<N; i++)
+ r.v[i]=-v[i];
+ return r;
+ }
+
+ //r Ñëîæåíèå ñ ïðèñâàèâàíèåì
+ inline Vector_Nt& operator+=(const Vector_Nt &vect){
+ for (int i=0; i<N; i++)
+ v[i]+=vect.v[i];
+ return *this;
+ }
+
+ //r Âû÷èòàíèå ñ ïðèñâàèâàíèåì
+ inline Vector_Nt& operator-=(const Vector_Nt &vect){
+ for (int i=0; i<N; i++)
+ v[i]-=vect.v[i];
+ return *this;
+ }
+
+ //r Óìíîæåíèå íà êîýôôèöèåíò ñ ïðèñâàèâàíèåì
+ inline Vector_Nt& operator*=(const T &coeff){
+ for (int i=0; i<N; i++)
+ v[i]*=coeff;
+ return *this;
+ }
+
+ //r Äåëåíèå íà ñêàëÿð ñ ïðèñâàèâàíèåì
+ inline Vector_Nt& operator/=(const T &coeff){
+ for (int i=0; i<N; i++)
+ v[i]/=coeff;
+ return *this;
+ }
+
+ //r Êâàäðàò íîðìû âåêòîðà
+ T norm2() const {
+ T result=0;
+ for (int i=0; i<N; i++)
+ result+=v[i]*v[i];
+ return result;
+ }
+
+ //r Íîðìà âåêòîðà
+ T norm() const {
+ return sqrt(norm2());
+ }
+
+ //r Âîçâðàùàåò íîðìó è íîðìàëèçóåò âåêòîð (ïîñëå ýòîãî åãî norm() âåðíåò newnorm).
+ T normalize(T newnorm=1.){
+ T norm=this->norm();
+ if(norm>=VEC_ZERO){
+ T c=newnorm/norm;
+ for (int i=0; i<N; i++)
+ v[i]*=c;
+ }
+ return norm;
+ }
+
+ //e Normalizes a vector that may have infinite components
+ T inormalize(T newnorm=1.){
+ T result=0;
+ for (int i=0; i<N; i++){
+ if(fabs(v[i])>=VEC_INFTY){
+ if(result>=0)
+ result=0.;
+ result-=1;
+ v[i]=v[i]>0 ? 1 : -1;
+ }
+ else if(result>=0) //still summing the normal components
+ result+=v[i]*v[i];
+ else
+ v[i]=0.;
+ }
+ if(fabs(result)<VEC_ZERO)
+ return 0.;
+ newnorm/=sqrt(fabs(result));
+ for (int i=0; i<N; i++)
+ v[i]*=newnorm;
+ return result<0 ? VEC_INFTY : result;
+ }
+
+
+ //e nearest image distance within rectangular cell (FOR DISTANCE MEASUREMENTS)
+ //e assumes that each coordinate absolute value is in the range [0,cell[i])
+ //e returned vector is in the range [-cell[i]/2,cell[i]/2)
+ //e flags indicate the periodicity in specific directions: 0x1 for X, 0x2 for Y, 0x4 for Z
+ //r Áëèæàéøèé îáðàç â ïðÿìîóãîëüíîé ÿ÷åéêå
+ /*r Ñ÷èòàåì, ÷òî âñå ïðîñòðàíñòâî ðàçäåëåíî íà ÿ÷åéêè - ïàðàëëåëåïèïåäû ñ ðåáðàìè, ïàðàëëåëüíûìè
+ îñÿì êîîðäèíàò è äèàãîíàëüþ, çàäàííîé âåêòîðîì rcell, ïðè÷åì íà÷àëî êîîðäèíàò ÿâëÿåòñÿ
+ öåíòðîì îäíîé èç ÿ÷ååê. Åñëè *this íàõîäèòñÿ öåíòðàëüíîé ÿ÷åéêå, âîçâðàùàåòñÿ êîïèÿ *this.\n
+ Èíà÷å, åñëè *this íàõîäèòñÿ â êóáå 3*3 ÿ÷åéêè ñ öåíòðîì â íà÷àëå êîîðäèíàò, òî ñîçäàåò îáðàç
+ *this â öåíòðàëüíîé ÿ÷åéêå.\n
+ Èíà÷å, âîçâðàùàåò íåîïðåäåëåííîå çíà÷åíèå.
+ */
+ Vector_Nt rcell1(const Vector_Nt &cell,int flags=0xffff) const{
+ Vector_Nt ret(*this);
+ int i;
+ for(i=0;i<N;i++){
+ if(flags&(0x1<<i)){
+ if(v[i]>cell[i]/2){
+ ret[i]-=cell[i];
+ }
+ else if(v[i]<-cell[i]/2){
+ ret[i]+=cell[i];
+ }
+ }
+ }
+ return ret;
+ }
+
+ //e @return a vector projection on a given axis
+ Vector_Nt prj(int i) const {
+ Vector_Nt res;
+ res[i]=v[i];
+ return res;
+ }
+
+ //e @return a vector projection on a given vector (k*v)*k
+ Vector_Nt prj(const Vector_Nt &k) const {
+ return k*(k*(*this));
+ }
+
+ //e @return a vector of length l parallel to this
+ Vector_Nt unit(T l=1) const {
+ Vector_Nt res(*this);
+ res.normalize(l);
+ return res;
+ }
+
+ //e reduction to elementary cell [0, cell[i]) (FOR REDUCTION TO ELEMENTARY CELL)
+ //e flags indicate the periodicity in specific directions: 0x1 for X, 0x2 for Y, 0x4 for Z
+ //r Ïî÷òè òî æå, ÷òî è rcell1, íî áåç îãðàíè÷åíèÿ íà ïîëîæåíèå *this è ñ äðóãîé ñèñòåìîé ÿ÷ååê.
+ /*r  íà÷àëå êîîðäèíàò íàõîäèòñÿ íå öåíòð ÿ÷åéêè, à åå óãîë. Ìîæåò ðàáîòàòü ìåäëåííåå èç-çà íàëè÷èÿ
+ îïåðàöèè äåëåíèÿ ïî ìîäóëþ ñ ïëàâàþùåé òî÷êîé */
+ Vector_Nt rcell(const Vector_Nt &cell, int flags=0xffff) const {
+ Vector_Nt ret(*this);
+ for (int i=0, flag=1; i<N; i++, flag<<=1) {
+ if(flags&flag){
+ ret.v[i]=fmod(v[i],cell[i]);
+ if(ret.v[i]<0)ret.v[i]+=cell[i];
+// if(ret.v[i]<0 || ret.v[i]>cell[i])
+ // printf("!");
+ }
+ }
+ return ret;
+ }
+
+ Vector_Nt rpcell(const Vector_Nt &p1, const Vector_Nt &cell, int flags=0xfff) const {
+ Vector_Nt ret(*this);
+ for (int i=0, flag=1; i<N; i++, flag<<=1) {
+ if(flags&flag){
+ if (ret.v[i]<p1[i] || ret.v[i]>p1[i]+cell[i]) {
+ ret.v[i]=fmod(v[i]-p1[i],cell[i])+p1[i];
+ if (ret.v[i]<p1[i]) ret.v[i]+=cell[i];
+ }
+ }
+ }
+ return ret;
+ }
+
+
+ //r Âîçâðàùàåò ìàêñèìàëüíóþ êîìïîíåíòó âåêòîðà è åå èíäåêñ â ind
+ T maxcoord(int *ind=NULL) const {
+ int im=0;
+ T vv=v[0];
+ for (int i=1; i<N; i++) {
+ if(v[i]>vv){
+ im=i;
+ vv=v[i];
+ }
+ }
+ if(ind)*ind=im;
+ return vv;
+ }
+
+
+ //e returns the corrd having maximal absolute value
+ T maxabscoord(int *ind=NULL) const {
+ int im=0;
+ T vv=fabs(v[0]);
+ for (int i=1; i<N; i++) {
+ if(fabs(v[i])>vv){
+ im=i;
+ vv=fabs(v[i]);
+ }
+ }
+ if(ind)*ind=im;
+ return v[im];
+ }
+
+ //e returns the corrd having minimal absolute value
+ T minabscoord(int *ind=NULL) const {
+ int im=0;
+ T vv=fabs(v[0]);
+ for (int i=1; i<N; i++) {
+ if(fabs(v[i])<vv){
+ im=i;
+ vv=fabs(v[i]);
+ }
+ }
+ if(ind)*ind=im;
+ return v[im];
+ }
+
+
+ //r Âîçâðàùàåò ìèíèìàëüíóþ êîìïîíåíòó âåêòîðà è åå èíäåêñ â ind
+ T mincoord(int *ind=NULL) const {
+ int im=0;
+ T vv=v[0];
+ for (int i=1; i<N; i++) {
+ if(v[i]<vv){
+ im=i;
+ vv=v[i];
+ }
+ }
+ if(ind)*ind=im;
+ return vv;
+ }
+
+ //r Âûâîäèò âåêòîð â ïîòîê âûâîäà ïî óìîë÷àíèþ, â ôîðìàòå (x,y,z)\\n
+ void print() const{
+ cout<< "(";
+ for(int i=0;i<N;i++){
+ cout<< v[i];
+ if(i!=N-1)
+ cout<< ", ";
+ }
+ cout<< ")\n";
+ }
+
+ //e returns true if the vector has infinite components
+ bool infinite() const {
+ for(int i=0;i<N;i++){
+ if(fabs(v[i])>=VEC_INFTY)
+ return true;
+ }
+ return false;
+ }
+};
+
+template<class T , int N>
+Vector_Nt<T, N> operator*(const T &coeff,const Vector_Nt<T, N> &vec){
+ return vec*coeff;
+}
+
+template<class T , int N>
+Vector_Nt<T, N> operator*(int coeff,const Vector_Nt<T, N> &vec){
+ return vec*coeff;
+}
+
+//template <> Vector_Nt<double, 3> operator*(const double &coeff,const Vector_Nt<double,3> &vec);
+
+// old Vector_3 compatibility typedefs and functions
+typedef Vector_Nt<vec_type, 3> Vector_3;
+typedef Vector_3 *Vector_3P;
+typedef Vector_Nt<vec_type, 2> Vector_2;
+typedef Vector_2 *Vector_2P;
+
+template <int N>
+class Vector_N: public Vector_Nt<vec_type, N>{
+};
+
+//Vector_3 operator*(int coeff,const Vector_3 &vec){
+// return vec*((vec_type)coeff);
+//}
+
+
+//e finds the maximum distance between vector pairs
+//r Íàõîäèò ìàêñèìàëüíîå ðàññòîÿíèå ìåæäó âåêòîðàìè va1[i], va2[i], i=1..n
+/*r @param va1 - ìàññèâ Vector_3[n]
+ @param n - äëèíà ìàññèâîâ va1 è va2
+*/
+vec_type dist_max(Vector_3 *va1,Vector_3 *va2,int n);
+
+//e finds average distance between vector pairs
+//r Íàõîäèò ñðåäíåå ðàññòîÿíèå ìåæäó âåêòîðàìè va1[i], va2[i], i=1..n
+vec_type dist_av(Vector_3 *va1,Vector_3 *va2,int n);
+
+//e finds the average difference norm between two vector sets of the same length
+/*e optionally gives the indexes for maximal and minimal difference
+ va2 can be NULL, then the norm of va1 is used */
+
+//r Íàõîäèò ñðåäíåå ðàññòîÿíèå ìåæäó va1[i] è va2[i], à òàêæå, ïî æåëàíèþ, èíäåêñû, íà êîòîðûõ äîñòèãàåòñÿ min è max ðàññòîÿíèå
+vec_type diff_av(Vector_3 *va1,Vector_3 *va2,int n, int *minind=0, int *maxind=0);
+
+//e finds suitable perpendicular to a vector
+//r Íàõîäèò ïåðïåíäèêóëÿð ê âåêòîðó vAB
+Vector_3 FindPerp(const Vector_3 &vAB);
+
+
+
+//e Returns the average (center) vector of the vector array
+//e and cooordinates of a minimal box in which it is contained
+Vector_3 GetScope(const Vector_3 *varr,long n,Vector_3* box_min,Vector_3* box_max);
+
+//e the same with long index array
+Vector_3 GetIScope(const Vector_3 *varr,long *indarr,long n,Vector_3* box_min,Vector_3* box_max);
+
+//e the same with int index array
+Vector_3 GetIScopei(const Vector_3 *varr,int *indarr,int n,Vector_3* box_min,Vector_3* box_max);
+
+// neue Funktionen
+
+//e clears vector array with optional integer index
+//r Î÷èñòêà ìàññèâà âåêòîðîâ, ñ ïîääåðæêîé èíäåêñèðîâàíèÿ
+/*r
+Â äàííîì Vector_3 vec[] îáíóëÿåò n êîîðäèíàò. Åñëè ind==NULL, òî
+î÷èùàåò ïåðâûå n ýëåìåíòîâ. Åñëè ind!=NULL, òî äëÿ i=0..n-1
+î÷èùàåò vec[ind[i]]
+Ñì. @ref indexed_calculations.
+*/
+void clear_vecarri(int n,Vector_3 *vec, int *ind=0);
+
+//e reflects the vector ini+dir*t+0.5*force*t^2 to be inside a box limited by 0 and box sizes
+//e changes dir according to the final state
+//e fills crossed dir with bit flags corresponding directions along which the walls were crossed
+Vector_3 Reflect(Vector_3& ini, double t,Vector_3 &dir, double *box, int flag=0x7, const Vector_3 &force=Vector_3());
+
+
+inline vec_type vec_area(const Vector_2 &vect1, const Vector_2 &vect2) {
+ return fabs(vect1[0]*vect2[1]-vect1[1]*vect2[0])/2;
+};
+
+inline vec_type vec_area(const Vector_3 &vect1, const Vector_3 &vect2) {
+ return (vect1%vect2).norm()/2;
+};
+
+// remake for vec_type!
+
+template <class num_t, class denum_t, class val_t>
+denum_t acccomp(const num_t x, const denum_t y, const val_t val) {
+ num_t eps_num=numeric_limits<num_t>::epsilon();
+ denum_t eps_denum=numeric_limits<denum_t>::epsilon();
+ return (eps_num>=eps_denum) ? acccomp(x, (num_t)y, (num_t)val) : acccomp((denum_t)x, y, (denum_t)val);
+}
+
+template <class num_t, class denum_t>
+denum_t acccomp(const num_t x, const denum_t y) {
+ return acccomp(x, y, num_t(1));
+}
+
+template<class T>
+bool acccomp(const T x, const T y, const T val) {
+ T eps=numeric_limits<T>::epsilon();
+ int iexp;
+ frexp(val,&iexp);
+ T mult=ldexp(.5, iexp+1);
+ T err=T(256)*mult*eps;
+ return fabs(x-y)<=err;
+}
+
+template<class T>
+bool acccomp(const T x, const T y) {
+ return acccomp(x, y, T(1));
+}
+
+template <class num_t, class denum_t>
+denum_t accdiv(const num_t x, const denum_t y) {
+ num_t eps_num=numeric_limits<num_t>::epsilon();
+ denum_t eps_denum=numeric_limits<denum_t>::epsilon();
+ return (eps_num>=eps_denum) ? accdiv1(x, (num_t)y) : accdiv1((denum_t)x, y);
+}
+
+
+template <class T>
+T accdiv1(T x, T y) {
+ T result;
+ T eps=numeric_limits<T>::epsilon();
+
+ T fr=x/y;
+ T ifr=floor(fr+T(.5));
+// T err=64*eps*(ifr!=0 ? fabs(ifr) : 1);
+ int mult;
+ if (ifr<=512)
+ mult=512;
+ else {
+ int iexp;
+ frexp(ifr,&iexp);
+ mult=int(ldexp(.5, iexp+1));
+ }
+ T err=mult*eps;
+ if (fabs(fr-ifr)<=err)
+ result=ifr;
+ else
+ result=fr;
+ return result;
+}
+
+
+
+
+template <class num_t, class denum_t, class P>
+denum_t accdiv_rmd(const num_t x, const denum_t y, P *remainder) {
+ num_t eps_num=numeric_limits<num_t>::epsilon();
+ denum_t eps_denum=numeric_limits<denum_t>::epsilon();
+ return (eps_num>=eps_denum) ? accdiv_rmd(x, (num_t)y, remainder) : accdiv_rmd((denum_t)x, y, remainder);
+}
+
+template <class T, class P>
+T accdiv_rmd(const T x, const T y, P *remainder) {
+ T result=accdiv(x, y);
+ T iresult=floor(result);
+ if (result-iresult>0)
+ *remainder=x-iresult*y;
+ else
+ *remainder=0;
+ return result;
+}
+
+//e returns random unit vector uniformely distributed in space (?? check this)
+inline Vector_3 randdir(){
+ vec_type xi1=2*((vec_type)rand())/RAND_MAX-1.;
+ vec_type xi2=((vec_type)rand())/RAND_MAX;
+ vec_type r1=sqrt(1.-xi1*xi1);
+ return Vector_3(r1*cos(2*M_PI*xi2),r1*sin(2*M_PI*xi2),xi1);
+}
+
+///\en Calculates extent of the vector container.
+/// \return the center of the vector set, optionally
+/// (if arguments are not NULL) fills the bounding box in \a box_min, \a box_max.
+template<class vec_inp_it>
+Vector_3 get_extent(vec_inp_it beg,vec_inp_it end, Vector_3* box_min=NULL,Vector_3* box_max=NULL){
+ if(beg==end)
+ return Vector_3();
+ Vector_3 center(*beg++);
+ Vector_3 cube1(center), cube2(center);
+ size_t n=1;
+ for(;beg!=end;++beg){
+ Vector_3 vec=*beg;
+ center+=vec;
+ for(size_t j=0;j<3;j++){
+ if(cube1[j]>vec[j])
+ cube1[j]=vec[j];
+ if(cube2[j]<vec[j])
+ cube2[j]=vec[j];
+ }
+ n++;
+ }
+ if(box_min)
+ *box_min=cube1;
+ if(box_max)
+ *box_max=cube2;
+ return center/n;
+}
+
+///\en Returns \a true if absolute value of \a a is at least \a factor times less than
+/// the absolute value of \a b.
+template<class T>
+bool much_less(const T& a, const T& b, const T &factor){
+ if(fabs(a)<fabs(b))
+ return fabs(a*factor/b)<1 ? true : false;
+ else
+ return false;
+}
+
+
+# endif // __VECTOR_3_H
+
diff --git a/lib/awpmd/ivutils/include/wavepacket.h b/lib/awpmd/ivutils/include/wavepacket.h
new file mode 100644
index 000000000..dc203f74b
--- /dev/null
+++ b/lib/awpmd/ivutils/include/wavepacket.h
@@ -0,0 +1,242 @@
+# ifndef WAVEPACKET_H
+# define WAVEPACKET_H
+
+# ifndef _USE_MATH_DEFINES
+# define _USE_MATH_DEFINES
+# endif
+
+# include <cmath>
+# include <complex>
+# include <functional>
+# include "cvector_3.h"
+
+using namespace std;
+
+/** @file wpmd.h
+ @brief Classes to handle Gaussian Wave Packets. */
+
+// Constants
+const double MIN_EXP_ARG = -15.; // Minimum noticeable argument for exp function
+
+class WavePacket;
+
+
+///\en Template for v=der operation in \ref Wavepacket::int2phys_der()
+template<class Type>
+struct eq_second : public binary_function <Type, Type, Type> {
+ Type operator()(const Type& _Left, const Type& _Right) const{
+ return _Right;
+ }
+};
+
+///\en Template for v=-der operation in \ref Wavepacket::int2phys_der()
+template<class Type>
+struct eq_minus_second : public binary_function <Type, Type, Type> {
+ Type operator()(const Type& _Left, const Type& _Right) const{
+ return -_Right;
+ }
+};
+
+///\en Compares complex numbers on a per component basis.
+/// \return \retval 0 if all component differences are 0 within tolerance \a tol (EQUAL),
+/// \retval -1 for LESS
+/// \retval 2 for GREATER
+template< class CT >
+int compare_compl(const CT &a, const CT& b, double tol=0.){
+ double dd=real(a)-real(b);
+ if(dd<-tol)
+ return -1;
+ if(dd>tol)
+ return 1;
+ dd=imag(a)-imag(b);
+ if(dd<-tol)
+ return -1;
+ if(dd>tol)
+ return 1;
+ return 0;
+}
+
+
+///\en Compares vectors on a per component basis.
+/// \return \retval 0 if all component differences are 0 within tolerance \a tol (EQUAL),
+/// \retval -1 for LESS
+/// \retval 2 for GREATER
+inline int compare_vec(const Vector_3 &a, const Vector_3& b, double tol=0.){
+ for(int i=0;i<3;i++){
+ double dd=a[i]-b[i];
+ if(dd<-tol)
+ return -1;
+ if(dd>tol)
+ return 1;
+ }
+ return 0;
+}
+
+
+/// wavepacket is w(x)=exp(-a*x^2+b*x+lz)
+class WavePacket{
+ /// constructs a conjugate packet
+ friend WavePacket conj(const WavePacket &wp);
+
+public:
+ cdouble a;
+ cVector_3 b;
+ cdouble lz;
+
+ WavePacket(const cdouble &sa=cdouble(1.,0.),const cVector_3 &sb=cVector_3(0.,0.), const cdouble &slz=0.): a(sa), b(sb), lz(slz){
+ }
+
+ WavePacket operator*(const WavePacket& other) const {
+ return WavePacket(a+other.a,b+other.b,lz+other.lz);
+ }
+
+ /// returns the integral of w(x) over 3D space
+ cdouble integral() const {
+ cdouble z = lz + b.norm2()/(4.*a);
+ if(real(z) < MIN_EXP_ARG) return 0.;
+ return pow(M_PI/a,3./2.)*exp(z);
+ }
+
+ /// init normalized packet with physical parameters: r0, p0, width, pw
+ /// w(x)=(3/2pi width^(3/4)exp[-(3/(4 width^2)-i pw/(2*width) )(x-r)^2+i p (x-r)]
+ void init(const double width=1., const Vector_3 &r=0., const Vector_3 &p=0., const double pw=0.){
+ a = (3./(2.*width) - cdouble(0.,1.)*pw)/(2.*width);
+ b = (2.*a)*r + cdouble(0.,1.)*p;
+ lz = log(3./(2.*M_PI*width*width))*(3./4.) + (-a*r.norm2() - cdouble(0.,1.)*(p*r));
+ }
+
+ /// init normalized packet with complex parameters a and b
+ /// w(x)=(3/2pi width^(3/4)exp[-(3/(4 width^2)-i pw/(2*width) )(x-r)^2+i p (x-r)]
+ void init(const cdouble &a_, const cVector_3 &b_){
+ a = a_;
+ b = b_;
+ Vector_3 r = get_r();
+ double r2 = r.norm2();
+ lz = cdouble( log( real(a)*(2./M_PI) )*(3./4.) - r2*real(a), r2*imag(a) - r*imag(b) );
+ }
+
+ cdouble operator()(const Vector_3 &x) const {
+ return exp(lz - a*x.norm2() + b*x);
+ }
+
+ /// ajusts lz so that Integral[w*(conj(w))] is 1 after this operation
+ WavePacket& normalize(){
+ //lz=0.;
+ //lz=overlap(conj(*this));
+ //lz=(-1./2)*log(lz);
+ Vector_3 r = get_r();
+ double r2 = r.norm2();
+ lz = cdouble( log( real(a)*(2./M_PI) )*(3./4.) - r2*real(a), r2*imag(a) - r*imag(b) );
+ return *this;
+ }
+
+ /// computes 3D overlap of wavepackets Inegral[w*other]
+ cdouble overlap(const WavePacket &other) const{
+ WavePacket wp=(*this)*other;
+ return wp.integral();
+ }
+
+ /// returns translated packet to the position of r'=r+dr
+ WavePacket translate(const Vector_3 &dr) const {
+ WavePacket wp(a,b,lz);
+ wp.b+=2*dr*a;
+ Vector_3 r=get_r();
+ double dr2=(r+dr).norm2()-r.norm2();
+ wp.lz+=-a*dr2-cdouble(0.,(get_p()*dr));
+ return wp;
+ }
+
+ /// width
+ double get_width() const{
+ return sqrt(3./4./real(a));
+ }
+ /// width momentum
+ double get_pwidth() const{
+ return -imag(a)*sqrt(3./real(a));
+ }
+ /// both width and width momentum
+ pair<double,double> get_width_pars() const{
+ double c=sqrt(3./2./real(a));
+ return make_pair(c/2,-imag(a)*c);
+ }
+ /// position
+ Vector_3 get_r() const {
+ return real(b)/(2*real(a));
+ }
+ /// momentum
+ Vector_3 get_p() const {
+ return imag(b) - real(b)*(imag(a)/real(a));
+ }
+
+ ///\en Transforms derivatives of a function whith respect to WP parameters
+ /// from internal into physical representation, i. e.:\n
+ /// from df/d{are,aim,b0re,b0im,b1re,b1im,b2re,b2im} (8 values accessed by input iterator d_it in the given order)\n
+ /// to df/d{x0,x1,x2}, df/d{p0,p1,p2}, df/dw, df/dpw
+ /// The supplied inputs (val) are modified by op: val=op(val,phys_der).
+ /// Use operation=eq_second for the supplied inputs to be replaced by new physical derivative values.
+ /// The inpput and output locations may coinside, an internal buffer is used for transformation.
+ template<template<class A> class operation, class d_it, class dfdx_it, class dfdp_it, class dfdw_it, class dfdpw_it>
+ void int2phys_der(d_it dfdi_,dfdx_it dfdx, dfdp_it dfdp, dfdw_it dfdw, dfdpw_it dfdpw, double h_p=h_plank) const {
+ operation<double> op;
+ double dfdi[8], dfn[8];// internal buffer
+ for(int i=0;i<8;i++)
+ dfdi[i]=*dfdi_++;
+ double w=get_width();
+ Vector_3 r=get_r();
+ double t=3/(2*w*w*w);
+ dfn[6]= -t*dfdi[0]-imag(a)*dfdi[1]/w; //dw
+ dfn[7]=-dfdi[1]/(2*w*h_p); // dpw
+ for(int i=0;i<3;i++){
+ dfn[i]= 2*real(a)*dfdi[2+2*i]+2*imag(a)*dfdi[2+2*i+1];
+ dfn[3+i]= dfdi[2+2*i+1]*(/*m_electron*/1./h_p) ; //*(h_plank/m_electron);
+ dfn[7]+=-(r[i]*dfdi[2+2*i+1]/w)/h_p;
+ dfn[6]+=-2*r[i]*(t*dfdi[2+2*i]+imag(a)*dfdi[2+2*i+1]/w);
+ }
+ int i=0;
+ for(int k=0;k<3;k++)
+ *dfdx++=op(*dfdx,dfn[i++]);
+ for(int k=0;k<3;k++)
+ *dfdp++=op(*dfdp,dfn[i++]);
+ *dfdw=op(*dfdw,dfn[i++]);
+ *dfdpw=op(*dfdpw,dfn[i++]);
+ }
+
+
+ ///\en Compares the wave packet to another on a per component basis.
+ /// \return \retval 0 if all component differences are 0 within tolerance \a tol (EQUAL),
+ /// \retval -1 for LESS
+ /// \retval 2 for GREATER
+ int compare(const WavePacket &other, double tol=0.) const {
+ int res=compare_compl(a,other.a, tol);
+ if(res)
+ return res;
+ for(int i=0;i<3;i++){
+ res=compare_compl(b[i],other.b[i]);
+ if(res)
+ return res;
+ }
+ return 0;
+ }
+
+};
+
+ /*double w=wk.get_width();
+ Vector_3 r=wk.get_r();
+ double t=3/(2*w*w*w);
+ fe_w[ic1+k1]+= t*E_der[s1][indw1+8*k1]+imag(wk.a)*E_der[s1][indw1+8*k1+1]/w;
+ fe_pw[ic1+k1]+=E_der[s1][indw1+8*k1+1]/(2*w*h_plank);
+ for(int i=0;i<3;i++){
+ fe_x[ic1+k1][i]+= -2*real(wk.a)*E_der[s1][indw1+8*k1+2+2*i]-2*imag(wk.a)*E_der[s1][indw1+8*k1+2+2*i+1];
+ fe_p[ic1+k1][i]+= (-E_der[s1][indw1+8*k1+2+2*i+1])*(m_electron/h_plank); //*(h_plank/m_electron);
+ fe_pw[ic1+k1]+=(r[i]*E_der[s1][indw1+8*k1+2+2*i+1]/w)/h_plank;
+ fe_w[ic1+k1]+=2*r[i]*(t*E_der[s1][indw1+8*k1+2+2*i]+imag(wk.a)*E_der[s1][indw1+8*k1+2+2*i+1]/w);
+ }*/
+
+
+/// constructs a conjugate packet
+inline WavePacket conj(const WavePacket &wp){
+ return WavePacket(conj(wp.a),conj(wp.b),conj(wp.lz));
+}
+
+
+# endif // WAVEPACKET_H
\ No newline at end of file
diff --git a/lib/awpmd/ivutils/src/logexc.cpp b/lib/awpmd/ivutils/src/logexc.cpp
new file mode 100644
index 000000000..d29745fda
--- /dev/null
+++ b/lib/awpmd/ivutils/src/logexc.cpp
@@ -0,0 +1,25 @@
+//# ifdef USE_STDAFX
+//# include "stdafx.h"
+//# endif
+
+# include "logexc.h"
+
+message_logger std_log;
+
+message_logger &message_logger::global(){
+ if(!glogp){
+ std_log.set_global(true);
+ }
+ return *glogp;
+}
+
+message_logger *message_logger::glogp=NULL;
+stdfile_logger default_log("",0,stdout,stderr,vblALLBAD|vblMESS1,vblFATAL,1);
+
+const char *fmt(const char *format,...){
+ va_list args;
+ va_start(args,format);
+ static char buff[1024];
+ vsnprintf(buff,1024,format,args);
+ return buff;
+}
diff --git a/lib/awpmd/license/COPYING b/lib/awpmd/license/COPYING
new file mode 100644
index 000000000..623b6258a
--- /dev/null
+++ b/lib/awpmd/license/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/lib/awpmd/license/awpmd_license.txt b/lib/awpmd/license/awpmd_license.txt
new file mode 100644
index 000000000..346b4efbd
--- /dev/null
+++ b/lib/awpmd/license/awpmd_license.txt
@@ -0,0 +1,8 @@
+AWPMD library license, Version 1
+
+Copyright (c) 1992-2011 Ilya Valuev
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+AWPMD library is free software, you can redistribute and modify it under the
+terms of WXWINDOWS LIBRARY LICENSE, Version 3 (www.wxwidgets.org)
diff --git a/lib/awpmd/license/wx_license.txt b/lib/awpmd/license/wx_license.txt
new file mode 100644
index 000000000..c91deed0b
--- /dev/null
+++ b/lib/awpmd/license/wx_license.txt
@@ -0,0 +1,53 @@
+ wxWindows Library Licence, Version 3
+ ====================================
+
+ Copyright (c) 1998 Julian Smart, Robert Roebling et al
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this licence document, but changing it is not allowed.
+
+ WXWINDOWS LIBRARY LICENCE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public Licence as published by
+ the Free Software Foundation; either version 2 of the Licence, or (at
+ your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
+ General Public Licence for more details.
+
+ You should have received a copy of the GNU Library General Public Licence
+ along with this software, usually in a file named COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA.
+
+ EXCEPTION NOTICE
+
+ 1. As a special exception, the copyright holders of this library give
+ permission for additional uses of the text contained in this release of
+ the library as licenced under the wxWindows Library Licence, applying
+ either version 3 of the Licence, or (at your option) any later version of
+ the Licence as published by the copyright holders of version 3 of the
+ Licence document.
+
+ 2. The exception is that you may use, copy, link, modify and distribute
+ under the user's own terms, binary object code versions of works based
+ on the Library.
+
+ 3. If you copy code from files distributed under the terms of the GNU
+ General Public Licence or the GNU Library General Public Licence into a
+ copy of this library, as this licence permits, the exception does not
+ apply to the code that you add in this way. To avoid misleading anyone as
+ to the status of such modified files, you must delete this exception
+ notice from such code and/or adjust the licensing conditions notice
+ accordingly.
+
+ 4. If you write modifications of your own for this library, it is your
+ choice whether to permit this exception to apply to your modifications.
+ If you do not wish that, you must delete the exception notice from such
+ code and/or adjust the licensing conditions notice accordingly.
+
+
diff --git a/lib/awpmd/systems/interact/TCP/tcpdefs.h b/lib/awpmd/systems/interact/TCP/tcpdefs.h
new file mode 100644
index 000000000..e1e0b3553
--- /dev/null
+++ b/lib/awpmd/systems/interact/TCP/tcpdefs.h
@@ -0,0 +1,17 @@
+# ifndef _TCPDEFS_H
+# define _TCPDEFS_H
+
+//Constants
+const double sqr_2_over_3 = 0.816496580927726;
+const double two_over_sqr_pi = 1.12837916709551;
+
+# ifndef PLASMA_UNITS // using GridMD units: A, eV, m_proton=1
+const double h_plank=0.06442021524615668;
+const double h_sq=h_plank*h_plank;
+const double m_electron=1./1836.1527556560675;
+const double m_proton=1.;
+const double coul_pref=14.39965172693122; // e^2/(4*pi*eps0), eV*A
+const double eV_to_K=11604.447517053462; // Temperature in K correspondent to 1eV
+# endif
+
+# endif
\ No newline at end of file
diff --git a/lib/awpmd/systems/interact/TCP/wpmd.cpp b/lib/awpmd/systems/interact/TCP/wpmd.cpp
new file mode 100644
index 000000000..ad5d8e26b
--- /dev/null
+++ b/lib/awpmd/systems/interact/TCP/wpmd.cpp
@@ -0,0 +1,890 @@
+# include "wpmd.h"
+
+
+
+// Calculates derivative overlap matrix IDD
+void OverlapDeriv::calc_der_overlap(bool self, cdouble cc1, cdouble c2){
+ cVector_3 I3 = I1 * ((bb_4a + 2.5) / w12.a);
+ cdouble I4 = I0 * ( bb_4a *(bb_4a + 5.) + 3.75 ) / w12.a / w12.a;
+
+ // calculate derivatives <(phi_k)'_q_k | (phi_l)'_q_l>:
+ IDD.set(0, 0, I4 - (d1.l + d2.l)*I2 + d1.l*d2.l*I0 ); // over a_k_re and a_l_re
+ IDD.set(0, 1, i_unit*( I4 - (d1.l + d2.m)*I2 + d1.l*d2.m*I0 ) ); // over a_k_re and a_l_im
+ if(!self)
+ IDD.set(1, 0, i_unit1*( I4 + (d1.m - d2.l)*I2 - d1.m*d2.l*I0 ) ); // over a_k_im and a_l_re
+ else
+ IDD.set(1,0, conj(IDD(0,1)));
+ IDD.set(1, 1, I4 + (d1.m - d2.m)*I2 - d1.m*d2.m*I0 ); // over a_k_im and a_l_im
+
+ for(int i=0;i<3;i++){
+ IDD.set(0, (i+1)*2, -I3[i] + d1.l*I1[i] + d2.u[i]*(d1.l*I0 - I2) ); // over a_k_re and b_l_re
+ IDD.set(0, (i+1)*2+1, i_unit1*( I3[i] - d1.l*I1[i] + d2.v[i]*(I2 - d1.l*I0) ) ); // over a_k_re and b_l_im
+ IDD.set(1, (i+1)*2, i_unit *( I3[i] + d1.m*I1[i] + d2.u[i]*(I2 + d1.m*I0) ) ); // over a_k_im and b_l_re
+ IDD.set(1, (i+1)*2+1, -I3[i] - d1.m*I1[i] - d2.v[i]*(d1.m*I0 + I2) ); // over a_k_im and b_l_im
+ if(!self) {
+ IDD.set((i+1)*2, 0, -I3[i] + d2.l*I1[i] + d1.u[i]*(d2.l*I0 - I2) ); // over b_k_re and a_l_re
+ IDD.set((i+1)*2+1, 0, i_unit *( I3[i] - d2.l*I1[i] - d1.v[i]*(I2 - d2.l*I0) ) ); // over b_k_im and a_l_re
+ IDD.set((i+1)*2, 1, i_unit1*( I3[i] - d2.m*I1[i] + d1.u[i]*(I2 - d2.m*I0) ) ); // over b_k_re and a_l_im
+ IDD.set((i+1)*2+1, 1, -I3[i] + d2.m*I1[i] - d1.v[i]*(d2.m*I0 - I2) ); // over b_k_im and a_l_im
+ }
+ else{
+ IDD.set((i+1)*2, 0, conj(IDD(0,(i+1)*2)) ); // over b_k_re and a_l_re
+ IDD.set((i+1)*2+1, 0, conj(IDD(0,(i+1)*2+1)) ); // over b_k_im and a_l_re
+ IDD.set((i+1)*2, 1, conj(IDD(1,(i+1)*2)) ); // over b_k_re and a_l_im
+ IDD.set((i+1)*2+1, 1, conj(IDD(1,(i+1)*2+1)) ); // over b_k_im and a_l_im
+ }
+
+ for(int j=0;j<3;j++){
+ if(!self || j>=i){
+ cdouble I2ij = I0 / w12.a *
+ (i==j ? w12.b[i]*w12.b[i] / w12.a / 4 + 0.5
+ : w12.b[i]*w12.b[j] / w12.a / 4);
+ // over b_k_re and b_l_re
+ IDD.set((j+1)*2, (i+1)*2, I2ij + d1.u[i]*I1[j] + d2.u[j]*(I1[i] + d1.u[i]*I0) );
+ // over b_k_re and b_l_im
+ IDD.set((j+1)*2, (i+1)*2+1, i_unit *( I2ij + d1.u[i]*I1[j] + d2.v[j]*(I1[i] + d1.u[i]*I0) ) );
+ // over b_k_im and b_l_re
+ if(!self || i!=j)
+ IDD.set((j+1)*2+1, (i+1)*2, i_unit1*( I2ij - d1.v[i]*I1[j] + d2.u[j]*(I1[i] - d1.v[i]*I0) ) );
+ else
+ IDD.set((j+1)*2+1, (i+1)*2, conj(IDD((i+1)*2,(j+1)*2+1)));
+ // over b_k_im and b_l_im
+ IDD.set((j+1)*2+1,(i+1)*2+1, I2ij - d1.v[i]*I1[j] + d2.v[j]*(I1[i] - d1.v[i]*I0) );
+ }
+ else{ // self && j<i
+ // over b_k_re and b_l_re
+ IDD.set((j+1)*2, (i+1)*2, conj(IDD((i+1)*2, (j+1)*2)) );
+ // over b_k_re and b_l_im
+ IDD.set((j+1)*2, (i+1)*2+1, conj(IDD((i+1)*2+1,(j+1)*2)) );
+ // over b_k_im and b_l_re
+ IDD.set((j+1)*2+1, (i+1)*2, conj(IDD((i+1)*2,(j+1)*2+1)) );
+ // over b_k_im and b_l_im
+ IDD.set((j+1)*2+1,(i+1)*2+1, conj(IDD((i+1)*2+1,(j+1)*2+1 )) );
+ }
+ } // j
+ } // i
+
+ if(real(cc1)){ // adding terms for split-packet
+
+ IDD.set(8, 0, c2*da2_re() ); // over c_1_re and a_2_re
+ IDD.set(8, 1, c2*da2_im() ); // over c_1_re and a_2_im
+ IDD.set(9, 0, -i_unit*c2*da2_re() ); // over c_1_im and a_2_re
+ IDD.set(9, 1, -i_unit*c2*da2_im() ); // over c_1_im and a_2_im
+
+ IDD.set(0, 8, cc1*da1_re() ); // over c_2_re and a_1_re
+ IDD.set(1, 8, cc1*da1_im() ); // over c_2_re and a_1_im
+ IDD.set(0, 9, i_unit*cc1*da1_re() ); // over c_2_im and a_1_re
+ IDD.set(1, 9, i_unit*cc1*da1_im() ); // over c_2_im and a_1_im
+
+ for(int i=0;i<3;i++){
+ IDD.set(8, 2+2*i, c2*db2_re(i) ); // over c_1_re and b_2_re
+ IDD.set(8, 2+2*i+1, c2*db2_im(i) ); // over c_1_re and b_2_im
+ IDD.set(9, 2+2*i, -i_unit*c2*db2_re(i) ); // over c_1_im and b_2_re
+ IDD.set(9, 2+2*i+1, -i_unit*c2*db2_im(i) ); // over c_1_im and b_2_im
+
+ IDD.set(2+2*i, 8, cc1*db1_re(i) ); // over c_2_re and b_1_re
+ IDD.set(2+2*i+1, 8, cc1*db1_im(i) ); // over c_2_re and b_1_im
+ IDD.set(2+2*i, 9, i_unit*cc1*db1_re(i) ); // over c_2_im and i_1_re
+ IDD.set(2+2*i+1, 9, i_unit*cc1*db1_im(i) ); // over c_2_im and a_1_im
+ }
+
+ IDD.set(8, 8, I0 ); // over c_1_re and c_2_re
+ IDD.set(8, 9, i_unit*I0 ); // over c_1_re and c_2_im
+ IDD.set(9, 8, -i_unit*I0 ); // over c_1_im and c_2_re
+ IDD.set(9, 9, I0 ); // over c_1_im and c_2_im
+ }
+}
+
+
+
+WavePacket AWPMD::create_wp(Vector_3 &x, Vector_3 &v, double &w, double &pw, double mass){
+ if(mass<0)
+ mass=me;
+ if(constraint==FIX){
+ if(w0>0)
+ w=w0;
+ pw=0.;
+ }
+
+ double rw;
+ if(Lextra>0){ // width PBC, keeping the width are within [0,Lextra]
+ w=fmod(w,Lextra);
+ if(w<0) w+=Lextra;
+ rw=w; // WP width for energy evaluation is within [0, L/2]
+ if(rw > Lextra/2) rw = Lextra - rw;
+ }
+ else
+ rw=w;
+
+ WavePacket wp;
+ wp.init(rw,x,v*mass*one_h,pw*one_h);
+ return wp;
+}
+
+
+void AWPMD::resize(int flag){
+ for(int s=0;s<2;s++){
+ //0. resizing matrices
+ Y[s].init(ne[s],1);
+ O[s].init(ne[s],1);
+ Oflg[s].init(ne[s],1);
+ //Te[s].init(nel,1);
+ //Tei[s].init(nel,1);
+ Eep[s].assign((size_t)nwp[s],0);
+ Eeip[s].assign((size_t)nwp[s],0);
+ Eeep[s].assign((size_t)nwp[s],0);
+ Ewp[s].assign((size_t)nwp[s],0);
+
+ if(flag&(0x8|0x4) && approx!=HARTREE){ //electron forces, L and M are needed
+ M[s].init(ne[s],nvar[s]);
+ L[s].init(ne[s],nvar[s]);
+ }
+ }
+ Eiep.assign((size_t)ni,0);
+ Eiip.assign((size_t)ni,0);
+
+
+}
+
+
+//e sets Periodic Boundary Conditions
+//e using bit flags: 0x1 -- PBC along X
+//e 0x2 -- PBC along Y
+//e 0x4 -- PBC along Z
+//e cell specifies the lengths of the simulation box in all directions
+//e if PBCs are used, the corresponding coordinates of electrons and ions
+//e in periodic directions must be within a range [0, cell[per_dir])
+//e @returns 1 if OK
+int AWPMD::set_pbc(const Vector_3P pcell, int pbc_){
+ if(!pcell)
+ pbc=0;
+ else{
+ pbc=pbc_;
+ cell=*pcell;
+ }
+ return 1;
+}
+
+//e setup elctrons: forms internal wave packet representations
+//e if PBCs are used the coords must be within a range [0, cell)
+int AWPMD::set_electrons(int s, int n, Vector_3P x, Vector_3P v, double* w, double* pw, double mass, double *q)
+{
+ if(s < 0 || s > 1)
+ return LOGERR(-1,fmt("AWPMD.set_electrons: invaid s setting (%d)!",s),LINFO);
+
+ norm_matrix_state[s] = NORM_UNDEFINED;
+ nwp[s]=ne[s]=n;
+ nvar[s]=8*n;
+ wp[s].resize(n);
+
+ partition1[s].clear();
+ for(int i=0;i<n;i++){
+ wp[s][i]=create_wp(x[i],v[i],w[i],pw[i], mass);
+ // assign default partition
+ partition1[s].push_back(i+1);
+ }
+
+ // assign electronic charge
+ if(q)
+ qe[s].assign(q,q+nwp[s]);
+ else
+ qe[s].assign(nwp[s],-1);
+
+
+ return 1;
+}
+
+//e setup ion charges and coordinates
+//e if PBCs are used the coords must be within a range [0, cell)
+int AWPMD::set_ions(int n, double* q, Vector_3P x)
+{
+ ni = n;
+ qi.resize(n);
+ xi.resize(n);
+ partition1[2].clear();
+ for(int i=0;i<n;i++){
+ qi[i] = q[i], xi[i] = x[i];
+ // assign default partition for ions
+ partition1[2].push_back(i+1);
+ }
+
+ return 1;
+}
+
+//e same as interaction, but using Hartee factorization (no antisymmetrization)
+int AWPMD::interaction_hartree(int flag, Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+
+ // 0. resizing the arrays if needed
+ enum APPROX tmp=HARTREE;
+ swap(tmp,approx); // do not neeed large matrices
+ resize(flag);
+ swap(tmp,approx);
+ //1. clearing forces
+ clear_forces(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+
+ Eee = Ew = 0.;
+ for(int s1=0;s1<2;s1++){
+ Ee[s1]=0.;
+ Eei[s1]=0.;
+ for(int c1=0;c1<ne[s1];c1++){
+ // width part
+ double w1=wp[s1][c1].get_width();
+ /*double sgn1=1;
+ if(Lextra>0){ // width PBC
+ if(w1>Lextra-w1){
+ w1=-(Lextra-w1); // '-' is to change derivative sign
+ sgn1=-1;
+ }
+ }*/
+ Vector_3 r1=wp[s1][c1].get_r();
+ Vector_3 p=wp[s1][c1].get_p()*h_plank;
+ Vector_3 pw=wp[s1][c1].get_pwidth()*h_plank;
+ // energy contribution
+ Ee[s1] += (p.norm2()+pw.norm2())/(2*me);
+ Ew += h2_me*9./(8.*w1*w1);
+ if(constraint == HARM) Ew += harm_w0_4 * w1*w1;
+ // width force contribution
+ //double dE=2*Epot/w;
+ //if(d->fw1)d->fw1[c1]+=dE;
+ //if(fw2 && fw2!=fw1)fw2[c1]+=dE;
+
+ // e-e interaction
+ for(int s2=s1;s2<2;s2++){
+ for(int c2=(s1==s2 ? c1+1 : 0) ;c2<ne[s2];c2++){
+ double w2=wp[s2][c2].get_width();
+ Vector_3 v12=wp[s2][c2].get_r()-r1;
+ // position PBC
+ v12=v12.rcell1(cell,pbc);
+ double r12=v12.normalize();
+ /*double sgn2=1; // signs
+ if(Lextra>0){ // width PBC
+ if(w2>Lextra-w2){
+ w2=-(Lextra-w2); // '-' is to change derivative sign
+ sgn2=-1;
+ }
+ }*/
+ double wsq=w1*w1+w2*w2;
+ double argw=sqrt((2./3.)*wsq);
+
+ //double arg=r12/argw;
+ //double erfa=erf(arg);
+ double Epot=coul_pref*erf_div(r12,1./argw); //erfa/r12;
+ Eee+=Epot;
+
+ // force contribution
+ /*double dEw=coul_pref*two_over_sqr_pi*exp(-arg*arg)/argw;
+ double dEpot=(Epot-dEw)/r12;
+ if(!d->fixw){
+ dEw/=wsq;
+ if(d->fw1 && c1>=0){
+ d->fw1[c1]+=sgn1*dEw*w1;
+ }
+ if(d->fw2){
+ d->fw2[c2]+=sgn2*dEw*w2;
+ }
+ }*/
+ }
+ }
+ // e-i interaction
+ double wsq1=w1*w1;
+ double argw=sqr_2_over_3*w1;
+ for(int i=0;i<ni;i++){
+ Vector_3 v12=xi[i]-r1;
+ // position PBC
+ v12=v12.rcell1(cell,pbc);
+ double r12=v12.normalize();
+
+ //double arg=r12/argw;
+ //double erfa=erf(arg);
+ double cel=-coul_pref*qi[i]; // electron charge is always -1
+ double Epot=cel*erf_div(r12,1./argw); //erfa/r12;
+ Eei[s1]+=Epot;
+ //printf("(%g %g %g)- (%g %g %g)\n",r1[0],r1[1],r1[2],xi[i][0],xi[i][1],xi[i][2]);
+ //printf("awp(%d,%d:%d)[%g]: %g\n",i,s1,c1,r12,Epot);
+ // force contribution
+ if(flag&0x3){
+ double arg=r12/argw;
+ double dEw=cel*two_over_sqr_pi*exp(-arg*arg)/argw;
+ double dEpot=(Epot-dEw)/r12;
+ fi[i]+=v12*dEpot; // ionic force
+ }
+ // electron force
+ /*if(!d->fixw){
+ dEw/=wsq;
+ if(d->fw1 && c1>=0){
+ d->fw1[c1]+=sgn1*dEw*w1;
+ }
+ }*/
+ }
+ }
+ }
+ if(calc_ii)
+ interaction_ii(flag,fi);
+ return 1;
+}
+
+
+//e initializes internal buffers for calculations (set_electrons must be called first)
+//int init(){}
+
+//e calculates interaction in the system of ni ions + electrons
+//e the electonic subsystem must be previously setup by set_electrons, ionic by set_ions
+//e the iterators are describing ionic system only
+// 0x1 -- give back ion forces
+// 0x2 -- add ion forces to the existing set
+// 0x4 -- calculate derivatives for electronic time step (NOT IMPLEMENTED)
+//e if PBCs are used the coords must be within a range [0, cell)
+int AWPMD::interaction(int flag, Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ if(approx==HARTREE)
+ return interaction_hartree(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+ // 0. resizing the arrays if needed
+ resize(flag);
+ // 1. clearing forces
+ clear_forces(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+
+ //2. calculating overlap matrix
+ for(int s=0;s<2;s++){
+ int nes = ne[s];
+ if(nes == 0) continue;
+
+ for(int k=0;k<nes;k++){
+ Y[s].set(k,k,1.); // Diagonal elements (=1)
+ Oflg[s](k,k) = 1;
+ for(int l=k+1;l<nes;l++){
+ cdouble I0kl = pbc_mul(wp[s][l],wp[s][k]).integral(); // Non-diagonal elements
+ Y[s].set(k,l,I0kl);
+ Oflg[s](k,l) = (norm(I0kl) > ovl_tolerance);
+ }
+ }
+ O[s] = Y[s]; // save overlap matrix
+
+ //3. inverting the overlap matrix
+ int info=0;
+ if(nes){
+ /*FILE *f1=fopen(fmt("matrO_%d.d",s),"wt");
+ fileout(f1,Y[s],"%15g");
+ fclose(f1);8*/
+
+ ZPPTRF("L",&nes,Y[s].arr,&info);
+ // analyze return code here
+ if(info<0)
+ return LOGERR(info,fmt("AWPMD.interacton: call to ZPTRF failed (exitcode %d)!",info),LINFO);
+ ZPPTRI("L",&nes,Y[s].arr,&info);
+ if(info<0)
+ return LOGERR(info,fmt("AWPMD.interacton: call to ZPTRI failed (exitcode %d)!",info),LINFO);
+
+
+ /*f1=fopen(fmt("matrY_%d.d",s),"wt");
+ fileout(f1,Y[s],"%15g");
+ fclose(f1);*/
+ }
+
+ // Clearing matrices for electronic forces
+ if(flag&0x4){
+ Te[s].Set(0.);
+ Tei[s].Set(0.);
+ }
+ }
+
+ Vector_3 ndr;
+ // calculating single particle contribution
+ for(int s=0;s<2;s++){
+ Ee[s]=Eei[s]=0.;
+ for(int k=0;k<ne[s];k++){
+ for(int l=k;l<ne[s];l++){
+
+ if( !Oflg[s](k,l) ) continue; // non-overlapping WPs
+
+ // electrons kinetic energy
+ WavePacket wk=wp[s][k];
+ WavePacket& wl=wp[s][l];
+ if(pbc)
+ ndr=move_to_image(wl,wk);
+
+ WavePacket wkl=wl*conj(wk);
+ //Vector_3 rrkl=wkl.get_r();
+ cVector_3 v1=wl.b*conj(wk.a)-conj(wk.b)*wl.a;
+ cdouble v=(v1*v1)/wkl.a;
+ v-=6.*conj(wk.a)*wl.a;
+ v/=wkl.a;
+ cdouble I0kl = O[s](k,l);
+ cdouble dE=-h2_me*I0kl*v/2;
+ if(flag&0x4) // matrix needed only for electronic forces
+ Te[s].set(k,l,dE);
+ // energy component (trace)
+ dE*=Y[s](l,k);
+ Ee[s]+=(l==k ? 1. : 2.)*real(dE);
+
+ cVector_3 dkl=wkl.b/(2.*wkl.a);
+
+ // e-i energy
+ cdouble sum(0.,0.);
+ for(int i=0;i<ni;i++){ // ions loop
+ cVector_3 gkli=dkl - cVector_3(xi[i]);
+
+ if(pbc) // correcting the real part (distance) according to PBC
+ gkli=rcell1(gkli,cell,pbc);
+ //-Igor- gkli=cVector_3(real(gkli).rcell1(cell,pbc),imag(gkli));
+
+ cdouble ngkli=gkli.norm();
+ cdouble c=sqrt(wkl.a);
+ //cdouble ttt = cerf_div(ngkli,c);
+ dE=-coul_pref*(qi[i])*I0kl*cerf_div(ngkli,c);
+
+ sum+=dE;
+ if(flag&0x3){// calculate forces on ions
+ if(fabs(real(ngkli))+fabs(imag(ngkli))>1e-10){
+ cdouble arg=ngkli*c;
+ cdouble dEw=-coul_pref*qi[i]*I0kl*two_over_sqr_pi*exp(-arg*arg)*c;
+ dE=(dE-dEw)/ngkli;
+ dE*=Y[s](l,k);
+ Vector_3 dir=-real(gkli);
+ dir.normalize();
+ fi[i]+=(l==k ? 1. : 2.)*real(dE)*dir;
+ }
+ }
+ }
+ dE=sum;
+ if(flag&0x4) // matrix needed only for electronic forces
+ Tei[s].set(k,l,dE);
+ // energy component (trace)
+ dE*=Y[s](l,k);
+ Eei[s]+=(l==k ? 1. : 2.)*real(dE);
+ }
+ }
+ }
+
+ // calculating e-e interaction
+ Eee = Ew = 0.;
+ // same spin
+ for(int s=0;s<2;s++){ // spin
+ for(int k=0;k<ne[s];k++){ //c1
+ for(int l=k+1;l<ne[s];l++){ //c3
+ for(int m=k;m<ne[s];m++){ //c2
+
+ if( Oflg[s](k,m) ) {
+ WavePacket wkm=pbc_mul(wp[s][m],wp[s][k]);
+ cVector_3 dkm=wkm.b/(2*wkm.a);
+ cdouble I0km=O[s](k,m);
+
+ // kl-mn
+ for(int n=l;n<ne[s];n++){ //c4
+ if(n<=m || !Oflg[s](l,n)) continue;
+
+ WavePacket wln=pbc_mul(wp[s][n],wp[s][l]);
+ if(pbc) // reducing the pair to elementary cell
+ ndr=move_to_image(wkm,wln); // mind the derivative: wln.b+=wln.a*ndr, wln.lz+=-wln.a*ndr^2-i*wln.old_p*ndr;
+ //Vector_3 rln=wln.get_r();
+
+ cVector_3 dln=wln.b/(2*wln.a);
+ cdouble dd=(dkm-dln).norm();
+ cdouble c=1./sqrt(1./wln.a+1./wkm.a);
+ cdouble Vklmn=coul_pref*I0km*O[s](l,n)*cerf_div(dd,c);
+
+ //cdouble arge=dkm*dkm*wkm.a+dln*dln*wln.a+wkm.lz+wln.lz;
+ //cdouble Vklmn=0.5*coul_pref*M_PI*M_PI*M_PI*exp(arge)*cerf_div(dd,c)/pow(wln.a*wkm.a,3./2.);
+ cdouble dE=Vklmn*(Y[s](m,k)*Y[s](n,l)-Y[s](m,l)*Y[s](n,k));
+ double rdE=real(dE);
+ if(m!=k || n!=l) // not the same pair
+ rdE*=2;
+ Eee+=rdE;
+ }//n
+ }
+
+ if( Oflg[s](l,m) ) {
+ WavePacket wlm=pbc_mul(wp[s][m],wp[s][l]);
+ cVector_3 dlm=wlm.b/(2*wlm.a);
+ cdouble I0lm=O[s](l,m);
+
+ // kl-nm
+ for(int n=l;n<ne[s];n++){
+ if(n<=m || !Oflg[s](k,n)) continue;
+
+ WavePacket wkn=pbc_mul(wp[s][n],wp[s][k]);
+ if(pbc) // reducing the pair to elementary cell
+ ndr=move_to_image(wlm,wkn); // mind the derivative: wln.b+=wln.a*ndr, wln.lz+=-wln.a*ndr^2-i*wln.old_p*ndr;
+
+ cVector_3 dkn=wkn.b/(2*wkn.a);
+ cdouble dd=(dkn-dlm).norm();
+ cdouble c=1./sqrt(1./wkn.a+1./wlm.a);
+ cdouble Vklnm=coul_pref*I0lm*O[s](k,n)*cerf_div(dd,c);
+
+ cdouble dE=Vklnm*(Y[s](n,k)*Y[s](m,l)-Y[s](n,l)*Y[s](m,k));
+ double rdE=real(dE);
+ if(m!=k || n!=l) // not the same pair
+ rdE*=2;
+ Eee+=rdE;
+ }//n
+ }
+ }// m
+ }// l
+ }// k
+ }// s
+
+ // different spin
+ for(int k=0;k<ne[0];k++){ // skm=0 //c1
+ for(int l=0;l<ne[1];l++){ // sln=1 //c3
+ for(int m=k;m<ne[0];m++){ //c2
+ if( Oflg[0](k,m) ) {
+ WavePacket wkm=pbc_mul(wp[0][m],wp[0][k]);
+ cVector_3 dkm=wkm.b/(2*wkm.a);
+ cdouble I0km=O[0](k,m);
+
+ for(int n=l;n<ne[1];n++){ // km-ln //c4
+ if( Oflg[1](n,l) ) {
+ WavePacket wln=pbc_mul(wp[1][l],wp[1][n]);
+ if(pbc) // reducing the pair to elementary cell
+ ndr=move_to_image(wkm,wln); // mind the derivative: wln.b+=wln.a*ndr, wln.lz+=-wln.a*ndr^2-i*wln.old_p*ndr;
+ //Vector_3 rln=wln.get_r();
+
+ cVector_3 dln=wln.b/(2*wln.a);
+ cdouble dd=(dkm-dln).norm();
+ cdouble c=1./sqrt(1./wln.a+1./wkm.a);
+ cdouble Vklmn=coul_pref*I0km*wln.integral()*cerf_div(dd,c);
+
+ cdouble dE=Vklmn*Y[0](m,k)*Y[1](n,l);
+ int Mkm=(m==k ? 1: 2);
+ int Mln=(n==l ? 1: 2);
+ double rdE=Mkm*Mln*real(dE); //!!!
+ Eee+=rdE;
+ } //if
+ } // n
+ } //if
+ } // m
+ }// l
+ }// k
+ if(calc_ii)
+ interaction_ii(flag,fi);
+ return 1;
+}
+
+//e Calculates Norm matrix and performs LU-factorization
+//e The result is saved in AWPMD::Norm[s]
+void AWPMD::norm_matrix(int s){
+ // Internal variables
+ int k, l, i, j, qi, qj;
+ int nes = ne[s], nes8 = nes*8, nnes8 = nes*nes8;
+
+ if(!nes) return;
+
+ // References for frequently used arrays
+ sqmatrix<double>& Norms = Norm[s];
+ chmatrix& Ys = Y[s];
+ smatrix<unsigned char>& Oflgs = Oflg[s];
+
+ // Allocate of vectors and matrices
+ Norms.init(nes8,1);
+ IDD.init(nes8,1);
+ if(ID.size() != nnes8)
+ ID.resize(nnes8), IDYs.resize(nnes8), ipiv.resize(nes8);
+
+ // Calculate first and second derivatives
+ for(k=0;k<nes;k++){
+ int k8 = k*8;
+ WavePacket& wk = wp[s][k];
+ NormDeriv dk(wk);
+ dk = conj(dk); // conjugate: mu -> -mu, v -> -v !!!
+
+ for(l=0;l<nes;l++){
+ if( !Oflgs(k,l) ) continue; // non-overlapping WPs
+
+ int l8 = l*8;
+ WavePacket wl = wp[s][l];
+ if(pbc) move_to_image(wk,wl);
+ WavePacket wkl=conj(wk)*wl;
+ NormDeriv dl(wl);
+
+ cdouble I0 = O[s](k,l);
+ cVector_3 I1 = wkl.b * (I0 / wkl.a / 2);
+ cdouble bb_4a = wkl.b.norm2() / wkl.a / 4;
+ cdouble I2 = I0 * (bb_4a + 1.5) / wkl.a;
+
+ // calculate derivatives <phi_k | (phi_l)'_q_l>:
+ int idx = k + l*nes8;
+ if(k != l) {
+ ID[idx] = dl.l*I0 - I2; // over a_l_re
+ ID[idx+nes] = i_unit*(dl.m*I0 - I2); // over a_l_im
+ for(i=0;i<3;i++){
+ ID[idx+((i+1)*2)*nes] = dl.u[i]*I0 + I1[i]; // over b_l_re
+ ID[idx+((i+1)*2+1)*nes] = i_unit*(dl.v[i]*I0 + I1[i]); // over b_l_im
+ }
+ } else { // k == l
+ ID[idx] = i_unit*imag(dl.l); // over a_l_re
+ ID[idx+nes] = i_unit*(dl.m - I2); // over a_l_im
+ for(i=0;i<3;i++){
+ ID[idx+((i+1)*2)*nes] = dl.u[i] + I1[i]; // over b_l_re
+ ID[idx+((i+1)*2+1)*nes] = 0.; // over b_l_im
+ }
+ }
+
+ if(k <= l) {
+ cVector_3 I3 = I1 * ((bb_4a + 2.5) / wkl.a);
+ cdouble I4 = I0 * ( bb_4a *(bb_4a + 5.) + 3.75 ) / wkl.a / wkl.a;
+
+ // calculate derivatives <(phi_k)'_q_k | (phi_l)'_q_l>:
+ IDD.set(k8, l8, I4 - (dk.l + dl.l)*I2 + dk.l*dl.l*I0 ); // over a_k_re and a_l_re
+ IDD.set(k8, l8+1, i_unit*( I4 - (dk.l + dl.m)*I2 + dk.l*dl.m*I0 ) ); // over a_k_re and a_l_im
+ if(k != l) IDD.set(k8+1, l8, i_unit1*( I4 + (dk.m - dl.l)*I2 - dk.m*dl.l*I0 ) ); // over a_k_im and a_l_re
+ IDD.set(k8+1, l8+1, I4 + (dk.m - dl.m)*I2 - dk.m*dl.m*I0 ); // over a_k_im and a_l_im
+
+ for(i=0;i<3;i++){
+ IDD.set(k8, l8+(i+1)*2, -I3[i] + dk.l*I1[i] + dl.u[i]*(dk.l*I0 - I2) ); // over a_k_re and b_l_re
+ IDD.set(k8, l8+(i+1)*2+1, i_unit1*( I3[i] - dk.l*I1[i] + dl.v[i]*(I2 - dk.l*I0) ) ); // over a_k_re and b_l_im
+ IDD.set(k8+1, l8+(i+1)*2, i_unit *( I3[i] + dk.m*I1[i] + dl.u[i]*(I2 + dk.m*I0) ) ); // over a_k_im and b_l_re
+ IDD.set(k8+1, l8+(i+1)*2+1, -I3[i] - dk.m*I1[i] - dl.v[i]*(dk.m*I0 + I2) ); // over a_k_im and b_l_im
+ if(k != l) {
+ IDD.set(k8+(i+1)*2, l8, -I3[i] + dl.l*I1[i] + dk.u[i]*(dl.l*I0 - I2) ); // over b_k_re and a_l_re
+ IDD.set(k8+(i+1)*2+1, l8, i_unit *( I3[i] - dl.l*I1[i] - dk.v[i]*(I2 - dl.l*I0) ) ); // over b_k_im and a_l_re
+ IDD.set(k8+(i+1)*2, l8+1, i_unit1*( I3[i] - dl.m*I1[i] + dk.u[i]*(I2 - dl.m*I0) ) ); // over b_k_re and a_l_im
+ IDD.set(k8+(i+1)*2+1, l8+1, -I3[i] + dl.m*I1[i] - dk.v[i]*(dl.m*I0 - I2) ); // over b_k_im and a_l_im
+ }
+
+ for(j=0;j<3;j++){
+ cdouble I2ij = I0 / wkl.a *
+ (i==j ? wkl.b[i]*wkl.b[i] / wkl.a / 4 + 0.5
+ : wkl.b[i]*wkl.b[j] / wkl.a / 4);
+ // over b_k_re and b_l_re
+ IDD.set(k8+(j+1)*2, l8+(i+1)*2, I2ij + dk.u[i]*I1[j] + dl.u[j]*(I1[i] + dk.u[i]*I0) );
+ // over b_k_re and b_l_im
+ IDD.set(k8+(j+1)*2, l8+(i+1)*2+1, i_unit *( I2ij + dk.u[i]*I1[j] + dl.v[j]*(I1[i] + dk.u[i]*I0) ) );
+ // over b_k_im and b_l_re
+ if(k != l) IDD.set(k8+(j+1)*2+1, l8+(i+1)*2, i_unit1*( I2ij - dk.v[i]*I1[j] + dl.u[j]*(I1[i] - dk.v[i]*I0) ) );
+ // over b_k_im and b_l_im
+ IDD.set(k8+(j+1)*2+1, l8+(i+1)*2+1, I2ij - dk.v[i]*I1[j] + dl.v[j]*(I1[i] - dk.v[i]*I0) );
+ } // j
+ } // i
+ } // if(k <= l)
+ } // k
+ } // l
+
+ // Calculate matrix product IDYs_(k,q_j) = Ys_(k,l) * <phi_l | (phi_j)'_q_j>
+ for(qj=0; qj<nes8; qj++){
+ j = qj / 8;
+ int idx = qj*nes;
+ for(k=0;k<nes;k++) {
+ cdouble sum = 0.;
+ for(l=0;l<nes;l++)
+ if( Oflgs(l,j) ) sum += ID[idx+l] * Ys(k,l);
+ IDYs[idx+k] = sum;
+ }
+ }
+
+ // Calculate Norm-matrix
+ for(qi=0; qi<nes8; qi++){
+ i = qi / 8;
+ int idxqi = qi*nes;
+
+ Norms(qi,qi) = 0.; // zero diagonal elements
+
+ for(qj=qi+1; qj<nes8; qj++){
+ j = qj / 8;
+ int idxqj = qj*nes;
+
+ // Calculate matrix product sum = <(phi_i)'_q_i | phi_k> * IDYs_(k,q_j)
+ cdouble sum = 0.;
+ for(k=0;k<nes;k++)
+ if( Oflgs(i,k) )
+ sum += IDYs[idxqj+k] * conj(ID[idxqi+k]);
+
+ // Update norm-matrix taking into account its anti-symmetry
+ double a = Oflgs(i,j) ? // IDD = 0 for non-overlapping WPs
+ h_plank2 * imag( (sum - IDD(qi,qj))*Ys(j,i) ) :
+ h_plank2 * imag( sum*Ys(j,i) );
+ Norms(qi,qj) = a;
+ Norms(qj,qi) = -a;
+ } // qj
+ } // qi
+
+# if 1
+ // transform norm matrix to the physical variables
+ for(i=0;i<nes;i++){
+ WavePacket wi=wp[s][i];
+ for(k=0;k<8;k++){
+ // iterator to list all N(8*i+k,*) with fixed 8*i+k
+ sqmatrix<double>::iterator mi=Norms.fix_first(8*i+k,0);
+ for(j=i ;j<nes;j++){ // TO DO: run this loop from i+1 and take simplectic form for (i,i) block
+ WavePacket wj=wp[s][j];
+ wj.int2phys_der< eq_second >(mi+8*j,mi+8*j,mi+8*j+3,mi+8*j+6,mi+8*j+7);
+ }
+ }// finished line of blocks from right
+ for(k= 8*i;k<nes8;k++){ // TO DO: run this loop from 8*i+8 and take simplectic form for (i,i) block
+ // iterator to list all N(8i+*,k) by fixed k
+ sqmatrix<double>::iterator mi=Norms.fix_second(8*i,k);
+ wi.int2phys_der< eq_second >(mi,mi,mi+3,mi+6,mi+7);
+ }// finished line of blocks from left
+
+ for(k=0;k<8;k++){ // filling the lower triangle according to antisymmetry
+ for(j=8*i+8;j<nes8;j++)
+ Norms(j,8*i+k)=-Norms(8*i+k,j);
+ }
+ }
+# endif
+# if 0
+
+ // transform norm matrix to the physical variables
+ for(i=0;i<nes;i++){
+ WavePacket wi=wp[s][i];
+ for(j=i;j<nes;j++){
+ WavePacket wj=wp[s][j];
+ for(k=0;k<8;k++){
+ // iterator to list all N(8*i+k,*) with fixed 8*i+k
+ sqmatrix<double>::iterator mi=Norms.fix_first(8*i+k,8*j);
+ wj.int2phys_der< eq_second >(mi,mi,mi+3,mi+6,mi+7);
+ }
+ for(k=0;k<8;k++){
+ // iterator to list all N(8*i+k,*) with fixed 8*i+k
+ sqmatrix<double>::iterator mi=Norms.fix_second(8*i,8*j+k);
+ wi.int2phys_der< eq_second >(mi,mi,mi+3,mi+6,mi+7);
+ }
+ if(i!=j){
+ for(int k1=0;k1<8;k1++){
+ for(int k2=0;k2<8;k2++)
+ Norms(8*j+k1,8*i+k2)=-Norms(8*i+k2,8*j+k1);
+ }
+ }
+ }
+ }
+# endif
+
+ norm_matrix_state[s] = NORM_CALCULATED;
+}
+
+//e Norm matrix LU-factorization
+void AWPMD::norm_factorize(int s) {
+ if( norm_matrix_state[s] != NORM_CALCULATED) norm_matrix(s);
+
+ int nes8 = ne[s]*8, info;
+ DGETRF(&nes8, &nes8, Norm[s].arr, &nes8, &ipiv[0], &info);
+ if(info < 0)
+ LOGERR(info,fmt("AWPMD.norm_factorize: call to DGETRF failed (exitcode %d)!",info),LINFO);
+
+ norm_matrix_state[s] = NORM_FACTORIZED;
+}
+
+
+//e Norm matrix inversion
+void AWPMD::norm_invert(int s) {
+ if( norm_matrix_state[s] != NORM_FACTORIZED) norm_factorize(s);
+
+ int nes8 = ne[s]*8, info;
+ int IDD_size = (int)IDD.get_datasize(nes8);
+
+ DGETRI(&nes8, Norm[s].arr, &nes8, &ipiv[0], (double*)IDD.arr, &IDD_size, &info); // use IDD for work storage
+ if(info < 0)
+ LOGERR(info,fmt("AWPMD.norm_invert: call to DGETRI failed (exitcode %d)!",info),LINFO);
+
+ norm_matrix_state[s] = NORM_INVERTED;
+}
+
+
+//e Get the determinant of the norm-matrix for the particles with spin s
+double AWPMD::norm_matrix_det(int s) {
+ double det = 1.;
+ int nes8 = ne[s]*8;
+
+ if(!nes8) return det;
+ if(norm_matrix_state[s] != NORM_FACTORIZED) norm_factorize(s);
+
+ sqmatrix<double>& Norms = Norm[s];
+ for(int i=0; i<nes8; i++)
+ det *= Norms(i, i); // product of the diagonal elements
+
+ return det;
+}
+
+
+//e Get the determinant logarithm of the norm-matrix for the particles with spin s
+double AWPMD::norm_matrix_detl(int s) {
+ double detl = 0.;
+ int nes8 = ne[s]*8;
+
+ if(!nes8) return detl;
+ if(norm_matrix_state[s] != NORM_FACTORIZED) norm_factorize(s);
+
+ sqmatrix<double>& Norms = Norm[s];
+ for(int i=0; i<nes8; i++)
+ detl += log(fabs( Norms(i, i) )); // product of the diagonal elements
+
+ return detl;
+}
+
+
+double AWPMD::get_energy(){
+ double res=Eee + Ew;
+ for(int s=0;s<2;s++)
+ res+=Eei[s]+Ee[s];
+ if(calc_ii)
+ res+=Eii;
+ return res;
+}
+
+//e makes timestep of electronic component (NOT IMPLEMENTED)
+int AWPMD::step(double dt){
+ return -1;
+}
+
+
+//e gets current electronic coordinates
+int AWPMD::get_electrons(int spin, Vector_3P x, Vector_3P v, double* w, double* pw, double mass){
+ if(spin<0 || spin >1)
+ return -1; // invalid spin: return LOGERR(-1,fmt("AWPMD.get_electrons: invaid spin setting (%d)!",spin),LINFO);
+ if(mass<0)
+ mass=me;
+ for(int i=0;i<ni;i++){
+ w[i]=sqrt(3./(4*real(wp[spin][i].a)));
+ pw[i]=-2*w[i]*imag(wp[spin][i].a)/one_h; //pw[i]=-h_plank2*w[i]*imag(wp[spin][i].a);
+ x[i]=real(wp[spin][i].b)/(2*real(wp[spin][i].a));
+ v[i]=(pw[i]*x[i]/w[i] + imag(wp[spin][i].b)/one_h)/mass; //v[i]=(pw[i]*x[i]/w[i] + h_plank*imag(wp[spin][i].b))/m_electron;
+ }
+ return 1;
+}
+
+
+
+void AWPMD::clear_forces(int flag,Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ if(flag&0x1){
+ for(int i=0;i<ni;i++)
+ fi[i]=Vector_3(0.);
+ }
+ if(flag&0x4 && !(flag&0x10)){ // electron forces requested in physical representation
+ for(int s1=0;s1<2;s1++){ // clearing forces
+ for(int c1=0;c1<ne[s1];c1++){
+ fe_x[c1]=Vector_3(0,0,0);
+ fe_p[c1]=Vector_3(0,0,0);
+ fe_w[c1]=0;
+ fe_pw[c1]=0;
+ }
+ }
+ }
+}
+
+
+
+int AWPMD::interaction_ii(int flag,Vector_3P fi){
+ Eii=0.;
+ for(int i=0;i<ni;i++){
+ for(int j=i+1;j<ni;j++){
+ double M12e, M12f;
+ _mytie(M12e,M12f)=check_part1ii(i,j);
+ if(M12f){
+ Vector_3 rij=xi[i]-xi[j];
+ double r=rij.norm();
+ double dE=coul_pref*qi[i]*qi[j]/r;
+ Eii+=M12e*dE;
+
+ Eiip[i]+=0.5*M12e*dE;
+ Eiip[j]+=0.5*M12e*dE;
+
+ if(flag&0x3){ // ion forces needed
+ Vector_3 df=-M12f*dE*rij/(r*r);
+ fi[i]+=df;
+ fi[j]-=df;
+ }
+ }
+ }
+ }
+ return 1;
+}
\ No newline at end of file
diff --git a/lib/awpmd/systems/interact/TCP/wpmd.h b/lib/awpmd/systems/interact/TCP/wpmd.h
new file mode 100644
index 000000000..c0132bd6e
--- /dev/null
+++ b/lib/awpmd/systems/interact/TCP/wpmd.h
@@ -0,0 +1,658 @@
+/*s***************************************************************************
+ *
+ * Copyright (c), Ilya Valuev 2005 All Rights Reserved.
+ *
+ * Author : Ilya Valuev, MIPT, Moscow, Russia
+ *
+ * Project : GridMD, ivutils
+ *
+ *****************************************************************************/
+
+/*s****************************************************************************
+ * $Log: wpmd.h,v $
+ * Revision 1.4 2011/06/11 16:53:55 valuev
+ * sync with LAMMPS
+ *
+ * Revision 1.3 2011/06/11 16:45:23 morozov
+ * Fixed erf.c for Windows and Unix
+ *
+ * Revision 1.2 2011/06/10 19:25:17 morozov
+ * *** empty log message ***
+ *
+ * Revision 1.43 2011/06/10 19:20:53 valuev
+ * fixes
+ *
+ * Revision 1.42 2011/06/09 22:55:08 valuev
+ * norm matrices
+ *
+ * Revision 1.41 2011/06/07 19:58:42 valuev
+ * corrected partitions
+ *
+ * Revision 1.40 2011/06/07 17:43:00 valuev
+ * added Y derivatives
+ *
+ * Revision 1.39 2011/06/03 08:13:33 valuev
+ * added partitions to account for ghost atoms
+ *
+ * Revision 1.38 2011/06/02 22:11:17 morozov
+ * Compatibility with LAPACK library
+ *
+ * Revision 1.37 2011/06/01 23:45:35 valuev
+ * modified for LAMMPS compatibility
+ *
+ * Revision 1.36 2011/05/28 17:16:22 valuev
+ * fixed template<>, some fixes to UHF
+ *
+ * Revision 1.35 2011/05/25 21:30:48 morozov
+ * Compatibility with ICC 11.1
+ *
+ * Revision 1.34 2011/05/25 05:23:43 valuev
+ * fixed variable transformation for norm matrix
+ *
+ * Revision 1.33 2011/05/24 19:54:32 valuev
+ * fixed sqmatrix::iterator
+ *
+ * Revision 1.32 2011/05/21 23:06:49 valuev
+ * Norm matrix transform to pysical variables
+ *
+ * Revision 1.31 2011/05/20 21:39:49 valuev
+ * separated norm calculation
+ *
+ * Revision 1.30 2011/05/14 18:56:19 valuev
+ * derivative for ee split interactions
+ *
+ * Revision 1.29 2011/05/05 08:56:02 valuev
+ * working split wp version
+ *
+ * Revision 1.28 2011/05/04 16:48:52 valuev
+ * fixed syntax
+ *
+ * Revision 1.27 2011/05/04 09:04:48 valuev
+ * completed wp_split (except for ee forces)
+ *
+ * Revision 1.26 2011/04/29 03:07:20 valuev
+ * new split wp features
+ *
+ * Revision 1.25 2011/04/22 09:52:49 valuev
+ * working on split WP
+ *
+ * Revision 1.24 2011/04/20 08:43:09 valuev
+ * started adding split packet WPMD
+ *
+ * Revision 1.23 2010/09/03 12:17:48 morozov
+ * The order of parameters in Norm matrix is changed to mimic the order of the single WP parameter storage
+ *
+ * Revision 1.22 2009/08/27 00:01:36 morozov
+ * First working MPI equilibration
+ *
+ * Revision 1.21 2009/04/14 14:44:10 valuev
+ * fixed momentum calculation in hartree model, added "fix" constraint and model="hartree"
+ * to parameters
+ *
+ * Revision 1.20 2009/04/13 17:00:45 morozov
+ * Fixed norm-matrix ratio in AWPMC algorithm
+ *
+ * Revision 1.19 2009/04/06 17:00:28 morozov
+ * Fixed Hartree version of WPMC
+ *
+ * Revision 1.18 2009/04/01 10:06:37 valuev
+ * added Hartee factorization to AWPMD
+ *
+ * Revision 1.17 2009/03/24 16:10:05 morozov
+ * Fixed errors in Norm-matrix calculation related to PBC
+ *
+ * Revision 1.16 2009/03/17 11:40:04 morozov
+ * The prefactor of NormMatrix is corrected
+ *
+ * Revision 1.15 2008/07/23 16:42:12 valuev
+ * Added AWPMD Monte-Carlo
+ *
+ * Revision 1.14 2008/07/23 15:58:32 valuev
+ * *** empty log message ***
+ *
+ * Revision 1.13 2008/07/21 02:23:22 morozov
+ * *** empty log message ***
+ *
+ * Revision 1.12 2008/07/18 18:15:31 morozov
+ * *** empty log message ***
+ *
+ * Revision 1.11 2008/05/29 13:33:05 valuev
+ * VASP band structure
+ *
+ * Revision 1.10 2008/05/14 17:17:26 morozov
+ * Passed 2- and 3-electron test. Added Norm matrix.
+ *
+ * Revision 1.9 2008/05/05 17:29:32 morozov
+ * Fixed errors with Hermitian matrix indeces. Redesigned cVector_3 operations.
+ *
+ * Revision 1.8 2008/04/28 22:16:45 valuev
+ * restructured coulomb term
+ *
+ * Revision 1.7 2008/04/28 09:54:13 valuev
+ * corrected summation for Eee part
+ *
+*******************************************************************************/
+# ifndef WPMD_H
+# define WPMD_H
+
+/** @file wpmd.h
+ @brief Classes for Wave Packet Molecular Dynamics of two component plasma. */
+
+# ifndef _USE_MATH_DEFINES
+# define _USE_MATH_DEFINES
+# endif
+# include <complex>
+# include <vector>
+# include <cmath>
+# include "logexc.h"
+# include "cvector_3.h"
+# include "pairhash.h"
+# include "TCP/tcpdefs.h"
+# include "wavepacket.h"
+# include "erf.h"
+# include "cerf.h"
+
+
+using namespace std;
+
+# include "lapack_inter.h"
+
+typedef hmatrix<cdouble> chmatrix;
+
+const cdouble i_unit = cdouble(0.,1.), i_unit1 = -i_unit;
+const double h_plank2 = h_plank * 2.;
+
+//cdouble ccerf(const cdouble &a);
+
+//e calculates cerf(c*z)/z
+inline cdouble cerf_div(const cdouble &z, const cdouble &c=i_unit){
+ if((fabs(real(z))+fabs(imag(z)))<1e-8)
+ return c*two_over_sqr_pi;
+ else
+ return cerf(z*c)/z;
+}
+
+//e calculates erf(c*z)/z
+inline double erf_div(const double &z, double c=1){
+ if(fabs(z)<1e-8)
+ return c*two_over_sqr_pi;
+ else
+ return erf(z*c)/z;
+}
+
+template<class T1, class T2>
+struct _myrefpair{
+ T1& first;
+ T2& second;
+ _myrefpair(T1& a, T2 &b):first(a),second(b){}
+ _myrefpair operator=(const pair<T1,T2> &other){
+ first=other.first;
+ second=other.second;
+ return *this;
+ }
+};
+
+template< class T1, class T2>
+_myrefpair<T1,T2> _mytie(T1& var1, T2 &var2){
+ return _myrefpair<T1,T2>(var1, var2);
+}
+
+inline pair<double,double> operator*(const pair<double,double> &right, double left){
+ return make_pair(right.first*left,right.second*left);
+}
+
+// Auxilary class to handle the normalizing term derivatives
+class NormDeriv
+{
+public:
+ cdouble l; // lambda = (f over a_re)
+ double m; // mu = (f over a_im) / i
+ cVector_3 u; // u = (f over b_re)
+ Vector_3 v; // v = (f over b_im) / i
+
+ NormDeriv() {}
+ NormDeriv(const WavePacket& wp) { set(wp); }
+
+ //e Create NormDeriv object and calculate the derivatived for the given WP
+ void set(const WavePacket& wp){
+ Vector_3 br = real(wp.b), bi = imag(wp.b);
+ double ar = real(wp.a), ai = imag(wp.a);
+ double i_2ar = 0.5 / ar, ai_ar = ai / ar;
+
+ v = (-i_2ar) * br;
+ m = v.norm2();
+ u = v * (i_unit1 * ai_ar) - wp.b * i_2ar;
+ l = (1.5*i_2ar + m) + cdouble(0.,2.) * ( (br*bi)*i_2ar*i_2ar - m*ai_ar );
+ }
+};
+
+inline NormDeriv conj(const NormDeriv& src){
+ NormDeriv dst;
+ dst.l = conj(src.l);
+ dst.m = -src.m;
+ dst.u = conj(src.u);
+ dst.v = - src.v;
+ return dst;
+}
+
+///\en Auxilary class to handle derivatives of overlaps
+class OverlapDeriv{
+public:
+ WavePacket w1, w2, w12;
+ NormDeriv d1, d2;
+ cdouble I0, I2;
+ cVector_3 I1;
+ cdouble bb_4a;
+ sqmatrix<cdouble> IDD;
+
+
+ OverlapDeriv():I0(0),I1(0),IDD(10){}
+
+ void set1(const WavePacket& w1_) {
+ w1=w1_;
+ d1.set(w1);
+ d1=conj(d1);
+ }
+
+ //e Create NormDeriv object and calculate the derivatived for the given WP
+ void set2(const WavePacket& w2_, const cdouble *I0_=NULL){
+ w2=w2_;
+ d2.set(w2);
+ w12=conj(w1)*w2;
+ if(!I0_)
+ I0 = w12.integral();
+ else
+ I0=*I0_;
+ I1 = w12.b * (I0 / w12.a / 2);
+ bb_4a = w12.b.norm2() / w12.a / 4;
+ I2 = I0 * (bb_4a + 1.5) / w12.a;
+ }
+
+ cdouble da2_re() const {
+ return (d2.l*I0 - I2);
+ }
+
+ cdouble da2_im() const {
+ return i_unit*(d2.m*I0 - I2);
+ }
+
+ cdouble da1_re() const {
+ return (d1.l*I0 - I2);
+ }
+
+ cdouble da1_im() const {
+ return -i_unit*(d1.m*I0 - I2);
+ }
+
+ cdouble db2_re(int i) const {
+ return d2.u[i]*I0 + I1[i];
+ }
+
+ cdouble db2_im(int i) const {
+ return i_unit*(d2.v[i]*I0 + I1[i]);
+ }
+
+ cdouble db1_re(int i) const {
+ return d1.u[i]*I0 + I1[i];
+ }
+
+ cdouble db1_im(int i) const {
+ return -i_unit*(d1.v[i]*I0 + I1[i]);
+ }
+
+ ///\en Calculates derivative overlap matrix IDD
+ void calc_der_overlap(bool self=false, cdouble cc1=0., cdouble c2=0.);
+
+
+};
+
+
+class AWPMD {
+//protected:
+public:
+ int ne[2], ni;
+ int nwp[2]; ///<\en number of wavepackets (same as ne for unsplit version)
+ int nvar[2]; ///<\en full number of dynamic variables for each spin
+ chmatrix O[2], Y[2], Te[2], Tei[2];
+ smatrix<unsigned char> Oflg[2]; ///<\en equals 0 for non-overlaping packets
+ sqmatrix<double> Norm[2]; ///<\en Norm matrix
+ vector<WavePacket> wp[2]; ///<\en wave packets for electrons (spin up =0 and down =1)
+ vector<double> qe[2]; ///<\en electron charges
+ vector<double> qi; ///<\en ion charges
+ vector<Vector_3> xi; ///<\en ion coordinates
+ int pbc; ///<\en pbc flag
+ Vector_3 cell; ///<\en cell coordinates (L1,L2,L3)
+ double Lextra; ///<\en width PBC, unset if negative
+ double harm_w0_4;
+ double w0;
+ int calc_ii; ///<\en flag indicating whether to calculate ion-ion interaction
+ int norm_needed; ///<\en flag indicating whether to prepare norm matrix data in interaction function
+
+ enum {NORM_UNDEFINED, NORM_CALCULATED, NORM_FACTORIZED, NORM_INVERTED};
+ int norm_matrix_state[2];
+
+ // Arrays for temporal data
+ chmatrix IDD; // Second derivatives of the overlap integral (used in Norm matrix)
+ vector<cdouble> ID, IDYs; // First derivatives of the overlap integral (used in Norm matrix)
+ vector<int> ipiv; // The pivot indices array
+
+ recmatrix<cdouble> L[2]; ///<\en overlap derivative matrix for each spin
+ recmatrix<cdouble> M[2]; ///<\en 'normalized' overlap derivative matrix for each spin: M=YL
+
+public:
+ enum {NONE=0, HARM, FIX, RELAX} constraint;
+
+ ///\em Sets approximation level for quantum problem: \n
+ /// HARTREE Hartree product (no antisymmetrization) \n
+ /// DPRODUCT product of det0*det1 of antisymmetrized functions for spins 0, 1 \n
+ /// UHF unrestricted Hartree-Fock
+ enum APPROX {HARTREE, DPRODUCT, UHF } approx;
+ ///\em Sets overlap matrix element to zero if the overlap norm is less than this value
+ double ovl_tolerance;
+
+ double Ee[2]; ///<\en electron kinetic energy for each spin
+ double Eei[2]; ///<\en electron-ion energy for each spin
+ double Eee, Ew; ///<\en electron-electron energy
+ double Eii; ///<\en ion-ion energy
+ double Edk; ///<\en sum of diagonal kinetic energy terms
+ double Edc; ///<\en sum of diagonal Coulomb energy terms
+
+ vector<double> Eep[2]; ///<\en per particle electron kinetic energy for each spin
+ vector<double> Eeip[2]; ///<\en per particle electron-ion energy for each spin
+ vector<double> Eeep[2]; ///<\en per particle electron-electron energy for each spin
+ vector<double> Ewp[2]; ///<\en per particle restrain energy for each spin
+ vector<double> Eiep; ///<\en per particle ion-electron energy
+ vector<double> Eiip; ///<\en per particle ion-ion energy
+
+
+ ///\en \{ Conversion constants that depend on the unit system used (for LAMMPS compatibility).
+ /// Default is GRIDMD units. Change them according to your unit system.
+ double me; ///<\en electron mass (LAMMPS: me in the appropriate unit system)
+ double one_h; ///<\en inverse of Plancks constant (LAMMPS: conversion [(m*v)/h] to [distance] )
+ double h2_me; ///<\en Plancks constant squared divided by electron mass (LAMMPS: conversion [h^2/(m*r^2)] to [Energy] )
+ double coul_pref; ///<\en Coulomb prefactor (e2 for GRIDMD) (LAMMPS: conversion [q^2/r] to [Energy] )
+ /// \}
+
+ ///\en 0 -- indicates that the inter-partition force should be full, and energy half,\n
+ /// 1 -- inter-partition force and energy counts one half (LAMMPS compatibility)
+ int newton_pair;
+
+ //int myid; ///<\en id for partitions
+
+ ///\en Partition arrays storing the tags of particles. The initial tags should be >0.
+ /// If the tag stored is <0, then the particle is ghost with -tag.
+ /// partition1[2] is for ions, 0, 1 for each electron spin
+ vector<int> partition1[3];
+ //vector<int> partition2[3]; ///<\en 2 for ions
+
+
+ int tag_index(int i, int j){
+ return i==j ? -1 : (i>j ? (i-2)*(i-1)/2+j : (j-2)*(j-1)/2+i );
+ }
+
+
+ ///\en 1 -- all my, -1 all other, 2 -- my mixed term, -2 -- other mixed term
+ int check_ee(int s1,int icj1,int ick2){
+ //printf(" (%d %d) ",partition1[s1][icj1],partition1[s1][ick2]);
+ int c1=(int)(partition1[s1][icj1]>0);
+ int c2=(int)(partition1[s1][ick2]>0);
+ int res;
+ if(c1!=c2){ // mixed
+ int tag1=abs(partition1[s1][icj1]);
+ int tag2=abs(partition1[s1][ick2]);
+ int num=tag_index(tag1-1,tag2-1);
+ if(num<0){ // compare wave packets
+ int cmp= s1<2 ?
+ wp[s1][icj1].compare(wp[s1][ick2],1e-15) :
+ compare_vec(xi[icj1],xi[ick2],1e-15);
+ if((cmp>0 && c1) || (cmp<0 && c2))
+ res= 2; // my mixed term
+ else
+ res= -2; // not my term
+ }
+ else // parity check
+ res=num%2 ? 2 : -2;
+ }
+ else if(c1)
+ res=1; // all my
+ else
+ res=-1; // all other
+ return res;
+ }
+
+ ///\en Returns electron-electron inter-partition multipliers for energy (first) and force (second)
+ /// for a 4- and 2- electron additive terms (all inter-partition interactions are
+ /// calculated only once based on particle tags)
+ /// If force multiplier is zero, then the term may be omitted (energy will also be zero).
+ /// NOW ASSIGNS BASED ON THE FIRST PAIR ONLY
+ pair<double, double> check_part1(int s1,int icj1,int ick2, int s2=-1,int icj3=-1,int ick4=-1){
+ int res=check_ee(s1,icj1,ick2);
+ if(res==1){ // my term
+ //printf(" *\n");
+ return make_pair(1.,1.); // all at my partition
+ }
+ else if(res==-1){
+ //printf(" \n");
+ return make_pair(0.,0.); // all at other partition
+ }
+ else if(res==2){
+ //printf(" *\n");
+ return make_pair(1.,1.); // my inter-partition
+ }
+ else if(res==-2){
+ //printf(" \n");
+ return make_pair(0., newton_pair ? 0.0 : 1. ); // other inter-partition: must add force if newton comm is off
+ }
+ return make_pair(0.,0.); // nonsense
+ }
+
+ ///\en Returns elctron-ion inter-partition multipliers for energy (first) and force (second)
+ /// for ion-electron additive terms (all inter-partition interactions are
+ /// calculated only once based on particle tags)
+ /// If force multiplier is zero, then the term may be omitted (energy will also be zero).
+ /// BASED ON ION ATTACHMENT
+ pair<double,double> check_part1ei(int s1,int icj1,int ick2, int ion){
+ //printf("%d ",partition1[2][ion]);
+ int ci=(int)(partition1[2][ion]>0);
+
+ if(!newton_pair){ // care about mixed terms
+ int cee=check_ee(s1,icj1,ick2);
+ if((cee==2 || cee==-2) || (ci && cee==-1) || (!ci && cee==1)) // all mixed variants
+ make_pair(0., 1. ); // other inter-partition: must add force if newton comm is off
+ }
+ if(ci){
+ //printf(" *\n");
+ return make_pair(1.,1.); // my term
+ }
+ else{
+ //printf(" \n");
+ return make_pair(0.,0.); // all at other partition
+ }
+ }
+
+ ///\en Returns ion-ion inter-partition multipliers for energy (first) and force (second)
+ /// for ion-electron additive terms (all inter-partition interactions are
+ /// calculated only once based on particle tags)
+ /// If force multiplier is zero, then the term may be omitted (energy will also be zero).
+ pair<double,double> check_part1ii(int ion1, int ion2){
+ return check_part1(2,ion1,ion2);
+ }
+
+
+
+ AWPMD():pbc(0),Lextra(-1),constraint(NONE),newton_pair(1) {
+ nvar[0]=nvar[1]=ne[0]=ne[1]=ni=0;
+ norm_matrix_state[0] = norm_matrix_state[1] = NORM_UNDEFINED;
+ ovl_tolerance=0.;
+ approx = DPRODUCT;
+
+ me=m_electron;
+ one_h=1./h_plank;
+ h2_me=h_sq/me;
+ coul_pref=::coul_pref;
+
+ calc_ii=0;
+ norm_needed=0;
+ }
+
+protected:
+ //e translates wp2 to the nearest image postion relative to wp1
+ //e gets the translation vector
+ Vector_3 move_to_image(const WavePacket &wp1, WavePacket &wp2) const {
+ Vector_3 r1=wp1.get_r();
+ Vector_3 r2=wp2.get_r();
+ Vector_3 dr=r2-r1;
+ Vector_3 ndr=dr.rcell(cell,pbc); // [0,L)
+ ndr=ndr.rcell1(cell,pbc); // [-L/2,L/2)
+ ndr-=dr;
+ wp2=wp2.translate(ndr); // wln.b=wln.b+ndr.a
+ return ndr;
+ }
+
+ //e gets the overlap packet taking PBC into account
+ WavePacket pbc_mul(const WavePacket &wp1, const WavePacket &wp2) const {
+ if(!pbc)
+ return wp1*conj(wp2);
+ Vector_3 r1=wp1.get_r();
+ Vector_3 r2=wp2.get_r();
+ Vector_3 dr=r2-r1; // distance
+ Vector_3 drn=dr.rcell1(cell,pbc); // distance within PBC
+ Vector_3 rtrans=drn-dr; // new location of wp2 according to PBC (nearest image)
+ WavePacket wpn=wp2.translate(rtrans);
+ wpn=wp1*(conj(wpn));
+ // reducing the result to elementary cell
+ //r1=wpn.get_r();
+ //r2=r1.rcell(cell,pbc);
+ //dr=r2-r1;
+ //wpn=wpn.translate(dr);
+ return wpn;
+ }
+ ///\en resizes all internal arrays according to new electrons added
+ virtual void resize(int flag);
+public:
+
+
+
+ ///\en Prepares to setup a new system of particles using \ref add_ion() and add_electron().
+ /// There is no need to call this function when using
+ /// \ref set_electrons() and \ref set_ions() to setup particles.
+ virtual void reset(){
+ for(int s=0;s<2;s++){
+ nwp[s]=ne[s]=nvar[s]=0;
+ wp[s].clear();
+ qe[s].clear();
+ partition1[s].clear();
+ //partition2[s].clear();
+ }
+ partition1[2].clear();
+ ni=0;
+ xi.clear();
+ qi.clear();
+ }
+
+ //e sets Periodic Boundary Conditions
+ //e using bit flags: 0x1 -- PBC along X
+ //e 0x2 -- PBC along Y
+ //e 0x4 -- PBC along Z
+ //e cell specifies the lengths of the simulation box in all directions
+ //e if PBCs are used, the corresponding coordinates of electrons and ions
+ //e in periodic directions must be within the range [0, cell[per_dir])
+ //e @returns 1 if OK
+ int set_pbc(const Vector_3P pcell=NULL, int pbc_=0x7);
+
+ ///\en Setup electrons: forms internal wave packet representations.
+ /// If PBCs are used the coords must be within a range [0, cell).
+ /// Default electron mass is AWPMD::me.
+ /// Default (q=NULL )electron charges are -1.
+ int set_electrons(int spin, int n, Vector_3P x, Vector_3P v, double* w, double* pw, double mass=-1, double *q=NULL);
+
+ //e setup ion charges and coordinates
+ //e if PBCs are used the coords must be within a range [0, cell)
+ int set_ions(int n, double* q, Vector_3P x);
+
+ ///\en Adds an ion with charge q and position x,
+ /// \return id of the ion starting from 0
+ /// The tags must be nonzero, >0 for the local particle, <0 for ghost particle.
+ /// Unique particle id is abs(tag).
+ /// Default tag (0) means inserting the current particle id as local particle.
+ int add_ion(double q, const Vector_3 &x, int tag=0){
+ qi.push_back(q);
+ xi.push_back(x);
+ ni=(int)xi.size();
+ if(tag==0)
+ tag=ni;
+ partition1[2].push_back(tag);
+ return ni-1;
+ }
+
+
+ //e calculates interaction in the system of ni ions + electrons
+ //e the electonic subsystem must be previously setup by set_electrons, ionic by set_ions
+ //e the iterators are describing ionic system only
+ // 0x1 -- give back ion forces
+ // 0x2 -- add ion forces to the existing set
+ // 0x4 -- calculate derivatives for electronic time step (NOT IMPLEMENTED)
+ //e if PBCs are used the coords must be within a range [0, cell)
+ virtual int interaction(int flag=0, Vector_3P fi=NULL, Vector_3P fe_x=NULL,
+ Vector_3P fe_p=NULL, double *fe_w=NULL, double *fe_pw=NULL, Vector_2P fe_c=NULL);
+
+ //e same as interaction, but using Hartee factorization (no antisymmetrization)
+ virtual int interaction_hartree(int flag=0, Vector_3P fi=NULL, Vector_3P fe_x=NULL,
+ Vector_3P fe_p=NULL, double *fe_w=NULL, double *fe_pw=NULL, Vector_2P fe_c=NULL);
+
+ ///\en Calculates ion-ion interactions and updates Eii and ion forces if requested. This function
+ /// is called form intaraction() and interaction_hartree if calc_ii is set.
+ virtual int interaction_ii(int flag,Vector_3P fi=NULL);
+
+ //e Calculates Norm matrix
+ //e The result is saved in AWPMD::Norm[s]
+ void norm_matrix(int s);
+
+ //e Performs LU-factorization of the Norm matrix
+ //e AWPMD::Norm[s] is replaced by the LU matrix
+ void norm_factorize(int s);
+
+ //e Invert Norm matrix
+ //e AWPMD::Norm[s] is replaced by the inverted matrix
+ void norm_invert(int s);
+
+ //e Get the determinant of the norm-matrix for the particles with spin s
+ double norm_matrix_det(int s);
+
+ //e Get the determinant logarithm of the norm-matrix for the particles with spin s
+ double norm_matrix_detl(int s);
+
+ double get_energy();
+
+ //e makes timestep of electronic component (NOT IMPLEMENTED)
+ int step(double dt);
+
+ ///\en Gets current electronic coordinates.
+ /// Transforms the momenta to velocity v according to mass setting (-1 means me)
+ int get_electrons(int spin, Vector_3P x, Vector_3P v, double* w, double* pw, double mass=-1);
+
+ void set_harm_constr(double w0) {
+ constraint = HARM;
+ harm_w0_4 = h_sq*9./(8.*m_electron)/(w0*w0*w0*w0);
+ }
+
+ void set_fix_constr(double w0_) {
+ constraint = FIX;
+ w0 = w0_;
+ }
+
+ ///\en Prepares force arrays according to \a flag setting for interaction()
+ virtual void clear_forces(int flagi,Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c=NULL);
+
+
+ ///\en Creates wave packet acording to the given physical parameters.
+ /// The function may change its arguments by applying existing constraints!
+ /// Default mass (-1) is the electron mass AWPMD::me.
+ WavePacket create_wp(Vector_3 &x, Vector_3 &v, double &w, double &pw, double mass=-1);
+
+
+};
+
+
+# endif
diff --git a/lib/awpmd/systems/interact/TCP/wpmd_split.cpp b/lib/awpmd/systems/interact/TCP/wpmd_split.cpp
new file mode 100644
index 000000000..361fae1f3
--- /dev/null
+++ b/lib/awpmd/systems/interact/TCP/wpmd_split.cpp
@@ -0,0 +1,1325 @@
+# include "wpmd_split.h"
+//# include "erf.h"
+
+
+void AWPMD_split::resize(int flag){
+ for(int s=0;s<2;s++){
+ wf_norm[s].resize(ne[s]);
+ if(flag&(0x8|0x4)){ //electron forces needed
+ wf_norm_der[s].resize(nvar[s]);
+ ovl_der[s].resize(nvar[s]);
+ E_der[s].resize(nvar[s]);
+
+ if(flag&(0x8|0x4) || norm_needed){ //electron forces or norm matrix needed
+ if(approx==HARTREE){ // L and Norm are needed in block form
+ Lh[s].resize(nvar[s]);
+ if(norm_needed){
+ Normh[s].resize(ne[s]);
+ for(int i=0;i<ne[s];i++)
+ Normh[s][i].init(10*nspl[s][i]);
+ }
+ }
+ else if(norm_needed){
+ Norm[s].init(nvar[s]);
+ }
+ }
+ }
+ }
+ AWPMD::resize(flag);
+}
+
+
+int AWPMD_split::add_split(Vector_3 &x, Vector_3 &v, double &w, double &pw, Vector_2 &c, double mass, double q, int tag){
+ if(!spl_add){
+ nspl[s_add].push_back(1);
+ ne[s_add]++;
+ }
+ else{
+ nspl[s_add][ne[s_add]-1]++; // incrementing the WP number for the last electron
+ }
+ spl_add++;
+ nwp[s_add]++;
+ nvar[s_add]+=10;
+ wp[s_add].push_back(create_wp(x,v,w,pw,mass));
+ split_c[s_add].push_back(c);
+ qe[s_add].push_back(q);
+
+ if(tag==0)
+ tag=spl_add;
+ partition1[s_add].push_back(tag);
+
+ return spl_add-1;
+}
+
+int AWPMD_split::set_electrons(int s, int nel, Vector_3P x, Vector_3P v, double* w, double* pw, Vector_2 *c, int *splits, double mass, double *q)
+{
+ if(s < 0 || s > 1)
+ return LOGERR(-1,fmt("AWPMD_split.set_electrons: invaid spin setting (%d)!",s),LINFO);
+
+ // calculating the total n
+ nvar[s]=0;
+ int n=0;
+ for(int i=0;i<nel;i++){
+ n+=splits[i];
+ nvar[s]+=10*splits[i]; // number of dynamic variables per wp: x[3],p[3],w,pw,c_re,c_im
+ }
+ nwp[s]=n;
+
+ norm_matrix_state[s] = NORM_UNDEFINED;
+ ne[s]=nel;
+ wp[s].resize(n);
+
+ split_c[s].resize(n);
+ split_c[s].assign(c,c+n);
+
+
+ nspl[s].resize(nel);
+ nspl[s].assign(splits,splits+nel);
+
+ partition1[s].clear();
+ for(int i=0;i<n;i++){
+
+ /*if(constraint==FIX){
+ w[i]=w0;
+ pw[i]=0.;
+ }
+
+ double rw;
+ if(Lextra>0){ // width PBC, keeping the width are within [0,Lextra]
+ w[i]=fmod(w[i],Lextra);
+ if(w[i]<0) w[i]+=Lextra;
+ rw=w[i]; // WP width for energy evaluation is within [0, L/2]
+ if(rw > Lextra/2) rw = Lextra - rw;
+ }
+ else
+ rw=w[i];
+
+ wp[s][i].init(rw,x[i],v[i]*m_electron/h_plank,pw[i]/h_plank);*/
+ wp[s][i]=create_wp(x[i],v[i],w[i],pw[i],mass);
+ //printf("%15d %15g\n",i,rw);
+ // assign default partition
+ partition1[s].push_back(i+1);
+ }
+
+ // assign electronic charge
+ if(q)
+ qe[s].assign(q,q+nwp[s]);
+ else
+ qe[s].assign(nwp[s],-1);
+
+
+
+ return 1;
+}
+
+
+
+void AWPMD_split::eterm_deriv(int ic1,int s1,int c1, int j1,int ic2,int s2, int c2, int k2,cdouble pref,
+ const OverlapDeriv &o,cdouble v,cdouble dv_aj_conj,
+ cdouble dv_ak,cVector_3 dv_bj_conj, cVector_3 dv_bk){
+ cdouble cj(split_c[s1][ic1+j1][0],split_c[s1][ic1+j1][1]);
+ cdouble ck(split_c[s2][ic2+k2][0],split_c[s2][ic2+k2][1]);
+ int indw1=8*ic1, indw2=8*ic2;
+ int indn1=(nvar[s1]/10)*8+2*ic1, indn2=(nvar[s2]/10)*8+2*ic2;
+ cdouble part_jk=conj(cj)*ck;
+
+ int M= 1; //(j1==k2 ? 1 : 2);
+
+ // over a_k_re
+ E_der[s2][indw2+8*k2]+= M*real(pref*part_jk*(o.da2_re()*v+o.I0*dv_ak));
+ // over a_k_im
+ E_der[s2][indw2+8*k2+1]+= M*real(pref*part_jk*(o.da2_im()*v+i_unit*o.I0*dv_ak));
+ // over a_j_re
+ E_der[s1][indw1+8*j1]+= M*real(pref*part_jk*(o.da1_re()*v+o.I0*dv_aj_conj));
+ // over a_j_im
+ E_der[s1][indw1+8*j1+1]+= M*real(pref*part_jk*(o.da1_im()*v-i_unit*o.I0*dv_aj_conj));
+
+ for(int i=0;i<3;i++){
+ // over b_k_re
+ E_der[s2][indw2+8*k2+2+2*i]+= M*real(pref*part_jk*(o.db2_re(i)*v+o.I0*dv_bk[i]));
+ // over b_k_im
+ E_der[s2][indw2+8*k2+2+2*i+1]+= M*real(pref*part_jk*(o.db2_im(i)*v+i_unit*o.I0*dv_bk[i]));
+ // over b_j_re
+ E_der[s1][indw1+8*j1+2+2*i]+= M*real(pref*part_jk*(o.db1_re(i)*v+o.I0*dv_bj_conj[i]));
+ // over b_j_im
+ E_der[s1][indw1+8*j1+2+2*i+1]+= M*real(pref*part_jk*(o.db1_im(i)*v-i_unit*o.I0*dv_bj_conj[i]));
+ }
+
+
+ // over ck_re
+ E_der[s2][indn2+2*k2]+=M*real(pref*conj(cj)*o.I0*v);
+ // over ck_im
+ E_der[s2][indn2+2*k2+1]+=M*real(pref*i_unit*conj(cj)*o.I0*v);
+ // over cj_re
+ E_der[s1][indn1+2*j1]+=M*real(pref*ck*o.I0*v);
+ // over cj_im
+ E_der[s1][indn1+2*j1+1]+=M*real(-pref*i_unit*ck*o.I0*v);
+
+ double t= -M*real(pref*part_jk*o.I0*v);
+ // nonlocal terms: TODO: make a separate global loop for summation of nonlocal terms
+ for(int j=0;j<nspl[s1][c1];j++){
+ for(int i=0;i<8;i++)
+ E_der[s1][indw1+8*j+i]+=t*wf_norm_der[s1][indw1+8*j+i];
+ E_der[s1][indn1+2*j ]+=t*wf_norm_der[s1][indn1+2*j ];
+ E_der[s1][indn1+2*j+1]+=t*wf_norm_der[s1][indn1+2*j+1];
+ }
+ for(int k=0;k<nspl[s2][c2];k++){
+ for(int i=0;i<8;i++)
+ E_der[s2][indw2+8*k+i]+=t*wf_norm_der[s2][indw2+8*k+i];
+ E_der[s2][indn2+2*k]+= t*wf_norm_der[s2][indn2+2*k ];
+ E_der[s2][indn2+2*k+1]+= t*wf_norm_der[s2][indn2+2*k+1];
+ }
+
+}
+
+
+void AWPMD_split::calc_norms(int flag){
+ if(flag&0x4){ // electron forces requested
+ for(int s1=0;s1<2;s1++){ // clearing norm derivatives
+ for(int i=0;i<nvar[s1];i++){
+ wf_norm_der[s1][i]=0;
+ E_der[s1][i]=0;
+ ovl_der[s1][i]=0;
+ }
+ }
+ }
+ // calculating block norms and derivatives
+ for(int s1=0;s1<2;s1++){
+ int ic1=0; // starting index of the wp for current electron
+ int indw1=0; // starting index of the electron wp coordinates
+ int indn1=(nvar[s1]/10)*8; // starting index of the electron norm coordinates
+
+ for(int c1=0;c1<ne[s1];c1++){
+
+ // calculating the block norm
+ wf_norm[s1][c1]=0.;
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ double cj_re=split_c[s1][ic1+j1][0];
+ double cj_im=split_c[s1][ic1+j1][1];
+ cdouble ccj=cdouble(cj_re,-cj_im);
+ double part_jj=norm(ccj);
+ wf_norm[s1][c1]+=part_jj;
+ WavePacket& wj = wp[s1][ic1+j1];
+ OverlapDeriv o;
+ if(flag&(0x8|0x4)){ //electron forces needed
+ wf_norm_der[s1][indn1+2*j1]+=2*cj_re; // over cj_re
+ wf_norm_der[s1][indn1+2*j1+1]+=2*cj_im; // over cj_im
+ o.set1(wj);// conjugate: mu -> -mu, v -> -v !!!
+ }
+
+
+ for(int k1=j1+1;k1<nspl[s1][c1];k1++){
+ double ck_re=split_c[s1][ic1+k1][0];
+ double ck_im=split_c[s1][ic1+k1][1];
+ cdouble ck=cdouble(ck_re,ck_im);
+
+ WavePacket wk=wp[s1][ic1+k1];
+ if(pbc)
+ move_to_image(wj,wk);
+ WavePacket wjk=conj(wj)*wk;
+ cdouble I0=wjk.integral();
+
+ cdouble part_jk=ccj*ck;
+ wf_norm[s1][c1]+=2*real(part_jk*I0);
+
+
+ if(flag&(0x8|0x4)){ //electron forces needed
+ o.set2(wk,&I0);
+
+
+ wf_norm_der[s1][indw1+8*k1]+= 2*real(part_jk*o.da2_re()); // over a_k_re
+ wf_norm_der[s1][indw1+8*k1+1]+= 2*real(part_jk*o.da2_im()); // over a_k_im
+
+ wf_norm_der[s1][indw1+8*j1]+= 2*real(part_jk*o.da1_re()); // over a_j_re
+ wf_norm_der[s1][indw1+8*j1+1]+= 2*real(part_jk*o.da1_im()); // over a_j_im
+
+ for(int i=0;i<3;i++){
+ wf_norm_der[s1][indw1+8*k1+2+2*i]+= 2*real(part_jk*o.db2_re(i)); // over b_k_re
+ wf_norm_der[s1][indw1+8*k1+2+2*i+1]+= 2*real(part_jk*o.db2_im(i)); // over b_k_im
+
+ wf_norm_der[s1][indw1+8*j1+2+2*i]+= 2*real(part_jk*o.db1_re(i)); // over b_j_re
+ wf_norm_der[s1][indw1+8*j1+2+2*i+1]+= 2*real(part_jk*o.db1_im(i)); // over b_j_im
+ }
+
+ wf_norm_der[s1][indn1+2*j1]+=2*real(ck*I0); // over cj_re
+ wf_norm_der[s1][indn1+2*j1+1]+=2*real(-i_unit*ck*I0); // over cj_im
+ wf_norm_der[s1][indn1+2*k1]+=2*real(ccj*I0); // over ck_re
+ wf_norm_der[s1][indn1+2*k1+1]+=2*real(i_unit*ccj*I0); // over ck_im
+
+
+ // overlap derivatives (for norm matrix)
+ ovl_der[s1][indw1+8*k1]+= ccj*o.da2_re(); // over a_k_re
+ ovl_der[s1][indw1+8*k1+1]+= ccj*o.da2_im(); // over a_k_im
+
+ ovl_der[s1][indw1+8*j1]+= ck*o.da1_re(); // over a_j_re
+ ovl_der[s1][indw1+8*j1+1]+= ck*o.da1_im(); // over a_j_im
+
+ for(int i=0;i<3;i++){
+ ovl_der[s1][indw1+8*k1+2+2*i]+= ccj*o.db2_re(i); // over b_k_re
+ ovl_der[s1][indw1+8*k1+2+2*i+1]+= ccj*o.db2_im(i); // over b_k_im
+
+ ovl_der[s1][indw1+8*j1+2+2*i]+= ck*o.db1_re(i); // over b_j_re
+ ovl_der[s1][indw1+8*j1+2+2*i+1]+= ck*o.db1_im(i); // over b_j_im
+ }
+
+ ovl_der[s1][indn1+2*j1]+=ck*I0; // over cj_re
+ ovl_der[s1][indn1+2*j1+1]+=-i_unit*ck*I0; // over cj_im
+ ovl_der[s1][indn1+2*k1]+=ccj*I0; // over ck_re
+ ovl_der[s1][indn1+2*k1+1]+=i_unit*ccj*I0; // over ck_im
+ }
+ } // k1
+ }// j1
+ // normalizing the norm derivative
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ for(int i=0;i<8;i++) // wp parameters
+ wf_norm_der[s1][indw1+8*j1+i]/=2*wf_norm[s1][c1];
+ // c
+ wf_norm_der[s1][indn1+2*j1]/=2*wf_norm[s1][c1];
+ wf_norm_der[s1][indn1+2*j1+1]/=2*wf_norm[s1][c1];
+ }
+ //wf_norm[s1][c1]=1;
+ //wf_norm[s1][c1]=sqrt(wf_norm[s1][c1]);
+ ic1+=nspl[s1][c1];
+ indw1+=8*nspl[s1][c1]; // 8 variables in each wavepacket
+ indn1+=2*nspl[s1][c1]; // 2 variables in each wp norm
+ }// c1
+ }// s1
+}
+
+void AWPMD_split::clear_forces(int flag,Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ if(flag&0x1){
+ for(int i=0;i<ni;i++)
+ fi[i]=Vector_3(0.);
+ }
+ if(flag&0x4 && !(flag&0x10)){ // electron forces requested in physical representation
+ int iv1=0;
+ for(int s1=0;s1<2;s1++){ // clearing forces
+ for(int c1=0;c1<ne[s1];c1++){
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ fe_x[iv1+j1]=Vector_3(0,0,0);
+ fe_p[iv1+j1]=Vector_3(0,0,0);
+ fe_w[iv1+j1]=0;
+ fe_pw[iv1+j1]=0;
+ fe_c[iv1+j1]=Vector_2(0,0);
+ }
+ iv1+=nspl[s1][c1];
+ }
+ }
+ }
+}
+
+void AWPMD_split::get_el_forces(int flag, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ if(flag&0x4) //need to replace the forces
+ clear_forces(0x4,NULL,fe_x,fe_p,fe_w,fe_pw,fe_c);
+
+ // recalculating derivatives
+ if(flag&(0x8|0x4)){ //electron forces needed
+ int iv1=0;
+ for(int s1=0;s1<2;s1++){
+ int ic1=0; // starting index of the wp for current electron
+ for(int c1=0;c1<ne[s1];c1++){
+ int indw1=8*ic1;
+ int indn1=(nvar[s1]/10)*8+2*ic1;
+ for(int k1=0;k1<nspl[s1][c1];k1++){
+ WavePacket wk=wp[s1][ic1+k1];
+ /*double w=wk.get_width();
+ Vector_3 r=wk.get_r();
+ double t=3/(2*w*w*w);
+ fe_w[ic1+k1]+= t*E_der[s1][indw1+8*k1]+imag(wk.a)*E_der[s1][indw1+8*k1+1]/w;
+ fe_pw[ic1+k1]+=E_der[s1][indw1+8*k1+1]/(2*w*h_plank);
+ for(int i=0;i<3;i++){
+ fe_x[ic1+k1][i]+= -2*real(wk.a)*E_der[s1][indw1+8*k1+2+2*i]-2*imag(wk.a)*E_der[s1][indw1+8*k1+2+2*i+1];
+ fe_p[ic1+k1][i]+= (-E_der[s1][indw1+8*k1+2+2*i+1])*(m_electron/h_plank); //*(h_plank/m_electron);
+ fe_pw[ic1+k1]+=(r[i]*E_der[s1][indw1+8*k1+2+2*i+1]/w)/h_plank;
+ fe_w[ic1+k1]+=2*r[i]*(t*E_der[s1][indw1+8*k1+2+2*i]+imag(wk.a)*E_der[s1][indw1+8*k1+2+2*i+1]/w);
+ }*/
+ wk.int2phys_der< minus >(E_der[s1].begin()+indw1,(double *)&fe_x[iv1+k1],(double *)&fe_p[iv1+k1],&fe_w[iv1+k1],&fe_pw[iv1+k1], 1./one_h);
+ fe_c[iv1+k1]+=-Vector_2(E_der[s1][indn1+2*k1],E_der[s1][indn1+2*k1+1]);
+ }// k1
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ iv1+=nspl[s1][c1]; // incrementing global variable address
+ }
+ }
+ }
+}
+
+//e same as interaction, but using Hartee factorization (no antisymmetrization)
+int AWPMD_split::interaction_hartree(int flag, Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+
+ // resize arrays if needed
+ enum APPROX tmp=HARTREE;
+ swap(tmp,approx); // do not neeed large matrices
+ resize(flag);
+ swap(tmp,approx);
+
+ // clearing forces
+ clear_forces(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+ // calculate block norms and (optionally) derivatives
+ calc_norms(flag);
+
+ Eee = Ew = 0.;
+ for(int s1=0;s1<2;s1++){
+ Ee[s1]=0.;
+ Eei[s1]=0.;
+ int ic1=0; // starting index of the wp for current electron
+
+ for(int c1=0;c1<ne[s1];c1++){
+ // calculating single-electron quantities within block
+ double Ee1=0., Ew1=0., Eei1=0.;
+ double pref=-h2_me/(2*wf_norm[s1][c1]); // ekin
+ double pref_ei=coul_pref/wf_norm[s1][c1];
+
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ cdouble cj(split_c[s1][ic1+j1][0],split_c[s1][ic1+j1][1]);
+ WavePacket wj=wp[s1][ic1+j1];
+
+ OverlapDeriv o;
+ if(flag&(0x8|0x4)) //electron forces needed
+ o.set1(wj);
+
+ for(int k1=j1;k1<nspl[s1][c1];k1++){
+ int M1a=(j1==k1 ? 1: 2);
+ double M1e, M1f;
+ _mytie(M1e,M1f)=check_part1(s1,ic1+j1,ic1+k1)*M1a;
+
+ cdouble ck(split_c[s1][ic1+k1][0],split_c[s1][ic1+k1][1]);
+
+ // electrons kinetic energy
+ WavePacket wk=wp[s1][ic1+k1];
+ if(pbc)
+ move_to_image(wj,wk);
+
+ WavePacket wjk=conj(wj)*wk;
+ cdouble I0 = wjk.integral();
+ cdouble part_jk=conj(cj)*ck;
+
+ if(M1e){
+ cVector_3 v1=conj(wj.b)*wk.a-wk.b*conj(wj.a);
+ cdouble v=(v1*v1)/wjk.a;
+ v-=6.*wk.a*conj(wj.a);
+ v/=wjk.a;
+
+ //v=1.;
+
+ // kinetic energy contribution
+ Ee[s1] += M1e*real(part_jk*I0*v)*pref; // Ejk+Ekj=Ejk+conj(Ejk), j!=k or Ejj
+
+
+
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cVector_3 tv=wk.b*conj(wj.a)-conj(wj.b)*wk.a;
+ cdouble ajk2=wjk.a*wjk.a;
+ cdouble ajk3=ajk2*wjk.a;
+ cdouble dv_aj_conj= -2*wk.a*(3*wjk.a*wk.a-tv*wjk.b)/ajk3;
+ cdouble dv_ak=-2*conj(wj.a)*(3*wjk.a*conj(wj.a)+tv*wjk.b)/ajk3;
+ cVector_3 dv_bj_conj=-2*tv*wk.a/ajk2;
+ cVector_3 dv_bk=2*tv*conj(wj.a)/ajk2;
+
+ /*cdouble dv_aj_conj=0.;
+ cdouble dv_ak=0.;
+ cVector_3 dv_bj_conj;
+ cVector_3 dv_bk;*/
+
+
+
+ o.set2(wk,&I0);
+ // calculate full derivative of the term pref*conj(cj)*ck*Ijk*vjk/sqrt(nrm(s1)*nrm(s2))
+ // denominator must be included in pref
+ eterm_deriv(ic1,s1,c1,j1,ic1,s1,c1,k1,M1f*pref,o,v,dv_aj_conj,dv_ak,dv_bj_conj,dv_bk);
+ }
+ }// M1e
+
+ cVector_3 djk=wjk.b/(2.*wjk.a);
+ // e-i energy
+ //cdouble sum(0.,0.);
+ for(int i=0;i<ni;i++){ // ions loop
+ double M1ie, M1if;
+ _mytie(M1ie,M1if)=check_part1ei(s1,ic1+j1,ic1+k1,i)*M1a;
+ if(!M1ie)
+ continue;
+
+ cVector_3 gjki=djk - cVector_3(xi[i]);
+
+ if(pbc) // correcting the real part (distance) according to PBC
+ gjki=rcell1(gjki,cell,pbc);
+ //-Igor- gkli=cVector_3(real(gkli).rcell1(cell,pbc),imag(gkli));
+
+ cdouble ngjki=gjki.norm();
+ cdouble sqajk=sqrt(wjk.a);
+ //cdouble ttt = cerf_div(ngjki,c);
+ cdouble v=cerf_div(ngjki,sqajk);
+ double pref_eiq=pref_ei*qi[i]*(qe[s1][ic1+j1]+qe[s1][ic1+k1])*0.5;
+ cdouble dE=pref_eiq*I0*v*part_jk;
+
+ // ions energy contribution
+ Eei[s1] += M1ie*real(dE);
+ //sum+=dE;
+
+ cdouble t1, t2;
+ bool zero_force=(fabs(real(ngjki))+fabs(imag(ngjki))<1e-10);
+ if(flag&(0x8|0x4|0x3) ){ //some derivatives needed
+ cdouble arg=ngjki*sqajk;
+ t1=two_over_sqr_pi*exp(-arg*arg);
+ t2=t1/(2*sqajk);
+ t1*=sqajk;
+ }
+
+ if(flag&0x3 && !zero_force){// calculate forces on ions
+ cdouble dEw=pref_eiq*I0*t1*part_jk;
+ dEw=(dE-dEw)/ngjki;
+ Vector_3 dir=-real(gjki);
+ dir.normalize();
+ fi[i]+=M1if*real( dEw)*dir;
+ }
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cdouble dv_ak= (zero_force ? 0.: (djk*gjki)*(v-t1)/(wjk.a*ngjki*ngjki)) +t2;
+ cVector_3 dv_bk= zero_force ? cVector_3() : -gjki*(v-t1)/(2*wjk.a*ngjki*ngjki);
+ eterm_deriv(ic1,s1,c1,j1,ic1,s1,c1,k1,M1if*pref_eiq,o,v,dv_ak,dv_ak,dv_bk,dv_bk);
+ }
+ }
+
+ // extra constraint energy
+ if(j1==k1 && constraint == HARM && M1e){
+ cdouble v=conj(wj.a)*wj.a;
+ Ew += harm_w0_4 * real(part_jk*v)/wf_norm[s1][c1];
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cdouble dv_ak= conj(wj.a);
+ cdouble dv_aj_conj =wj.a;
+ eterm_deriv(ic1,s1,c1,j1,ic1,s1,c1,k1,harm_w0_4/wf_norm[s1][c1],o,v,dv_aj_conj,dv_ak,cVector_3(),cVector_3());
+ }
+ }
+# if 1
+ // second block
+ // e-e interaction
+ for(int s2=s1;s2<2;s2++){
+ int ic2=0; // starting index of the wp for current electron
+
+ for(int c2=0 ;c2<ne[s2];ic2+=nspl[s2][c2],c2++){ // incrementing block2 wp address
+ if(s1==s2 && c2<=c1)
+ continue;
+
+ double pref_ee=coul_pref/(wf_norm[s1][c1]*wf_norm[s2][c2]);
+ double dE=0.;
+ for(int j2=0;j2<nspl[s2][c2];j2++){
+
+ cdouble cj2(split_c[s2][ic2+j2][0],split_c[s2][ic2+j2][1]);
+ WavePacket& wj2=wp[s2][ic2+j2];
+
+ OverlapDeriv o2;
+ if(flag&(0x8|0x4)) //electron forces needed
+ o2.set1(wj2);
+
+ for(int k2=j2;k2<nspl[s2][c2];k2++){
+ int M2a=(j2==k2 ? 1: 2);
+ double M2e, M2f;
+ _mytie(M2e,M2f)=check_part1(s1,ic1+j1,ic1+k1,s2,ic2+j2,ic2+k2);
+
+ cdouble ck2(split_c[s2][ic2+k2][0],split_c[s2][ic2+k2][1]);
+
+ WavePacket wk2=wp[s2][ic2+k2];
+ if(pbc)
+ move_to_image(wj2,wk2);
+ WavePacket wjk2=conj(wj2)*wk2;
+ cdouble I02 = wjk2.integral();
+
+
+ cdouble part_jk2=conj(cj2)*ck2;
+
+ cVector_3 djk2=wjk2.b/(2*wjk2.a);
+ cVector_3 ddv=djk-djk2;
+ cdouble dd=ddv.norm();
+ cdouble aa=1./sqrt(1./wjk.a+1./wjk2.a);
+ //double ww1=wj.get_width();
+ //double ww2=wj2.get_width();
+ cdouble v=cerf_div(dd,aa);
+ double pref_eeq=pref_ee*(qe[s1][ic1+j1]+qe[s1][ic1+k1])*(qe[s2][ic2+j2]+qe[s2][ic2+k2])*0.25;
+ cdouble Vj1j2k1k2=pref_eeq*I0*I02*v*part_jk*part_jk2;
+ Eee+=M1e*M2e*real(Vj1j2k1k2);
+ //Eee+=(j1==k1 || j2==k2 ? 1: 2)*real(Vj1j2k1k2);
+
+
+ cdouble t1, t2;
+ bool zero_force=(fabs(real(dd))+fabs(imag(dd))<1e-10);
+ if(flag&(0x8|0x4) ){ //electron forces needed
+ cdouble arg=dd*aa;
+ t1=two_over_sqr_pi*exp(-arg*arg)*aa;
+ t2=t1*aa*aa/2;
+
+
+ cdouble dv_ak1= (zero_force ? 0.: (djk*ddv)*(v-t1)/(wjk.a*dd*dd)) +t2/(wjk.a*wjk.a);
+ cVector_3 dv_bk1= zero_force ? cVector_3() : -ddv*(v-t1)/(2*wjk.a*dd*dd);
+ eterm_deriv(ic1,s1,c1,j1,ic1,s1,c1,k1,M1f*M2f*pref_eeq*I02*part_jk2,o,v,dv_ak1,dv_ak1,dv_bk1,dv_bk1);
+
+ o2.set2(wk2,&I02);
+ cdouble dv_ak2= (zero_force ? 0.: (-djk2*ddv)*(v-t1)/(wjk2.a*dd*dd)) +t2/(wjk2.a*wjk2.a);
+ cVector_3 dv_bk2= zero_force ? cVector_3() : ddv*(v-t1)/(2*wjk2.a*dd*dd);
+ eterm_deriv(ic2,s2,c2,j2,ic2,s2,c2,k2,M1f*M2f*pref_eeq*I0*part_jk,o2,v,dv_ak2,dv_ak2,dv_bk2,dv_bk2);
+ }
+
+ }// k2
+ } // j2
+
+ } //c2
+ }// s2
+# endif
+ } // k1
+ }// j1
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ }// c1
+ } // s1
+
+ // transforming the forces to physical coordinates
+ if(flag&(0x8|0x4) && !(flag&0x10))
+ get_el_forces((flag&(~0x4))|0x8,fe_x,fe_p,fe_w,fe_pw,fe_c); // flag change: electronic forces were cleared already
+
+ if(calc_ii)
+ interaction_ii(flag,fi);
+
+ return 1;
+}
+
+
+///\en Calcualtes the overlap between two electrons taking all split WPs into account.
+/// Norms must be pre-calculated.
+cdouble AWPMD_split::overlap(int ic1, int s1, int c1,int ic2, int s2, int c2){
+ cdouble sum(0,0);
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ double cj_re=split_c[s1][ic1+j1][0];
+ double cj_im=split_c[s1][ic1+j1][1];
+ cdouble ccj=cdouble(cj_re,-cj_im);
+ WavePacket wj=wp[s1][ic1+j1];
+ for(int k2=0;k2<nspl[s2][c2];k2++){
+ double ck_re=split_c[s2][ic2+k2][0];
+ double ck_im=split_c[s2][ic2+k2][1];
+ cdouble ck=cdouble(ck_re,ck_im);
+
+ WavePacket wk=wp[s2][ic2+k2];
+ if(pbc)
+ move_to_image(wj,wk);
+ WavePacket wjk=conj(wj)*wk;
+ sum+=ccj*ck*wjk.integral();
+ }
+ }
+ return sum/sqrt(wf_norm[s1][c1]*wf_norm[s2][c2]);
+}
+
+
+/// adds the derivatives of Y in the term v*Y[s](c2,c1)
+void AWPMD_split::y_deriv(cdouble v,int s,int c2, int c1){
+ int ic=0;
+ for(int c=0;c<ne[s];c++){
+ for(int j=0;j<nspl[s][c];j++){
+ E_der[s][ic]+=real((-M[s](c2,ic)*Y[s](c,c1)-Y[s](c2,c)*conj(M[s](c1,ic)))*v);
+ ic++;
+ }
+ }
+}
+
+///\en Calculates interaction in the system of ni ions + electrons
+/// the electonic subsystem must be previously setup by set_electrons, ionic by set_ions
+/// 0x1 -- give back ion forces \n
+/// 0x2 -- add ion forces to the existing set \n
+/// 0x4 -- calculate electronic forces \n
+/// 0x8 -- add electronic forces to the existing arrays \n
+/// 0x10 -- calculate internal electronic derivatives only: \n
+/// will not update electronic force arrays, which may be NULL, \n
+/// the forces may be obtained then using \ref get_el_forces() for all WPs \n
+/// or separately for each WP using \ref get_wp_force()
+/// if PBCs are used the coords must be within a range [0, cell)
+int AWPMD_split::interaction(int flag, Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ //if(approx==HARTREE)
+ //return interaction_hartree(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+
+ //0. resize arrays if needed
+ resize(flag);
+ //1. clearing forces
+ clear_forces(flag,fi,fe_x,fe_p,fe_w,fe_pw,fe_c);
+ // calculate block norms and (optionally) derivatives
+ calc_norms(flag);
+
+ //2. calculating overlap matrix
+ for(int s=0;s<2;s++){
+ int nes = ne[s];
+ if(nes == 0) continue;
+
+ int ik=0;
+ for(int k=0;k<nes;k++){
+
+ Y[s].set(k,k,1.); // Diagonal elements (=1)
+ Oflg[s](k,k) = 1;
+ int il=0;
+ for(int l=0/*k+1*/;l<nes;il+=nspl[s][l],l++){ // incrementing block2 wp address
+ if(l<k+1)
+ continue;
+ cdouble Okl=overlap(ik,s,k,il,s,l);
+ Y[s].set(k,l,Okl);
+ Oflg[s](k,l) = norm(Okl) > ovl_tolerance;
+ }
+ ik+=nspl[s][k]; // incrementing block1 wp address
+ }
+ O[s] = Y[s]; // save overlap matrix
+
+ //3. inverting the overlap matrix
+ int info=0;
+ if(nes && approx!=HARTREE){
+ /*FILE *f1=fopen(fmt("matrO_%d.d",s),"wt");
+ fileout(f1,Y[s],"%15g");
+ fclose(f1);8*/
+
+ ZPPTRF("L",&nes,Y[s].arr,&info);
+ // analyze return code here
+ if(info<0)
+ return LOGERR(info,fmt("AWPMD.interacton: call to ZPTRF failed (exitcode %d)!",info),LINFO);
+ ZPPTRI("L",&nes,Y[s].arr,&info);
+ if(info<0)
+ return LOGERR(info,fmt("AWPMD.interacton: call to ZPTRI failed (exitcode %d)!",info),LINFO);
+
+
+ /*f1=fopen(fmt("matrY_%d.d",s),"wt");
+ fileout(f1,Y[s],"%15g");
+ fclose(f1);*/
+ }
+
+ // Clearing matrices for electronic forces
+ /*
+ if(flag&0x4){
+ Te[s].Set(0.);
+ Tei[s].Set(0.);
+ }*/
+ }
+# if 1
+ // calculating the M matrix
+ if(norm_needed || ( flag&(0x8|0x4) && approx!=HARTREE ) ){
+ for(int s1=0;s1<2;s1++){
+ if(approx!=HARTREE){
+ M[s1].Set(0.);
+ L[s1].Set(0.);
+ if(norm_needed)
+ Norm[s1].Set(0.);
+ }
+ else
+ Lh[s1].assign(nvar[s1],0.);
+
+ int indn=(nvar[s1]/10)*8;
+ int ic1=0;
+ for(int c1=0;c1<ne[s1];c1++){
+ // L[s](c1,c1*)=0
+ /*for(int j=0;j<nspl[s1][c1];j++){
+ for(int i=0;i<10;i++)
+ L[s1](c1,10*(ic1+j)+i)=0.;
+ }*/
+
+ int ic2=0;
+ for(int c2=0;c2<ne[s1];ic2+=nspl[s1][c2],c2++){
+ if(approx==HARTREE && c1!=c2) // only diagonals for Hartree
+ continue;
+ if(c2<c1) // taken assymmetry into account
+ continue;
+ if( !Oflg[s1](c1,c2) )
+ continue; // non-overlapping WPs
+
+
+ if(approx==HARTREE && norm_needed) // initializing the matrices with zero
+ Normh[s1][c1].Set(0);
+
+
+ double sq_norm12=sqrt(wf_norm[s1][c1]*wf_norm[s1][c2]);
+ double pref=1./(sq_norm12);
+
+
+ // WP blocks:
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ cdouble cj1(split_c[s1][ic1+j1][0],split_c[s1][ic1+j1][1]);
+ WavePacket wj1=wp[s1][ic1+j1];
+
+ OverlapDeriv o12;
+ o12.set1(wj1);
+
+ for(int k2=(c1==c2 ? j1: 0); k2<nspl[s1][c2];k2++){
+ double M12= (c1==c2 && j1==k2) ? 0.5 : 1;
+
+ cdouble ck2(split_c[s1][ic2+k2][0],split_c[s1][ic2+k2][1]);
+
+ // electrons kinetic energy
+ WavePacket wk2=wp[s1][ic2+k2];
+ if(pbc)
+ move_to_image(wj1,wk2);
+
+ WavePacket wjk12=conj(wj1)*wk2;
+ cdouble I012 = wjk12.integral();
+ cdouble part_jk12=conj(cj1)*ck2;
+
+ o12.set2(wk2,&I012);
+
+
+ cdouble der_k[10], der_j[10];
+ // over a_k_re
+ der_k[0]= part_jk12*o12.da2_re();
+ // over a_k_im
+ der_k[1]= part_jk12*o12.da2_im();
+ // over a_j_re
+ der_j[0]= part_jk12*o12.da1_re();
+ // over a_j_im
+ der_j[1]= part_jk12*o12.da1_im();
+
+ for(int i=0;i<3;i++){
+ // over b_k_re
+ der_k[2+2*i]= part_jk12*o12.db2_re(i);
+ // over b_k_im
+ der_k[2+2*i+1]= part_jk12*o12.db2_im(i);
+ // over b_j_re
+ der_j[2+2*i]= part_jk12*o12.db1_re(i);
+ // over b_j_im
+ der_j[2+2*i+1]= part_jk12*o12.db1_im(i);
+ }
+
+ // over ck_re
+ der_k[8]=conj(cj1)*I012;
+ // over ck_im
+ der_k[9]=i_unit*conj(cj1)*I012;
+ // over cj_re
+ der_j[8]=ck2*I012;
+ // over cj_im
+ der_j[9]=-i_unit*ck2*I012;
+
+ if(j1==0){ // add all together instead of adding by parts
+ cdouble t=-O[s1](c1,c2)/pref; //-part_jk12*I012;
+ for(int i=0;i<8;i++){
+ der_j[i]+=t*wf_norm_der[s1][8*(ic1+j1)+i];
+ der_k[i]+=t*wf_norm_der[s1][8*(ic2+k2)+i];
+ }
+ der_j[8]+=t*wf_norm_der[s1][indn+2*(c1+j1)];
+ der_j[9]+=t*wf_norm_der[s1][indn+2*(c1+j1)+1];
+ der_k[8]+=t*wf_norm_der[s1][indn+2*(c2+k2)];
+ der_k[9]+=t*wf_norm_der[s1][indn+2*(c2+k2)+1];
+ }
+
+ if(approx!=HARTREE){
+ for(int i=0;i<10;i++){
+ L[s1](c1,10*(ic2+k2)+i)+=M12*pref*der_k[i];
+ L[s1](c2,10*(ic1+j1)+i)+=M12*pref*conj(der_j[i]);
+ }
+
+ // M=Y*L
+ for(int g=0;g<ne[s1];g++){
+ for(int i=0;i<10;i++){
+ M[s1](g,10*(ic2+k2)+i)+=M12*pref*Y[s1](g,c1)*der_k[i];
+ M[s1](g,10*(ic1+j1)+i)+=M12*pref*Y[s1](g,c2)*conj(der_j[i]);
+ }
+ }//g
+ }
+ else{ // HARTREE
+ for(int i=0;i<10;i++){
+ Lh[s1][10*(ic2+k2)+i]+=M12*pref*der_k[i];
+ Lh[s1][10*(ic1+j1)+i]+=M12*pref*der_k[i];
+ }
+ }
+ if(norm_needed){ // filling part of norm matrix
+ o12.calc_der_overlap(false,conj(cj1),ck2);
+ if(approx!=HARTREE){
+ for(int i=0;i<10;i++) // 10x10
+ for(int j=0;j<10;j++)
+ Norm[s1](10*(ic1+j1)+i,10*(ic2+k2)+j)=-2*imag(o12.IDD((int)i,(int)j))/one_h;
+ }
+ else{
+ for(int i=0;i<10;i++) // 10x10
+ for(int j=0;j<10;j++)
+ Normh[s1][c1](10*j1+i,10*k2+j)=-2*imag(o12.IDD((int)i,(int)j))/one_h;
+ }
+ }
+ } // k2
+ } //j1
+ }// c2
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ }// c1
+ if(norm_needed){ // filling the rest of norm_matrix
+ if(approx!=HARTREE){
+ int ic1=0;
+ for(int c1=0;c1<ne[s1];c1++){
+ int ic2=0;
+ for(int c2=0;c2<ne[s1];ic2+=nspl[s1][c2],c2++){
+ if(c2<c1)
+ continue;
+ for(int j1=0;j1<10*nspl[s1][c1];j1++){
+ for(int k2=(c1==c2 ? j1: 0); k2<10*nspl[s1][c2];k2++){
+ cdouble y=0.;
+ for(int g=0;g<ne[s1];g++)
+ y+=conj(L[s1](g,10*ic1+j1))*M[s1](g,10*ic2+k2);
+ cdouble elm=-conj(L[s1](c2,10*ic1+j1))*wf_norm_der[s1][10*ic2+k2]-L[s1](c1,10*ic2+k2)*wf_norm_der[s1][10*ic1+j1]-O[s1](c1,c2)*wf_norm_der[s1][10*ic2+k2]*wf_norm_der[s1][10*ic1+j1];
+ elm-=y;
+ elm*=Y[s1](c2,c1);
+ Norm[s1](10*ic1+j1,10*ic2+k2)+=-2*imag(elm)/one_h;
+ }// k2
+ } // j1
+ }// c2
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ }
+ }
+ else{ // HARTREE
+ int ic1=0;
+ for(int c1=0;c1<ne[s1];c1++){
+ for(int j1=0;j1<10*nspl[s1][c1];j1++){
+ for(int k2=j1; k2<10*nspl[s1][c1];k2++){
+ cdouble y=conj(Lh[s1][10*ic1+j1])*Lh[s1][10*ic1+k2];
+ cdouble elm=-conj(Lh[s1][10*ic1+j1])*wf_norm_der[s1][10*ic1+k2]-Lh[s1][10*ic1+k2]*wf_norm_der[s1][10*ic1+j1]-wf_norm_der[s1][10*ic1+k2]*wf_norm_der[s1][10*ic1+j1];
+ elm-=y;
+ Normh[s1][c1](j1,k2)+=-2*imag(elm)/one_h;
+ }
+ }
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ }
+ }
+ } // norm
+ } // s1
+ } // flag
+# endif
+ Vector_3 ndr;
+ // calculating single particle contribution
+ Edc = Edk = Eee = Ew = 0.;
+ for(int s1=0;s1<2;s1++){
+ Ee[s1]=Eei[s1]=0.;
+ int ic1=0;
+ for(int c1=0;c1<ne[s1];c1++){
+
+ //double Ee1=0., Ew1=0., Eei1=0.;
+
+ int ic2=0;
+ for(int c2=0;c2<ne[s1];ic2+=nspl[s1][c2],c2++){
+ if( !Oflg[s1](c1,c2) )
+ continue; // non-overlapping WPs
+
+ if(c2<c1) // taken as M factor into account
+ continue;
+
+ double sq_norm12=sqrt(wf_norm[s1][c1]*wf_norm[s1][c2]);
+ double pref=-h2_me/(2*sq_norm12); // ekin
+ double pref_ei=coul_pref/sq_norm12;
+
+ cdouble yy;
+ if(approx==HARTREE)
+ yy=1.;
+ else
+ yy=Y[s1](c2,c1);
+ cdouble Tc1c2=0.;
+
+ if((approx!=HARTREE || c2==c1) && Oflg[s1](c1,c2)){ // only diagonal terms for Hartree, and overlap nonzero
+ // WP blocks:
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ cdouble cj1(split_c[s1][ic1+j1][0],split_c[s1][ic1+j1][1]);
+ WavePacket wj1=wp[s1][ic1+j1];
+
+ OverlapDeriv o12;
+ if(flag&(0x8|0x4)) //electron forces needed
+ o12.set1(wj1);
+
+ for(int k2=(c1==c2 ? j1: 0); k2<nspl[s1][c2];k2++){
+ int M12=(c1==c2 && j1==k2 ? 1: 2);
+ double M12pe, M12pf;
+ _mytie(M12pe,M12pf)=check_part1(s1,ic1+j1,ic2+k2)*M12;
+
+
+
+ cdouble ck2(split_c[s1][ic2+k2][0],split_c[s1][ic2+k2][1]);
+
+
+ // electrons kinetic energy
+ WavePacket wk2=wp[s1][ic2+k2];
+ if(pbc)
+ move_to_image(wj1,wk2);
+
+ WavePacket wjk12=conj(wj1)*wk2;
+ cdouble I012 = wjk12.integral();
+ cdouble part_jk12=conj(cj1)*ck2;
+ cVector_3 djk12=wjk12.b/(2.*wjk12.a);
+
+ // kinetic energy contribution
+ if(M12pf){
+ cVector_3 v1=conj(wj1.b)*wk2.a-wk2.b*conj(wj1.a);
+ cdouble v=(v1*v1)/wjk12.a;
+ v-=6.*wk2.a*conj(wj1.a);
+ v/=wjk12.a;
+ //v=1.;
+
+ double dE=M12pe*real(part_jk12*I012*v*yy)*pref;
+ //double dE=real(yy);
+ //Tc1c2+=1.;
+ Ee[s1] += dE;
+ Eep[s1][ic1+j1]+= 0.5*dE; //per particle energy
+ Eep[s1][ic2+k2]+= 0.5*dE;
+
+ // diagonal term
+ if(M12==1)
+ Edk+=dE;
+
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cVector_3 tv=wk2.b*conj(wj1.a)-conj(wj1.b)*wk2.a;
+ cdouble ajk2=wjk12.a*wjk12.a;
+ cdouble ajk3=ajk2*wjk12.a;
+ cdouble dv_aj_conj= -2*wk2.a*(3*wjk12.a*wk2.a-tv*wjk12.b)/ajk3;
+ cdouble dv_ak=-2*conj(wj1.a)*(3*wjk12.a*conj(wj1.a)+tv*wjk12.b)/ajk3;
+ cVector_3 dv_bj_conj=-2*tv*wk2.a/ajk2;
+ cVector_3 dv_bk=2*tv*conj(wj1.a)/ajk2;
+
+
+ o12.set2(wk2,&I012);
+ // calculate full derivative of the term pref*conj(cj)*ck*Ijk*vjk/sqrt(nrm(s1)*nrm(s2))
+ // denominator must be included in pref
+ eterm_deriv(ic1,s1,c1,j1,ic2,s1,c2,k2,M12pf*pref*yy,o12,v,dv_aj_conj,dv_ak,dv_bj_conj,dv_bk);
+
+ Tc1c2+=M12pf*part_jk12*I012*v*pref; // all without Y
+ }
+ } // M12pe
+ // e-i energy
+ cdouble sum=0.;
+ for(int i=0;i<ni;i++){ // ions loop
+ double M12pie, M12pif;
+ _mytie(M12pie,M12pif)=check_part1ei(s1,ic1+j1,ic2+k2,i)*M12;
+ if(!M12pif)
+ continue;
+ cVector_3 gjki=djk12 - cVector_3(xi[i]);
+
+ if(pbc) // correcting the real part (distance) according to PBC
+ gjki=rcell1(gjki,cell,pbc);
+ //-Igor- gkli=cVector_3(real(gkli).rcell1(cell,pbc),imag(gkli));
+
+ cdouble ngjki=gjki.norm();
+ cdouble sqajk=sqrt(wjk12.a);
+ //cdouble ttt = cerf_div(ngjki,c);
+ cdouble v=cerf_div(ngjki,sqajk);
+ double pref_eiq=pref_ei*qi[i]*(qe[s1][ic1+j1]+qe[s1][ic2+k2])*0.5;
+ cdouble dE=pref_eiq*I012*v*part_jk12;
+ sum+=M12pie*dE; // sum without Y
+ dE*=yy;
+
+ Eeip[s1][ic1+j1]+= 0.25*real(dE); //per particle energy
+ Eeip[s1][ic2+k2]+= 0.25*real(dE);
+ Eiep[i]+=0.5*real(dE);
+
+ cdouble t1, t2;
+ bool zero_force=(fabs(real(ngjki))+fabs(imag(ngjki))<1e-10);
+ if(flag&(0x8|0x4|0x3) ){ //some derivatives needed
+ cdouble arg=ngjki*sqajk;
+ t1=two_over_sqr_pi*exp(-arg*arg);
+ t2=t1/(2*sqajk);
+ t1*=sqajk;
+ }
+
+ if(flag&0x3 && !zero_force){// calculate forces on ions
+ cdouble dEw=(pref_eiq*yy)*I012*t1*part_jk12;
+ dEw=(dE-dEw)/ngjki;
+ Vector_3 dir=-real(gjki);
+ dir.normalize();
+ fi[i]+=M12pif*real( dEw)*dir;
+ }
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cdouble dv_ak= (zero_force ? 0.: (djk12*gjki)*(v-t1)/(wjk12.a*ngjki*ngjki)) +t2;
+ cVector_3 dv_bk= zero_force ? cVector_3() : -gjki*(v-t1)/(2*wjk12.a*ngjki*ngjki);
+ eterm_deriv(ic1,s1,c1,j1,ic2,s1,c2,k2,M12pif*pref_eiq*yy,o12,v,dv_ak,dv_ak,dv_bk,dv_bk);
+ }
+ }
+ // ions energy contribution
+ Eei[s1] += real(sum*yy);
+
+ // diagonal term
+ if(M12==1)
+ Edc+= real(sum*yy);;
+
+ if(flag&(0x8|0x4)) //electron forces needed
+ Tc1c2+=sum;
+
+ // extra constraint energy, will only arrive here when M12p=1
+ if((c1==c2 && j1==k2) && constraint == HARM){
+ cdouble v=conj(wj1.a)*wk2.a;
+ double dE= M12pe * harm_w0_4 * real(part_jk12*v)/wf_norm[s1][c1];
+ Ew += dE;
+
+ Ewp[s1][ic1+j1]+= dE; //per particle energy
+
+
+ if(flag&(0x8|0x4)){ //electron forces needed
+ cdouble dv_ak= conj(wj1.a);
+ cdouble dv_aj_conj =wk2.a;
+ eterm_deriv(ic1,s1,c1,j1,ic1,s1,c1,k2,M12pf*harm_w0_4/wf_norm[s1][c1],o12,v,dv_aj_conj,dv_ak,cVector_3(),cVector_3());
+ }
+ }
+ }// k2
+ }// j1
+ if(flag&(0x8|0x4) && approx!=HARTREE){ //electron forces needed
+ // adding Y derivative term for all variables (te and tei terms)
+ y_deriv(Tc1c2,s1,c2,c1);
+ }
+ } // !HARTREE or spins or overlap
+
+
+
+# if 1 // pair by pair sum
+ // second block
+ // e-e interaction
+ for(int s2=s1;s2<2;s2++){
+ if(approx==HARTREE && c1!=c2) // only Vkmkm terms for Hartree
+ continue;
+ if(/*s1==s2 &&*/ c2<c1) // pair selection term
+ continue;
+
+ int ic3=0; // starting index of the wp for current electron
+ for(int c3=0 ;c3<ne[s2];ic3+=nspl[s2][c3],c3++){ // incrementing block2 wp address
+ if(approx==HARTREE && s1==s2 && c3==c1) // [Vkkmn contribution for same spin is 0], also no Vkkkk terms for Hartree (=)
+ continue;
+ if(s1==s2 && c3<=c1) // and general Coulomb sum: i<j (<) //??
+ continue;
+
+ int ic4=0;
+ for(int c4=0; c4<ne[s2];ic4+=nspl[s2][c4],c4++){
+ if(approx==HARTREE && c4!=c3) // only Vkmkm terms for Hartree
+ continue;
+ //if(s1==s2 && c4==c2) // Vklmm contribution for same spin is 0 for antisymmetrized approximations, also Vmmmm is 0 for Hartree
+ // continue;
+ if(s1==s2 && c4<=c2) // pair selection term: Vklmm
+ continue;
+ if(/*s1==s2 &&*/ c4<c3) // pair selection term
+ continue;
+
+ double sq_norm34=sqrt(wf_norm[s2][c3]*wf_norm[s2][c4]);
+ double pref_ee=coul_pref/(sq_norm12*sq_norm34);
+
+
+ cdouble yy;
+ double K=1.;
+ if(approx==HARTREE){
+ yy=1.;
+ }
+ else{
+ if(s1==s2){ // same spin antisymmetrized term
+ yy=Y[s1](c2,c1)*Y[s1](c4,c3)-Y[s1](c2,c3)*Y[s1](c4,c1); // check the order of c
+ }
+ else{ // different spin atisymmetrized term
+ //if(approx==UHF)
+ //K=2.;
+ yy=K*Y[s2](c4,c3)*Y[s1](c2,c1);
+ }
+ //yy=1.;
+ //yy=Y[s1](c2,c1)*Y[s1](c4,c3);
+ //yy=Y[s1](c2,c3)*Y[s1](c4,c1);
+ //yy=Y[s1](c2,c1)*Y[s1](c4,c3)-Y[s1](c2,c3)*Y[s1](c4,c1);
+ }
+
+ cdouble Vy=0.;
+ // WP blocks: Vc1c3c2c4
+ for(int j1=0;j1<nspl[s1][c1];j1++){
+ cdouble cj1(split_c[s1][ic1+j1][0],split_c[s1][ic1+j1][1]);
+ WavePacket wj1=wp[s1][ic1+j1];
+
+ OverlapDeriv o12,o14;
+ if(flag&(0x8|0x4)){ //electron forces needed
+ o12.set1(wj1);
+ o14.set1(wj1);
+ }
+
+ for(int k2=(approx==HARTREE ? j1: 0); k2<nspl[s1][c2];k2++){
+ int M12=(c1==c2 && j1==k2 ? 1: 2);
+
+
+ cdouble ck2(split_c[s1][ic2+k2][0],split_c[s1][ic2+k2][1]);
+
+
+ WavePacket wk2=wp[s1][ic2+k2];
+ if(pbc)
+ move_to_image(wj1,wk2);
+
+ WavePacket wjk12=conj(wj1)*wk2;
+ cdouble I012 = wjk12.integral();
+ cdouble part_jk12=conj(cj1)*ck2;
+ cVector_3 djk12=wjk12.b/(2.*wjk12.a);
+
+ if(flag&(0x8|0x4)) //electron forces needed
+ o12.set2(wk2,&I012);
+
+
+ for(int j3=0;j3<nspl[s2][c3];j3++){
+
+ cdouble cj3(split_c[s2][ic3+j3][0],split_c[s2][ic3+j3][1]);
+ WavePacket& wj3=wp[s2][ic3+j3];
+
+ OverlapDeriv o34, o32;
+ if(flag&(0x8|0x4)){ //electron forces needed
+ o34.set1(wj3);
+ o32.set1(wj3);
+ //o32.set2(wk2);
+ }
+
+ // 3-2
+ WavePacket wjk32;
+ cdouble I032=0., part_jk32;
+ cVector_3 djk32;
+ if(s1==s2 || approx==UHF){
+ WavePacket wk2=wp[s2][ic2+k2];
+ if(pbc)
+ move_to_image(wj3,wk2);
+ wjk32=conj(wj3)*wk2;
+ I032 = wjk32.integral();
+ part_jk32=conj(cj3)*ck2;
+ djk32=wjk32.b/(2*wjk32.a);
+ if(flag&(0x8|0x4)) //electron forces needed
+ o32.set2(wk2,&I032);
+ }
+
+
+ for(int k4=(approx==HARTREE ? j3: 0);k4<nspl[s2][c4];k4++){
+ int M34=(c3==c4 && j3==k4 ? 1: 2);
+
+
+
+ double M0;
+ if(approx==HARTREE)
+ M0=M12*M34;
+ else{
+ M0= (c1==c2 && c3==c4 ? 1: 2); // will have exchange term for different pairs instead of M12*M34 factor
+ }
+ double Me, Mf;
+ _mytie(Me,Mf)=check_part1(s1,ic1+j1,ic2+k2,s2,ic3+j3,ic4+k4)*M0;
+ if(!Mf)
+ continue;
+
+ cdouble ck4(split_c[s2][ic4+k4][0],split_c[s2][ic4+k4][1]);
+
+ // 3-4
+ WavePacket wk4=wp[s2][ic4+k4];
+# if 1
+ if(pbc)
+ move_to_image(wj3,wk4);
+ WavePacket wjk34=conj(wj3)*wk4;
+ cdouble I034 = wjk34.integral();
+ cdouble part_jk34=conj(cj3)*ck4;
+ cVector_3 djk34=wjk34.b/(2*wjk34.a);
+
+ cVector_3 ddv=djk12-djk34;
+ cdouble dd=ddv.norm();
+ cdouble aa=1./sqrt(1./wjk12.a+1./wjk34.a);
+ cdouble v=cerf_div(dd,aa);
+ double pref_eeq=pref_ee*(qe[s1][ic1+j1]+qe[s1][ic2+k2])*(qe[s2][ic3+j3]+qe[s2][ic4+k4])*0.25;
+ cdouble Vj1j3k2k4=pref_eeq*I012*I034*v*part_jk12*part_jk34; // Vklmn
+ double dE=Me*real(Vj1j3k2k4*yy);
+ Eee+=dE;
+
+ Eeep[s1][ic1+j1]+=0.25*dE; // per-particle energy
+ Eeep[s1][ic2+k2]+=0.25*dE;
+ Eeep[s2][ic3+j3]+=0.25*dE;
+ Eeep[s2][ic4+k4]+=0.25*dE;
+
+ // diagonal term
+ if(M12==1 && M34 ==1)
+ Edc+=dE;
+
+ bool zero_force=(fabs(real(dd))+fabs(imag(dd))<1e-10);
+ if(flag&(0x8|0x4) ){ //electron forces needed
+ cdouble arg=dd*aa;
+ cdouble t1=two_over_sqr_pi*exp(-arg*arg)*aa;
+ cdouble t2=t1*aa*aa/2;
+
+
+ cdouble dv_ak1= (zero_force ? 0.: (djk12*ddv)*(v-t1)/(wjk12.a*dd*dd)) +t2/(wjk12.a*wjk12.a);
+ cVector_3 dv_bk1= zero_force ? cVector_3() : -ddv*(v-t1)/(2*wjk12.a*dd*dd);
+ eterm_deriv(ic1,s1,c1,j1,ic2,s1,c2,k2,Mf*pref_eeq*I034*part_jk34*yy,o12,v,dv_ak1,dv_ak1,dv_bk1,dv_bk1);
+
+ o34.set2(wk4,&I034);
+ cdouble dv_ak2= (zero_force ? 0.: (-djk34*ddv)*(v-t1)/(wjk34.a*dd*dd)) +t2/(wjk34.a*wjk34.a);
+ cVector_3 dv_bk2= zero_force ? cVector_3() : ddv*(v-t1)/(2*wjk34.a*dd*dd);
+ eterm_deriv(ic3,s2,c3,j3,ic4,s2,c4,k4,Mf*pref_eeq*I012*part_jk12*yy,o34,v,dv_ak2,dv_ak2,dv_bk2,dv_bk2);
+
+ Vy+=Me*Vj1j3k2k4; // all without yy
+ }// force
+# endif
+# if 1
+ // 1-4
+ if(approx!=HARTREE && (approx==UHF || s1==s2)){
+ wk4=wp[s2][ic4+k4];
+ if(pbc)
+ move_to_image(wj1,wk4);
+ WavePacket wjk14=conj(wj1)*wk4;
+ cdouble I014 = wjk14.integral();
+ cdouble part_jk14=conj(cj1)*ck4;
+ cVector_3 djk14=wjk14.b/(2*wjk14.a);
+
+ cVector_3 ddv=djk32-djk14;
+ cdouble dd=ddv.norm();
+ cdouble aa=1./sqrt(1./wjk32.a+1./wjk14.a);
+ cdouble v=cerf_div(dd,aa);
+
+
+ double pref_eeq=pref_ee*(qe[s1][ic1+j1]+qe[s2][ic4+k4])*(qe[s2][ic3+j3]+qe[s1][ic2+k2])*0.25;
+ cdouble Vj1j3k4k2=pref_eeq*I032*I014*v*part_jk32*part_jk14; // Vklmn
+ double dE=-Me*real(Vj1j3k4k2*yy);
+ Eee+=dE;
+
+ Eeep[s1][ic1+j1]+=0.25*dE; // per-particle energy
+ Eeep[s1][ic2+k2]+=0.25*dE;
+ Eeep[s2][ic3+j3]+=0.25*dE;
+ Eeep[s2][ic4+k4]+=0.25*dE;
+
+
+ bool zero_force=(fabs(real(dd))+fabs(imag(dd))<1e-10);
+ if(flag&(0x8|0x4) ){ //electron forces needed
+ cdouble arg=dd*aa;
+ cdouble t1=two_over_sqr_pi*exp(-arg*arg)*aa;
+ cdouble t2=t1*aa*aa/2;
+
+ o14.set2(wk4,&I014);
+ cdouble dv_ak1= (zero_force ? 0.: (-djk14*ddv)*(v-t1)/(wjk14.a*dd*dd)) +t2/(wjk14.a*wjk14.a);
+ cVector_3 dv_bk1= zero_force ? cVector_3() : ddv*(v-t1)/(2*wjk14.a*dd*dd);
+ eterm_deriv(ic1,s1,c1,j1,ic4,s2,c4,k4,-Mf*pref_eeq*I032*part_jk32*yy,o14,v,dv_ak1,dv_ak1,dv_bk1,dv_bk1);
+
+
+ cdouble dv_ak2= (zero_force ? 0.: (djk32*ddv)*(v-t1)/(wjk32.a*dd*dd)) +t2/(wjk32.a*wjk32.a);
+ cVector_3 dv_bk2= zero_force ? cVector_3() : -ddv*(v-t1)/(2*wjk32.a*dd*dd);
+ eterm_deriv(ic3,s2,c3,j3,ic2,s1,c2,k2,-Mf*pref_eeq*I014*part_jk14*yy,o32,v,dv_ak2,dv_ak2,dv_bk2,dv_bk2);
+
+ Vy+=-Me*Vj1j3k4k2; // all without yy
+ }// force
+ } // s1==s2
+# endif
+ }// k4
+ }// j3
+ } // k2
+ } // j1
+
+ // derivative of yy term
+ if(approx!=HARTREE && flag&(0x8|0x4)){ //electron forces needed
+ //yy=Y[s1](c2,c1)*Y[s1](c4,c3)-Y[s1](c2,c3)*Y[s1](c4,c1);
+# if 1
+ if(s1==s2){
+ // yy
+ y_deriv(Vy*Y[s1](c4,c3),s1,c2,c1);
+ y_deriv(Vy*Y[s1](c2,c1),s1,c4,c3);
+ y_deriv(-Vy*Y[s1](c4,c1),s1,c2,c3);
+ y_deriv(-Vy*Y[s1](c2,c3),s1,c4,c1);
+ }
+ else{
+ y_deriv(K*Vy*Y[s2](c4,c3),s1,c2,c1);
+ y_deriv(K*Vy*Y[s1](c2,c1),s2,c4,c3);
+ }
+# endif
+ // y_deriv(Vy*Y[s1](c4,c1),s1,c2,c3);
+ // y_deriv(Vy*Y[s1](c2,c3),s1,c4,c1);
+ }
+ } // c4
+ } // c3
+ } // s2
+# endif
+ }// c2
+ ic1+=nspl[s1][c1]; // incrementing block1 wp address
+ }// c1
+ } // s1
+
+ // transforming the forces to physical coordinates
+ if(flag&(0x8|0x4) && !(flag&0x10))
+ get_el_forces((flag&(~0x4))|0x8,fe_x,fe_p,fe_w,fe_pw,fe_c); // flag change: electronic forces were cleared already
+
+ if(calc_ii)
+ interaction_ii(flag,fi);
+
+ return 1;
+}
\ No newline at end of file
diff --git a/lib/awpmd/systems/interact/TCP/wpmd_split.h b/lib/awpmd/systems/interact/TCP/wpmd_split.h
new file mode 100644
index 000000000..cbc6202ff
--- /dev/null
+++ b/lib/awpmd/systems/interact/TCP/wpmd_split.h
@@ -0,0 +1,204 @@
+# ifndef WPMD_SPLIT_H
+# define WPMD_SPLIT_H
+
+/** @file wpmd.h
+ @brief Representation of electrons by multiple wave packets within WPMD */
+
+/*s****************************************************************************
+ * $Log: wpmd_split.h,v $
+ * Revision 1.2 2011/06/11 16:53:55 valuev
+ * sync with LAMMPS
+ *
+ * Revision 1.1 2011/06/10 17:15:07 morozov
+ * First Windows project with the correct directory structure
+ *
+ * Revision 1.17 2011/06/09 22:55:08 valuev
+ * norm matrices
+ *
+ * Revision 1.16 2011/06/07 19:58:42 valuev
+ * corrected partitions
+ *
+ * Revision 1.15 2011/06/07 17:43:00 valuev
+ * added Y derivatives
+ *
+ * Revision 1.14 2011/06/03 08:13:33 valuev
+ * added partitions to account for ghost atoms
+ *
+ * Revision 1.13 2011/06/01 23:45:35 valuev
+ * modified for LAMMPS compatibility
+ *
+ * Revision 1.12 2011/05/28 17:16:22 valuev
+ * fixed template<>, some fixes to UHF
+ *
+ * Revision 1.11 2011/05/27 08:43:52 valuev
+ * fixed split packet antisymmetrized version
+ *
+ * Revision 1.10 2011/05/25 05:23:43 valuev
+ * fixed variable transformation for norm matrix
+ *
+ * Revision 1.9 2011/05/24 19:54:32 valuev
+ * fixed sqmatrix::iterator
+ *
+ * Revision 1.8 2011/05/20 21:39:49 valuev
+ * separated norm calculation
+ *
+ * Revision 1.7 2011/05/14 18:56:19 valuev
+ * derivative for ee split interactions
+ *
+ * Revision 1.6 2011/05/05 08:56:02 valuev
+ * working split wp version
+ *
+ * Revision 1.5 2011/05/04 16:48:52 valuev
+ * fixed syntax
+ *
+ * Revision 1.4 2011/05/04 09:04:48 valuev
+ * completed wp_split (except for ee forces)
+ *
+ * Revision 1.3 2011/04/22 09:54:24 valuev
+ * working on split WP
+ *
+ * Revision 1.1 2011/04/20 08:43:09 valuev
+ * started adding split packet WPMD
+ *
+ *******************************************************************************/
+
+#include "wpmd.h"
+
+
+class AWPMD_split: public AWPMD {
+protected:
+ int s_add, spl_add;
+public:
+ vector<Vector_2> split_c[2]; ///<\en split coefficients for electrons (c_re, c_im) or (psi,phi) depending on the norm mode
+ vector<int> nspl[2]; ///<\en number of wave packets for each electron (size is ne[i])
+
+ vector<double> wf_norm[2]; ///<\en norms for each electron
+ vector<double> wf_norm_der[2]; ///<\en norm derivative
+ vector<cdouble> ovl_der[2]; ///<\en overlap derivative: \<psi|psi'\>
+ vector<double> E_der[2]; ///<\en energy derivative with respect to {a,b} coordinates
+
+
+ vector< cdouble > Lh[2]; ///<\en Substitute for L in Hartree case: block matrices 1x(10*nspl[i])
+ vector< sqmatrix<double> > Normh[2]; ///<\en Substitute for Norm in Hartree case: block matrices
+
+ ///\en resizes all internal arrays according to new electrons (wavepackets) added
+ virtual void resize(int flag);
+
+
+
+
+public:
+ AWPMD_split():s_add(0),spl_add(0){}
+
+
+ ///\en Prepares to setup a new system of particles using \ref add_ion(),
+ /// \ref add_electron() and \ref add_split().
+ /// There is no need to call this function when using
+ /// \ref set_electrons() and \ref set_ions() to setup particles.
+ virtual void reset(){
+ for(int s=0;s<2;s++){
+ split_c[s].clear();
+ nspl[s].clear();
+ }
+ s_add=0;
+ spl_add=0;
+ AWPMD::reset();
+ }
+
+
+
+ ///\en Setup electrons: forms internal wave packet representations.
+ /// If PBCs are used the coords must be within the range [0, cell)
+ /// the \a splits array defines the number of wavepackets required for each electron
+ /// the data for splits should be placed in the corresponding data arrays
+ /// \a c array contains the splits mixing coefficints
+ /// \a n is the number of electrons of a given spin component
+ /// Electron velocity v is multiplied by mass to obtain momentum.
+ /// Default mass (-1) means me.
+ /// Electronic charges q are -1 by default (when q=NULL), otherwise the charges are assigned for each split
+ int set_electrons(int s, int nel, Vector_3P x, Vector_3P v, double* w, double* pw, Vector_2 *c, int *splits, double mass=-1, double *q=NULL);
+
+
+ ///\en Starts adding new electron: continue with \ref add_split functions.
+ int add_electron(int s){
+ if(s < 0 || s > 1)
+ return LOGERR(-1,fmt("AWPMD_split.add_electron: invaid spin setting (%d)!",s),LINFO);
+ s_add=s;
+ spl_add=0;
+ return ne[s_add];
+ }
+
+ ///\en Adds a new split to current electron.
+ /// May change the arguments according to the constraints set.
+ /// \return global id of the wavepacket (starting from 0 for each spin s)
+ /// Electron velocity v is multiplied by mass to obtain momentum.
+ /// Default mass (-1) means me.
+ /// The tags must be nonzero, >0 for the local particle, <0 for ghost particle.
+ /// Unique particle id is abs(tag).
+ /// Default tag (0) means inserting the current particle id as local particle.
+ int add_split(Vector_3 &x, Vector_3 &v, double &w, double &pw, Vector_2 &c, double mass=-1, double q=-1., int tag=0);
+
+
+ ///\en gets current electronic coordinates, and (optionally) number of wave packets for each electron
+ int get_electrons(int spin, Vector_3P x, Vector_3P v, double* w, double* pw, cdouble *c, int *splits=NULL, double mass=-1);
+
+
+ void eterm_deriv(int ic1,int s1, int c1,int k1,int ic2,int s2, int c2,int j2,cdouble pref,
+ const OverlapDeriv &o,cdouble v,cdouble dv_aj_conj,
+ cdouble dv_ak,cVector_3 dv_bj_conj, cVector_3 dv_bk);
+
+ ///\en adds the derivatives of Y for the term v*Y[s](c2,c1)
+ void y_deriv(cdouble v,int s, int c2, int c1);
+
+
+ ///\en Calculates block norms an derivatives
+ void calc_norms(int flag);
+
+ ///\en Prepares force arrays according to \a flag setting for interaction()
+ virtual void clear_forces(int flagi,Vector_3P fi, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c);
+
+ ///\en Calcualtes the overlap between two electrons taking all split WPs into account.
+ /// Norms must be pre-calculated.
+ cdouble overlap(int ic1, int s1, int c1,int ic2, int s2, int c2);
+
+ //e same as interaction, but using Hartee factorization (no antisymmetrization)
+ int interaction_hartree(int flag=0, Vector_3P fi=NULL, Vector_3P fe_x=NULL,
+ Vector_3P fe_p=NULL, double *fe_w=NULL, double *fe_pw=NULL, Vector_2P fe_c=NULL);
+
+ ///\en Calculates interaction in the system of ni ions + electrons
+ /// the electonic subsystem must be previously setup by set_electrons, ionic by set_ions
+ /// 0x1 -- give back ion forces \n
+ /// 0x2 -- add ion forces to the existing set \n
+ /// 0x4 -- calculate electronic forces \n
+ /// 0x8 -- add electronic forces to the existing arrays \n
+ /// 0x10 -- calculate internal electronic derivatives only: \n
+ /// will not update electronic force arrays, which may be NULL, \n
+ /// the forces may be obtained then using \ref get_el_forces() for all WPs \n
+ /// or separately for each WP using \ref get_wp_force()
+ /// if PBCs are used the coords must be within a range [0, cell)
+ int interaction(int flag=0, Vector_3P fi=NULL, Vector_3P fe_x=NULL,
+ Vector_3P fe_p=NULL, double *fe_w=NULL, double *fe_pw=NULL, Vector_2P fe_c=NULL);
+
+ ///\en Get electronic forcess in the arrays provided, using calculated internal representation
+ /// Valid flag settings are:\n
+ /// 0x4 -- overwrite existing forces \n
+ /// 0x8 -- add electronic forces to the existing arrays \n
+ void get_el_forces(int flag, Vector_3P fe_x,
+ Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c);
+
+
+ void get_wp_force(int s, int ispl, Vector_3P fe_x, Vector_3P fe_p, double *fe_w, double *fe_pw, Vector_2P fe_c){
+ WavePacket wk=wp[s][ispl];
+ int indw1=8*ispl;
+ int indn1=(nvar[s]/10)*8+2*ispl;
+ wk.int2phys_der< eq_minus_second >(E_der[s].begin()+indw1,(double *)fe_x,(double *)fe_p,fe_w,fe_pw,1./one_h);
+ *fe_c=-Vector_2(E_der[s][indn1],E_der[s][indn1+1]);
+ }
+};
+
+
+
+
+
+# endif
diff --git a/lib/cuda/Makefile.cudalib b/lib/cuda/Makefile.cudalib
index e60ac38f1..4d69f8087 100644
--- a/lib/cuda/Makefile.cudalib
+++ b/lib/cuda/Makefile.cudalib
@@ -1,82 +1,82 @@
#Makefile for liblammpscuda.a
#No need to modify anything here! The CUDA path is inserted into Makefile.common
.DEFAULT: lib
COMPILELIB := 1
SHELL = /bin/sh
CUDA_SRC_DIR = ../cuda
CUDA_TEMP = $(CUDA_SRC_DIR)/.lastmake
CUDA_TEMP_DUMMY := $(shell touch $(CUDA_TEMP) )
include $(CUDA_TEMP)
CUDA_CU = $(wildcard $(CUDA_SRC_DIR)/*_kernel.cu)
CUDA_CUO = $(CUDA_CU:_kernel.cu=_cu.o)
CUDA_OBJ = $(subst $(CUDA_SRC_DIR)/,,$(CUDA_CUO))
CUDA_DEP = $(CUDA_OBJ:.o=.d)
NVCC_FLAGS :=
VPATH = $(CUDA_SRC_DIR)
#rewriting default settings if new ones are specified
ifdef precision
tmp := $(shell sed -i 's|precision ?= [0-9]|precision ?= '${precision}'|g' Makefile.defaults)
endif
ifdef arch
tmp := $(shell sed -i 's|arch ?= [0-9][0-9]|arch ?= '${arch}'|g' Makefile.defaults)
endif
ifdef cufft
tmp := $(shell sed -i 's|cufft ?= [0-9]|cufft ?= '${cufft}'|g' Makefile.defaults)
endif
ifdef dbg
tmp := $(shell sed -i 's|dbg ?= [0-9]|dbg ?= '${dbg}'|g' Makefile.defaults)
endif
ifdef prec_timer
tmp := $(shell sed -i 's|prec_timer ?= [0-9]|prec_timer ?= '${prec_timer}'|g' Makefile.defaults)
endif
include Makefile.common
# verbose nvcc output during compilation
ifeq ($(verbose), 1)
VERBOSE :=
NVCC_FLAGS += --ptxas-options=-v
else
VERBOSE := @
endif
# keep temporary compilation files of nvcc
ifeq ($(keep), 1)
NVCC_FLAGS += -keep -Xptxas="--verbose"
endif
NVCC := $(CUDA_INSTALL_PATH)/bin/nvcc
-CUDA_INCLUDES = -I$(CUDA_INSTALL_PATH)/include -I../../src/USER-CUDA
+CUDA_INCLUDES = -I./ -I$(CUDA_INSTALL_PATH)/include -I../../src/USER-CUDA
CUDA_USRLIB =
# Link target
lib: $(CUDA_OBJ)
$(NVCC) -lib $(CUDA_OBJ) $(CUDA_FLAGS) $(CUDA_USRLIB_CONDITIONAL) -o liblammpscuda.a
clean:
rm $(CUDA_SRC_DIR)/*.o
rm liblammpscuda.a
# Library target
# Cuda compilation rules
%_cu.o: %.cu %_kernel.cu %_cu.h cuda_shared.h
$(VERBOSE)$(NVCC) $(NVCC_FLAGS) $(CUDA_FLAGS) $(CUDA_INCLUDES) $(CUDA_USRLIB) $(SMVERSIONFLAGS) -o $@ -c $<
diff --git a/lib/cuda/fix_nh_cuda.cu b/lib/cuda/fix_nh_cuda.cu
index ee91e473e..39abcea94 100644
--- a/lib/cuda/fix_nh_cuda.cu
+++ b/lib/cuda/fix_nh_cuda.cu
@@ -1,219 +1,220 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <stdio.h>
#define MY_PREFIX fix_nh_cuda
#define IncludeCommonNeigh
#include "cuda_shared.h"
#include "cuda_common.h"
#include "crm_cuda_utils.cu"
#include "fix_nh_cuda_cu.h"
#include "fix_nh_cuda_kernel.cu"
void Cuda_FixNHCuda_UpdateNmax(cuda_shared_data* sdata)
{
cudaMemcpyToSymbol(MY_CONST(f) , & sdata->atom.f .dev_data, sizeof(F_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(mask) , & sdata->atom.mask .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(tag) , & sdata->atom.tag .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(debugdata) , & sdata->debugdata, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(nmax) , & sdata->atom.nmax , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(rmass) , & sdata->atom.rmass.dev_data, sizeof(V_FLOAT*) );
+ cudaMemcpyToSymbol(MY_CONST(mass) , & sdata->atom.mass.dev_data, sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(type) , & sdata->atom.type .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(v) , & sdata->atom.v .dev_data, sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(x) , & sdata->atom.x .dev_data, sizeof(X_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(xhold) , & sdata->atom.xhold.dev_data, sizeof(X_FLOAT*) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(maxhold) , & sdata->atom.maxhold, sizeof(int) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(reneigh_flag), & sdata->buffer, sizeof(int*) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(triggerneighsq), & sdata->atom.triggerneighsq, sizeof(X_FLOAT)); //might be moved to a neighbor record in sdata
}
void Cuda_FixNHCuda_UpdateBuffer(cuda_shared_data* sdata)
{
int size=(unsigned)10*sizeof(int);
if(sdata->buffersize<size)
{
MYDBG(printf("Cuda_FixNHCuda Resizing Buffer at %p with %i kB to\n",sdata->buffer,sdata->buffersize);)
CudaWrapper_FreeCudaData(sdata->buffer,sdata->buffersize);
sdata->buffer = CudaWrapper_AllocCudaData(size);
sdata->buffersize=size;
sdata->buffer_new++;
MYDBG(printf("New buffer at %p with %i kB\n",sdata->buffer,sdata->buffersize);)
}
cudaMemcpyToSymbol(MY_CONST(buffer) , & sdata->buffer, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(reneigh_flag), & sdata->buffer, sizeof(int*) ); //might be moved to a neighbor record in sdata
}
void Cuda_FixNHCuda_Init(cuda_shared_data* sdata, X_FLOAT dtv, V_FLOAT dtf)
{
- if(sdata->atom.mass_host)
cudaMemcpyToSymbol(MY_CONST(mass) , & sdata->atom.mass.dev_data , sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(dtf) , & dtf , sizeof(V_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(dtv) , & dtv , sizeof(X_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(triggerneighsq), &sdata->atom.triggerneighsq, sizeof(X_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(dist_check), & sdata->atom.dist_check , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(rmass_flag), & sdata->atom.rmass_flag , sizeof(int) ); //
Cuda_FixNHCuda_UpdateNmax(sdata);
}
void Cuda_FixNHCuda_nh_v_press(cuda_shared_data* sdata, int groupbit, double* factor_h,int mynlocal,int p_triclinic)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
timespec atime1,atime2;
clock_gettime(CLOCK_REALTIME,&atime1);
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
clock_gettime(CLOCK_REALTIME,&atime2);
sdata->cuda_timings.test1+=
atime2.tv_sec-atime1.tv_sec+1.0*(atime2.tv_nsec-atime1.tv_nsec)/1000000000;
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
F_FLOAT3 factor = {factor_h[0],factor_h[1],factor_h[2]};
F_FLOAT3 factor2;
if(p_triclinic) {factor2.x=factor_h[3],factor2.y=factor_h[4];factor2.z=factor_h[5];}
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
FixNHCuda_nh_v_press_Kernel<<<grid, threads>>> (groupbit,factor,p_triclinic,factor2);
cudaThreadSynchronize();
CUT_CHECK_ERROR("FixNHCuda: fix nh v_press Kernel execution failed");
}
void Cuda_FixNHCuda_nh_v_press_and_nve_v_NoBias(cuda_shared_data* sdata, int groupbit, double* factor_h,int mynlocal,int p_triclinic)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
F_FLOAT3 factor = {factor_h[0],factor_h[1],factor_h[2]};
F_FLOAT3 factor2;
if(p_triclinic) {factor2.x=factor_h[3],factor2.y=factor_h[4];factor2.z=factor_h[5];}
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
+ CUT_CHECK_ERROR("FixNHCuda: fix nh v_press pre Kernel execution failed");
FixNHCuda_nh_v_press_and_nve_v_NoBias_Kernel<<<grid, threads>>> (groupbit,factor,p_triclinic,factor2);
cudaThreadSynchronize();
CUT_CHECK_ERROR("FixNHCuda: fix nh v_press Kernel execution failed");
}
void Cuda_FixNHCuda_nh_v_temp(cuda_shared_data* sdata, int groupbit, F_FLOAT factor_eta,int mynlocal)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
timespec atime1,atime2;
clock_gettime(CLOCK_REALTIME,&atime1);
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
clock_gettime(CLOCK_REALTIME,&atime2);
sdata->cuda_timings.test1+=
atime2.tv_sec-atime1.tv_sec+1.0*(atime2.tv_nsec-atime1.tv_nsec)/1000000000;
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
FixNHCuda_nh_v_temp_Kernel<<<grid, threads>>> (groupbit,factor_eta);
cudaThreadSynchronize();
CUT_CHECK_ERROR("FixNHCuda: fix nh v_temp Kernel execution failed");
}
void Cuda_FixNHCuda_nve_v(cuda_shared_data* sdata, int groupbit,int mynlocal)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
timespec atime1,atime2;
clock_gettime(CLOCK_REALTIME,&atime1);
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
clock_gettime(CLOCK_REALTIME,&atime2);
sdata->cuda_timings.test1+=
atime2.tv_sec-atime1.tv_sec+1.0*(atime2.tv_nsec-atime1.tv_nsec)/1000000000;
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
FixNHCuda_nve_v_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
CUT_CHECK_ERROR("FixNHCuda: nve_v Kernel execution failed");
}
void Cuda_FixNHCuda_nve_x(cuda_shared_data* sdata, int groupbit,int mynlocal)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
timespec atime1,atime2;
clock_gettime(CLOCK_REALTIME,&atime1);
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
clock_gettime(CLOCK_REALTIME,&atime2);
sdata->cuda_timings.test1+=
atime2.tv_sec-atime1.tv_sec+1.0*(atime2.tv_nsec-atime1.tv_nsec)/1000000000;
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
cudaMemset(sdata->buffer,0,sizeof(int));
FixNHCuda_nve_x_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
int reneigh_flag;
cudaMemcpy((void*) (&reneigh_flag), sdata->buffer, sizeof(int),cudaMemcpyDeviceToHost);
sdata->atom.reneigh_flag+=reneigh_flag;
CUT_CHECK_ERROR("FixNHCuda: nve_x Kernel execution failed");
}
void Cuda_FixNHCuda_nve_v_and_nh_v_press_NoBias(cuda_shared_data* sdata,int groupbit, double* factor_h, int mynlocal,int p_triclinic)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
if(sdata->atom.update_nmax)
Cuda_FixNHCuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
if(sdata->buffer_new)
Cuda_FixNHCuda_UpdateBuffer(sdata);
F_FLOAT3 factor = {factor_h[0],factor_h[1],factor_h[2]};
F_FLOAT3 factor2;
if(p_triclinic) {factor2.x=factor_h[3],factor2.y=factor_h[4];factor2.z=factor_h[5];}
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
FixNHCuda_nve_v_and_nh_v_press_NoBias_Kernel<<<grid, threads>>> (groupbit,factor,p_triclinic,factor2);
cudaThreadSynchronize();
CUT_CHECK_ERROR("FixNHCuda__nve_v_and_nh_v_press_NoBias: Kernel execution failed");
}
diff --git a/lib/cuda/fix_nve_cuda.cu b/lib/cuda/fix_nve_cuda.cu
index 624292431..8154359ad 100644
--- a/lib/cuda/fix_nve_cuda.cu
+++ b/lib/cuda/fix_nve_cuda.cu
@@ -1,162 +1,161 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <stdio.h>
#define MY_PREFIX fix_nve_cuda
#define IncludeCommonNeigh
#include "cuda_shared.h"
#include "cuda_common.h"
#include "crm_cuda_utils.cu"
#include "fix_nve_cuda_cu.h"
#include "fix_nve_cuda_kernel.cu"
void Cuda_FixNVECuda_UpdateNmax(cuda_shared_data* sdata)
{
#ifdef CUDA_USE_BINNING
cudaMemcpyToSymbol(MY_CONST(bin_count_all) , & sdata->atom.bin_count_all .dev_data, sizeof(unsigned*));
cudaMemcpyToSymbol(MY_CONST(bin_count_local), & sdata->atom.bin_count_local.dev_data, sizeof(unsigned*));
cudaMemcpyToSymbol(MY_CONST(bin_dim) , sdata->domain.bin_dim , sizeof(int)*3 );
cudaMemcpyToSymbol(MY_CONST(binned_f) , & sdata->atom.binned_f .dev_data, sizeof(F_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(binned_type) , & sdata->atom.binned_type .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(binned_v) , & sdata->atom.binned_v .dev_data, sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(binned_x) , & sdata->atom.binned_x .dev_data, sizeof(X_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(binned_rmass) , & sdata->atom.binned_rmass .dev_data, sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(mask) , & sdata->atom.mask .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(rmass) , & sdata->atom.rmass .dev_data, sizeof(V_FLOAT*) );
}
#else
cudaMemcpyToSymbol(MY_CONST(f) , & sdata->atom.f .dev_data, sizeof(F_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(mask) , & sdata->atom.mask .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(nmax) , & sdata->atom.nmax , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(rmass) , & sdata->atom.rmass.dev_data, sizeof(V_FLOAT*) );
+ cudaMemcpyToSymbol(MY_CONST(mass) , & sdata->atom.mass.dev_data , sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(type) , & sdata->atom.type .dev_data, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(v) , & sdata->atom.v .dev_data, sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(x) , & sdata->atom.x .dev_data, sizeof(X_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(xhold) , & sdata->atom.xhold.dev_data, sizeof(X_FLOAT*) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(maxhold) , & sdata->atom.maxhold, sizeof(int) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(reneigh_flag), & sdata->buffer, sizeof(int*) ); //might be moved to a neighbor record in sdata
cudaMemcpyToSymbol(MY_CONST(triggerneighsq), & sdata->atom.triggerneighsq, sizeof(X_FLOAT)); //might be moved to a neighbor record in sdata
#endif
}
void Cuda_FixNVECuda_UpdateBuffer(cuda_shared_data* sdata)
{
int size=(unsigned)10*sizeof(int);
if(sdata->buffersize<size)
{
MYDBG(printf("Cuda_FixNVECuda Resizing Buffer at %p with %i kB to\n",sdata->buffer,sdata->buffersize);)
CudaWrapper_FreeCudaData(sdata->buffer,sdata->buffersize);
sdata->buffer = CudaWrapper_AllocCudaData(size);
sdata->buffersize=size;
sdata->buffer_new++;
MYDBG(printf("New buffer at %p with %i kB\n",sdata->buffer,sdata->buffersize);)
}
cudaMemcpyToSymbol(MY_CONST(buffer) , & sdata->buffer, sizeof(int*) );
cudaMemcpyToSymbol(MY_CONST(reneigh_flag), & sdata->buffer, sizeof(int*) ); //might be moved to a neighbor record in sdata
}
void Cuda_FixNVECuda_Init(cuda_shared_data* sdata, X_FLOAT dtv, V_FLOAT dtf)
{
-
- if(sdata->atom.mass_host)
cudaMemcpyToSymbol(MY_CONST(mass) , & sdata->atom.mass.dev_data , sizeof(V_FLOAT*) );
cudaMemcpyToSymbol(MY_CONST(dtf) , & dtf , sizeof(V_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(dtv) , & dtv , sizeof(X_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(triggerneighsq), &sdata->atom.triggerneighsq, sizeof(X_FLOAT) );
cudaMemcpyToSymbol(MY_CONST(dist_check), & sdata->atom.dist_check , sizeof(int) );
cudaMemcpyToSymbol(MY_CONST(rmass_flag), & sdata->atom.rmass_flag , sizeof(int) ); //
Cuda_FixNVECuda_UpdateNmax(sdata);
}
void Cuda_FixNVECuda_InitialIntegrate(cuda_shared_data* sdata, int groupbit, int mynlocal)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
if(sdata->atom.update_nmax)
Cuda_FixNVECuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
if(sdata->buffer_new)
Cuda_FixNVECuda_UpdateBuffer(sdata);
#ifdef CUDA_USE_BINNING
dim3 grid(sdata->domain.bin_dim[0], sdata->domain.bin_dim[1] * sdata->domain.bin_neighbors[2], 1);
dim3 threads(sdata->domain.bin_nmax, 1, 1);
FixNVECuda_InitialIntegrate_N_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
CUT_CHECK_ERROR("Cuda_FixNVECuda_InitialIntegrate_N: fix nve initial integrate (binning) Kernel execution failed");
#else
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
cudaMemset(sdata->buffer,0,sizeof(int));
FixNVECuda_InitialIntegrate_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
int reneigh_flag;
cudaMemcpy((void*) (&reneigh_flag), sdata->buffer, sizeof(int),cudaMemcpyDeviceToHost);
sdata->atom.reneigh_flag+=reneigh_flag;
CUT_CHECK_ERROR("Cuda_FixNVECuda_InitialIntegrate_N: fix nve initial integrate Kernel execution failed");
#endif
}
void Cuda_FixNVECuda_FinalIntegrate(cuda_shared_data* sdata, int groupbit, int mynlocal)//mynlocal can be nfirst if firstgroup==igroup see cpp
{
if(sdata->atom.update_nmax)
Cuda_FixNVECuda_UpdateNmax(sdata);
if(sdata->atom.update_nlocal)
cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int));
if(sdata->buffer_new)
Cuda_FixNVECuda_UpdateBuffer(sdata);
#ifdef CUDA_USE_BINNING
dim3 grid(sdata->domain.bin_dim[0], sdata->domain.bin_dim[1] * sdata->domain.bin_neighbors[2], 1);
dim3 threads(sdata->domain.bin_nmax, 1, 1);
FixNVECuda_FinalIntegrate_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
CUT_CHECK_ERROR("Cuda_FixNVECuda_FinalIntegrate: fix nve final integrate (binning) Kernel execution failed");
#else
int3 layout=getgrid(mynlocal);
dim3 threads(layout.z, 1, 1);
dim3 grid(layout.x, layout.y, 1);
FixNVECuda_FinalIntegrate_Kernel<<<grid, threads>>> (groupbit);
cudaThreadSynchronize();
CUT_CHECK_ERROR("Cuda_FixNVECuda_FinalIntegrate: fix nve final integrate Kernel execution failed");
#endif
}
diff --git a/lib/gpu/Makefile.firefly b/lib/gpu/Makefile.firefly
new file mode 100644
index 000000000..6f481a0d9
--- /dev/null
+++ b/lib/gpu/Makefile.firefly
@@ -0,0 +1,41 @@
+# /* ----------------------------------------------------------------------
+# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+# http://lammps.sandia.gov, Sandia National Laboratories
+# Steve Plimpton, sjplimp@sandia.gov
+#
+# Copyright (2003) Sandia Corporation. Under the terms of Contract
+# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+# certain rights in this software. This software is distributed under
+# the GNU General Public License.
+#
+# See the README file in the top-level LAMMPS directory.
+# ------------------------------------------------------------------------- */
+#
+# /* ----------------------------------------------------------------------
+# Contributing authors: Mike Brown (ORNL), brownw@ornl.gov
+# Peng Wang (Nvidia), penwang@nvidia.com
+# Paul Crozier (SNL), pscrozi@sandia.gov
+# ------------------------------------------------------------------------- */
+
+CUDA_HOME = /usr/local/cuda
+NVCC = nvcc
+
+CUDA_ARCH = -arch=sm_11
+CUDA_PRECISION = -D_SINGLE_SINGLE
+CUDA_INCLUDE = -I/usr/local/cuda/include
+CUDA_LIB = -L/usr/local/cuda/lib64
+CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math
+#CUDA_OPTS = -DUNIX -g -G
+
+CUDR_CPP = mpic++ -DMPI_GERYON -DMPICH_IGNORE_CXX_SEEK -fopenmp
+CUDR_OPTS = -g -Wall -O2 -DUCL_NO_EXIT # -xHost -no-prec-div -ansi-alias
+#CUDR_OPTS = -g -Wall -DUCL_SYNC_DEBUG
+
+BIN_DIR = /home/wb8/bin
+OBJ_DIR = /home/wb8/obj/lammps
+LIB_DIR = /home/wb8/obj/lammps
+AR = ar
+BSH = /bin/sh
+
+include Nvidia.makefile
+
diff --git a/lib/gpu/Makefile.firefly_opencl b/lib/gpu/Makefile.firefly_opencl
new file mode 100644
index 000000000..1f4bf3c94
--- /dev/null
+++ b/lib/gpu/Makefile.firefly_opencl
@@ -0,0 +1,31 @@
+# /* ----------------------------------------------------------------------
+# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+# http://lammps.sandia.gov, Sandia National Laboratories
+# Steve Plimpton, sjplimp@sandia.gov
+#
+# Copyright (2003) Sandia Corporation. Under the terms of Contract
+# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+# certain rights in this software. This software is distributed under
+# the GNU General Public License.
+#
+# See the README file in the top-level LAMMPS directory.
+# ------------------------------------------------------------------------- */
+#
+# /* ----------------------------------------------------------------------
+# Contributing authors: Mike Brown (ORNL), brownw@ornl.gov
+# Peng Wang (Nvidia), penwang@nvidia.com
+# Paul Crozier (SNL), pscrozi@sandia.gov
+# ------------------------------------------------------------------------- */
+
+OCL_CPP = mpic++ -O3 -DMPI_GERYON -DMPICH_IGNORE_CXX_SEEK -I/usr/local/cuda/include/
+OCL_LINK = -lOpenCL
+OCL_PREC = -D_SINGLE_SINGLE
+
+BIN_DIR = /home/wb8/bin
+OBJ_DIR = /home/wb8/obj/lammps
+LIB_DIR = /home/wb8/obj/lammps
+AR = ar
+BSH = /bin/sh
+
+include Opencl.makefile
+
diff --git a/lib/gpu/replace_code.sh b/lib/gpu/replace_code.sh
new file mode 100755
index 000000000..504abeadd
--- /dev/null
+++ b/lib/gpu/replace_code.sh
@@ -0,0 +1,13 @@
+#!/bin/tcsh
+
+set files = `echo *.h *.cpp *.cu`
+rm -rf /tmp/cpp5678
+mkdir /tmp/cpp5678
+mkdir /tmp/cpp5678/lgpu
+
+foreach file ( $files )
+# /bin/cp $file /tmp/cpp5678/$file:t:t
+ # ------ Sed Replace
+ sed -i 's/atom->dev_engv/ans->dev_engv/g' $file
+end
+
diff --git a/potentials/AlCu.adp b/potentials/AlCu.adp
new file mode 100644
index 000000000..5b7f5501e
--- /dev/null
+++ b/potentials/AlCu.adp
@@ -0,0 +1,130007 @@
+AlCu ADP EAM from Apostol & Mishin, Phys. Rev. B 83, 054116 (2011).
+LAMMPS setfl format from plt files of Florin & Mishin
+Conversion by CV Singh: cvs5@cornell.edu using MATLAB
+2 Al Cu
+10000 2.2770502180000001e-03 10000 6.2872099999999995e-04 6.2872100000000000e+00
+ 13 0.2698200000E+02 0.4050000000E+01 fcc
+-5.8782841094728866e-10
+-3.1405046837628597e-02
+-6.2420987066176173e-02
+-9.3050641685725632e-02
+-1.2329683110853143e-01
+-1.5316237574684805e-01
+-1.8265009601292997e-01
+-2.1176281231903166e-01
+-2.4050334507740759e-01
+-2.6887451470031221e-01
+-2.9687914160000001e-01
+-3.2452004618891833e-01
+-3.5180004888028593e-01
+-3.7872197008751451e-01
+-4.0528863022513167e-01
+-4.3150284972063652e-01
+-4.5736744900989729e-01
+-4.8288524852879688e-01
+-5.0805906870573914e-01
+-5.3289172995753553e-01
+-5.5738605269999997e-01
+-5.8154485734661365e-01
+-6.0537096430152526e-01
+-6.2886719396655022e-01
+-6.5203636674582366e-01
+-6.7488130307044525e-01
+-6.9740482338891086e-01
+-7.1960974814962964e-01
+-7.4149889777839451e-01
+-7.6307509266594364e-01
+-7.8434115319999997e-01
+-8.0529989977985261e-01
+-8.2595415285105578e-01
+-8.4630673287073033e-01
+-8.6636046029147329e-01
+-8.8611815551329420e-01
+-9.0558263890227531e-01
+-9.2475673082479337e-01
+-9.4364325169881647e-01
+-9.6224502202228046e-01
+-9.8056486229999995e-01
+-9.9860559300824780e-01
+-1.0163700345091295e+00
+-1.0338610071362095e+00
+-1.0510813312292264e+00
+-1.0680338271996992e+00
+-1.0847213155054576e+00
+-1.1011466166048496e+00
+-1.1173125509410204e+00
+-1.1332219389335523e+00
+-1.1488776009999999e+00
+-1.1642823575576093e+00
+-1.1794390290223904e+00
+-1.1943504358100443e+00
+-1.2090193983374520e+00
+-1.2234487370352123e+00
+-1.2376412723427739e+00
+-1.2515998246991542e+00
+-1.2653272145086578e+00
+-1.2788262621217823e+00
+-1.2920997878843969e+00
+-1.3051506121738736e+00
+-1.3179815554935912e+00
+-1.3305954383784315e+00
+-1.3429950813545684e+00
+-1.3551833048469550e+00
+-1.3671629292152401e+00
+-1.3789367748181713e+00
+-1.3905076620257077e+00
+-1.4018784112251859e+00
+-1.4130518428054375e+00
+-1.4240307771645004e+00
+-1.4348180347372366e+00
+-1.4454164359677146e+00
+-1.4558288013035969e+00
+-1.4660579512343281e+00
+-1.4761067062763096e+00
+-1.4859778869446603e+00
+-1.4956743136506478e+00
+-1.5051988066445690e+00
+-1.5145541861628733e+00
+-1.5237432725021935e+00
+-1.5327688861998934e+00
+-1.5416338478535190e+00
+-1.5503409780452984e+00
+-1.5588930971793764e+00
+-1.5672930255450066e+00
+-1.5755435834305263e+00
+-1.5836475911841665e+00
+-1.5916078692469959e+00
+-1.5994272380680694e+00
+-1.6071085180943316e+00
+-1.6146545297642907e+00
+-1.6220680935143461e+00
+-1.6293520297834105e+00
+-1.6365091590396206e+00
+-1.6435423017699673e+00
+-1.6504542784605769e+00
+-1.6572479095268466e+00
+-1.6639260152745423e+00
+-1.6704914160000000e+00
+-1.6769469320373838e+00
+-1.6832953838721725e+00
+-1.6895395920276743e+00
+-1.6956823770157934e+00
+-1.7017265592158695e+00
+-1.7076749589217166e+00
+-1.7135303964280244e+00
+-1.7192956921675209e+00
+-1.7249736667868933e+00
+-1.7305671409512338e+00
+-1.7360789351966526e+00
+-1.7415118695433289e+00
+-1.7468687638824594e+00
+-1.7521524382077036e+00
+-1.7573657137038565e+00
+-1.7625114123241863e+00
+-1.7675923559923148e+00
+-1.7726113640845964e+00
+-1.7775712520291198e+00
+-1.7824748349143387e+00
+-1.7873249319599751e+00
+-1.7921243789108254e+00
+-1.7968760156429553e+00
+-1.8015826774997479e+00
+-1.8062471471321502e+00
+-1.8108721731959876e+00
+-1.8154605058910276e+00
+-1.8200150220487314e+00
+-1.8245387947796985e+00
+-1.8290349140787567e+00
+-1.8335062079564401e+00
+-1.8379544564861674e+00
+-1.8423811777570911e+00
+-1.8467878034468019e+00
+-1.8511747606985367e+00
+-1.8555418285688774e+00
+-1.8598887775466617e+00
+-1.8642155121426383e+00
+-1.8685221446015090e+00
+-1.8728088050375638e+00
+-1.8770756073826600e+00
+-1.8813226008389312e+00
+-1.8855498184260802e+00
+-1.8897572944493994e+00
+-1.8939450781591649e+00
+-1.8981132284475770e+00
+-1.9022618043240893e+00
+-1.9063908621914145e+00
+-1.9105004544118178e+00
+-1.9145906330000000e+00
+-1.9186614503239272e+00
+-1.9227129601646327e+00
+-1.9267452166564167e+00
+-1.9307582738944582e+00
+-1.9347521855191541e+00
+-1.9387270048774938e+00
+-1.9426827853130531e+00
+-1.9466195802580013e+00
+-1.9505374432818285e+00
+-1.9544364279658368e+00
+-1.9583165878908932e+00
+-1.9621779766361240e+00
+-1.9660206477802198e+00
+-1.9698446549065745e+00
+-1.9736500516532587e+00
+-1.9774368916936189e+00
+-1.9812052286992536e+00
+-1.9849551162016270e+00
+-1.9886866075149963e+00
+-1.9923997559349336e+00
+-1.9960946148583782e+00
+-1.9997712380877390e+00
+-2.0034296795267923e+00
+-2.0070699930498588e+00
+-2.0106922321888527e+00
+-2.0142964502547782e+00
+-2.0178827005569313e+00
+-2.0214510365229810e+00
+-2.0250015117640765e+00
+-2.0285341799071488e+00
+-2.0320490945775740e+00
+-2.0355463093945088e+00
+-2.0390258779755541e+00
+-2.0424878539366982e+00
+-2.0459322908751836e+00
+-2.0493592423761591e+00
+-2.0527687620238977e+00
+-2.0561609033622017e+00
+-2.0595357198721476e+00
+-2.0628932650294147e+00
+-2.0662335923297919e+00
+-2.0695567553495029e+00
+-2.0728628076848818e+00
+-2.0761518029298243e+00
+-2.0794237946498981e+00
+-2.0826788363923945e+00
+-2.0859169817047736e+00
+-2.0891382841629151e+00
+-2.0923427973867508e+00
+-2.0955305750000002e+00
+-2.0987016706104531e+00
+-2.1018561377621707e+00
+-2.1049940299832848e+00
+-2.1081154008010179e+00
+-2.1112203037320456e+00
+-2.1143087922862369e+00
+-2.1173809199743929e+00
+-2.1204367403699376e+00
+-2.1234763071433647e+00
+-2.1264996739735160e+00
+-2.1295068945105728e+00
+-2.1324980222900689e+00
+-2.1354731108188756e+00
+-2.1384322136054843e+00
+-2.1413753841772150e+00
+-2.1443026760735346e+00
+-2.1472141428343652e+00
+-2.1501098380147305e+00
+-2.1529898151930662e+00
+-2.1558541279498211e+00
+-2.1587028298597914e+00
+-2.1615359744751634e+00
+-2.1643536153424727e+00
+-2.1671558060129388e+00
+-2.1699426000922486e+00
+-2.1727140512212273e+00
+-2.1754702130401538e+00
+-2.1782111391213088e+00
+-2.1809368829315763e+00
+-2.1836474979287743e+00
+-2.1863430375994501e+00
+-2.1890235555450652e+00
+-2.1916891053958114e+00
+-2.1943397407780836e+00
+-2.1969755152741435e+00
+-2.1995964824377792e+00
+-2.2022026958224927e+00
+-2.2047942089930714e+00
+-2.2073710755317930e+00
+-2.2099333490224411e+00
+-2.2124810830380945e+00
+-2.2150143311090096e+00
+-2.2175331467547394e+00
+-2.2200375834980188e+00
+-2.2225276948985848e+00
+-2.2250035345400461e+00
+-2.2274651560062146e+00
+-2.2299126128692035e+00
+-2.2323459586829921e+00
+-2.2347652469999999e+00
+-2.2371705313829628e+00
+-2.2395618654358782e+00
+-2.2419393027730599e+00
+-2.2443028970061554e+00
+-2.2466527017158189e+00
+-2.2489887704627085e+00
+-2.2513111568040998e+00
+-2.2536199141143287e+00
+-2.2559150954841733e+00
+-2.2581967539800187e+00
+-2.2604649431685426e+00
+-2.2627197186175838e+00
+-2.2649611363952742e+00
+-2.2671892481371985e+00
+-2.2694040539506055e+00
+-2.2716055206986545e+00
+-2.2737936146651787e+00
+-2.2759683006186116e+00
+-2.2781295409785125e+00
+-2.2802772979623902e+00
+-2.2824115340333124e+00
+-2.2845322126365999e+00
+-2.2866392974631333e+00
+-2.2887327521628120e+00
+-2.2908125399091004e+00
+-2.2928786235680887e+00
+-2.2949309660041393e+00
+-2.2969695302854261e+00
+-2.2989942797960272e+00
+-2.3010051779471961e+00
+-2.3030021880836471e+00
+-2.3049852732839406e+00
+-2.3069543965600969e+00
+-2.3089095209364952e+00
+-2.3108506095811658e+00
+-2.3127776257548209e+00
+-2.3146905327197471e+00
+-2.3165892937401509e+00
+-2.3184738720832119e+00
+-2.3203442310163656e+00
+-2.3222003337687958e+00
+-2.3240421434166838e+00
+-2.3258696229979590e+00
+-2.3276827355629419e+00
+-2.3294814443059981e+00
+-2.3312657125144254e+00
+-2.3330355034762920e+00
+-2.3347907804329395e+00
+-2.3365315065532810e+00
+-2.3382576450000001e+00
+-2.3399691589510700e+00
+-2.3416660116456209e+00
+-2.3433481663380711e+00
+-2.3450155862709501e+00
+-2.3466682345485617e+00
+-2.3483060741860329e+00
+-2.3499290681993830e+00
+-2.3515371797473650e+00
+-2.3531303722099657e+00
+-2.3547086089862033e+00
+-2.3562718534203082e+00
+-2.3578200686373552e+00
+-2.3593532177076302e+00
+-2.3608712637073235e+00
+-2.3623741697812561e+00
+-2.3638618991185267e+00
+-2.3653344149090496e+00
+-2.3667916803473799e+00
+-2.3682336586352650e+00
+-2.3696603129750731e+00
+-2.3710716065678925e+00
+-2.3724675026096969e+00
+-2.3738479642951815e+00
+-2.3752129548199385e+00
+-2.3765624373899832e+00
+-2.3778963752180555e+00
+-2.3792147315166075e+00
+-2.3805174694740319e+00
+-2.3818045522414328e+00
+-2.3830759429667063e+00
+-2.3843316048110261e+00
+-2.3855715009886787e+00
+-2.3867955947272281e+00
+-2.3880038492501168e+00
+-2.3891962277328629e+00
+-2.3903726933200664e+00
+-2.3915332091562265e+00
+-2.3926777384107152e+00
+-2.3938062442914587e+00
+-2.3949186900097001e+00
+-2.3960150387770680e+00
+-2.3970952538067363e+00
+-2.3981592983122666e+00
+-2.3992071355030191e+00
+-2.4002387285395326e+00
+-2.4012540405508473e+00
+-2.4022530346665638e+00
+-2.4032356740814174e+00
+-2.4042019220911031e+00
+-2.4051517420000001e+00
+-2.4060850970634191e+00
+-2.4070019503403968e+00
+-2.4079022648409021e+00
+-2.4087860035923745e+00
+-2.4096531298253474e+00
+-2.4105036069013841e+00
+-2.4113373981823139e+00
+-2.4121544669148900e+00
+-2.4129547761675014e+00
+-2.4137382889931920e+00
+-2.4145049684851778e+00
+-2.4152547778973634e+00
+-2.4159876805238238e+00
+-2.4167036396503674e+00
+-2.4174026184666886e+00
+-2.4180845801004751e+00
+-2.4187494876790252e+00
+-2.4193973043684016e+00
+-2.4200279933947475e+00
+-2.4206415179893734e+00
+-2.4212378413687237e+00
+-2.4218169266897669e+00
+-2.4223787370946046e+00
+-2.4229232357297921e+00
+-2.4234503857936547e+00
+-2.4239601505179205e+00
+-2.4244524931341980e+00
+-2.4249273768335313e+00
+-2.4253847647440918e+00
+-2.4258246199886413e+00
+-2.4262469057209266e+00
+-2.4266515852186301e+00
+-2.4270386217904187e+00
+-2.4274079787296459e+00
+-2.4277596191516468e+00
+-2.4280935060569080e+00
+-2.4284096024465205e+00
+-2.4287078714727910e+00
+-2.4289882765224093e+00
+-2.4292507810022270e+00
+-2.4294953482596182e+00
+-2.4297219414040487e+00
+-2.4299305234855071e+00
+-2.4301210575646204e+00
+-2.4302935068256915e+00
+-2.4304478345328131e+00
+-2.4305840039502775e+00
+-2.4307019782745622e+00
+-2.4308017205970294e+00
+-2.4308831940000002e+00
+-2.4309463615979574e+00
+-2.4309911866340341e+00
+-2.4310176323835249e+00
+-2.4310256621166486e+00
+-2.4310152390446125e+00
+-2.4309863263405500e+00
+-2.4309388871773074e+00
+-2.4308728847485495e+00
+-2.4307882822802074e+00
+-2.4306850430009885e+00
+-2.4305631301192614e+00
+-2.4304225067620364e+00
+-2.4302631360359861e+00
+-2.4300849810531115e+00
+-2.4298880049873772e+00
+-2.4296721710527232e+00
+-2.4294374424638430e+00
+-2.4291837824407270e+00
+-2.4289111542115740e+00
+-2.4286195210052899e+00
+-2.4283088460232580e+00
+-2.4279790923567730e+00
+-2.4276302230696101e+00
+-2.4272622012574545e+00
+-2.4268749903869744e+00
+-2.4264685541641811e+00
+-2.4260428562841376e+00
+-2.4255978595456953e+00
+-2.4251335253585742e+00
+-2.4246498150130011e+00
+-2.4241466912236804e+00
+-2.4236241224032296e+00
+-2.4230820783887448e+00
+-2.4225205274965469e+00
+-2.4219394203639402e+00
+-2.4213386962224117e+00
+-2.4207182948599808e+00
+-2.4200782008624251e+00
+-2.4194184682520530e+00
+-2.4187391570242096e+00
+-2.4180403930933152e+00
+-2.4173225660501205e+00
+-2.4165861314044657e+00
+-2.4158315418996286e+00
+-2.4150592181176123e+00
+-2.4142695598912183e+00
+-2.4134629668031087e+00
+-2.4126398441767827e+00
+-2.4118006062340371e+00
+-2.4109456679621157e+00
+-2.4100754436061766e+00
+-2.4091903444430431e+00
+-2.4082907810074539e+00
+-2.4073771638961192e+00
+-2.4064499044261614e+00
+-2.4055094143794866e+00
+-2.4045561055454066e+00
+-2.4035903896927713e+00
+-2.4026126785587176e+00
+-2.4016233838776548e+00
+-2.4006229172946516e+00
+-2.3996116900974167e+00
+-2.3985901134843188e+00
+-2.3975585986875907e+00
+-2.3965175573331354e+00
+-2.3954674013008379e+00
+-2.3944085424715191e+00
+-2.3933413925283036e+00
+-2.3922663628478835e+00
+-2.3911838647805914e+00
+-2.3900943097306571e+00
+-2.3889981093179009e+00
+-2.3878956752160407e+00
+-2.3867874190896630e+00
+-2.3856737524971998e+00
+-2.3845550869285961e+00
+-2.3834318338731659e+00
+-2.3823044048508701e+00
+-2.3811732114291702e+00
+-2.3800386651796139e+00
+-2.3789011776772040e+00
+-2.3777611605107558e+00
+-2.3766190252725408e+00
+-2.3754751835505545e+00
+-2.3743300468831077e+00
+-2.3731840267764550e+00
+-2.3720375347373368e+00
+-2.3708909823335889e+00
+-2.3697447812277503e+00
+-2.3685993430905055e+00
+-2.3674550795371871e+00
+-2.3663124019617205e+00
+-2.3651717217026786e+00
+-2.3640334501241487e+00
+-2.3628979988868131e+00
+-2.3617657798427079e+00
+-2.3606372048433539e+00
+-2.3595126855180881e+00
+-2.3583926331518614e+00
+-2.3572774590000001e+00
+-2.3561675744020869e+00
+-2.3550633910347334e+00
+-2.3539653206588089e+00
+-2.3528737750206989e+00
+-2.3517891656984178e+00
+-2.3507119041613547e+00
+-2.3496424018777882e+00
+-2.3485810703580592e+00
+-2.3475283211777014e+00
+-2.3464845659178577e+00
+-2.3454502161833983e+00
+-2.3444256836741042e+00
+-2.3434113801134839e+00
+-2.3424077171767461e+00
+-2.3414151059776014e+00
+-2.3404339572675070e+00
+-2.3394646818155089e+00
+-2.3385076918083239e+00
+-2.3375634016300579e+00
+-2.3366322258538403e+00
+-2.3357145766890861e+00
+-2.3348108568903618e+00
+-2.3339214668485231e+00
+-2.3330468095574113e+00
+-2.3321873182705861e+00
+-2.3313434457640141e+00
+-2.3305156403766212e+00
+-2.3297040647026552e+00
+-2.3289084384321868e+00
+-2.3281284431560141e+00
+-2.3273637483911229e+00
+-2.3266139753592294e+00
+-2.3258787332082251e+00
+-2.3251576320314866e+00
+-2.3244502929136703e+00
+-2.3237563440305800e+00
+-2.3230754136445588e+00
+-2.3224071281191421e+00
+-2.3217511108747155e+00
+-2.3211069850784902e+00
+-2.3204743741283771e+00
+-2.3198529023450849e+00
+-2.3192421942800223e+00
+-2.3186418744653499e+00
+-2.3180515672094719e+00
+-2.3174708966764364e+00
+-2.3168994870289024e+00
+-2.3163369624906247e+00
+-2.3157829473800571e+00
+-2.3152370660238000e+00
+-2.3146989427244264e+00
+-2.3141682016884015e+00
+-2.3136444670981637e+00
+-2.3131273631401181e+00
+-2.3126165140467845e+00
+-2.3121115440804334e+00
+-2.3116120775040749e+00
+-2.3111177385952879e+00
+-2.3106281516542362e+00
+-2.3101429409830256e+00
+-2.3096617308678935e+00
+-2.3091841455316060e+00
+-2.3087098091810594e+00
+-2.3082383460251958e+00
+-2.3077693802967292e+00
+-2.3073025362437090e+00
+-2.3068374381146364e+00
+-2.3063737101697148e+00
+-2.3059109766872870e+00
+-2.3054488619472555e+00
+-2.3049869902283211e+00
+-2.3045249858043730e+00
+-2.3040624729480972e+00
+-2.3035990759271825e+00
+-2.3031344189512173e+00
+-2.3026681261923048e+00
+-2.3021998218230757e+00
+-2.3017291300852083e+00
+-2.3012556753274063e+00
+-2.3007790819075793e+00
+-2.3002989741575761e+00
+-2.2998149763049982e+00
+-2.2993267125513843e+00
+-2.2988338070988323e+00
+-2.2983358841559283e+00
+-2.2978325679354437e+00
+-2.2973234826507745e+00
+-2.2968082525485731e+00
+-2.2962865019270424e+00
+-2.2957578550888185e+00
+-2.2952219363314992e+00
+-2.2946783699325293e+00
+-2.2941267801643157e+00
+-2.2935667912982405e+00
+-2.2929980275937862e+00
+-2.2924201133027560e+00
+-2.2918326726755747e+00
+-2.2912353298875696e+00
+-2.2906277089976679e+00
+-2.2900094340547836e+00
+-2.2893801292787344e+00
+-2.2887394195729480e+00
+-2.2880869300117550e+00
+-2.2874222854857424e+00
+-2.2867451087494768e+00
+-2.2860550211794455e+00
+-2.2853516442125441e+00
+-2.2846346042881387e+00
+-2.2839035355994288e+00
+-2.2831580730066121e+00
+-2.2823978430095990e+00
+-2.2816224386671560e+00
+-2.2808314446777631e+00
+-2.2800244580860900e+00
+-2.2792012194611897e+00
+-2.2783615619684499e+00
+-2.2775053215539702e+00
+-2.2766324084104546e+00
+-2.2757428478128712e+00
+-2.2748366749357438e+00
+-2.2739139175140823e+00
+-2.2729745735248570e+00
+-2.2720186335055303e+00
+-2.2710460885863593e+00
+-2.2700569367888548e+00
+-2.2690511805805023e+00
+-2.2680288224832541e+00
+-2.2669898638411654e+00
+-2.2659343041725499e+00
+-2.2648621428386697e+00
+-2.2637733793229384e+00
+-2.2626680135973807e+00
+-2.2615460457561727e+00
+-2.2604074758939947e+00
+-2.2592523041113695e+00
+-2.2580805305125895e+00
+-2.2568921552002306e+00
+-2.2556871781700503e+00
+-2.2544655992522422e+00
+-2.2532274182627572e+00
+-2.2519726350706235e+00
+-2.2507012497571810e+00
+-2.2494132624568475e+00
+-2.2481086733001248e+00
+-2.2467874823719933e+00
+-2.2454496897280634e+00
+-2.2440952954215474e+00
+-2.2427242993910128e+00
+-2.2413367013973331e+00
+-2.2399325011860962e+00
+-2.2385116985918718e+00
+-2.2370742938051582e+00
+-2.2356202871054380e+00
+-2.2341496787498674e+00
+-2.2326624687360797e+00
+-2.2311586568942730e+00
+-2.2296382430531430e+00
+-2.2281012271186764e+00
+-2.2265476091166603e+00
+-2.2249773890831879e+00
+-2.2233905670704450e+00
+-2.2217871431949883e+00
+-2.2201671175894679e+00
+-2.2185304903659331e+00
+-2.2168772613969492e+00
+-2.2152074304005769e+00
+-2.2135209970958054e+00
+-2.2118179614118096e+00
+-2.2100983236035550e+00
+-2.2083620839540314e+00
+-2.2066092426851971e+00
+-2.2048397997748777e+00
+-2.2030537551398695e+00
+-2.2012511086940534e+00
+-2.1994318603174574e+00
+-2.1975960098682652e+00
+-2.1957435572065953e+00
+-2.1938745023303650e+00
+-2.1919888454510823e+00
+-2.1900865867986279e+00
+-2.1881677265336656e+00
+-2.1862322645399823e+00
+-2.1842802006321467e+00
+-2.1823115346375430e+00
+-2.1803262665325165e+00
+-2.1783243963895194e+00
+-2.1763059242823029e+00
+-2.1742708502665038e+00
+-2.1722191743696810e+00
+-2.1701508966169767e+00
+-2.1680660170255193e+00
+-2.1659645355803727e+00
+-2.1638464522585856e+00
+-2.1617117670348454e+00
+-2.1595604798564012e+00
+-2.1573925906527989e+00
+-2.1552080993545113e+00
+-2.1530070059653394e+00
+-2.1507893106027400e+00
+-2.1485550133939482e+00
+-2.1463041144274340e+00
+-2.1440366136366116e+00
+-2.1417525109161315e+00
+-2.1394518061720564e+00
+-2.1371344994431358e+00
+-2.1348005908537191e+00
+-2.1324500805274100e+00
+-2.1300829684573759e+00
+-2.1276992544346101e+00
+-2.1252989382327114e+00
+-2.1228820197095208e+00
+-2.1204484990598358e+00
+-2.1179983765626931e+00
+-2.1155316524725305e+00
+-2.1130483267578244e+00
+-2.1105483992025591e+00
+-2.1080318695894951e+00
+-2.1054987378124612e+00
+-2.1029490039374412e+00
+-2.1003826680452273e+00
+-2.0977997302150171e+00
+-2.0952001905196234e+00
+-2.0925840490302621e+00
+-2.0899513058060104e+00
+-2.0873019607648211e+00
+-2.0846360137335971e+00
+-2.0819534645403395e+00
+-2.0792543131699759e+00
+-2.0765385598506669e+00
+-2.0738062048314960e+00
+-2.0710572482744176e+00
+-2.0682916899928685e+00
+-2.0655095297131556e+00
+-2.0627107671814118e+00
+-2.0598954023742482e+00
+-2.0570634354169721e+00
+-2.0542148664373165e+00
+-2.0513496955599608e+00
+-2.0484679229048490e+00
+-2.0455695485915171e+00
+-2.0426545726807124e+00
+-2.0397229949980251e+00
+-2.0367748153102574e+00
+-2.0338100334072680e+00
+-2.0308286493469700e+00
+-2.0278306633602132e+00
+-2.0248160756775802e+00
+-2.0217848863407437e+00
+-2.0187370950985626e+00
+-2.0156727016747098e+00
+-2.0125917058849616e+00
+-2.0094941079135196e+00
+-2.0063799080366915e+00
+-2.0032491065108067e+00
+-2.0001017033599600e+00
+-1.9969376984584171e+00
+-1.9937570916786200e+00
+-1.9905598829334819e+00
+-1.9873460721986440e+00
+-1.9841156594551452e+00
+-1.9808686446990464e+00
+-1.9776050279865072e+00
+-1.9743248093887109e+00
+-1.9710279889671525e+00
+-1.9677145666707039e+00
+-1.9643845423755768e+00
+-1.9610379159582736e+00
+-1.9576746873853572e+00
+-1.9542948567629879e+00
+-1.9508984242093335e+00
+-1.9474853898309805e+00
+-1.9440557536881922e+00
+-1.9406095158296499e+00
+-1.9371466762905314e+00
+-1.9336672349490180e+00
+-1.9301711915820066e+00
+-1.9266585459672791e+00
+-1.9231292980370656e+00
+-1.9195834479629910e+00
+-1.9160209959372740e+00
+-1.9124419421244438e+00
+-1.9088462865782740e+00
+-1.9052340293248493e+00
+-1.9016051703792560e+00
+-1.8979597096287173e+00
+-1.8942976468779651e+00
+-1.8906189819330559e+00
+-1.8869237147619853e+00
+-1.8832118455837570e+00
+-1.8794833746389668e+00
+-1.8757383020884488e+00
+-1.8719766277739909e+00
+-1.8681983514576195e+00
+-1.8644034729217887e+00
+-1.8605919921864047e+00
+-1.8567639094245725e+00
+-1.8529192248106381e+00
+-1.8490579384402579e+00
+-1.8451800502871176e+00
+-1.8412855603144125e+00
+-1.8373744684796656e+00
+-1.8334467747177119e+00
+-1.8295024789577159e+00
+-1.8255415811365323e+00
+-1.8215640812804104e+00
+-1.8175699794732754e+00
+-1.8135592757993313e+00
+-1.8095319703018731e+00
+-1.8054880629607823e+00
+-1.8014275537504882e+00
+-1.7973504426377460e+00
+-1.7932567295586175e+00
+-1.7891464144414932e+00
+-1.7850194972238076e+00
+-1.7808759779481431e+00
+-1.7767158567249186e+00
+-1.7725391336645433e+00
+-1.7683458088089621e+00
+-1.7641358820939983e+00
+-1.7599093534463488e+00
+-1.7556662228164321e+00
+-1.7514064902495574e+00
+-1.7471301558147576e+00
+-1.7428372195735911e+00
+-1.7385276815007304e+00
+-1.7342015415147916e+00
+-1.7298587995337795e+00
+-1.7254994554950223e+00
+-1.7211235093657977e+00
+-1.7167309611159620e+00
+-1.7123218107510807e+00
+-1.7078960584195626e+00
+-1.7034537043055260e+00
+-1.6989947485729679e+00
+-1.6945191911519624e+00
+-1.6900270318216637e+00
+-1.6855182703615312e+00
+-1.6809929067201637e+00
+-1.6764509411083235e+00
+-1.6718923737593272e+00
+-1.6673172048299336e+00
+-1.6627254341706768e+00
+-1.6581170615555334e+00
+-1.6534920867704828e+00
+-1.6488505097410306e+00
+-1.6441923304826980e+00
+-1.6395175490143827e+00
+-1.6348261654675085e+00
+-1.6301181801479152e+00
+-1.6253935933764447e+00
+-1.6206524053415106e+00
+-1.6158946157018064e+00
+-1.6111202239835949e+00
+-1.6063292297568166e+00
+-1.6015216330991604e+00
+-1.5966974344158937e+00
+-1.5918566341132208e+00
+-1.5869992323259949e+00
+-1.5821252287684762e+00
+-1.5772346231187420e+00
+-1.5723274151391642e+00
+-1.5674036049292832e+00
+-1.5624631926729302e+00
+-1.5575061785494613e+00
+-1.5525325626861952e+00
+-1.5475423451768788e+00
+-1.5425355261119114e+00
+-1.5375121054144993e+00
+-1.5324720827486995e+00
+-1.5274154577562746e+00
+-1.5223422302155296e+00
+-1.5172524004509345e+00
+-1.5121459689235006e+00
+-1.5070229360498830e+00
+-1.5018833017311062e+00
+-1.4967270655355296e+00
+-1.4915542270280928e+00
+-1.4863647859012998e+00
+-1.4811587420453769e+00
+-1.4759360953675595e+00
+-1.4706968458239640e+00
+-1.4654409935662329e+00
+-1.4601685387948944e+00
+-1.4548794816843069e+00
+-1.4495738221046697e+00
+-1.4442515597299430e+00
+-1.4389126942340755e+00
+-1.4335572254865374e+00
+-1.4281851536598478e+00
+-1.4227964789525958e+00
+-1.4173912015424484e+00
+-1.4119693215233708e+00
+-1.4065308389684041e+00
+-1.4010757539340997e+00
+-1.3956040662852904e+00
+-1.3901157757631211e+00
+-1.3846108821104666e+00
+-1.3790893852975299e+00
+-1.3735512856468763e+00
+-1.3679965835113850e+00
+-1.3624252791246225e+00
+-1.3568373722429254e+00
+-1.3512328625033194e+00
+-1.3456117495677424e+00
+-1.3399740333877561e+00
+-1.3343197141017697e+00
+-1.3286487918516225e+00
+-1.3229612667980937e+00
+-1.3172571391313102e+00
+-1.3115364090439243e+00
+-1.3057990766400478e+00
+-1.3000451416696128e+00
+-1.2942746037940076e+00
+-1.2884874627082676e+00
+-1.2826837184985309e+00
+-1.2768633715032631e+00
+-1.2710264220607566e+00
+-1.2651728702464271e+00
+-1.2593027157282424e+00
+-1.2534159581391169e+00
+-1.2475125972216123e+00
+-1.2415926331568823e+00
+-1.2356560662357250e+00
+-1.2297028967317800e+00
+-1.2237331247192316e+00
+-1.2177467501435770e+00
+-1.2117437729477838e+00
+-1.2057241930517291e+00
+-1.1996880103394922e+00
+-1.1936352246920721e+00
+-1.1875658360369976e+00
+-1.1814798444878942e+00
+-1.1753772502049129e+00
+-1.1692580533333248e+00
+-1.1631222538453723e+00
+-1.1569698516016746e+00
+-1.1508008464619612e+00
+-1.1446152383444155e+00
+-1.1384130272578277e+00
+-1.1321942132187783e+00
+-1.1259587962720958e+00
+-1.1197067765756028e+00
+-1.1134381543153655e+00
+-1.1071529296529561e+00
+-1.1008511024651975e+00
+-1.0945326724451983e+00
+-1.0881976392868804e+00
+-1.0818460029166992e+00
+-1.0754777636215258e+00
+-1.0690929217192358e+00
+-1.0626914774384260e+00
+-1.0562734306505606e+00
+-1.0498387811378265e+00
+-1.0433875286913741e+00
+-1.0369196732065988e+00
+-1.0304352146461551e+00
+-1.0239341529760844e+00
+-1.0174164882986469e+00
+-1.0108822209272463e+00
+-1.0043313511934442e+00
+-9.9776387929636901e-01
+-9.9117980490541913e-01
+-9.8457912755755517e-01
+-9.7796184683501153e-01
+-9.7132796284633094e-01
+-9.6467747603960374e-01
+-9.5801038686336715e-01
+-9.5132669545341986e-01
+-9.4462640146080545e-01
+-9.3790950449487365e-01
+-9.3117600425875813e-01
+-9.2442590083074339e-01
+-9.1765919438290622e-01
+-9.1087588508675643e-01
+-9.0407597310726429e-01
+-8.9725945860518463e-01
+-8.9042634173820279e-01
+-8.8357662248429736e-01
+-8.7671030054290511e-01
+-8.6982737558949808e-01
+-8.6292784738043837e-01
+-8.5601171599565240e-01
+-8.4907898159595097e-01
+-8.4212964434328630e-01
+-8.3516370441280696e-01
+-8.2818116198817804e-01
+-8.2118201724954454e-01
+-8.1416627015705800e-01
+-8.0713392032988718e-01
+-8.0008496735787349e-01
+-7.9301941097531448e-01
+-7.8593725149435112e-01
+-7.7883848937158917e-01
+-7.7172312502092699e-01
+-7.6459115835983538e-01
+-7.5744258898551409e-01
+-7.5027741649342750e-01
+-7.4309564069545420e-01
+-7.3589726173891967e-01
+-7.2868227979999856e-01
+-7.2145069505771764e-01
+-7.1420250770248295e-01
+-7.0693771792754634e-01
+-6.9965632589551385e-01
+-6.9235833141267511e-01
+-6.8504373405544128e-01
+-6.7771253340197823e-01
+-6.7036472936534808e-01
+-6.6300032237770923e-01
+-6.5561931291587761e-01
+-6.4822170130513757e-01
+-6.4080748726466419e-01
+-6.3337667036210954e-01
+-6.2592925019621204e-01
+-6.1846522672713722e-01
+-6.1098460014823408e-01
+-6.0348737065665892e-01
+-5.9597353844516554e-01
+-5.8844310369967101e-01
+-5.8089606660550497e-01
+-5.7333242724552980e-01
+-5.6575218529271931e-01
+-5.5815534031757608e-01
+-5.5054189193582026e-01
+-5.4291184028877104e-01
+-5.3526518585684624e-01
+-5.2760192912037795e-01
+-5.1992207021517411e-01
+-5.1222560874303702e-01
+-5.0451254425983771e-01
+-4.9678287642808538e-01
+-4.8903660533686205e-01
+-4.8127373118189726e-01
+-4.7349425415945257e-01
+-4.6569817447205097e-01
+-4.5788549232624653e-01
+-4.5005620792453888e-01
+-4.4221032122213799e-01
+-4.3434783179094305e-01
+-4.2646873916988071e-01
+-4.1857304306127913e-01
+-4.1066074382104989e-01
+-4.0273184196850181e-01
+-3.9478633797390861e-01
+-3.8682423173745528e-01
+-3.7884552279153072e-01
+-3.7085021066661372e-01
+-3.6283829514609828e-01
+-3.5480977640540401e-01
+-3.4676465465367790e-01
+-3.3870293010161134e-01
+-3.3062460296610446e-01
+-3.2252967346560329e-01
+-3.1441814178377120e-01
+-3.0629000769992770e-01
+-2.9814527073251762e-01
+-2.8998393040193998e-01
+-2.8180598660672129e-01
+-2.7361143983147340e-01
+-2.6540029061122461e-01
+-2.5717253931310047e-01
+-2.4892818563259159e-01
+-2.4066722909728111e-01
+-2.3238966926783197e-01
+-2.2409550608939957e-01
+-2.1578473975520213e-01
+-2.0745737046283183e-01
+-1.9911339842395359e-01
+-1.9075282387206161e-01
+-1.8237564704252246e-01
+-1.7398186804715676e-01
+-1.6557148650360617e-01
+-1.5714450190596163e-01
+-1.4870091380089015e-01
+-1.4024072234626175e-01
+-1.3176392809426291e-01
+-1.2327053159710748e-01
+-1.1476053301433392e-01
+-1.0623393189682120e-01
+-9.7690727743090941e-02
+-8.9130920172948352e-02
+-8.0554509291306975e-02
+-7.1961495324365882e-02
+-6.3351878497082348e-02
+-5.4725659020036344e-02
+-4.6082837094537220e-02
+-3.7423412917968489e-02
+-2.8747386461740736e-02
+-2.0054757347011766e-02
+-1.1345525164804603e-02
+-2.6196896070805661e-03
+6.1227492304404899e-03
+1.4881791151105397e-02
+2.3657435956188425e-02
+3.2449683422864861e-02
+4.1258533312770719e-02
+5.0083985391960489e-02
+5.8926039707135607e-02
+6.7784696740014916e-02
+7.6659957009730620e-02
+8.5551820852324351e-02
+9.4460287871454690e-02
+1.0338535748767917e-01
+1.1232702917629964e-01
+1.2128530304895935e-01
+1.3026017962783912e-01
+1.3925165943720180e-01
+1.4825974271537445e-01
+1.5728442925747824e-01
+1.6632571882051478e-01
+1.7538361116442214e-01
+1.8445810606087887e-01
+1.9354920328450528e-01
+2.0265690264698852e-01
+2.1178120439091183e-01
+2.2092210903686649e-01
+2.3007961710317210e-01
+2.3925372869428280e-01
+2.4844444327315271e-01
+2.5765176024754782e-01
+2.6687567921333688e-01
+2.7611620051877789e-01
+2.8537332470022081e-01
+2.9464705225578314e-01
+3.0393738323906822e-01
+3.1324431741689018e-01
+3.2256785455127562e-01
+3.3190799440344082e-01
+3.4126473673334129e-01
+3.5063808130082980e-01
+3.6002802799634520e-01
+3.6943457723266437e-01
+3.7885772955315733e-01
+3.8829748544419723e-01
+3.9775384472966002e-01
+4.0722680680600032e-01
+4.1671637106972431e-01
+4.2622253734818338e-01
+4.3574530613653079e-01
+4.4528467798735938e-01
+4.5484065332031487e-01
+4.6441323202323137e-01
+4.7400241385098429e-01
+4.8360819855834020e-01
+4.9323058589873264e-01
+5.0286957562472945e-01
+5.1252516749387433e-01
+5.2219736156276864e-01
+5.3188615835154729e-01
+5.4159155842022733e-01
+5.5131356213038396e-01
+5.6105216904986177e-01
+5.7080737854807073e-01
+5.8057919005401304e-01
+5.9036760368951879e-01
+6.0017262002340033e-01
+6.0999423962672528e-01
+6.1983246275925596e-01
+6.2968728919822237e-01
+6.3955871867934044e-01
+6.4944675094128634e-01
+6.5935138573455254e-01
+6.6927262281258026e-01
+6.7921046196924528e-01
+6.8916490346841297e-01
+6.9913594787716105e-01
+7.0912359576014306e-01
+7.1912784723284551e-01
+7.2914870171456403e-01
+7.3918615856470649e-01
+7.4924021734626933e-01
+7.5931087843663325e-01
+7.6939814241677351e-01
+7.7950200982582607e-01
+7.8962248071661700e-01
+7.9975955482822025e-01
+8.0991323189469144e-01
+8.2008351166309590e-01
+8.3027039390065493e-01
+8.4047387837631737e-01
+8.5069396497689720e-01
+8.6093065406062697e-01
+8.7118394610360206e-01
+8.8145384154692275e-01
+8.9174034042486305e-01
+9.0204344250923851e-01
+9.1236314756724457e-01
+9.2269945535132858e-01
+9.3305236559109406e-01
+9.4342187801417909e-01
+9.5380799249293513e-01
+9.6421070947859855e-01
+9.7463002956712530e-01
+9.8506595329308178e-01
+9.9551848047745684e-01
+1.0059876104808627e+00
+1.0164733426636370e+00
+1.0269756768303830e+00
+1.0374946134742948e+00
+1.0480301531478067e+00
+1.0585822962786269e+00
+1.0691510427955493e+00
+1.0797363925026482e+00
+1.0903383451962445e+00
+1.1009569005825279e+00
+1.1115920583095493e+00
+1.1222438180307890e+00
+1.1329121797836397e+00
+1.1435971442005737e+00
+1.1542987119652528e+00
+1.1650168835307630e+00
+1.1757516584279217e+00
+1.1865030359569764e+00
+1.1972710154817376e+00
+1.2080555971050146e+00
+1.2188567814063762e+00
+1.2296745689680095e+00
+1.2405089600520540e+00
+1.2513599544245693e+00
+1.2622275518089474e+00
+1.2731117519335218e+00
+1.2840125545463787e+00
+1.2949299594005521e+00
+1.3058639662931155e+00
+1.3168145755331049e+00
+1.3277817877598641e+00
+1.3387656036094902e+00
+1.3497660231929134e+00
+1.3607830458070742e+00
+1.3718166706788915e+00
+1.3828668972838372e+00
+1.3939337260916311e+00
+1.4050171578205439e+00
+1.4161171931354599e+00
+1.4272338320805709e+00
+1.4383670742996144e+00
+1.4495169194305797e+00
+1.4606833671665704e+00
+1.4718664172861118e+00
+1.4830660695750841e+00
+1.4942823239517373e+00
+1.5055151808637930e+00
+1.5167646408913484e+00
+1.5280307045527901e+00
+1.5393133716491099e+00
+1.5506126415184742e+00
+1.5619285134995033e+00
+1.5732609874208354e+00
+1.5846100638706548e+00
+1.5959757435024744e+00
+1.6073580268058836e+00
+1.6187569136147550e+00
+1.6301724035990250e+00
+1.6416044964300942e+00
+1.6530531917963092e+00
+1.6645184893969425e+00
+1.6760003889377013e+00
+1.6874988904990154e+00
+1.6990139947421279e+00
+1.7105457023782513e+00
+1.7220940138760272e+00
+1.7336589287338044e+00
+1.7452404462073672e+00
+1.7568385656198535e+00
+1.7684532870773875e+00
+1.7800846111912585e+00
+1.7917325385758420e+00
+1.8033970695260872e+00
+1.8150782038418225e+00
+1.8267759412802769e+00
+1.8384902815872171e+00
+1.8502212244625260e+00
+1.8619687695946106e+00
+1.8737329167192918e+00
+1.8855136661235106e+00
+1.8973110184497621e+00
+1.9091249743377394e+00
+1.9209555339030300e+00
+1.9328026964488527e+00
+1.9446664612085516e+00
+1.9565468276653935e+00
+1.9684437963023260e+00
+1.9803573678522288e+00
+1.9922875429964895e+00
+2.0042343218180259e+00
+2.0161977040136403e+00
+2.0281776892735119e+00
+2.0401742772769631e+00
+2.0521874676864753e+00
+2.0642172601630753e+00
+2.0762636545314792e+00
+2.0883266512711334e+00
+2.1004062510251593e+00
+2.1125024543874100e+00
+2.1246152613789087e+00
+2.1367446716511029e+00
+2.1488906848499814e+00
+2.1610533006629913e+00
+2.1732325188418615e+00
+2.1854283391438498e+00
+2.1976407614692461e+00
+2.2098697862905019e+00
+2.2221154142231088e+00
+2.2343776458205133e+00
+2.2466564809149929e+00
+2.2589519188735490e+00
+2.2712639590626065e+00
+2.2835926012796928e+00
+2.2959378459905362e+00
+2.3082996937183364e+00
+2.3206781448687894e+00
+2.3330731993775489e+00
+2.3454848570627505e+00
+2.3579131177343386e+00
+2.3703579811069320e+00
+2.3828194468336590e+00
+2.3952975145729800e+00
+2.4077921843646304e+00
+2.4203034568393447e+00
+2.4328313326786950e+00
+2.4453758123238925e+00
+2.4579368952547389e+00
+2.4705145807106828e+00
+2.4831088680050155e+00
+2.4957197573095660e+00
+2.5083472493500523e+00
+2.5209913448545098e+00
+2.5336520441366868e+00
+2.5463293468681694e+00
+2.5590232526652983e+00
+2.5717337611653410e+00
+2.5844608720892288e+00
+2.5972045851788192e+00
+2.6099649002216387e+00
+2.6227418175361183e+00
+2.6355353377832187e+00
+2.6483454616208566e+00
+2.6611721891817592e+00
+2.6740155197846316e+00
+2.6868754526781533e+00
+2.6997519873484745e+00
+2.7126451242316678e+00
+2.7255548640012841e+00
+2.7384812072842757e+00
+2.7514241541659805e+00
+2.7643837043823045e+00
+2.7773598576628435e+00
+2.7903526137085186e+00
+2.8033619721757788e+00
+2.8163879327172561e+00
+2.8294304951648361e+00
+2.8424896600674070e+00
+2.8555654281531182e+00
+2.8686578000712655e+00
+2.8817667755544614e+00
+2.8948923537439226e+00
+2.9080345337818034e+00
+2.9211933154578862e+00
+2.9343686995657960e+00
+2.9475606869855100e+00
+2.9607692783748467e+00
+2.9739944735030268e+00
+2.9872362719171202e+00
+3.0004946731703854e+00
+3.0137696768881379e+00
+3.0270612827421624e+00
+3.0403694904120582e+00
+3.0536942999993384e+00
+3.0670357122594729e+00
+3.0803937280041946e+00
+3.0937683477666922e+00
+3.1071595709659654e+00
+3.1205673967424787e+00
+3.1339918243147267e+00
+3.1474328538083158e+00
+3.1608904859340985e+00
+3.1743647214065600e+00
+3.1878555605728485e+00
+3.2013630032107647e+00
+3.2148870490491315e+00
+3.2284276977904991e+00
+3.2419849490323731e+00
+3.2555588023459845e+00
+3.2691492573658980e+00
+3.2827563144628549e+00
+3.2963799744825404e+00
+3.3100202382678234e+00
+3.3236771060171475e+00
+3.3373505769300911e+00
+3.3510406501203165e+00
+3.3647473249736364e+00
+3.3784706019644535e+00
+3.3922104818393293e+00
+3.4059669652927060e+00
+3.4197400524131529e+00
+3.4335297428983678e+00
+3.4473360364394297e+00
+3.4611589327218657e+00
+3.4749984314225864e+00
+3.4888545322177511e+00
+3.5027272349398086e+00
+3.5166165400463263e+00
+3.5305224481511432e+00
+3.5444449598221466e+00
+3.5583840750929356e+00
+3.5723397936523988e+00
+3.5863121151835888e+00
+3.6003010393636452e+00
+3.6143065658605327e+00
+3.6283286943414343e+00
+3.6423674246636715e+00
+3.6564227574450996e+00
+3.6704946934937221e+00
+3.6845832335332425e+00
+3.6986883773075130e+00
+3.7128101239282181e+00
+3.7269484725068560e+00
+3.7411034227764457e+00
+3.7552749754333479e+00
+3.7694631312567832e+00
+3.7836678908354462e+00
+3.7978892539958906e+00
+3.8121272203741281e+00
+3.8263817896078871e+00
+3.8406529613547753e+00
+3.8549407352852167e+00
+3.8692451110769617e+00
+3.8835660888340393e+00
+3.8979036693212028e+00
+3.9122578533600536e+00
+3.9266286414823597e+00
+3.9410160330606123e+00
+3.9554200271774804e+00
+3.9698406230004393e+00
+3.9842778206829497e+00
+3.9987316210145853e+00
+4.0132020247881668e+00
+4.0276890323557488e+00
+4.0421926433861906e+00
+4.0567128574895674e+00
+4.0712496742965758e+00
+4.0858030935203509e+00
+4.1003731148946265e+00
+4.1149597382027121e+00
+4.1295629638041227e+00
+4.1441827924301107e+00
+4.1588192248078517e+00
+4.1734722610474941e+00
+4.1881419003028180e+00
+4.2028281416453357e+00
+4.2175309844495601e+00
+4.2322504293020557e+00
+4.2469864770923955e+00
+4.2617391286477968e+00
+4.2765083840706879e+00
+4.2912942429958889e+00
+4.3060967050499821e+00
+4.3209157698335892e+00
+4.3357514369070786e+00
+4.3506037058273463e+00
+4.3654725763788447e+00
+4.3803580492562109e+00
+4.3952601253816193e+00
+4.4101788055840547e+00
+4.4251140896089973e+00
+4.4400659765029147e+00
+4.4550344653115941e+00
+4.4700195557391256e+00
+4.4850212485099945e+00
+4.5000395444364614e+00
+4.5150744441434592e+00
+4.5301259475066544e+00
+4.5451940542143952e+00
+4.5602787639472622e+00
+4.5753800762956542e+00
+4.5904979907917811e+00
+4.6056325069755930e+00
+4.6207836249102341e+00
+4.6359513454697803e+00
+4.6511356695980561e+00
+4.6663365979171356e+00
+4.6815541297620262e+00
+4.6967882641459830e+00
+4.7120390001723447e+00
+4.7273063379916831e+00
+4.7425902784302192e+00
+4.7578908223180942e+00
+4.7732079700450409e+00
+4.7885417213181780e+00
+4.8038920757859067e+00
+4.8192590330962384e+00
+4.8346425928956762e+00
+4.8500427548303424e+00
+4.8654595185967437e+00
+4.8808928844772073e+00
+4.8963428531319897e+00
+4.9118094252218301e+00
+4.9272926010579319e+00
+4.9427923804097142e+00
+4.9583087629999998e+00
+4.9738417485157305e+00
+4.9893913365003160e+00
+5.0049575264612987e+00
+5.0205403179785675e+00
+5.0361397114730959e+00
+5.0517557079085034e+00
+5.0673883082451798e+00
+5.0830375127072021e+00
+5.0987033203773793e+00
+5.1143857302403450e+00
+5.1300847415933104e+00
+5.1458003549838249e+00
+5.1615325712720121e+00
+5.1772813912582150e+00
+5.1930468150477349e+00
+5.2088288422974518e+00
+5.2246274726563984e+00
+5.2404427057508336e+00
+5.2562745411717078e+00
+5.2721229785069390e+00
+5.2879880175576073e+00
+5.3038696589774066e+00
+5.3197679036331973e+00
+5.3356827523017660e+00
+5.3516142047127637e+00
+5.3675622599202857e+00
+5.3835269169783606e+00
+5.3995081756124561e+00
+5.4155060365888037e+00
+5.4315205007631482e+00
+5.4475515687899687e+00
+5.4635992405186382e+00
+5.4796635155972417e+00
+5.4957443936704111e+00
+5.5118418743424638e+00
+5.5279559571917041e+00
+5.5440866418041024e+00
+5.5602339282511046e+00
+5.5763978173566269e+00
+5.5925783100093263e+00
+5.6087754067839279e+00
+5.6249891069994220e+00
+5.6412194096608781e+00
+5.6574663138691967e+00
+5.6737298198393082e+00
+5.6900099285048942e+00
+5.7063066408028460e+00
+5.7226199571448744e+00
+5.7389498771286354e+00
+5.7552964002817539e+00
+5.7716595261482802e+00
+5.7880392543379457e+00
+5.8044355844768898e+00
+5.8208485162570494e+00
+5.8372780501351480e+00
+5.8537241870613075e+00
+5.8701869279810506e+00
+5.8866662730699062e+00
+5.9031622213099073e+00
+5.9196747715804303e+00
+5.9362039231168477e+00
+5.9527496765785086e+00
+5.9693120329807705e+00
+5.9858909932678950e+00
+6.0024865575578001e+00
+6.0190987254352741e+00
+6.0357274964757757e+00
+6.0523728702287682e+00
+6.0690348462034027e+00
+6.0857134239053554e+00
+6.1024086030974063e+00
+6.1191203845707181e+00
+6.1358487693735349e+00
+6.1525937584451453e+00
+6.1693553514580568e+00
+6.1861335472674943e+00
+6.2029283447286216e+00
+6.2197397435097619e+00
+6.2365677445396184e+00
+6.2534123488553304e+00
+6.2702735572488209e+00
+6.2871513695312107e+00
+6.3040457852684177e+00
+6.3209568040233002e+00
+6.3378844253232689e+00
+6.3548286486728616e+00
+6.3717894735857339e+00
+6.3887669001461118e+00
+6.4057609293225921e+00
+6.4227715621598360e+00
+6.4397987993445449e+00
+6.4568426401315451e+00
+6.4739030834176807e+00
+6.4909801282008246e+00
+6.5080737746531154e+00
+6.5251840237043028e+00
+6.5423108762885089e+00
+6.5594543328445498e+00
+6.5766143930435517e+00
+6.5937910564905975e+00
+6.6109843227873419e+00
+6.6281941915217679e+00
+6.6454206622784353e+00
+6.6626637347032105e+00
+6.6799234091547621e+00
+6.6971996864516221e+00
+6.7144925674122087e+00
+6.7318020523888480e+00
+6.7491281410114086e+00
+6.7664708328476006e+00
+6.7838301274562598e+00
+6.8012060243606483e+00
+6.8185985230751491e+00
+6.8360076231940505e+00
+6.8534333252405277e+00
+6.8708756303370535e+00
+6.8883345396014466e+00
+6.9058100532729991e+00
+6.9233021702293147e+00
+6.9408108892308604e+00
+6.9583362094135373e+00
+6.9758781314150431e+00
+6.9934366562485204e+00
+7.0110117848614344e+00
+7.0286035174378965e+00
+7.0462118536695204e+00
+7.0638367932375274e+00
+7.0814783356926352e+00
+7.0991364803832440e+00
+7.1168112266403618e+00
+7.1345025741139265e+00
+7.1522105237295879e+00
+7.1699350767319316e+00
+7.1876762342397269e+00
+7.2054339959090568e+00
+7.2232083604523538e+00
+7.2409993265812620e+00
+7.2588068939037056e+00
+7.2766310634168674e+00
+7.2944718362374354e+00
+7.3123292132183657e+00
+7.3302031941577370e+00
+7.3480937785899059e+00
+7.3660009660465313e+00
+7.3839247560280716e+00
+7.4018651480148314e+00
+7.4198221414968035e+00
+7.4377957365647518e+00
+7.4557859342406347e+00
+7.4737927356265210e+00
+7.4918161414463320e+00
+7.5098561509113892e+00
+7.5279127628548759e+00
+7.5459859762168744e+00
+7.5640757911801817e+00
+7.5821822087293578e+00
+7.6003052298536264e+00
+7.6184448550201207e+00
+7.6366010838867613e+00
+7.6547739160418589e+00
+7.6729633510632000e+00
+7.6911693884865420e+00
+7.7093920278371151e+00
+7.7276312687134530e+00
+7.7458871115660903e+00
+7.7641595573952351e+00
+7.7824486071970833e+00
+7.8007542611769747e+00
+7.8190765183144082e+00
+7.8374153774834454e+00
+7.8557708379207600e+00
+7.8741429003134558e+00
+7.8925315657112609e+00
+7.9109368350894256e+00
+7.9293587085574115e+00
+7.9477971856661238e+00
+7.9662522659567694e+00
+7.9847239489472166e+00
+8.0032122341191876e+00
+8.0217171209512816e+00
+8.0402386091858276e+00
+8.0587766996200436e+00
+8.0773313933148572e+00
+8.0959026912252767e+00
+8.1144905930748532e+00
+8.1330950977926406e+00
+8.1517162043070375e+00
+8.1703539123012394e+00
+8.1890082226283472e+00
+8.2076791362421133e+00
+8.2263666538705174e+00
+8.2450707753384282e+00
+8.2637915002449525e+00
+8.2825288281836400e+00
+8.3012827586836160e+00
+8.3200532912324405e+00
+8.3388404253259996e+00
+8.3576441610023640e+00
+8.3764644991399706e+00
+8.3953014406895328e+00
+8.4141549863682883e+00
+8.4330251359595252e+00
+8.4519118890130258e+00
+8.4708152450767891e+00
+8.4897352036778599e+00
+8.5086717643297565e+00
+8.5276249265552337e+00
+8.5465946904441417e+00
+8.5655810569653124e+00
+8.5845840271632063e+00
+8.6036036017162001e+00
+8.6226397798384209e+00
+8.6416925603779280e+00
+8.6607619422898399e+00
+8.6798479257740180e+00
+8.6989505118333650e+00
+8.7180697014756792e+00
+8.7372054951996621e+00
+8.7563578927149095e+00
+8.7755268936631214e+00
+8.7947124976431237e+00
+8.8139147040821939e+00
+8.8331335123647108e+00
+8.8523689219609931e+00
+8.8716209333403260e+00
+8.8908895476164727e+00
+8.9101747658999599e+00
+8.9294765884618936e+00
+8.9487950142723030e+00
+8.9681300421892907e+00
+8.9874816714310484e+00
+9.0068499026561515e+00
+9.0262347368832661e+00
+9.0456361750560319e+00
+9.0650542172460007e+00
+9.0844888629620755e+00
+9.1039401117044374e+00
+9.1234079630131095e+00
+9.1428924164898451e+00
+9.1623934717417015e+00
+9.1819111286086184e+00
+9.2014453878620248e+00
+9.2209962505062126e+00
+9.2405637174381976e+00
+9.2601477883077195e+00
+9.2797484619598478e+00
+9.2993657372398868e+00
+9.3189996138122666e+00
+9.3386500926110809e+00
+9.3583171746796374e+00
+9.3780008608254803e+00
+9.3977011509131518e+00
+9.4174180445714395e+00
+9.4371515414163252e+00
+9.4569016409150670e+00
+9.4766683424389679e+00
+9.4964516453687526e+00
+9.5162515497470412e+00
+9.5360680566423959e+00
+9.5559011672116334e+00
+9.5757508822224828e+00
+9.5956172008863607e+00
+9.6155001220256135e+00
+9.6353996445726029e+00
+9.6553157687389497e+00
+9.6752484955615810e+00
+9.6951978260815217e+00
+9.7151637607602783e+00
+9.7351462991610731e+00
+9.7551454407698817e+00
+9.7751611850899902e+00
+9.7951935316939807e+00
+9.8152424801717544e+00
+9.8353080301851801e+00
+9.8553901822326644e+00
+9.8754889373523476e+00
+9.8956042965772166e+00
+9.9157362600917871e+00
+9.9358848267654274e+00
+9.9560499953543875e+00
+9.9762317649990830e+00
+9.9964301363767003e+00
+1.0016645110548605e+01
+1.0036876688517463e+01
+1.0057124870603570e+01
+1.0077389656686949e+01
+1.0097671046633826e+01
+1.0117969039921492e+01
+1.0138283635424395e+01
+1.0158614831965124e+01
+1.0178962628856839e+01
+1.0199327027374915e+01
+1.0219708029285316e+01
+1.0240105636199212e+01
+1.0260519847928439e+01
+1.0280950663123972e+01
+1.0301398080430843e+01
+1.0321862099297762e+01
+1.0342342720419209e+01
+1.0362839944596818e+01
+1.0383353772407885e+01
+1.0403884203532378e+01
+1.0424431237425901e+01
+1.0444994873567065e+01
+1.0465575111701607e+01
+1.0486171951747613e+01
+1.0506785393632757e+01
+1.0527415437688033e+01
+1.0548062084869535e+01
+1.0568725336187150e+01
+1.0589405192311933e+01
+1.0610101652559633e+01
+1.0630814715907169e+01
+1.0651544381381783e+01
+1.0672290648595540e+01
+1.0693053517537866e+01
+1.0713832988211761e+01
+1.0734629061058031e+01
+1.0755441737196097e+01
+1.0776271017803728e+01
+1.0797116903571451e+01
+1.0817979393240718e+01
+1.0838858485065712e+01
+1.0859754177446908e+01
+1.0880666470485417e+01
+1.0901595365379512e+01
+1.0922540863337373e+01
+1.0943502965063375e+01
+1.0964481670481002e+01
+1.0985476979446556e+01
+1.1006488891755605e+01
+1.1027517406960659e+01
+1.1048562524553503e+01
+1.1069624244084315e+01
+1.1090702565782198e+01
+1.1111797490314279e+01
+1.1132909018345806e+01
+1.1154037149992613e+01
+1.1175181884518906e+01
+1.1196343221115635e+01
+1.1217521159304171e+01
+1.1238715699927612e+01
+1.1259926844159454e+01
+1.1281154593072358e+01
+1.1302398946566518e+01
+1.1323659903785687e+01
+1.1344937463861294e+01
+1.1366231625941301e+01
+1.1387542389199263e+01
+1.1408869752810959e+01
+1.1430213716530190e+01
+1.1451574282422825e+01
+1.1472951453132772e+01
+1.1494345231001910e+01
+1.1515755614861407e+01
+1.1537182601277429e+01
+1.1558626186820412e+01
+1.1580086370581661e+01
+1.1601563155559854e+01
+1.1623056545089751e+01
+1.1644566541625014e+01
+1.1666093144094754e+01
+1.1687636350546942e+01
+1.1709196159111508e+01
+1.1730772568871094e+01
+1.1752365579522960e+01
+1.1773975190786201e+01
+1.1795601403073553e+01
+1.1817244217872911e+01
+1.1838903636764671e+01
+1.1860579660844149e+01
+1.1882272289266492e+01
+1.1903981520701794e+01
+1.1925707353918026e+01
+1.1947449788821061e+01
+1.1969208826050895e+01
+1.1990984466256931e+01
+1.2012776709919569e+01
+1.2034585557257236e+01
+1.2056411008465821e+01
+1.2078253063481688e+01
+1.2100111721203103e+01
+1.2121986980268785e+01
+1.2143878839486820e+01
+1.2165787299633909e+01
+1.2187712362756823e+01
+1.2209654030897346e+01
+1.2231612304526887e+01
+1.2253587181682844e+01
+1.2275578660193231e+01
+1.2297586738560325e+01
+1.2319611417983470e+01
+1.2341652700336287e+01
+1.2363710587371786e+01
+1.2385785079441234e+01
+1.2407876175991520e+01
+1.2429983876450770e+01
+1.2452108180025681e+01
+1.2474249085579739e+01
+1.2496406591946887e+01
+1.2518580698494004e+01
+1.2540771406719614e+01
+1.2562978718655158e+01
+1.2585202636124023e+01
+1.2607443158530847e+01
+1.2629700283719821e+01
+1.2651974009534383e+01
+1.2674264335333490e+01
+1.2696571262825149e+01
+1.2718894793919450e+01
+1.2741234930097296e+01
+1.2763591671123004e+01
+1.2785965016331721e+01
+1.2808354965050166e+01
+1.2830761516507081e+01
+1.2853184669868002e+01
+1.2875624424307393e+01
+1.2898080779600445e+01
+1.2920553736453424e+01
+1.2943043295652682e+01
+1.2965549458001423e+01
+1.2988072224370162e+01
+1.3010611595646289e+01
+1.3033167572540387e+01
+1.3055740153707927e+01
+1.3078329336478484e+01
+1.3100935118197226e+01
+1.3123557498469580e+01
+1.3146196480404470e+01
+1.3168852067412173e+01
+1.3191524261856639e+01
+1.3214213061916487e+01
+1.3236918464724006e+01
+1.3259640467631685e+01
+1.3282379070552146e+01
+1.3305134275049676e+01
+1.3327906082704644e+01
+1.3350694494410490e+01
+1.3373499509995879e+01
+1.3396321129197913e+01
+1.3419159351708076e+01
+1.3442014177035441e+01
+1.3464885604643472e+01
+1.3487773634060511e+01
+1.3510678265568899e+01
+1.3533599499937475e+01
+1.3556537337932639e+01
+1.3579491779688233e+01
+1.3602462824357646e+01
+1.3625450471009902e+01
+1.3648454719085668e+01
+1.3671475569512083e+01
+1.3694513023587906e+01
+1.3717567082498963e+01
+1.3740637746118292e+01
+1.3763725013471934e+01
+1.3786828883574218e+01
+1.3809949355582241e+01
+1.3833086428874402e+01
+1.3856240102848139e+01
+1.3879410377292409e+01
+1.3902597253562204e+01
+1.3925800733404065e+01
+1.3949020818405979e+01
+1.3972257508312904e+01
+1.3995510801680764e+01
+1.4018780697059620e+01
+1.4042067193838626e+01
+1.4065370292707490e+01
+1.4088689994467789e+01
+1.4112026299779668e+01
+1.4135379208737548e+01
+1.4158748721294385e+01
+1.4182134837373425e+01
+1.4205537556552210e+01
+1.4228956878185251e+01
+1.4252392801633350e+01
+1.4275845326857906e+01
+1.4299314454751197e+01
+1.4322800186285610e+01
+1.4346302522017911e+01
+1.4369821460842426e+01
+1.4393357001237877e+01
+1.4416909141845295e+01
+1.4440477883192802e+01
+1.4464063227025980e+01
+1.4487665175096298e+01
+1.4511283728291037e+01
+1.4534918886157984e+01
+1.4558570648129681e+01
+1.4582239013538013e+01
+1.4605923981312149e+01
+1.4629625550280574e+01
+1.4653343719425550e+01
+1.4677078489516916e+01
+1.4700829862477766e+01
+1.4724597840228576e+01
+1.4748382423378050e+01
+1.4772183610501665e+01
+1.4796001400000009e+01
+1.4819835790718390e+01
+1.4843686783281173e+01
+1.4867554378757468e+01
+1.4891438578119004e+01
+1.4915339381205438e+01
+1.4939256787126078e+01
+1.4963190794988826e+01
+1.4987141404549837e+01
+1.5011108616569983e+01
+1.5035092431896569e+01
+1.5059092851076153e+01
+1.5083109873452303e+01
+1.5107143498067810e+01
+1.5131193724088773e+01
+1.5155260552114404e+01
+1.5179343983668504e+01
+1.5203444020268163e+01
+1.5227560662102372e+01
+1.5251693907301638e+01
+1.5275843753819386e+01
+1.5300010200230874e+01
+1.5324193247598698e+01
+1.5348392897607297e+01
+1.5372609151796185e+01
+1.5396842010020459e+01
+1.5421091471048474e+01
+1.5445357533647350e+01
+1.5469640197597217e+01
+1.5493939464248369e+01
+1.5518255335086133e+01
+1.5542587811142562e+01
+1.5566936891636459e+01
+1.5591302575333316e+01
+1.5615684861064832e+01
+1.5640083748432286e+01
+1.5664499237533491e+01
+1.5688931328478123e+01
+1.5713380021591320e+01
+1.5737845317532180e+01
+1.5762327216988544e+01
+1.5786825720367478e+01
+1.5811340826953087e+01
+1.5835872535748726e+01
+1.5860420845877583e+01
+1.5884985757856006e+01
+1.5909567273099157e+01
+1.5934165393020745e+01
+1.5958780118050244e+01
+1.5983411447091516e+01
+1.6008059378917185e+01
+1.6032723912523291e+01
+1.6057405047799495e+01
+1.6082102784858890e+01
+1.6106817123840241e+01
+1.6131548065180773e+01
+1.6156295609510270e+01
+1.6181059757453227e+01
+1.6205840509123771e+01
+1.6230637863845033e+01
+1.6255451820872086e+01
+1.6280282379657272e+01
+1.6305129540442032e+01
+1.6329993303665077e+01
+1.6354873669788176e+01
+1.6379770639541363e+01
+1.6404684213827736e+01
+1.6429614393531701e+01
+1.6454561178243388e+01
+1.6479524565546761e+01
+1.6504504552853234e+01
+1.6529501138473428e+01
+1.6554514324314798e+01
+1.6579544113184010e+01
+1.6604590507658344e+01
+1.6629653507648346e+01
+1.6654733111344136e+01
+1.6679829316924540e+01
+1.6704942123612394e+01
+1.6730071532248722e+01
+1.6755217543813753e+01
+1.6780380159103146e+01
+1.6805559378174380e+01
+1.6830755200900377e+01
+1.6855967627128852e+01
+1.6881196656414463e+01
+1.6906442288122783e+01
+1.6931704521625591e+01
+1.6956983356855218e+01
+1.6982278794612867e+01
+1.7007590835774476e+01
+1.7032919480922114e+01
+1.7058264729462334e+01
+1.7083626580507836e+01
+1.7109005033249030e+01
+1.7134400087779834e+01
+1.7159811744777080e+01
+1.7185240004923912e+01
+1.7210684868699467e+01
+1.7236146336266724e+01
+1.7261624407761456e+01
+1.7287119083060972e+01
+1.7312630361008775e+01
+1.7338158240189870e+01
+1.7363702719362038e+01
+1.7389263799291150e+01
+1.7414841482038632e+01
+1.7440435769664393e+01
+1.7466046662842498e+01
+1.7491674160098867e+01
+1.7517318259774687e+01
+1.7542978960638624e+01
+1.7568656263169366e+01
+1.7594350168273102e+01
+1.7620060676814642e+01
+1.7645787789177628e+01
+1.7671531505435318e+01
+1.7697291825646825e+01
+1.7723068749333635e+01
+1.7748862275183928e+01
+1.7774672401814168e+01
+1.7800499128405637e+01
+1.7826342456398752e+01
+1.7852202387798727e+01
+1.7878078924445585e+01
+1.7903972066259144e+01
+1.7929881811920339e+01
+1.7955808160097114e+01
+1.7981751109915344e+01
+1.8007710661210695e+01
+1.8033686813879893e+01
+1.8059679568090257e+01
+1.8085688925091382e+01
+1.8111714886403472e+01
+1.8137757453359242e+01
+1.8163816625111966e+01
+1.8189892399408830e+01
+1.8215984774001530e+01
+1.8242093748320301e+01
+1.8268219324397055e+01
+1.8294361504487505e+01
+1.8320520290236473e+01
+1.8346695680845269e+01
+1.8372887674904277e+01
+1.8399096271068892e+01
+1.8425321468749814e+01
+1.8451563267845039e+01
+1.8477821668270732e+01
+1.8504096670545543e+01
+1.8530388276121958e+01
+1.8556696486532815e+01
+1.8583021302672670e+01
+1.8609362722882977e+01
+1.8635720744866926e+01
+1.8662095366553981e+01
+1.8688486588504500e+01
+1.8714894412976150e+01
+1.8741318842231703e+01
+1.8767759877142598e+01
+1.8794217516423711e+01
+1.8820691758604376e+01
+1.8847182602475804e+01
+1.8873690047876547e+01
+1.8900214094907003e+01
+1.8926754743701984e+01
+1.8953311994796223e+01
+1.8979885848982534e+01
+1.9006476307046121e+01
+1.9033083369058904e+01
+1.9059707033987191e+01
+1.9086347300702197e+01
+1.9113004168521606e+01
+1.9139677638549145e+01
+1.9166367712335035e+01
+1.9193074391289915e+01
+1.9219797675201765e+01
+1.9246537562811703e+01
+1.9273294052851490e+01
+1.9300067144540172e+01
+1.9326856837852013e+01
+1.9353663132826245e+01
+1.9380486029633541e+01
+1.9407325528970198e+01
+1.9434181631663975e+01
+1.9461054338444910e+01
+1.9487943648907180e+01
+1.9514849561912154e+01
+1.9541772076325781e+01
+1.9568711192021105e+01
+1.9595666910432254e+01
+1.9622639233127618e+01
+1.9649628161199594e+01
+1.9676633693836560e+01
+1.9703655829750907e+01
+1.9730694567720878e+01
+1.9757749907290627e+01
+1.9784821848498421e+01
+1.9811910391395344e+01
+1.9839015536307983e+01
+1.9866137283989854e+01
+1.9893275635231259e+01
+1.9920430590529275e+01
+1.9947602149208226e+01
+1.9974790310299237e+01
+2.0001995072922703e+01
+2.0029216437236613e+01
+2.0056454404068415e+01
+2.0083708974250722e+01
+2.0110980148257031e+01
+2.0138267926004183e+01
+2.0165572307361163e+01
+2.0192893292113798e+01
+2.0220230879715469e+01
+2.0247585069536434e+01
+2.0274955861012568e+01
+2.0302343254342539e+01
+2.0329747250217103e+01
+2.0357167849331624e+01
+2.0384605052164041e+01
+2.0412058858855286e+01
+2.0439529269517294e+01
+2.0467016283997729e+01
+2.0494519901087024e+01
+2.0522040119311349e+01
+2.0549576937378323e+01
+2.0577130356104938e+01
+2.0604700377669094e+01
+2.0632287004246763e+01
+2.0659890236537109e+01
+2.0687510072950325e+01
+2.0715146511699682e+01
+2.0742799551465698e+01
+2.0770469192797847e+01
+2.0798155436712818e+01
+2.0825858284178963e+01
+2.0853577735602425e+01
+2.0881313791026646e+01
+2.0909066450479443e+01
+2.0936835713414411e+01
+2.0964621578395047e+01
+2.0992424043908322e+01
+2.1020243109095404e+01
+2.1048078775714345e+01
+2.1075931046177395e+01
+2.1103799922651547e+01
+2.1131685404452231e+01
+2.1159587489055230e+01
+2.1187506173935120e+01
+2.1215441458334325e+01
+2.1243393344235457e+01
+2.1271361833856801e+01
+2.1299346928926717e+01
+2.1327348629213674e+01
+2.1355366933996166e+01
+2.1383401842523206e+01
+2.1411453353700928e+01
+2.1439521466214220e+01
+2.1467606178767124e+01
+2.1495707491431492e+01
+2.1523825406399329e+01
+2.1551959926045011e+01
+2.1580111051920824e+01
+2.1608278782290597e+01
+2.1636463114596090e+01
+2.1664664046515519e+01
+2.1692881578476072e+01
+2.1721115712678465e+01
+2.1749366451334691e+01
+2.1777633795561652e+01
+2.1805917744778778e+01
+2.1834218298259486e+01
+2.1862535455176609e+01
+2.1890869214300658e+01
+2.1919219574301525e+01
+2.1947586534033587e+01
+2.1975970094495437e+01
+2.2004370258069045e+01
+2.2032787027128354e+01
+2.2061220402182432e+01
+2.2089670380849761e+01
+2.2118136960500209e+01
+2.2146620139349949e+01
+2.2175119919000494e+01
+2.2203636301899689e+01
+2.2232169290301101e+01
+2.2260718884200266e+01
+2.2289285082135873e+01
+2.2317867882630569e+01
+2.2346467284701173e+01
+2.2375083288130490e+01
+2.2403715892767178e+01
+2.2432365098763359e+01
+2.2461030907484886e+01
+2.2489713320601041e+01
+2.2518412339577853e+01
+2.2547127963518559e+01
+2.2575860190001951e+01
+2.2604609016611430e+01
+2.2633374442729114e+01
+2.2662156470525122e+01
+2.2690955102409418e+01
+2.2719770340143903e+01
+2.2748602182898374e+01
+2.2777450629194593e+01
+2.2806315677619288e+01
+2.2835197327514521e+01
+2.2864095578709684e+01
+2.2893010431053661e+01
+2.2921941885080376e+01
+2.2950889942385480e+01
+2.2979854604655962e+01
+2.3008835872886500e+01
+2.3037833745302578e+01
+2.3066848219437340e+01
+2.3095879293065977e+01
+2.3124926966777025e+01
+2.3153991242974101e+01
+2.3183072124066705e+01
+2.3212169611002036e+01
+2.3241283702460812e+01
+2.3270414396928764e+01
+2.3299561693133665e+01
+2.3328725590771469e+01
+2.3357906089780190e+01
+2.3387103190165124e+01
+2.3416316892714253e+01
+2.3445547198720472e+01
+2.3474794109470984e+01
+2.3504057625406102e+01
+2.3533337745653480e+01
+2.3562634469227817e+01
+2.3591947795131851e+01
+2.3621277722320354e+01
+2.3650624249736101e+01
+2.3679987376528224e+01
+2.3709367104244677e+01
+2.3738763435981085e+01
+2.3768176374814860e+01
+2.3797605921183330e+01
+2.3827052071431684e+01
+2.3856514821553130e+01
+2.3885994168851354e+01
+2.3915490115872206e+01
+2.3945002666472053e+01
+2.3974531824200213e+01
+2.4004077589036608e+01
+2.4033639958658341e+01
+2.4063218930720229e+01
+2.4092814503845045e+01
+2.4122426678155822e+01
+2.4152055453904666e+01
+2.4181700831445070e+01
+2.4211362811536073e+01
+2.4241041395038138e+01
+2.4270736582715248e+01
+2.4300448374210010e+01
+2.4330176768441568e+01
+2.4359921764329329e+01
+2.4389683361531663e+01
+2.4419461560852426e+01
+2.4449256363193996e+01
+2.4479067769325042e+01
+2.4508895779479424e+01
+2.4538740393757255e+01
+2.4568601612164887e+01
+2.4598479433618223e+01
+2.4628373856329656e+01
+2.4658284878531614e+01
+2.4688212500361850e+01
+2.4718156724911339e+01
+2.4748117555525130e+01
+2.4778094994310671e+01
+2.4808089038425084e+01
+2.4838099683787906e+01
+2.4868126926710243e+01
+2.4898170768055031e+01
+2.4928231211621931e+01
+2.4958308261222339e+01
+2.4988401918435645e+01
+2.5018512181381652e+01
+2.5048639047882521e+01
+2.5078782516037855e+01
+2.5108942585056820e+01
+2.5139119254425985e+01
+2.5169312523759977e+01
+2.5199522394162084e+01
+2.5229748867695989e+01
+2.5259991946416928e+01
+2.5290251630911474e+01
+2.5320527919489773e+01
+2.5350820810266143e+01
+2.5381130301861763e+01
+2.5411456394925171e+01
+2.5441799090611784e+01
+2.5472158390017956e+01
+2.5502534293553506e+01
+2.5532926801185361e+01
+2.5563335912863838e+01
+2.5593761627987870e+01
+2.5624203945101694e+01
+2.5654662862676023e+01
+2.5685138379830807e+01
+2.5715630498282920e+01
+2.5746139220398430e+01
+2.5776664548329023e+01
+2.5807206481733687e+01
+2.5837765018663230e+01
+2.5868340157161207e+01
+2.5898931896444115e+01
+2.5929540237546441e+01
+2.5960165181659118e+01
+2.5990806729765762e+01
+2.6021464882020865e+01
+2.6052139638371639e+01
+2.6082830998692060e+01
+2.6113538962005148e+01
+2.6144263526784876e+01
+2.6175004691520250e+01
+2.6205762456151195e+01
+2.6236536822866551e+01
+2.6267327794048580e+01
+2.6298135371349950e+01
+2.6328959553504799e+01
+2.6359800338517623e+01
+2.6390657724551392e+01
+2.6421531711611198e+01
+2.6452422300890557e+01
+2.6483329493594820e+01
+2.6514253290448956e+01
+2.6545193691433340e+01
+2.6576150696464307e+01
+2.6607124305229807e+01
+2.6638114516504409e+01
+2.6669121328834326e+01
+2.6700144740939674e+01
+2.6731184753562317e+01
+2.6762241368748487e+01
+2.6793314588548533e+01
+2.6824404413957971e+01
+2.6855510844337275e+01
+2.6886633878906260e+01
+2.6917773516822411e+01
+2.6948929756993891e+01
+2.6980102598266484e+01
+2.7011292039619764e+01
+2.7042498081588121e+01
+2.7073720725709080e+01
+2.7104959973523449e+01
+2.7136215825766268e+01
+2.7167488281923703e+01
+2.7198777341374470e+01
+2.7230083003554427e+01
+2.7261405268127984e+01
+2.7292744134816690e+01
+2.7324099603421608e+01
+2.7355471674668550e+01
+2.7386860349879903e+01
+2.7418265630364857e+01
+2.7449687516043760e+01
+2.7481126004684299e+01
+2.7512581093868931e+01
+2.7544052782058973e+01
+2.7575541071230926e+01
+2.7607045964240118e+01
+2.7638567463657516e+01
+2.7670105568748404e+01
+2.7701660276645427e+01
+2.7733231584479931e+01
+2.7764819491439024e+01
+2.7796423999896213e+01
+2.7828045112499129e+01
+2.7859682831192266e+01
+2.7891337155107781e+01
+2.7923008082674720e+01
+2.7954695612388345e+01
+2.7986399743513648e+01
+2.8018120475812225e+01
+2.8049857809066761e+01
+2.8081611743830170e+01
+2.8113382281849169e+01
+2.8145169424973162e+01
+2.8176973174302123e+01
+2.8208793527938195e+01
+2.8240630483234106e+01
+2.8272484037801281e+01
+2.8304354192258678e+01
+2.8336240949165592e+01
+2.8368144311088027e+01
+2.8400064279053083e+01
+2.8432000851702657e+01
+2.8463954027473456e+01
+2.8495923805025324e+01
+2.8527910183910652e+01
+2.8559913163904977e+01
+2.8591932744883742e+01
+2.8623968927884302e+01
+2.8656021714693594e+01
+2.8688091107085040e+01
+2.8720177105271670e+01
+2.8752279707047869e+01
+2.8784398910000000e+01
+2.8816534712394642e+01
+2.8848687115219267e+01
+2.8880856120141573e+01
+2.8913041728762632e+01
+2.8945243941908757e+01
+2.8977462759906480e+01
+2.9009698183059772e+01
+2.9041950210819131e+01
+2.9074218841312192e+01
+2.9106504072552806e+01
+2.9138805903233312e+01
+2.9171124334760197e+01
+2.9203459369218468e+01
+2.9235811008503504e+01
+2.9268179252306311e+01
+2.9300564098895688e+01
+2.9332965546539612e+01
+2.9365383594877382e+01
+2.9397818245673861e+01
+2.9430269500876740e+01
+2.9462737361872254e+01
+2.9495221827800659e+01
+2.9527722897240757e+01
+2.9560240568832238e+01
+2.9592774841922573e+01
+2.9625325716315878e+01
+2.9657893191834155e+01
+2.9690477268914702e+01
+2.9723077948948639e+01
+2.9755695233409117e+01
+2.9788329123346102e+01
+2.9820979618116795e+01
+2.9853646716655160e+01
+2.9886330417891237e+01
+2.9919030720708946e+01
+2.9951747623962447e+01
+2.9984481126532970e+01
+3.0017231228955353e+01
+3.0049997934327475e+01
+3.0082781245967741e+01
+3.0115581165937265e+01
+3.0148397691268059e+01
+3.0181230817734868e+01
+3.0214080541521241e+01
+3.0246946863562911e+01
+3.0279829787861598e+01
+3.0312729318429977e+01
+3.0345645456872923e+01
+3.0378578201063231e+01
+3.0411527548552616e+01
+3.0444493497328097e+01
+3.0477476047117754e+01
+3.0510475198084936e+01
+3.0543490950437377e+01
+3.0576523304898856e+01
+3.0609572262526026e+01
+3.0642637824366354e+01
+3.0675719990580944e+01
+3.0708818759957047e+01
+3.0741934131163742e+01
+3.0775066103287305e+01
+3.0808214677082788e+01
+3.0841379853722472e+01
+3.0874561634307849e+01
+3.0907760019117561e+01
+3.0940975007899393e+01
+3.0974206600388520e+01
+3.1007454796096649e+01
+3.1040719594189028e+01
+3.1074000993801111e+01
+3.1107298994436928e+01
+3.1140613597074864e+01
+3.1173944803061843e+01
+3.1207292613609049e+01
+3.1240657028349236e+01
+3.1274038045896837e+01
+3.1307435664864975e+01
+3.1340849884806442e+01
+3.1374280706730620e+01
+3.1407728131772156e+01
+3.1441192160876675e+01
+3.1474672794233584e+01
+3.1508170031843282e+01
+3.1541683873612637e+01
+3.1575214318361972e+01
+3.1608761364210551e+01
+3.1642325009299608e+01
+3.1675905253788763e+01
+3.1709502100966187e+01
+3.1743115554389114e+01
+3.1776745616302524e+01
+3.1810392283702139e+01
+3.1844055552271378e+01
+3.1877735418107388e+01
+3.1911431882116680e+01
+3.1945144948308670e+01
+3.1978874620705366e+01
+3.2012620900983180e+01
+3.2046383787182840e+01
+3.2080163277032334e+01
+3.2113959368536797e+01
+3.2147772060810091e+01
+3.2181601353243252e+01
+3.2215447245370768e+01
+3.2249309738394935e+01
+3.2283188834594014e+01
+3.2317084536236827e+01
+3.2350996843950533e+01
+3.2384925755817640e+01
+3.2418871269701768e+01
+3.2452833384059616e+01
+3.2486812099720090e+01
+3.2520807418105186e+01
+3.2554819340550061e+01
+3.2588847867380444e+01
+3.2622892998270800e+01
+3.2656954732881445e+01
+3.2691033070674258e+01
+3.2725128010803630e+01
+3.2759239552397474e+01
+3.2793367694961283e+01
+3.2827512439510812e+01
+3.2861673787439393e+01
+3.2895851739999294e+01
+3.2930046296803454e+01
+3.2964257456407118e+01
+3.2998485217364419e+01
+3.3032729579219058e+01
+3.3066990543048519e+01
+3.3101268110062286e+01
+3.3135562281248085e+01
+3.3169873056706756e+01
+3.3204200436317400e+01
+3.3238544419888996e+01
+3.3272905006415129e+01
+3.3307282194363367e+01
+3.3341675982215698e+01
+3.3376086369845154e+01
+3.3410513359280898e+01
+3.3444956952737584e+01
+3.3479417151927528e+01
+3.3513893956553879e+01
+3.3548387365817490e+01
+3.3582897378886322e+01
+3.3617423994546002e+01
+3.3651967211335467e+01
+3.3686527027814520e+01
+3.3721103444040018e+01
+3.3755696462389253e+01
+3.3790306085439113e+01
+3.3824932314953593e+01
+3.3859575149444971e+01
+3.3894234586612669e+01
+3.3928910624353414e+01
+3.3963603262858214e+01
+3.3998312503798246e+01
+3.4033038348851704e+01
+3.4067780798637102e+01
+3.4102539852130555e+01
+3.4137315508166893e+01
+3.4172107765858136e+01
+3.4206916625425158e+01
+3.4241742087365971e+01
+3.4276584152150612e+01
+3.4311442819923229e+01
+3.4346318090617721e+01
+3.4381209964164178e+01
+3.4416118440474627e+01
+3.4451043519433014e+01
+3.4485985200920929e+01
+3.4520943484912060e+01
+3.4555918371748540e+01
+3.4590909861864603e+01
+3.4625917955678908e+01
+3.4660942653428769e+01
+3.4695983955234553e+01
+3.4731041861202982e+01
+3.4766116370739759e+01
+3.4801207482163967e+01
+3.4836315193701211e+01
+3.4871439504348984e+01
+3.4906580416192298e+01
+3.4941737932088017e+01
+3.4976912054602195e+01
+3.5012102782919918e+01
+3.5047310114044926e+01
+3.5082534044979738e+01
+3.5117774574829596e+01
+3.5153031705959080e+01
+3.5188305441013121e+01
+3.5223595782044029e+01
+3.5258902728733560e+01
+3.5294226280170854e+01
+3.5329566435415579e+01
+3.5364923193184786e+01
+3.5400296551974506e+01
+3.5435686510303626e+01
+3.5471093068286358e+01
+3.5506516228509611e+01
+3.5541955993772980e+01
+3.5577412365904344e+01
+3.5612885342844649e+01
+3.5648374921563068e+01
+3.5683881099309637e+01
+3.5719403876598882e+01
+3.5754943256051469e+01
+3.5790499240301109e+01
+3.5826071830658449e+01
+3.5861661026383302e+01
+3.5897266826559097e+01
+3.5932889230169479e+01
+3.5968528235798885e+01
+3.6004183841931969e+01
+3.6039856047267264e+01
+3.6075544852990063e+01
+3.6111250261890007e+01
+3.6146972276747249e+01
+3.6182710898168899e+01
+3.6218466123393917e+01
+3.6254237949371465e+01
+3.6290026374005819e+01
+3.6325831399021581e+01
+3.6361653027098413e+01
+3.6397491260736615e+01
+3.6433346100351173e+01
+3.6469217545011652e+01
+3.6505105593762416e+01
+3.6541010245477004e+01
+3.6576931498764210e+01
+3.6612869352210090e+01
+3.6648823805040863e+01
+3.6684794859043706e+01
+3.6720782516645990e+01
+3.6756786780078350e+01
+3.6792807649284164e+01
+3.6828845122731174e+01
+3.6864899198869772e+01
+3.6900969876587254e+01
+3.6937057155448080e+01
+3.6973161035074945e+01
+3.7009281515505585e+01
+3.7045418598437919e+01
+3.7081572285984862e+01
+3.7117742580010230e+01
+3.7153929479481562e+01
+3.7190132981497854e+01
+3.7226353083162621e+01
+3.7262589783719221e+01
+3.7298843085727832e+01
+3.7335112992033942e+01
+3.7371399504730185e+01
+3.7407702622897673e+01
+3.7444022344864699e+01
+3.7480358669024483e+01
+3.7516711594525852e+01
+3.7553081121005100e+01
+3.7589467248121899e+01
+3.7625869976453330e+01
+3.7662289307998400e+01
+3.7698725244878396e+01
+3.7735177788369768e+01
+3.7771646936369429e+01
+3.7808132685929387e+01
+3.7844635034388553e+01
+3.7881153982420578e+01
+3.7917689532850673e+01
+3.7954241688511843e+01
+3.7990810450555706e+01
+3.8027395817527704e+01
+3.8063997787749102e+01
+3.8100616359760451e+01
+3.8137251532979633e+01
+3.8173903307043858e+01
+3.8210571681713802e+01
+3.8247256658185457e+01
+3.8283958238580809e+01
+3.8320676425005800e+01
+3.8357411217676244e+01
+3.8394162613878287e+01
+3.8430930610646030e+01
+3.8467715205987460e+01
+3.8504516401805851e+01
+3.8541334200978369e+01
+3.8578168606156837e+01
+3.8615019617373527e+01
+3.8651887232970694e+01
+3.8688771451270583e+01
+3.8725672271082757e+01
+3.8762589691972288e+01
+3.8799523713569229e+01
+3.8836474335924208e+01
+3.8873441560770189e+01
+3.8910425390260691e+01
+3.8947425826295579e+01
+3.8984442867825500e+01
+3.9021476511898378e+01
+3.9058526755566724e+01
+3.9095593598059729e+01
+3.9132677041980394e+01
+3.9169777090221992e+01
+3.9206893744913394e+01
+3.9244027005125929e+01
+3.9281176869166515e+01
+3.9318343335407093e+01
+3.9355526402975009e+01
+3.9392726071485036e+01
+3.9429942340575792e+01
+3.9467175210829112e+01
+3.9504424684288907e+01
+3.9541690763124791e+01
+3.9578973448644533e+01
+3.9616272738708354e+01
+3.9653588630314587e+01
+3.9690921120753458e+01
+3.9728270210708580e+01
+3.9765635903052790e+01
+3.9803018200666997e+01
+3.9840417104724878e+01
+3.9877832613753874e+01
+3.9915264726053792e+01
+3.9952713440143775e+01
+3.9990178755420054e+01
+4.0027660671498218e+01
+4.0065159188120788e+01
+4.0102674306506110e+01
+4.0140206028824657e+01
+4.0177754357230612e+01
+4.0215319291949243e+01
+4.0252900830215985e+01
+4.0290498969009079e+01
+4.0328113706299320e+01
+4.0365745044027804e+01
+4.0403392985128157e+01
+4.0441057532303347e+01
+4.0478738685574513e+01
+4.0516436443232600e+01
+4.0554150803548715e+01
+4.0591881765334861e+01
+4.0629629328241336e+01
+4.0667393491990602e+01
+4.0705174256647510e+01
+4.0742971623646525e+01
+4.0780785594764531e+01
+4.0818616171618942e+01
+4.0856463353973979e+01
+4.0894327140398218e+01
+4.0932207529447531e+01
+4.0970104520112116e+01
+4.1008018112055318e+01
+4.1045948304998376e+01
+4.1083895098956219e+01
+4.1121858495118460e+01
+4.1159838494968390e+01
+4.1197835099823571e+01
+4.1235848309075308e+01
+4.1273878120872084e+01
+4.1311924533366941e+01
+4.1349987546226863e+01
+4.1388067161465464e+01
+4.1426163381298252e+01
+4.1464276207309453e+01
+4.1502405638558521e+01
+4.1540551673473651e+01
+4.1578714310548072e+01
+4.1616893549030756e+01
+4.1655089388658268e+01
+4.1693301829186041e+01
+4.1731530871016069e+01
+4.1769776515552479e+01
+4.1808038764285598e+01
+4.1846317618143281e+01
+4.1884613075803593e+01
+4.1922925135382066e+01
+4.1961253795196896e+01
+4.1999599055921287e+01
+4.2037960919747867e+01
+4.2076339388871432e+01
+4.2114734464098639e+01
+4.2153146144084566e+01
+4.2191574427299201e+01
+4.2230019312393445e+01
+4.2268480798741813e+01
+4.2306958885899753e+01
+4.2345453573552554e+01
+4.2383964862895631e+01
+4.2422492756098606e+01
+4.2461037255316469e+01
+4.2499598360850918e+01
+4.2538176070131115e+01
+4.2576770380339056e+01
+4.2615381289455989e+01
+4.2654008798659909e+01
+4.2692652909928015e+01
+4.2731313625159906e+01
+4.2769990945353108e+01
+4.2808684870923187e+01
+4.2847395402254335e+01
+4.2886122538429653e+01
+4.2924866276515601e+01
+4.2963626613405175e+01
+4.3002403547242515e+01
+4.3041197081176541e+01
+4.3080007219607339e+01
+4.3118833966514607e+01
+4.3157677320990857e+01
+4.3196537278975612e+01
+4.3235413836401449e+01
+4.3274306991940612e+01
+4.3313216748511749e+01
+4.3352143109398789e+01
+4.3391086077027246e+01
+4.3430045650388905e+01
+4.3469021827617176e+01
+4.3508014606927581e+01
+4.3547023987490356e+01
+4.3586049969091668e+01
+4.3625092551538629e+01
+4.3664151735276263e+01
+4.3703227521738540e+01
+4.3742319912444479e+01
+4.3781428908337773e+01
+4.3820554508060916e+01
+4.3859696709681096e+01
+4.3898855511472732e+01
+4.3938030914120027e+01
+4.3977222919861802e+01
+4.4016431530939258e+01
+4.4055656748180454e+01
+4.4094898570223073e+01
+4.4134156995516413e+01
+4.4173432022690278e+01
+4.4212723651096518e+01
+4.4252031880267502e+01
+4.4291356709869312e+01
+4.4330698141122234e+01
+4.4370056176249300e+01
+4.4409430817458571e+01
+4.4448822065057371e+01
+4.4488229916406816e+01
+4.4527654368614620e+01
+4.4567095419620927e+01
+4.4606553070695824e+01
+4.4646027323941865e+01
+4.4685518181362568e+01
+4.4725025643810042e+01
+4.4764549711393535e+01
+4.4804090384196677e+01
+4.4843647661505869e+01
+4.4883221541371839e+01
+4.4922812021739041e+01
+4.4962419101238545e+01
+4.5002042781247859e+01
+4.5041683063831144e+01
+4.5081339950922846e+01
+4.5121013442949426e+01
+4.5160703539364469e+01
+4.5200410239602590e+01
+4.5240133542932334e+01
+4.5279873448365002e+01
+4.5319629954889720e+01
+4.5359403061959625e+01
+4.5399192770883836e+01
+4.5438999083435419e+01
+4.5478822001199219e+01
+4.5518661523571346e+01
+4.5558517648535847e+01
+4.5598390374080232e+01
+4.5638279699812188e+01
+4.5678185627850603e+01
+4.5718108160530448e+01
+4.5758047299527085e+01
+4.5798003043877607e+01
+4.5837975391959510e+01
+4.5877964342215492e+01
+4.5917969893846411e+01
+4.5957992046542252e+01
+4.5998030800012863e+01
+4.6038086154671490e+01
+4.6078158112021683e+01
+4.6118246673660728e+01
+4.6158351840585404e+01
+4.6198473611390284e+01
+4.6238611984069401e+01
+4.6278766956831269e+01
+4.6318938530377757e+01
+4.6359126707019293e+01
+4.6399331489068722e+01
+4.6439552877370971e+01
+4.6479790870495798e+01
+4.6520045466817244e+01
+4.6560316664928649e+01
+4.6600604464300666e+01
+4.6640908864623277e+01
+4.6681229865681459e+01
+4.6721567468364547e+01
+4.6761921674274362e+01
+4.6802292485002113e+01
+4.6842679900791779e+01
+4.6883083919799056e+01
+4.6923504540000003e+01
+4.6963941760100234e+01
+4.7004395581723621e+01
+4.7044866007223519e+01
+4.7085353038756494e+01
+4.7125856676190523e+01
+4.7166376917917070e+01
+4.7206913762311139e+01
+4.7247467208235093e+01
+4.7288037255306776e+01
+4.7328623903209014e+01
+4.7369227151949119e+01
+4.7409847002832393e+01
+4.7450483457488644e+01
+4.7491136517366328e+01
+4.7531806181806147e+01
+4.7572492448788928e+01
+4.7613195316300065e+01
+4.7653914783958783e+01
+4.7694650853916777e+01
+4.7735403528543515e+01
+4.7776172809540235e+01
+4.7816958695934929e+01
+4.7857761186087281e+01
+4.7898580278421996e+01
+4.7939415972119221e+01
+4.7980268266846601e+01
+4.8021137162292035e+01
+4.8062022658872998e+01
+4.8102924758137824e+01
+4.8143843461732118e+01
+4.8184778770684076e+01
+4.8225730683552499e+01
+4.8266699198278779e+01
+4.8307684313023572e+01
+4.8348686028496417e+01
+4.8389704347051300e+01
+4.8430739271044793e+01
+4.8471790801347218e+01
+4.8512858936525141e+01
+4.8553943674946950e+01
+4.8595045015187878e+01
+4.8636162956650459e+01
+4.8677297498944107e+01
+4.8718448641790467e+01
+4.8759616386216194e+01
+4.8800800734089840e+01
+4.8842001687274504e+01
+4.8883219246461550e+01
+4.8924453410526361e+01
+4.8965704178188048e+01
+4.9006971548161467e+01
+4.9048255519144298e+01
+4.9089556089829962e+01
+4.9130873259152352e+01
+4.9172207028841513e+01
+4.9213557402431412e+01
+4.9254924383440439e+01
+4.9296307972649615e+01
+4.9337708166596919e+01
+4.9379124961455396e+01
+4.9420558354471474e+01
+4.9462008347185204e+01
+4.9503474942210055e+01
+4.9544958141994456e+01
+4.9586457947068219e+01
+4.9627974356723406e+01
+4.9669507370229603e+01
+4.9711056986746122e+01
+4.9752623205261351e+01
+4.9794206024749002e+01
+4.9835805444665610e+01
+4.9877421466399198e+01
+4.9919054091820655e+01
+4.9960703322602050e+01
+5.0002369158104116e+01
+5.0044051596196340e+01
+5.0085750634751768e+01
+5.0127466273345675e+01
+5.0169198514191727e+01
+5.0210947359730568e+01
+5.0252712811717835e+01
+5.0294494869168929e+01
+5.0336293530414295e+01
+5.0378108793849549e+01
+5.0419940658628335e+01
+5.0461789124393327e+01
+5.0503654190808057e+01
+5.0545535858296290e+01
+5.0587434128460309e+01
+5.0629349003003753e+01
+5.0671280482992294e+01
+5.0713228566939819e+01
+5.0755193252722187e+01
+5.0797174538440871e+01
+5.0839172424819552e+01
+5.0881186914273634e+01
+5.0923218009221316e+01
+5.0965265710556018e+01
+5.1007330016807735e+01
+5.1049410926303182e+01
+5.1091508437588452e+01
+5.1133622550087182e+01
+5.1175753263442367e+01
+5.1217900577399561e+01
+5.1260064492895999e+01
+5.1302245011637844e+01
+5.1344442135320229e+01
+5.1386655864209743e+01
+5.1428886196358697e+01
+5.1471133129628875e+01
+5.1513396662646009e+01
+5.1555676797091444e+01
+5.1597973535410418e+01
+5.1640286879847103e+01
+5.1682616830308277e+01
+5.1724963385192673e+01
+5.1767326542880483e+01
+5.1809706302144605e+01
+5.1852102662366704e+01
+5.1894515622980791e+01
+5.1936945183929943e+01
+5.1979391347193406e+01
+5.2021854115259522e+01
+5.2064333490328423e+01
+5.2106829471250201e+01
+5.2149342054713621e+01
+5.2191871237412002e+01
+5.2234417018475789e+01
+5.2276979400812884e+01
+5.2319558387656130e+01
+5.2362153981381503e+01
+5.2404766180937564e+01
+5.2447394984415951e+01
+5.2490040389990476e+01
+5.2532702396789539e+01
+5.2575381004557386e+01
+5.2618076213059148e+01
+5.2660788022694753e+01
+5.2703516434848069e+01
+5.2746261450987639e+01
+5.2789023072142371e+01
+5.2831801297582636e+01
+5.2874596126139188e+01
+5.2917407556718310e+01
+5.2960235589104954e+01
+5.3003080223650905e+01
+5.3045941460721103e+01
+5.3088819300902038e+01
+5.3131713745123662e+01
+5.3174624794345412e+01
+5.3217552448969421e+01
+5.3260496707168294e+01
+5.3303457566557299e+01
+5.3346435024981943e+01
+5.3389429082964632e+01
+5.3432439742754688e+01
+5.3475467006612483e+01
+5.3518510875728985e+01
+5.3561571349637667e+01
+5.3604648427729423e+01
+5.3647742109283442e+01
+5.3690852393132289e+01
+5.3733979277996845e+01
+5.3777122762792132e+01
+5.3820282848690191e+01
+5.3863459538319177e+01
+5.3906652834295436e+01
+5.3949862737072174e+01
+5.3993089243749644e+01
+5.4036332351139670e+01
+5.4079592056973787e+01
+5.4122868362662281e+01
+5.4166161270535113e+01
+5.4209470782808509e+01
+5.4252796900376282e+01
+5.4296139623279046e+01
+5.4339498951529059e+01
+5.4382874884286956e+01
+5.4426267419393568e+01
+5.4469676554576182e+01
+5.4513102288396119e+01
+5.4556544622750963e+01
+5.4600003560372343e+01
+5.4643479103734890e+01
+5.4686971252326003e+01
+5.4730480003705807e+01
+5.4774005355433509e+01
+5.4817547306941968e+01
+5.4861105860568081e+01
+5.4904681018898614e+01
+5.4948272783809614e+01
+5.4991881154334322e+01
+5.5035506128795284e+01
+5.5079147705568552e+01
+5.5122805883652326e+01
+5.5166480662446233e+01
+5.5210172041376040e+01
+5.5253880021035442e+01
+5.5297604603828425e+01
+5.5341345792314726e+01
+5.5385103588056715e+01
+5.5428877988627725e+01
+5.5472668990603758e+01
+5.5516476590892246e+01
+5.5560300790253365e+01
+5.5604141591932873e+01
+5.5647998999186179e+01
+5.5691873013359356e+01
+5.5735763632838975e+01
+5.5779670855757054e+01
+5.5823594680464979e+01
+5.5867535106191617e+01
+5.5911492132385284e+01
+5.5955465758648039e+01
+5.5999455986369838e+01
+5.6043462818094106e+01
+5.6087486256346452e+01
+5.6131526301429865e+01
+5.6175582950202369e+01
+5.6219656199225639e+01
+5.6263746046184778e+01
+5.6307852493258643e+01
+5.6351975543749496e+01
+5.6396115200703981e+01
+5.6440271464196869e+01
+5.6484444332385586e+01
+5.6528633803403714e+01
+5.6572839875871594e+01
+5.6617062549163954e+01
+5.6661301822720475e+01
+5.6705557696504862e+01
+5.6749830172577035e+01
+5.6794119253520968e+01
+5.6838424941621398e+01
+5.6882747235684363e+01
+5.6927086132271654e+01
+5.6971441627950014e+01
+5.7015813721829311e+01
+5.7060202416961289e+01
+5.7104607716736695e+01
+5.7149029623622560e+01
+5.7193468136390784e+01
+5.7237923252889466e+01
+5.7282394971094753e+01
+5.7326883290471287e+01
+5.7371388211443929e+01
+5.7415909734453713e+01
+5.7460447859947472e+01
+5.7505002588381060e+01
+5.7549573920211103e+01
+5.7594161855686778e+01
+5.7638766394227360e+01
+5.7683387535044716e+01
+5.7728025277449312e+01
+5.7772679621898021e+01
+5.7817350569587397e+01
+5.7862038121713013e+01
+5.7906742278677548e+01
+5.7951463039654534e+01
+5.7996200403711768e+01
+5.8040954369963167e+01
+5.8085724937707035e+01
+5.8130512106287732e+01
+5.8175315875179990e+01
+5.8220136245373460e+01
+5.8264973218835195e+01
+5.8309826797530718e+01
+5.8354696982358043e+01
+5.8399583772560383e+01
+5.8444487167238691e+01
+5.8489407165381337e+01
+5.8534343765526494e+01
+5.8579296966099804e+01
+5.8624266765721821e+01
+5.8669253165279493e+01
+5.8714256167121917e+01
+5.8759275773598524e+01
+5.8804311985617794e+01
+5.8849364801854655e+01
+5.8894434220791879e+01
+5.8939520241252687e+01
+5.8984622863421862e+01
+5.9029742087824602e+01
+5.9074877915008280e+01
+5.9120030345778211e+01
+5.9165199381106028e+01
+5.9210385021943111e+01
+5.9255587267853926e+01
+5.9300806116253341e+01
+5.9346041564371305e+01
+5.9391293610506565e+01
+5.9436562257233291e+01
+5.9481847508194484e+01
+5.9527149366668525e+01
+5.9572467831695263e+01
+5.9617802899580020e+01
+5.9663154566625629e+01
+5.9708522831723435e+01
+5.9753907697776889e+01
+5.9799309168034583e+01
+5.9844727245007540e+01
+5.9890161928256674e+01
+5.9935613216605283e+01
+5.9981081108847498e+01
+6.0026565603437554e+01
+6.0072066698610442e+01
+6.0117584392629354e+01
+6.0163118685667612e+01
+6.0208669580859400e+01
+6.0254237081593580e+01
+6.0299821190079903e+01
+6.0345421903811726e+01
+6.0391039219103305e+01
+6.0436673132611119e+01
+6.0482323644970634e+01
+6.0527990759384345e+01
+6.0573674479070213e+01
+6.0619374805607748e+01
+6.0665091738036836e+01
+6.0710825275178834e+01
+6.0756575415755378e+01
+6.0802342158088962e+01
+6.0848125500402283e+01
+6.0893925441174005e+01
+6.0939741981858127e+01
+6.0985575125828291e+01
+6.1031424876446223e+01
+6.1077291234440167e+01
+6.1123174196456475e+01
+6.1169073758790354e+01
+6.1214989918898674e+01
+6.1260922678885038e+01
+6.1306872042014724e+01
+6.1352838011332501e+01
+6.1398820587319626e+01
+6.1444819768803498e+01
+6.1490835554580634e+01
+6.1536867943251124e+01
+6.1582916933110496e+01
+6.1628982522428082e+01
+6.1675064710298521e+01
+6.1721163499117480e+01
+6.1767278892105956e+01
+6.1813410892179050e+01
+6.1859559498695731e+01
+6.1905724708720733e+01
+6.1951906519311905e+01
+6.1998104929408143e+01
+6.2044319940864085e+01
+6.2090551555785147e+01
+6.2136799775843734e+01
+6.2183064600980202e+01
+6.2229346030701876e+01
+6.2275644064451463e+01
+6.2321958700920931e+01
+6.2368289938317851e+01
+6.2414637774869959e+01
+6.2461002210498954e+01
+6.2507383247752074e+01
+6.2553780889402475e+01
+6.2600195137582297e+01
+6.2646625991859608e+01
+6.2693073451161489e+01
+6.2739537514380160e+01
+6.2786018180002429e+01
+6.2832515446253666e+01
+6.2879029311385921e+01
+6.2925559775515943e+01
+6.2972106841650778e+01
+6.3018670513046075e+01
+6.3065250791914721e+01
+6.3111847676298645e+01
+6.3158461163197003e+01
+6.3205091249861709e+01
+6.3251737936482719e+01
+6.3298401225145454e+01
+6.3345081117951139e+01
+6.3391777616050646e+01
+6.3438490719121845e+01
+6.3485220426715891e+01
+6.3531966738122257e+01
+6.3578729651583672e+01
+6.3625509165081198e+01
+6.3672305276871988e+01
+6.3719117988422525e+01
+6.3765947303269883e+01
+6.3812793224938922e+01
+6.3859655754155796e+01
+6.3906534887308524e+01
+6.3953430620411972e+01
+6.4000342950825015e+01
+6.4047271881282654e+01
+6.4094217415863895e+01
+6.4141179558327181e+01
+6.4188158308703976e+01
+6.4235153664621308e+01
+6.4282165623674828e+01
+6.4329194183982139e+01
+6.4376239344469880e+01
+6.4423301104134310e+01
+6.4470379462651522e+01
+6.4517474422416996e+01
+6.4564585986506117e+01
+6.4611714157695317e+01
+6.4658858935287171e+01
+6.4706020316342929e+01
+6.4753198297917976e+01
+6.4800392878954980e+01
+6.4847604061321931e+01
+6.4894831847138477e+01
+6.4942076238103425e+01
+6.4989337234232394e+01
+6.5036614835120147e+01
+6.5083909040271095e+01
+6.5131219848138983e+01
+6.5178547256499655e+01
+6.5225891263158374e+01
+6.5273251868361100e+01
+6.5320629076136939e+01
+6.5368022890840393e+01
+6.5415433315233230e+01
+6.5462860345706446e+01
+6.5510303977058342e+01
+6.5557764204583250e+01
+6.5605241029342281e+01
+6.5652734456117074e+01
+6.5700244489705540e+01
+6.5747771132164999e+01
+6.5795314381304721e+01
+6.5842874234568541e+01
+6.5890450689620437e+01
+6.5938043745004947e+01
+6.5985653399486637e+01
+6.6033279652093910e+01
+6.6080922504921233e+01
+6.6128581962041181e+01
+6.6176258027502087e+01
+6.6223950701918127e+01
+6.6271659980580594e+01
+6.6319385858322946e+01
+6.6367128331658435e+01
+6.6414887403819861e+01
+6.6462663079719846e+01
+6.6510455363888752e+01
+6.6558264256413310e+01
+6.6606089754513334e+01
+6.6653931855376868e+01
+6.6701790557151639e+01
+6.6749665859472842e+01
+6.6797557762103608e+01
+6.6845466265177166e+01
+6.6893391370307015e+01
+6.6941333079476706e+01
+6.6989291394448529e+01
+6.7037266314412065e+01
+6.7085257836897270e+01
+6.7133265959439058e+01
+6.7181290681534506e+01
+6.7229332005722000e+01
+6.7277389934801548e+01
+6.7325464470795296e+01
+6.7373555612614240e+01
+6.7421663358391513e+01
+6.7469787706334287e+01
+6.7517928655509948e+01
+6.7566086205540984e+01
+6.7614260356070730e+01
+6.7662451107445179e+01
+6.7710658461099314e+01
+6.7758882418561768e+01
+6.7807122981021905e+01
+6.7855380148311710e+01
+6.7903653919923940e+01
+6.7951944295311833e+01
+6.8000251273469445e+01
+6.8048574853094649e+01
+6.8096915032902587e+01
+6.8145271812941473e+01
+6.8193645195325928e+01
+6.8242035182348260e+01
+6.8290441775485505e+01
+6.8338864972953331e+01
+6.8387304772152149e+01
+6.8435761170750681e+01
+6.8484234169538013e+01
+6.8532723771316299e+01
+6.8581229978892338e+01
+6.8629752793339463e+01
+6.8678292213043946e+01
+6.8726848236161004e+01
+6.8775420861066024e+01
+6.8824010087015111e+01
+6.8872615913484580e+01
+6.8921238340080151e+01
+6.8969877367911735e+01
+6.9018532999059829e+01
+6.9067205235592297e+01
+6.9115894077852047e+01
+6.9164599523508244e+01
+6.9213321570000019e+01
+6.9262060215666153e+01
+6.9310815462443898e+01
+6.9359587313170138e+01
+6.9408375770450348e+01
+6.9457180834200059e+01
+6.9506002502599202e+01
+6.9554840773807030e+01
+6.9603695646471976e+01
+6.9652567120000739e+01
+6.9701455193865243e+01
+6.9750359867975206e+01
+6.9799281143991379e+01
+6.9848219024012351e+01
+6.9897173509908427e+01
+6.9946144600895622e+01
+6.9995132294477642e+01
+7.0044136588161592e+01
+7.0093157481371776e+01
+7.0142194976504143e+01
+7.0191249076210255e+01
+7.0240319782515712e+01
+7.0289407094942177e+01
+7.0338511012385311e+01
+7.0387631533710362e+01
+7.0436768657428630e+01
+7.0485922381823002e+01
+7.0535092705200938e+01
+7.0584279627568549e+01
+7.0633483151564775e+01
+7.0682703280055094e+01
+7.0731940014970661e+01
+7.0781193354505561e+01
+7.0830463295919557e+01
+7.0879749836741411e+01
+7.0929052977626910e+01
+7.0978372721249286e+01
+7.1027709070291962e+01
+7.1077062026039471e+01
+7.1126431587607726e+01
+7.1175817753926154e+01
+7.1225220523780806e+01
+7.1274639895384297e+01
+7.1324075866805899e+01
+7.1373528436390544e+01
+7.1422997605687769e+01
+7.1472483378314635e+01
+7.1521985757875342e+01
+7.1571504745134561e+01
+7.1621040336455664e+01
+7.1670592527823473e+01
+7.1720161316515558e+01
+7.1769746704980420e+01
+7.1819348696959338e+01
+7.1868967295896496e+01
+7.1918602501782928e+01
+7.1968254312381802e+01
+7.2017922725434460e+01
+7.2067607739601755e+01
+7.2117309354969763e+01
+7.2167027571747084e+01
+7.2216762390297234e+01
+7.2266513811603033e+01
+7.2316281836802105e+01
+7.2366066466930505e+01
+7.2415867701843183e+01
+7.2465685540633118e+01
+7.2515519982380070e+01
+7.2565371026135423e+01
+7.2615238670906507e+01
+7.2665122915696898e+01
+7.2715023760171491e+01
+7.2764941206640941e+01
+7.2814875258077308e+01
+7.2864825917118793e+01
+7.2914793182522445e+01
+7.2964777050541343e+01
+7.3014777517431511e+01
+7.3064794582130560e+01
+7.3114828247732518e+01
+7.3164878517688976e+01
+7.3214945394663118e+01
+7.3265028878164571e+01
+7.3315128966914486e+01
+7.3365245659603715e+01
+7.3415378954569988e+01
+7.3465528849923246e+01
+7.3515695343803927e+01
+7.3565878436409804e+01
+7.3616078131127608e+01
+7.3666294431618383e+01
+7.3716527340268385e+01
+7.3766776854364579e+01
+7.3817042969919200e+01
+7.3867325683315087e+01
+7.3917624995245205e+01
+7.3967940909183042e+01
+7.4018273428618613e+01
+7.4068622555251878e+01
+7.4118988288008140e+01
+7.4169370625574047e+01
+7.4219769566547868e+01
+7.4270185109174392e+01
+7.4320617251610059e+01
+7.4371065992273955e+01
+7.4421531332638182e+01
+7.4472013276144722e+01
+7.4522511826226776e+01
+7.4573026983825599e+01
+7.4623558746019853e+01
+7.4674107109555933e+01
+7.4724672072114188e+01
+7.4775253635110573e+01
+7.4825851800894981e+01
+7.4876466571673220e+01
+7.4927097947975739e+01
+7.4977745929252237e+01
+7.5028410514925085e+01
+7.5079091703866837e+01
+7.5129789494097594e+01
+7.5180503883564100e+01
+7.5231234871146810e+01
+7.5281982459460764e+01
+7.5332746652054695e+01
+7.5383527452139091e+01
+7.5434324858992539e+01
+7.5485138869356888e+01
+7.5535969479967093e+01
+7.5586816689678088e+01
+7.5637680500631092e+01
+7.5688560915249965e+01
+7.5739457935424923e+01
+7.5790371560911581e+01
+7.5841301790931894e+01
+7.5892248624681656e+01
+7.5943212061052265e+01
+7.5994192098738736e+01
+7.6045188736455600e+01
+7.6096201974282934e+01
+7.6147231814417381e+01
+7.6198278259237711e+01
+7.6249341310298533e+01
+7.6300420965857839e+01
+7.6351517223349447e+01
+7.6402630080444382e+01
+7.6453759537571344e+01
+7.6504905596938116e+01
+7.6556068260763851e+01
+7.6607247530169687e+01
+7.6658443404574712e+01
+7.6709655883251727e+01
+7.6760884965370465e+01
+7.6812130649689308e+01
+7.6863392934863697e+01
+7.6914671819736625e+01
+7.6965967305331503e+01
+7.7017279394078400e+01
+7.7068608088398463e+01
+7.7119953388770995e+01
+7.7171315292665341e+01
+7.7222693797291925e+01
+7.7274088900828986e+01
+7.7325500605325544e+01
+7.7376928913798523e+01
+7.7428373829018895e+01
+7.7479835350899336e+01
+7.7531313477508405e+01
+7.7582808206893304e+01
+7.7634319537663501e+01
+7.7685847469299901e+01
+7.7737392001358415e+01
+7.7788953133750084e+01
+7.7840530867806748e+01
+7.7892125205215265e+01
+7.7943736147550510e+01
+7.7995363695083327e+01
+7.8047007847243378e+01
+7.8098668603441268e+01
+7.8150345962786560e+01
+7.8202039923922243e+01
+7.8253750485451135e+01
+7.8305477646623871e+01
+7.8357221409282246e+01
+7.8408981775915834e+01
+7.8460758748752156e+01
+7.8512552326971530e+01
+7.8564362507788587e+01
+7.8616189288421268e+01
+7.8668032668254355e+01
+7.8719892650031213e+01
+7.8771769236784124e+01
+7.8823662430717945e+01
+7.8875572230727869e+01
+7.8927498634881687e+01
+7.8979441641312377e+01
+7.9031401248911678e+01
+7.9083377457060593e+01
+7.9135370265166301e+01
+7.9187379673711149e+01
+7.9239405684843817e+01
+7.9291448300856430e+01
+7.9343507523196507e+01
+7.9395583349933361e+01
+7.9447675778291739e+01
+7.9499784805782525e+01
+7.9551910433242725e+01
+7.9604052663655281e+01
+7.9656211500008538e+01
+7.9708386943476128e+01
+7.9760578992418729e+01
+7.9812787644954994e+01
+7.9865012899380432e+01
+7.9917254754697765e+01
+7.9969513210086518e+01
+8.0021788264917873e+01
+8.0074079920790894e+01
+8.0126388180741969e+01
+8.0178713047788037e+01
+8.0231054522338681e+01
+8.0283412600762347e+01
+8.0335787279079810e+01
+8.0388178554606228e+01
+8.0440586429834127e+01
+8.0493010908550460e+01
+8.0545451994251863e+01
+8.0597909687060650e+01
+8.0650383984922115e+01
+8.0702874885753445e+01
+8.0755382387961163e+01
+8.0807906490710266e+01
+8.0860447193230911e+01
+8.0913004495389600e+01
+8.0965578399597632e+01
+8.1018168908902538e+01
+8.1070776026006826e+01
+8.1123399749602086e+01
+8.1176040075792187e+01
+8.1228697000684434e+01
+8.1281370523178623e+01
+8.1334060646502863e+01
+8.1386767374257644e+01
+8.1439490709219001e+01
+8.1492230650865608e+01
+8.1544987197851682e+01
+8.1597760348801003e+01
+8.1650550101982375e+01
+8.1703356455435639e+01
+8.1756179407232565e+01
+8.1809018957586858e+01
+8.1861875110032301e+01
+8.1914747868388247e+01
+8.1967637235142050e+01
+8.2020543207452647e+01
+8.2073465781147021e+01
+8.2126404952442101e+01
+8.2179360722088646e+01
+8.2232333093762378e+01
+8.2285322071155150e+01
+8.2338327655998327e+01
+8.2391349846984568e+01
+8.2444388642545135e+01
+8.2497444041170141e+01
+8.2550516041585027e+01
+8.2603604642574155e+01
+8.2656709843112623e+01
+8.2709831644394626e+01
+8.2762970049045933e+01
+8.2816125059678583e+01
+8.2869296676648077e+01
+8.2922484896812307e+01
+8.2975689716728297e+01
+8.3028911134119355e+01
+8.3082149151373713e+01
+8.3135403772045919e+01
+8.3188674999436969e+01
+8.3241962833900487e+01
+8.3295267273888697e+01
+8.3348588317825559e+01
+8.3401925964341359e+01
+8.3455280212386199e+01
+8.3508651060937694e+01
+8.3562038509455107e+01
+8.3615442559324237e+01
+8.3668863212412504e+01
+8.3722300470471993e+01
+8.3775754333914080e+01
+8.3829224802284998e+01
+8.3882711875106168e+01
+8.3936215551267665e+01
+8.3989735828680949e+01
+8.4043272705173337e+01
+8.4096826179555165e+01
+8.4150396254568889e+01
+8.4203982933939940e+01
+8.4257586221037670e+01
+8.4311206115091295e+01
+8.4364842612659032e+01
+8.4418495710292120e+01
+8.4472165406791788e+01
+8.4525851704447120e+01
+8.4579554605847150e+01
+8.4633274113007573e+01
+8.4687010225650454e+01
+8.4740762942924505e+01
+8.4794532263952277e+01
+8.4848318187552081e+01
+8.4902120712346004e+01
+8.4955939836977052e+01
+8.5009775561541687e+01
+8.5063627888389107e+01
+8.5117496820062385e+01
+8.5171382358222587e+01
+8.5225284501002946e+01
+8.5279203245654770e+01
+8.5333138589683657e+01
+8.5387090533551984e+01
+8.5441059079629724e+01
+8.5495044230298873e+01
+8.5549045986755445e+01
+8.5603064348357279e+01
+8.5657099314303906e+01
+8.5711150883692213e+01
+8.5765219055207652e+01
+8.5819303827432890e+01
+8.5873405199149786e+01
+8.5927523171456244e+01
+8.5981657746944364e+01
+8.6035808928196701e+01
+8.6089976715726834e+01
+8.6144161106841509e+01
+8.6198362098571593e+01
+8.6252579688971196e+01
+8.6306813880187065e+01
+8.6361064675389258e+01
+8.6415332077492778e+01
+8.6469616086448355e+01
+8.6523916700294293e+01
+8.6578233917045168e+01
+8.6632567735204887e+01
+8.6686918154035808e+01
+8.6741285172865560e+01
+8.6795668791538944e+01
+8.6850069011969481e+01
+8.6904485836587710e+01
+8.6958919267559651e+01
+8.7013369303974287e+01
+8.7067835942935474e+01
+8.7122319181551546e+01
+8.7176819019185160e+01
+8.7231335458693223e+01
+8.7285868503233146e+01
+8.7340418155112204e+01
+8.7394984413236713e+01
+8.7449567275662886e+01
+8.7504166740499386e+01
+8.7558782806466652e+01
+8.7613415472679719e+01
+8.7668064738285310e+01
+8.7722730603935162e+01
+8.7777413072613868e+01
+8.7832112147506706e+01
+8.7886827830587663e+01
+8.7941560118985677e+01
+8.7996309008618411e+01
+8.8051074495789621e+01
+8.8105856581291292e+01
+8.8160655268810956e+01
+8.8215470562052531e+01
+8.8270302462801055e+01
+8.8325150969867394e+01
+8.8380016081806517e+01
+8.8434897797105634e+01
+8.8489796113980603e+01
+8.8544711030579478e+01
+8.8599642545305741e+01
+8.8654590659532559e+01
+8.8709555376549019e+01
+8.8764536699643244e+01
+8.8819534630135578e+01
+8.8874549166296120e+01
+8.8929580306132578e+01
+8.8984628047838100e+01
+8.9039692390347511e+01
+8.9094773332781116e+01
+8.9149870874461030e+01
+8.9204985017055748e+01
+8.9260115763747592e+01
+8.9315263117698962e+01
+8.9370427079363054e+01
+8.9425607644994059e+01
+8.9480804810484884e+01
+8.9536018573037893e+01
+8.9591248935093219e+01
+8.9646495900400410e+01
+8.9701759472454142e+01
+8.9757039651785917e+01
+8.9812336437015489e+01
+8.9867649826726989e+01
+8.9922979819276151e+01
+8.9978326412664558e+01
+9.0033689604863440e+01
+9.0089069394842809e+01
+9.0144465785567803e+01
+9.0199878781002369e+01
+9.0255308384701166e+01
+9.0310754595460779e+01
+9.0366217409008087e+01
+9.0421696821069119e+01
+9.0477192830387224e+01
+9.0532705440382699e+01
+9.0588234654878178e+01
+9.0643780476817810e+01
+9.0699342905632335e+01
+9.0754921939874109e+01
+9.0810517578069209e+01
+9.0866129818438580e+01
+9.0921758659006287e+01
+9.0977404097828725e+01
+9.1033066135095794e+01
+9.1088744774304487e+01
+9.1144440019236271e+01
+9.1200151872441609e+01
+9.1255880331546919e+01
+9.1311625392947690e+01
+9.1367387053351095e+01
+9.1423165313087353e+01
+9.1478960174824209e+01
+9.1534771641246067e+01
+9.1590599713699874e+01
+9.1646444391459539e+01
+9.1702305673620643e+01
+9.1758183559190186e+01
+9.1814078046820839e+01
+9.1869989135076551e+01
+9.1925916822723948e+01
+9.1981861110884196e+01
+9.2037822002197530e+01
+9.2093799499295201e+01
+9.2149793602752851e+01
+9.2205804309959802e+01
+9.2261831618031280e+01
+9.2317875524984032e+01
+9.2373936032440710e+01
+9.2430013142925532e+01
+9.2486106858795821e+01
+9.2542217180469081e+01
+9.2598344107111458e+01
+9.2654487637864435e+01
+9.2710647771640893e+01
+9.2766824506999427e+01
+9.2823017842468190e+01
+9.2879227777277237e+01
+9.2935454313464462e+01
+9.2991697453769646e+01
+9.3047957200643893e+01
+9.3104233553182127e+01
+9.3160526508313808e+01
+9.3216836062971993e+01
+9.3273162216461586e+01
+9.3329504971763924e+01
+9.3385864332176624e+01
+9.3442240300103137e+01
+9.3498632874370301e+01
+9.3555042052910807e+01
+9.3611467833727104e+01
+9.3667910215632602e+01
+9.3724369197963924e+01
+9.3780844780084422e+01
+9.3837336962446003e+01
+9.3893845747187555e+01
+9.3950371136593091e+01
+9.4006913132222437e+01
+9.4063471732738634e+01
+9.4120046936080513e+01
+9.4176638740345595e+01
+9.4233247145476341e+01
+9.4289872152605497e+01
+9.4346513762882523e+01
+9.4403171977269579e+01
+9.4459846796438399e+01
+9.4516538221035802e+01
+9.4573246251116529e+01
+9.4629970884366841e+01
+9.4686712117880873e+01
+9.4743469949078772e+01
+9.4800244379169882e+01
+9.4857035411808283e+01
+9.4913843050652517e+01
+9.4970667297187632e+01
+9.5027508149529694e+01
+9.5084365605504829e+01
+9.5141239663192025e+01
+9.5198130321681049e+01
+9.5255037580314422e+01
+9.5311961438584163e+01
+9.5368901897720420e+01
+9.5425858960074692e+01
+9.5482832627988103e+01
+9.5539822902057253e+01
+9.5596829780174588e+01
+9.5653853260000048e+01
+9.5710893339936632e+01
+9.5767950021360392e+01
+9.5825023306390534e+01
+9.5882113196979503e+01
+9.5939219693141112e+01
+9.5996342793638419e+01
+9.6053482497214318e+01
+9.6110638802653284e+01
+9.6167811708804194e+01
+9.6225001214521470e+01
+9.6282207319414923e+01
+9.6339430026116048e+01
+9.6396669338011648e+01
+9.6453925258110999e+01
+9.6511197785033957e+01
+9.6568486914568410e+01
+9.6625792642505317e+01
+9.6683114967650113e+01
+9.6740453893480719e+01
+9.6797809423876998e+01
+9.6855181561825205e+01
+9.6912570306737123e+01
+9.6969975657131030e+01
+9.7027397611497960e+01
+9.7084836168014476e+01
+9.7142291324654067e+01
+9.7199763079423406e+01
+9.7257251432521088e+01
+9.7314756387543184e+01
+9.7372277948378070e+01
+9.7429816117645757e+01
+9.7487370892892997e+01
+9.7544942270398195e+01
+9.7602530246762285e+01
+9.7660134822334598e+01
+9.7717755999883039e+01
+9.7775393782192651e+01
+9.7833048170662764e+01
+9.7890719164544777e+01
+9.7948406762905364e+01
+9.8006110964708114e+01
+9.8063831768504429e+01
+9.8121569172742696e+01
+9.8179323176097412e+01
+9.8237093779871657e+01
+9.8294880987064445e+01
+9.8352684800659858e+01
+9.8410505221055644e+01
+9.8468342244640667e+01
+9.8526195867458910e+01
+9.8584066086974943e+01
+9.8641952906335803e+01
+9.8699856330109100e+01
+9.8757776362496784e+01
+9.8815713003449773e+01
+9.8873666250176342e+01
+9.8931636099853122e+01
+9.8989622550494673e+01
+9.9047625601414722e+01
+9.9105645252038698e+01
+9.9163681502325019e+01
+9.9221734354364074e+01
+9.9279803810779214e+01
+9.9337889873902384e+01
+9.9395992542677561e+01
+9.9454111813862980e+01
+9.9512247684224377e+01
+9.9570400153164243e+01
+9.9628569224171827e+01
+9.9686754901088051e+01
+9.9744957186208865e+01
+9.9803176075650285e+01
+9.9861411563983339e+01
+9.9919663646485617e+01
+9.9977932326648371e+01
+1.0003621761326197e+02
+1.0009451951508893e+02
+1.0015283803392275e+02
+1.0021117316075483e+02
+1.0026952488564743e+02
+1.0032789320171773e+02
+1.0038627811430325e+02
+1.0044467963179653e+02
+1.0050309776160383e+02
+1.0056153249966536e+02
+1.0061998383452395e+02
+1.0067845175477908e+02
+1.0073693625982497e+02
+1.0079543736578779e+02
+1.0085395509023301e+02
+1.0091248944480562e+02
+1.0097104041746833e+02
+1.0102960799026349e+02
+1.0108819214678850e+02
+1.0114679288871928e+02
+1.0120541022939521e+02
+1.0126404418219478e+02
+1.0132269475117344e+02
+1.0138136192593619e+02
+1.0144004569484490e+02
+1.0149874605030965e+02
+1.0155746300093313e+02
+1.0161619655936610e+02
+1.0167494673710388e+02
+1.0173371353220871e+02
+1.0179249693407633e+02
+1.0185129693206331e+02
+1.0191011352184317e+02
+1.0196894670888074e+02
+1.0202779649948303e+02
+1.0208666289779752e+02
+1.0214554589933337e+02
+1.0220444549744016e+02
+1.0226336168641173e+02
+1.0232229447152068e+02
+1.0238124386512253e+02
+1.0244020987952106e+02
+1.0249919251683309e+02
+1.0255819176338562e+02
+1.0261720760414741e+02
+1.0267624002843378e+02
+1.0273528904294642e+02
+1.0279435465873354e+02
+1.0285343688607269e+02
+1.0291253572628149e+02
+1.0297165117489692e+02
+1.0303078322738031e+02
+1.0308993188042925e+02
+1.0314909713265754e+02
+1.0320827898284382e+02
+1.0326747743024744e+02
+1.0332669247605062e+02
+1.0338592412191629e+02
+1.0344517236974933e+02
+1.0350443722426735e+02
+1.0356371869200268e+02
+1.0362301677937887e+02
+1.0368233148448687e+02
+1.0374166279250180e+02
+1.0380101068748777e+02
+1.0386037515900205e+02
+1.0391975621857432e+02
+1.0397915388322748e+02
+1.0403856816855090e+02
+1.0409799907346965e+02
+1.0415744658615770e+02
+1.0421691069472749e+02
+1.0427639139435095e+02
+1.0433588869114254e+02
+1.0439540259215798e+02
+1.0445493310256961e+02
+1.0451448022001641e+02
+1.0457404394025400e+02
+1.0463362425952805e+02
+1.0469322117978112e+02
+1.0475283470663125e+02
+1.0481246484566095e+02
+1.0487211159664879e+02
+1.0493177495037716e+02
+1.0499145489685448e+02
+1.0505115142935418e+02
+1.0511086455420903e+02
+1.0517059428101669e+02
+1.0523034061871805e+02
+1.0529010356861885e+02
+1.0534988312709905e+02
+1.0540967929048526e+02
+1.0546949205683254e+02
+1.0552932142687497e+02
+1.0558916740157720e+02
+1.0564902998100651e+02
+1.0570890916164180e+02
+1.0576880493906475e+02
+1.0582871730952117e+02
+1.0588864627697666e+02
+1.0594859185037747e+02
+1.0600855403864877e+02
+1.0606853284447267e+02
+1.0612852826085454e+02
+1.0618854027996731e+02
+1.0624856889502438e+02
+1.0630861410340056e+02
+1.0636867590351116e+02
+1.0642875429433863e+02
+1.0648884928145829e+02
+1.0654896087469893e+02
+1.0660908908383809e+02
+1.0666923391132148e+02
+1.0672939534823067e+02
+1.0678957338466959e+02
+1.0684976801336565e+02
+1.0690997923753977e+02
+1.0697020706303645e+02
+1.0703045149533433e+02
+1.0709071253566184e+02
+1.0715099018250513e+02
+1.0721128443429023e+02
+1.0727159528857631e+02
+1.0733192274157896e+02
+1.0739226678939815e+02
+1.0745262743037442e+02
+1.0751300467181035e+02
+1.0757339852324907e+02
+1.0763380899324574e+02
+1.0769423607886986e+02
+1.0775467976978108e+02
+1.0781514005563261e+02
+1.0787561693310575e+02
+1.0793611040977524e+02
+1.0799662049415295e+02
+1.0805714719138523e+02
+1.0811769049315639e+02
+1.0817825038778527e+02
+1.0823882686504159e+02
+1.0829941993156174e+02
+1.0836002960486370e+02
+1.0842065590242595e+02
+1.0848129882847034e+02
+1.0854195836667087e+02
+1.0860263449893398e+02
+1.0866332721245571e+02
+1.0872403651559046e+02
+1.0878476242198218e+02
+1.0884550494402609e+02
+1.0890626407960040e+02
+1.0896703981721757e+02
+1.0902783214538249e+02
+1.0908864106150988e+02
+1.0914946657682505e+02
+1.0921030870374128e+02
+1.0927116745094585e+02
+1.0933204281222221e+02
+1.0939293477762783e+02
+1.0945384333788986e+02
+1.0951476849152094e+02
+1.0957571024205654e+02
+1.0963666859311198e+02
+1.0969764354807170e+02
+1.0975863510996199e+02
+1.0981964328177853e+02
+1.0988066806486370e+02
+1.0994170945394718e+02
+1.1000276744210542e+02
+1.1006384202296229e+02
+1.1012493319650527e+02
+1.1018604096682743e+02
+1.1024716533807768e+02
+1.1030830631365062e+02
+1.1036946389577164e+02
+1.1043063808656545e+02
+1.1049182888714292e+02
+1.1055303629455905e+02
+1.1061426030485488e+02
+1.1067550091451396e+02
+1.1073675812516376e+02
+1.1079803194175047e+02
+1.1085932236919945e+02
+1.1092062940786901e+02
+1.1098195305103856e+02
+1.1104329329137853e+02
+1.1110465012340767e+02
+1.1116602354903760e+02
+1.1122741357202837e+02
+1.1128882019615757e+02
+1.1135024342540787e+02
+1.1141168326389422e+02
+1.1147313971563744e+02
+1.1153461277887887e+02
+1.1159610244290154e+02
+1.1165760869621789e+02
+1.1171913153206900e+02
+1.1178067096261043e+02
+1.1184222700472620e+02
+1.1190379967373129e+02
+1.1196538896669868e+02
+1.1202699486893238e+02
+1.1208861736566861e+02
+1.1215025644984742e+02
+1.1221191212634970e+02
+1.1227358440108353e+02
+1.1233527327948357e+02
+1.1239697876509092e+02
+1.1245870086097325e+02
+1.1252043956958252e+02
+1.1258219488621448e+02
+1.1264396680154782e+02
+1.1270575530630114e+02
+1.1276756039820617e+02
+1.1282938208586494e+02
+1.1289122037881454e+02
+1.1295307528437691e+02
+1.1301494680101325e+02
+1.1307683492496957e+02
+1.1313873965273075e+02
+1.1320066098355829e+02
+1.1326259891850498e+02
+1.1332455345861607e+02
+1.1338652460268813e+02
+1.1344851234603225e+02
+1.1351051668365974e+02
+1.1357253761332865e+02
+1.1363457514378416e+02
+1.1369662928651823e+02
+1.1375870005181399e+02
+1.1382078743590176e+02
+1.1388289142594569e+02
+1.1394501200906117e+02
+1.1400714917851924e+02
+1.1406930293713172e+02
+1.1413147328853120e+02
+1.1419366023696151e+02
+1.1425586378911159e+02
+1.1431808395228161e+02
+1.1438032073295278e+02
+1.1444257412808535e+02
+1.1450484412849707e+02
+1.1456713072499952e+02
+1.1462943391417532e+02
+1.1469175370155260e+02
+1.1475409009342890e+02
+1.1481644309436332e+02
+1.1487881270196114e+02
+1.1494119891208913e+02
+1.1500360172110425e+02
+1.1506602113106113e+02
+1.1512845714769040e+02
+1.1519090977668549e+02
+1.1525337901783497e+02
+1.1531586486177459e+02
+1.1537836729835290e+02
+1.1544088632073088e+02
+1.1550342193531948e+02
+1.1556597415184206e+02
+1.1562854297936191e+02
+1.1569112841926875e+02
+1.1575373046800156e+02
+1.1581634912194181e+02
+1.1587898437896980e+02
+1.1594163623928910e+02
+1.1600430470330311e+02
+1.1606698977094239e+02
+1.1612969144024665e+02
+1.1619240970878279e+02
+1.1625514457433917e+02
+1.1631789603727842e+02
+1.1638066409962403e+02
+1.1644344876342375e+02
+1.1650625003052058e+02
+1.1656906790244025e+02
+1.1663190238068117e+02
+1.1669475346664090e+02
+1.1675762116131335e+02
+1.1682050546559172e+02
+1.1688340637985402e+02
+1.1694632389849006e+02
+1.1700925801202632e+02
+1.1707220871108608e+02
+1.1713517599596435e+02
+1.1719815988194736e+02
+1.1726116038561095e+02
+1.1732417751820097e+02
+1.1738721126964366e+02
+1.1745026162453516e+02
+1.1751332856841368e+02
+1.1757641209776698e+02
+1.1763951221614711e+02
+1.1770262892726110e+02
+1.1776576223705008e+02
+1.1782891215491807e+02
+1.1789207869056699e+02
+1.1795526184965439e+02
+1.1801846162166053e+02
+1.1808167799202135e+02
+1.1814491094746742e+02
+1.1820816048977916e+02
+1.1827142663044675e+02
+1.1833470938100801e+02
+1.1839800874615079e+02
+1.1846132471994551e+02
+1.1852465729554928e+02
+1.1858800646837813e+02
+1.1865137224288395e+02
+1.1871475462577762e+02
+1.1877815362289616e+02
+1.1884156922991860e+02
+1.1890500143597026e+02
+1.1896845023023710e+02
+1.1903191561209094e+02
+1.1909539759669180e+02
+1.1915889620055781e+02
+1.1922241143398735e+02
+1.1928594328239996e+02
+1.1934949172499549e+02
+1.1941305674283761e+02
+1.1947663833865758e+02
+1.1954023652916563e+02
+1.1960385133110549e+02
+1.1966748274926239e+02
+1.1973113076988555e+02
+1.1979479537762968e+02
+1.1985847656441339e+02
+1.1992217435121074e+02
+1.1998588876625963e+02
+1.2004961983462444e+02
+1.2011336754447619e+02
+1.2017713186018369e+02
+1.2024091274609677e+02
+1.2030471018922583e+02
+1.2036852421170487e+02
+1.2043235483868942e+02
+1.2049620208793323e+02
+1.2056006594758323e+02
+1.2062394639838463e+02
+1.2068784342379466e+02
+1.2075175703879778e+02
+1.2081568727871864e+02
+1.2087963417872014e+02
+1.2094359774391803e+02
+1.2100757793285499e+02
+1.2107157470006717e+02
+1.2113558801146128e+02
+1.2119961787842509e+02
+1.2126366432371665e+02
+1.2132772736896661e+02
+1.2139180702269962e+02
+1.2145590328498494e+02
+1.2152001615581258e+02
+1.2158414563887645e+02
+1.2164829174361140e+02
+1.2171245447994617e+02
+1.2177663385176305e+02
+1.2184082983875901e+02
+1.2190504241458453e+02
+1.2196927155519487e+02
+1.2203351726333773e+02
+1.2209777955904622e+02
+1.2216205846245880e+02
+1.2222635398275017e+02
+1.2229066611210109e+02
+1.2235499484123052e+02
+1.2241934016520474e+02
+1.2248370209647945e+02
+1.2254808065185755e+02
+1.2261247584591580e+02
+1.2267688766735006e+02
+1.2274131608815880e+02
+1.2280576108036543e+02
+1.2287022263419092e+02
+1.2293470076806226e+02
+1.2299919550283275e+02
+1.2306370685432651e+02
+1.2312823481825112e+02
+1.2319277938528498e+02
+1.2325734054737822e+02
+1.2332191831126626e+02
+1.2338651269322325e+02
+1.2345112370941671e+02
+1.2351575136007511e+02
+1.2358039562072130e+02
+1.2364505646475291e+02
+1.2370973387236766e+02
+1.2377442785096383e+02
+1.2383913841473975e+02
+1.2390386557797184e+02
+1.2396860935584333e+02
+1.2403336976412272e+02
+1.2409814681829840e+02
+1.2416294051646510e+02
+1.2422775082975748e+02
+1.2429257772699101e+02
+1.2435742118496958e+02
+1.2442228121245039e+02
+1.2448715782617890e+02
+1.2455205104178184e+02
+1.2461696086187989e+02
+1.2468188728070292e+02
+1.2474683029251979e+02
+1.2481178990234206e+02
+1.2487676613183210e+02
+1.2494175900408466e+02
+1.2500676853164794e+02
+1.2507179468488391e+02
+1.2513683742360794e+02
+1.2520189671104768e+02
+1.2526697255009893e+02
+1.2533206496924963e+02
+1.2539717399715542e+02
+1.2546229964693734e+02
+1.2552744190763818e+02
+1.2559260076622945e+02
+1.2565777621572063e+02
+1.2572296827327322e+02
+1.2578817696208677e+02
+1.2585340230256932e+02
+1.2591864428267806e+02
+1.2598390286943408e+02
+1.2604917802982179e+02
+1.2611446974956486e+02
+1.2617977804343236e+02
+1.2624510292869203e+02
+1.2631044441881021e+02
+1.2637580251204767e+02
+1.2644117720286387e+02
+1.2650656848703355e+02
+1.2657197637562194e+02
+1.2663740088955919e+02
+1.2670284204961062e+02
+1.2676829985678872e+02
+1.2683377428148887e+02
+1.2689926529147263e+02
+1.2696477286232469e+02
+1.2703029700092178e+02
+1.2709583772196355e+02
+1.2716139503961141e+02
+1.2722696896176922e+02
+1.2729255949230379e+02
+1.2735816663500663e+02
+1.2742379039318875e+02
+1.2748943076941651e+02
+1.2755508776619222e+02
+1.2762076138299248e+02
+1.2768645160719106e+02
+1.2775215842313608e+02
+1.2781788181670073e+02
+1.2788362179148740e+02
+1.2794937836253656e+02
+1.2801515154489422e+02
+1.2808094134250038e+02
+1.2814674774208055e+02
+1.2821257072887951e+02
+1.2827841029519951e+02
+1.2834426646157294e+02
+1.2841013925558954e+02
+1.2847602870187237e+02
+1.2854193479055417e+02
+1.2860785748951577e+02
+1.2867379676652064e+02
+1.2873975260454387e+02
+1.2880572501013816e+02
+1.2887171399188458e+02
+1.2893771956174069e+02
+1.2900374174517083e+02
+1.2906978057101591e+02
+1.2913583606449444e+02
+1.2920190820871480e+02
+1.2926799695961745e+02
+1.2933410227310543e+02
+1.2940022413000605e+02
+1.2946636254977909e+02
+1.2953251755520753e+02
+1.2959868916533941e+02
+1.2966487738428305e+02
+1.2973108221241193e+02
+1.2979730365048221e+02
+1.2986354170369898e+02
+1.2992979638013756e+02
+1.2999606768775948e+02
+1.3006235562482263e+02
+1.3012866017454448e+02
+1.3019498131884856e+02
+1.3026131904304489e+02
+1.3032767334598915e+02
+1.3039404422992328e+02
+1.3046043169735682e+02
+1.3052683575390898e+02
+1.3059325640720522e+02
+1.3065969366495406e+02
+1.3072614753785072e+02
+1.3079261804121950e+02
+1.3085910519078277e+02
+1.3092560899307580e+02
+1.3099212941788454e+02
+1.3105866642580764e+02
+1.3112521998092174e+02
+1.3119179008773483e+02
+1.3125837677683967e+02
+1.3132498007894131e+02
+1.3139160000540102e+02
+1.3145823653759757e+02
+1.3152488965433048e+02
+1.3159155934419508e+02
+1.3165824563496994e+02
+1.3172494856422949e+02
+1.3179166816526336e+02
+1.3185840442155072e+02
+1.3192515728443479e+02
+1.3199192670522328e+02
+1.3205871266523027e+02
+1.3212551519227966e+02
+1.3219233431819598e+02
+1.3225917006709298e+02
+1.3232602243224082e+02
+1.3239289139919873e+02
+1.3245977695551991e+02
+1.3252667911193831e+02
+1.3259359789414319e+02
+1.3266053332765580e+02
+1.3272748541296440e+02
+1.3279445411175590e+02
+1.3286143938237942e+02
+1.3292844119498909e+02
+1.3299545956695951e+02
+1.3306249452747025e+02
+1.3312954610370457e+02
+1.3319661429963946e+02
+1.3326369910428002e+02
+1.3333080050654871e+02
+1.3339791850538381e+02
+1.3346505311524805e+02
+1.3353220435193958e+02
+1.3359937222523558e+02
+1.3366655672082865e+02
+1.3373375781839036e+02
+1.3380097549871053e+02
+1.3386820975557805e+02
+1.3393546059116832e+02
+1.3400272800794559e+02
+1.3407001201731208e+02
+1.3413731264452409e+02
+1.3420462991602966e+02
+1.3427196384654059e+02
+1.3433931440382372e+02
+1.3440668154390963e+02
+1.3447406522684670e+02
+1.3454146545939165e+02
+1.3460888227843535e+02
+1.3467631572098387e+02
+1.3474376580082196e+02
+1.3481123249574134e+02
+1.3487871578043766e+02
+1.3494621563906131e+02
+1.3501373209358201e+02
+1.3508126517542428e+02
+1.3514881491267826e+02
+1.3521638129467090e+02
+1.3528396428572066e+02
+1.3535156385005587e+02
+1.3541917997150324e+02
+1.3548681266426675e+02
+1.3555446194516350e+02
+1.3562212782832202e+02
+1.3568981031711689e+02
+1.3575750941223413e+02
+1.3582522511495989e+02
+1.3589295743355694e+02
+1.3596070638078896e+02
+1.3602847196919211e+02
+1.3609625419314443e+02
+1.3616405301887889e+02
+1.3623186841020731e+02
+1.3629970034288078e+02
+1.3636754884040738e+02
+1.3643541393823432e+02
+1.3650329566882442e+02
+1.3657119402994661e+02
+1.3663910899698669e+02
+1.3670704054530989e+02
+1.3677498867142532e+02
+1.3684295340461554e+02
+1.3691093477698232e+02
+1.3697893280880891e+02
+1.3704694747310452e+02
+1.3711497873105975e+02
+1.3718302654708319e+02
+1.3725109092299218e+02
+1.3731917188473861e+02
+1.3738726945840145e+02
+1.3745538365354466e+02
+1.3752351445413385e+02
+1.3759166184193279e+02
+1.3765982580680978e+02
+1.3772800637105112e+02
+1.3779620356504776e+02
+1.3786441741578565e+02
+1.3793264791066824e+02
+1.3800089501156157e+02
+1.3806915868030933e+02
+1.3813743890294410e+02
+1.3820573570299126e+02
+1.3827404910720114e+02
+1.3834237913454692e+02
+1.3841072577289199e+02
+1.3847908900232247e+02
+1.3854746880572037e+02
+1.3861586519847140e+02
+1.3868427821693140e+02
+1.3875270789729657e+02
+1.3882115424521228e+02
+1.3888961721896993e+02
+1.3895809677278740e+02
+1.3902659287128159e+02
+1.3909510552066484e+02
+1.3916363473754862e+02
+1.3923218053910773e+02
+1.3930074294906805e+02
+1.3936932199538182e+02
+1.3943791770560580e+02
+1.3950653007934076e+02
+1.3957515907285557e+02
+1.3964380463869156e+02
+1.3971246674259396e+02
+1.3978114540312302e+02
+1.3984984065204253e+02
+1.3991855251882720e+02
+1.3998728100633951e+02
+1.4005602610027276e+02
+1.4012478778628849e+02
+1.4019356606530749e+02
+1.4026236096190257e+02
+1.4033117250268111e+02
+1.4040000070267666e+02
+1.4046884553062748e+02
+1.4053770694369794e+02
+1.4060658490267744e+02
+1.4067547941049713e+02
+1.4074439049727616e+02
+1.4081331819330981e+02
+1.4088226251227712e+02
+1.4095122344210176e+02
+1.4102020096849199e+02
+1.4108919508397048e+02
+1.4115820580831758e+02
+1.4122723316812815e+02
+1.4129627718656386e+02
+1.4136533784687430e+02
+1.4143441510655958e+02
+1.4150350892314475e+02
+1.4157261928140412e+02
+1.4164174620834820e+02
+1.4171088973462071e+02
+1.4178004988337028e+02
+1.4184922664776536e+02
+1.4191842001347931e+02
+1.4198762996820972e+02
+1.4205685652318499e+02
+1.4212609970481492e+02
+1.4219535953933206e+02
+1.4226463602716510e+02
+1.4233392912874632e+02
+1.4240323880106743e+02
+1.4247256501338447e+02
+1.4254190778401076e+02
+1.4261126714352389e+02
+1.4268064312030867e+02
+1.4275003571725935e+02
+1.4281944492082465e+02
+1.4288887071741715e+02
+1.4295831310772684e+02
+1.4302777211457413e+02
+1.4309724776268297e+02
+1.4316674006672392e+02
+1.4323624900115340e+02
+1.4330577453037432e+02
+1.4337531662147367e+02
+1.4344487527274168e+02
+1.4351445050259943e+02
+1.4358404232964963e+02
+1.4365365076325341e+02
+1.4372327579844745e+02
+1.4379291742903638e+02
+1.4386257565356152e+02
+1.4393225048951109e+02
+1.4400194195911007e+02
+1.4407165008185268e+02
+1.4414137484548777e+02
+1.4421111621728315e+02
+1.4428087416443640e+02
+1.4435064867041177e+02
+1.4442043974388670e+02
+1.4449024739570754e+02
+1.4456007163875944e+02
+1.4462991249408336e+02
+1.4469976998475920e+02
+1.4476964413088922e+02
+1.4483953491796106e+02
+1.4490944230913018e+02
+1.4497936626757209e+02
+1.4504930677999752e+02
+1.4511926386959638e+02
+1.4518923756269658e+02
+1.4525922787817393e+02
+1.4532923480509521e+02
+1.4539925832507521e+02
+1.4546929842216807e+02
+1.4553935510878628e+02
+1.4560942841563815e+02
+1.4567951837330116e+02
+1.4574962498621443e+02
+1.4581974821830221e+02
+1.4588988803000370e+02
+1.4596004439292756e+02
+1.4603021732336057e+02
+1.4610040684875881e+02
+1.4617061299421539e+02
+1.4624083575735230e+02
+1.4631107511806832e+02
+1.4638133105632693e+02
+1.4645160357369403e+02
+1.4652189270521959e+02
+1.4659219848883387e+02
+1.4666252094800208e+02
+1.4673286004832900e+02
+1.4680321574095424e+02
+1.4687358798066595e+02
+1.4694397676466639e+02
+1.4701438211752171e+02
+1.4708480406409225e+02
+1.4715524261952504e+02
+1.4722569778391144e+02
+1.4729616955604766e+02
+1.4736665793696272e+02
+1.4743716293661660e+02
+1.4750768456720203e+02
+1.4757822283884070e+02
+1.4764877773757877e+02
+1.4771934923392945e+02
+1.4778993729847033e+02
+1.4786054192116080e+02
+1.4793116312200198e+02
+1.4800180092357922e+02
+1.4807245534297806e+02
+1.4814312637528460e+02
+1.4821381401008509e+02
+1.4828451823842170e+02
+1.4835523906826231e+02
+1.4842597651849465e+02
+1.4849673060787498e+02
+1.4856750133636146e+02
+1.4863828867477466e+02
+1.4870909259142874e+02
+1.4877991306377803e+02
+1.4885075010583719e+02
+1.4892160374076093e+02
+1.4899247399003747e+02
+1.4906336085578096e+02
+1.4913426432760633e+02
+1.4920518439510414e+02
+1.4927612105890668e+02
+1.4934707433676058e+02
+1.4941804424788492e+02
+1.4948903080297126e+02
+1.4956003397860113e+02
+1.4963105374282853e+02
+1.4970209006645703e+02
+1.4977314295225284e+02
+1.4984421242360324e+02
+1.4991529850401568e+02
+1.4998640120358584e+02
+1.5005752051162131e+02
+1.5012865641564122e+02
+1.5019980890961028e+02
+1.5027097801327506e+02
+1.5034216375282750e+02
+1.5041336615111229e+02
+1.5048458519206036e+02
+1.5055582083449698e+02
+1.5062707303722536e+02
+1.5069834178283585e+02
+1.5076962709078853e+02
+1.5084092898371526e+02
+1.5091224748346244e+02
+1.5098358260873630e+02
+1.5105493437745778e+02
+1.5112630280451458e+02
+1.5119768786953225e+02
+1.5126908952938649e+02
+1.5134050774107882e+02
+1.5141194249191133e+02
+1.5148339381615156e+02
+1.5155486175210714e+02
+1.5162634632727537e+02
+1.5169784752591238e+02
+1.5176936532146388e+02
+1.5184089969044052e+02
+1.5191245064498199e+02
+1.5198401822021441e+02
+1.5205560245112952e+02
+1.5212720334167398e+02
+1.5219882084767420e+02
+1.5227045492081712e+02
+1.5234210552744906e+02
+1.5241377269255338e+02
+1.5248545645577261e+02
+1.5255715685346172e+02
+1.5262887388376029e+02
+1.5270060752015249e+02
+1.5277235773609800e+02
+1.5284412452823832e+02
+1.5291590792914687e+02
+1.5298770797448788e+02
+1.5305952468591451e+02
+1.5313135802903471e+02
+1.5320320795544509e+02
+1.5327507442108492e+02
+1.5334695743237594e+02
+1.5341885702830930e+02
+1.5349077324801291e+02
+1.5356270610625222e+02
+1.5363465558003097e+02
+1.5370662164310454e+02
+1.5377860427910980e+02
+1.5385060351120975e+02
+1.5392261937244888e+02
+1.5399465189234118e+02
+1.5406670105935831e+02
+1.5413876683549287e+02
+1.5421084918264583e+02
+1.5428294808370688e+02
+1.5435506355409782e+02
+1.5442719561203899e+02
+1.5449934427281605e+02
+1.5457150953997649e+02
+1.5464369141413323e+02
+1.5471588989644812e+02
+1.5478810499446379e+02
+1.5486033671983972e+02
+1.5493258508405575e+02
+1.5500485008369870e+02
+1.5507713169227154e+02
+1.5514942988129141e+02
+1.5522174462961564e+02
+1.5529407594546231e+02
+1.5536642384438971e+02
+1.5543878834125951e+02
+1.5551116944283572e+02
+1.5558356715065807e+02
+1.5565598146623839e+02
+1.5572841239463602e+02
+1.5580085994640891e+02
+1.5587332413258812e+02
+1.5594580495797004e+02
+1.5601830240241233e+02
+1.5609081643953780e+02
+1.5616334704464316e+02
+1.5623589421248303e+02
+1.5630845795036555e+02
+1.5638103826595713e+02
+1.5645363517586887e+02
+1.5652624871057625e+02
+1.5659887890174721e+02
+1.5667152576742660e+02
+1.5674418927116596e+02
+1.5681686936289361e+02
+1.5688956599663126e+02
+1.5696227917398835e+02
+1.5703500892727567e+02
+1.5710775528903088e+02
+1.5718051827469424e+02
+1.5725329787320536e+02
+1.5732609407122416e+02
+1.5739890686105696e+02
+1.5747173625759498e+02
+1.5754458228137594e+02
+1.5761744495028691e+02
+1.5769032425140296e+02
+1.5776322015192014e+02
+1.5783613261905899e+02
+1.5790906164138346e+02
+1.5798200724053950e+02
+1.5805496944101898e+02
+1.5812794826106563e+02
+1.5820094369393146e+02
+1.5827395572662036e+02
+1.5834698434813575e+02
+1.5842002957072435e+02
+1.5849309142162849e+02
+1.5856616992789338e+02
+1.5863926508973736e+02
+1.5871237686579695e+02
+1.5878550521113181e+02
+1.5885865009363206e+02
+1.5893181153251010e+02
+1.5900498955980879e+02
+1.5907818420524595e+02
+1.5915139547151179e+02
+1.5922462334385941e+02
+1.5929786780751755e+02
+1.5937112886369454e+02
+1.5944440653836725e+02
+1.5951770085964313e+02
+1.5959101184341151e+02
+1.5966433945668862e+02
+1.5973768365427250e+02
+1.5981104439478139e+02
+1.5988442168124479e+02
+1.5995781554534418e+02
+1.6003122601894714e+02
+1.6010465311642386e+02
+1.6017809682502360e+02
+1.6025155712966270e+02
+1.6032503402246735e+02
+1.6039852752440319e+02
+1.6047203766364586e+02
+1.6054556446474396e+02
+1.6061910791008245e+02
+1.6069266795484390e+02
+1.6076624455423456e+02
+1.6083983769209888e+02
+1.6091344739667016e+02
+1.6098707369999994e+02
+1.6106071662639346e+02
+1.6113437616916997e+02
+1.6120805231390221e+02
+1.6128174504814257e+02
+1.6135545438245455e+02
+1.6142918034224797e+02
+1.6150292295280136e+02
+1.6157668221666970e+02
+1.6165045810118644e+02
+1.6172425057065524e+02
+1.6179805959735529e+02
+1.6187188518546799e+02
+1.6194572734715027e+02
+1.6201958609511104e+02
+1.6209346144847603e+02
+1.6216735343051067e+02
+1.6224126206417918e+02
+1.6231518735022115e+02
+1.6238912925492815e+02
+1.6246308774162841e+02
+1.6253706278278631e+02
+1.6261105438741069e+02
+1.6268506257364646e+02
+1.6275908735876598e+02
+1.6283312874989846e+02
+1.6290718674762908e+02
+1.6298126135250740e+02
+1.6305535256948059e+02
+1.6312946041031282e+02
+1.6320358488735448e+02
+1.6327772600598149e+02
+1.6335188374367144e+02
+1.6342605807092727e+02
+1.6350024896051431e+02
+1.6357445641149747e+02
+1.6364868043990901e+02
+1.6372292106196821e+02
+1.6379717828813983e+02
+1.6387145211996915e+02
+1.6394574255823437e+02
+1.6402004960574601e+02
+1.6409437327344398e+02
+1.6416871357430065e+02
+1.6424307051906112e+02
+1.6431744409257900e+02
+1.6439183426300360e+02
+1.6446624099856413e+02
+1.6454066428898443e+02
+1.6461510415730498e+02
+1.6468956062943207e+02
+1.6476403372385479e+02
+1.6483852342939301e+02
+1.6491302972744930e+02
+1.6498755260193886e+02
+1.6506209206598618e+02
+1.6513664815156056e+02
+1.6521122089049152e+02
+1.6528581028737773e+02
+1.6536041630460983e+02
+1.6543503890094769e+02
+1.6550967804644537e+02
+1.6558433375633334e+02
+1.6565900605713628e+02
+1.6573369497348614e+02
+1.6580840050801260e+02
+1.6588312264915032e+02
+1.6595786138529783e+02
+1.6603261671688523e+02
+1.6610738866299147e+02
+1.6618217724429965e+02
+1.6625698247239964e+02
+1.6633180432250759e+02
+1.6640664276074614e+02
+1.6648149775612373e+02
+1.6655636931119534e+02
+1.6663125745015870e+02
+1.6670616219735197e+02
+1.6678108356389060e+02
+1.6685602154039486e+02
+1.6693097611572207e+02
+1.6700594728392198e+02
+1.6708093505981444e+02
+1.6715593946341195e+02
+1.6723096051217328e+02
+1.6730599819387299e+02
+1.6738105247713426e+02
+1.6745612333055658e+02
+1.6753121074047482e+02
+1.6760631472071361e+02
+1.6768143528746225e+02
+1.6775657245759683e+02
+1.6783172625074087e+02
+1.6790689668720475e+02
+1.6798208378412789e+02
+1.6805728752178715e+02
+1.6813250785667714e+02
+1.6820774474536515e+02
+1.6828299817255908e+02
+1.6835826816658485e+02
+1.6843355475952029e+02
+1.6850885797564365e+02
+1.6858417780803430e+02
+1.6865951424197206e+02
+1.6873486726478720e+02
+1.6881023688764742e+02
+1.6888562313709951e+02
+1.6896102603954142e+02
+1.6903644559707189e+02
+1.6911188177412538e+02
+1.6918733453189643e+02
+1.6926280384156141e+02
+1.6933828971422358e+02
+1.6941379217096795e+02
+1.6948931123143893e+02
+1.6956484689853369e+02
+1.6964039916434487e+02
+1.6971596802100447e+02
+1.6979155347381192e+02
+1.6986715554847649e+02
+1.6994277427246308e+02
+1.7001840966067115e+02
+1.7009406167773807e+02
+1.7016973027573565e+02
+1.7024541541109761e+02
+1.7032111709096401e+02
+1.7039683535518856e+02
+1.7047257024375131e+02
+1.7054832177149825e+02
+1.7062408991431747e+02
+1.7069987464474588e+02
+1.7077567594607319e+02
+1.7085149384459996e+02
+1.7092732837737947e+02
+1.7100317957713906e+02
+1.7107904742631607e+02
+1.7115493187490242e+02
+1.7123083287291433e+02
+1.7130675040426689e+02
+1.7138268450541824e+02
+1.7145863521734643e+02
+1.7153460256969947e+02
+1.7161058654680616e+02
+1.7168658712166541e+02
+1.7176260427031951e+02
+1.7183863800418933e+02
+1.7191468835752090e+02
+1.7199075536447282e+02
+1.7206683903114020e+02
+1.7214293932011941e+02
+1.7221905619026492e+02
+1.7229518961090173e+02
+1.7237133959323617e+02
+1.7244750615894520e+02
+1.7252368932825780e+02
+1.7259988910457156e+02
+1.7267610548042515e+02
+1.7275233844837831e+02
+1.7282858801311474e+02
+1.7290485419811034e+02
+1.7298113702845748e+02
+1.7305743651866484e+02
+1.7313375264090544e+02
+1.7321008535676825e+02
+1.7328643463072481e+02
+1.7336280046075444e+02
+1.7343918286645439e+02
+1.7351558186773832e+02
+1.7359199748189050e+02
+1.7366842972211933e+02
+1.7374487860128266e+02
+1.7382134412456966e+02
+1.7389782626649472e+02
+1.7397432499390348e+02
+1.7405084027661863e+02
+1.7412737211907026e+02
+1.7420392054801584e+02
+1.7428048559028807e+02
+1.7435706725490536e+02
+1.7443366552327419e+02
+1.7451028037442580e+02
+1.7458691179764384e+02
+1.7466355982322133e+02
+1.7474022449170377e+02
+1.7481690583895679e+02
+1.7489360384644320e+02
+1.7497031846052673e+02
+1.7504704962753584e+02
+1.7512379732676754e+02
+1.7520056158861988e+02
+1.7527734244788675e+02
+1.7535413993119604e+02
+1.7543095403251198e+02
+1.7550778473763290e+02
+1.7558463203414550e+02
+1.7566149593042627e+02
+1.7573837644826457e+02
+1.7581527360931938e+02
+1.7589218741402283e+02
+1.7596911782990500e+02
+1.7604606482166565e+02
+1.7612302836420935e+02
+1.7620000847325949e+02
+1.7627700517474418e+02
+1.7635401849263451e+02
+1.7643104842815083e+02
+1.7650809496783575e+02
+1.7658515809824999e+02
+1.7666223782172557e+02
+1.7673933416503982e+02
+1.7681644715707296e+02
+1.7689357681407333e+02
+1.7697072310176117e+02
+1.7704788597322479e+02
+1.7712506538548837e+02
+1.7720226134133193e+02
+1.7727947387305537e+02
+1.7735670301316657e+02
+1.7743394877714402e+02
+1.7751121115407071e+02
+1.7758849013075863e+02
+1.7766578569954464e+02
+1.7774309787486348e+02
+1.7782042667667443e+02
+1.7789777212257900e+02
+1.7797513420277025e+02
+1.7805251288975805e+02
+1.7812990815601248e+02
+1.7820731998929043e+02
+1.7828474840104363e+02
+1.7836219340476205e+02
+1.7843965501109557e+02
+1.7851713321933443e+02
+1.7859462802592890e+02
+1.7867213942833953e+02
+1.7874966743577173e+02
+1.7882721206500821e+02
+1.7890477333269888e+02
+1.7898235123994812e+02
+1.7905994576376438e+02
+1.7913755687908341e+02
+1.7921518456590886e+02
+1.7929282882451611e+02
+1.7937048966024815e+02
+1.7944816707949178e+02
+1.7952586110076447e+02
+1.7960357175041000e+02
+1.7968129905449405e+02
+1.7975904301457354e+02
+1.7983680359421641e+02
+1.7991458075372270e+02
+1.7999237446362332e+02
+1.8007018473537184e+02
+1.8014801159065254e+02
+1.8022585504968686e+02
+1.8030371511569192e+02
+1.8038159178091428e+02
+1.8045948503762872e+02
+1.8053739489077574e+02
+1.8061532136492741e+02
+1.8069326448634467e+02
+1.8077122426997670e+02
+1.8084920068552560e+02
+1.8092719369138169e+02
+1.8100520324943315e+02
+1.8108322936223064e+02
+1.8116127205855867e+02
+1.8123933136733629e+02
+1.8131740729931923e+02
+1.8139549983711035e+02
+1.8147360896089072e+02
+1.8155173465978683e+02
+1.8162987695870723e+02
+1.8170803589150589e+02
+1.8178621148820491e+02
+1.8186440373428070e+02
+1.8194261258647040e+02
+1.8202083800148623e+02
+1.8209907996329409e+02
+1.8217733849810270e+02
+1.8225561363575451e+02
+1.8233390539778284e+02
+1.8241221377248459e+02
+1.8249053873984752e+02
+1.8256888028252698e+02
+1.8264723841418905e+02
+1.8272561316850678e+02
+1.8280400457900518e+02
+1.8288241265031749e+02
+1.8296083734229492e+02
+1.8303927861093629e+02
+1.8311773642464274e+02
+1.8319621080142397e+02
+1.8327470177169181e+02
+1.8335320936327614e+02
+1.8343173357399147e+02
+1.8351027438228755e+02
+1.8358883176667868e+02
+1.8366740572892121e+02
+1.8374599630679629e+02
+1.8382460354118416e+02
+1.8390322745727212e+02
+1.8398186801747556e+02
+1.8406052516851682e+02
+1.8413919886112842e+02
+1.8421788909266184e+02
+1.8429659589054501e+02
+1.8437531928251943e+02
+1.8445405928505309e+02
+1.8453281589714047e+02
+1.8461158911627268e+02
+1.8469037894277676e+02
+1.8476918538832263e+02
+1.8484800846741589e+02
+1.8492684819227625e+02
+1.8500570454854841e+02
+1.8508457750473198e+02
+1.8516346702933961e+02
+1.8524237310881327e+02
+1.8532129575738537e+02
+1.8540023499167893e+02
+1.8547919082911017e+02
+1.8555816329026825e+02
+1.8563715239653581e+02
+1.8571615816597242e+02
+1.8579518057800831e+02
+1.8587421958715152e+02
+1.8595327514798541e+02
+1.8603234724453864e+02
+1.8611143590647970e+02
+1.8619054116740307e+02
+1.8626966305262675e+02
+1.8634880155436304e+02
+1.8642795665654765e+02
+1.8650712834542389e+02
+1.8658631663405953e+02
+1.8666552155282838e+02
+1.8674474313189367e+02
+1.8682398137147652e+02
+1.8690323622538759e+02
+1.8698250764344530e+02
+1.8706179559068116e+02
+1.8714110009297897e+02
+1.8722042119143558e+02
+1.8729975892386184e+02
+1.8737911328987065e+02
+1.8745848426443098e+02
+1.8753787182243261e+02
+1.8761727595865867e+02
+1.8769669669872704e+02
+1.8777613407090794e+02
+1.8785558809358025e+02
+1.8793505874555680e+02
+1.8801454599575888e+02
+1.8809404981540118e+02
+1.8817357020235903e+02
+1.8825310717170788e+02
+1.8833266073867674e+02
+1.8841223091049022e+02
+1.8849181768196658e+02
+1.8857142104685681e+02
+1.8865104100425904e+02
+1.8873067757465978e+02
+1.8881033078389274e+02
+1.8889000065452240e+02
+1.8896968717110897e+02
+1.8904939029369373e+02
+1.8912910998229555e+02
+1.8920884622012110e+02
+1.8928859902631748e+02
+1.8936836842312348e+02
+1.8944815442771991e+02
+1.8952795703705587e+02
+1.8960777624302261e+02
+1.8968761203921520e+02
+1.8976746443903741e+02
+1.8984733346867270e+02
+1.8992721915410411e+02
+1.9000712149650042e+02
+1.9008704045856891e+02
+1.9016697599970817e+02
+1.9024692808979987e+02
+1.9032689674065773e+02
+1.9040688197457851e+02
+1.9048688381236533e+02
+1.9056690225745788e+02
+1.9064693730209370e+02
+1.9072698893853129e+02
+1.9080705717149183e+02
+1.9088714202501365e+02
+1.9096724352479660e+02
+1.9104736168595448e+02
+1.9112749648125620e+02
+1.9120764787288428e+02
+1.9128781582545878e+02
+1.9136800033193609e+02
+1.9144820140355415e+02
+1.9152841905198449e+02
+1.9160865329663883e+02
+1.9168890416892626e+02
+1.9176917170128789e+02
+1.9184945591213193e+02
+1.9192975676373575e+02
+1.9201007420434385e+02
+1.9209040818613519e+02
+1.9217075870702695e+02
+1.9225112579444468e+02
+1.9233150947611605e+02
+1.9241190976839133e+02
+1.9249232666998560e+02
+1.9257276017809707e+02
+1.9265321029300594e+02
+1.9273367702732006e+02
+1.9281416039672948e+02
+1.9289466041441858e+02
+1.9297517706444364e+02
+1.9305571031206867e+02
+1.9313626012262208e+02
+1.9321682648409072e+02
+1.9329740941958192e+02
+1.9337800895522412e+02
+1.9345862511075848e+02
+1.9353925788037722e+02
+1.9361990725188539e+02
+1.9370057321480868e+02
+1.9378125577867749e+02
+1.9386195496592833e+02
+1.9394267079884375e+02
+1.9402340327755937e+02
+1.9410415236788290e+02
+1.9418491803266917e+02
+1.9426570024550321e+02
+1.9434649902289050e+02
+1.9442731439206662e+02
+1.9450814637821267e+02
+1.9458899498262460e+02
+1.9466986019118903e+02
+1.9475074198981110e+02
+1.9483164038092031e+02
+1.9491255539255889e+02
+1.9499348705497238e+02
+1.9507443538520076e+02
+1.9515540034746166e+02
+1.9523638189276707e+02
+1.9531737997624185e+02
+1.9539839460082339e+02
+1.9547942580029553e+02
+1.9556047360865566e+02
+1.9564153804185739e+02
+1.9572261908788684e+02
+1.9580371673232415e+02
+1.9588483096704971e+02
+1.9596596180914443e+02
+1.9604710928198949e+02
+1.9612827340595837e+02
+1.9620945416646094e+02
+1.9629065152634976e+02
+1.9637186544850218e+02
+1.9645309591983707e+02
+1.9653434296453790e+02
+1.9661560660999370e+02
+1.9669688687664683e+02
+1.9677818375715330e+02
+1.9685949723722246e+02
+1.9694082730473968e+02
+1.9702217397288643e+02
+1.9710353727116416e+02
+1.9718491722887322e+02
+1.9726631384692982e+02
+1.9734772708225395e+02
+1.9742915688798121e+02
+1.9751060322933225e+02
+1.9759206611986789e+02
+1.9767354558523397e+02
+1.9775504165071757e+02
+1.9783655433743490e+02
+1.9791808366381125e+02
+1.9799962964785979e+02
+1.9808119228556009e+02
+1.9816277153873932e+02
+1.9824436736628664e+02
+1.9832597973894124e+02
+1.9840760867484101e+02
+1.9848925420397359e+02
+1.9857091635381738e+02
+1.9865259512268233e+02
+1.9873429049005998e+02
+1.9881600243548581e+02
+1.9889773095994821e+02
+1.9897947609768747e+02
+1.9906123788580439e+02
+1.9914301634635524e+02
+1.9922481144121804e+02
+1.9930662311722631e+02
+1.9938845132596140e+02
+1.9947029607419725e+02
+1.9955215740431578e+02
+1.9963403535885334e+02
+1.9971592995399965e+02
+1.9979784116510743e+02
+1.9987976896401651e+02
+1.9996171333347098e+02
+2.0004367429983188e+02
+2.0012565190036432e+02
+2.0020764616820557e+02
+2.0028965708850356e+02
+2.0037168461544542e+02
+2.0045372870318167e+02
+2.0053578933463135e+02
+2.0061786653730437e+02
+2.0069996034254640e+02
+2.0078207077302537e+02
+2.0086419781669770e+02
+2.0094634145284220e+02
+2.0102850166350589e+02
+2.0111067846291900e+02
+2.0119287188607495e+02
+2.0127508196781176e+02
+2.0135730871287606e+02
+2.0143955207937273e+02
+2.0152181202139437e+02
+2.0160408850589658e+02
+2.0168638155128676e+02
+2.0176869118883513e+02
+2.0185101744724642e+02
+2.0193336032539972e+02
+2.0201571980293221e+02
+2.0209809585950558e+02
+2.0218048849550297e+02
+2.0226289774342575e+02
+2.0234532363853816e+02
+2.0242776620264604e+02
+2.0251022540372151e+02
+2.0259270119627817e+02
+2.0267519353852512e+02
+2.0275770243163117e+02
+2.0284022790448111e+02
+2.0292276998615841e+02
+2.0300532868996933e+02
+2.0308790400476499e+02
+2.0317049591729278e+02
+2.0325310442045287e+02
+2.0333572953175616e+02
+2.0341837127486630e+02
+2.0350102967036440e+02
+2.0358370470299730e+02
+2.0366639633439269e+02
+2.0374910452621697e+02
+2.0383182926557140e+02
+2.0391457057898180e+02
+2.0399732849636521e+02
+2.0408010303896822e+02
+2.0416289419335573e+02
+2.0424570193742218e+02
+2.0432852625224280e+02
+2.0441136715586924e+02
+2.0449422469020917e+02
+2.0457709889696264e+02
+2.0465998978152689e+02
+2.0474289729302896e+02
+2.0482582137575559e+02
+2.0490876198830961e+02
+2.0499171914655821e+02
+2.0507469288068472e+02
+2.0515768321988270e+02
+2.0524069018184105e+02
+2.0532371377682614e+02
+2.0540675401474621e+02
+2.0548981089144414e+02
+2.0557288438096134e+02
+2.0565597445546388e+02
+2.0573908109432205e+02
+2.0582220430572397e+02
+2.0590534410506214e+02
+2.0598850050662040e+02
+2.0607167351179612e+02
+2.0615486311367286e+02
+2.0623806930541826e+02
+2.0632129209356404e+02
+2.0640453150535609e+02
+2.0648778756982219e+02
+2.0657106030285590e+02
+2.0665434966781285e+02
+2.0673765561491456e+02
+2.0682097809858729e+02
+2.0690431712213947e+02
+2.0698767272041624e+02
+2.0707104492846960e+02
+2.0715443376222672e+02
+2.0723783920797135e+02
+2.0732126124943721e+02
+2.0740469987801816e+02
+2.0748815511574836e+02
+2.0757162699232188e+02
+2.0765511553383948e+02
+2.0773862072462660e+02
+2.0782214252205691e+02
+2.0790568088346754e+02
+2.0798923579095592e+02
+2.0807280726499772e+02
+2.0815639532937001e+02
+2.0824000000241418e+02
+2.0832362128072884e+02
+2.0840725915547699e+02
+2.0849091361962942e+02
+2.0857458468717255e+02
+2.0865827238565157e+02
+2.0874197674240281e+02
+2.0882569775867910e+02
+2.0890943539530340e+02
+2.0899318960962080e+02
+2.0907696037003609e+02
+2.0916074768919222e+02
+2.0924455159079164e+02
+2.0932837209693170e+02
+2.0941220921104986e+02
+2.0949606292454467e+02
+2.0957993322883962e+02
+2.0966382012887928e+02
+2.0974772365056603e+02
+2.0983164382160518e+02
+2.0991558065803960e+02
+2.0999953412926274e+02
+2.1008350419300547e+02
+2.1016749081016809e+02
+2.1025149397849458e+02
+2.1033551371949900e+02
+2.1041955005494464e+02
+2.1050360299779084e+02
+2.1058767254735054e+02
+2.1067175870176268e+02
+2.1075586146246545e+02
+2.1083998084409347e+02
+2.1092411686458055e+02
+2.1100826953888270e+02
+2.1109243884733908e+02
+2.1117662474795520e+02
+2.1126082719882194e+02
+2.1134504618548351e+02
+2.1142928173603644e+02
+2.1151353388223797e+02
+2.1159780265182005e+02
+2.1168208805641416e+02
+2.1176639010362663e+02
+2.1185070879898169e+02
+2.1193504412379880e+02
+2.1201939604378134e+02
+2.1210376452475134e+02
+2.1218814955525889e+02
+2.1227255115908255e+02
+2.1235696936303114e+02
+2.1244140418733002e+02
+2.1252585562587021e+02
+2.1261032366595910e+02
+2.1269480829671420e+02
+2.1277930952829510e+02
+2.1286382738443689e+02
+2.1294836188871125e+02
+2.1303291304130801e+02
+2.1311748080617497e+02
+2.1320206514414235e+02
+2.1328666602733372e+02
+2.1337128347304653e+02
+2.1345591750987154e+02
+2.1354056816424443e+02
+2.1362523543754813e+02
+2.1370991931500251e+02
+2.1379461978184605e+02
+2.1387933684059757e+02
+2.1396407052056023e+02
+2.1404882085334125e+02
+2.1413358785677363e+02
+2.1421837149359297e+02
+2.1430317171276027e+02
+2.1438798846752042e+02
+2.1447282176091636e+02
+2.1455767162811875e+02
+2.1464253810451893e+02
+2.1472742120662284e+02
+2.1481232092166434e+02
+2.1489723723435918e+02
+2.1498217013620894e+02
+2.1506711964585861e+02
+2.1515208578873919e+02
+2.1523706858694450e+02
+2.1532206802377738e+02
+2.1540708405751369e+02
+2.1549211664650934e+02
+2.1557716577894169e+02
+2.1566223148921128e+02
+2.1574731381569484e+02
+2.1583241278458843e+02
+2.1591752837336571e+02
+2.1600266054731966e+02
+2.1608780927601782e+02
+2.1617297457871837e+02
+2.1625815650673832e+02
+2.1634335511121731e+02
+2.1642857040059363e+02
+2.1651380231711826e+02
+2.1659905079734847e+02
+2.1668431579645670e+02
+2.1676959734407515e+02
+2.1685489548845095e+02
+2.1694021027364474e+02
+2.1702554169504899e+02
+2.1711088971665711e+02
+2.1719625430246901e+02
+2.1728163544826293e+02
+2.1736703319907377e+02
+2.1745244760417347e+02
+2.1753787869609803e+02
+2.1762332644043849e+02
+2.1770879078604963e+02
+2.1779427168517722e+02
+2.1787976912948696e+02
+2.1796528313607669e+02
+2.1805081372251831e+02
+2.1813636090938726e+02
+2.1822192472191509e+02
+2.1830750518573376e+02
+2.1839310231505027e+02
+2.1847871607837121e+02
+2.1856434643277811e+02
+2.1864999333866794e+02
+2.1873565679497938e+02
+2.1882133682551660e+02
+2.1890703345429154e+02
+2.1899274669291515e+02
+2.1907847653377667e+02
+2.1916422296761201e+02
+2.1924998599154071e+02
+2.1933576562821699e+02
+2.1942156190667868e+02
+2.1950737485226807e+02
+2.1959320444736574e+02
+2.1967905064663503e+02
+2.1976491340475761e+02
+2.1985079270523639e+02
+2.1993668857624712e+02
+2.2002260104980806e+02
+2.2010853014906365e+02
+2.2019447586166223e+02
+2.2028043816637799e+02
+2.2036641704484506e+02
+2.2045241251194213e+02
+2.2053842460399625e+02
+2.2062445335716868e+02
+2.2071049877623182e+02
+2.2079656081730494e+02
+2.2088263943232207e+02
+2.2096873458674932e+02
+2.2105484630018077e+02
+2.2114097460574251e+02
+2.2122711953377751e+02
+2.2131328108227532e+02
+2.2139945922835230e+02
+2.2148565394918944e+02
+2.2157186524672017e+02
+2.2165809316124421e+02
+2.2174433773636164e+02
+2.2183059899884503e+02
+2.2191687690815709e+02
+2.2200317140693258e+02
+2.2208948244215500e+02
+2.2217581001135906e+02
+2.2226215414469291e+02
+2.2234851487263398e+02
+2.2243489221279683e+02
+2.2252128616285887e+02
+2.2260769671878242e+02
+2.2269412388017923e+02
+2.2278056766125874e+02
+2.2286702807987993e+02
+2.2295350515113137e+02
+2.2303999885789895e+02
+2.2312650916229225e+02
+2.2321303602648470e+02
+2.2329957943725771e+02
+2.2338613941953491e+02
+2.2347271600152092e+02
+2.2355930920454298e+02
+2.2364591902241838e+02
+2.2373254544208703e+02
+2.2381918845232070e+02
+2.2390584806318699e+02
+2.2399252429849261e+02
+2.2407921718189320e+02
+2.2416592671422950e+02
+2.2425265286097908e+02
+2.2433939558457743e+02
+2.2442615485689151e+02
+2.2451293068751383e+02
+2.2459972309546825e+02
+2.2468653209998232e+02
+2.2477335772265127e+02
+2.2486019998659796e+02
+2.2494705891452031e+02
+2.2503393450210606e+02
+2.2512082670317656e+02
+2.2520773546795186e+02
+2.2529466076097151e+02
+2.2538160260405337e+02
+2.2546856103333474e+02
+2.2555553608234018e+02
+2.2564252775422034e+02
+2.2572953603252995e+02
+2.2581656090079181e+02
+2.2590360236020331e+02
+2.2599066043935804e+02
+2.2607773516920616e+02
+2.2616482656803382e+02
+2.2625193460347060e+02
+2.2633905923048201e+02
+2.2642620040750376e+02
+2.2651335813331360e+02
+2.2660053243271619e+02
+2.2668772333073142e+02
+2.2677493083926709e+02
+2.2686215494990719e+02
+2.2694939565248731e+02
+2.2703665294380704e+02
+2.2712392684852128e+02
+2.2721121739824881e+02
+2.2729852462037252e+02
+2.2738584849303254e+02
+2.2747318896259929e+02
+2.2756054597552307e+02
+2.2764791951481425e+02
+2.2773530962015101e+02
+2.2782271633608622e+02
+2.2791013969482378e+02
+2.2799757967917267e+02
+2.2808503625959307e+02
+2.2817250941003880e+02
+2.2825999914507730e+02
+2.2834750550547835e+02
+2.2843502853184373e+02
+2.2852256822848500e+02
+2.2861012454346380e+02
+2.2869769742000307e+02
+2.2878528681830906e+02
+2.2887289276652075e+02
+2.2896051530976041e+02
+2.2904815448948787e+02
+2.2913581030458715e+02
+2.2922348272647403e+02
+2.2931117172652432e+02
+2.2939887730118340e+02
+2.2948659948575445e+02
+2.2957433831888329e+02
+2.2966209382496243e+02
+2.2974986597137084e+02
+2.2983765471123399e+02
+2.2992546000117517e+02
+2.3001328183848085e+02
+2.3010112024667168e+02
+2.3018897524954076e+02
+2.3027684686099701e+02
+2.3036473507962890e+02
+2.3045263990270692e+02
+2.3054056133118317e+02
+2.3062849938073606e+02
+2.3071645407072555e+02
+2.3080442541735889e+02
+2.3089241340019061e+02
+2.3098041797512872e+02
+2.3106843909816754e+02
+2.3115647675413928e+02
+2.3124453097257438e+02
+2.3133260178684830e+02
+2.3142068922576885e+02
+2.3150879329987291e+02
+2.3159691401512961e+02
+2.3168505137588454e+02
+2.3177320536760831e+02
+2.3186137596359399e+02
+2.3194956313715116e+02
+2.3203776687475028e+02
+2.3212598718326097e+02
+2.3221422407130768e+02
+2.3230247754716322e+02
+2.3239074761769436e+02
+2.3247903428941626e+02
+2.3256733756920954e+02
+2.3265565746820275e+02
+2.3274399400026493e+02
+2.3283234717902960e+02
+2.3292071700124509e+02
+2.3300910343748839e+02
+2.3309750645608503e+02
+2.3318592603387668e+02
+2.3327436218176973e+02
+2.3336281491918655e+02
+2.3345128426382232e+02
+2.3353977021329268e+02
+2.3362827275225891e+02
+2.3371679186552646e+02
+2.3380532755951242e+02
+2.3389387987413141e+02
+2.3398244885217989e+02
+2.3407103451929262e+02
+2.3415963683245798e+02
+2.3424825573150261e+02
+2.3433689116117145e+02
+2.3442554312338422e+02
+2.3451421165694740e+02
+2.3460289680092598e+02
+2.3469159857300903e+02
+2.3478031695775297e+02
+2.3486905193686388e+02
+2.3495780350072266e+02
+2.3504657167440845e+02
+2.3513535649167514e+02
+2.3522415798196741e+02
+2.3531297612463604e+02
+2.3540181086671305e+02
+2.3549066215525471e+02
+2.3557952997109092e+02
+2.3566841434740056e+02
+2.3575731532186563e+02
+2.3584623292291340e+02
+2.3593516714195275e+02
+2.3602411796113790e+02
+2.3611308536516859e+02
+2.3620206936833628e+02
+2.3629107000402388e+02
+2.3638008730539369e+02
+2.3646912127327948e+02
+2.3655817185840547e+02
+2.3664723900718536e+02
+2.3673632268125368e+02
+2.3682542290312813e+02
+2.3691453971054690e+02
+2.3700367313850418e+02
+2.3709282319009117e+02
+2.3718198984781677e+02
+2.3727117309416425e+02
+2.3736037293066599e+02
+2.3744958938838047e+02
+2.3753882250090618e+02
+2.3762807228740357e+02
+2.3771733870928111e+02
+2.3780662171350914e+02
+2.3789592125141991e+02
+2.3798523732505325e+02
+2.3807456996916355e+02
+2.3816391921888010e+02
+2.3825328509911830e+02
+2.3834266761896185e+02
+2.3843206678613262e+02
+2.3852148260124233e+02
+2.3861091503646213e+02
+2.3870036405685303e+02
+2.3878982963023739e+02
+2.3887931175653759e+02
+2.3896881045638594e+02
+2.3905832575062072e+02
+2.3914785765173227e+02
+2.3923740615927167e+02
+2.3932697127167700e+02
+2.3941655299059170e+02
+2.3950615133048069e+02
+2.3959576630901435e+02
+2.3968539794112800e+02
+2.3977504620996234e+02
+2.3986471107814538e+02
+2.3995439250833050e+02
+2.4004409048521859e+02
+2.4013380502768359e+02
+2.4022353615753917e+02
+2.4031328389263419e+02
+2.4040304823495899e+02
+2.4049282918253925e+02
+2.4058262673441092e+02
+2.4067244090135438e+02
+2.4076227170172692e+02
+2.4085211915364886e+02
+2.4094198325343254e+02
+2.4103186396358848e+02
+2.4112176124371936e+02
+2.4121167506539732e+02
+2.4130160544807165e+02
+2.4139155242316102e+02
+2.4148151601947797e+02
+2.4157149623553991e+02
+2.4166149305031905e+02
+2.4175150644282695e+02
+2.4184153641398234e+02
+2.4193158299865971e+02
+2.4202164623465487e+02
+2.4211172614521277e+02
+2.4220182269537560e+02
+2.4229193583563477e+02
+2.4238206552050860e+02
+2.4247221175132870e+02
+2.4256237455962858e+02
+2.4265255397715759e+02
+2.4274275001840758e+02
+2.4283296267112161e+02
+2.4292319192074171e+02
+2.4301343775950195e+02
+2.4310370020680523e+02
+2.4319397928884652e+02
+2.4328427502844613e+02
+2.4337458740919266e+02
+2.4346491638936388e+02
+2.4355526192726137e+02
+2.4364562400793082e+02
+2.4373600265787093e+02
+2.4382639790714629e+02
+2.4391680977849816e+02
+2.4400723826537416e+02
+2.4409768335389879e+02
+2.4418814503213787e+02
+2.4427862331072592e+02
+2.4436911821485808e+02
+2.4445962976957040e+02
+2.4455015797579611e+02
+2.4464070279710899e+02
+2.4473126419386895e+02
+2.4482184213645775e+02
+2.4491243663534431e+02
+2.4500304771101898e+02
+2.4509367538405058e+02
+2.4518431967591687e+02
+2.4527498060868197e+02
+2.4536565820401057e+02
+2.4545635245900931e+02
+2.4554706333271986e+02
+2.4563779078090951e+02
+2.4572853477101583e+02
+2.4581929531715755e+02
+2.4591007244512357e+02
+2.4600086617890554e+02
+2.4609167652159977e+02
+2.4618250346282227e+02
+2.4627334699223255e+02
+2.4636420711558446e+02
+2.4645508386357815e+02
+2.4654597726905965e+02
+2.4663688735005670e+02
+2.4672781406532329e+02
+2.4681875735879493e+02
+2.4690971717943899e+02
+2.4700069353471716e+02
+2.4709168646982903e+02
+2.4718269603013422e+02
+2.4727372223284132e+02
+2.4736476505152510e+02
+2.4745582445600692e+02
+2.4754690042821886e+02
+2.4763799299853608e+02
+2.4772910220944451e+02
+2.4782022809843343e+02
+2.4791137064490604e+02
+2.4800252979079042e+02
+2.4809370547803869e+02
+2.4818489768752863e+02
+2.4827610646047233e+02
+2.4836733184327193e+02
+2.4845857386964869e+02
+2.4854983252260061e+02
+2.4864110777244503e+02
+2.4873239959293679e+02
+2.4882370799779292e+02
+2.4891503302651265e+02
+2.4900637471847708e+02
+2.4909773308020246e+02
+2.4918910806726402e+02
+2.4928049963085502e+02
+2.4937190773451746e+02
+2.4946333239118772e+02
+2.4955477362615071e+02
+2.4964623146326767e+02
+2.4973770590984842e+02
+2.4982919696252449e+02
+2.4992070461790291e+02
+2.5001222888179319e+02
+2.5010376977426907e+02
+2.5019532731663099e+02
+2.5028690151848423e+02
+2.5037849234265181e+02
+2.5047009974026116e+02
+2.5056172366701912e+02
+2.5065336413186904e+02
+2.5074502117810002e+02
+2.5083669484912377e+02
+2.5092838516135518e+02
+2.5102009208936406e+02
+2.5111181560412081e+02
+2.5120355568807670e+02
+2.5129531236960787e+02
+2.5138708568857157e+02
+2.5147887568044405e+02
+2.5157068232977241e+02
+2.5166250558824603e+02
+2.5175434540746213e+02
+2.5184620176634800e+02
+2.5193807468619246e+02
+2.5202996419192826e+02
+2.5212187030673755e+02
+2.5221379304679988e+02
+2.5230573242654384e+02
+2.5239768845803698e+02
+2.5248966112589596e+02
+2.5258165039702712e+02
+2.5267365623837529e+02
+2.5276567863689857e+02
+2.5285771761057569e+02
+2.5294977318005371e+02
+2.5304184535984189e+02
+2.5313393413989829e+02
+2.5322603950404314e+02
+2.5331816143907193e+02
+2.5341029996636934e+02
+2.5350245512963551e+02
+2.5359462697228716e+02
+2.5368681549842114e+02
+2.5377902065118843e+02
+2.5387124236849721e+02
+2.5396348060538790e+02
+2.5405573538542913e+02
+2.5414800674932158e+02
+2.5424029473482105e+02
+2.5433259934544870e+02
+2.5442492056263916e+02
+2.5451725836779207e+02
+2.5460961276229474e+02
+2.5470198377851557e+02
+2.5479437145148793e+02
+2.5488677580116874e+02
+2.5497919678720871e+02
+2.5507163435418190e+02
+2.5516408845132355e+02
+2.5525655908205408e+02
+2.5534904628475158e+02
+2.5544155009802247e+02
+2.5553407053919753e+02
+2.5562660759263042e+02
+2.5571916123983809e+02
+2.5581173147124653e+02
+2.5590431831291795e+02
+2.5599692179982372e+02
+2.5608954196246890e+02
+2.5618217877943835e+02
+2.5627483219581967e+02
+2.5636750215672498e+02
+2.5646018864221315e+02
+2.5655289168651126e+02
+2.5664561132850599e+02
+2.5673834759760553e+02
+2.5683110048530460e+02
+2.5692386997361962e+02
+2.5701665604708694e+02
+2.5710945871953896e+02
+2.5720227802370852e+02
+2.5729511399214249e+02
+2.5738796662732625e+02
+2.5748083588514896e+02
+2.5757372171749194e+02
+2.5766662408880416e+02
+2.5775954301380602e+02
+2.5785247851978590e+02
+2.5794543063213212e+02
+2.5803839935414692e+02
+2.5813138467488335e+02
+2.5822438658343367e+02
+2.5831740508549535e+02
+2.5841044021250389e+02
+2.5850349199810847e+02
+2.5859656046082279e+02
+2.5868964555861623e+02
+2.5878274723432224e+02
+2.5887586543588674e+02
+2.5896900017068930e+02
+2.5906215148445364e+02
+2.5915531942307302e+02
+2.5924850400427806e+02
+2.5934170520214644e+02
+2.5943492298700113e+02
+2.5952815734076870e+02
+2.5962140829179123e+02
+2.5971467588001485e+02
+2.5980796014106727e+02
+2.5990126106037394e+02
+2.5999457859097168e+02
+2.6008791268575732e+02
+2.6018126332162791e+02
+2.6027463051268035e+02
+2.6036801427621157e+02
+2.6046141463138224e+02
+2.6055483160480884e+02
+2.6064826522497145e+02
+2.6074171551654905e+02
+2.6083518246003092e+02
+2.6092866600739683e+02
+2.6102216611065114e+02
+2.6111568275179536e+02
+2.6120921595932617e+02
+2.6130276576573982e+02
+2.6139633219561529e+02
+2.6148991524186329e+02
+2.6158351488947739e+02
+2.6167713112555157e+02
+2.6177076396159885e+02
+2.6186441342488627e+02
+2.6195807954249796e+02
+2.6205176231479152e+02
+2.6214546170069838e+02
+2.6223917765558610e+02
+2.6233291014790785e+02
+2.6242665919845740e+02
+2.6252042484111388e+02
+2.6261420710688606e+02
+2.6270800599341612e+02
+2.6280182147681904e+02
+2.6289565353329050e+02
+2.6298950216537378e+02
+2.6308336741645098e+02
+2.6317724933341754e+02
+2.6327114794466939e+02
+2.6336506320460575e+02
+2.6345899504912620e+02
+2.6355294341944261e+02
+2.6364690831852050e+02
+2.6374088978916637e+02
+2.6383488787441695e+02
+2.6392890259128887e+02
+2.6402293391646799e+02
+2.6411698182317053e+02
+2.6421104629698749e+02
+2.6430512737300842e+02
+2.6439922509869746e+02
+2.6449333951603035e+02
+2.6458747060317882e+02
+2.6468161829715052e+02
+2.6477578253491259e+02
+2.6486996329216447e+02
+2.6496416060464105e+02
+2.6505837451324129e+02
+2.6515260504925408e+02
+2.6524685220552720e+02
+2.6534111596529823e+02
+2.6543539631392395e+02
+2.6552969326139629e+02
+2.6562400683360096e+02
+2.6571833705629933e+02
+2.6581268393190555e+02
+2.6590704742664508e+02
+2.6600142750363011e+02
+2.6609582413537680e+02
+2.6619023733201607e+02
+2.6628466711308243e+02
+2.6637911349682292e+02
+2.6647357648651729e+02
+2.6656805607578866e+02
+2.6666255225828058e+02
+2.6675706503850842e+02
+2.6685159443783863e+02
+2.6694614047908732e+02
+2.6704070317566504e+02
+2.6713528250336054e+02
+2.6722987842855684e+02
+2.6732449091976480e+02
+2.6741911997023124e+02
+2.6751376558916144e+02
+2.6760842778615699e+02
+2.6770310657864599e+02
+2.6779780199618716e+02
+2.6789251406938263e+02
+2.6798724281569241e+02
+2.6808198820000649e+02
+2.6817675017407259e+02
+2.6827152869338380e+02
+2.6836632375697252e+02
+2.6846113539196085e+02
+2.6855596362570139e+02
+2.6865080847128354e+02
+2.6874566991968857e+02
+2.6884054795999606e+02
+2.6893544258848749e+02
+2.6903035383025235e+02
+2.6912528171758203e+02
+2.6922022627867142e+02
+2.6931518749409571e+02
+2.6941016531370718e+02
+2.6950515968737625e+02
+2.6960017059677915e+02
+2.6969519807289089e+02
+2.6979024215092721e+02
+2.6988530285645822e+02
+2.6998038017647224e+02
+2.7007547408831203e+02
+2.7017058457237584e+02
+2.7026571164457977e+02
+2.7036085534375508e+02
+2.7045601570856269e+02
+2.7055119274452818e+02
+2.7064638640581694e+02
+2.7074159664217643e+02
+2.7083682341612121e+02
+2.7093206674123485e+02
+2.7102732664386821e+02
+2.7112260314889051e+02
+2.7121789626395048e+02
+2.7131320598558619e+02
+2.7140853231030076e+02
+2.7150387524359104e+02
+2.7159923480489465e+02
+2.7169461101484831e+02
+2.7179000388341603e+02
+2.7188541337787098e+02
+2.7198083945481346e+02
+2.7207628207463654e+02
+2.7217174124182196e+02
+2.7226721698929595e+02
+2.7236270935011464e+02
+2.7245821833668953e+02
+2.7255374392943287e+02
+2.7264928610600424e+02
+2.7274484485441354e+02
+2.7284042020407179e+02
+2.7293601219474021e+02
+2.7303162086162672e+02
+2.7312724618700480e+02
+2.7322288811899671e+02
+2.7331854660568865e+02
+2.7341422162716611e+02
+2.7350991321311244e+02
+2.7360562139747788e+02
+2.7370134620599839e+02
+2.7379708763155310e+02
+2.7389284565880700e+02
+2.7398862027453504e+02
+2.7408441149003920e+02
+2.7418021933244569e+02
+2.7427604382871482e+02
+2.7437188498002945e+02
+2.7446774274761748e+02
+2.7456361708926954e+02
+2.7465950797335393e+02
+2.7475541541054861e+02
+2.7485133942210911e+02
+2.7494728002949375e+02
+2.7504323725651903e+02
+2.7513921112852307e+02
+2.7523520167037708e+02
+2.7533120887741933e+02
+2.7542723269921186e+02
+2.7552327308137905e+02
+2.7561932998515965e+02
+2.7571540343425085e+02
+2.7581149346796400e+02
+2.7590760012276189e+02
+2.7600372340199021e+02
+2.7609986328762886e+02
+2.7619601976162619e+02
+2.7629219282540060e+02
+2.7638838251054938e+02
+2.7648458885126553e+02
+2.7658081186772597e+02
+2.7667705152404170e+02
+2.7677330777030681e+02
+2.7686958056048712e+02
+2.7696586989355114e+02
+2.7706217579750131e+02
+2.7715849830057545e+02
+2.7725483741609469e+02
+2.7735119313425963e+02
+2.7744756544328180e+02
+2.7754395433914880e+02
+2.7764035984895173e+02
+2.7773678200755779e+02
+2.7783322084519693e+02
+2.7792967633819472e+02
+2.7802614842809919e+02
+2.7812263705653834e+02
+2.7821914220470785e+02
+2.7831566391513331e+02
+2.7841220223561584e+02
+2.7850875720079580e+02
+2.7860532879266975e+02
+2.7870191698007352e+02
+2.7879852173557725e+02
+2.7889514307516231e+02
+2.7899178104281776e+02
+2.7908843568234448e+02
+2.7918510699824378e+02
+2.7928179493410261e+02
+2.7937849942826784e+02
+2.7947522043742595e+02
+2.7957195799162122e+02
+2.7966871213923724e+02
+2.7976548292475172e+02
+2.7986227034723350e+02
+2.7995907437645587e+02
+2.8005589498215289e+02
+2.8015273216101866e+02
+2.8024958595153555e+02
+2.8034645639578042e+02
+2.8044334352007934e+02
+2.8054024728775414e+02
+2.8063716764637587e+02
+2.8073410454757362e+02
+2.8083105799015459e+02
+2.8092802800336318e+02
+2.8102501461668203e+02
+2.8112201784344336e+02
+2.8121903767194698e+02
+2.8131607408833924e+02
+2.8141312708805248e+02
+2.8151019670366355e+02
+2.8160728297703531e+02
+2.8170438594459176e+02
+2.8180150557952840e+02
+2.8189864181424804e+02
+2.8199579458116932e+02
+2.8209296385445919e+02
+2.8219014967299375e+02
+2.8228735208121577e+02
+2.8238457111752547e+02
+2.8248180679615319e+02
+2.8257905912528679e+02
+2.8267632811071690e+02
+2.8277361373036706e+02
+2.8287091594418200e+02
+2.8296823471224707e+02
+2.8306557002107303e+02
+2.8316292189812970e+02
+2.8326029037441015e+02
+2.8335767547333887e+02
+2.8345507718806675e+02
+2.8355249550417602e+02
+2.8364993040927845e+02
+2.8374738191457749e+02
+2.8384485004649713e+02
+2.8394233483130898e+02
+2.8403983627092407e+02
+2.8413735432949403e+02
+2.8423488896792259e+02
+2.8433244015752177e+02
+2.8443000791123700e+02
+2.8452759225242227e+02
+2.8462519320242075e+02
+2.8472281075920182e+02
+2.8482044490565477e+02
+2.8491809562480955e+02
+2.8501576292319794e+02
+2.8511344684378008e+02
+2.8521114743264968e+02
+2.8530886471737517e+02
+2.8540659865142305e+02
+2.8550434916973416e+02
+2.8560211621256968e+02
+2.8569989978203716e+02
+2.8579769992014491e+02
+2.8589551666917987e+02
+2.8599335004824638e+02
+2.8609120004051590e+02
+2.8618906662606884e+02
+2.8628694979447312e+02
+2.8638484957324613e+02
+2.8648276599939283e+02
+2.8658069910520743e+02
+2.8667864886822110e+02
+2.8677661523063421e+02
+2.8687459813467143e+02
+2.8697259755935539e+02
+2.8707061354074506e+02
+2.8716864611980571e+02
+2.8726669532740840e+02
+2.8736476115404685e+02
+2.8746284358012053e+02
+2.8756094258884548e+02
+2.8765905819618160e+02
+2.8775719043921356e+02
+2.8785533935477497e+02
+2.8795350494350919e+02
+2.8805168714996370e+02
+2.8814988591386060e+02
+2.8824810119293113e+02
+2.8834633301694186e+02
+2.8844458143366853e+02
+2.8854284648711524e+02
+2.8864112817744393e+02
+2.8873942647653104e+02
+2.8883774135616932e+02
+2.8893607281141016e+02
+2.8903442087335702e+02
+2.8913278557621385e+02
+2.8923116694211848e+02
+2.8932956494494192e+02
+2.8942797954648853e+02
+2.8952641071099021e+02
+2.8962485843090070e+02
+2.8972332271688111e+02
+2.8982180358002529e+02
+2.8992030103919035e+02
+2.9001881512526546e+02
+2.9011734587017531e+02
+2.9021589329180392e+02
+2.9031445735187384e+02
+2.9041303799806730e+02
+2.9051163518248200e+02
+2.9061024890854628e+02
+2.9070887921280490e+02
+2.9080752613196523e+02
+2.9090618967937877e+02
+2.9100486983219656e+02
+2.9110356656445481e+02
+2.9120227986294378e+02
+2.9130100976546697e+02
+2.9139975632258148e+02
+2.9149851957871505e+02
+2.9159729950704155e+02
+2.9169609603476437e+02
+2.9179490908911134e+02
+2.9189373864475192e+02
+2.9199258474988915e+02
+2.9209144745905212e+02
+2.9219032681339945e+02
+2.9228922280061175e+02
+2.9238813539499938e+02
+2.9248706457372333e+02
+2.9258601034707908e+02
+2.9268497274673905e+02
+2.9278395180423712e+02
+2.9288294752140530e+02
+2.9298195985403760e+02
+2.9308098875396740e+02
+2.9318003418704916e+02
+2.9327909617521851e+02
+2.9337817475443217e+02
+2.9347726995762417e+02
+2.9357638178259850e+02
+2.9367551020449406e+02
+2.9377465519852916e+02
+2.9387381676734333e+02
+2.9397299495607905e+02
+2.9407218981353515e+02
+2.9417140136922063e+02
+2.9427062957548645e+02
+2.9436987436539329e+02
+2.9446913567754814e+02
+2.9456841351502669e+02
+2.9466770792249815e+02
+2.9476701894487314e+02
+2.9486634659999095e+02
+2.9496569086372949e+02
+2.9506505170835720e+02
+2.9516442911899190e+02
+2.9526382313214822e+02
+2.9536323379719062e+02
+2.9546266115775899e+02
+2.9556210519094998e+02
+2.9566156583092805e+02
+2.9576104301181863e+02
+2.9586053670829443e+02
+2.9596004695787769e+02
+2.9605957380349702e+02
+2.9615911727788801e+02
+2.9625867737301547e+02
+2.9635825407065113e+02
+2.9645784735494777e+02
+2.9655745723773521e+02
+2.9665708374870030e+02
+2.9675672691735178e+02
+2.9685638674469521e+02
+2.9695606318755489e+02
+2.9705575619895473e+02
+2.9715546574513053e+02
+2.9725519184516560e+02
+2.9735493453135535e+02
+2.9745469383464155e+02
+2.9755446977023206e+02
+2.9765426234318380e+02
+2.9775407155817305e+02
+2.9785389740717807e+02
+2.9795373986249598e+02
+2.9805359889473038e+02
+2.9815347448259052e+02
+2.9825336663720674e+02
+2.9835327537781461e+02
+2.9845320072225860e+02
+2.9855314267221087e+02
+2.9865310121891014e+02
+2.9875307635367795e+02
+2.9885306808325890e+02
+2.9895307643830188e+02
+2.9905310145151282e+02
+2.9915314314169967e+02
+2.9925320147208066e+02
+2.9935327639197641e+02
+2.9945336785457494e+02
+2.9955347585802292e+02
+2.9965360042947248e+02
+2.9975374159635845e+02
+2.9985389937406711e+02
+2.9995407375931092e+02
+3.0005426474719513e+02
+3.0015447233769839e+02
+3.0025469655028968e+02
+3.0035493740931105e+02
+3.0045519493526001e+02
+3.0055546910394247e+02
+3.0065575986233063e+02
+3.0075606715753668e+02
+3.0085639097389816e+02
+3.0095673135345106e+02
+3.0105708834319535e+02
+3.0115746197716959e+02
+3.0125785223757043e+02
+3.0135825909363331e+02
+3.0145868251826931e+02
+3.0155912252711278e+02
+3.0165957916336197e+02
+3.0176005247005855e+02
+3.0186054245328086e+02
+3.0196104906181381e+02
+3.0206157223951345e+02
+3.0216211194591227e+02
+3.0226266820324480e+02
+3.0236324104942173e+02
+3.0246383051929530e+02
+3.0256443661216838e+02
+3.0266505930440815e+02
+3.0276569857240696e+02
+3.0286635441698814e+02
+3.0296702687684342e+02
+3.0306771599392198e+02
+3.0316842179386447e+02
+3.0326914423707808e+02
+3.0336988326766084e+02
+3.0347063883436527e+02
+3.0357141094004248e+02
+3.0367219962244707e+02
+3.0377300491951888e+02
+3.0387382684544338e+02
+3.0397466537758652e+02
+3.0407552049014680e+02
+3.0417639216973464e+02
+3.0427728045260790e+02
+3.0437818538743630e+02
+3.0447910701729404e+02
+3.0458004532020760e+02
+3.0468100023223627e+02
+3.0478197168934844e+02
+3.0488295966399107e+02
+3.0498396418515364e+02
+3.0508498528668946e+02
+3.0518602299968040e+02
+3.0528707734412291e+02
+3.0538814833724189e+02
+3.0548923599309103e+02
+3.0559034028885515e+02
+3.0569146117793360e+02
+3.0579259861388476e+02
+3.0589375258363418e+02
+3.0599492312582515e+02
+3.0609611028354999e+02
+3.0619731408650961e+02
+3.0629853451084011e+02
+3.0639977151928628e+02
+3.0650102507926374e+02
+3.0660229521248624e+02
+3.0670358197569811e+02
+3.0680488542543389e+02
+3.0690620557057059e+02
+3.0700754234611742e+02
+3.0710889568072861e+02
+3.0721026552352748e+02
+3.0731165190551110e+02
+3.0741305487814509e+02
+3.0751447448886984e+02
+3.0761591073833398e+02
+3.0771736359699776e+02
+3.0781883303522773e+02
+3.0792031904796448e+02
+3.0802182166823707e+02
+3.0812334093235160e+02
+3.0822487686341117e+02
+3.0832642943170885e+02
+3.0842799859433489e+02
+3.0852958431164592e+02
+3.0863118658196765e+02
+3.0873280542812216e+02
+3.0883444087313347e+02
+3.0893609292765132e+02
+3.0903776158314582e+02
+3.0913944682943679e+02
+3.0924114866365602e+02
+3.0934286711218135e+02
+3.0944460220870263e+02
+3.0954635398267044e+02
+3.0964812241425693e+02
+3.0974990745184181e+02
+3.0985170904378231e+02
+3.0995352716889687e+02
+3.1005536185321790e+02
+3.1015721312683985e+02
+3.1025908101283454e+02
+3.1036096550618720e+02
+3.1046286659486032e+02
+3.1056478426910326e+02
+3.1066671854573923e+02
+3.1076866945873655e+02
+3.1087063704181446e+02
+3.1097262129660066e+02
+3.1107462217498062e+02
+3.1117663962456089e+02
+3.1127867360671155e+02
+3.1138072413785613e+02
+3.1148279124818197e+02
+3.1158487496579215e+02
+3.1168697529456699e+02
+3.1178909222275820e+02
+3.1189122573864171e+02
+3.1199337584755079e+02
+3.1209554258125792e+02
+3.1219772597380978e+02
+3.1229992604500626e+02
+3.1240214275765925e+02
+3.1250437606033307e+02
+3.1260662590542910e+02
+3.1270889228994315e+02
+3.1281117523964286e+02
+3.1291347478073124e+02
+3.1301579093678345e+02
+3.1311812372730168e+02
+3.1322047317143750e+02
+3.1332283927745198e+02
+3.1342522201004368e+02
+3.1352762132302041e+02
+3.1363003717425528e+02
+3.1373246956888289e+02
+3.1383491854252816e+02
+3.1393738413094422e+02
+3.1403986634704927e+02
+3.1414236516836871e+02
+3.1424488056938316e+02
+3.1434741253711712e+02
+3.1444996110877071e+02
+3.1455252633408764e+02
+3.1465510825699567e+02
+3.1475770685380706e+02
+3.1486032205721193e+02
+3.1496295379986429e+02
+3.1506560205591666e+02
+3.1516826686384195e+02
+3.1527094826764659e+02
+3.1537364630086762e+02
+3.1547636095516594e+02
+3.1557909221173344e+02
+3.1568184005423268e+02
+3.1578460449505013e+02
+3.1588738556510305e+02
+3.1599018329512234e+02
+3.1609299768607980e+02
+3.1619582869282220e+02
+3.1629867626622797e+02
+3.1640154037122039e+02
+3.1650442102890014e+02
+3.1660731827441231e+02
+3.1671023214026172e+02
+3.1681316262825897e+02
+3.1691610972041207e+02
+3.1701907339874737e+02
+3.1712205366620464e+02
+3.1722505055813826e+02
+3.1732806411269155e+02
+3.1743109435149756e+02
+3.1753414123015017e+02
+3.1763720468773272e+02
+3.1774028466844550e+02
+3.1784338117596855e+02
+3.1794649425235599e+02
+3.1804962393991212e+02
+3.1815277025758689e+02
+3.1825593318813065e+02
+3.1835911271117971e+02
+3.1846230881622466e+02
+3.1856552153217194e+02
+3.1866875089778239e+02
+3.1877199694688068e+02
+3.1887525965591442e+02
+3.1897853896431297e+02
+3.1908183481153105e+02
+3.1918514717555422e+02
+3.1928847609409053e+02
+3.1939182160998570e+02
+3.1949518375552020e+02
+3.1959856252071648e+02
+3.1970195788503167e+02
+3.1980536983087978e+02
+3.1990879837504281e+02
+3.2001224355647622e+02
+3.2011570541387260e+02
+3.2021918394798661e+02
+3.2032267910076837e+02
+3.2042619080910947e+02
+3.2052971902869484e+02
+3.2063326379038068e+02
+3.2073682514381699e+02
+3.2084040313474526e+02
+3.2094399776348126e+02
+3.2104760900103309e+02
+3.2115123681832387e+02
+3.2125488121048107e+02
+3.2135854221014898e+02
+3.2146221985319914e+02
+3.2156591416282458e+02
+3.2166962511150462e+02
+3.2177335265903940e+02
+3.2187709676769657e+02
+3.2198085742841948e+02
+3.2208463465065284e+02
+3.2218842844435176e+02
+3.2229223883162058e+02
+3.2239606585339476e+02
+3.2249990955222955e+02
+3.2260376995131293e+02
+3.2270764699636294e+02
+3.2281154061373013e+02
+3.2291545073614918e+02
+3.2301937737057278e+02
+3.2312332057183511e+02
+3.2322728039506273e+02
+3.2333125686500068e+02
+3.2343524995930437e+02
+3.2353925965157811e+02
+3.2364328592545064e+02
+3.2374732880464745e+02
+3.2385138832291813e+02
+3.2395546450984114e+02
+3.2405955734650206e+02
+3.2416366678270145e+02
+3.2426779276826062e+02
+3.2437193528556878e+02
+3.2447609436749320e+02
+3.2458027005124438e+02
+3.2468446236381760e+02
+3.2478867129135114e+02
+3.2489289680976867e+02
+3.2499713889830133e+02
+3.2510139757462639e+02
+3.2520567288122515e+02
+3.2530996486037571e+02
+3.2541427351733404e+02
+3.2551859879997306e+02
+3.2562294065122870e+02
+3.2572729902970156e+02
+3.2583167395664748e+02
+3.2593606546898638e+02
+3.2604047360100424e+02
+3.2614489835636857e+02
+3.2624933971899293e+02
+3.2635379767274037e+02
+3.2645827221819951e+02
+3.2656276338188269e+02
+3.2666727119253289e+02
+3.2677179566737584e+02
+3.2687633677757049e+02
+3.2698089448275846e+02
+3.2708546874538126e+02
+3.2719005956042662e+02
+3.2729466694387969e+02
+3.2739929091197968e+02
+3.2750393147520265e+02
+3.2760858863509236e+02
+3.2771326239242387e+02
+3.2781795275270412e+02
+3.2792265974036508e+02
+3.2802738338457101e+02
+3.2813212371012787e+02
+3.2823688069118606e+02
+3.2834165426921436e+02
+3.2844644438575983e+02
+3.2855125101975722e+02
+3.2865607420809147e+02
+3.2876091399263271e+02
+3.2886577040532416e+02
+3.2897064343840378e+02
+3.2907553307418232e+02
+3.2918043929727122e+02
+3.2928536211901843e+02
+3.2939030156802210e+02
+3.2949525767274662e+02
+3.2960023043638728e+02
+3.2970521982297203e+02
+3.2981022579315936e+02
+3.2991524831608092e+02
+3.3002028739475867e+02
+3.3012534304068816e+02
+3.3023041526655612e+02
+3.3033550409890728e+02
+3.3044060957322603e+02
+3.3054573172453712e+02
+3.3065087055133472e+02
+3.3075602599549018e+02
+3.3086119799400404e+02
+3.3096638650280073e+02
+3.3107159155349956e+02
+3.3117681319664325e+02
+3.3128205147869966e+02
+3.3138730639876098e+02
+3.3149257792535548e+02
+3.3159786602697648e+02
+3.3170317070062322e+02
+3.3180849198747774e+02
+3.3191382993252296e+02
+3.3201918456378434e+02
+3.3212455584145681e+02
+3.3222994370877791e+02
+3.3233534811337455e+02
+3.3244076905390614e+02
+3.3254620656195516e+02
+3.3265166066937468e+02
+3.3275713139129624e+02
+3.3286261871693455e+02
+3.3296812263327433e+02
+3.3307364313549135e+02
+3.3317918025152346e+02
+3.3328473401749943e+02
+3.3339030446498089e+02
+3.3349589157243724e+02
+3.3360149528408505e+02
+3.3370711554415828e+02
+3.3381275233222243e+02
+3.3391840568260460e+02
+3.3402407563434355e+02
+3.3412976221585524e+02
+3.3423546541306894e+02
+3.3434118520129169e+02
+3.3444692155919995e+02
+3.3455267450463663e+02
+3.3465844408071371e+02
+3.3476423033033791e+02
+3.3487003325883444e+02
+3.3497585281327770e+02
+3.3508168893573060e+02
+3.3518754158418761e+02
+3.3529341078036549e+02
+3.3539929656191219e+02
+3.3550519896375749e+02
+3.3561111798923480e+02
+3.3571705362129245e+02
+3.3582300584284360e+02
+3.3592897465506377e+02
+3.3603496008743514e+02
+3.3614096217187540e+02
+3.3624698092647918e+02
+3.3635301631405127e+02
+3.3645906828357317e+02
+3.3656513678839679e+02
+3.3667122183267520e+02
+3.3677732345333652e+02
+3.3688344168747875e+02
+3.3698957654963260e+02
+3.3709572801934888e+02
+3.3720189607316934e+02
+3.3730808069823877e+02
+3.3741428192411240e+02
+3.3752049979094886e+02
+3.3762673433468336e+02
+3.3773298554215893e+02
+3.3783925336854588e+02
+3.3794553776880542e+02
+3.3805183871702218e+02
+3.3815815621692212e+02
+3.3826449027478100e+02
+3.3837084090370053e+02
+3.3847720814408774e+02
+3.3858359204317520e+02
+3.3868999264236396e+02
+3.3879640991525343e+02
+3.3890284379170129e+02
+3.3900929420159639e+02
+3.3911576112049266e+02
+3.3922224459472335e+02
+3.3932874467671047e+02
+3.3943526140501899e+02
+3.3954179476278614e+02
+3.3964834471929282e+02
+3.3975491124721577e+02
+3.3986149435871403e+02
+3.3996809409141838e+02
+3.4007471048286840e+02
+3.4018134353961580e+02
+3.4028799322018239e+02
+3.4039465947895809e+02
+3.4050134228210749e+02
+3.4060804164289323e+02
+3.4071475758635233e+02
+3.4082149013573814e+02
+3.4092823929356729e+02
+3.4103500504897863e+02
+3.4114178739117500e+02
+3.4124858632661363e+02
+3.4135540188849427e+02
+3.4146223411231756e+02
+3.4156908301852286e+02
+3.4167594856730443e+02
+3.4178283070379507e+02
+3.4188972937741283e+02
+3.4199664458738977e+02
+3.4210357636509548e+02
+3.4221052474215907e+02
+3.4231748973359794e+02
+3.4242447132868358e+02
+3.4253146951447189e+02
+3.4263848428618803e+02
+3.4274551567173262e+02
+3.4285256370717525e+02
+3.4295962842408198e+02
+3.4306670980166587e+02
+3.4317380778536375e+02
+3.4328092232058742e+02
+3.4338805338503965e+02
+3.4349520100647243e+02
+3.4360236521694389e+02
+3.4370954604097921e+02
+3.4381674347297479e+02
+3.4392395749979465e+02
+3.4403118811076314e+02
+3.4413843532380622e+02
+3.4424569917530243e+02
+3.4435297970135821e+02
+3.4446027690329123e+02
+3.4456759072849746e+02
+3.4467492111973382e+02
+3.4478226803589712e+02
+3.4488963150044060e+02
+3.4499701155295736e+02
+3.4510440822986016e+02
+3.4521182153059408e+02
+3.4531925143075472e+02
+3.4542669790596102e+02
+3.4553416095709781e+02
+3.4564164062421179e+02
+3.4574913695071928e+02
+3.4585664996344354e+02
+3.4596417962283925e+02
+3.4607172587276796e+02
+3.4617928866125328e+02
+3.4628686798469397e+02
+3.4639446387069893e+02
+3.4650207634734801e+02
+3.4660970543974912e+02
+3.4671735116840341e+02
+3.4682501355341589e+02
+3.4693269260352298e+02
+3.4704038828198514e+02
+3.4714810054069454e+02
+3.4725582933566085e+02
+3.4736357467076772e+02
+3.4747133658078440e+02
+3.4757911510067561e+02
+3.4768691024625440e+02
+3.4779472200364819e+02
+3.4790255035643060e+02
+3.4801039529598296e+02
+3.4811825684491885e+02
+3.4822613503365898e+02
+3.4833402988891709e+02
+3.4844194139430476e+02
+3.4854986950562653e+02
+3.4865781417866566e+02
+3.4876577539576726e+02
+3.4887375318044718e+02
+3.4898174755976294e+02
+3.4908975855306028e+02
+3.4919778614883990e+02
+3.4930583032789173e+02
+3.4941389107441211e+02
+3.4952196841220632e+02
+3.4963006239063242e+02
+3.4973817305873240e+02
+3.4984630042097149e+02
+3.4995444441272213e+02
+3.5006260496341332e+02
+3.5017078202194051e+02
+3.5027897561506347e+02
+3.5038718578900824e+02
+3.5049541258667074e+02
+3.5060365601222907e+02
+3.5071191604488354e+02
+3.5082019266378671e+02
+3.5092848587026094e+02
+3.5103679569998997e+02
+3.5114512219161338e+02
+3.5125346536795973e+02
+3.5136182518861193e+02
+3.5147020159734103e+02
+3.5157859454227935e+02
+3.5168700402225943e+02
+3.5179543006882267e+02
+3.5190387271378859e+02
+3.5201233197292783e+02
+3.5212080783713657e+02
+3.5222930029517067e+02
+3.5233780934250819e+02
+3.5244633500151616e+02
+3.5255487730128351e+02
+3.5266343626728781e+02
+3.5277201188302479e+02
+3.5288060410490561e+02
+3.5298921288931535e+02
+3.5309783821819929e+02
+3.5320648011311926e+02
+3.5331513859904550e+02
+3.5342381369495160e+02
+3.5353250539582621e+02
+3.5364121369066180e+02
+3.5374993857073588e+02
+3.5385868005388659e+02
+3.5396743817508832e+02
+3.5407621296905916e+02
+3.5418500443797438e+02
+3.5429381253356900e+02
+3.5440263720323827e+02
+3.5451147840653550e+02
+3.5462033615164188e+02
+3.5472921045889638e+02
+3.5483810134923493e+02
+3.5494700885054044e+02
+3.5505593299517716e+02
+3.5516487381503572e+02
+3.5527383130912352e+02
+3.5538280542547710e+02
+3.5549179610774917e+02
+3.5560080331529923e+02
+3.5570982707031726e+02
+3.5581886741069980e+02
+3.5592792437159704e+02
+3.5603699795622288e+02
+3.5614608814718832e+02
+3.5625519492707383e+02
+3.5636431829726234e+02
+3.5647345828828099e+02
+3.5658261493316388e+02
+3.5669178825062272e+02
+3.5680097820208090e+02
+3.5691018473464004e+02
+3.5701940779995880e+02
+3.5712864740267742e+02
+3.5723790358161671e+02
+3.5734717637575801e+02
+3.5745646579949312e+02
+3.5756577182910070e+02
+3.5767509443758138e+02
+3.5778443361117024e+02
+3.5789378938904014e+02
+3.5800316182359848e+02
+3.5811255096109136e+02
+3.5822195677613354e+02
+3.5833137919712681e+02
+3.5844081815245102e+02
+3.5855027361543199e+02
+3.5865974562905967e+02
+3.5876923424231677e+02
+3.5887873949109900e+02
+3.5898826135895382e+02
+3.5909779981634125e+02
+3.5920735483779623e+02
+3.5931692644522451e+02
+3.5942651469109302e+02
+3.5953611962760738e+02
+3.5964574126070499e+02
+3.5975537952460826e+02
+3.5986503434737017e+02
+3.5997470567677004e+02
+3.6008439353949296e+02
+3.6019409798195056e+02
+3.6030381904729813e+02
+3.6041355674084252e+02
+3.6052331104347275e+02
+3.6063308193598601e+02
+3.6074286941813591e+02
+3.6085267351905668e+02
+3.6096249427041062e+02
+3.6107233169105723e+02
+3.6118218574864608e+02
+3.6129205639802461e+02
+3.6140194359750620e+02
+3.6151184734569665e+02
+3.6162176766719688e+02
+3.6173170458682989e+02
+3.6184165811672131e+02
+3.6195162824931737e+02
+3.6206161497537062e+02
+3.6217161829186784e+02
+3.6228163822072918e+02
+3.6239167479010825e+02
+3.6250172802473259e+02
+3.6261179790949598e+02
+3.6272188440359287e+02
+3.6283198746612118e+02
+3.6294210707610017e+02
+3.6305224324342521e+02
+3.6316239598064845e+02
+3.6327256530438297e+02
+3.6338275124748907e+02
+3.6349295384688816e+02
+3.6360317313443954e+02
+3.6371340908315631e+02
+3.6382366162808569e+02
+3.6393393070436986e+02
+3.6404421629083288e+02
+3.6415451843400604e+02
+3.6426483718624405e+02
+3.6437517258567289e+02
+3.6448552461349999e+02
+3.6459589323670423e+02
+3.6470627842623190e+02
+3.6481668019915764e+02
+3.6492709860231690e+02
+3.6503753368236920e+02
+3.6514798544566867e+02
+3.6525845383609584e+02
+3.6536893879215785e+02
+3.6547944026952018e+02
+3.6558995829248511e+02
+3.6570049290251325e+02
+3.6581104413774528e+02
+3.6592161199772028e+02
+3.6603219645707333e+02
+3.6614279749046449e+02
+3.6625341509893843e+02
+3.6636404932443526e+02
+3.6647470021241310e+02
+3.6658536779057323e+02
+3.6669605201558699e+02
+3.6680675282636878e+02
+3.6691747016689288e+02
+3.6702820403996270e+02
+3.6713895448633480e+02
+3.6724972154698395e+02
+3.6736050523802123e+02
+3.6747130553701885e+02
+3.6758212241823361e+02
+3.6769295586777645e+02
+3.6780380591917663e+02
+3.6791467261781702e+02
+3.6802555600384437e+02
+3.6813645605652522e+02
+3.6824737271584956e+02
+3.6835830592177052e+02
+3.6846925565132636e+02
+3.6858022193903815e+02
+3.6869120482437160e+02
+3.6880220433716249e+02
+3.6891322046872864e+02
+3.6902425320075889e+02
+3.6913530251751382e+02
+3.6924636843315932e+02
+3.6935745098115405e+02
+3.6946855019473765e+02
+3.6957966607466432e+02
+3.6969079857133704e+02
+3.6980194763082767e+02
+3.6991311321486398e+02
+3.7002429534779662e+02
+3.7013549406963210e+02
+3.7024670941706569e+02
+3.7035794138829351e+02
+3.7046918995667465e+02
+3.7058045509564170e+02
+3.7069173680791278e+02
+3.7080303514159704e+02
+3.7091435014870910e+02
+3.7102568186103366e+02
+3.7113703022943861e+02
+3.7124839518456190e+02
+3.7135977666217519e+02
+3.7147117465772777e+02
+3.7158258920517005e+02
+3.7169402033904390e+02
+3.7180546809085405e+02
+3.7191693248739904e+02
+3.7202841355507184e+02
+3.7213991130573271e+02
+3.7225142569310725e+02
+3.7236295665638829e+02
+3.7247450413984308e+02
+3.7258606814673493e+02
+3.7269764871838947e+02
+3.7280924589643666e+02
+3.7292085970270125e+02
+3.7303249012831077e+02
+3.7314413716175272e+02
+3.7325580079681458e+02
+3.7336748104848766e+02
+3.7347917793706341e+02
+3.7359089147991881e+02
+3.7370262166054272e+02
+3.7381436844056088e+02
+3.7392613178162378e+02
+3.7403791166871883e+02
+3.7414970812300459e+02
+3.7426152116875119e+02
+3.7437335082430639e+02
+3.7448519708432616e+02
+3.7459705993754432e+02
+3.7470893937507731e+02
+3.7482083541574838e+02
+3.7493274809625535e+02
+3.7504467745301343e+02
+3.7515662348760873e+02
+3.7526858614764154e+02
+3.7538056537606786e+02
+3.7549256113066315e+02
+3.7560457342848071e+02
+3.7571660230139258e+02
+3.7582864777935123e+02
+3.7594070986998611e+02
+3.7605278856652563e+02
+3.7616488386217759e+02
+3.7627699576332986e+02
+3.7638912429680016e+02
+3.7650126949116361e+02
+3.7661343136025624e+02
+3.7672560985895950e+02
+3.7683780492741647e+02
+3.7695001651125546e+02
+3.7706224461987892e+02
+3.7717448930383273e+02
+3.7728675061382984e+02
+3.7739902856943058e+02
+3.7751132314190926e+02
+3.7762363429838683e+02
+3.7773596201944503e+02
+3.7784830633950770e+02
+3.7796066730645930e+02
+3.7807304496273531e+02
+3.7818543928741781e+02
+3.7829785021871669e+02
+3.7841027769480530e+02
+3.7852272169257475e+02
+3.7863518224892749e+02
+3.7874765940592795e+02
+3.7886015319432386e+02
+3.7897266359959406e+02
+3.7908519059589975e+02
+3.7919773416090482e+02
+3.7931029431299163e+02
+3.7942287109681160e+02
+3.7953546455681726e+02
+3.7964807469921470e+02
+3.7976070147092946e+02
+3.7987334481378713e+02
+3.7998600468386820e+02
+3.8009868109427333e+02
+3.8021137407235807e+02
+3.8032408364555192e+02
+3.8043680984214751e+02
+3.8054955269099469e+02
+3.8066231222038795e+02
+3.8077508842477584e+02
+3.8088788124614348e+02
+3.8100069062196394e+02
+3.8111351650755802e+02
+3.8122635892963939e+02
+3.8133921793277045e+02
+3.8145209355835982e+02
+3.8156498581115619e+02
+3.8167789467225697e+02
+3.8179082012268645e+02
+3.8190376216269806e+02
+3.8201672082235262e+02
+3.8212969613427435e+02
+3.8224268811782059e+02
+3.8235569673927864e+02
+3.8246872195166827e+02
+3.8258176371165757e+02
+3.8269482201832318e+02
+3.8280789689810132e+02
+3.8292098837764041e+02
+3.8303409646895966e+02
+3.8314722116140143e+02
+3.8326036244235809e+02
+3.8337352030794585e+02
+3.8348669478917986e+02
+3.8359988592579930e+02
+3.8371309375233312e+02
+3.8382631824273977e+02
+3.8393955933189994e+02
+3.8405281695473269e+02
+3.8416609108756330e+02
+3.8427938177089709e+02
+3.8439268905075943e+02
+3.8450601296190655e+02
+3.8461935349401523e+02
+3.8473271062549304e+02
+3.8484608433780573e+02
+3.8495947464797604e+02
+3.8507288159596686e+02
+3.8518630522150988e+02
+3.8529974552752304e+02
+3.8541320245986316e+02
+3.8552667595947901e+02
+3.8564016598289868e+02
+3.8575367254897037e+02
+3.8586719569212141e+02
+3.8598073544438029e+02
+3.8609429180988047e+02
+3.8620786477476008e+02
+3.8632145432518092e+02
+3.8643506046678112e+02
+3.8654868323538545e+02
+3.8666232266941529e+02
+3.8677597879111732e+02
+3.8688965155803618e+02
+3.8700334091154178e+02
+3.8711704679759492e+02
+3.8723076921553616e+02
+3.8734450819914321e+02
+3.8745826378246909e+02
+3.8757203598161249e+02
+3.8768582478484444e+02
+3.8779963017804158e+02
+3.8791345215582453e+02
+3.8802729074779012e+02
+3.8814114599227912e+02
+3.8825501792286531e+02
+3.8836890651770761e+02
+3.8848281171921394e+02
+3.8859673346975444e+02
+3.8871067174523256e+02
+3.8882462657352636e+02
+3.8893859798698537e+02
+3.8905258601150115e+02
+3.8916659064713394e+02
+3.8928061188748688e+02
+3.8939464972774488e+02
+3.8950870418148401e+02
+3.8962277527414585e+02
+3.8973686303091955e+02
+3.8985096744995991e+02
+3.8996508848751989e+02
+3.9007922609624723e+02
+3.9019338023961387e+02
+3.9030755092438636e+02
+3.9042173816815472e+02
+3.9053594198971285e+02
+3.9065016242184475e+02
+3.9076439950636018e+02
+3.9087865328451761e+02
+3.9099292375547805e+02
+3.9110721085314935e+02
+3.9122151450582714e+02
+3.9133583466206454e+02
+3.9145017135144820e+02
+3.9156452462382214e+02
+3.9167889452507848e+02
+3.9179328105516674e+02
+3.9190768418439626e+02
+3.9202210388310573e+02
+3.9213654015307117e+02
+3.9225099304479693e+02
+3.9236546261297826e+02
+3.9247994889074300e+02
+3.9259445182494596e+02
+3.9270897134087426e+02
+3.9282350736991538e+02
+3.9293805991437841e+02
+3.9305262902232840e+02
+3.9316721474215001e+02
+3.9328181709564245e+02
+3.9339643606339797e+02
+3.9351107162246490e+02
+3.9362572376087951e+02
+3.9374039251063436e+02
+3.9385507791471014e+02
+3.9396978001064087e+02
+3.9408449877263314e+02
+3.9419923413403734e+02
+3.9431398602822844e+02
+3.9442875443088747e+02
+3.9454353938326915e+02
+3.9465834093226908e+02
+3.9477315911322563e+02
+3.9488799391524594e+02
+3.9500284531588011e+02
+3.9511771329590499e+02
+3.9523259787361695e+02
+3.9534749909151748e+02
+3.9546241699183093e+02
+3.9557735157593891e+02
+3.9569230278191623e+02
+3.9580727054239151e+02
+3.9592225480902528e+02
+3.9603725560960612e+02
+3.9615227299095386e+02
+3.9626730699649283e+02
+3.9638235763016809e+02
+3.9649742487045523e+02
+3.9661250869579328e+02
+3.9672760910792721e+02
+3.9684272614472650e+02
+3.9695785984716838e+02
+3.9707301023939988e+02
+3.9718817727824899e+02
+3.9730336090371446e+02
+3.9741856106049346e+02
+3.9753377774791079e+02
+3.9764901100053385e+02
+3.9776426085320924e+02
+3.9787952732224335e+02
+3.9799481039520651e+02
+3.9811011005719740e+02
+3.9822542630257345e+02
+3.9834075916272644e+02
+3.9845610867830680e+02
+3.9857147488471935e+02
+3.9868685775637999e+02
+3.9880225722835786e+02
+3.9891767323572543e+02
+3.9903310575314663e+02
+3.9914855481665035e+02
+3.9926402046754430e+02
+3.9937950274272356e+02
+3.9949500166143173e+02
+3.9961051723849909e+02
+3.9972604948551492e+02
+3.9984159837639419e+02
+3.9995716386074434e+02
+4.0007274588832991e+02
+4.0018834444259238e+02
+4.0030395955917459e+02
+4.0041959127820905e+02
+4.0053523962854933e+02
+4.0065090459393389e+02
+4.0076658614682219e+02
+4.0088228426369170e+02
+4.0099799896773260e+02
+4.0111373031227299e+02
+4.0122947835035956e+02
+4.0134524308806982e+02
+4.0146102445867689e+02
+4.0157682238919170e+02
+4.0169263682562087e+02
+4.0180846778995482e+02
+4.0192431532318028e+02
+4.0204017946383493e+02
+4.0215606022198602e+02
+4.0227195758933328e+02
+4.0238787155748344e+02
+4.0250380213079973e+02
+4.0261974933342026e+02
+4.0273571319118327e+02
+4.0285169371818790e+02
+4.0296769088157293e+02
+4.0308370463673759e+02
+4.0319973494226639e+02
+4.0331578179377823e+02
+4.0343184521078433e+02
+4.0354792521306422e+02
+4.0366402181260571e+02
+4.0378013500931820e+02
+4.0389626480207278e+02
+4.0401241119546268e+02
+4.0412857421697277e+02
+4.0424475389981006e+02
+4.0436095027232295e+02
+4.0447716330636871e+02
+4.0459339293735979e+02
+4.0470963910078700e+02
+4.0482590177332600e+02
+4.0494218099548908e+02
+4.0505847681327981e+02
+4.0517478926170878e+02
+4.0529111833181571e+02
+4.0540746400364839e+02
+4.0552382625990862e+02
+4.0564020511416095e+02
+4.0575660059988036e+02
+4.0587301275036577e+02
+4.0598944156838922e+02
+4.0610588700940684e+02
+4.0622234902480494e+02
+4.0633882757863262e+02
+4.0645532268558958e+02
+4.0657183437303826e+02
+4.0668836266647605e+02
+4.0680490756971346e+02
+4.0692146907257052e+02
+4.0703804716488600e+02
+4.0715464185164905e+02
+4.0727125316133089e+02
+4.0738788112442262e+02
+4.0750452575887869e+02
+4.0762118703250451e+02
+4.0773786490056790e+02
+4.0785455932127820e+02
+4.0797127028704210e+02
+4.0808799781232767e+02
+4.0820474191210195e+02
+4.0832150260915773e+02
+4.0843827993841944e+02
+4.0855507393585452e+02
+4.0867188462154104e+02
+4.0878871195199991e+02
+4.0890555586786263e+02
+4.0902241631443377e+02
+4.0913929329134800e+02
+4.0925618683329179e+02
+4.0937309697522591e+02
+4.0949002373356211e+02
+4.0960696709595948e+02
+4.0972392704760426e+02
+4.0984090358284891e+02
+4.0995789673271219e+02
+4.1007490653737983e+02
+4.1019193303196005e+02
+4.1030897619253568e+02
+4.1042603595710852e+02
+4.1054311226370334e+02
+4.1066020508976106e+02
+4.1077731447381962e+02
+4.1089444045967167e+02
+4.1101158307893121e+02
+4.1112874231449388e+02
+4.1124591813707599e+02
+4.1136311052166207e+02
+4.1148031949285075e+02
+4.1159754510724957e+02
+4.1171478742113169e+02
+4.1183204643870840e+02
+4.1194932208349292e+02
+4.1206661427205734e+02
+4.1218392294506208e+02
+4.1230124813952347e+02
+4.1241858991654601e+02
+4.1253594833278578e+02
+4.1265332339318542e+02
+4.1277071506932396e+02
+4.1288812333264116e+02
+4.1300554817960688e+02
+4.1312298964548842e+02
+4.1324044776888968e+02
+4.1335792257230980e+02
+4.1347541401382472e+02
+4.1359292203540531e+02
+4.1371044658398802e+02
+4.1382798766423872e+02
+4.1394554531806824e+02
+4.1406311958756953e+02
+4.1418071048851795e+02
+4.1429831799589709e+02
+4.1441594208118215e+02
+4.1453358272982990e+02
+4.1465123998322764e+02
+4.1476891389674438e+02
+4.1488660451922397e+02
+4.1500431182364343e+02
+4.1512203573403394e+02
+4.1523977617440522e+02
+4.1535753311641770e+02
+4.1547530660558948e+02
+4.1559309669379206e+02
+4.1571090341912321e+02
+4.1582872676458328e+02
+4.1594656669939906e+02
+4.1606442319703331e+02
+4.1618229628020305e+02
+4.1630018600340117e+02
+4.1641809242085998e+02
+4.1653601553939961e+02
+4.1665395529235030e+02
+4.1677191160672021e+02
+4.1688988442780465e+02
+4.1700787377404902e+02
+4.1712587968218503e+02
+4.1724390218842257e+02
+4.1736194132289535e+02
+4.1747999711181831e+02
+4.1759806958082532e+02
+4.1771615872464884e+02
+4.1783426449012410e+02
+4.1795238681996608e+02
+4.1807052567226094e+02
+4.1818868106658056e+02
+4.1830685303786868e+02
+4.1842504161861763e+02
+4.1854324681283043e+02
+4.1866146860612884e+02
+4.1877970698416641e+02
+4.1889796195284731e+02
+4.1901623354946486e+02
+4.1913452181401283e+02
+4.1925282676963803e+02
+4.1937114837209816e+02
+4.1948948656030387e+02
+4.1960784127796086e+02
+4.1972621252451069e+02
+4.1984460033535453e+02
+4.1996300474617766e+02
+4.2008142577379584e+02
+4.2019986340577498e+02
+4.2031831762716564e+02
+4.2043678843217589e+02
+4.2055527585164668e+02
+4.2067377992557653e+02
+4.2079230068899193e+02
+4.2091083811911915e+02
+4.2102939215589277e+02
+4.2114796273921144e+02
+4.2126654984406809e+02
+4.2138515349985323e+02
+4.2150377374063595e+02
+4.2162241059356251e+02
+4.2174106405808402e+02
+4.2185973412672894e+02
+4.2197842079378745e+02
+4.2209712407403890e+02
+4.2221584399548180e+02
+4.2233458058583182e+02
+4.2245333384261738e+02
+4.2257210371657692e+02
+4.2269089015442455e+02
+4.2280969311711021e+02
+4.2292851262253123e+02
+4.2304734870282073e+02
+4.2316620138818149e+02
+4.2328507068636691e+02
+4.2340395659064711e+02
+4.2352285909426803e+02
+4.2364177820348368e+02
+4.2376071394470995e+02
+4.2387966634609717e+02
+4.2399863542221169e+02
+4.2411762113328029e+02
+4.2423662342594588e+02
+4.2435564225107413e+02
+4.2447467760863174e+02
+4.2459372953026201e+02
+4.2471279804789526e+02
+4.2483188317899317e+02
+4.2495098491859045e+02
+4.2507010325979252e+02
+4.2518923820148808e+02
+4.2530838976570055e+02
+4.2542755798023620e+02
+4.2554674286896579e+02
+4.2566594441000160e+02
+4.2578516255193529e+02
+4.2590439724334908e+02
+4.2602364846181570e+02
+4.2614291622984325e+02
+4.2626220057380539e+02
+4.2638150152087951e+02
+4.2650081910146008e+02
+4.2662015334674635e+02
+4.2673950428312600e+02
+4.2685887188106221e+02
+4.2697825607493610e+02
+4.2709765679923112e+02
+4.2721707403059332e+02
+4.2733650781102136e+02
+4.2745595818813604e+02
+4.2757542519776246e+02
+4.2769490882854319e+02
+4.2781440905732535e+02
+4.2793392586432151e+02
+4.2805345926886304e+02
+4.2817300931552018e+02
+4.2829257604856281e+02
+4.2841215946904191e+02
+4.2853175951101707e+02
+4.2865137610278504e+02
+4.2877100919383486e+02
+4.2889065881842197e+02
+4.2901032503199303e+02
+4.2913000788564574e+02
+4.2924970737992328e+02
+4.2936942348275187e+02
+4.2948915616197934e+02
+4.2960890541331872e+02
+4.2972867127567616e+02
+4.2984845379167268e+02
+4.2996825298805851e+02
+4.3008806882810103e+02
+4.3020790125919672e+02
+4.3032775023280618e+02
+4.3044761574764118e+02
+4.3056749783289871e+02
+4.3068739651801673e+02
+4.3080731181647349e+02
+4.3092724371700700e+02
+4.3104719220622815e+02
+4.3116715727965425e+02
+4.3128713896843180e+02
+4.3140713731261485e+02
+4.3152715234724729e+02
+4.3164718404912804e+02
+4.3176723235747886e+02
+4.3188729721148928e+02
+4.3200737858596443e+02
+4.3212747651091541e+02
+4.3224759102110130e+02
+4.3236772214408012e+02
+4.3248786987860228e+02
+4.3260803421621648e+02
+4.3272821515044183e+02
+4.3284841269770106e+02
+4.3296862688919271e+02
+4.3308885775577170e+02
+4.3320910529288790e+02
+4.3332936944111151e+02
+4.3344965013629269e+02
+4.3356994733397875e+02
+4.3369026106850873e+02
+4.3381059139391891e+02
+4.3393093835989515e+02
+4.3405130196555251e+02
+4.3417168217737907e+02
+4.3429207896183652e+02
+4.3441249231643911e+02
+4.3453292228683358e+02
+4.3465336892280618e+02
+4.3477383225532071e+02
+4.3489431224004591e+02
+4.3501480881382759e+02
+4.3513532191818035e+02
+4.3525585154889825e+02
+4.3537639773679496e+02
+4.3549696051321740e+02
+4.3561753990649981e+02
+4.3573813594030742e+02
+4.3585874863790423e+02
+4.3597937800954355e+02
+4.3610002401343888e+02
+4.3622068659479277e+02
+4.3634136570351239e+02
+4.3646206134418532e+02
+4.3658277355667781e+02
+4.3670350238106289e+02
+4.3682424783457822e+02
+4.3694500989906510e+02
+4.3706578855332009e+02
+4.3718658378706738e+02
+4.3730739563373857e+02
+4.3742822413769323e+02
+4.3754906933763186e+02
+4.3766993120647840e+02
+4.3779080967471862e+02
+4.3791170467286372e+02
+4.3803261617533565e+02
+4.3815354422461928e+02
+4.3827448886905381e+02
+4.3839545014542790e+02
+4.3851642804432879e+02
+4.3863742254479274e+02
+4.3875843362864549e+02
+4.3887946131013496e+02
+4.3900050562442755e+02
+4.3912156660650282e+02
+4.3924264425925207e+02
+4.3936373853582802e+02
+4.3948484938510552e+02
+4.3960597676932758e+02
+4.3972712070421233e+02
+4.3984828121884692e+02
+4.3996945834031465e+02
+4.4009065207240303e+02
+4.4021186240387038e+02
+4.4033308932350025e+02
+4.4045433283658383e+02
+4.4057559297400138e+02
+4.4069686976883349e+02
+4.4081816324019724e+02
+4.4093947335135226e+02
+4.4106080005159367e+02
+4.4118214329417890e+02
+4.4130350307842144e+02
+4.4142487943334788e+02
+4.4154627238821450e+02
+4.4166768195634569e+02
+4.4178910812636991e+02
+4.4191055088479203e+02
+4.4203201022714211e+02
+4.4215348618505453e+02
+4.4227497879918900e+02
+4.4239648810510323e+02
+4.4251801407904219e+02
+4.4263955665898425e+02
+4.4276111578288504e+02
+4.4288269142562916e+02
+4.4300428361934098e+02
+4.4312589240106809e+02
+4.4324751779913640e+02
+4.4336915980698126e+02
+4.4349081840931620e+02
+4.4361249359359931e+02
+4.4373418537919889e+02
+4.4385589380607109e+02
+4.4397761891390053e+02
+4.4409936070549526e+02
+4.4422111912650479e+02
+4.4434289411766241e+02
+4.4446468563349913e+02
+4.4458649368374091e+02
+4.4470831829191127e+02
+4.4483015948212960e+02
+4.4495201728543242e+02
+4.4507389173731934e+02
+4.4519578287275709e+02
+4.4531769069025523e+02
+4.4543961513181449e+02
+4.4556155613457435e+02
+4.4568351365321598e+02
+4.4580548771258316e+02
+4.4592747835506117e+02
+4.4604948561995576e+02
+4.4617150951078389e+02
+4.4629355000797176e+02
+4.4641560709191521e+02
+4.4653768076427212e+02
+4.4665977105965663e+02
+4.4678187801551718e+02
+4.4690400165320773e+02
+4.4702614192970486e+02
+4.4714829878588955e+02
+4.4727047216760900e+02
+4.4739266207843133e+02
+4.4751486855916494e+02
+4.4763709165086090e+02
+4.4775933137192334e+02
+4.4788158770565428e+02
+4.4800386063233589e+02
+4.4812615014177698e+02
+4.4824845626189330e+02
+4.4837077903012801e+02
+4.4849311847915220e+02
+4.4861547458617036e+02
+4.4873784729260041e+02
+4.4886023653988531e+02
+4.4898264230670304e+02
+4.4910506462944613e+02
+4.4922750354947237e+02
+4.4934995909804377e+02
+4.4947243126603973e+02
+4.4959492003424390e+02
+4.4971742538614291e+02
+4.4983994733663775e+02
+4.4996248592089773e+02
+4.5008504117389060e+02
+4.5020761309825696e+02
+4.5033020164652862e+02
+4.5045280676692704e+02
+4.5057542842123371e+02
+4.5069806662546938e+02
+4.5082072140921389e+02
+4.5094339280000645e+02
+4.5106608080166063e+02
+4.5118878540268247e+02
+4.5131150659160357e+02
+4.5143424437375614e+02
+4.5155699878051536e+02
+4.5167976984549597e+02
+4.5180255758812353e+02
+4.5192536197106682e+02
+4.5204818294280517e+02
+4.5217102045584966e+02
+4.5229387450958296e+02
+4.5241674513362824e+02
+4.5253963235783920e+02
+4.5266253619571415e+02
+4.5278545663539836e+02
+4.5290839366285724e+02
+4.5303134727343019e+02
+4.5315431749995582e+02
+4.5327730438464778e+02
+4.5340030796431319e+02
+4.5352332821290662e+02
+4.5364636506383243e+02
+4.5376941845045474e+02
+4.5389248834424313e+02
+4.5401557477573209e+02
+4.5413867778053617e+02
+4.5426179739308816e+02
+4.5438493364309011e+02
+4.5450808655906246e+02
+4.5463125616505323e+02
+4.5475444243312961e+02
+4.5487764530182130e+02
+4.5500086470975560e+02
+4.5512410063494269e+02
+4.5524735311643411e+02
+4.5537062219853323e+02
+4.5549390791356598e+02
+4.5561721024595300e+02
+4.5574052916813758e+02
+4.5586386465638009e+02
+4.5598721673130370e+02
+4.5611058544215393e+02
+4.5623397083793054e+02
+4.5635737292428820e+02
+4.5648079163969715e+02
+4.5660422691684818e+02
+4.5672767870696794e+02
+4.5685114703542746e+02
+4.5697463194613431e+02
+4.5709813347981304e+02
+4.5722165164019395e+02
+4.5734518640713895e+02
+4.5746873776047568e+02
+4.5759230570179795e+02
+4.5771589026643818e+02
+4.5783949149263134e+02
+4.5796310940213630e+02
+4.5808674395080635e+02
+4.5821039507801845e+02
+4.5833406272834316e+02
+4.5845774690671783e+02
+4.5858144765702730e+02
+4.5870516502334732e+02
+4.5882889902230869e+02
+4.5895264962800070e+02
+4.5907641681085323e+02
+4.5920020055581580e+02
+4.5932400090591551e+02
+4.5944781791869821e+02
+4.5957165164491380e+02
+4.5969550205630730e+02
+4.5981936907365161e+02
+4.5994325261769916e+02
+4.6006715265890449e+02
+4.6019106924476205e+02
+4.6031500242939273e+02
+4.6043895225254573e+02
+4.6056291869648391e+02
+4.6068690172909857e+02
+4.6081090132273596e+02
+4.6093491750153760e+02
+4.6105895032306159e+02
+4.6118299984457201e+02
+4.6130706607230820e+02
+4.6143114893341885e+02
+4.6155524834825007e+02
+4.6167936425901468e+02
+4.6180349669539481e+02
+4.6192764570894025e+02
+4.6205181134756430e+02
+4.6217599361690685e+02
+4.6230019249533495e+02
+4.6242440796112515e+02
+4.6254864001436317e+02
+4.6267288868894133e+02
+4.6279715402165920e+02
+4.6292143603437393e+02
+4.6304573468916976e+02
+4.6317004993318767e+02
+4.6329438171766907e+02
+4.6341873004151876e+02
+4.6354309493439172e+02
+4.6366747642619640e+02
+4.6379187453129902e+02
+4.6391628923997388e+02
+4.6404072054042354e+02
+4.6416516842835341e+02
+4.6428963292948356e+02
+4.6441411407703731e+02
+4.6453861190019285e+02
+4.6466312638110782e+02
+4.6478765747160332e+02
+4.6491220512339834e+02
+4.6503676931244047e+02
+4.6516135005223202e+02
+4.6528594735950531e+02
+4.6541056125452548e+02
+4.6553519177168590e+02
+4.6565983894891303e+02
+4.6578450281912365e+02
+4.6590918335700422e+02
+4.6603388049967327e+02
+4.6615859418425413e+02
+4.6628332438571925e+02
+4.6640807113770757e+02
+4.6653283447890527e+02
+4.6665761443842570e+02
+4.6678241100709573e+02
+4.6690722416616933e+02
+4.6703205390041956e+02
+4.6715690023551684e+02
+4.6728176322351754e+02
+4.6740664291606237e+02
+4.6753153931344042e+02
+4.6765645233634513e+02
+4.6778138189862307e+02
+4.6790632793944405e+02
+4.6803129049926775e+02
+4.6815626964387701e+02
+4.6828126543385326e+02
+4.6840627786932191e+02
+4.6853130691140325e+02
+4.6865635252118147e+02
+4.6878141469658027e+02
+4.6890649349262355e+02
+4.6903158896924697e+02
+4.6915670116326868e+02
+4.6928183001903727e+02
+4.6940697545778289e+02
+4.6953213740683344e+02
+4.6965731586439250e+02
+4.6978251087439128e+02
+4.6990772248117850e+02
+4.7003295070847719e+02
+4.7015819554804051e+02
+4.7028345698887154e+02
+4.7040873502708843e+02
+4.7053402968727113e+02
+4.7065934100111554e+02
+4.7078466899583896e+02
+4.7091001364660292e+02
+4.7103537489498302e+02
+4.7116075268261972e+02
+4.7128614698858223e+02
+4.7141155784995516e+02
+4.7153698530881377e+02
+4.7166242939686180e+02
+4.7178789010431575e+02
+4.7191336741102049e+02
+4.7203886129972011e+02
+4.7216437178685601e+02
+4.7228989891061099e+02
+4.7241544270891586e+02
+4.7254100318288380e+02
+4.7266658027655825e+02
+4.7279217392907412e+02
+4.7291778409678301e+02
+4.7304341080490576e+02
+4.7316905409587986e+02
+4.7329471400908085e+02
+4.7342039054829053e+02
+4.7354608369432549e+02
+4.7367179342796237e+02
+4.7379751975049214e+02
+4.7392326269500450e+02
+4.7404902229732403e+02
+4.7417479857890231e+02
+4.7430059150369556e+02
+4.7442640102128706e+02
+4.7455222708469972e+02
+4.7467806968695072e+02
+4.7480392884686000e+02
+4.7492980458374723e+02
+4.7505569692109611e+02
+4.7518160588884575e+02
+4.7530753151749116e+02
+4.7543347382384519e+02
+4.7555943276999602e+02
+4.7568540830434966e+02
+4.7581140037929526e+02
+4.7593740899351678e+02
+4.7606343417556604e+02
+4.7618947595426806e+02
+4.7631553434494384e+02
+4.7644160934198339e+02
+4.7656770093797593e+02
+4.7669380913224524e+02
+4.7681993395104911e+02
+4.7694607542737981e+02
+4.7707223358928297e+02
+4.7719840840730734e+02
+4.7732459981490581e+02
+4.7745080774567407e+02
+4.7757703217887075e+02
+4.7770327316453125e+02
+4.7782953075877873e+02
+4.7795580500251992e+02
+4.7808209587579591e+02
+4.7820840334343035e+02
+4.7833472737456162e+02
+4.7846106798847615e+02
+4.7858742523681514e+02
+4.7871379917102041e+02
+4.7884018979824685e+02
+4.7896659705700478e+02
+4.7909302087989943e+02
+4.7921946121702479e+02
+4.7934591808843089e+02
+4.7947239153165725e+02
+4.7959888158194184e+02
+4.7972538824777700e+02
+4.7985191152039857e+02
+4.7997845139100326e+02
+4.8010500786564546e+02
+4.8023158097341013e+02
+4.8035817074536374e+02
+4.8048477719781062e+02
+4.8061140028800634e+02
+4.8073803995844418e+02
+4.8086469615618552e+02
+4.8099136888138770e+02
+4.8111805816846464e+02
+4.8124476405213159e+02
+4.8137148655097565e+02
+4.8149822565858352e+02
+4.8162498136639135e+02
+4.8175175367254127e+02
+4.8187854260199794e+02
+4.8200534818643132e+02
+4.8213217045297205e+02
+4.8225900937598107e+02
+4.8238586489577330e+02
+4.8251273695274676e+02
+4.8263962552629931e+02
+4.8276653065627983e+02
+4.8289345238773660e+02
+4.8302039075325712e+02
+4.8314734573558582e+02
+4.8327431730500626e+02
+4.8340130543611446e+02
+4.8352831015364279e+02
+4.8365533151467065e+02
+4.8378236957597886e+02
+4.8390942434414512e+02
+4.8403649574792968e+02
+4.8416358370939969e+02
+4.8429068817042878e+02
+4.8441780915211956e+02
+4.8454494669538207e+02
+4.8467210084013709e+02
+4.8479927161480435e+02
+4.8492645904038386e+02
+4.8505366313731452e+02
+4.8518088389975594e+02
+4.8530812128113672e+02
+4.8543537523138070e+02
+4.8556264571388942e+02
+4.8568993274597079e+02
+4.8581723635840945e+02
+4.8594455657973117e+02
+4.8607189341219942e+02
+4.8619924684113391e+02
+4.8632661685194375e+02
+4.8645400345234509e+02
+4.8658140668462858e+02
+4.8670882659405987e+02
+4.8683626320579282e+02
+4.8696371646453827e+02
+4.8709118629489518e+02
+4.8721867262808951e+02
+4.8734617547237673e+02
+4.8747369488570990e+02
+4.8760123092628049e+02
+4.8772878361692977e+02
+4.8785635292570714e+02
+4.8798393881594762e+02
+4.8811154126634409e+02
+4.8823916031701623e+02
+4.8836679602344145e+02
+4.8849444843449555e+02
+4.8862211752232167e+02
+4.8874980320955598e+02
+4.8887750541885998e+02
+4.8900522412385493e+02
+4.8913295937715094e+02
+4.8926071123815331e+02
+4.8938847975032968e+02
+4.8951626489340185e+02
+4.8964406663115403e+02
+4.8977188493177971e+02
+4.8989971981472030e+02
+4.9002757133248190e+02
+4.9015543953736852e+02
+4.9028332443655370e+02
+4.9041122596725609e+02
+4.9053914406067679e+02
+4.9066707866617600e+02
+4.9079502980574642e+02
+4.9092299751954022e+02
+4.9105098184488440e+02
+4.9117898278627820e+02
+4.9130700032703987e+02
+4.9143503445051351e+02
+4.9156308516271633e+02
+4.9169115250481076e+02
+4.9181923652098192e+02
+4.9194733723662807e+02
+4.9207545460199987e+02
+4.9220358854856005e+02
+4.9233173901351040e+02
+4.9245990600075771e+02
+4.9258808955724584e+02
+4.9271628973014947e+02
+4.9284450653752009e+02
+4.9297273995226578e+02
+4.9310098994341223e+02
+4.9322925649515327e+02
+4.9335753965235813e+02
+4.9348583947506552e+02
+4.9361415601612879e+02
+4.9374248924488069e+02
+4.9387083907676805e+02
+4.9399920542717996e+02
+4.9412758826187491e+02
+4.9425598762468559e+02
+4.9438440356616013e+02
+4.9451283613228014e+02
+4.9464128535075810e+02
+4.9476975124473938e+02
+4.9489823383287467e+02
+4.9502673308155562e+02
+4.9515524892345962e+02
+4.9528378129142493e+02
+4.9541233016170810e+02
+4.9554089557786119e+02
+4.9566947758922623e+02
+4.9579807623327486e+02
+4.9592669150000216e+02
+4.9605532336753328e+02
+4.9618397181695769e+02
+4.9631263686382857e+02
+4.9644131854593212e+02
+4.9657001690084888e+02
+4.9669873193152580e+02
+4.9682746358723006e+02
+4.9695621181261015e+02
+4.9708497656695391e+02
+4.9721375786810199e+02
+4.9734255574853398e+02
+4.9747137023836461e+02
+4.9760020134022068e+02
+4.9772904903899592e+02
+4.9785791331966237e+02
+4.9798679418968646e+02
+4.9811569169139887e+02
+4.9824460587013010e+02
+4.9837353675129543e+02
+4.9850248428065248e+02
+4.9863144838404338e+02
+4.9876042899352217e+02
+4.9888942611334625e+02
+4.9901843979435597e+02
+4.9914747008769939e+02
+4.9927651701637404e+02
+4.9940558055974424e+02
+4.9953466069342073e+02
+4.9966375740473632e+02
+4.9979287072790805e+02
+4.9992200070887537e+02
+5.0005114738797744e+02
+5.0018031074046161e+02
+5.0030949069957916e+02
+5.0043868719854504e+02
+5.0056790021039171e+02
+5.0069712976986750e+02
+5.0082637591702934e+02
+5.0095563868240771e+02
+5.0108491805842840e+02
+5.0121421402798995e+02
+5.0134352657703596e+02
+5.0147285572689998e+02
+5.0160220152174895e+02
+5.0173156400542877e+02
+5.0186094317972680e+02
+5.0199033898123952e+02
+5.0211975134095564e+02
+5.0224918020926316e+02
+5.0237862561414852e+02
+5.0250808760299861e+02
+5.0263756621945208e+02
+5.0276706146358532e+02
+5.0289657330736873e+02
+5.0302610172279219e+02
+5.0315564671106739e+02
+5.0328520831870253e+02
+5.0341478659610118e+02
+5.0354438157448641e+02
+5.0367399320835432e+02
+5.0380362143301943e+02
+5.0393326618817179e+02
+5.0406292746436088e+02
+5.0419260528494993e+02
+5.0432229967397865e+02
+5.0445201066331373e+02
+5.0458173829695198e+02
+5.0471148261993437e+02
+5.0484124365657431e+02
+5.0497102134827838e+02
+5.0510081561572565e+02
+5.0523062638623713e+02
+5.0536045366434706e+02
+5.0549029750440332e+02
+5.0562015796104117e+02
+5.0575003505628047e+02
+5.0587992876158904e+02
+5.0600983904408537e+02
+5.0613976588639326e+02
+5.0626970933315380e+02
+5.0639966944451334e+02
+5.0652964627355902e+02
+5.0665963979131988e+02
+5.0678964991588464e+02
+5.0691967656530107e+02
+5.0704971970815330e+02
+5.0717977939135386e+02
+5.0730985566855429e+02
+5.0743994858060648e+02
+5.0757005811716891e+02
+5.0770018425510062e+02
+5.0783032697432571e+02
+5.0796048629038995e+02
+5.0809066224182141e+02
+5.0822085486694561e+02
+5.0835106416892108e+02
+5.0848129009639905e+02
+5.0861153259334111e+02
+5.0874179161844052e+02
+5.0887206718931310e+02
+5.0900235933830606e+02
+5.0913266809552056e+02
+5.0926299346495568e+02
+5.0939333543376927e+02
+5.0952369398914391e+02
+5.0965406913658347e+02
+5.0978446090998807e+02
+5.0991486934570145e+02
+5.1004529446473822e+02
+5.1017573622680050e+02
+5.1030619457626119e+02
+5.1043666946186835e+02
+5.1056716088322167e+02
+5.1069766887272942e+02
+5.1082819346304512e+02
+5.1095873466876219e+02
+5.1108929247648143e+02
+5.1121986687039504e+02
+5.1135045784507622e+02
+5.1148106543661947e+02
+5.1161168969150071e+02
+5.1174233065009184e+02
+5.1187298828181702e+02
+5.1200366251032585e+02
+5.1213435325935154e+02
+5.1226506050335422e+02
+5.1239578429542178e+02
+5.1252652469540635e+02
+5.1265728174702542e+02
+5.1278805542946100e+02
+5.1291884570576042e+02
+5.1304965254354045e+02
+5.1318047596352369e+02
+5.1331131602069695e+02
+5.1344217276980532e+02
+5.1357304621689320e+02
+5.1370393629251600e+02
+5.1383484292073570e+02
+5.1396576604589700e+02
+5.1409670569347281e+02
+5.1422766190921868e+02
+5.1435863473753966e+02
+5.1448962420714633e+02
+5.1462063033662344e+02
+5.1475165314391222e+02
+5.1488269261844255e+02
+5.1501374870545374e+02
+5.1514482134638286e+02
+5.1527591050002093e+02
+5.1540701619457400e+02
+5.1553813847560104e+02
+5.1566927738490790e+02
+5.1580043292066046e+02
+5.1593160505287153e+02
+5.1606279375164252e+02
+5.1619399902060343e+02
+5.1632522091535225e+02
+5.1645645949595769e+02
+5.1658771479847655e+02
+5.1671898676291778e+02
+5.1685027530527907e+02
+5.1698158034850837e+02
+5.1711290189635793e+02
+5.1724424000471026e+02
+5.1737559472976102e+02
+5.1750696609430440e+02
+5.1763835406936460e+02
+5.1776975862151164e+02
+5.1790117973301574e+02
+5.1803261744894371e+02
+5.1816407183006186e+02
+5.1829554293000433e+02
+5.1842703071949165e+02
+5.1855853511575106e+02
+5.1869005603597020e+02
+5.1882159344846718e+02
+5.1895314740080960e+02
+5.1908471794738341e+02
+5.1921630512948514e+02
+5.1934790893605884e+02
+5.1947952934295949e+02
+5.1961116632931783e+02
+5.1974281991234864e+02
+5.1987449013383639e+02
+5.2000617703530008e+02
+5.2013788061777927e+02
+5.2026960081957077e+02
+5.2040133757357330e+02
+5.2053309083303475e+02
+5.2066486063259617e+02
+5.2079664702724767e+02
+5.2092845006714128e+02
+5.2106026974619465e+02
+5.2119210602204407e+02
+5.2132395885240862e+02
+5.2145582823621044e+02
+5.2158771423623807e+02
+5.2171961692077423e+02
+5.2185153633210825e+02
+5.2198347240855878e+02
+5.2211542506245110e+02
+5.2224739421351603e+02
+5.2237937986756947e+02
+5.2251138208596683e+02
+5.2264340093038663e+02
+5.2277543642640410e+02
+5.2290748854363244e+02
+5.2303955724687069e+02
+5.2317164251447241e+02
+5.2330374437900514e+02
+5.2343586288659083e+02
+5.2356799807834489e+02
+5.2370014993719451e+02
+5.2383231840852352e+02
+5.2396450343755077e+02
+5.2409670499706237e+02
+5.2422892310257623e+02
+5.2436115777328496e+02
+5.2449340903186169e+02
+5.2462567691490062e+02
+5.2475796146247581e+02
+5.2489026270926888e+02
+5.2502258062727151e+02
+5.2515491514803125e+02
+5.2528726620314455e+02
+5.2541963376764397e+02
+5.2555201788388547e+02
+5.2568441860001690e+02
+5.2581683595127117e+02
+5.2594926992122248e+02
+5.2608172048053075e+02
+5.2621418760392237e+02
+5.2634667131340132e+02
+5.2647917166147226e+02
+5.2661168870037613e+02
+5.2674422243598053e+02
+5.2687677280227535e+02
+5.2700933972706707e+02
+5.2714192315805462e+02
+5.2727452312250455e+02
+5.2740713966757528e+02
+5.2753977283700272e+02
+5.2767242263472747e+02
+5.2780508903901784e+02
+5.2793777202810588e+02
+5.2807047160379602e+02
+5.2820318780442722e+02
+5.2833592067148265e+02
+5.2846867022861511e+02
+5.2860143642816240e+02
+5.2873421920463227e+02
+5.2886701849812607e+02
+5.2899983431376529e+02
+5.2913266669861946e+02
+5.2926551569997036e+02
+5.2939838133587205e+02
+5.2953126357907684e+02
+5.2966416239843932e+02
+5.2979707777810756e+02
+5.2993000976339977e+02
+5.3006295841492749e+02
+5.3019592378614777e+02
+5.3032890584734741e+02
+5.3046190451515611e+02
+5.3059491970616671e+02
+5.3072795138848528e+02
+5.3086099961006153e+02
+5.3099406442571399e+02
+5.3112714587708876e+02
+5.3126024395314607e+02
+5.3139335862967368e+02
+5.3152648988573128e+02
+5.3165963773840519e+02
+5.3179280222931550e+02
+5.3192598339982942e+02
+5.3205918125155699e+02
+5.3219239572448703e+02
+5.3232562675330655e+02
+5.3245887429123457e+02
+5.3259213836561435e+02
+5.3272541902232115e+02
+5.3285871630380666e+02
+5.3299203021273547e+02
+5.3312536072610169e+02
+5.3325870782091181e+02
+5.3339207150057734e+02
+5.3352545180943628e+02
+5.3365884879534804e+02
+5.3379226248601935e+02
+5.3392569282855027e+02
+5.3405913974988812e+02
+5.3419260318247927e+02
+5.3432608312268746e+02
+5.3445957960811540e+02
+5.3459309267700689e+02
+5.3472662236490862e+02
+5.3486016870318679e+02
+5.3499373172284720e+02
+5.3512731143852102e+02
+5.3526090779933782e+02
+5.3539452073805251e+02
+5.3552815019310424e+02
+5.3566179616902286e+02
+5.3579545871297557e+02
+5.3592913787236512e+02
+5.3606283366603168e+02
+5.3619654606854431e+02
+5.3633027505066457e+02
+5.3646402059683919e+02
+5.3659778274625967e+02
+5.3673156155180288e+02
+5.3686535706023676e+02
+5.3699916924730314e+02
+5.3713299804292217e+02
+5.3726684337693416e+02
+5.3740070522026576e+02
+5.3753458360752541e+02
+5.3766847857879941e+02
+5.3780239016574092e+02
+5.3793631836626776e+02
+5.3807026316986355e+02
+5.3820422456822905e+02
+5.3833820257883792e+02
+5.3847219723579042e+02
+5.3860620857285733e+02
+5.3874023658736837e+02
+5.3887428122017081e+02
+5.3900834240725260e+02
+5.3914242010312739e+02
+5.3927651433641199e+02
+5.3941062515424835e+02
+5.3954475260000777e+02
+5.3967889667322845e+02
+5.3981305734517002e+02
+5.3994723458713042e+02
+5.4008142840104517e+02
+5.4021563883633553e+02
+5.4034986594650866e+02
+5.4048410976397417e+02
+5.4061837023675537e+02
+5.4075264729177798e+02
+5.4088694086193527e+02
+5.4102125094947917e+02
+5.4115557760141007e+02
+5.4128992086504172e+02
+5.4142428076170290e+02
+5.4155865727244861e+02
+5.4169305037486845e+02
+5.4182746005727006e+02
+5.4196188635082933e+02
+5.4209632929744043e+02
+5.4223078893368506e+02
+5.4236526523439841e+02
+5.4249975813457763e+02
+5.4263426756924287e+02
+5.4276879351463049e+02
+5.4290333601085968e+02
+5.4303789510354591e+02
+5.4317247082717881e+02
+5.4330706317174884e+02
+5.4344167211612091e+02
+5.4357629764212663e+02
+5.4371093976607460e+02
+5.4384559852651898e+02
+5.4398027396180430e+02
+5.4411496607552363e+02
+5.4424967481740487e+02
+5.4438440013254137e+02
+5.4451914197874976e+02
+5.4465390036473548e+02
+5.4478867531192691e+02
+5.4492346684230381e+02
+5.4505827498426640e+02
+5.4519309977035550e+02
+5.4532794123263557e+02
+5.4546279937039048e+02
+5.4559767413209522e+02
+5.4573256546185473e+02
+5.4586747331833305e+02
+5.4600239771843383e+02
+5.4613733869361931e+02
+5.4627229627348220e+02
+5.4640727046586551e+02
+5.4654226126458184e+02
+5.4667726866341332e+02
+5.4681229266838147e+02
+5.4694733330447787e+02
+5.4708239059832533e+02
+5.4721746456335404e+02
+5.4735255516021687e+02
+5.4748766233637389e+02
+5.4762278604384971e+02
+5.4775792628774650e+02
+5.4789308310740819e+02
+5.4802825654233561e+02
+5.4816344660716140e+02
+5.4829865327797404e+02
+5.4843387652754564e+02
+5.4856911634198559e+02
+5.4870437276075245e+02
+5.4883964583664113e+02
+5.4897493561631109e+02
+5.4911024207508649e+02
+5.4924556514226992e+02
+5.4938090474708747e+02
+5.4951626086024407e+02
+5.4965163351673414e+02
+5.4978702275708326e+02
+5.4992242861329805e+02
+5.5005785108330997e+02
+5.5019329015653273e+02
+5.5032874582459203e+02
+5.5046421810483753e+02
+5.5059970703121394e+02
+5.5073521263734801e+02
+5.5087073492113393e+02
+5.5100627382508242e+02
+5.5114182928693913e+02
+5.5127740126118306e+02
+5.5141298976922189e+02
+5.5154859484919575e+02
+5.5168421653686300e+02
+5.5181985484028769e+02
+5.5195550974966773e+02
+5.5209118125517887e+02
+5.5222686936357547e+02
+5.5236257410730752e+02
+5.5249829552103597e+02
+5.5263403362292115e+02
+5.5276978836512512e+02
+5.5290555968330932e+02
+5.5304134751857043e+02
+5.5317715187518968e+02
+5.5331297279821160e+02
+5.5344881033294268e+02
+5.5358466449960792e+02
+5.5372053527955802e+02
+5.5385642265079844e+02
+5.5399232660204348e+02
+5.5412824716483635e+02
+5.5426418438142889e+02
+5.5440013828870440e+02
+5.5453610886114348e+02
+5.5467209603296692e+02
+5.5480809973841974e+02
+5.5494411995349492e+02
+5.5508015671889234e+02
+5.5521621008087891e+02
+5.5535228007436069e+02
+5.5548836668880438e+02
+5.5562446990231547e+02
+5.5576058969612177e+02
+5.5589672608773333e+02
+5.5603287911806888e+02
+5.5616904882779636e+02
+5.5630523521908992e+02
+5.5644143823445825e+02
+5.5657765781127716e+02
+5.5671389390262516e+02
+5.5685014652438758e+02
+5.5698641570815221e+02
+5.5712270148558343e+02
+5.5725900388924538e+02
+5.5739532295228162e+02
+5.5753165870722592e+02
+5.5766801114945815e+02
+5.5780438021676866e+02
+5.5794076584199343e+02
+5.5807716797607361e+02
+5.5821358664237175e+02
+5.5835002188235444e+02
+5.5848647373455753e+02
+5.5862294220343006e+02
+5.5875942727143160e+02
+5.5889592892105145e+02
+5.5903244715858216e+02
+5.5916898202721245e+02
+5.5930553357330473e+02
+5.5944210182376946e+02
+5.5957868672771099e+02
+5.5971528821478262e+02
+5.5985190622011942e+02
+5.5998854074259327e+02
+5.6012519182219478e+02
+5.6026185949927958e+02
+5.6039854379491317e+02
+5.6053524470026389e+02
+5.6067196220392759e+02
+5.6080869630262453e+02
+5.6094544702556959e+02
+5.6108221441010153e+02
+5.6121899848811097e+02
+5.6135579922814486e+02
+5.6149261655788496e+02
+5.6162945040515172e+02
+5.6176630074702462e+02
+5.6190316763693136e+02
+5.6204005113486835e+02
+5.6217695128461992e+02
+5.6231386806512637e+02
+5.6245080143911605e+02
+5.6258775137395764e+02
+5.6272471789096039e+02
+5.6286170104623363e+02
+5.6299870089564934e+02
+5.6313571744601734e+02
+5.6327275062810247e+02
+5.6340980036612700e+02
+5.6354686660551704e+02
+5.6368394937650919e+02
+5.6382104873054345e+02
+5.6395816471491378e+02
+5.6409529732871954e+02
+5.6423244653996767e+02
+5.6436961231673195e+02
+5.6450679466224187e+02
+5.6464399363421694e+02
+5.6478120929506451e+02
+5.6491844168228192e+02
+5.6505569073372965e+02
+5.6519295636235745e+02
+5.6533023848828407e+02
+5.6546753711495194e+02
+5.6560485229956168e+02
+5.6574218409965727e+02
+5.6587953253959415e+02
+5.6601689759228839e+02
+5.6615427922622996e+02
+5.6629167742378479e+02
+5.6642909222281901e+02
+5.6656652367507456e+02
+5.6670397182670388e+02
+5.6684143665888996e+02
+5.6697891811089858e+02
+5.6711641612176595e+02
+5.6725393065868172e+02
+5.6739146173247104e+02
+5.6752900935771322e+02
+5.6766657355527423e+02
+5.6780415437116847e+02
+5.6794175185769677e+02
+5.6807936606076350e+02
+5.6821699695190546e+02
+5.6835464445468131e+02
+5.6849230849260175e+02
+5.6862998903431071e+02
+5.6876768611840896e+02
+5.6890539978951426e+02
+5.6904313008155407e+02
+5.6918087698569104e+02
+5.6931864048239765e+02
+5.6945642055556368e+02
+5.6959421722881848e+02
+5.6973203055142801e+02
+5.6986986057227909e+02
+5.7000770729179783e+02
+5.7014557063529833e+02
+5.7028345052163365e+02
+5.7042134689360296e+02
+5.7055925978979417e+02
+5.7069718927274107e+02
+5.7083513539998728e+02
+5.7097309817105838e+02
+5.7111107754804959e+02
+5.7124907349303498e+02
+5.7138708600427799e+02
+5.7152511513613456e+02
+5.7166316094778540e+02
+5.7180122347459235e+02
+5.7193930265663676e+02
+5.7207739841018076e+02
+5.7221551065873689e+02
+5.7235363941011201e+02
+5.7249178472649487e+02
+5.7262994667035753e+02
+5.7276812526671836e+02
+5.7290632048254508e+02
+5.7304453227981139e+02
+5.7318276063626320e+02
+5.7332100559273783e+02
+5.7345926720584430e+02
+5.7359754552575259e+02
+5.7373584052776971e+02
+5.7387415213890426e+02
+5.7401248028607279e+02
+5.7415082493900115e+02
+5.7428918613376652e+02
+5.7442756391215482e+02
+5.7456595830712558e+02
+5.7470436931633458e+02
+5.7484279692861219e+02
+5.7498124113508254e+02
+5.7511970195354456e+02
+5.7525817941900516e+02
+5.7539667356614700e+02
+5.7553518439293794e+02
+5.7567371184043930e+02
+5.7581225584481638e+02
+5.7595081635939744e+02
+5.7608939340615700e+02
+5.7622798702423188e+02
+5.7636659725031370e+02
+5.7650522409266796e+02
+5.7664386754122052e+02
+5.7678252758586996e+02
+5.7692120423324241e+02
+5.7705989751588959e+02
+5.7719860746859422e+02
+5.7733733410993807e+02
+5.7747607739370244e+02
+5.7761483725746734e+02
+5.7775361364355854e+02
+5.7789240654946741e+02
+5.7803121600827615e+02
+5.7817004205361491e+02
+5.7830888471642277e+02
+5.7844774402346877e+02
+5.7858662000116237e+02
+5.7872551266206790e+02
+5.7886442196336463e+02
+5.7900334784838662e+02
+5.7914229026499402e+02
+5.7928124921366918e+02
+5.7942022472884503e+02
+5.7955921684519933e+02
+5.7969822557818145e+02
+5.7983725091343706e+02
+5.7997629283404876e+02
+5.8011535133406335e+02
+5.8025442645138935e+02
+5.8039351823489960e+02
+5.8053262672712515e+02
+5.8067175189686020e+02
+5.8081089366532831e+02
+5.8095005195379133e+02
+5.8108922673343932e+02
+5.8122841805284872e+02
+5.8136762596725259e+02
+5.8150685051831317e+02
+5.8164609169340395e+02
+5.8178534946632726e+02
+5.8192462381462599e+02
+5.8206391475933310e+02
+5.8220322234953881e+02
+5.8234254663404590e+02
+5.8248188761631229e+02
+5.8262124522951251e+02
+5.8276061940077477e+02
+5.8290001007664603e+02
+5.8303941728134919e+02
+5.8317884105852534e+02
+5.8331828144873407e+02
+5.8345773845670556e+02
+5.8359721206405561e+02
+5.8373670225242347e+02
+5.8387620902804554e+02
+5.8401573243528037e+02
+5.8415527252176719e+02
+5.8429482931512723e+02
+5.8443440276291358e+02
+5.8457399279266281e+02
+5.8471359933764290e+02
+5.8485322239776042e+02
+5.8499286201591326e+02
+5.8513251823533062e+02
+5.8527219107608221e+02
+5.8541188052234202e+02
+5.8555158655519585e+02
+5.8569130916692257e+02
+5.8583104839457064e+02
+5.8597080428638094e+02
+5.8611057688453036e+02
+5.8625036616069042e+02
+5.8639017204104721e+02
+5.8652999445180330e+02
+5.8666983336572014e+02
+5.8680968882772208e+02
+5.8694956088894241e+02
+5.8708944958690472e+02
+5.8722935490469865e+02
+5.8736927681180509e+02
+5.8750921528191498e+02
+5.8764917033766733e+02
+5.8778914203327975e+02
+5.8792913042271039e+02
+5.8806913551274454e+02
+5.8820915723705070e+02
+5.8834919552300676e+02
+5.8848925031618023e+02
+5.8862932163489234e+02
+5.8876940951565371e+02
+5.8890951399446431e+02
+5.8904963510139135e+02
+5.8918977286267580e+02
+5.8932992730397632e+02
+5.8947009841990064e+02
+5.8961028615692578e+02
+5.8975049045738922e+02
+5.8989071127947261e+02
+5.9003094864473826e+02
+5.9017120259059277e+02
+5.9031147315137878e+02
+5.9045176032581287e+02
+5.9059206408962780e+02
+5.9073238441870353e+02
+5.9087272132071359e+02
+5.9101307485261327e+02
+5.9115344507559655e+02
+5.9129383202602310e+02
+5.9143423564091222e+02
+5.9157465583244846e+02
+5.9171509252001101e+02
+5.9185554570662259e+02
+5.9199601544926827e+02
+5.9213650180530453e+02
+5.9227700480040835e+02
+5.9241752441115239e+02
+5.9255806060988584e+02
+5.9269861338235228e+02
+5.9283918276787688e+02
+5.9297976881917862e+02
+5.9312037158226769e+02
+5.9326099102514911e+02
+5.9340162706550313e+02
+5.9354227962107689e+02
+5.9368294866397878e+02
+5.9382363425057838e+02
+5.9396433644449246e+02
+5.9410505529225566e+02
+5.9424579077206977e+02
+5.9438654284505469e+02
+5.9452731147718782e+02
+5.9466809669092845e+02
+5.9480889854517420e+02
+5.9494971709855304e+02
+5.9509055235701828e+02
+5.9523140424487792e+02
+5.9537227267941751e+02
+5.9551315760083082e+02
+5.9565405904095030e+02
+5.9579497705451661e+02
+5.9593591169258696e+02
+5.9607686296339000e+02
+5.9621783084752406e+02
+5.9635881532550127e+02
+5.9649981640034252e+02
+5.9664083410995579e+02
+5.9678186849525025e+02
+5.9692291957768555e+02
+5.9706398730092110e+02
+5.9720507158916575e+02
+5.9734617237340967e+02
+5.9748728966347346e+02
+5.9762842352003452e+02
+5.9776957400400727e+02
+5.9791074113960406e+02
+5.9805192489415163e+02
+5.9819312523008216e+02
+5.9833434212548002e+02
+5.9847557562103736e+02
+5.9861682577309841e+02
+5.9875809263171504e+02
+5.9889937617379576e+02
+5.9904067632906026e+02
+5.9918199302704545e+02
+5.9932332623356638e+02
+5.9946467597066771e+02
+5.9960604226523139e+02
+5.9974742514763238e+02
+5.9988882466221958e+02
+6.0003024085683444e+02
+6.0017167377274984e+02
+6.0031312337486793e+02
+6.0045458957881954e+02
+6.0059607230030633e+02
+6.0073757150852191e+02
+6.0087908725557315e+02
+6.0102061960069852e+02
+6.0116216858743985e+02
+6.0130373419654882e+02
+6.0144531639308059e+02
+6.0158691514699240e+02
+6.0172853048524098e+02
+6.0187016247155555e+02
+6.0201181116933049e+02
+6.0215347658509063e+02
+6.0229515863721076e+02
+6.0243685723648412e+02
+6.0257857231831952e+02
+6.0272030391659325e+02
+6.0286205208979732e+02
+6.0300381689216385e+02
+6.0314559832839473e+02
+6.0328739637123840e+02
+6.0342921099340640e+02
+6.0357104219739961e+02
+6.0371289003189270e+02
+6.0385475454953155e+02
+6.0399663578055106e+02
+6.0413853366553656e+02
+6.0428044812266239e+02
+6.0442237907693539e+02
+6.0456432653280058e+02
+6.0470629054595224e+02
+6.0484827117242241e+02
+6.0499026843721197e+02
+6.0513228231722360e+02
+6.0527431278522374e+02
+6.0541635982724813e+02
+6.0555842348241458e+02
+6.0570050380311091e+02
+6.0584260083512913e+02
+6.0598471454757953e+02
+6.0612684486010107e+02
+6.0626899169234127e+02
+6.0641115501399236e+02
+6.0655333487231269e+02
+6.0669553132123326e+02
+6.0683774440282286e+02
+6.0697997411169752e+02
+6.0712222043061161e+02
+6.0726448334471320e+02
+6.0740676286699431e+02
+6.0754905902840926e+02
+6.0769137185967929e+02
+6.0783370135954965e+02
+6.0797604747720391e+02
+6.0811841015756124e+02
+6.0826078936057604e+02
+6.0840318510634188e+02
+6.0854559742998629e+02
+6.0868802636408407e+02
+6.0883047191152423e+02
+6.0897293405604489e+02
+6.0911541278145910e+02
+6.0925790809527678e+02
+6.0940042004173586e+02
+6.0954294866823466e+02
+6.0968549400234417e+02
+6.0982805599232779e+02
+6.0997063456662261e+02
+6.1011322965897682e+02
+6.1025584126488900e+02
+6.1039846941969552e+02
+6.1054111415935392e+02
+6.1068377551721653e+02
+6.1082645352259908e+02
+6.1096914820446898e+02
+6.1111185957588225e+02
+6.1125458758624336e+02
+6.1139733216904438e+02
+6.1154009326353980e+02
+6.1168287087596684e+02
+6.1182566505577813e+02
+6.1196847585263458e+02
+6.1211130328552042e+02
+6.1225414732586830e+02
+6.1239700794102180e+02
+6.1253988511447517e+02
+6.1268277889433261e+02
+6.1282568934484948e+02
+6.1296861652265159e+02
+6.1311156039567209e+02
+6.1325452087462099e+02
+6.1339749787018877e+02
+6.1354049134904812e+02
+6.1368350136464562e+02
+6.1382652797789171e+02
+6.1396957123362597e+02
+6.1411263111240282e+02
+6.1425570757870582e+02
+6.1439880060198004e+02
+6.1454191020934854e+02
+6.1468503646514750e+02
+6.1482817943337557e+02
+6.1497133912063157e+02
+6.1511451544454178e+02
+6.1525770831507998e+02
+6.1540091766706200e+02
+6.1554414353467553e+02
+6.1568738597695017e+02
+6.1583064504861613e+02
+6.1597392075441064e+02
+6.1611721306681795e+02
+6.1626052195828686e+02
+6.1640384743135257e+02
+6.1654718953518579e+02
+6.1669054832296820e+02
+6.1683392382524562e+02
+6.1697731598201676e+02
+6.1712072471064425e+02
+6.1726414993539242e+02
+6.1740759166076487e+02
+6.1755104994303133e+02
+6.1769452483880127e+02
+6.1783801637326599e+02
+6.1798152452291833e+02
+6.1812504926006318e+02
+6.1826859057056197e+02
+6.1841214849450739e+02
+6.1855572308554918e+02
+6.1869931439050492e+02
+6.1884292237676357e+02
+6.1898654696047026e+02
+6.1913018805783702e+02
+6.1927384564039039e+02
+6.1941751976539115e+02
+6.1956121049747571e+02
+6.1970491788396123e+02
+6.1984864190288624e+02
+6.1999238251497036e+02
+6.2013613968583957e+02
+6.2027991343816450e+02
+6.2042370383141781e+02
+6.2056751092480590e+02
+6.2071133472472036e+02
+6.2085517515569143e+02
+6.2099903213520622e+02
+6.2114290560268807e+02
+6.2128679558529859e+02
+6.2143070213213434e+02
+6.2157462529089696e+02
+6.2171856509306497e+02
+6.2186252155965121e+02
+6.2200649471097972e+02
+6.2215048453655459e+02
+6.2229449097810573e+02
+6.2243851397325489e+02
+6.2258255347668182e+02
+6.2272660951130320e+02
+6.2287068211709413e+02
+6.2301477133149797e+02
+6.2315887716252803e+02
+6.2330299959920956e+02
+6.2344713863055370e+02
+6.2359129426367417e+02
+6.2373546653374615e+02
+6.2387965547835756e+02
+6.2402386111736018e+02
+6.2416808339965621e+02
+6.2431232225641122e+02
+6.2445657762459621e+02
+6.2460084950867486e+02
+6.2474513795665541e+02
+6.2488944301682477e+02
+6.2503376471071397e+02
+6.2517810301837994e+02
+6.2532245791631306e+02
+6.2546682939247216e+02
+6.2561121748069536e+02
+6.2575562222628957e+02
+6.2590004366881226e+02
+6.2604448178097505e+02
+6.2618893649236293e+02
+6.2633340773259022e+02
+6.2647789547609523e+02
+6.2662239976679587e+02
+6.2676692065458599e+02
+6.2691145817676158e+02
+6.2705601232022354e+02
+6.2720058305927512e+02
+6.2734517037209969e+02
+6.2748977428199908e+02
+6.2763439484138280e+02
+6.2777903210230670e+02
+6.2792368606651905e+02
+6.2806835665778863e+02
+6.2821304379317712e+02
+6.2835774741303726e+02
+6.2850246755089074e+02
+6.2864720426355018e+02
+6.2879195760377866e+02
+6.2893672757725074e+02
+6.2908151415926363e+02
+6.2922631732503453e+02
+6.2937113707542358e+02
+6.2951597345103869e+02
+6.2966082649590578e+02
+6.2980569623604811e+02
+6.2995058262547388e+02
+6.3009548560018834e+02
+6.3024040510124235e+02
+6.3038534112835032e+02
+6.3053029371907337e+02
+6.3067526291125637e+02
+6.3082024872189027e+02
+6.3096525113564326e+02
+6.3111027013440378e+02
+6.3125530571148727e+02
+6.3140035790592208e+02
+6.3154542676816391e+02
+6.3169051234220444e+02
+6.3183561459688281e+02
+6.3198073345255352e+02
+6.3212586882955941e+02
+6.3227102069607258e+02
+6.3241618909439831e+02
+6.3256137407321910e+02
+6.3270657567666115e+02
+6.3285179393062288e+02
+6.3299702885644638e+02
+6.3314228047130462e+02
+6.3328754874391018e+02
+6.3343283361170984e+02
+6.3357813501226872e+02
+6.3372345292149043e+02
+6.3386878737470477e+02
+6.3401413841235262e+02
+6.3415950606620879e+02
+6.3430489033338631e+02
+6.3445029120233107e+02
+6.3459570866394586e+02
+6.3474114273767862e+02
+6.3488659346139582e+02
+6.3503206087260173e+02
+6.3517754496873670e+02
+6.3532304568513860e+02
+6.3546856295180396e+02
+6.3561409671889874e+02
+6.3575964701726707e+02
+6.3590521389792320e+02
+6.3605079740785231e+02
+6.3619639754721265e+02
+6.3634201428594940e+02
+6.3648764759403366e+02
+6.3663329747312980e+02
+6.3677896397402901e+02
+6.3692464715174765e+02
+6.3707034704053035e+02
+6.3721606359153122e+02
+6.3736179673513209e+02
+6.3750754640674836e+02
+6.3765331260031155e+02
+6.3779909534750618e+02
+6.3794489468041741e+02
+6.3809071061746567e+02
+6.3823654315588954e+02
+6.3838239229110582e+02
+6.3852825802506482e+02
+6.3867414038585287e+02
+6.3882003940808943e+02
+6.3896595512160172e+02
+6.3911188750049178e+02
+6.3925783648291065e+02
+6.3940380200704294e+02
+6.3954978404898384e+02
+6.3969578264359234e+02
+6.3984179783078162e+02
+6.3998782963951373e+02
+6.4013387805494301e+02
+6.4027994305127299e+02
+6.4042602460710486e+02
+6.4057212275217410e+02
+6.4071823754920490e+02
+6.4086436906052040e+02
+6.4101051729134383e+02
+6.4115668215839355e+02
+6.4130286357077568e+02
+6.4144906146273252e+02
+6.4159527586905790e+02
+6.4174150684968163e+02
+6.4188775446015984e+02
+6.4203401870518974e+02
+6.4218029955665793e+02
+6.4232659698641771e+02
+6.4247291099720246e+02
+6.4261924163960737e+02
+6.4276558896834479e+02
+6.4291195301467178e+02
+6.4305833371601784e+02
+6.4320473098635739e+02
+6.4335114474711656e+02
+6.4349757500636883e+02
+6.4364402182808635e+02
+6.4379048527654470e+02
+6.4393696537825099e+02
+6.4408346210117395e+02
+6.4422997540824576e+02
+6.4437650527707069e+02
+6.4452305174394269e+02
+6.4466961485982711e+02
+6.4481619467008818e+02
+6.4496279115496634e+02
+6.4510940425268802e+02
+6.4525603390130459e+02
+6.4540268007042471e+02
+6.4554934277856830e+02
+6.4569602204846410e+02
+6.4584271790629248e+02
+6.4598943039204414e+02
+6.4613615954916304e+02
+6.4628290541520039e+02
+6.4642966795921814e+02
+6.4657644710608940e+02
+6.4672324278073631e+02
+6.4687005495512824e+02
+6.4701688367416034e+02
+6.4716372898900011e+02
+6.4731059093821966e+02
+6.4745746951000604e+02
+6.4760436467995009e+02
+6.4775127642714347e+02
+6.4789820477136539e+02
+6.4804514975864618e+02
+6.4819211143471500e+02
+6.4833908980103115e+02
+6.4848608479043230e+02
+6.4863309632985465e+02
+6.4878012436721644e+02
+6.4892716893437114e+02
+6.4907423008415435e+02
+6.4922130786512741e+02
+6.4936840227616153e+02
+6.4951551328406799e+02
+6.4966264085573948e+02
+6.4980978499494790e+02
+6.4995694576262974e+02
+6.5010412322463856e+02
+6.5025131742042970e+02
+6.5039852828386347e+02
+6.5054575572240242e+02
+6.5069299965116090e+02
+6.5084026007421596e+02
+6.5098753705304046e+02
+6.5113483064945376e+02
+6.5128214088872335e+02
+6.5142946773945948e+02
+6.5157681116539982e+02
+6.5172417114739494e+02
+6.5187154773475413e+02
+6.5201894099389972e+02
+6.5216635098342601e+02
+6.5231377767091317e+02
+6.5246122096522242e+02
+6.5260868077517534e+02
+6.5275615706588076e+02
+6.5290364988969498e+02
+6.5305115930647833e+02
+6.5319868536173976e+02
+6.5334622804357707e+02
+6.5349378732573655e+02
+6.5364136318548992e+02
+6.5378895564110451e+02
+6.5393656473729527e+02
+6.5408419051853468e+02
+6.5423183298831248e+02
+6.5437949208659268e+02
+6.5452716774787518e+02
+6.5467485992410059e+02
+6.5482256863697398e+02
+6.5497029392564059e+02
+6.5511803582640232e+02
+6.5526579434249425e+02
+6.5541356945581936e+02
+6.5556136114835272e+02
+6.5570916942774227e+02
+6.5585699434143135e+02
+6.5600483594028492e+02
+6.5615269425339477e+02
+6.5630056922275196e+02
+6.5644846076857345e+02
+6.5659636881707229e+02
+6.5674429336417620e+02
+6.5689223445078858e+02
+6.5704019211851937e+02
+6.5718816640634964e+02
+6.5733615734918681e+02
+6.5748416498158861e+02
+6.5763218931992924e+02
+6.5778023030785459e+02
+6.5792828787082669e+02
+6.5807636194060410e+02
+6.5822445252212663e+02
+6.5837255966754890e+02
+6.5852068342928794e+02
+6.5866882382833069e+02
+6.5881698083694528e+02
+6.5896515442320992e+02
+6.5911334457028067e+02
+6.5926155132162626e+02
+6.5940977473579437e+02
+6.5955801486446205e+02
+6.5970627167944701e+02
+6.5985454510104296e+02
+6.6000283504950846e+02
+6.6015114149447572e+02
+6.6029946448210751e+02
+6.6044780406514894e+02
+6.6059616028339599e+02
+6.6074453312484377e+02
+6.6089292256453723e+02
+6.6104132858107937e+02
+6.6118975119442109e+02
+6.6133819045119139e+02
+6.6148664639771641e+02
+6.6163511903552649e+02
+6.6178360829671578e+02
+6.6193211410740628e+02
+6.6208063641492549e+02
+6.6222917525142759e+02
+6.6237773067027183e+02
+6.6252630272050749e+02
+6.6267489140106602e+02
+6.6282349667854555e+02
+6.6297211851962413e+02
+6.6312075692806877e+02
+6.6326941196513712e+02
+6.6341808369703097e+02
+6.6356677216347771e+02
+6.6371547729830104e+02
+6.6386419900884925e+02
+6.6401293721002878e+02
+6.6416169190461551e+02
+6.6431046315207368e+02
+6.6445925101227283e+02
+6.6460805551270641e+02
+6.6475687663068300e+02
+6.6490571433919513e+02
+6.6505456862367271e+02
+6.6520343951930010e+02
+6.6535232707369914e+02
+6.6550123132850104e+02
+6.6565015225568459e+02
+6.6579908978229287e+02
+6.6594804383539201e+02
+6.6609701438841842e+02
+6.6624600148668253e+02
+6.6639500518167654e+02
+6.6654402551192356e+02
+6.6669306246406416e+02
+6.6684211601176969e+02
+6.6699118613266876e+02
+6.6714027285040447e+02
+6.6728937621830539e+02
+6.6743849628935232e+02
+6.6758763306591129e+02
+6.6773678647189706e+02
+6.6788595642447626e+02
+6.6803514286280131e+02
+6.6818434581397173e+02
+6.6833356532707296e+02
+6.6848280145000069e+02
+6.6863205421681391e+02
+6.6878132365264560e+02
+6.6893060978186065e+02
+6.6907991259173116e+02
+6.6922923201203241e+02
+6.6937856796759365e+02
+6.6952792040631300e+02
+6.6967728936835817e+02
+6.6982667491696554e+02
+6.6997607711031367e+02
+6.7012549594779830e+02
+6.7027493139088881e+02
+6.7042438340104184e+02
+6.7057385197681504e+02
+6.7072333717427466e+02
+6.7087283905443314e+02
+6.7102235765442083e+02
+6.7117189291583963e+02
+6.7132144475640814e+02
+6.7147101310064193e+02
+6.7162059795205653e+02
+6.7177019936513693e+02
+6.7191981739467337e+02
+6.7206945206285661e+02
+6.7221910334134657e+02
+6.7236877119745736e+02
+6.7251845561381867e+02
+6.7266815663432544e+02
+6.7281787431818952e+02
+6.7296760871767867e+02
+6.7311735980434332e+02
+6.7326712749765670e+02
+6.7341691171705634e+02
+6.7356671243185599e+02
+6.7371652968867920e+02
+6.7386636354079928e+02
+6.7401621402841556e+02
+6.7416608113942834e+02
+6.7431596484866361e+02
+6.7446586513453281e+02
+6.7461578201712200e+02
+6.7476571554340592e+02
+6.7491566576005664e+02
+6.7506563266877959e+02
+6.7521561620157775e+02
+6.7536561628445941e+02
+6.7551563286432076e+02
+6.7566566597161318e+02
+6.7581571565767581e+02
+6.7596578197009364e+02
+6.7611586491281048e+02
+6.7626596446161318e+02
+6.7641608059226485e+02
+6.7656621330722078e+02
+6.7671636265031123e+02
+6.7686652866892450e+02
+6.7701671139018629e+02
+6.7716691076016718e+02
+6.7731712670467482e+02
+6.7746735915574095e+02
+6.7761760811776151e+02
+6.7776787364181951e+02
+6.7791815577929208e+02
+6.7806845455256837e+02
+6.7821876993910428e+02
+6.7836910191249137e+02
+6.7851945045968455e+02
+6.7866981562109459e+02
+6.7882019745049604e+02
+6.7897059599497618e+02
+6.7912101122387674e+02
+6.7927144305638205e+02
+6.7942189141160702e+02
+6.7957235625468422e+02
+6.7972283762207508e+02
+6.7987333555637588e+02
+6.8002385009882823e+02
+6.8017438128525100e+02
+6.8032492915010869e+02
+6.8047549372254309e+02
+6.8062607496983480e+02
+6.8077667281935260e+02
+6.8092728719852732e+02
+6.8107791807839851e+02
+6.8122856549759933e+02
+6.8137922950057828e+02
+6.8152991012211169e+02
+6.8168060735829204e+02
+6.8183132119554011e+02
+6.8198205162303520e+02
+6.8213279866201594e+02
+6.8228356235440583e+02
+6.8243434274171375e+02
+6.8258513981995111e+02
+6.8273595351460574e+02
+6.8288678374509868e+02
+6.8303763045519156e+02
+6.8318849368600297e+02
+6.8333937350299163e+02
+6.8349026996632961e+02
+6.8364118307474143e+02
+6.8379211278730622e+02
+6.8394305906312297e+02
+6.8409402190204742e+02
+6.8424500136711094e+02
+6.8439599752677873e+02
+6.8454701042270358e+02
+6.8469803998928887e+02
+6.8484908613412449e+02
+6.8500014877202489e+02
+6.8515122790177929e+02
+6.8530232357635543e+02
+6.8545343584919408e+02
+6.8560456474799230e+02
+6.8575571026054274e+02
+6.8590687237120574e+02
+6.8605805107379604e+02
+6.8620924639994814e+02
+6.8636045839075052e+02
+6.8651168708163402e+02
+6.8666293244225460e+02
+6.8681419439983176e+02
+6.8696547288166460e+02
+6.8711676786221074e+02
+6.8726807938902527e+02
+6.8741940751595064e+02
+6.8757075228214035e+02
+6.8772211366798911e+02
+6.8787349163920294e+02
+6.8802488616649612e+02
+6.8817629727881058e+02
+6.8832772504265574e+02
+6.8847916952417086e+02
+6.8863063072979514e+02
+6.8878210857342901e+02
+6.8893360296101366e+02
+6.8908511382436086e+02
+6.8923664119876889e+02
+6.8938818514540628e+02
+6.8953974572110485e+02
+6.8969132293226926e+02
+6.8984291675277086e+02
+6.8999452715638517e+02
+6.9014615414362163e+02
+6.9029779775642885e+02
+6.9044945804031943e+02
+6.9060113502261538e+02
+6.9075282865786971e+02
+6.9090453888244485e+02
+6.9105626563710825e+02
+6.9120800891385352e+02
+6.9135976873772165e+02
+6.9151154513437348e+02
+6.9166333813361200e+02
+6.9181514777165887e+02
+6.9196697408528905e+02
+6.9211881709437614e+02
+6.9227067675119304e+02
+6.9242255299111139e+02
+6.9257444575457453e+02
+6.9272635504097127e+02
+6.9287828088772119e+02
+6.9303022333256831e+02
+6.9318218239473265e+02
+6.9333415806472283e+02
+6.9348615033057661e+02
+6.9363815918935870e+02
+6.9379018467423657e+02
+6.9394222682740440e+02
+6.9409428568497242e+02
+6.9424636121233232e+02
+6.9439845332924949e+02
+6.9455056195563338e+02
+6.9470268706560762e+02
+6.9485482871732859e+02
+6.9500698697618202e+02
+6.9515916188999381e+02
+6.9531135343635674e+02
+6.9546356157530374e+02
+6.9561578627190818e+02
+6.9576802754982509e+02
+6.9592028547050586e+02
+6.9607256009513014e+02
+6.9622485143085669e+02
+6.9637715940110843e+02
+6.9652948392210533e+02
+6.9668182493341862e+02
+6.9683418246802160e+02
+6.9698655658223913e+02
+6.9713894732797496e+02
+6.9729135470575181e+02
+6.9744377868294146e+02
+6.9759621922694066e+02
+6.9774867633972906e+02
+6.9790115007689212e+02
+6.9805364049862578e+02
+6.9820614764128163e+02
+6.9835867144583403e+02
+6.9851121182941222e+02
+6.9866376871591751e+02
+6.9881634210797233e+02
+6.9896893205898721e+02
+6.9912153862272510e+02
+6.9927416182335060e+02
+6.9942680163914793e+02
+6.9957945804445569e+02
+6.9973213102595366e+02
+6.9988482061969069e+02
+7.0003752687405722e+02
+7.0019024983133011e+02
+7.0034298946271679e+02
+7.0049574569357230e+02
+7.0064851844927500e+02
+7.0080130770242874e+02
+7.0095411349883807e+02
+7.0110693589060338e+02
+7.0125977491708568e+02
+7.0141263056668242e+02
+7.0156550281505133e+02
+7.0171839164128721e+02
+7.0187129706444739e+02
+7.0202421912937223e+02
+7.0217715788065561e+02
+7.0233011332239062e+02
+7.0248308539589050e+02
+7.0263607403706931e+02
+7.0278907919682410e+02
+7.0294210088598868e+02
+7.0309513913037949e+02
+7.0324819395637792e+02
+7.0340126539691460e+02
+7.0355435348914637e+02
+7.0370745826966549e+02
+7.0386057973691982e+02
+7.0401371783023581e+02
+7.0416687248385279e+02
+7.0432004364969112e+02
+7.0447323135038766e+02
+7.0462643562625988e+02
+7.0477965651469594e+02
+7.0493289401904428e+02
+7.0508614812069061e+02
+7.0523941880109192e+02
+7.0539270606792138e+02
+7.0554600996948568e+02
+7.0569933055758804e+02
+7.0585266786221246e+02
+7.0600602182607179e+02
+7.0615939237005955e+02
+7.0631277942126837e+02
+7.0646618297884640e+02
+7.0661960308843027e+02
+7.0677303979605995e+02
+7.0692649312552953e+02
+7.0707996306615337e+02
+7.0723344960427846e+02
+7.0738695273529459e+02
+7.0754047249075825e+02
+7.0769400891126861e+02
+7.0784756203187044e+02
+7.0800113182304983e+02
+7.0815471821364008e+02
+7.0830832113250005e+02
+7.0846194055158992e+02
+7.0861557650967995e+02
+7.0876922905128663e+02
+7.0892289821131305e+02
+7.0907658398620913e+02
+7.0923028636281083e+02
+7.0938400533060644e+02
+7.0953774090991305e+02
+7.0969149314093795e+02
+7.0984526206352496e+02
+7.0999904767585622e+02
+7.1015284991153544e+02
+7.1030666869861273e+02
+7.1046050398456623e+02
+7.1061435579459021e+02
+7.1076822417330891e+02
+7.1092210916248268e+02
+7.1107601077059587e+02
+7.1122992898466214e+02
+7.1138386379167514e+02
+7.1153781519881011e+02
+7.1169178324452639e+02
+7.1184576796997385e+02
+7.1199976939710120e+02
+7.1215378747105035e+02
+7.1230782211776102e+02
+7.1246187326940560e+02
+7.1261594093060046e+02
+7.1277002515270124e+02
+7.1292412598736598e+02
+7.1307824345771553e+02
+7.1323237754263528e+02
+7.1338652821720689e+02
+7.1354069546858750e+02
+7.1369487933224275e+02
+7.1384907985571431e+02
+7.1400329708065578e+02
+7.1415753098027130e+02
+7.1431178148360209e+02
+7.1446604851961899e+02
+7.1462033205716557e+02
+7.1477463212689042e+02
+7.1492894876475748e+02
+7.1508328200699611e+02
+7.1523763189089300e+02
+7.1539199845399992e+02
+7.1554638172824582e+02
+7.1570078168020234e+02
+7.1585519823427524e+02
+7.1600963131493324e+02
+7.1616408089265735e+02
+7.1631854700924418e+02
+7.1647302971262616e+02
+7.1662752903911314e+02
+7.1678204497853028e+02
+7.1693657750908051e+02
+7.1709112661278255e+02
+7.1724569231600242e+02
+7.1740027467371772e+02
+7.1755487374048596e+02
+7.1770948951699449e+02
+7.1786412192043429e+02
+7.1801877086081277e+02
+7.1817343627451896e+02
+7.1832811820346399e+02
+7.1848281671593998e+02
+7.1863753187485202e+02
+7.1879226368048785e+02
+7.1894701209273614e+02
+7.1910177707144919e+02
+7.1925655861471375e+02
+7.1941135677987791e+02
+7.1956617162938835e+02
+7.1972100320151469e+02
+7.1987585143782110e+02
+7.2003071625569396e+02
+7.2018559757895446e+02
+7.2034049540621447e+02
+7.2049540978433902e+02
+7.2065034076061511e+02
+7.2080528835944801e+02
+7.2096025256977487e+02
+7.2111523337748167e+02
+7.2127023077767183e+02
+7.2142524480231430e+02
+7.2158027549259543e+02
+7.2173532288407785e+02
+7.2189038694695432e+02
+7.2204546760924188e+02
+7.2220056479898290e+02
+7.2235567848784433e+02
+7.2251080871511317e+02
+7.2266595552589285e+02
+7.2282111895549872e+02
+7.2297629900009656e+02
+7.2313149564606294e+02
+7.2328670888251224e+02
+7.2344193873036670e+02
+7.2359718523107188e+02
+7.2375244842569100e+02
+7.2390772831187701e+02
+7.2406302481999478e+02
+7.2421833787462174e+02
+7.2437366742209520e+02
+7.2452901349579247e+02
+7.2468437615085213e+02
+7.2483975543797681e+02
+7.2499515135631646e+02
+7.2515056387175969e+02
+7.2530599295027093e+02
+7.2546143859558754e+02
+7.2561690086999727e+02
+7.2577237984082319e+02
+7.2592787554890742e+02
+7.2608338792916322e+02
+7.2623891689002119e+02
+7.2639446234667048e+02
+7.2655002429285514e+02
+7.2670560277300160e+02
+7.2686119783233062e+02
+7.2701680951311482e+02
+7.2717243785305482e+02
+7.2732808288945887e+02
+7.2748374463946254e+02
+7.2763942303951501e+02
+7.2779511800589273e+02
+7.2795082946196317e+02
+7.2810655741352616e+02
+7.2826230191956199e+02
+7.2841806303939086e+02
+7.2857384079949009e+02
+7.2872963517543292e+02
+7.2888544613841259e+02
+7.2904127367365095e+02
+7.2919711782247737e+02
+7.2935297864024983e+02
+7.2950885617555798e+02
+7.2966475039831744e+02
+7.2982066122768720e+02
+7.2997658858278919e+02
+7.3013253243135705e+02
+7.3028849281646853e+02
+7.3044446978768417e+02
+7.3060046338266056e+02
+7.3075647359144568e+02
+7.3091250039218392e+02
+7.3106854376676938e+02
+7.3122460374067691e+02
+7.3138068036749883e+02
+7.3153677370044784e+02
+7.3169288374186442e+02
+7.3184901041523790e+02
+7.3200515363727357e+02
+7.3216131334805493e+02
+7.3231748958117271e+02
+7.3247368239359525e+02
+7.3262989183782167e+02
+7.3278611791440233e+02
+7.3294236059037121e+02
+7.3309861983278734e+02
+7.3325489564369207e+02
+7.3341118807934970e+02
+7.3356749720068979e+02
+7.3372382304469591e+02
+7.3388016555257275e+02
+7.3403652464157915e+02
+7.3419290023540975e+02
+7.3434929233256764e+02
+7.3450570097982018e+02
+7.3466212622436751e+02
+7.3481856809114936e+02
+7.3497502657060011e+02
+7.3513150165018601e+02
+7.3528799332529002e+02
+7.3544450162295823e+02
+7.3560102657815355e+02
+7.3575756822172582e+02
+7.3591412653672273e+02
+7.3607070147534967e+02
+7.3622729298929914e+02
+7.3638390103026245e+02
+7.3654052554993223e+02
+3.0847274211137421e-01
+3.0823758778235866e-01
+3.0800258724284968e-01
+3.0776774044489719e-01
+3.0753304734055109e-01
+3.0729850788186130e-01
+3.0706412202087774e-01
+3.0682988970965031e-01
+3.0659581090022892e-01
+3.0636188554466348e-01
+3.0612811359500391e-01
+3.0589449500330007e-01
+3.0566102972160192e-01
+3.0542771770195931e-01
+3.0519455889642227e-01
+3.0496155325704061e-01
+3.0472870073586422e-01
+3.0449600128494309e-01
+3.0426345485632705e-01
+3.0403106140206609e-01
+3.0379882087421006e-01
+3.0356673322480887e-01
+3.0333479840591243e-01
+3.0310301636957071e-01
+3.0287138706783356e-01
+3.0263991045275085e-01
+3.0240858647637259e-01
+3.0217741509074864e-01
+3.0194639624792885e-01
+3.0171552989996325e-01
+3.0148481599890165e-01
+3.0125425449679399e-01
+3.0102384534569021e-01
+3.0079358849764015e-01
+3.0056348390469378e-01
+3.0033353151890096e-01
+3.0010373129231172e-01
+2.9987408317697584e-01
+2.9964458712494318e-01
+2.9941524308826384e-01
+2.9918605101898754e-01
+2.9895701086916437e-01
+2.9872812259084403e-01
+2.9849938613607663e-01
+2.9827080145691193e-01
+2.9804236850539995e-01
+2.9781408723359049e-01
+2.9758595759353357e-01
+2.9735797953727899e-01
+2.9713015301687673e-01
+2.9690247798437663e-01
+2.9667495439182873e-01
+2.9644758219128287e-01
+2.9622036133478891e-01
+2.9599329177439682e-01
+2.9576637346215651e-01
+2.9553960635011778e-01
+2.9531299039033071e-01
+2.9508652553484510e-01
+2.9486021173571086e-01
+2.9463404894497791e-01
+2.9440803711469621e-01
+2.9418217619691567e-01
+2.9395646614368609e-01
+2.9373090690705739e-01
+2.9350549843907969e-01
+2.9328024069180264e-01
+2.9305513361727625e-01
+2.9283017716755044e-01
+2.9260537129467518e-01
+2.9238071595070025e-01
+2.9215621108767564e-01
+2.9193185665765120e-01
+2.9170765261267695e-01
+2.9148359890480269e-01
+2.9125969548607833e-01
+2.9103594230855384e-01
+2.9081233932427908e-01
+2.9058888648530401e-01
+2.9036558374367849e-01
+2.9014243105145249e-01
+2.8991942836067586e-01
+2.8969657562339857e-01
+2.8947387279167036e-01
+2.8925131981754137e-01
+2.8902891665306135e-01
+2.8880666325028032e-01
+2.8858455956124812e-01
+2.8836260553801463e-01
+2.8814080113262985e-01
+2.8791914629714355e-01
+2.8769764098360584e-01
+2.8747628514406642e-01
+2.8725507873057532e-01
+2.8703402169518250e-01
+2.8681311398993770e-01
+2.8659235556689100e-01
+2.8637174637809215e-01
+2.8615128637559117e-01
+2.8593097551143798e-01
+2.8571081373768237e-01
+2.8549080100637436e-01
+2.8527093726956387e-01
+2.8505122247930070e-01
+2.8483165658763487e-01
+2.8461223954661624e-01
+2.8439297130829466e-01
+2.8417385182472021e-01
+2.8395488104794264e-01
+2.8373605893001186e-01
+2.8351738542297789e-01
+2.8329886047889052e-01
+2.8308048404979969e-01
+2.8286225608775539e-01
+2.8264417654480745e-01
+2.8242624537300587e-01
+2.8220846252440046e-01
+2.8199082795104113e-01
+2.8177334160497780e-01
+2.8155600343826037e-01
+2.8133881340293887e-01
+2.8112177145106310e-01
+2.8090487753468291e-01
+2.8068813160584832e-01
+2.8047153361660926e-01
+2.8025508351901546e-01
+2.8003878126511705e-01
+2.7982262680696379e-01
+2.7960662009660564e-01
+2.7939076108609251e-01
+2.7917504972747431e-01
+2.7895948597280096e-01
+2.7874406977412236e-01
+2.7852880108348832e-01
+2.7831367985294891e-01
+2.7809870603455394e-01
+2.7788387958035338e-01
+2.7766920044239712e-01
+2.7745466857273504e-01
+2.7724028392341704e-01
+2.7702604644649309e-01
+2.7681195609401299e-01
+2.7659801281802682e-01
+2.7638421657058432e-01
+2.7617056730373551e-01
+2.7595706496953026e-01
+2.7574370952001848e-01
+2.7553050090725006e-01
+2.7531743908327488e-01
+2.7510452400014296e-01
+2.7489175560990414e-01
+2.7467913386460829e-01
+2.7446665871630538e-01
+2.7425433011704536e-01
+2.7404214801887794e-01
+2.7383011237385324e-01
+2.7361822313402118e-01
+2.7340648025143144e-01
+2.7319488367813416e-01
+2.7298343336617914e-01
+2.7277212926761635e-01
+2.7256097133449558e-01
+2.7234995951886687e-01
+2.7213909377278012e-01
+2.7192837404828513e-01
+2.7171780029743187e-01
+2.7150737247227030e-01
+2.7129709052485029e-01
+2.7108695440722169e-01
+2.7087696407143447e-01
+2.7066711946953859e-01
+2.7045742055358390e-01
+2.7024786727562022e-01
+2.7003845958769762e-01
+2.6982919744186590e-01
+2.6962008079017508e-01
+2.6941110958467485e-01
+2.6920228377741540e-01
+2.6899360332044642e-01
+2.6878506816581793e-01
+2.6857667826557979e-01
+2.6836843357178197e-01
+2.6816033403647432e-01
+2.6795237961170676e-01
+2.6774457024952925e-01
+2.6753690590199153e-01
+2.6732938652114374e-01
+2.6712201205903563e-01
+2.6691478246771722e-01
+2.6670769769923830e-01
+2.6650075770564885e-01
+2.6629396243899883e-01
+2.6608731185133805e-01
+2.6588080589471641e-01
+2.6567444452118394e-01
+2.6546822768279044e-01
+2.6526215533158581e-01
+2.6505622741962004e-01
+2.6485044389894297e-01
+2.6464480472160457e-01
+2.6443930983965475e-01
+2.6423395920514331e-01
+2.6402875277012028e-01
+2.6382369048663551e-01
+2.6361877230673891e-01
+2.6341399818248046e-01
+2.6320936806591000e-01
+2.6300488190907739e-01
+2.6280053966403266e-01
+2.6259634128282561e-01
+2.6239228671750625e-01
+2.6218837592012434e-01
+2.6198460884273000e-01
+2.6178098543737294e-01
+2.6157750565610316e-01
+2.6137416945097069e-01
+2.6117097677402512e-01
+2.6096792757731668e-01
+2.6076502181289507e-01
+2.6056225943281031e-01
+2.6035964038911230e-01
+2.6015716463385086e-01
+2.5995483211907605e-01
+2.5975264279683763e-01
+2.5955059661918556e-01
+2.5934869353816981e-01
+2.5914693350584023e-01
+2.5894531647424673e-01
+2.5874384239543924e-01
+2.5854251122146760e-01
+2.5834132290438183e-01
+2.5814027739623180e-01
+2.5793937464906735e-01
+2.5773861461493841e-01
+2.5753799724589499e-01
+2.5733752249398695e-01
+2.5713719031126414e-01
+2.5693700064977648e-01
+2.5673695346157394e-01
+2.5653704869870642e-01
+2.5633728631322372e-01
+2.5613766625717593e-01
+2.5593818848261279e-01
+2.5573885294158427e-01
+2.5553965958614033e-01
+2.5534060836833083e-01
+2.5514169924020569e-01
+2.5494293215381481e-01
+2.5474430706120810e-01
+2.5454582391443553e-01
+2.5434748266554685e-01
+2.5414928326659214e-01
+2.5395122566962125e-01
+2.5375330982668409e-01
+2.5355553568983052e-01
+2.5335790321111051e-01
+2.5316041234257392e-01
+2.5296306303627070e-01
+2.5276585524425077e-01
+2.5256878891856394e-01
+2.5237186401126022e-01
+2.5217508047438952e-01
+2.5197843826000171e-01
+2.5178193732014670e-01
+2.5158557760687439e-01
+2.5138935907223481e-01
+2.5119328166827765e-01
+2.5099734534705298e-01
+2.5080155006061067e-01
+2.5060589576100056e-01
+2.5041038240027269e-01
+2.5021500993047685e-01
+2.5001977830366306e-01
+2.4982468747188111e-01
+2.4962973738718097e-01
+2.4943492800161260e-01
+2.4924025926722582e-01
+2.4904573113607054e-01
+2.4885134356019675e-01
+2.4865709649165432e-01
+2.4846298988249310e-01
+2.4826902368476308e-01
+2.4807519785051410e-01
+2.4788151233179617e-01
+2.4768796708065910e-01
+2.4749456204915282e-01
+2.4730129718932728e-01
+2.4710817245323236e-01
+2.4691518779291796e-01
+2.4672234316043401e-01
+2.4652963850783038e-01
+2.4633707378715705e-01
+2.4614464895046387e-01
+2.4595236394980075e-01
+2.4576021873721762e-01
+2.4556821326476438e-01
+2.4537634748449097e-01
+2.4518462134844726e-01
+2.4499303480868315e-01
+2.4480158781724862e-01
+2.4461028032619347e-01
+2.4441911228756769e-01
+2.4422808365342116e-01
+2.4403719437580379e-01
+2.4384644440676553e-01
+2.4365583369835622e-01
+2.4346536220262582e-01
+2.4327502987162419e-01
+2.4308483665740130e-01
+2.4289478251200700e-01
+2.4270486738749122e-01
+2.4251509123590392e-01
+2.4232545400929495e-01
+2.4213595565971424e-01
+2.4194659613921166e-01
+2.4175737539983713e-01
+2.4156829339364061e-01
+2.4137935007267200e-01
+2.4119054538898119e-01
+2.4100187929461808e-01
+2.4081335174163257e-01
+2.4062496268207459e-01
+2.4043671206799405e-01
+2.4024859985144087e-01
+2.4006062598446493e-01
+2.3987279041911613e-01
+2.3968509310744440e-01
+2.3949753400149967e-01
+2.3931011305333180e-01
+2.3912283021499076e-01
+2.3893568543852642e-01
+2.3874867867598867e-01
+2.3856180987942749e-01
+2.3837507900089269e-01
+2.3818848599243425e-01
+2.3800203080610205e-01
+2.3781571339394603e-01
+2.3762953370801604e-01
+2.3744349170036208e-01
+2.3725758732303398e-01
+2.3707182052808165e-01
+2.3688619126755503e-01
+2.3670069949350406e-01
+2.3651534515797859e-01
+2.3633012821302851e-01
+2.3614504861070384e-01
+2.3596010630305439e-01
+2.3577530124213006e-01
+2.3559063337998082e-01
+2.3540610266865658e-01
+2.3522170906020717e-01
+2.3503745250668259e-01
+2.3485333296013272e-01
+2.3466935037260744e-01
+2.3448550469615670e-01
+2.3430179588283034e-01
+2.3411822388467837e-01
+2.3393478865375061e-01
+2.3375149014209703e-01
+2.3356832830176749e-01
+2.3338530308481192e-01
+2.3320241444328024e-01
+2.3301966232922236e-01
+2.3283704669468819e-01
+2.3265456749172758e-01
+2.3247222467239054e-01
+2.3229001818872688e-01
+2.3210794799278661e-01
+2.3192601403661953e-01
+2.3174421627227562e-01
+2.3156255465180478e-01
+2.3138102912725689e-01
+2.3119963965068191e-01
+2.3101838617412968e-01
+2.3083726864965015e-01
+2.3065628702929328e-01
+2.3047544126510885e-01
+2.3029473130914688e-01
+2.3011415711345726e-01
+2.2993371863008985e-01
+2.2975341581109460e-01
+2.2957324860852141e-01
+2.2939321697442022e-01
+2.2921332086084087e-01
+2.2903356021983329e-01
+2.2885393500344745e-01
+2.2867444516373317e-01
+2.2849509065274040e-01
+2.2831587142251911e-01
+2.2813678742511911e-01
+2.2795783861259036e-01
+2.2777902493698274e-01
+2.2760034635034621e-01
+2.2742180280473059e-01
+2.2724339425218590e-01
+2.2706512064476195e-01
+2.2688698193450874e-01
+2.2670897807347612e-01
+2.2653110901371398e-01
+2.2635337470727226e-01
+2.2617577510620090e-01
+2.2599831016254979e-01
+2.2582097982836877e-01
+2.2564378405570784e-01
+2.2546672279661686e-01
+2.2528979600314578e-01
+2.2511300362734443e-01
+2.2493634562126280e-01
+2.2475982193695079e-01
+2.2458343252645827e-01
+2.2440717734183516e-01
+2.2423105633513138e-01
+2.2405506945839684e-01
+2.2387921666368146e-01
+2.2370349790303509e-01
+2.2352791312850770e-01
+2.2335246229214922e-01
+2.2317714534600946e-01
+2.2300196224213842e-01
+2.2282691293258597e-01
+2.2265199736940203e-01
+2.2247721550463651e-01
+2.2230256729033931e-01
+2.2212805267856034e-01
+2.2195367162134952e-01
+2.2177942407075674e-01
+2.2160530997883190e-01
+2.2143132929762496e-01
+2.2125748197918577e-01
+2.2108376797556428e-01
+2.2091018723881040e-01
+2.2073673972097402e-01
+2.2056342537410506e-01
+2.2039024415025341e-01
+2.2021719600146900e-01
+2.2004428087980171e-01
+2.1987149873730147e-01
+2.1969884952601820e-01
+2.1952633319800180e-01
+2.1935394970530217e-01
+2.1918169899996923e-01
+2.1900958103405288e-01
+2.1883759575960302e-01
+2.1866574312866954e-01
+2.1849402309330243e-01
+2.1832243560555153e-01
+2.1815098061746674e-01
+2.1797965808109807e-01
+2.1780846794849532e-01
+2.1763741017170840e-01
+2.1746648470278729e-01
+2.1729569149378186e-01
+2.1712503049674203e-01
+2.1695450166371769e-01
+2.1678410494675876e-01
+2.1661384029791514e-01
+2.1644370766923676e-01
+2.1627370701277351e-01
+2.1610383828057528e-01
+2.1593410142469205e-01
+2.1576449639717366e-01
+2.1559502315007001e-01
+2.1542568163543108e-01
+2.1525647180530671e-01
+2.1508739361174689e-01
+2.1491844700680146e-01
+2.1474963194252028e-01
+2.1458094837095337e-01
+2.1441239624415062e-01
+2.1424397551416188e-01
+2.1407568613303710e-01
+2.1390752805282620e-01
+2.1373950122557905e-01
+2.1357160560334554e-01
+2.1340384113817568e-01
+2.1323620778211930e-01
+2.1306870548722631e-01
+2.1290133420554663e-01
+2.1273409388913017e-01
+2.1256698449002687e-01
+2.1240000596028658e-01
+2.1223315825195926e-01
+2.1206644131709479e-01
+2.1189985510774312e-01
+2.1173339957595405e-01
+2.1156707467377761e-01
+2.1140088035326368e-01
+2.1123481656646215e-01
+2.1106888326542289e-01
+2.1090308040219585e-01
+2.1073740792883100e-01
+2.1057186579737813e-01
+2.1040645395988725e-01
+2.1024117236840817e-01
+2.1007602097499092e-01
+2.0991099973168531e-01
+2.0974610859054132e-01
+2.0958134750360879e-01
+2.0941671642293763e-01
+2.0925221530057783e-01
+2.0908784408857922e-01
+2.0892360273899174e-01
+2.0875949120386530e-01
+2.0859550943524982e-01
+2.0843165738519520e-01
+2.0826793500575130e-01
+2.0810434224896812e-01
+2.0794087906689548e-01
+2.0777754541158336e-01
+2.0761434123508166e-01
+2.0745126648944018e-01
+2.0728832112670900e-01
+2.0712550509893790e-01
+2.0696281835817687e-01
+2.0680026085647574e-01
+2.0663783254588447e-01
+2.0647553337845301e-01
+2.0631336330623118e-01
+2.0615132228126892e-01
+2.0598941025561618e-01
+2.0582762718132280e-01
+2.0566597301043876e-01
+2.0550444769501391e-01
+2.0534305118709817e-01
+2.0518178343874149e-01
+2.0502064440199377e-01
+2.0485963402890489e-01
+2.0469875227152473e-01
+2.0453799908190326e-01
+2.0437737441209036e-01
+2.0421687821413595e-01
+2.0405651044008993e-01
+2.0389627104200225e-01
+2.0373615997192274e-01
+2.0357617718190135e-01
+2.0341632262398801e-01
+2.0325659625023262e-01
+2.0309699801268505e-01
+2.0293752786339525e-01
+2.0277818575441309e-01
+2.0261897163778853e-01
+2.0245988546557148e-01
+2.0230092718981180e-01
+2.0214209676255940e-01
+2.0198339413586422e-01
+2.0182481926177614e-01
+2.0166637209234511e-01
+2.0150805257962104e-01
+2.0134986067565380e-01
+2.0119179633249329e-01
+2.0103385950218947e-01
+2.0087605013679222e-01
+2.0071836818835143e-01
+2.0056081360891706e-01
+2.0040338635053898e-01
+2.0024608636526708e-01
+2.0008891360515133e-01
+1.9993186802224161e-01
+1.9977494956858782e-01
+1.9961815819623985e-01
+1.9946149385724762e-01
+1.9930495650366109e-01
+1.9914854608753013e-01
+1.9899226256090463e-01
+1.9883610587583453e-01
+1.9868007598436971e-01
+1.9852417283856011e-01
+1.9836839639045564e-01
+1.9821274659210619e-01
+1.9805722339556164e-01
+1.9790182675287196e-01
+1.9774655661608703e-01
+1.9759141293725674e-01
+1.9743639566843102e-01
+1.9728150476165979e-01
+1.9712674016899295e-01
+1.9697210184248037e-01
+1.9681758973417207e-01
+1.9666320379611779e-01
+1.9650894398036761e-01
+1.9635481023897131e-01
+1.9620080252397887e-01
+1.9604692078744018e-01
+1.9589316498140513e-01
+1.9573953505792369e-01
+1.9558603096904567e-01
+1.9543265266682106e-01
+1.9527940010329975e-01
+1.9512627323053161e-01
+1.9497327200056663e-01
+1.9482039636545462e-01
+1.9466764627724559e-01
+1.9451502168798934e-01
+1.9436252254973585e-01
+1.9421014881453502e-01
+1.9405790043443677e-01
+1.9390577736149101e-01
+1.9375377954774758e-01
+1.9360190694525653e-01
+1.9345015950606759e-01
+1.9329853718223078e-01
+1.9314703992579602e-01
+1.9299566768881316e-01
+1.9284442042333214e-01
+1.9269329808140284e-01
+1.9254230061507521e-01
+1.9239142797639913e-01
+1.9224068011742457e-01
+1.9209005699020137e-01
+1.9193955854677944e-01
+1.9178918473920870e-01
+1.9163893551953909e-01
+1.9148881083982050e-01
+1.9133881065210279e-01
+1.9118893490843594e-01
+1.9103918356086985e-01
+1.9088955656145440e-01
+1.9074005386223952e-01
+1.9059067541527508e-01
+1.9044142117261104e-01
+1.9029229108629730e-01
+1.9014328510838371e-01
+1.8999440319092026e-01
+1.8984564528595682e-01
+1.8969701134554329e-01
+1.8954850132172960e-01
+1.8940011516656563e-01
+1.8925185283210133e-01
+1.8910371427038658e-01
+1.8895569943347129e-01
+1.8880780827340538e-01
+1.8866004074223877e-01
+1.8851239679202136e-01
+1.8836487637480301e-01
+1.8821747944263370e-01
+1.8807020594756330e-01
+1.8792305584164176e-01
+1.8777602907691893e-01
+1.8762912560544476e-01
+1.8748234537926911e-01
+1.8733568835044195e-01
+1.8718915447101320e-01
+1.8704274369303270e-01
+1.8689645596855037e-01
+1.8675029124961617e-01
+1.8660424948827997e-01
+1.8645833063659173e-01
+1.8631253464660125e-01
+1.8616686147035855e-01
+1.8602131105991346e-01
+1.8587588336731595e-01
+1.8573057834461590e-01
+1.8558539594386320e-01
+1.8544033611710781e-01
+1.8529539881639959e-01
+1.8515058399378845e-01
+1.8500589160132436e-01
+1.8486132159105717e-01
+1.8471687391503680e-01
+1.8457254852531318e-01
+1.8442834537393615e-01
+1.8428426441295573e-01
+1.8414030559442174e-01
+1.8399646887038412e-01
+1.8385275419289282e-01
+1.8370916151399766e-01
+1.8356569078574861e-01
+1.8342234196019558e-01
+1.8327911498938843e-01
+1.8313600982537714e-01
+1.8299302642021156e-01
+1.8285016472594162e-01
+1.8270742469461723e-01
+1.8256480627828831e-01
+1.8242230942900475e-01
+1.8227993409881643e-01
+1.8213768023977336e-01
+1.8199554780392535e-01
+1.8185353674332233e-01
+1.8171164701001424e-01
+1.8156987855605100e-01
+1.8142823133348246e-01
+1.8128670529435853e-01
+1.8114530039072921e-01
+1.8100401657464432e-01
+1.8086285379815378e-01
+1.8072181201330750e-01
+1.8058089117215545e-01
+1.8044009122674748e-01
+1.8029941212913350e-01
+1.8015885383136343e-01
+1.8001841628548718e-01
+1.7987809944355465e-01
+1.7973790325761577e-01
+1.7959782767972043e-01
+1.7945787266191854e-01
+1.7931803815626002e-01
+1.7917832411479478e-01
+1.7903873048957269e-01
+1.7889925723264372e-01
+1.7875990429605776e-01
+1.7862067163186468e-01
+1.7848155919211439e-01
+1.7834256692885686e-01
+1.7820369479414197e-01
+1.7806494274001960e-01
+1.7792631071853970e-01
+1.7778779868175218e-01
+1.7764940658170691e-01
+1.7751113437045382e-01
+1.7737298200004281e-01
+1.7723494942252382e-01
+1.7709703658994669e-01
+1.7695924345436143e-01
+1.7682156996781787e-01
+1.7668401608236595e-01
+1.7654658175005555e-01
+1.7640926692293663e-01
+1.7627207155305905e-01
+1.7613499559247273e-01
+1.7599803899322758e-01
+1.7586120170737354e-01
+1.7572448368696048e-01
+1.7558788488403831e-01
+1.7545140525065700e-01
+1.7531504473886639e-01
+1.7517880330071639e-01
+1.7504268088825695e-01
+1.7490667745353794e-01
+1.7477079294860931e-01
+1.7463502732552094e-01
+1.7449938053632275e-01
+1.7436385253306461e-01
+1.7422844326779649e-01
+1.7409315269256825e-01
+1.7395798075942986e-01
+1.7382292742043115e-01
+1.7368799262762208e-01
+1.7355317633305256e-01
+1.7341847848877248e-01
+1.7328389904683175e-01
+1.7314943795928028e-01
+1.7301509517816799e-01
+1.7288087065554480e-01
+1.7274676434346059e-01
+1.7261277619396526e-01
+1.7247890615910877e-01
+1.7234515419094096e-01
+1.7221152024151179e-01
+1.7207800426287118e-01
+1.7194460620706897e-01
+1.7181132602615512e-01
+1.7167816367217956e-01
+1.7154511909719217e-01
+1.7141219225324283e-01
+1.7127938309238150e-01
+1.7114669156665807e-01
+1.7101411762812244e-01
+1.7088166122882453e-01
+1.7074932232081425e-01
+1.7061710085614148e-01
+1.7048499678685616e-01
+1.7035301006500819e-01
+1.7022114064264748e-01
+1.7008938847182395e-01
+1.6995775350458747e-01
+1.6982623569298802e-01
+1.6969483498907545e-01
+1.6956355134489967e-01
+1.6943238471251060e-01
+1.6930133504395817e-01
+1.6917040229129227e-01
+1.6903958640656280e-01
+1.6890888734181966e-01
+1.6877830504911281e-01
+1.6864783948049211e-01
+1.6851749058800750e-01
+1.6838725832370888e-01
+1.6825714263964614e-01
+1.6812714348786920e-01
+1.6799726082042796e-01
+1.6786749458937233e-01
+1.6773784474675227e-01
+1.6760831124461761e-01
+1.6747889403501834e-01
+1.6734959307000430e-01
+1.6722040830162541e-01
+1.6709133968193163e-01
+1.6696238716297279e-01
+1.6683355069679887e-01
+1.6670483023545973e-01
+1.6657622573100533e-01
+1.6644773713548552e-01
+1.6631936440095024e-01
+1.6619110747944940e-01
+1.6606296632303291e-01
+1.6593494088375066e-01
+1.6580703111365258e-01
+1.6567923696478853e-01
+1.6555155838920854e-01
+1.6542399533896240e-01
+1.6529654776610003e-01
+1.6516921562267139e-01
+1.6504199886072640e-01
+1.6491489743231491e-01
+1.6478791128948683e-01
+1.6466104038429213e-01
+1.6453428466878067e-01
+1.6440764409500236e-01
+1.6428111861500710e-01
+1.6415470818084488e-01
+1.6402841274456548e-01
+1.6390223225821893e-01
+1.6377616667385503e-01
+1.6365021594352380e-01
+1.6352438001927505e-01
+1.6339865885315877e-01
+1.6327305239722481e-01
+1.6314756060352309e-01
+1.6302218342410352e-01
+1.6289692081101603e-01
+1.6277177271631055e-01
+1.6264673909203692e-01
+1.6252181989024508e-01
+1.6239701506298493e-01
+1.6227232456230645e-01
+1.6214774834025944e-01
+1.6202328634889387e-01
+1.6189893854025963e-01
+1.6177470486640666e-01
+1.6165058527938483e-01
+1.6152657973124407e-01
+1.6140268817403430e-01
+1.6127891055980537e-01
+1.6115524684060728e-01
+1.6103169696848985e-01
+1.6090826089550306e-01
+1.6078493857369677e-01
+1.6066172995512090e-01
+1.6053863499182539e-01
+1.6041565363586013e-01
+1.6029278583927500e-01
+1.6017003155411996e-01
+1.6004739073244484e-01
+1.5992486332629963e-01
+1.5980244928773424e-01
+1.5968014856879853e-01
+1.5955796112154241e-01
+1.5943588689801580e-01
+1.5931392585026866e-01
+1.5919207793035081e-01
+1.5907034309031223e-01
+1.5894872128220280e-01
+1.5882721245807241e-01
+1.5870581656997101e-01
+1.5858453356994848e-01
+1.5846336341005474e-01
+1.5834230604233968e-01
+1.5822136141885326e-01
+1.5810052949164533e-01
+1.5797981021276583e-01
+1.5785920353426466e-01
+1.5773870940819174e-01
+1.5761832778659696e-01
+1.5749805862153024e-01
+1.5737790186504147e-01
+1.5725785746918061e-01
+1.5713792538599752e-01
+1.5701810556754212e-01
+1.5689839796586433e-01
+1.5677880253301404e-01
+1.5665931922104118e-01
+1.5653994798199566e-01
+1.5642068876792736e-01
+1.5630154153088621e-01
+1.5618250622292215e-01
+1.5606358279608501e-01
+1.5594477120242478e-01
+1.5582607139399132e-01
+1.5570748332283457e-01
+1.5558900694100439e-01
+1.5547064220055073e-01
+1.5535238905352350e-01
+1.5523424745197259e-01
+1.5511621734794789e-01
+1.5499829869349935e-01
+1.5488049144067689e-01
+1.5476279554153038e-01
+1.5464521094810973e-01
+1.5452773761246488e-01
+1.5441037548664571e-01
+1.5429312452270216e-01
+1.5417598467268409e-01
+1.5405895588864144e-01
+1.5394203812262414e-01
+1.5382523132668205e-01
+1.5370853545286511e-01
+1.5359195045322324e-01
+1.5347547627980632e-01
+1.5335911288466425e-01
+1.5324286021984698e-01
+1.5312671823740440e-01
+1.5301068688938640e-01
+1.5289476612784292e-01
+1.5277895590482388e-01
+1.5266325617237914e-01
+1.5254766688255861e-01
+1.5243218798741226e-01
+1.5231681943898995e-01
+1.5220156118934158e-01
+1.5208641319051708e-01
+1.5197137539456637e-01
+1.5185644775353935e-01
+1.5174163021948592e-01
+1.5162692274445599e-01
+1.5151232528049946e-01
+1.5139783777966628e-01
+1.5128346019400632e-01
+1.5116919247556948e-01
+1.5105503457640573e-01
+1.5094098644856491e-01
+1.5082704804409697e-01
+1.5071321931505177e-01
+1.5059950021347929e-01
+1.5048589069142940e-01
+1.5037239070095199e-01
+1.5025900019409699e-01
+1.5014571912291436e-01
+1.5003254743945391e-01
+1.4991948509576561e-01
+1.4980653204389935e-01
+1.4969368823590506e-01
+1.4958095362383261e-01
+1.4946832815973196e-01
+1.4935581179565299e-01
+1.4924340448364559e-01
+1.4913110617575970e-01
+1.4901891682404522e-01
+1.4890683638055208e-01
+1.4879486479733012e-01
+1.4868300202642931e-01
+1.4857124801989957e-01
+1.4845960272979075e-01
+1.4834806610815282e-01
+1.4823663810703566e-01
+1.4812531867848916e-01
+1.4801410777456325e-01
+1.4790300534730785e-01
+1.4779201134877287e-01
+1.4768112573100819e-01
+1.4757034844606373e-01
+1.4745967944598942e-01
+1.4734911868283512e-01
+1.4723866610865080e-01
+1.4712832167548634e-01
+1.4701808533539162e-01
+1.4690795704041659e-01
+1.4679793674261116e-01
+1.4668802439402523e-01
+1.4657821994670869e-01
+1.4646852335271146e-01
+1.4635893456408347e-01
+1.4624945353287461e-01
+1.4614008021113478e-01
+1.4603081455091388e-01
+1.4592165650426187e-01
+1.4581260602322860e-01
+1.4570366305986404e-01
+1.4559482756621805e-01
+1.4548609949434055e-01
+1.4537747879628143e-01
+1.4526896542409065e-01
+1.4516055932981808e-01
+1.4505226046551364e-01
+1.4494406878322724e-01
+1.4483598423500879e-01
+1.4472800677290820e-01
+1.4462013634897536e-01
+1.4451237291526020e-01
+1.4440471642381261e-01
+1.4429716682668253e-01
+1.4418972407591985e-01
+1.4408238812357449e-01
+1.4397515892169632e-01
+1.4386803642233531e-01
+1.4376102057754131e-01
+1.4365411133936426e-01
+1.4354730865985404e-01
+1.4344061249106063e-01
+1.4333402278503388e-01
+1.4322753949382369e-01
+1.4312116256947999e-01
+1.4301489196405270e-01
+1.4290872762959173e-01
+1.4280266951814696e-01
+1.4269671758176830e-01
+1.4259087177250571e-01
+1.4248513204240904e-01
+1.4237949834352823e-01
+1.4227397062791317e-01
+1.4216854884761379e-01
+1.4206323295467999e-01
+1.4195802290116166e-01
+1.4185291863910873e-01
+1.4174792012057111e-01
+1.4164302729759870e-01
+1.4153824012224142e-01
+1.4143355854654918e-01
+1.4132898252257187e-01
+1.4122451200235941e-01
+1.4112014693796171e-01
+1.4101588728142869e-01
+1.4091173298481025e-01
+1.4080768400015625e-01
+1.4070374027951668e-01
+1.4059990177494142e-01
+1.4049616843848034e-01
+1.4039254022218339e-01
+1.4028901707810049e-01
+1.4018559895828153e-01
+1.4008228581477639e-01
+1.3997907759963504e-01
+1.3987597426490733e-01
+1.3977297576264319e-01
+1.3967008204489256e-01
+1.3956729306370530e-01
+1.3946460877113137e-01
+1.3936202911922063e-01
+1.3925955406002299e-01
+1.3915718354558840e-01
+1.3905491752796673e-01
+1.3895275595920792e-01
+1.3885069879136186e-01
+1.3874874597647846e-01
+1.3864689746660763e-01
+1.3854515321379929e-01
+1.3844351317010334e-01
+1.3834197728756970e-01
+1.3824054551824827e-01
+1.3813921781418892e-01
+1.3803799412744161e-01
+1.3793687441005625e-01
+1.3783585861408273e-01
+1.3773494669157096e-01
+1.3763413859457085e-01
+1.3753343427513232e-01
+1.3743283368530523e-01
+1.3733233677713957e-01
+1.3723194350268519e-01
+1.3713165381399200e-01
+1.3703146766310997e-01
+1.3693138500208893e-01
+1.3683140578297881e-01
+1.3673152995782956e-01
+1.3663175747869105e-01
+1.3653208829761321e-01
+1.3643252236664594e-01
+1.3633305963783912e-01
+1.3623370006324270e-01
+1.3613444359490656e-01
+1.3603529018488064e-01
+1.3593623978521485e-01
+1.3583729234795905e-01
+1.3573844782516320e-01
+1.3563970616887719e-01
+1.3554106733115090e-01
+1.3544253126403430e-01
+1.3534409791957724e-01
+1.3524576724982967e-01
+1.3514753920684150e-01
+1.3504941374266261e-01
+1.3495139080934290e-01
+1.3485347035893230e-01
+1.3475565234348075e-01
+1.3465793671503812e-01
+1.3456032342565433e-01
+1.3446281242737926e-01
+1.3436540367226288e-01
+1.3426809711235504e-01
+1.3417089269970567e-01
+1.3407379038636469e-01
+1.3397679012438202e-01
+1.3387989186580751e-01
+1.3378309556269113e-01
+1.3368640116708280e-01
+1.3358980863103234e-01
+1.3349331790658975e-01
+1.3339692894580490e-01
+1.3330064170072770e-01
+1.3320445612340803e-01
+1.3310837216589588e-01
+1.3301238978024107e-01
+1.3291650891849358e-01
+1.3282072953270330e-01
+1.3272505157492009e-01
+1.3262947499719391e-01
+1.3253399975157465e-01
+1.3243862579011220e-01
+1.3234335306485651e-01
+1.3224818152785750e-01
+1.3215311113116501e-01
+1.3205814182682901e-01
+1.3196327356689938e-01
+1.3186850630342606e-01
+1.3177383998845890e-01
+1.3167927457404785e-01
+1.3158481001224281e-01
+1.3149044625509371e-01
+1.3139618325465044e-01
+1.3130202096296290e-01
+1.3120795933208101e-01
+1.3111399831405468e-01
+1.3102013786093383e-01
+1.3092637792476836e-01
+1.3083271845760813e-01
+1.3073915941150313e-01
+1.3064570073850323e-01
+1.3055234239065833e-01
+1.3045908432001835e-01
+1.3036592647863321e-01
+1.3027286881855279e-01
+1.3017991129182704e-01
+1.3008705385050584e-01
+1.2999429644663910e-01
+1.2990163903227672e-01
+1.2980908155946863e-01
+1.2971662398026473e-01
+1.2962426624671494e-01
+1.2953200831086914e-01
+1.2943985012477729e-01
+1.2934779164048923e-01
+1.2925583281005493e-01
+1.2916397358552428e-01
+1.2907221391894719e-01
+1.2898055376237352e-01
+1.2888899306785326e-01
+1.2879753178743625e-01
+1.2870616987317246e-01
+1.2861490727711175e-01
+1.2852374395130406e-01
+1.2843267984779927e-01
+1.2834171491864732e-01
+1.2825084911589807e-01
+1.2816008239160151e-01
+1.2806941469780747e-01
+1.2797884598656589e-01
+1.2788837620992671e-01
+1.2779800531993976e-01
+1.2770773326865503e-01
+1.2761756000812241e-01
+1.2752748549039175e-01
+1.2743750966751305e-01
+1.2734763249153613e-01
+1.2725785391451097e-01
+1.2716817388848745e-01
+1.2707859236551547e-01
+1.2698910929764495e-01
+1.2689972463692581e-01
+1.2681043833540792e-01
+1.2672125034514123e-01
+1.2663216061817564e-01
+1.2654316910656105e-01
+1.2645427576234736e-01
+1.2636548053758451e-01
+1.2627678338432236e-01
+1.2618818425461087e-01
+1.2609968310049990e-01
+1.2601127987403943e-01
+1.2592297452727930e-01
+1.2583476701226945e-01
+1.2574665728105977e-01
+1.2565864528570020e-01
+1.2557073097824062e-01
+1.2548291431073097e-01
+1.2539519523522111e-01
+1.2530757370376100e-01
+1.2522004966840050e-01
+1.2513262308118955e-01
+1.2504529389417809e-01
+1.2495806205941597e-01
+1.2487092752895312e-01
+1.2478389025483945e-01
+1.2469695018912487e-01
+1.2461010728385929e-01
+1.2452336149109261e-01
+1.2443671276287477e-01
+1.2435016105125563e-01
+1.2426370630828514e-01
+1.2417734848601318e-01
+1.2409108753648967e-01
+1.2400492341176454e-01
+1.2391885606388767e-01
+1.2383288544490897e-01
+1.2374701150687838e-01
+1.2366123420184577e-01
+1.2357555348186107e-01
+1.2348996929897418e-01
+1.2340448160523501e-01
+1.2331909035269348e-01
+1.2323379549339950e-01
+1.2314859697940295e-01
+1.2306349476275377e-01
+1.2297848879550186e-01
+1.2289357902969711e-01
+1.2280876541738947e-01
+1.2272404791062881e-01
+1.2263942646146506e-01
+1.2255490102194810e-01
+1.2247047154412789e-01
+1.2238613798005431e-01
+1.2230190028177726e-01
+1.2221775840134665e-01
+1.2213371229081241e-01
+1.2204976190222441e-01
+1.2196590718763262e-01
+1.2188214809908689e-01
+1.2179848458863717e-01
+1.2171491660833333e-01
+1.2163144411022531e-01
+1.2154806704636302e-01
+1.2146478536879635e-01
+1.2138159902957521e-01
+1.2129850798074952e-01
+1.2121551217436918e-01
+1.2113261156248412e-01
+1.2104980609714422e-01
+1.2096709573039940e-01
+1.2088448041429957e-01
+1.2080196010089465e-01
+1.2071953474223453e-01
+1.2063720429036913e-01
+1.2055496869734836e-01
+1.2047282791522211e-01
+1.2039078189604031e-01
+1.2030883059185288e-01
+1.2022697395470969e-01
+1.2014521193666068e-01
+1.2006354448975574e-01
+1.1998197156604480e-01
+1.1990049311757775e-01
+1.1981910909640450e-01
+1.1973781945457498e-01
+1.1965662414413908e-01
+1.1957552311714671e-01
+1.1949451632564778e-01
+1.1941360372169221e-01
+1.1933278525732989e-01
+1.1925206088461074e-01
+1.1917143055558467e-01
+1.1909089422230158e-01
+1.1901045183681139e-01
+1.1893010335116401e-01
+1.1884984871740933e-01
+1.1876968788759729e-01
+1.1868962081377776e-01
+1.1860964744800068e-01
+1.1852976774231594e-01
+1.1844998164877345e-01
+1.1837028911942314e-01
+1.1829069010631491e-01
+1.1821118456149866e-01
+1.1813177243702430e-01
+1.1805245368494174e-01
+1.1797322825730090e-01
+1.1789409610615167e-01
+1.1781505718354399e-01
+1.1773611144152772e-01
+1.1765725883215281e-01
+1.1757849930746916e-01
+1.1749983281952667e-01
+1.1742125932037524e-01
+1.1734277876206481e-01
+1.1726439109664526e-01
+1.1718609627616651e-01
+1.1710789425267848e-01
+1.1702978497823105e-01
+1.1695176840487416e-01
+1.1687384448465771e-01
+1.1679601316963159e-01
+1.1671827441184573e-01
+1.1664062816335002e-01
+1.1656307437619440e-01
+1.1648561300242877e-01
+1.1640824399410300e-01
+1.1633096730326704e-01
+1.1625378288197079e-01
+1.1617669068226415e-01
+1.1609969065619703e-01
+1.1602278275581936e-01
+1.1594596693318102e-01
+1.1586924314033192e-01
+1.1579261132932200e-01
+1.1571607145220114e-01
+1.1563962346101926e-01
+1.1556326730782628e-01
+1.1548700294467207e-01
+1.1541083032360658e-01
+1.1533474939667970e-01
+1.1525876011594136e-01
+1.1518286243344142e-01
+1.1510705630122983e-01
+1.1503134167135651e-01
+1.1495571849587133e-01
+1.1488018672682421e-01
+1.1480474631626508e-01
+1.1472939721624383e-01
+1.1465413937881037e-01
+1.1457897275601461e-01
+1.1450389729990647e-01
+1.1442891296253585e-01
+1.1435401969595266e-01
+1.1427921745220680e-01
+1.1420450618334820e-01
+1.1412988584142675e-01
+1.1405535637849235e-01
+1.1398091774659494e-01
+1.1390656989778442e-01
+1.1383231278411067e-01
+1.1375814635762363e-01
+1.1368407057037321e-01
+1.1361008537440928e-01
+1.1353619072178181e-01
+1.1346238656454066e-01
+1.1338867285473575e-01
+1.1331504954441701e-01
+1.1324151658563432e-01
+1.1316807393043761e-01
+1.1309472153087677e-01
+1.1302145933900173e-01
+1.1294828730686238e-01
+1.1287520538650864e-01
+1.1280221352999041e-01
+1.1272931168935763e-01
+1.1265649981666015e-01
+1.1258377786394794e-01
+1.1251114578327087e-01
+1.1243860352667887e-01
+1.1236615104622182e-01
+1.1229378829394966e-01
+1.1222151522191229e-01
+1.1214933178215961e-01
+1.1207723792674154e-01
+1.1200523360770798e-01
+1.1193331877710884e-01
+1.1186149338699404e-01
+1.1178975738941348e-01
+1.1171811073641708e-01
+1.1164655338005472e-01
+1.1157508527237633e-01
+1.1150370636543182e-01
+1.1143241661127108e-01
+1.1136121596194405e-01
+1.1129010436950063e-01
+1.1121908178599071e-01
+1.1114814816346422e-01
+1.1107730345397106e-01
+1.1100654760956113e-01
+1.1093588058228436e-01
+1.1086530232419063e-01
+1.1079481278732987e-01
+1.1072441192375200e-01
+1.1065409968550691e-01
+1.1058387602464449e-01
+1.1051374089321470e-01
+1.1044369424326740e-01
+1.1037373602685252e-01
+1.1030386619601998e-01
+1.1023408470281966e-01
+1.1016439149930149e-01
+1.1009478653751538e-01
+1.1002526976951124e-01
+1.0995584114733896e-01
+1.0988650062304847e-01
+1.0981724814868966e-01
+1.0974808367631246e-01
+1.0967900715796676e-01
+1.0961001854570249e-01
+1.0954111779156953e-01
+1.0947230484761780e-01
+1.0940357966589723e-01
+1.0933494219845770e-01
+1.0926639239734914e-01
+1.0919793021462144e-01
+1.0912955560232454e-01
+1.0906126851250830e-01
+1.0899306889722268e-01
+1.0892495670851755e-01
+1.0885693189844285e-01
+1.0878899441904846e-01
+1.0872114422238431e-01
+1.0865338126050030e-01
+1.0858570548544634e-01
+1.0851811684927234e-01
+1.0845061530402821e-01
+1.0838320080176385e-01
+1.0831587329452917e-01
+1.0824863273437410e-01
+1.0818147907334853e-01
+1.0811441226350238e-01
+1.0804743225688554e-01
+1.0798053900554792e-01
+1.0791373246153946e-01
+1.0784701257691004e-01
+1.0778037930370958e-01
+1.0771383259398798e-01
+1.0764737239979516e-01
+1.0758099867318102e-01
+1.0751471136619548e-01
+1.0744851043088843e-01
+1.0738239581930981e-01
+1.0731636748350949e-01
+1.0725042537553740e-01
+1.0718456944744346e-01
+1.0711879965127756e-01
+1.0705311593908962e-01
+1.0698751826292953e-01
+1.0692200657484723e-01
+1.0685658082689259e-01
+1.0679124097111556e-01
+1.0672598695956602e-01
+1.0666081874429389e-01
+1.0659573627734908e-01
+1.0653073951078150e-01
+1.0646582839664104e-01
+1.0640100288697764e-01
+1.0633626293384119e-01
+1.0627160848928159e-01
+1.0620703950534878e-01
+1.0614255593409264e-01
+1.0607815772756309e-01
+1.0601384483781003e-01
+1.0594961721688338e-01
+1.0588547481683305e-01
+1.0582141758970895e-01
+1.0575744548756097e-01
+1.0569355846243904e-01
+1.0562975646639305e-01
+1.0556603945147293e-01
+1.0550240736972857e-01
+1.0543886017320990e-01
+1.0537539781396681e-01
+1.0531202024404922e-01
+1.0524872741550703e-01
+1.0518551928039013e-01
+1.0512239579074849e-01
+1.0505935689863197e-01
+1.0499640255609048e-01
+1.0493353271517394e-01
+1.0487074732793226e-01
+1.0480804634641536e-01
+1.0474542972267312e-01
+1.0468289740875547e-01
+1.0462044935671232e-01
+1.0455808551859357e-01
+1.0449580584644912e-01
+1.0443361029232889e-01
+1.0437149880828281e-01
+1.0430947134636075e-01
+1.0424752785861263e-01
+1.0418566829708838e-01
+1.0412389261383789e-01
+1.0406220076091108e-01
+1.0400059269035784e-01
+1.0393906835422810e-01
+1.0387762770457176e-01
+1.0381627069343873e-01
+1.0375499727287892e-01
+1.0369380739494223e-01
+1.0363270101167857e-01
+1.0357167807513787e-01
+1.0351073853737001e-01
+1.0344988235042492e-01
+1.0338910946635251e-01
+1.0332841983720266e-01
+1.0326781341502531e-01
+1.0320729015187036e-01
+1.0314684999978771e-01
+1.0308649291082728e-01
+1.0302621883703898e-01
+1.0296602773047271e-01
+1.0290591954317838e-01
+1.0284589422720590e-01
+1.0278595173460518e-01
+1.0272609201742613e-01
+1.0266631502771867e-01
+1.0260662071753270e-01
+1.0254700903891810e-01
+1.0248747994392482e-01
+1.0242803338460275e-01
+1.0236866931300181e-01
+1.0230938768117190e-01
+1.0225018844116293e-01
+1.0219107154502481e-01
+1.0213203694480744e-01
+1.0207308459256074e-01
+1.0201421444033462e-01
+1.0195542644017899e-01
+1.0189672054414375e-01
+1.0183809670427880e-01
+1.0177955487263408e-01
+1.0172109500125948e-01
+1.0166271704220491e-01
+1.0160442094752026e-01
+1.0154620666925547e-01
+1.0148807415946043e-01
+1.0143002337018507e-01
+1.0137205425347927e-01
+1.0131416676139296e-01
+1.0125636084597604e-01
+1.0119863645927842e-01
+1.0114099355335000e-01
+1.0108343208024072e-01
+1.0102595199200046e-01
+1.0096855324067913e-01
+1.0091123577832664e-01
+1.0085399955699292e-01
+1.0079684452872785e-01
+1.0073977064558136e-01
+1.0068277785960335e-01
+1.0062586612284373e-01
+1.0056903538735240e-01
+1.0051228560517929e-01
+1.0045561672837429e-01
+1.0039902870898731e-01
+1.0034252149906828e-01
+1.0028609505066707e-01
+1.0022974931583363e-01
+1.0017348424661784e-01
+1.0011729979506964e-01
+1.0006119591323891e-01
+1.0000517255317555e-01
+9.9949229666929512e-02
+9.9893367206550662e-02
+9.9837585124088926e-02
+9.9781883371594229e-02
+9.9726261901116456e-02
+9.9670720664705517e-02
+9.9615259614411325e-02
+9.9559878702283805e-02
+9.9504577880372841e-02
+9.9449357100728358e-02
+9.9394216315400269e-02
+9.9339155476438470e-02
+9.9284174535892875e-02
+9.9229273445813393e-02
+9.9174452158249923e-02
+9.9119710625252391e-02
+9.9065048798870708e-02
+9.9010466631154759e-02
+9.8955964074154468e-02
+9.8901541079919747e-02
+9.8847197600500494e-02
+9.8792933587946635e-02
+9.8738748994308068e-02
+9.8684643771634689e-02
+9.8630617871976439e-02
+9.8576671247383188e-02
+9.8522803849904875e-02
+9.8469015631591397e-02
+9.8415306544492667e-02
+9.8361676540658596e-02
+9.8308125572139082e-02
+9.8254653590984051e-02
+9.8201260549243385e-02
+9.8147946398967026e-02
+9.8094711092204856e-02
+9.8041554581006801e-02
+9.7988476817422759e-02
+9.7935477753502642e-02
+9.7882557341296361e-02
+9.7829715532853828e-02
+9.7776952280224941e-02
+9.7724267535459611e-02
+9.7671661250607764e-02
+9.7619133377719283e-02
+9.7566683868844109e-02
+9.7514312676032111e-02
+9.7462019751333229e-02
+9.7409805046797374e-02
+9.7357668514474430e-02
+9.7305610106414323e-02
+9.7253629774666950e-02
+9.7201727471282237e-02
+9.7149903148310068e-02
+9.7098156757800383e-02
+9.7046488251803079e-02
+9.6994897582368053e-02
+9.6943384701545218e-02
+9.6891949561384486e-02
+9.6840592113935781e-02
+9.6789312311248987e-02
+9.6738110105374017e-02
+9.6686985448360796e-02
+9.6635938292259221e-02
+9.6584968589119205e-02
+9.6534076290990659e-02
+9.6483261349923494e-02
+9.6432523717967594e-02
+9.6381863347172900e-02
+9.6331280189589669e-02
+9.6280774199280592e-02
+9.6230345337038170e-02
+9.6179993564982941e-02
+9.6129718836497194e-02
+9.6079521088304018e-02
+9.6029400255614641e-02
+9.5979356284029829e-02
+9.5929389130877590e-02
+9.5879498754250864e-02
+9.5829685113929322e-02
+9.5779948170828938e-02
+9.5730287883126514e-02
+9.5680704191432431e-02
+9.5631197029471135e-02
+9.5581766336246293e-02
+9.5532412069321712e-02
+9.5483134190310445e-02
+9.5433932658864892e-02
+9.5384807430733867e-02
+9.5335758460972558e-02
+9.5286785697364859e-02
+9.5237889079141297e-02
+9.5189068545888558e-02
+9.5140324048266611e-02
+9.5091655544714257e-02
+9.5043062993643734e-02
+9.4994546352210121e-02
+9.4946105577052936e-02
+9.4897740621579144e-02
+9.4849451427324635e-02
+9.4801237933135218e-02
+9.4753100083450309e-02
+9.4705037834342837e-02
+9.4657051143340887e-02
+9.4609139968122674e-02
+9.4561304266550558e-02
+9.4513543995689009e-02
+9.4465859101357047e-02
+9.4418249521137115e-02
+9.4370715194447979e-02
+9.4323256074943421e-02
+9.4275872122381352e-02
+9.4228563295790616e-02
+9.4181329551301471e-02
+9.4134170844321532e-02
+9.4087087125565849e-02
+9.4040078335551919e-02
+9.3993144413672874e-02
+9.3946285307351468e-02
+9.3899500974271119e-02
+9.3852791372711450e-02
+9.3806156459878193e-02
+9.3759596192157110e-02
+9.3713110524459908e-02
+9.3666699400954886e-02
+9.3620362760994322e-02
+9.3574100546884198e-02
+9.3527912712951508e-02
+9.3481799216557415e-02
+9.3435760015012997e-02
+9.3389795065515424e-02
+9.3343904325070823e-02
+9.3298087743468136e-02
+9.3252345260882691e-02
+9.3206676817392198e-02
+9.3161082362037073e-02
+9.3115561850991194e-02
+9.3070115240754259e-02
+9.3024742488823753e-02
+9.2979443553164620e-02
+9.2934218388887241e-02
+9.2889066939002576e-02
+9.2843989143333555e-02
+9.2798984945762400e-02
+9.2754054299811262e-02
+9.2709197160450757e-02
+9.2664413484859681e-02
+9.2619703233283418e-02
+9.2575066365445186e-02
+9.2530502828505098e-02
+9.2486012559201691e-02
+9.2441595495614065e-02
+9.2397251589382598e-02
+9.2352980798785470e-02
+9.2308783082120927e-02
+9.2264658397574958e-02
+9.2220606703287120e-02
+9.2176627951813986e-02
+9.2132722081845947e-02
+9.2088889030142090e-02
+9.2045128742757290e-02
+9.2001441179206583e-02
+9.1957826299876685e-02
+9.1914284061888424e-02
+9.1870814419539190e-02
+9.1827417326144564e-02
+9.1784092727351177e-02
+9.1740840564884990e-02
+9.1697660782404544e-02
+9.1654553332713856e-02
+9.1611518171278244e-02
+9.1568555254279718e-02
+9.1525664539761672e-02
+9.1482845985930053e-02
+9.1440099543383641e-02
+9.1397425151234113e-02
+9.1354822748155762e-02
+9.1312292282729704e-02
+9.1269833712462611e-02
+9.1227446995166259e-02
+9.1185132088525092e-02
+9.1142888950155612e-02
+9.1100717535072401e-02
+9.1058617785587062e-02
+9.1016589640146819e-02
+9.0974633041867758e-02
+9.0932747946564058e-02
+9.0890934312179719e-02
+9.0849192096151582e-02
+9.0807521255117735e-02
+9.0765921745236830e-02
+9.0724393514243939e-02
+9.0682936501965669e-02
+9.0641550649072006e-02
+9.0600235907266083e-02
+9.0558992234399824e-02
+9.0517819588061987e-02
+9.0476717924152350e-02
+9.0435687198027817e-02
+9.0394727361836874e-02
+9.0353838358595923e-02
+9.0313020129775087e-02
+9.0272272621626529e-02
+9.0231595788259886e-02
+9.0190989584630413e-02
+9.0150453968233138e-02
+9.0109988899047852e-02
+9.0069594335763351e-02
+9.0029270222930613e-02
+8.9989016496877364e-02
+8.9948833096792274e-02
+8.9908719977786808e-02
+8.9868677100297417e-02
+8.9828704423232333e-02
+8.9788801900933385e-02
+8.9748969486850599e-02
+8.9709207130845528e-02
+8.9669514776627365e-02
+8.9629892367510552e-02
+8.9590339851812875e-02
+8.9550857182952720e-02
+8.9511444314920266e-02
+8.9472101205372717e-02
+8.9432827814192845e-02
+8.9393624098703883e-02
+8.9354490001616549e-02
+8.9315425460525358e-02
+8.9276430417527433e-02
+8.9237504828794417e-02
+8.9198648653222856e-02
+8.9159861848406824e-02
+8.9121144369609898e-02
+8.9082496171595707e-02
+8.9043917202495618e-02
+8.9005407403395631e-02
+8.8966966715875645e-02
+8.8928595090974949e-02
+8.8890292485722250e-02
+8.8852058857121427e-02
+8.8813894161467691e-02
+8.8775798354795682e-02
+8.8737771390085776e-02
+8.8699813210329145e-02
+8.8661923756523348e-02
+8.8624102974478938e-02
+8.8586350818997225e-02
+8.8548667245903850e-02
+8.8511052212122562e-02
+8.8473505675792763e-02
+8.8436027594196900e-02
+8.8398617913575062e-02
+8.8361276572874597e-02
+8.8324003512827334e-02
+8.8286798686063858e-02
+8.8249662049780700e-02
+8.8212593561169297e-02
+8.8175593177371489e-02
+8.8138660855471410e-02
+8.8101796546767905e-02
+8.8065000191275417e-02
+8.8028271728006549e-02
+8.7991611105077666e-02
+8.7955018281107258e-02
+8.7918493215087323e-02
+8.7882035863345087e-02
+8.7845646180372425e-02
+8.7809324119371868e-02
+8.7773069625361383e-02
+8.7736882640073274e-02
+8.7700763107832203e-02
+8.7664710982309449e-02
+8.7628726219276865e-02
+8.7592808774804298e-02
+8.7556958605568669e-02
+8.7521175668115181e-02
+8.7485459912229557e-02
+8.7449811279570938e-02
+8.7414229711929650e-02
+8.7378715159377840e-02
+8.7343267577935188e-02
+8.7307886923694039e-02
+8.7272573152351846e-02
+8.7237326219440275e-02
+8.7202146078222395e-02
+8.7167032673417882e-02
+8.7131985947755064e-02
+8.7097005847410522e-02
+8.7062092325900328e-02
+8.7027245337720494e-02
+8.6992464838785921e-02
+8.6957750786789481e-02
+8.6923103138880450e-02
+8.6888521842790695e-02
+8.6854006839201206e-02
+8.6819558069982289e-02
+8.6785175486817120e-02
+8.6750859045696641e-02
+8.6716608702674697e-02
+8.6682424413980746e-02
+8.6648306135868408e-02
+8.6614253820581924e-02
+8.6580267411447268e-02
+8.6546346850715744e-02
+8.6512492085669829e-02
+8.6478703070163407e-02
+8.6444979758642182e-02
+8.6411322107828217e-02
+8.6377730076220183e-02
+8.6344203620826648e-02
+8.6310742686984326e-02
+8.6277347214674296e-02
+8.6244017146390073e-02
+8.6210752435145005e-02
+8.6177553036676860e-02
+8.6144418907190087e-02
+8.6111350003974338e-02
+8.6078346284310520e-02
+8.6045407698436771e-02
+8.6012534187001624e-02
+8.5979725690526629e-02
+8.5946982158656121e-02
+8.5914303548455709e-02
+8.5881689817142864e-02
+8.5849140921427577e-02
+8.5816656817776449e-02
+8.5784237460032595e-02
+8.5751882790654918e-02
+8.5719592749028767e-02
+8.5687367279544305e-02
+8.5655206338761142e-02
+8.5623109885026832e-02
+8.5591077875432950e-02
+8.5559110265287924e-02
+8.5527207009327241e-02
+8.5495368054686341e-02
+8.5463593342057095e-02
+8.5431882813237270e-02
+8.5400236421050865e-02
+8.5368654123844298e-02
+8.5337135879330075e-02
+8.5305681642146747e-02
+8.5274291366052093e-02
+8.5242965002113077e-02
+8.5211702494552954e-02
+8.5180503786608450e-02
+8.5149368826062985e-02
+8.5118297567430834e-02
+8.5087289965795884e-02
+8.5056345976728426e-02
+8.5025465556228461e-02
+8.4994648659395544e-02
+8.4963895233209061e-02
+8.4933205220401153e-02
+8.4902578565389547e-02
+8.4872015220817443e-02
+8.4841515141780677e-02
+8.4811078283617100e-02
+8.4780704602307633e-02
+8.4750394053851721e-02
+8.4720146589069456e-02
+8.4689962150784281e-02
+8.4659840681457058e-02
+8.4629782129953979e-02
+8.4599786451038897e-02
+8.4569853599816544e-02
+8.4539983532522747e-02
+8.4510176206011117e-02
+8.4480431575133547e-02
+8.4450749584686319e-02
+8.4421130176329032e-02
+8.4391573295224273e-02
+8.4362078896295295e-02
+8.4332646936133696e-02
+8.4303277370150712e-02
+8.4273970151856503e-02
+8.4244725234414744e-02
+8.4215542567262103e-02
+8.4186422096259400e-02
+8.4157363767532981e-02
+8.4128367531256285e-02
+8.4099433339909629e-02
+8.4070561146599262e-02
+8.4041750907578774e-02
+8.4013002580128643e-02
+8.3984316118087904e-02
+8.3955691465257207e-02
+8.3927128563681314e-02
+8.3898627360240910e-02
+8.3870187809942695e-02
+8.3841809868573119e-02
+8.3813493491952107e-02
+8.3785238635933096e-02
+8.3757045255559548e-02
+8.3728913297407101e-02
+8.3700842703014228e-02
+8.3672833415697367e-02
+8.3644885388942491e-02
+8.3616998579720686e-02
+8.3589172944387141e-02
+8.3561408437406476e-02
+8.3533705012844892e-02
+8.3506062621448662e-02
+8.3478481208142274e-02
+8.3450960717428288e-02
+8.3423501097952213e-02
+8.3396102302675787e-02
+8.3368764285022018e-02
+8.3341487001277220e-02
+8.3314270409504801e-02
+8.3287114465771916e-02
+8.3260019114440989e-02
+8.3232984295675549e-02
+8.3206009953355115e-02
+8.3179096043266690e-02
+8.3152242523556394e-02
+8.3125449350650790e-02
+8.3098716477828877e-02
+8.3072043857891020e-02
+8.3045431439819753e-02
+8.3018879168452922e-02
+8.2992386988881811e-02
+8.2965954851588419e-02
+8.2939582710544718e-02
+8.2913270520056870e-02
+8.2887018236104407e-02
+8.2860825815294803e-02
+8.2834693211356780e-02
+8.2808620368363131e-02
+8.2782607228403263e-02
+8.2756653737909538e-02
+8.2730759851613850e-02
+8.2704925525174985e-02
+8.2679150714018948e-02
+8.2653435373308298e-02
+8.2627779457650985e-02
+8.2602182914965988e-02
+8.2576645688655650e-02
+8.2551167723240546e-02
+8.2525748970917592e-02
+8.2500389386900519e-02
+8.2475088926453360e-02
+8.2449847544991683e-02
+8.2424665197934052e-02
+8.2399541836655418e-02
+8.2374477404460592e-02
+8.2349471843893116e-02
+8.2324525103713173e-02
+8.2299637140010359e-02
+8.2274807909179251e-02
+8.2250037366086159e-02
+8.2225325464521284e-02
+8.2200672157399943e-02
+8.2176077391921939e-02
+8.2151541112937598e-02
+8.2127063266960204e-02
+8.2102643806655509e-02
+8.2078282686107951e-02
+8.2053979859772697e-02
+8.2029735282877686e-02
+8.2005548910601037e-02
+8.1981420693077095e-02
+8.1957350574242582e-02
+8.1933338498118694e-02
+8.1909384415209494e-02
+8.1885488280778296e-02
+8.1861650050070608e-02
+8.1837869677433214e-02
+8.1814147116826497e-02
+8.1790482320627564e-02
+8.1766875235104550e-02
+8.1743325805066339e-02
+8.1719833978244241e-02
+8.1696399708736017e-02
+8.1673022951469970e-02
+8.1649703661091561e-02
+8.1626441791884011e-02
+8.1603237297726769e-02
+8.1580090126862431e-02
+8.1557000223219600e-02
+8.1533967531672580e-02
+8.1510992004917487e-02
+8.1488073599165337e-02
+8.1465212270043413e-02
+8.1442407970747463e-02
+8.1419660653850298e-02
+8.1396970270181973e-02
+8.1374336766604230e-02
+8.1351760089503067e-02
+8.1329240188317373e-02
+8.1306777016561874e-02
+8.1284370528046837e-02
+8.1262020676768174e-02
+8.1239727416869800e-02
+8.1217490701766162e-02
+8.1195310479148686e-02
+8.1173186694021238e-02
+8.1151119292977011e-02
+8.1129108229423222e-02
+8.1107153458572459e-02
+8.1085254934861878e-02
+8.1063412610882540e-02
+8.1041626438918574e-02
+8.1019896369515357e-02
+8.0998222350798094e-02
+8.0976604330809582e-02
+8.0955042259221885e-02
+8.0933536087061664e-02
+8.0912085765887237e-02
+8.0890691251285382e-02
+8.0869352500819391e-02
+8.0848069469703174e-02
+8.0826842102630900e-02
+8.0805670341381156e-02
+8.0784554131745887e-02
+8.0763493429509781e-02
+8.0742488191947515e-02
+8.0721538374350754e-02
+8.0700643929133134e-02
+8.0679804808305527e-02
+8.0659020960697186e-02
+8.0638292332380498e-02
+8.0617618869934474e-02
+8.0597000525111512e-02
+8.0576437252315225e-02
+8.0555929005893048e-02
+8.0535475739829554e-02
+8.0515077407998806e-02
+8.0494733961977122e-02
+8.0474445347355636e-02
+8.0454211508838080e-02
+8.0434032395339444e-02
+8.0413907962148742e-02
+8.0393838164990558e-02
+8.0373822957755942e-02
+8.0353862292680267e-02
+8.0333956121603795e-02
+8.0314104393303998e-02
+8.0294307054919412e-02
+8.0274564054421141e-02
+8.0254875343932275e-02
+8.0235240876844804e-02
+8.0215660606635236e-02
+8.0196134487009615e-02
+8.0176662471666646e-02
+8.0157244511399578e-02
+8.0137880552414831e-02
+8.0118570540728754e-02
+8.0099314426788623e-02
+8.0080112165211201e-02
+8.0060963710605115e-02
+8.0041869015941097e-02
+8.0022828033274887e-02
+8.0003840714169772e-02
+7.9984907007711117e-02
+7.9966026862191938e-02
+7.9947200226837628e-02
+7.9928427053535395e-02
+7.9909707294650315e-02
+7.9891040902985280e-02
+7.9872427832064274e-02
+7.9853868035336228e-02
+7.9835361463089519e-02
+7.9816908062513514e-02
+7.9798507781037295e-02
+7.9780160569849420e-02
+7.9761866382330307e-02
+7.9743625171857138e-02
+7.9725436891642687e-02
+7.9707301494843702e-02
+7.9689218933383529e-02
+7.9671189155500102e-02
+7.9653212108765956e-02
+7.9635287742374980e-02
+7.9617416008307254e-02
+7.9599596858859270e-02
+7.9581830247324861e-02
+7.9564116128016824e-02
+7.9546454454862692e-02
+7.9528845177155083e-02
+7.9511288241366954e-02
+7.9493783594713152e-02
+7.9476331188829658e-02
+7.9458930976905040e-02
+7.9441582912357131e-02
+7.9424286949316039e-02
+7.9407043042019648e-02
+7.9389851141830087e-02
+7.9372711194951429e-02
+7.9355623147200405e-02
+7.9338586948260501e-02
+7.9321602551932158e-02
+7.9304669912232298e-02
+7.9287788983367274e-02
+7.9270959719663539e-02
+7.9254182074364590e-02
+7.9237455994273023e-02
+7.9220781423824368e-02
+7.9204158309895578e-02
+7.9187586607382190e-02
+7.9171066272803181e-02
+7.9154597260779724e-02
+7.9138179522379573e-02
+7.9121813008238895e-02
+7.9105497667842153e-02
+7.9089233449396001e-02
+7.9073020301312816e-02
+7.9056858175282643e-02
+7.9040747025165226e-02
+7.9024686804650260e-02
+7.9008677466125984e-02
+7.8992718961479899e-02
+7.8976811241940267e-02
+7.8960954256473218e-02
+7.8945147953567441e-02
+7.8929392282720529e-02
+7.8913687195402871e-02
+7.8898032643357402e-02
+7.8882428579663474e-02
+7.8866874958945690e-02
+7.8851371735592243e-02
+7.8835918859873746e-02
+7.8820516279218406e-02
+7.8805163941349426e-02
+7.8789861796291855e-02
+7.8774609794997202e-02
+7.8759407889331418e-02
+7.8744256034445667e-02
+7.8729154186209946e-02
+7.8714102297476843e-02
+7.8699100314936793e-02
+7.8684148184622812e-02
+7.8669245855693196e-02
+7.8654393281072127e-02
+7.8639590413935020e-02
+7.8624837207823969e-02
+7.8610133616544980e-02
+7.8595479593225825e-02
+7.8580875086285848e-02
+7.8566320042162574e-02
+7.8551814408555076e-02
+7.8537358137953039e-02
+7.8522951183977521e-02
+7.8508593500353122e-02
+7.8494285041025361e-02
+7.8480025759864444e-02
+7.8465815606998890e-02
+7.8451654527857878e-02
+7.8437542467993879e-02
+7.8423479379031838e-02
+7.8409465217153612e-02
+7.8395499938088697e-02
+7.8381583493491822e-02
+7.8367715833224508e-02
+7.8353896907264381e-02
+7.8340126666079632e-02
+7.8326405060258827e-02
+7.8312732040175706e-02
+7.8299107555724945e-02
+7.8285531556805510e-02
+7.8272003996047362e-02
+7.8258524829655687e-02
+7.8245094013647210e-02
+7.8231711497442444e-02
+7.8218377225302102e-02
+7.8205091142314512e-02
+7.8191853200917025e-02
+7.8178663356927261e-02
+7.8165521565618637e-02
+7.8152427779930977e-02
+7.8139381952192180e-02
+7.8126384033062782e-02
+7.8113433969316914e-02
+7.8100531707253618e-02
+7.8087677196554281e-02
+7.8074870391516324e-02
+7.8062111246689589e-02
+7.8049399715325263e-02
+7.8036735749615643e-02
+7.8024119301395134e-02
+7.8011550319877124e-02
+7.7999028753015245e-02
+7.7986554549635420e-02
+7.7974127662395532e-02
+7.7961748044994006e-02
+7.7949415650486603e-02
+7.7937130430362600e-02
+7.7924892335863666e-02
+7.7912701317584571e-02
+7.7900557325199696e-02
+7.7888460308355653e-02
+7.7876410217442196e-02
+7.7864407003480504e-02
+7.7852450617772309e-02
+7.7840541013818182e-02
+7.7828678146222616e-02
+7.7816861968465573e-02
+7.7805092428855901e-02
+7.7793369474231849e-02
+7.7781693053157616e-02
+7.7770063118598645e-02
+7.7758479624201252e-02
+7.7746942523055668e-02
+7.7735451767426939e-02
+7.7724007309406123e-02
+7.7712609099084992e-02
+7.7701257084784855e-02
+7.7689951215119707e-02
+7.7678691441853076e-02
+7.7667477718399797e-02
+7.7656309997923598e-02
+7.7645188232316864e-02
+7.7634112373090536e-02
+7.7623082370983629e-02
+7.7612098174675778e-02
+7.7601159732542849e-02
+7.7590266995107890e-02
+7.7579419916216905e-02
+7.7568618449927587e-02
+7.7557862548828072e-02
+7.7547152164150354e-02
+7.7536487246922511e-02
+7.7525867746735672e-02
+7.7515293612394370e-02
+7.7504764793244418e-02
+7.7494281241389781e-02
+7.7483842909798095e-02
+7.7473449751324808e-02
+7.7463101718511035e-02
+7.7452798763815611e-02
+7.7442540837827895e-02
+7.7432327888119296e-02
+7.7422159862168410e-02
+7.7412036711345875e-02
+7.7401958390765108e-02
+7.7391924855379476e-02
+7.7381936057055289e-02
+7.7371991945895044e-02
+7.7362092471846389e-02
+7.7352237584150371e-02
+7.7342427231817099e-02
+7.7332661364948041e-02
+7.7322939936835783e-02
+7.7313262901340107e-02
+7.7303630211334018e-02
+7.7294041818028486e-02
+7.7284497672434060e-02
+7.7274997724620501e-02
+7.7265541923714792e-02
+7.7256130219018213e-02
+7.7246762562087387e-02
+7.7237438905823713e-02
+7.7228159203025837e-02
+7.7218923405825521e-02
+7.7209731466124976e-02
+7.7200583335244530e-02
+7.7191478962723242e-02
+7.7182418297771074e-02
+7.7173401290526106e-02
+7.7164427892757612e-02
+7.7155498056417526e-02
+7.7146611733883236e-02
+7.7137768877976368e-02
+7.7128969441337222e-02
+7.7120213374367988e-02
+7.7111500626078480e-02
+7.7102831145813455e-02
+7.7094204884982712e-02
+7.7085621795738885e-02
+7.7077081830207839e-02
+7.7068584940426232e-02
+7.7060131078403524e-02
+7.7051720195216958e-02
+7.7043352240233537e-02
+7.7035027162693753e-02
+7.7026744913364698e-02
+7.7018505444674507e-02
+7.7010308709156830e-02
+7.7002154659600808e-02
+7.6994043248961377e-02
+7.6985974429629803e-02
+7.6977948150546344e-02
+7.6969964359352050e-02
+7.6962023004668118e-02
+7.6954124038418531e-02
+7.6946267413224120e-02
+7.6938453082122313e-02
+7.6930680998948578e-02
+7.6922951117510227e-02
+7.6915263388163443e-02
+7.6907617757351179e-02
+7.6900014171697798e-02
+7.6892452582702372e-02
+7.6884932945163201e-02
+7.6877455213617649e-02
+7.6870019340534890e-02
+7.6862625277569166e-02
+7.6855272975585531e-02
+7.6847962382675578e-02
+7.6840693446337885e-02
+7.6833466116438445e-02
+7.6826280347579295e-02
+7.6819136094841589e-02
+7.6812033310616395e-02
+7.6804971944115799e-02
+7.6797951944497095e-02
+7.6790973262611251e-02
+7.6784035850504542e-02
+7.6777139660110821e-02
+7.6770284642439124e-02
+7.6763470748117416e-02
+7.6756697927938558e-02
+7.6749966133308770e-02
+7.6743275315776391e-02
+7.6736625426974583e-02
+7.6730016418713881e-02
+7.6723448242796449e-02
+7.6716920849966716e-02
+7.6710434189666388e-02
+7.6703988211437604e-02
+7.6697582867350705e-02
+7.6691218111336251e-02
+7.6684893896893438e-02
+7.6678610174167675e-02
+7.6672366891859120e-02
+7.6666163999164649e-02
+7.6660001447226303e-02
+7.6653879187659577e-02
+7.6647797172595691e-02
+7.6641755355292204e-02
+7.6635753689101957e-02
+7.6629792125356588e-02
+7.6623870612793132e-02
+7.6617989100138478e-02
+7.6612147538502678e-02
+7.6606345880823892e-02
+7.6600584079886735e-02
+7.6594862086987875e-02
+7.6589179852753667e-02
+7.6583537327706577e-02
+7.6577934461960429e-02
+7.6572371205528886e-02
+7.6566847509257630e-02
+7.6561363325891654e-02
+7.6555918608426463e-02
+7.6550513309309481e-02
+7.6545147380254627e-02
+7.6539820772815695e-02
+7.6534533436820124e-02
+7.6529285320715096e-02
+7.6524076373292838e-02
+7.6518906546346882e-02
+7.6513775793083716e-02
+7.6508684066574281e-02
+7.6503631319277676e-02
+7.6498617503486549e-02
+7.6493642570411191e-02
+7.6488706468678891e-02
+7.6483809146585160e-02
+7.6478950554508054e-02
+7.6474130645731025e-02
+7.6469349373681536e-02
+7.6464606690575046e-02
+7.6459902547616934e-02
+7.6455236895862630e-02
+7.6450609685386375e-02
+7.6446020865779798e-02
+7.6441470387031488e-02
+7.6436958200916824e-02
+7.6432484259709249e-02
+7.6428048515578981e-02
+7.6423650920438652e-02
+7.6419291426151698e-02
+7.6414969984091641e-02
+7.6410686544919296e-02
+7.6406441059236746e-02
+7.6402233477598586e-02
+7.6398063750518219e-02
+7.6393931828634951e-02
+7.6389837663692714e-02
+7.6385781208002893e-02
+7.6381762413617785e-02
+7.6377781231355413e-02
+7.6373837611673226e-02
+7.6369931505146940e-02
+7.6366062862661399e-02
+7.6362231635167310e-02
+7.6358437774526403e-02
+7.6354681233982355e-02
+7.6350961966766787e-02
+7.6347279923643610e-02
+7.6343635053143413e-02
+7.6340027304000510e-02
+7.6336456627550606e-02
+7.6332922976524747e-02
+7.6329426303393552e-02
+7.6325966559283795e-02
+7.6322543694910844e-02
+7.6319157661209114e-02
+7.6315808409711902e-02
+7.6312495892050733e-02
+7.6309220059658761e-02
+7.6305980863655282e-02
+7.6302778255136358e-02
+7.6299612185292340e-02
+7.6296482605402491e-02
+7.6293389466724815e-02
+7.6290332720278048e-02
+7.6287312316946937e-02
+7.6284328207638918e-02
+7.6281380343385663e-02
+7.6278468675258990e-02
+7.6275593154538607e-02
+7.6272753733099177e-02
+7.6269950362914729e-02
+7.6267182995507055e-02
+7.6264451581651418e-02
+7.6261756072067158e-02
+7.6259096417784708e-02
+7.6256472570140246e-02
+7.6253884480457709e-02
+7.6251332099805044e-02
+7.6248815379100540e-02
+7.6246334269371704e-02
+7.6243888722246231e-02
+7.6241478689553388e-02
+7.6239104122918691e-02
+7.6236764973356769e-02
+7.6234461191770617e-02
+7.6232192729254161e-02
+7.6229959537230135e-02
+7.6227761567125005e-02
+7.6225598769673469e-02
+7.6223471094901823e-02
+7.6221378492940792e-02
+7.6219320915393032e-02
+7.6217298314758722e-02
+7.6215310643510226e-02
+7.6213357853889233e-02
+7.6211439898055913e-02
+7.6209556727328223e-02
+7.6207708290381329e-02
+7.6205894535394253e-02
+7.6204115412481649e-02
+7.6202370875238359e-02
+7.6200660877566398e-02
+7.6198985371909597e-02
+7.6197344309155673e-02
+7.6195737640037939e-02
+7.6194165314393297e-02
+7.6192627281488498e-02
+7.6191123491086823e-02
+7.6189653895961815e-02
+7.6188218449996209e-02
+7.6186817106267762e-02
+7.6185449815201672e-02
+7.6184116526679793e-02
+7.6182817190689492e-02
+7.6181551757416227e-02
+7.6180320177128322e-02
+7.6179122401808824e-02
+7.6177958385347577e-02
+7.6176828081470291e-02
+7.6175731440716432e-02
+7.6174668411511381e-02
+7.6173638942743441e-02
+7.6172642986432171e-02
+7.6171680495804570e-02
+7.6170751423291605e-02
+7.6169855718572418e-02
+7.6168993330746060e-02
+7.6168164210435430e-02
+7.6167368311249983e-02
+7.6166605587079203e-02
+7.6165875989773604e-02
+7.6165179468820746e-02
+7.6164515973651745e-02
+7.6163885454667513e-02
+7.6163287862939980e-02
+7.6162723149686876e-02
+7.6162191266995666e-02
+7.6161692167304715e-02
+7.6161225802711022e-02
+7.6160792124075394e-02
+7.6160391081979723e-02
+7.6160022627029797e-02
+7.6159686709880312e-02
+7.6159383281219697e-02
+7.6159112292658912e-02
+7.6158873696923049e-02
+7.6158667446669187e-02
+7.6158493492725327e-02
+7.6158351784599843e-02
+7.6158242272026111e-02
+7.6158164906492368e-02
+7.6158119640227243e-02
+7.6158106425107605e-02
+7.6158125211668343e-02
+7.6158175950130774e-02
+7.6158258591424957e-02
+7.6158373087996944e-02
+7.6158519392463819e-02
+7.6158697456564284e-02
+7.6158907230931189e-02
+7.6159148666139251e-02
+7.6159421712940961e-02
+7.6159726322222496e-02
+7.6160062444927082e-02
+7.6160430032388302e-02
+7.6160829036111988e-02
+7.6161259407676790e-02
+7.6161721098947671e-02
+7.6162214061856887e-02
+7.6162738247547171e-02
+7.6163293605396282e-02
+7.6163880084596208e-02
+7.6164497636465933e-02
+7.6165146215115401e-02
+7.6165825774631560e-02
+7.6166536265835416e-02
+7.6167277636987232e-02
+7.6168049836676632e-02
+7.6168852816531962e-02
+7.6169686529582628e-02
+7.6170550928460923e-02
+7.6171445964114917e-02
+7.6172371587055504e-02
+7.6173327748064013e-02
+7.6174314398553766e-02
+7.6175331490029446e-02
+7.6176378974050107e-02
+7.6177456802249077e-02
+7.6178564926211167e-02
+7.6179703296636647e-02
+7.6180871863502989e-02
+7.6182070576971864e-02
+7.6183299388856290e-02
+7.6184558251764761e-02
+7.6185847117967817e-02
+7.6187165938238446e-02
+7.6188514662941784e-02
+7.6189893242638390e-02
+7.6191301628366501e-02
+7.6192739771244841e-02
+7.6194207622825041e-02
+7.6195705135276084e-02
+7.6197232260769271e-02
+7.6198788950687948e-02
+7.6200375155744293e-02
+7.6201990826585769e-02
+7.6203635913492995e-02
+7.6205310366561987e-02
+7.6207014136373583e-02
+7.6208747175733893e-02
+7.6210509438082968e-02
+7.6212300875844727e-02
+7.6214121438845581e-02
+7.6215971076514968e-02
+7.6217849738935209e-02
+7.6219757377159553e-02
+7.6221693942384400e-02
+7.6223659387008091e-02
+7.6225653664495824e-02
+7.6227676727976770e-02
+7.6229728527250351e-02
+7.6231809010366067e-02
+7.6233918126151323e-02
+7.6236055827241953e-02
+7.6238222067413416e-02
+7.6240416799515320e-02
+7.6242639973920265e-02
+7.6244891540599172e-02
+7.6247171450006535e-02
+7.6249479653347038e-02
+7.6251816101919084e-02
+7.6254180747605815e-02
+7.6256573542831288e-02
+7.6258994439854219e-02
+7.6261443389185377e-02
+7.6263920340376393e-02
+7.6266425243220817e-02
+7.6268958048779437e-02
+7.6271518708511163e-02
+7.6274107174002487e-02
+7.6276723397196849e-02
+7.6279367330095965e-02
+7.6282038924452067e-02
+7.6284738131613739e-02
+7.6287464902866794e-02
+7.6290219188936845e-02
+7.6293000940009681e-02
+7.6295810106394496e-02
+7.6298646639845508e-02
+7.6301510492944521e-02
+7.6304401618017687e-02
+7.6307319965989287e-02
+7.6310265487322407e-02
+7.6313238132409519e-02
+7.6316237851436930e-02
+7.6319264594568198e-02
+7.6322318313102905e-02
+7.6325398960258542e-02
+7.6328506489370451e-02
+7.6331640852222229e-02
+7.6334801999038984e-02
+7.6337989879994669e-02
+7.6341204445443372e-02
+7.6344445645846803e-02
+7.6347713431891742e-02
+7.6351007755504310e-02
+7.6354328569037400e-02
+7.6357675824662963e-02
+7.6361049473996009e-02
+7.6364449468534240e-02
+7.6367875758834913e-02
+7.6371328293798391e-02
+7.6374807022275781e-02
+7.6378311896103487e-02
+7.6381842870242328e-02
+7.6385399899421572e-02
+7.6388982934164795e-02
+7.6392591922373118e-02
+7.6396226812405280e-02
+7.6399887555513912e-02
+7.6403574103995300e-02
+7.6407286410202988e-02
+7.6411024426670068e-02
+7.6414788105954590e-02
+7.6418577399506027e-02
+7.6422392256735042e-02
+7.6426232626883306e-02
+7.6430098460545437e-02
+7.6433989709791622e-02
+7.6437906326747782e-02
+7.6441848263318318e-02
+7.6445815471263501e-02
+7.6449807902159980e-02
+7.6453825506477710e-02
+7.6457868234268922e-02
+7.6461936035997824e-02
+7.6466028863519456e-02
+7.6470146668977890e-02
+7.6474289404087237e-02
+7.6478457019736046e-02
+7.6482649466727906e-02
+7.6486866696118913e-02
+7.6491108659252002e-02
+7.6495375307447461e-02
+7.6499666591549206e-02
+7.6503982462077971e-02
+7.6508322869818776e-02
+7.6512687767291587e-02
+7.6517077107701559e-02
+7.6521490843458273e-02
+7.6525928924155148e-02
+7.6530391298771233e-02
+7.6534877917250707e-02
+7.6539388731473340e-02
+7.6543923693546359e-02
+7.6548482755460251e-02
+7.6553065869067155e-02
+7.6557672986145367e-02
+7.6562304057602851e-02
+7.6566959033731882e-02
+7.6571637864868716e-02
+7.6576340501733731e-02
+7.6581066895205968e-02
+7.6585816996483688e-02
+7.6590590757945387e-02
+7.6595388132239955e-02
+7.6600209071578496e-02
+7.6605053527254940e-02
+7.6609921450422447e-02
+7.6614812791350767e-02
+7.6619727499219151e-02
+7.6624665523302452e-02
+7.6629626815163651e-02
+7.6634611328053312e-02
+7.6639619015017049e-02
+7.6644649827369585e-02
+7.6649703715677836e-02
+7.6654780630554267e-02
+7.6659880522799539e-02
+7.6665003343262178e-02
+7.6670149043216826e-02
+7.6675317574870921e-02
+7.6680508890531088e-02
+7.6685722941577217e-02
+7.6690959678196877e-02
+7.6696219050524636e-02
+7.6701501009076564e-02
+7.6706805504662051e-02
+7.6712132488267332e-02
+7.6717481912141047e-02
+7.6722853729101884e-02
+7.6728247891683699e-02
+7.6733664351249523e-02
+7.6739103058862307e-02
+7.6744563965052720e-02
+7.6750047019133474e-02
+7.6755552170285485e-02
+7.6761079369270985e-02
+7.6766628568973094e-02
+7.6772199722391243e-02
+7.6777792782009482e-02
+7.6783407699898915e-02
+7.6789044427764061e-02
+7.6794702914525101e-02
+7.6800383107788223e-02
+7.6806084956371645e-02
+7.6811808414299729e-02
+7.6817553436980296e-02
+7.6823319978292448e-02
+7.6829107988457962e-02
+7.6834917417158796e-02
+7.6840748213877277e-02
+7.6846600327816539e-02
+7.6852473708309790e-02
+7.6858368307250124e-02
+7.6864284078668771e-02
+7.6870220976415743e-02
+7.6876178952302060e-02
+7.6882157957133573e-02
+7.6888157941396196e-02
+7.6894178854175890e-02
+7.6900220644171319e-02
+7.6906283261666056e-02
+7.6912366660909656e-02
+7.6918470796713032e-02
+7.6924595621391145e-02
+7.6930741083619594e-02
+7.6936907131889581e-02
+7.6943093716565963e-02
+7.6949300789644570e-02
+7.6955528303168250e-02
+7.6961776209115276e-02
+7.6968044459430660e-02
+7.6974333005981180e-02
+7.6980641800268035e-02
+7.6986970793683648e-02
+7.6993319936858651e-02
+7.6999689178429268e-02
+7.7006078466757583e-02
+7.7012487752953745e-02
+7.7018916992306674e-02
+7.7025366140275248e-02
+7.7031835148819880e-02
+7.7038323966727509e-02
+7.7044832542756722e-02
+7.7051360826461662e-02
+7.7057908767824174e-02
+7.7064476317413866e-02
+7.7071063428673175e-02
+7.7077670055925321e-02
+7.7084296152388404e-02
+7.7090941668252144e-02
+7.7097606553193740e-02
+7.7104290756985550e-02
+7.7110994229550783e-02
+7.7117716920909130e-02
+7.7124458782809921e-02
+7.7131219768637502e-02
+7.7137999831667275e-02
+7.7144798923498750e-02
+7.7151616994790784e-02
+7.7158453996054741e-02
+7.7165309877094149e-02
+7.7172184587485773e-02
+7.7179078077782293e-02
+7.7185990301335855e-02
+7.7192921211976198e-02
+7.7199870762005532e-02
+7.7206838901198505e-02
+7.7213825579120279e-02
+7.7220830745957217e-02
+7.7227854352507563e-02
+7.7234896349699544e-02
+7.7241956689526298e-02
+7.7249035324604753e-02
+7.7256132207314684e-02
+7.7263247288708134e-02
+7.7270380519389670e-02
+7.7277531849927375e-02
+7.7284701230780739e-02
+7.7291888612399870e-02
+7.7299093946125788e-02
+7.7306317184837853e-02
+7.7313558281498607e-02
+7.7320817187396820e-02
+7.7328093852103291e-02
+7.7335388225229146e-02
+7.7342700257667971e-02
+7.7350029901097128e-02
+7.7357377107218711e-02
+7.7364741827811459e-02
+7.7372124014681090e-02
+7.7379523619370214e-02
+7.7386940592593753e-02
+7.7394374884907038e-02
+7.7401826447125746e-02
+7.7409295230534761e-02
+7.7416781186481737e-02
+7.7424284266669599e-02
+7.7431804423181219e-02
+7.7439341608004725e-02
+7.7446895771831031e-02
+7.7454466864523994e-02
+7.7462054836065830e-02
+7.7469659637224964e-02
+7.7477281219060418e-02
+7.7484919533190796e-02
+7.7492574533077785e-02
+7.7500246172547083e-02
+7.7507934403777609e-02
+7.7515639175850151e-02
+7.7523360437539143e-02
+7.7531098138635179e-02
+7.7538852230061406e-02
+7.7546622662870449e-02
+7.7554409388963949e-02
+7.7562212360808194e-02
+7.7570031530796377e-02
+7.7577866850799662e-02
+7.7585718272487350e-02
+7.7593585746964441e-02
+7.7601469223388050e-02
+7.7609368650512323e-02
+7.7617283979281054e-02
+7.7625215164939948e-02
+7.7633162163100719e-02
+7.7641124925237309e-02
+7.7649103398017574e-02
+7.7657097528121777e-02
+7.7665107265855710e-02
+7.7673132564039557e-02
+7.7681173375517359e-02
+7.7689229652957520e-02
+7.7697301348957359e-02
+7.7705388415550095e-02
+7.7713490802726895e-02
+7.7721608460021005e-02
+7.7729741337594749e-02
+7.7737889386901210e-02
+7.7746052559553386e-02
+7.7754230807212776e-02
+7.7762424081599543e-02
+7.7770632334435194e-02
+7.7778855517411025e-02
+7.7787093582196515e-02
+7.7795346480244082e-02
+7.7803614161507481e-02
+7.7811896575306461e-02
+7.7820193671650217e-02
+7.7828505403173737e-02
+7.7836831723130787e-02
+7.7845172584016284e-02
+7.7853527936698225e-02
+7.7861897731815705e-02
+7.7870281919329362e-02
+7.7878680448343868e-02
+7.7887093268142735e-02
+7.7895520331396961e-02
+7.7903961593331322e-02
+7.7912417008631496e-02
+7.7920886527603664e-02
+7.7929370098617237e-02
+7.7937867670426098e-02
+7.7946379193348278e-02
+7.7954904618094858e-02
+7.7963443896199691e-02
+7.7971996981040362e-02
+7.7980563826215224e-02
+7.7989144384124798e-02
+7.7997738605594405e-02
+7.8006346441259630e-02
+7.8014967840482480e-02
+7.8023602751624205e-02
+7.8032251123586513e-02
+7.8040912909615928e-02
+7.8049588064967174e-02
+7.8058276543963565e-02
+7.8066978296995784e-02
+7.8075693273428726e-02
+7.8084421422619343e-02
+7.8093162693906176e-02
+7.8101917036679305e-02
+7.8110684402716637e-02
+7.8119464747069850e-02
+7.8128258024806718e-02
+7.8137064187359634e-02
+7.8145883183183329e-02
+7.8154714960811653e-02
+7.8163559470122990e-02
+7.8172416661645094e-02
+7.8181286486464940e-02
+7.8190168898098211e-02
+7.8199063850720757e-02
+7.8207971297146184e-02
+7.8216891186851198e-02
+7.8225823468834235e-02
+7.8234768093230725e-02
+7.8243725011801435e-02
+7.8252694176401266e-02
+7.8261675538343442e-02
+7.8270669048478833e-02
+7.8279674657794021e-02
+7.8288692318554010e-02
+7.8297721983668730e-02
+7.8306763605282853e-02
+7.8315817132006860e-02
+7.8324882511442789e-02
+7.8333959693267854e-02
+7.8343048632477055e-02
+7.8352149284851541e-02
+7.8361261603266952e-02
+7.8370385536267767e-02
+7.8379521032108990e-02
+7.8388668040241943e-02
+7.8397826511182184e-02
+7.8406996395726528e-02
+7.8416177646856433e-02
+7.8425370218704341e-02
+7.8434574064754639e-02
+7.8443789135323627e-02
+7.8453015379776128e-02
+7.8462252747687672e-02
+7.8471501189199239e-02
+7.8480760654569798e-02
+7.8490031095524382e-02
+7.8499312466067339e-02
+7.8508604720284633e-02
+7.8517907809939835e-02
+7.8527221684643572e-02
+7.8536546293921705e-02
+7.8545881587267677e-02
+7.8555227514157083e-02
+7.8564584024698472e-02
+7.8573951072196155e-02
+7.8583328610959222e-02
+7.8592716594277301e-02
+7.8602114972577644e-02
+7.8611523695791802e-02
+7.8620942714039438e-02
+7.8630371977745250e-02
+7.8639811437412235e-02
+7.8649261044633517e-02
+7.8658720752055392e-02
+7.8668190512210481e-02
+7.8677670276070269e-02
+7.8687159993710024e-02
+7.8696659615371950e-02
+7.8706169092238709e-02
+7.8715688375803033e-02
+7.8725217417465576e-02
+7.8734756168355916e-02
+7.8744304579561900e-02
+7.8753862602774158e-02
+7.8763430190703407e-02
+7.8773007296050759e-02
+7.8782593868998441e-02
+7.8792189857193176e-02
+7.8801795208640085e-02
+7.8811409876294133e-02
+7.8821033816075595e-02
+7.8830666983030748e-02
+7.8840309327126490e-02
+7.8849960796575663e-02
+7.8859621339997785e-02
+7.8869290907269088e-02
+7.8878969448528111e-02
+7.8888656915782479e-02
+7.8898353264340679e-02
+7.8908058449686305e-02
+7.8917772423238761e-02
+7.8927495132154246e-02
+7.8937226523686468e-02
+7.8946966548421468e-02
+7.8956715159027996e-02
+7.8966472308126701e-02
+7.8976237947871689e-02
+7.8986012030248354e-02
+7.8995794507019865e-02
+7.9005585329233602e-02
+7.9015384447785816e-02
+7.9025191812852655e-02
+7.9035007373282770e-02
+7.9044831077901612e-02
+7.9054662878787485e-02
+7.9064502731574240e-02
+7.9074350591688145e-02
+7.9084206409978305e-02
+7.9094070134309774e-02
+7.9103941712913753e-02
+7.9113821096577247e-02
+7.9123708237054488e-02
+7.9133603086173357e-02
+7.9143505596004554e-02
+7.9153415718668116e-02
+7.9163333406060910e-02
+7.9173258609650229e-02
+7.9183191280820450e-02
+7.9193131369951361e-02
+7.9203078826278486e-02
+7.9213033599164623e-02
+7.9222995640341673e-02
+7.9232964903152223e-02
+7.9242941340809503e-02
+7.9252924905496097e-02
+7.9262915548986485e-02
+7.9272913222059024e-02
+7.9282917871967909e-02
+7.9292929445213975e-02
+7.9302947891940076e-02
+7.9312973169610071e-02
+7.9323005236389924e-02
+7.9333044044854042e-02
+7.9343089540938994e-02
+7.9353141670497354e-02
+7.9363200383383709e-02
+7.9373265632290094e-02
+7.9383337369996726e-02
+7.9393415549473115e-02
+7.9403500123767165e-02
+7.9413591045307527e-02
+7.9423688264222927e-02
+7.9433791730109227e-02
+7.9443901392686866e-02
+7.9454017201937913e-02
+7.9464139107932041e-02
+7.9474267062645751e-02
+7.9484401020414777e-02
+7.9494540935522481e-02
+7.9504686759452603e-02
+7.9514838441619426e-02
+7.9524995931398529e-02
+7.9535159178235171e-02
+7.9545328131604739e-02
+7.9555502741778930e-02
+7.9565682962128501e-02
+7.9575868746774137e-02
+7.9586060049049431e-02
+7.9596256820560873e-02
+7.9606459012640296e-02
+7.9616666574885572e-02
+7.9626879454658489e-02
+7.9637097599477610e-02
+7.9647320961426626e-02
+7.9657549496107011e-02
+7.9667783158742733e-02
+7.9678021901057966e-02
+7.9688265673192607e-02
+7.9698514424911354e-02
+7.9708768104479660e-02
+7.9719026659790915e-02
+7.9729290041249234e-02
+7.9739558205017616e-02
+7.9749831107968155e-02
+7.9760108702975716e-02
+7.9770390937541430e-02
+7.9780677758898966e-02
+7.9790969116045135e-02
+7.9801264959392909e-02
+7.9811565239765958e-02
+7.9821869910904300e-02
+7.9832178927927502e-02
+7.9842492245043695e-02
+7.9852809812525460e-02
+7.9863131579592975e-02
+7.9873457495497333e-02
+7.9883787509563708e-02
+7.9894121571174342e-02
+7.9904459631857133e-02
+7.9914801646147088e-02
+7.9925147568631560e-02
+7.9935497350960671e-02
+7.9945850942325633e-02
+7.9956208291915881e-02
+7.9966569349533709e-02
+7.9976934065284291e-02
+7.9987302389924700e-02
+7.9997674277127409e-02
+8.0008049681378868e-02
+8.0018428555872975e-02
+8.0028810850561113e-02
+8.0039196514891178e-02
+8.0049585498145254e-02
+8.0059977749363145e-02
+8.0070373217754759e-02
+8.0080771855977104e-02
+8.0091173619694617e-02
+8.0101578464141454e-02
+8.0111986339915162e-02
+8.0122397195220005e-02
+8.0132810978507191e-02
+8.0143227639483477e-02
+8.0153647128227229e-02
+8.0164069396161761e-02
+8.0174494398239829e-02
+8.0184922089937882e-02
+8.0195352423955812e-02
+8.0205785348761813e-02
+8.0216220812532171e-02
+8.0226658764687431e-02
+8.0237099155779437e-02
+8.0247541936593517e-02
+8.0257987059685232e-02
+8.0268434478564243e-02
+8.0278884146302812e-02
+8.0289336013769128e-02
+8.0299790031152465e-02
+8.0310246148533049e-02
+8.0320704315692049e-02
+8.0331164482388945e-02
+8.0341626600260008e-02
+8.0352090623925190e-02
+8.0362556508115648e-02
+8.0373024204334689e-02
+8.0383493661027428e-02
+8.0393964826644293e-02
+8.0404437650856503e-02
+8.0414912084022086e-02
+8.0425388076995633e-02
+8.0435865583162680e-02
+8.0446344556724461e-02
+8.0456824951024186e-02
+8.0467306716936651e-02
+8.0477789804884126e-02
+8.0488274164447454e-02
+8.0498759743811932e-02
+8.0509246491199532e-02
+8.0519734358610179e-02
+8.0530223301773521e-02
+8.0540713276165729e-02
+8.0551204233036564e-02
+8.0561696121154311e-02
+8.0572188889460203e-02
+8.0582682488006610e-02
+8.0593176867221811e-02
+8.0603671978212957e-02
+8.0614167774130413e-02
+8.0624664208494304e-02
+8.0635161233729089e-02
+8.0645658800362924e-02
+8.0656156858710928e-02
+8.0666655358499081e-02
+8.0677154248847277e-02
+8.0687653479141280e-02
+8.0698153001951128e-02
+8.0708652771797687e-02
+8.0719152742747366e-02
+8.0729652866115206e-02
+8.0740153092242542e-02
+8.0750653370994324e-02
+8.0761153650736245e-02
+8.0771653879566765e-02
+8.0782154008191331e-02
+8.0792653992024621e-02
+8.0803153786847604e-02
+8.0813653345082420e-02
+8.0824152615550537e-02
+8.0834651547003158e-02
+8.0845150089414911e-02
+8.0855648193542254e-02
+8.0866145810316495e-02
+8.0876642891639136e-02
+8.0887139389771018e-02
+8.0897635256994047e-02
+8.0908130445657853e-02
+8.0918624908112302e-02
+8.0929118595209446e-02
+8.0939611454976662e-02
+8.0950103435249679e-02
+8.0960594487302376e-02
+8.0971084566249477e-02
+8.0981573627095932e-02
+8.0992061621054490e-02
+8.1002548496810045e-02
+8.1013034203284165e-02
+8.1023518691174759e-02
+8.1034001911868214e-02
+8.1044483816970353e-02
+8.1054964358841741e-02
+8.1065443490001707e-02
+8.1075921162395023e-02
+8.1086397326834897e-02
+8.1096871933974468e-02
+8.1107344933609188e-02
+8.1117816274536098e-02
+8.1128285905794989e-02
+8.1138753780280362e-02
+8.1149219853566240e-02
+8.1159684080643474e-02
+8.1170146412294572e-02
+8.1180606797595672e-02
+8.1191065185670402e-02
+8.1201521525832515e-02
+8.1211975767449762e-02
+8.1222427861525254e-02
+8.1232877762426034e-02
+8.1243325424860083e-02
+8.1253770801084646e-02
+8.1264213840383556e-02
+8.1274654491900869e-02
+8.1285092705316114e-02
+8.1295528430697012e-02
+8.1305961618535372e-02
+8.1316392222206588e-02
+8.1326820196308755e-02
+8.1337245494477947e-02
+8.1347668066671611e-02
+8.1358087861974127e-02
+8.1368504829840260e-02
+8.1378918920520765e-02
+8.1389330084406047e-02
+8.1399738273223027e-02
+8.1410143440388688e-02
+8.1420545539310774e-02
+8.1430944521684021e-02
+8.1441340337908896e-02
+8.1451732938237154e-02
+8.1462122272068463e-02
+8.1472508288424741e-02
+8.1482890937302058e-02
+8.1493270172591004e-02
+8.1503645949146081e-02
+8.1514018220189735e-02
+8.1524386935278290e-02
+8.1534752043480138e-02
+8.1545113494341570e-02
+8.1555471238038885e-02
+8.1565825224925628e-02
+8.1576175407434781e-02
+8.1586521739637180e-02
+8.1596864175378966e-02
+8.1607202666440670e-02
+8.1617537163645795e-02
+8.1627867617149699e-02
+8.1638193974333861e-02
+8.1648516181866193e-02
+8.1658834189611715e-02
+8.1669147954943247e-02
+8.1679457436190109e-02
+8.1689762586369619e-02
+8.1700063351199281e-02
+8.1710359676145261e-02
+8.1720651511278997e-02
+8.1730938810452722e-02
+8.1741221527418931e-02
+8.1751499614219819e-02
+8.1761773022069550e-02
+8.1772041702064049e-02
+8.1782305604804109e-02
+8.1792564680755145e-02
+8.1802818880523889e-02
+8.1813068155063909e-02
+8.1823312455391678e-02
+8.1833551733041646e-02
+8.1843785940290389e-02
+8.1854015029450694e-02
+8.1864238952462864e-02
+8.1874457660948627e-02
+8.1884671106261381e-02
+8.1894879237557436e-02
+8.1905082002882074e-02
+8.1915279351264983e-02
+8.1925471236304670e-02
+8.1935657612909718e-02
+8.1945838434673415e-02
+8.1956013651809767e-02
+8.1966183214003271e-02
+8.1976347071243974e-02
+8.1986505173978527e-02
+8.1996657472745607e-02
+8.2006803919116425e-02
+8.2016944465582775e-02
+8.2027079064585284e-02
+8.2037207667815637e-02
+8.2047330226570056e-02
+8.2057446691848307e-02
+8.2067557013237216e-02
+8.2077661139899741e-02
+8.2087759022047638e-02
+8.2097850612712200e-02
+8.2107935865380871e-02
+8.2118014732762507e-02
+8.2128087166352670e-02
+8.2138153117454024e-02
+8.2148212535594178e-02
+8.2158265368651423e-02
+8.2168311564966609e-02
+8.2178351077853470e-02
+8.2188383863367312e-02
+8.2198409876510684e-02
+8.2208429066813110e-02
+8.2218441382077734e-02
+8.2228446770951813e-02
+8.2238445184459538e-02
+8.2248436574050288e-02
+8.2258420891867884e-02
+8.2268398091185177e-02
+8.2278368125291865e-02
+8.2288330945595178e-02
+8.2298286501679696e-02
+8.2308234743088127e-02
+8.2318175619691486e-02
+8.2328109081549736e-02
+8.2338035079272620e-02
+8.2347953566377294e-02
+8.2357864497341143e-02
+8.2367767825453853e-02
+8.2377663500504072e-02
+8.2387551471644629e-02
+8.2397431688477407e-02
+8.2407304101365819e-02
+8.2417168660806978e-02
+8.2427025318697042e-02
+8.2436874028343640e-02
+8.2446714742953217e-02
+8.2456547414004794e-02
+8.2466371991940055e-02
+8.2476188427039410e-02
+8.2485996668763245e-02
+8.2495796666288576e-02
+8.2505588369916977e-02
+8.2515371733420828e-02
+8.2525146711223227e-02
+8.2534913256273809e-02
+8.2544671318913868e-02
+8.2554420849207874e-02
+8.2564161796975177e-02
+8.2573894111777402e-02
+8.2583617743360094e-02
+8.2593332643660713e-02
+8.2603038765989914e-02
+8.2612736063458148e-02
+8.2622424487881846e-02
+8.2632103990608163e-02
+8.2641774522364514e-02
+8.2651436031876954e-02
+8.2661088467487015e-02
+8.2670731779483572e-02
+8.2680365921753915e-02
+8.2689990848526962e-02
+8.2699606512742038e-02
+8.2709212865925599e-02
+8.2718809859315859e-02
+8.2728397441592660e-02
+8.2737975559763990e-02
+8.2747544161850900e-02
+8.2757103202273016e-02
+8.2766652637877053e-02
+8.2776192423755987e-02
+8.2785722509045617e-02
+8.2795242841628786e-02
+8.2804753370245121e-02
+8.2814254045287472e-02
+8.2823744817392200e-02
+8.2833225638826335e-02
+8.2842696463718474e-02
+8.2852157246074545e-02
+8.2861607937087980e-02
+8.2871048486035478e-02
+8.2880478842283209e-02
+8.2889898956011954e-02
+8.2899308777725916e-02
+8.2908708258436492e-02
+8.2918097350953165e-02
+8.2927476008478579e-02
+8.2936844183417874e-02
+8.2946201826569144e-02
+8.2955548888513378e-02
+8.2964885319055062e-02
+8.2974211067074796e-02
+8.2983526081693335e-02
+8.2992830315942817e-02
+8.3002123725634952e-02
+8.3011406265804402e-02
+8.3020677885816116e-02
+8.3029938532681244e-02
+8.3039188154375568e-02
+8.3048426702494085e-02
+8.3057654129475175e-02
+8.3066870387996289e-02
+8.3076075431238044e-02
+8.3085269212385571e-02
+8.3094451682546894e-02
+8.3103622790254253e-02
+8.3112782484033629e-02
+8.3121930714587899e-02
+8.3131067434232903e-02
+8.3140192595313203e-02
+8.3149306150107682e-02
+8.3158408050866606e-02
+8.3167498249391625e-02
+8.3176576695733889e-02
+8.3185643339519721e-02
+8.3194698130798578e-02
+8.3203741020550906e-02
+8.3212771959904924e-02
+8.3221790900908491e-02
+8.3230797796798026e-02
+8.3239792600743448e-02
+8.3248775263728175e-02
+8.3257745735046962e-02
+8.3266703964145858e-02
+8.3275649901932966e-02
+8.3284583499979858e-02
+8.3293504709906416e-02
+8.3302413483516718e-02
+8.3311309772661893e-02
+8.3320193529185474e-02
+8.3329064704913539e-02
+8.3337923251635304e-02
+8.3346769119687289e-02
+8.3355602257448563e-02
+8.3364422613366351e-02
+8.3373230139193025e-02
+8.3382024789341702e-02
+8.3390806517943422e-02
+8.3399575276307536e-02
+8.3408331014405437e-02
+8.3417073682263046e-02
+8.3425803230174803e-02
+8.3434519608509713e-02
+8.3443222768428096e-02
+8.3451912662992733e-02
+8.3460589245514791e-02
+8.3469252467827701e-02
+8.3477902279688945e-02
+8.3486538630721016e-02
+8.3495161470899817e-02
+8.3503770750497808e-02
+8.3512366420079948e-02
+8.3520948432564801e-02
+8.3529516742036861e-02
+8.3538071301882191e-02
+8.3546612062306957e-02
+8.3555138972624496e-02
+8.3563651982513129e-02
+8.3572151042569293e-02
+8.3580636103545325e-02
+8.3589107116911629e-02
+8.3597564035190502e-02
+8.3606006810970357e-02
+8.3614435396518902e-02
+8.3622849743823446e-02
+8.3631249804518623e-02
+8.3639635527233927e-02
+8.3648006859044124e-02
+8.3656363748342663e-02
+8.3664706149806131e-02
+8.3673034019958126e-02
+8.3681347313230875e-02
+8.3689645978553287e-02
+8.3697929963977846e-02
+8.3706199218588462e-02
+8.3714453693044810e-02
+8.3722693338215790e-02
+8.3730918106464020e-02
+8.3739127951513323e-02
+8.3747322826874762e-02
+8.3755502683636227e-02
+8.3763667471576486e-02
+8.3771817140412416e-02
+8.3779951639617767e-02
+8.3788070918593111e-02
+8.3796174928052691e-02
+8.3804263622328193e-02
+8.3812336956335581e-02
+8.3820394882854726e-02
+8.3828437351261567e-02
+8.3836464310674569e-02
+8.3844475711186195e-02
+8.3852471503813850e-02
+8.3860451639657455e-02
+8.3868416070264407e-02
+8.3876364747434470e-02
+8.3884297622959361e-02
+8.3892214648574367e-02
+8.3900115775995890e-02
+8.3908000956351259e-02
+8.3915870139069496e-02
+8.3923723273300055e-02
+8.3931560309986636e-02
+8.3939381203055996e-02
+8.3947185906613001e-02
+8.3954974372424357e-02
+8.3962746549943304e-02
+8.3970502388606053e-02
+8.3978241838690001e-02
+8.3985964850967557e-02
+8.3993671376453874e-02
+8.4001361367451580e-02
+8.4009034776699201e-02
+8.4016691556498629e-02
+8.4024331657832477e-02
+8.4031955031430405e-02
+8.4039561627602885e-02
+8.4047151395933190e-02
+8.4054724286014654e-02
+8.4062280249449423e-02
+8.4069819239910873e-02
+8.4077341210991585e-02
+8.4084846114370879e-02
+8.4092333900553082e-02
+8.4099804519916291e-02
+8.4107257922214032e-02
+8.4114694056978731e-02
+8.4122112874674887e-02
+8.4129514328715516e-02
+8.4136898373079111e-02
+8.4144264960231183e-02
+8.4151614039897682e-02
+8.4158945561540577e-02
+8.4166259475271635e-02
+8.4173555731900718e-02
+8.4180834282359007e-02
+8.4188095078577996e-02
+8.4195338073129927e-02
+8.4202563218417376e-02
+8.4209770465761807e-02
+8.4216959766083233e-02
+8.4224131069940048e-02
+8.4231284326694911e-02
+8.4238419485481372e-02
+8.4245536497440696e-02
+8.4252635317509400e-02
+8.4259715900910984e-02
+8.4266778199031639e-02
+8.4273822158960995e-02
+8.4280847727915123e-02
+8.4287854857421129e-02
+8.4294843501886402e-02
+8.4301813615211330e-02
+8.4308765147768985e-02
+8.4315698048561996e-02
+8.4322612267393543e-02
+8.4329507756857519e-02
+8.4336384470143411e-02
+8.4343242359183307e-02
+8.4350081373427185e-02
+8.4356901462089628e-02
+8.4363702576098168e-02
+8.4370484668379125e-02
+8.4377247691856630e-02
+8.4383991597965446e-02
+8.4390716337102586e-02
+8.4397421859707639e-02
+8.4404108116641771e-02
+8.4410775058937446e-02
+8.4417422637651174e-02
+8.4424050803924996e-02
+8.4430659508924394e-02
+8.4437248704412937e-02
+8.4443818343387475e-02
+8.4450368378922655e-02
+8.4456898761586574e-02
+8.4463409438899170e-02
+8.4469900358506780e-02
+8.4476371472319026e-02
+8.4482822735342702e-02
+8.4489254102117939e-02
+8.4495665523452529e-02
+8.4502056948567703e-02
+8.4508428327000118e-02
+8.4514779609512272e-02
+8.4521110747161191e-02
+8.4527421691388951e-02
+8.4533712394467150e-02
+8.4539982808755923e-02
+8.4546232885904599e-02
+8.4552462576661588e-02
+8.4558671831715795e-02
+8.4564860601733488e-02
+8.4571028837363810e-02
+8.4577176489424241e-02
+8.4583303509967359e-02
+8.4589409851594577e-02
+8.4595495466484247e-02
+8.4601560305111789e-02
+8.4607604317527133e-02
+8.4613627453861140e-02
+8.4619629664426863e-02
+8.4625610899605228e-02
+8.4631571111511622e-02
+8.4637510254552975e-02
+8.4643428283061845e-02
+8.4649325147772222e-02
+8.4655200796577290e-02
+8.4661055177628328e-02
+8.4666888241659438e-02
+8.4672699940604293e-02
+8.4678490226601733e-02
+8.4684259052623570e-02
+8.4690006371855753e-02
+8.4695732136304464e-02
+8.4701436295198648e-02
+8.4707118797397007e-02
+8.4712779593050375e-02
+8.4718418634089396e-02
+8.4724035872565412e-02
+8.4729631260380467e-02
+8.4735204749313758e-02
+8.4740756291118713e-02
+8.4746285837369290e-02
+8.4751793339552350e-02
+8.4757278748683412e-02
+8.4762742013707010e-02
+8.4768183083003976e-02
+8.4773601906881921e-02
+8.4778998440391967e-02
+8.4784372639234495e-02
+8.4789724455777732e-02
+8.4795053837604523e-02
+8.4800360732107019e-02
+8.4805645089856510e-02
+8.4810906864150562e-02
+8.4816146008201809e-02
+8.4821362473743500e-02
+8.4826556211758983e-02
+8.4831727173128729e-02
+8.4836875308285709e-02
+8.4842000567534465e-02
+8.4847102901439597e-02
+8.4852182261235282e-02
+8.4857238598276472e-02
+8.4862271864708946e-02
+8.4867282013862760e-02
+8.4872268999015829e-02
+8.4877232770616776e-02
+8.4882173276585857e-02
+8.4887090465131418e-02
+8.4891984287856881e-02
+8.4896854698162716e-02
+8.4901701649053002e-02
+8.4906525091534804e-02
+8.4911324976012836e-02
+8.4916101253332280e-02
+8.4920853875525698e-02
+8.4925582794809149e-02
+8.4930287962511994e-02
+8.4934969328578580e-02
+8.4939626842893107e-02
+8.4944260456563517e-02
+8.4948870121837342e-02
+8.4953455790912874e-02
+8.4958017415107862e-02
+8.4962554945253455e-02
+8.4967068332187548e-02
+8.4971557526808170e-02
+8.4976022480032734e-02
+8.4980463143060875e-02
+8.4984879467888366e-02
+8.4989271406640199e-02
+8.4993638910741673e-02
+8.4997981930477917e-02
+8.5002300416047963e-02
+8.5006594318058987e-02
+8.5010863587514390e-02
+8.5015108175519161e-02
+8.5019328034034031e-02
+8.5023523115513325e-02
+8.5027693372276628e-02
+8.5031838755894609e-02
+8.5035959217689291e-02
+8.5040054708452731e-02
+8.5044125177412264e-02
+8.5048170573531451e-02
+8.5052190847629494e-02
+8.5056185953680516e-02
+8.5060155845851346e-02
+8.5064100475631246e-02
+8.5068019791801924e-02
+8.5071913743232197e-02
+8.5075782280986806e-02
+8.5079625357452185e-02
+8.5083442924908922e-02
+8.5087234934945022e-02
+8.5091001338908012e-02
+8.5094742088134792e-02
+8.5098457133929814e-02
+8.5102146427587663e-02
+8.5105809920077283e-02
+8.5109447561789855e-02
+8.5113059303081426e-02
+8.5116645094922047e-02
+8.5120204888928727e-02
+8.5123738636766505e-02
+8.5127246290293376e-02
+8.5130727801488421e-02
+8.5134183122125617e-02
+8.5137612202764806e-02
+8.5141014993524763e-02
+8.5144391444890777e-02
+8.5147741508538127e-02
+8.5151065136379614e-02
+8.5154362280006612e-02
+8.5157632890415197e-02
+8.5160876918544987e-02
+8.5164094315558159e-02
+8.5167285032861209e-02
+8.5170449021832836e-02
+8.5173586233374163e-02
+8.5176696618073394e-02
+8.5179780126667215e-02
+8.5182836710839760e-02
+8.5185866322635515e-02
+8.5188868913918470e-02
+8.5191844435937261e-02
+8.5194792839809075e-02
+8.5197714076541489e-02
+8.5200608096930044e-02
+8.5203474851755431e-02
+8.5206314292076771e-02
+8.5209126369271693e-02
+8.5211911034713317e-02
+8.5214668239498317e-02
+8.5217397934534492e-02
+8.5220100070872634e-02
+8.5222774600511794e-02
+8.5225421475828414e-02
+8.5228040648836545e-02
+8.5230632070256773e-02
+8.5233195690522179e-02
+8.5235731460093306e-02
+8.5238239329486071e-02
+8.5240719249246324e-02
+8.5243171170670276e-02
+8.5245595045948988e-02
+8.5247990827280365e-02
+8.5250358466254200e-02
+8.5252697914027106e-02
+8.5255009121697214e-02
+8.5257292040028174e-02
+8.5259546619644383e-02
+8.5261772811277420e-02
+8.5263970566060415e-02
+8.5266139835221882e-02
+8.5268280570272803e-02
+8.5270392723320335e-02
+8.5272476246524787e-02
+8.5274531091255892e-02
+8.5276557207900713e-02
+8.5278554546829713e-02
+8.5280523059048957e-02
+8.5282462696036496e-02
+8.5284373409257902e-02
+8.5286255150009566e-02
+8.5288107869514310e-02
+8.5289931519005185e-02
+8.5291726049756461e-02
+8.5293491413052744e-02
+8.5295227560224438e-02
+8.5296934442702865e-02
+8.5298612011919794e-02
+8.5300260218802229e-02
+8.5301879013623322e-02
+8.5303468346700079e-02
+8.5305028169667493e-02
+8.5306558435180924e-02
+8.5308059095671129e-02
+8.5309530101680520e-02
+8.5310971402892607e-02
+8.5312382949518956e-02
+8.5313764693955338e-02
+8.5315116589153320e-02
+8.5316438587002455e-02
+8.5317730636944381e-02
+8.5318992688116324e-02
+8.5320224691327121e-02
+8.5321426599643077e-02
+8.5322598366194408e-02
+8.5323739942567936e-02
+8.5324851279105260e-02
+8.5325932326152168e-02
+8.5326983034368975e-02
+8.5328003354565501e-02
+8.5328993237714881e-02
+8.5329952635488607e-02
+8.5330881499745326e-02
+8.5331779782146497e-02
+8.5332647433878250e-02
+8.5333484406062074e-02
+8.5334290650078248e-02
+8.5335066117671401e-02
+8.5335810760561168e-02
+8.5336524529567748e-02
+8.5337207374754975e-02
+8.5337859246290435e-02
+8.5338480095402444e-02
+8.5339069873845985e-02
+8.5339628533287359e-02
+8.5340156024975522e-02
+8.5340652300042452e-02
+8.5341117309860853e-02
+8.5341551006410457e-02
+8.5341953341746046e-02
+8.5342324266929004e-02
+8.5342663731562227e-02
+8.5342971685225741e-02
+8.5343248079216366e-02
+8.5343492866335482e-02
+8.5343705999257946e-02
+8.5343887429100262e-02
+8.5344037106170736e-02
+8.5344154980995290e-02
+8.5344241005161595e-02
+8.5344295130570277e-02
+8.5344317308784529e-02
+8.5344307490477292e-02
+8.5344265626184967e-02
+8.5344191666938782e-02
+8.5344085564527550e-02
+8.5343947270770035e-02
+8.5343776736813301e-02
+8.5343573913190973e-02
+8.5343338750506731e-02
+8.5343071200221304e-02
+8.5342771214259497e-02
+8.5342438744357305e-02
+8.5342073741291102e-02
+8.5341676155540641e-02
+8.5341245937860771e-02
+8.5340783039765986e-02
+8.5340287412900617e-02
+8.5339759008896884e-02
+8.5339197779367659e-02
+8.5338603675903776e-02
+8.5337976649667621e-02
+8.5337316651413850e-02
+8.5336623631877759e-02
+8.5335897541764127e-02
+8.5335138331760471e-02
+8.5334345952793378e-02
+8.5333520357034648e-02
+8.5332661497059453e-02
+8.5331769325013809e-02
+8.5330843791802724e-02
+8.5329884848103679e-02
+8.5328892444250209e-02
+8.5327866530002738e-02
+8.5326807055157605e-02
+8.5325713971554723e-02
+8.5324587233060689e-02
+8.5323426793345689e-02
+8.5322232603156231e-02
+8.5321004611514137e-02
+8.5319742767790557e-02
+8.5318447023385965e-02
+8.5317117330390019e-02
+8.5315753640801434e-02
+8.5314355906341996e-02
+8.5312924078676203e-02
+8.5311458109043670e-02
+8.5309957947945117e-02
+8.5308423545821133e-02
+8.5306854853449049e-02
+8.5305251821954239e-02
+8.5303614402493899e-02
+8.5301942546397752e-02
+8.5300236205101673e-02
+8.5298495330156238e-02
+8.5296719873760418e-02
+8.5294909788343476e-02
+8.5293065025528067e-02
+8.5291185534378644e-02
+8.5289271263474173e-02
+8.5287322163343740e-02
+8.5285338188055837e-02
+8.5283319291950294e-02
+8.5281265426657052e-02
+8.5279176540887833e-02
+8.5277052583409604e-02
+8.5274893505295365e-02
+8.5272699259098847e-02
+8.5270469797176521e-02
+8.5268205070551537e-02
+8.5265905029750760e-02
+8.5263569625628421e-02
+8.5261198810129113e-02
+8.5258792535417238e-02
+8.5256350752959204e-02
+8.5253873412898765e-02
+8.5251360465262729e-02
+8.5248811860950124e-02
+8.5246227551838721e-02
+8.5243607489861081e-02
+8.5240951626984918e-02
+8.5238259915201384e-02
+8.5235532306201470e-02
+8.5232768749776172e-02
+8.5229969194976496e-02
+8.5227133591663576e-02
+8.5224261892525188e-02
+8.5221354050856693e-02
+8.5218410019021584e-02
+8.5215429747539470e-02
+8.5212413186729424e-02
+8.5209360287413979e-02
+8.5206271001004419e-02
+8.5203145278925807e-02
+8.5199983072348343e-02
+8.5196784332264325e-02
+8.5193549009745420e-02
+8.5190277056414479e-02
+8.5186968424118950e-02
+8.5183623064376407e-02
+8.5180240927498027e-02
+8.5176821963524676e-02
+8.5173366123233216e-02
+8.5169873358921844e-02
+8.5166343623046994e-02
+8.5162776867047707e-02
+8.5159173041122957e-02
+8.5155532095489136e-02
+8.5151853981638798e-02
+8.5148138651993652e-02
+8.5144386058788768e-02
+8.5140596152810138e-02
+8.5136768884226249e-02
+8.5132904203468099e-02
+8.5129002061979819e-02
+8.5125062411446711e-02
+8.5121085203344729e-02
+8.5117070388697799e-02
+8.5113017918481818e-02
+8.5108927744076621e-02
+8.5104799817375079e-02
+8.5100634090194555e-02
+8.5096430512760168e-02
+8.5092189034088439e-02
+8.5087909603621392e-02
+8.5083592174145184e-02
+8.5079236699935695e-02
+8.5074843134508180e-02
+8.5070411428298937e-02
+8.5065941530975311e-02
+8.5061433392895347e-02
+8.5056886965976020e-02
+8.5052302202317867e-02
+8.5047679052794645e-02
+8.5043017466655546e-02
+8.5038317393191079e-02
+8.5033578784079675e-02
+8.5028801592889086e-02
+8.5023985772926608e-02
+8.5019131275088783e-02
+8.5014238049149773e-02
+8.5009306045172331e-02
+8.5004335214459451e-02
+8.4999325508640172e-02
+8.4994276879336764e-02
+8.4989189278155491e-02
+8.4984062656686357e-02
+8.4978896965891532e-02
+8.4973692155866490e-02
+8.4968448176714853e-02
+8.4963164979730138e-02
+8.4957842517187174e-02
+8.4952480741329148e-02
+8.4947079603903700e-02
+8.4941639056417426e-02
+8.4936159050132590e-02
+8.4930639535240868e-02
+8.4925080461640892e-02
+8.4919481779949693e-02
+8.4913843442557188e-02
+8.4908165402103997e-02
+8.4902447610338994e-02
+8.4896690017727525e-02
+8.4890892574668711e-02
+8.4885055232155684e-02
+8.4879177941692197e-02
+8.4873260654670810e-02
+8.4867303321389406e-02
+8.4861305891589758e-02
+8.4855268315782925e-02
+8.4849190548058395e-02
+8.4843072543534750e-02
+8.4836914255160420e-02
+8.4830715630280731e-02
+8.4824476615401184e-02
+8.4818197159905281e-02
+8.4811877217496834e-02
+8.4805516742159831e-02
+8.4799115686444326e-02
+8.4792674001615984e-02
+8.4786191638794126e-02
+8.4779668548186582e-02
+8.4773104679517583e-02
+8.4766499982924029e-02
+8.4759854410566174e-02
+8.4753167915216018e-02
+8.4746440449104177e-02
+8.4739671962998211e-02
+8.4732862407425211e-02
+8.4726011733169071e-02
+8.4719119891415715e-02
+8.4712186833353784e-02
+8.4705212509512934e-02
+8.4698196869807715e-02
+8.4691139864467108e-02
+8.4684041446939542e-02
+8.4676901572456845e-02
+8.4669720195099774e-02
+8.4662497262996378e-02
+8.4655232722388327e-02
+8.4647926521286262e-02
+8.4640578612705783e-02
+8.4633188950534066e-02
+8.4625757488175399e-02
+8.4618284178245462e-02
+8.4610768973181233e-02
+8.4603211823101918e-02
+8.4595612675872303e-02
+8.4587971479566079e-02
+8.4580288185295657e-02
+8.4572562745930224e-02
+8.4564795114306326e-02
+8.4556985242972282e-02
+8.4549133084380099e-02
+8.4541238590280288e-02
+8.4533301710346315e-02
+8.4525322393881136e-02
+8.4517300591142847e-02
+8.4509236254017309e-02
+8.4501129334543110e-02
+8.4492979784616951e-02
+8.4484787555991689e-02
+8.4476552600339080e-02
+8.4468274868537002e-02
+8.4459954310984339e-02
+8.4451590878116184e-02
+8.4443184520607312e-02
+8.4434735189216154e-02
+8.4426242835225138e-02
+8.4417707411541504e-02
+8.4409128871369546e-02
+8.4400507166379243e-02
+8.4391842245511745e-02
+8.4383134057509857e-02
+8.4374382553220162e-02
+8.4365587685711216e-02
+8.4356749408040388e-02
+8.4347867671943827e-02
+8.4338942428326097e-02
+8.4329973628010216e-02
+8.4320961221416163e-02
+8.4311905158817077e-02
+8.4302805390727931e-02
+8.4293661868450109e-02
+8.4284474543451102e-02
+8.4275243367885458e-02
+8.4265968295183485e-02
+8.4256649278803331e-02
+8.4247286269156174e-02
+8.4237879213299727e-02
+8.4228428058453056e-02
+8.4218932755805484e-02
+8.4209393259152929e-02
+8.4199809522252894e-02
+8.4190181498344813e-02
+8.4180509140470386e-02
+8.4170792400449557e-02
+8.4161031225943123e-02
+8.4151225563747559e-02
+8.4141375363091311e-02
+8.4131480577917417e-02
+8.4121541162653510e-02
+8.4111557070060114e-02
+8.4101528250985685e-02
+8.4091454656142303e-02
+8.4081336235847196e-02
+8.4071172940147307e-02
+8.4060964719235604e-02
+8.4050711524286267e-02
+8.4040413306864931e-02
+8.4030070018965647e-02
+8.4019681614108152e-02
+8.4009248046135590e-02
+8.3998769266524179e-02
+8.3988245221957511e-02
+8.3977675858668929e-02
+8.3967061127069351e-02
+8.3956400982562976e-02
+8.3945695380595375e-02
+8.3934944273237083e-02
+8.3924147610149158e-02
+8.3913305341068306e-02
+8.3902417416601441e-02
+8.3891483787718546e-02
+8.3880504405404316e-02
+8.3869479220694029e-02
+8.3858408184637467e-02
+8.3847291248746667e-02
+8.3836128365511242e-02
+8.3824919487504493e-02
+8.3813664565855525e-02
+8.3802363549894496e-02
+8.3791016388945400e-02
+8.3779623033850448e-02
+8.3768183436581864e-02
+8.3756697549267178e-02
+8.3745165324953935e-02
+8.3733586717091038e-02
+8.3721961678170906e-02
+8.3710290156927172e-02
+8.3698572101176233e-02
+8.3686807459642062e-02
+8.3674996183054753e-02
+8.3663138222469596e-02
+8.3651233531141692e-02
+8.3639282065182591e-02
+8.3627283780520340e-02
+8.3615238627415364e-02
+8.3603146551730720e-02
+8.3591007499847214e-02
+8.3578821422916907e-02
+8.3566588274267495e-02
+8.3554308007004557e-02
+8.3541980573274513e-02
+8.3529605924975422e-02
+8.3517184013564075e-02
+8.3504714789477727e-02
+8.3492198203008308e-02
+8.3479634204373862e-02
+8.3467022743692373e-02
+8.3454363771234316e-02
+8.3441657239845979e-02
+8.3428903104456748e-02
+8.3416101319411698e-02
+8.3403251833946423e-02
+8.3390354594861812e-02
+8.3377409549831555e-02
+8.3364416650357751e-02
+8.3351375848976034e-02
+8.3338287098722721e-02
+8.3325150353843774e-02
+8.3311965568700588e-02
+8.3298732694648894e-02
+8.3285451678802677e-02
+8.3272122468134230e-02
+8.3258745012689303e-02
+8.3245319265104215e-02
+8.3231845178180525e-02
+8.3218322705423745e-02
+8.3204751800689772e-02
+8.3191132416729902e-02
+8.3177464501288281e-02
+8.3163748000699672e-02
+8.3149982863455429e-02
+8.3136169043497313e-02
+8.3122306495592019e-02
+8.3108395173305649e-02
+8.3094435028437455e-02
+8.3080426012538150e-02
+8.3066368075187566e-02
+8.3052261164234253e-02
+8.3038105227865061e-02
+8.3023900217763902e-02
+8.3009646087432762e-02
+8.2995342790280272e-02
+8.2980990279198544e-02
+8.2966588506924371e-02
+8.2952137424944145e-02
+8.2937636981437843e-02
+8.2923087124077366e-02
+8.2908487802412917e-02
+8.2893838968877365e-02
+8.2879140576174321e-02
+8.2864392577520526e-02
+8.2849594926602432e-02
+8.2834747576722101e-02
+8.2819850477450732e-02
+8.2804903576334424e-02
+8.2789906821468529e-02
+8.2774860163780536e-02
+8.2759763555077748e-02
+8.2744616947863128e-02
+8.2729420296564188e-02
+8.2714173555896220e-02
+8.2698876677795602e-02
+8.2683529609749853e-02
+8.2668132298963928e-02
+8.2652684695120923e-02
+8.2637186750267849e-02
+8.2621638416661591e-02
+8.2606039647692031e-02
+8.2590390397391023e-02
+8.2574690618919436e-02
+8.2558940260855099e-02
+8.2543139270286947e-02
+8.2527287595526772e-02
+8.2511385188431888e-02
+8.2495432001512506e-02
+8.2479427988346024e-02
+8.2463373104292512e-02
+8.2447267304631075e-02
+8.2431110538946362e-02
+8.2414902751162727e-02
+8.2398643885667755e-02
+8.2382333894166090e-02
+8.2365972732688988e-02
+8.2349560356944851e-02
+8.2333096720566476e-02
+8.2316581776478853e-02
+8.2300015475939542e-02
+8.2283397765148300e-02
+8.2266728589387814e-02
+8.2250007897198912e-02
+8.2233235642801231e-02
+8.2216411780969764e-02
+8.2199536266114953e-02
+8.2182609052269637e-02
+8.2165630092974673e-02
+8.2148599336576325e-02
+8.2131516728216072e-02
+8.2114382213991630e-02
+8.2097195745767224e-02
+8.2079957277463034e-02
+8.2062666763246167e-02
+8.2045324158060429e-02
+8.2027929416967488e-02
+8.2010482491537764e-02
+8.1992983326990163e-02
+8.1975431868046067e-02
+8.1957828064084359e-02
+8.1940171869510775e-02
+8.1922463238894030e-02
+8.1904702125796605e-02
+8.1886888483133316e-02
+8.1869022263208302e-02
+8.1851103414705542e-02
+8.1833131884958332e-02
+8.1815107622525460e-02
+8.1797030580055233e-02
+8.1778900711042657e-02
+8.1760717968570873e-02
+8.1742482304940758e-02
+8.1724193672310902e-02
+8.1705852021265582e-02
+8.1687457300618369e-02
+8.1669009459192629e-02
+8.1650508447089015e-02
+8.1631954215265590e-02
+8.1613346715174478e-02
+8.1594685901297925e-02
+8.1575971729301269e-02
+8.1557204152972004e-02
+8.1538383119532931e-02
+8.1519508574793342e-02
+8.1500580466920353e-02
+8.1481598748757794e-02
+8.1462563373717087e-02
+8.1443474295719770e-02
+8.1424331469285405e-02
+8.1405134848570745e-02
+8.1385884382566637e-02
+8.1366580016647941e-02
+8.1347221696890959e-02
+8.1327809374537069e-02
+8.1308343002937503e-02
+8.1288822535819566e-02
+8.1269247928263760e-02
+8.1249619135639689e-02
+8.1229936110176371e-02
+8.1210198797595667e-02
+8.1190407142922416e-02
+8.1170561094948163e-02
+8.1150660607066008e-02
+8.1130705632990172e-02
+8.1110696127005916e-02
+8.1090632043815322e-02
+8.1070513337227562e-02
+8.1050339954737191e-02
+8.1030111841141339e-02
+8.1009828942907855e-02
+8.0989491212952874e-02
+8.0969098605738823e-02
+8.0948651075769137e-02
+8.0928148577635903e-02
+8.0907591065830245e-02
+8.0886978490657166e-02
+8.0866310797091570e-02
+8.0845587930137186e-02
+8.0824809840301950e-02
+8.0803976482281534e-02
+8.0783087810774257e-02
+8.0762143779725584e-02
+8.0741144342744847e-02
+8.0720089452137891e-02
+8.0698979054973724e-02
+8.0677813097014606e-02
+8.0656591526222773e-02
+8.0635314295538371e-02
+8.0613981358596404e-02
+8.0592592669458091e-02
+8.0571148182750171e-02
+8.0549647852831016e-02
+8.0528091629246124e-02
+8.0506479457723976e-02
+8.0484811284457974e-02
+8.0463087060053340e-02
+8.0441306737174381e-02
+8.0419470269033011e-02
+8.0397577611101653e-02
+8.0375628719436848e-02
+8.0353623546814093e-02
+8.0331562038247095e-02
+8.0309444137726407e-02
+8.0287269793700308e-02
+8.0265038960785365e-02
+8.0242751594013409e-02
+8.0220407647794131e-02
+8.0198007076023009e-02
+8.0175549831905765e-02
+8.0153035863150632e-02
+8.0130465114785054e-02
+8.0107837533336820e-02
+8.0085153072047902e-02
+8.0062411686014037e-02
+8.0039613329748849e-02
+8.0016757956325860e-02
+7.9993845518550682e-02
+7.9970875966787133e-02
+7.9947849247876013e-02
+7.9924765308546183e-02
+7.9901624098423857e-02
+7.9878425569631151e-02
+7.9855169674759516e-02
+7.9831856369730794e-02
+7.9808485612163055e-02
+7.9785057357370848e-02
+7.9761571549924387e-02
+7.9738028131289843e-02
+7.9714427046702105e-02
+7.9690768251151109e-02
+7.9667051701165018e-02
+7.9643277352214048e-02
+7.9619445158176622e-02
+7.9595555072560248e-02
+7.9571607044303605e-02
+7.9547601018243777e-02
+7.9523536939779885e-02
+7.9499414760719964e-02
+7.9475234436280712e-02
+7.9450995921430706e-02
+7.9426699169778542e-02
+7.9402344134517105e-02
+7.9377930767035268e-02
+7.9353459013836017e-02
+7.9328928820653219e-02
+7.9304340136322732e-02
+7.9279692914548477e-02
+7.9254987109461009e-02
+7.9230222675208406e-02
+7.9205399565955154e-02
+7.9180517735344652e-02
+7.9155577132036317e-02
+7.9130577701922195e-02
+7.9105519391661716e-02
+7.9080402151980062e-02
+7.9055225934896889e-02
+7.9029990693626373e-02
+7.9004696384767939e-02
+7.8979342965450700e-02
+7.8953930388181728e-02
+7.8928458597901319e-02
+7.8902927539027945e-02
+7.8877337159903069e-02
+7.8851687412692550e-02
+7.8825978250043491e-02
+7.8800209627856749e-02
+7.8774381503918758e-02
+7.8748493834058353e-02
+7.8722546563503637e-02
+7.8696539633953427e-02
+7.8670472990273521e-02
+7.8644346586739106e-02
+7.8618160379354624e-02
+7.8591914323423578e-02
+7.8565608373052209e-02
+7.8539242482055668e-02
+7.8512816600134164e-02
+7.8486330672807900e-02
+7.8459784645832059e-02
+7.8433178469460851e-02
+7.8406512096669004e-02
+7.8379785480948205e-02
+7.8352998578481020e-02
+7.8326151346387290e-02
+7.8299243738466154e-02
+7.8272275698188037e-02
+7.8245247167078119e-02
+7.8218158091785242e-02
+7.8191008428092443e-02
+7.8163798132686452e-02
+7.8136527161227265e-02
+7.8109195468288137e-02
+7.8081803007795977e-02
+7.8054349726977112e-02
+7.8026835568830680e-02
+7.7999260477705765e-02
+7.7971624406301343e-02
+7.7943927310365979e-02
+7.7916169145387612e-02
+7.7888349865990358e-02
+7.7860469426591403e-02
+7.7832527778344943e-02
+7.7804524866332561e-02
+7.7776460635146150e-02
+7.7748335034141844e-02
+7.7720148017931132e-02
+7.7691899541351514e-02
+7.7663589558704907e-02
+7.7635218023940772e-02
+7.7606784890047409e-02
+7.7578290104100611e-02
+7.7549733610916521e-02
+7.7521115357501266e-02
+7.7492435298353396e-02
+7.7463693389536264e-02
+7.7434889583137018e-02
+7.7406023823516051e-02
+7.7377096055541120e-02
+7.7348106265923436e-02
+7.7319054489473044e-02
+7.7289940766648746e-02
+7.7260765175819729e-02
+7.7231527821371090e-02
+7.7202228806664858e-02
+7.7172868225096641e-02
+7.7143446166076518e-02
+7.7113962718046339e-02
+7.7084417966020821e-02
+7.7054811994266698e-02
+7.7025144889660557e-02
+7.6995416744376086e-02
+7.6965627651242902e-02
+7.6935777703553906e-02
+7.6905866995157099e-02
+7.6875895619416601e-02
+7.6845863662755365e-02
+7.6815771206629496e-02
+7.6785618333573391e-02
+7.6755405134227933e-02
+7.6725131702624572e-02
+7.6694798132943678e-02
+7.6664404519881532e-02
+7.6633950958228531e-02
+7.6603437538211971e-02
+7.6572864340383587e-02
+7.6542231444251874e-02
+7.6511538936129789e-02
+7.6480786910826298e-02
+7.6449975463656145e-02
+7.6419104689522663e-02
+7.6388174683022322e-02
+7.6357185537382619e-02
+7.6326137336045832e-02
+7.6295030158175070e-02
+7.6263864085742955e-02
+7.6232639211843783e-02
+7.6201355632302042e-02
+7.6170013442149395e-02
+7.6138612734660688e-02
+7.6107153602761532e-02
+7.6075636134950123e-02
+7.6044060413962597e-02
+7.6012426522500343e-02
+7.5980734548605003e-02
+7.5948984584471163e-02
+7.5917176722707688e-02
+7.5885311058229321e-02
+7.5853387687004767e-02
+7.5821406702392721e-02
+7.5789368186965661e-02
+7.5757272220530983e-02
+7.5725118886717263e-02
+7.5692908278004289e-02
+7.5660640488140793e-02
+7.5628315611696958e-02
+7.5595933744357566e-02
+7.5563494981354173e-02
+7.5530999409293378e-02
+7.5498447107790551e-02
+7.5465838157482021e-02
+7.5433172648729965e-02
+7.5400450676542094e-02
+7.5367672335771796e-02
+7.5334837720480524e-02
+7.5301946924504662e-02
+7.5269000038162198e-02
+7.5235997143249078e-02
+7.5202938320414525e-02
+7.5169823655918899e-02
+7.5136653243959767e-02
+7.5103427179308402e-02
+7.5070145556264053e-02
+7.5036808468727109e-02
+7.5003416009623236e-02
+7.4969968263814760e-02
+7.4936465312140682e-02
+7.4902907237233265e-02
+7.4869294129990188e-02
+7.4835626083653184e-02
+7.4801903192503599e-02
+7.4768125553456369e-02
+7.4734293263689452e-02
+7.4700406412596343e-02
+7.4666465078088329e-02
+7.4632469337691937e-02
+7.4598419278871231e-02
+7.4564314997839498e-02
+7.4530156590914887e-02
+7.4495944152701443e-02
+7.4461677776910026e-02
+7.4427357555364060e-02
+7.4392983570948604e-02
+7.4358555903901460e-02
+7.4324074638060164e-02
+7.4289539866805740e-02
+7.4254951685078105e-02
+7.4220310187541938e-02
+7.4185615468438534e-02
+7.4150867621614241e-02
+7.4116066733811783e-02
+7.4081212885256389e-02
+7.4046306156907563e-02
+7.4011346638812606e-02
+7.3976334425963353e-02
+7.3941269613297486e-02
+7.3906152295235936e-02
+7.3870982566034304e-02
+7.3835760516562154e-02
+7.3800486228294451e-02
+7.3765159781173734e-02
+7.3729781260656699e-02
+7.3694350761048577e-02
+7.3658868377434378e-02
+7.3623334204521093e-02
+7.3587748336654366e-02
+7.3552110867277629e-02
+7.3516421881106339e-02
+7.3480681457899030e-02
+7.3444889679320169e-02
+7.3409046637303965e-02
+7.3373152427131785e-02
+7.3337207143786998e-02
+7.3301210881381917e-02
+7.3265163733811617e-02
+7.3229065790495096e-02
+7.3192917133357571e-02
+7.3156717843836164e-02
+7.3120468008534889e-02
+7.3084167719205298e-02
+7.3047817068146115e-02
+7.3011416151030128e-02
+7.2974965065529848e-02
+7.2938463906977460e-02
+7.2901912757712864e-02
+7.2865311695643045e-02
+7.2828660802514933e-02
+7.2791960171768783e-02
+7.2755209899056192e-02
+7.2718410079681786e-02
+7.2681560808343898e-02
+7.2644662179371239e-02
+7.2607714279492766e-02
+7.2570717187547956e-02
+7.2533670982941986e-02
+7.2496575755317844e-02
+7.2459431600649465e-02
+7.2422238614920129e-02
+7.2384996893626138e-02
+7.2347706532088468e-02
+7.2310367622080873e-02
+7.2272980244073540e-02
+7.2235544476350250e-02
+7.2198060403074360e-02
+7.2160528119131373e-02
+7.2122947720497724e-02
+7.2085319301847778e-02
+7.2047642956447305e-02
+7.2009918776914081e-02
+7.1972146849150542e-02
+7.1934327254727273e-02
+7.1896460076363633e-02
+7.1858545404164975e-02
+7.1820583331000137e-02
+7.1782573950612966e-02
+7.1744517359653287e-02
+7.1706413655318574e-02
+7.1668262928248391e-02
+7.1630065256596695e-02
+7.1591820717426188e-02
+7.1553529396708337e-02
+7.1515191390457478e-02
+7.1476806795182590e-02
+7.1438375706873780e-02
+7.1399898221172084e-02
+7.1361374431820168e-02
+7.1322804420540412e-02
+7.1284188264349846e-02
+7.1245526044018820e-02
+7.1206817853491769e-02
+7.1168063789587982e-02
+7.1129263948394111e-02
+7.1090418424540003e-02
+7.1051527312264717e-02
+7.1012590698957476e-02
+7.0973608663960103e-02
+7.0934581286868942e-02
+7.0895508656612913e-02
+7.0856390868668531e-02
+7.0817228018577164e-02
+7.0778020201408998e-02
+7.0738767512041306e-02
+7.0699470042393436e-02
+7.0660127873535150e-02
+7.0620741084082186e-02
+7.0581309757880989e-02
+7.0541833989641811e-02
+7.0502313875395739e-02
+7.0462749510089170e-02
+7.0423140987340413e-02
+7.0383488400187280e-02
+7.0343791834739627e-02
+7.0304051372039447e-02
+7.0264267094120897e-02
+7.0224439090793803e-02
+7.0184567455197633e-02
+7.0144652281246597e-02
+7.0104693665786005e-02
+7.0064691706332699e-02
+7.0024646494208795e-02
+6.9984558107292608e-02
+6.9944426621936576e-02
+6.9904252123314997e-02
+6.9864034707860512e-02
+6.9823774472645678e-02
+6.9783471513377132e-02
+6.9743125924719929e-02
+6.9702737799929637e-02
+6.9662307222052966e-02
+6.9621834269566488e-02
+6.9581319023802102e-02
+6.9540761577693108e-02
+6.9500162027095885e-02
+6.9459520467617358e-02
+6.9418836994298641e-02
+6.9378111701940054e-02
+6.9337344678661900e-02
+6.9296536003697923e-02
+6.9255685756206581e-02
+6.9214794023831266e-02
+6.9173860900959810e-02
+6.9132886482390854e-02
+6.9091870864666879e-02
+6.9050814145146189e-02
+6.9009716417809591e-02
+6.8968577762336697e-02
+6.8927398254648012e-02
+6.8886177976417856e-02
+6.8844917022965690e-02
+6.8803615491567216e-02
+6.8762273478497449e-02
+6.8720891078643723e-02
+6.8679468386273368e-02
+6.8638005486977904e-02
+6.8596502459161185e-02
+6.8554959382350594e-02
+6.8513376347033889e-02
+6.8471753449056219e-02
+6.8430090784254993e-02
+6.8388388448271817e-02
+6.8346646536680405e-02
+6.8304865140120768e-02
+6.8263044336996204e-02
+6.8221184204016627e-02
+6.8179284826468567e-02
+6.8137346302041324e-02
+6.8095368729194403e-02
+6.8053352202825490e-02
+6.8011296814757038e-02
+6.7969202655961153e-02
+6.7927069810955074e-02
+6.7884898360960580e-02
+6.7842688389075173e-02
+6.7800439987240113e-02
+6.7758153249965536e-02
+6.7715828272041048e-02
+6.7673465148980566e-02
+6.7631063976294911e-02
+6.7588624842852385e-02
+6.7546147827503900e-02
+6.7503633008713135e-02
+6.7461080473424875e-02
+6.7418490316215038e-02
+6.7375862632114952e-02
+6.7333197517820145e-02
+6.7290495070913378e-02
+6.7247755385973787e-02
+6.7204978542894436e-02
+6.7162164617107001e-02
+6.7119313689346718e-02
+6.7076425854752320e-02
+6.7033501210868457e-02
+6.6990539854274098e-02
+6.6947541880029243e-02
+6.6904507382654452e-02
+6.6861436448327344e-02
+6.6818329155402853e-02
+6.6775185582987506e-02
+6.6732005820283963e-02
+6.6688789962113929e-02
+6.6645538103722618e-02
+6.6602250342211539e-02
+6.6558926775268437e-02
+6.6515567495414096e-02
+6.6472172580482061e-02
+6.6428742105827415e-02
+6.6385276154786982e-02
+6.6341774823795149e-02
+6.6298238210444421e-02
+6.6254666411048463e-02
+6.6211059520671509e-02
+6.6167417633321998e-02
+6.6123740832851885e-02
+6.6080029197213466e-02
+6.6036282806380867e-02
+6.5992501751568525e-02
+6.5948686127745695e-02
+6.5904836030502498e-02
+6.5860951557269065e-02
+6.5817032805718004e-02
+6.5773079865683814e-02
+6.5729092813580192e-02
+6.5685071724954455e-02
+6.5641016686060857e-02
+6.5596927794054738e-02
+6.5552805146459864e-02
+6.5508648839506106e-02
+6.5464458968639019e-02
+6.5420235627085724e-02
+6.5375978895642006e-02
+6.5331688850757574e-02
+6.5287365573244896e-02
+6.5243009157531923e-02
+6.5198619700690255e-02
+6.5154197299597733e-02
+6.5109742050785888e-02
+6.5065254050371835e-02
+6.5020733384765148e-02
+6.4976180130076305e-02
+6.4931594362978712e-02
+6.4886976172136845e-02
+6.4842325653797619e-02
+6.4797642904458011e-02
+6.4752928021385811e-02
+6.4708181102129891e-02
+6.4663402239655915e-02
+6.4618591511957951e-02
+6.4573748994048830e-02
+6.4528874768352756e-02
+6.4483968931119795e-02
+6.4439031580074579e-02
+6.4394062811904740e-02
+6.4349062722151337e-02
+6.4304031405392648e-02
+6.4258968945382300e-02
+6.4213875418734426e-02
+6.4168750904554123e-02
+6.4123595498193839e-02
+6.4078409301232070e-02
+6.4033192416638962e-02
+6.3987944952104858e-02
+6.3942667016275989e-02
+6.3897358711290694e-02
+6.3852020126610495e-02
+6.3806651350522769e-02
+6.3761252479975383e-02
+6.3715823621894083e-02
+6.3670364883711306e-02
+6.3624876372275166e-02
+6.3579358194031765e-02
+6.3533810453654874e-02
+6.3488233244311368e-02
+6.3442626654555259e-02
+6.3396990776417236e-02
+6.3351325714446252e-02
+6.3305631575995919e-02
+6.3259908468159098e-02
+6.3214156497498161e-02
+6.3168375770272997e-02
+6.3122566384939391e-02
+6.3076728430582804e-02
+6.3030861996497392e-02
+6.2984967182268384e-02
+6.2939044094861868e-02
+6.2893092841442316e-02
+6.2847113529429968e-02
+6.2801106266352241e-02
+6.2755071156183270e-02
+6.2709008289530771e-02
+6.2662917753894432e-02
+6.2616799642639998e-02
+6.2570654061601588e-02
+6.2524481118209158e-02
+6.2478280919917487e-02
+6.2432053574212470e-02
+6.2385799187818995e-02
+6.2339517856530136e-02
+6.2293209667964956e-02
+6.2246874711305217e-02
+6.2200513088412158e-02
+6.2154124906705521e-02
+6.2107710273650842e-02
+6.2061269296801107e-02
+6.2014802083702962e-02
+6.1968308736111206e-02
+6.1921789342915173e-02
+6.1875243991494286e-02
+6.1828672777941435e-02
+6.1782075809715870e-02
+6.1735453195017193e-02
+6.1688805041678153e-02
+6.1642131457245571e-02
+6.1595432547525170e-02
+6.1548708405180924e-02
+6.1501959116855083e-02
+6.1455184772531410e-02
+6.1408385476139957e-02
+6.1361561335215559e-02
+6.1314712457478986e-02
+6.1267838951082745e-02
+6.1220940924046278e-02
+6.1174018476004115e-02
+6.1127071695188481e-02
+6.1080100669624555e-02
+6.1033105497226237e-02
+6.0986086283941372e-02
+6.0939043136263013e-02
+6.0891976163178700e-02
+6.0844885474870374e-02
+6.0797771177455058e-02
+6.0750633359394256e-02
+6.0703472104388111e-02
+6.0656287503291495e-02
+6.0609079664332106e-02
+6.0561848698287048e-02
+6.0514594714192037e-02
+6.0467317818613857e-02
+6.0420018117329208e-02
+6.0372695705663740e-02
+6.0325350670093786e-02
+6.0277983098548878e-02
+6.0230593093519309e-02
+6.0183180764778278e-02
+6.0135746221471290e-02
+6.0088289569644550e-02
+6.0040810914454339e-02
+5.9993310357053110e-02
+5.9945787988424350e-02
+5.9898243898082806e-02
+5.9850678181992092e-02
+5.9803090945650159e-02
+5.9755482295374335e-02
+5.9707852338425710e-02
+5.9660201182898200e-02
+5.9612528935436122e-02
+5.9564835689590832e-02
+5.9517121532074564e-02
+5.9469386552603171e-02
+5.9421630855496031e-02
+5.9373854549418938e-02
+5.9326057742578993e-02
+5.9278240541962277e-02
+5.9230403054229705e-02
+5.9182545378669779e-02
+5.9134667603203336e-02
+5.9086769815325652e-02
+5.9038852113367880e-02
+5.8990914605625513e-02
+5.8942957400629298e-02
+5.8894980605644624e-02
+5.8846984327246825e-02
+5.8798968669533963e-02
+5.8750933724251428e-02
+5.8702879579297471e-02
+5.8654806327216279e-02
+5.8606714073478360e-02
+5.8558602925779094e-02
+5.8510472991503262e-02
+5.8462324377536116e-02
+5.8414157190281743e-02
+5.8365971526846271e-02
+5.8317767475426198e-02
+5.8269545125048602e-02
+5.8221304576464183e-02
+5.8173045937097587e-02
+5.8124769314482454e-02
+5.8076474816318634e-02
+5.8028162550356116e-02
+5.7979832619708876e-02
+5.7931485113989926e-02
+5.7883120120457904e-02
+5.7834737733118438e-02
+5.7786338057299429e-02
+5.7737921199489090e-02
+5.7689487267960089e-02
+5.7641036372766935e-02
+5.7592568622578715e-02
+5.7544084110827086e-02
+5.7495582921891511e-02
+5.7447065143111244e-02
+5.7398530878775465e-02
+5.7349980238973933e-02
+5.7301413333032736e-02
+5.7252830267933284e-02
+5.7204231150133213e-02
+5.7155616079392110e-02
+5.7106985143739748e-02
+5.7058338430435680e-02
+5.7009676036993619e-02
+5.6960998071596582e-02
+5.6912304642833714e-02
+5.6863595858284953e-02
+5.6814871824904696e-02
+5.6766132647348172e-02
+5.6717378417040928e-02
+5.6668609220669505e-02
+5.6619825149497101e-02
+5.6571026309429014e-02
+5.6522212809281103e-02
+5.6473384757135342e-02
+5.6424542259732237e-02
+5.6375685423349121e-02
+5.6326814345707028e-02
+5.6277929115249918e-02
+5.6229029820872668e-02
+5.6180116562144548e-02
+5.6131189445536599e-02
+5.6082248577877671e-02
+5.6033294067464934e-02
+5.5984326023145500e-02
+5.5935344549381309e-02
+5.5886349735949768e-02
+5.5837341669614592e-02
+5.5788320443490087e-02
+5.5739286162810500e-02
+5.5690238934227948e-02
+5.5641178865981689e-02
+5.5592106068104219e-02
+5.5543020649543910e-02
+5.5493922704666764e-02
+5.5444812318005243e-02
+5.5395689576425072e-02
+5.5346554582830707e-02
+5.5297407446420886e-02
+5.5248248276088083e-02
+5.5199077179597815e-02
+5.5149894264420393e-02
+5.5100699631615485e-02
+5.5051493369465979e-02
+5.5002275565029464e-02
+5.4953046314470969e-02
+5.4903805724679421e-02
+5.4854553903233558e-02
+5.4805290958688857e-02
+5.4756017000287621e-02
+5.4706732134897358e-02
+5.4657436453393007e-02
+5.4608130040084218e-02
+5.4558812983942495e-02
+5.4509485391160677e-02
+5.4460147371883622e-02
+5.4410799035206049e-02
+5.4361440488036393e-02
+5.4312071836761205e-02
+5.4262693179223422e-02
+5.4213304602781273e-02
+5.4163906195007418e-02
+5.4114498055398273e-02
+5.4065080292192369e-02
+5.4015653013823078e-02
+5.3966216328680199e-02
+5.3916770345134819e-02
+5.3867315167387929e-02
+5.3817850883559219e-02
+5.3768377577933249e-02
+5.3718895342534670e-02
+5.3669404286226428e-02
+5.3619904520025484e-02
+5.3570396152732583e-02
+5.3520879290313648e-02
+5.3471354037847814e-02
+5.3421820490026473e-02
+5.3372278733601536e-02
+5.3322728857106504e-02
+5.3273170963747798e-02
+5.3223605163316423e-02
+5.3174031564970865e-02
+5.3124450275185926e-02
+5.3074861399736509e-02
+5.3025265039379647e-02
+5.2975661283462545e-02
+5.2926050219951053e-02
+5.2876431944903622e-02
+5.2826806565169242e-02
+5.2777174188362003e-02
+5.2727534922337040e-02
+5.2677888875141535e-02
+5.2628236153093831e-02
+5.2578576849006534e-02
+5.2528911049358293e-02
+5.2479238843960295e-02
+5.2429560336906073e-02
+5.2379875636073769e-02
+5.2330184849452094e-02
+5.2280488085292620e-02
+5.2230785451683595e-02
+5.2181077047545862e-02
+5.2131362959056585e-02
+5.2081643272211361e-02
+5.2031918085779151e-02
+5.1982187509135490e-02
+5.1932451651825896e-02
+5.1882710622153154e-02
+5.1832964527811158e-02
+5.1783213473218091e-02
+5.1733457548249227e-02
+5.1683696838755788e-02
+5.1633931436281574e-02
+5.1584161446524578e-02
+5.1534386977354289e-02
+5.1484608137084144e-02
+5.1434825034671068e-02
+5.1385037778441070e-02
+5.1335246464478464e-02
+5.1285451178273739e-02
+5.1235652006680794e-02
+5.1185849051353711e-02
+5.1136042421520887e-02
+5.1086232226106837e-02
+5.1036418572334021e-02
+5.0986601566919372e-02
+5.0936781311772587e-02
+5.0886957896299136e-02
+5.0837131408035405e-02
+5.0787301942262969e-02
+5.0737469605970857e-02
+5.0687634507097776e-02
+5.0637796753132715e-02
+5.0587956451159044e-02
+5.0538113706934180e-02
+5.0488268614269444e-02
+5.0438421260592302e-02
+5.0388571736028093e-02
+5.0338720144186014e-02
+5.0288866592789694e-02
+5.0239011189644134e-02
+5.0189154042773132e-02
+5.0139295260110989e-02
+5.0089434941649760e-02
+5.0039573174859651e-02
+4.9989710046626605e-02
+4.9939845654516903e-02
+4.9889980106133949e-02
+4.9840113509470513e-02
+4.9790245972520804e-02
+4.9740377603279880e-02
+4.9690508506958546e-02
+4.9640638774489085e-02
+4.9590768492244405e-02
+4.9540897751577155e-02
+4.9491026658036001e-02
+4.9441155319679943e-02
+4.9391283844450205e-02
+4.9341412340094301e-02
+4.9291540913896571e-02
+4.9241669663279107e-02
+4.9191798676006086e-02
+4.9141928040587909e-02
+4.9092057857212379e-02
+4.9042188232866359e-02
+4.8992319274730925e-02
+4.8942451090577738e-02
+4.8892583788372912e-02
+4.8842717471547697e-02
+4.8792852230000981e-02
+4.8742988151201788e-02
+4.8693125329295685e-02
+4.8643263869886925e-02
+4.8593403879758669e-02
+4.8543545466911184e-02
+4.8493688740586668e-02
+4.8443833808765262e-02
+4.8393980765287108e-02
+4.8344129695401722e-02
+4.8294280687003609e-02
+4.8244433843606473e-02
+4.8194589274200839e-02
+4.8144747087560266e-02
+4.8094907391761685e-02
+4.8045070294664767e-02
+4.7995235896639184e-02
+4.7945404284638359e-02
+4.7895575544637380e-02
+4.7845749773332710e-02
+4.7795927078821354e-02
+4.7746107569764877e-02
+4.7696291354964955e-02
+4.7646478543312019e-02
+4.7596669241054164e-02
+4.7546863538768094e-02
+4.7497061521279076e-02
+4.7447263278087182e-02
+4.7397468914029843e-02
+4.7347678537084145e-02
+4.7297892255757798e-02
+4.7248110179550787e-02
+4.7198332417676361e-02
+4.7148559068321029e-02
+4.7098790217452842e-02
+4.7049025951476073e-02
+4.6999266369666629e-02
+4.6949511579809790e-02
+4.6899761689975408e-02
+4.6850016809062485e-02
+4.6800277046288023e-02
+4.6750542506026088e-02
+4.6700813276028430e-02
+4.6651089440550020e-02
+4.6601371092014315e-02
+4.6551658338794266e-02
+4.6501951291055228e-02
+4.6452250057387456e-02
+4.6402554744562383e-02
+4.6352865458367573e-02
+4.6303182293341870e-02
+4.6253505336268916e-02
+4.6203834675927279e-02
+4.6154170415145343e-02
+4.6104512662397956e-02
+4.6054861526157419e-02
+4.6005217114831624e-02
+4.5955579536763408e-02
+4.5905948892941757e-02
+4.5856325269358143e-02
+4.5806708750533165e-02
+4.5757099432728529e-02
+4.5707497426335716e-02
+4.5657902842344007e-02
+4.5608315788475073e-02
+4.5558736370101646e-02
+4.5509164690958795e-02
+4.5459600843880940e-02
+4.5410044917120730e-02
+4.5360497002095559e-02
+4.5310957202217311e-02
+4.5261425623731727e-02
+4.5211902374073680e-02
+4.5162387563211760e-02
+4.5112881301132571e-02
+4.5063383686775225e-02
+4.5013894805221895e-02
+4.4964414741626421e-02
+4.4914943594794865e-02
+4.4865481473764991e-02
+4.4816028487670898e-02
+4.4766584744553535e-02
+4.4717150351973468e-02
+4.4667725413958227e-02
+4.4618310020574321e-02
+4.4568904258466838e-02
+4.4519508220302755e-02
+4.4470122012158109e-02
+4.4420745741920231e-02
+4.4371379517517566e-02
+4.4322023446932271e-02
+4.4272677637390068e-02
+4.4223342184487181e-02
+4.4174017174734417e-02
+4.4124702696271133e-02
+4.4075398851453298e-02
+4.4026105749167051e-02
+4.3976823498005496e-02
+4.3927552205204549e-02
+4.3878291977627409e-02
+4.3829042916674013e-02
+4.3779805111027109e-02
+4.3730578647756625e-02
+4.3681363622303647e-02
+4.3632160141519077e-02
+4.3582968313100025e-02
+4.3533788245189248e-02
+4.3484620046292374e-02
+4.3435463823253841e-02
+4.3386319669540110e-02
+4.3337187672196797e-02
+4.3288067921079323e-02
+4.3238960518433338e-02
+4.3189865569874676e-02
+4.3140783182471665e-02
+4.3091713466828066e-02
+4.3042656533853682e-02
+4.2993612483821178e-02
+4.2944581401887033e-02
+4.2895563372817316e-02
+4.2846558494641529e-02
+4.2797566876645488e-02
+4.2748588628215636e-02
+4.2699623856577162e-02
+4.2650672667871682e-02
+4.2601735165736468e-02
+4.2552811442430935e-02
+4.2503901586984479e-02
+4.2455005692619723e-02
+4.2406123863236611e-02
+4.2357256204435333e-02
+4.2308402823188894e-02
+4.2259563828504633e-02
+4.2210739328931143e-02
+4.2161929421414106e-02
+4.2113134192637167e-02
+4.2064353730413437e-02
+4.2015588135732480e-02
+4.1966837516483058e-02
+4.1918101980587964e-02
+4.1869381635843451e-02
+4.1820676589998905e-02
+4.1771986945704942e-02
+4.1723312792028122e-02
+4.1674654215926164e-02
+4.1626011312018728e-02
+4.1577384186767111e-02
+4.1528772947687788e-02
+4.1480177703105879e-02
+4.1431598562091783e-02
+4.1383035632168261e-02
+4.1334489006095973e-02
+4.1285958768565605e-02
+4.1237445007493150e-02
+4.1188947827376747e-02
+4.1140467337899854e-02
+4.1092003648322606e-02
+4.1043556866719698e-02
+4.0995127100834979e-02
+4.0946714449995619e-02
+4.0898318999959590e-02
+4.0849940835866835e-02
+4.0801580055973466e-02
+4.0753236771132635e-02
+4.0704911092257309e-02
+4.0656603125820569e-02
+4.0608312975762034e-02
+4.0560040744306247e-02
+4.0511786524812375e-02
+4.0463550407738073e-02
+4.0415332486890519e-02
+4.0367132865861029e-02
+4.0318951650030438e-02
+4.0270788945798705e-02
+4.0222644861280035e-02
+4.0174519504312133e-02
+4.0126412972577845e-02
+4.0078325353597184e-02
+4.0030256735692972e-02
+3.9982207220200877e-02
+3.9934176916205377e-02
+3.9886165932334378e-02
+3.9838174374127393e-02
+3.9790202346062523e-02
+3.9742249949542882e-02
+3.9694317276572078e-02
+3.9646404417425715e-02
+3.9598511467751514e-02
+3.9550638532627198e-02
+3.9502785718131379e-02
+3.9454953131472847e-02
+3.9407140881038971e-02
+3.9359349074071813e-02
+3.9311577804547783e-02
+3.9263827158201599e-02
+3.9216097223361238e-02
+3.9168388104094662e-02
+3.9120699910123999e-02
+3.9073032750482538e-02
+3.9025386731973401e-02
+3.8977761960891172e-02
+3.8930158537308586e-02
+3.8882576549898337e-02
+3.8835016086453636e-02
+3.8787477243887432e-02
+3.8739960129023199e-02
+3.8692464849246412e-02
+3.8644991512688465e-02
+3.8597540227964210e-02
+3.8550111101300973e-02
+3.8502704224354763e-02
+3.8455319683303513e-02
+3.8407957568557922e-02
+3.8360617984769592e-02
+3.8313301039577377e-02
+3.8266006840918292e-02
+3.8218735497299726e-02
+3.8171487116944805e-02
+3.8124261797933386e-02
+3.8077059626858638e-02
+3.8029880690727949e-02
+3.7982725089349988e-02
+3.7935592931185910e-02
+3.7888484324741803e-02
+3.7841399377769792e-02
+3.7794338197725090e-02
+3.7747300888129207e-02
+3.7700287538667401e-02
+3.7653298236031023e-02
+3.7606333073261063e-02
+3.7559392156084101e-02
+3.7512475591766681e-02
+3.7465583488583795e-02
+3.7418715956000562e-02
+3.7371873102514747e-02
+3.7325055023003664e-02
+3.7278261802744725e-02
+3.7231493529084995e-02
+3.7184750304612671e-02
+3.7138032238188061e-02
+3.7091339438379715e-02
+3.7044672012608679e-02
+3.6998030067994535e-02
+3.6951413705767266e-02
+3.6904823014865189e-02
+3.6858258082938404e-02
+3.6811719006288976e-02
+3.6765205891860935e-02
+3.6718718847234676e-02
+3.6672257979741704e-02
+3.6625823396530595e-02
+3.6579415203078884e-02
+3.6533033493101802e-02
+3.6486678355253002e-02
+3.6440349881088761e-02
+3.6394048173464623e-02
+3.6347773337970887e-02
+3.6301525481012509e-02
+3.6255304710771055e-02
+3.6209111135438253e-02
+3.6162944854750481e-02
+3.6116805957603963e-02
+3.6070694532842978e-02
+3.6024610679089401e-02
+3.5978554502455413e-02
+3.5932526109440810e-02
+3.5886525608007661e-02
+3.5840553106775828e-02
+3.5794608710736621e-02
+3.5748692510158581e-02
+3.5702804591604756e-02
+3.5656945047445050e-02
+3.5611113983285508e-02
+3.5565311506576207e-02
+3.5519537725133554e-02
+3.5473792747263547e-02
+3.5428076680571116e-02
+3.5382389621029672e-02
+3.5336731655324666e-02
+3.5291102871638370e-02
+3.5245503371866591e-02
+3.5199933264352112e-02
+3.5154392657308374e-02
+3.5108881658239895e-02
+3.5063400374443984e-02
+3.5017948907710539e-02
+3.4972527346704176e-02
+3.4927135778363289e-02
+3.4881774298190747e-02
+3.4836443013622431e-02
+3.4791142032941508e-02
+3.4745871463807622e-02
+3.4700631413361445e-02
+3.4655421987248677e-02
+3.4610243278950709e-02
+3.4565095375974339e-02
+3.4519978368940177e-02
+3.4474892362531269e-02
+3.4429837465344629e-02
+3.4384813785096190e-02
+3.4339821427305350e-02
+3.4294860497034584e-02
+3.4249931093241842e-02
+3.4205033306016451e-02
+3.4160167225216094e-02
+3.4115332949099686e-02
+3.4070530583213049e-02
+3.4025760233566744e-02
+3.3981022008104607e-02
+3.3936316015762226e-02
+3.3891642362499003e-02
+3.3847001140326467e-02
+3.3802392437193449e-02
+3.3757816345367973e-02
+3.3713272968382405e-02
+3.3668762411608599e-02
+3.3624284781914676e-02
+3.3579840188435690e-02
+3.3535428739907225e-02
+3.3491050533705699e-02
+3.3446705656940121e-02
+3.3402394197712501e-02
+3.3358116256572284e-02
+3.3313871940736532e-02
+3.3269661357598075e-02
+3.3225484615100907e-02
+3.3181341821349963e-02
+3.3137233079366453e-02
+3.3093158478298003e-02
+3.3049118105072696e-02
+3.3005112054544317e-02
+3.2961140434091617e-02
+3.2917203352136139e-02
+3.2873300915791437e-02
+3.2829433230939085e-02
+3.2785600402375138e-02
+3.2741802524893900e-02
+3.2698039687696759e-02
+3.2654311982230996e-02
+3.2610619511806931e-02
+3.2566962383536902e-02
+3.2523340704309102e-02
+3.2479754580366338e-02
+3.2436204117752616e-02
+3.2392689416502661e-02
+3.2349210566744016e-02
+3.2305767658061979e-02
+3.2262360788567312e-02
+3.2218990064738585e-02
+3.2175655593420255e-02
+3.2132357481601030e-02
+3.2089095836353783e-02
+3.2045870762464401e-02
+3.2002682352374870e-02
+3.1959530694386035e-02
+3.1916415880919140e-02
+3.1873338016731131e-02
+3.1830297208875376e-02
+3.1787293564371377e-02
+3.1744327190180353e-02
+3.1701398192891077e-02
+3.1658506670305973e-02
+3.1615652711241171e-02
+3.1572836405115198e-02
+3.1530057852205987e-02
+3.1487317159404497e-02
+3.1444614433695228e-02
+3.1401949782060935e-02
+3.1359323311482050e-02
+3.1316735124988580e-02
+3.1274185313231583e-02
+3.1231673964515011e-02
+3.1189201173726571e-02
+3.1146767047574981e-02
+3.1104371693965138e-02
+3.1062015219864351e-02
+3.1019697731240702e-02
+3.0977419333139092e-02
+3.0935180120647401e-02
+3.0892980182527879e-02
+3.0850819609512133e-02
+3.0808698504637879e-02
+3.0766616975471450e-02
+3.0724575129434436e-02
+3.0682573073450035e-02
+3.0640610914282298e-02
+3.0598688752604627e-02
+3.0556806677674273e-02
+3.0514964777798463e-02
+3.0473163149847261e-02
+3.0431401900200612e-02
+3.0389681135759232e-02
+3.0348000963723861e-02
+3.0306361491494078e-02
+3.0264762824560518e-02
+3.0223205056476646e-02
+3.0181688276199173e-02
+3.0140212575876745e-02
+3.0098778058673951e-02
+3.0057384830131470e-02
+3.0016032996864388e-02
+2.9974722667590666e-02
+2.9933453950946296e-02
+2.9892226945662639e-02
+2.9851041739007701e-02
+2.9809898418551733e-02
+2.9768797083907547e-02
+2.9727737843009649e-02
+2.9686720803782422e-02
+2.9645746072996946e-02
+2.9604813756959517e-02
+2.9563923958797603e-02
+2.9523076770178510e-02
+2.9482272280223168e-02
+2.9441510583385205e-02
+2.9400791785020055e-02
+2.9360115991814397e-02
+2.9319483310426737e-02
+2.9278893847481585e-02
+2.9238347708886940e-02
+2.9197844990854115e-02
+2.9157385782607761e-02
+2.9116970174853631e-02
+2.9076598269566978e-02
+2.9036270173471539e-02
+2.8995985993224574e-02
+2.8955745835169161e-02
+2.8915549805547388e-02
+2.8875398005918894e-02
+2.8835290527842193e-02
+2.8795227461765244e-02
+2.8755208904504868e-02
+2.8715234960884659e-02
+2.8675305736330904e-02
+2.8635421337619656e-02
+2.8595581872540864e-02
+2.8555787447183970e-02
+2.8516038155136952e-02
+2.8476334084480456e-02
+2.8436675326545178e-02
+2.8397061985641067e-02
+2.8357494169288965e-02
+2.8317971983962322e-02
+2.8278495533796653e-02
+2.8239064922588691e-02
+2.8199680253252646e-02
+2.8160341627546222e-02
+2.8121049145129935e-02
+2.8081802874666904e-02
+2.8042602860548344e-02
+2.8003449139714608e-02
+2.7964341697247583e-02
+2.7925280494350991e-02
+2.7886265491915925e-02
+2.7847296650061554e-02
+2.7808373928721986e-02
+2.7769497291885797e-02
+2.7730666713002682e-02
+2.7691882166874012e-02
+2.7653143628503015e-02
+2.7614451073168695e-02
+2.7575804475532428e-02
+2.7537203799822736e-02
+2.7498649001753285e-02
+2.7460140038379547e-02
+2.7421676879522159e-02
+2.7383259501143363e-02
+2.7344887879055858e-02
+2.7306561988249795e-02
+2.7268281803476572e-02
+2.7230047294618989e-02
+2.7191858419679565e-02
+2.7153715135047687e-02
+2.7115617405072113e-02
+2.7077565205438647e-02
+2.7039558512554636e-02
+2.7001597300285323e-02
+2.6963681540333594e-02
+2.6925811203476382e-02
+2.6887986253246093e-02
+2.6850206649534216e-02
+2.6812472354207174e-02
+2.6774783338282659e-02
+2.6737139575391335e-02
+2.6699541039275000e-02
+2.6661987703958643e-02
+2.6624479543399932e-02
+2.6587016525558296e-02
+2.6549598609483964e-02
+2.6512225753955686e-02
+2.6474897926185476e-02
+2.6437615100861001e-02
+2.6400377252788997e-02
+2.6363184355530325e-02
+2.6326036381991970e-02
+2.6288933303123537e-02
+2.6251875080521399e-02
+2.6214861672989889e-02
+2.6177893043165555e-02
+2.6140969163921730e-02
+2.6104090009817751e-02
+2.6067255555128926e-02
+2.6030465773690586e-02
+2.5993720638911269e-02
+2.5957020116411128e-02
+2.5920364164615746e-02
+2.5883752742685839e-02
+2.5847185819227941e-02
+2.5810663368024584e-02
+2.5774185362994244e-02
+2.5737751778472207e-02
+2.5701362588919821e-02
+2.5665017765133125e-02
+2.5628717267661302e-02
+2.5592461055356751e-02
+2.5556249092463061e-02
+2.5520081351935741e-02
+2.5483957807529441e-02
+2.5447878433139937e-02
+2.5411843202798840e-02
+2.5375852089562174e-02
+2.5339905056752862e-02
+2.5304002062126879e-02
+2.5268143065674195e-02
+2.5232328039511417e-02
+2.5196556959737281e-02
+2.5160829801306794e-02
+2.5125146535820281e-02
+2.5089507134225857e-02
+2.5053911564301225e-02
+2.5018359788478686e-02
+2.4982851768858661e-02
+2.4947387471758061e-02
+2.4911966867723200e-02
+2.4876589927847689e-02
+2.4841256627023474e-02
+2.4805966942409642e-02
+2.4770720848679047e-02
+2.4735518306578112e-02
+2.4700359272064997e-02
+2.4665243705209210e-02
+2.4630171578697267e-02
+2.4595142867619837e-02
+2.4560157546597492e-02
+2.4525215589423652e-02
+2.4490316969548294e-02
+2.4455461653952085e-02
+2.4420649602853808e-02
+2.4385880776749653e-02
+2.4351155142734986e-02
+2.4316472672014706e-02
+2.4281833336471229e-02
+2.4247237111561439e-02
+2.4212683974028232e-02
+2.4178173896523478e-02
+2.4143706838555171e-02
+2.4109282757058391e-02
+2.4074901614989506e-02
+2.4040563386363765e-02
+2.4006268046329000e-02
+2.3972015568587891e-02
+2.3937805925269062e-02
+2.3903639087866465e-02
+2.3869515021359089e-02
+2.3835433686493896e-02
+2.3801395045276126e-02
+2.3767399067823162e-02
+2.3733445727310228e-02
+2.3699534996971389e-02
+2.3665666850219834e-02
+2.3631841260468446e-02
+2.3598058196741937e-02
+2.3564317619650291e-02
+2.3530619489062866e-02
+2.3496963771024879e-02
+2.3463350438591341e-02
+2.3429779465190106e-02
+2.3396250824173393e-02
+2.3362764488842204e-02
+2.3329320431143646e-02
+2.3295918614358247e-02
+2.3262558998348556e-02
+2.3229241545467648e-02
+2.3195966226882532e-02
+2.3162733015705109e-02
+2.3129541885397790e-02
+2.3096392810124915e-02
+2.3063285763923733e-02
+2.3030220714133038e-02
+2.2997197620168226e-02
+2.2964216441593022e-02
+2.2931277145968973e-02
+2.2898379706507661e-02
+2.2865524096613330e-02
+2.2832710290187040e-02
+2.2799938261334775e-02
+2.2767207981469133e-02
+2.2734519412041476e-02
+2.2701872512226991e-02
+2.2669267245324316e-02
+2.2636703583258366e-02
+2.2604181499062501e-02
+2.2571700966644015e-02
+2.2539261960987596e-02
+2.2506864456488106e-02
+2.2474508418343517e-02
+2.2442193804977924e-02
+2.2409920575996077e-02
+2.2377688700471472e-02
+2.2345498151562278e-02
+2.2313348902776985e-02
+2.2281240928919675e-02
+2.2249174205082465e-02
+2.2217148701347590e-02
+2.2185164376845399e-02
+2.2153221189457423e-02
+2.2121319104603580e-02
+2.2089458097390571e-02
+2.2057638143380260e-02
+2.2025859215426911e-02
+2.1994121284305817e-02
+2.1962424319971387e-02
+2.1930768286664355e-02
+2.1899153146048869e-02
+2.1867578861594440e-02
+2.1836045404159322e-02
+2.1804552746479276e-02
+2.1773100861415817e-02
+2.1741689722117756e-02
+2.1710319301646019e-02
+2.1678989567731996e-02
+2.1647700480968098e-02
+2.1616452001914359e-02
+2.1585244098546112e-02
+2.1554076744773495e-02
+2.1522949914504094e-02
+2.1491863580322706e-02
+2.1460817714190755e-02
+2.1429812286322378e-02
+2.1398847259500992e-02
+2.1367922594541702e-02
+2.1337038255454157e-02
+2.1306194213880157e-02
+2.1275390442584897e-02
+2.1244626914687682e-02
+2.1213903603802334e-02
+2.1183220483179516e-02
+2.1152577519296081e-02
+2.1121974672978432e-02
+2.1091411905727948e-02
+2.1060889186038906e-02
+2.1030406485848491e-02
+2.0999963777438700e-02
+2.0969561034524853e-02
+2.0939198231212475e-02
+2.0908875337830986e-02
+2.0878592315274280e-02
+2.0848349123096119e-02
+2.0818145726430232e-02
+2.0787982098535728e-02
+2.0757858213283752e-02
+2.0727774044018491e-02
+2.0697729563626026e-02
+2.0667724744043395e-02
+2.0637759549093176e-02
+2.0607833938425295e-02
+2.0577947873799650e-02
+2.0548101327024428e-02
+2.0518294272847241e-02
+2.0488526685305992e-02
+2.0458798536582303e-02
+2.0429109798478725e-02
+2.0399460438281430e-02
+2.0369850416418016e-02
+2.0340279693137019e-02
+2.0310748236333429e-02
+2.0281256020829520e-02
+2.0251803021376340e-02
+2.0222389209778122e-02
+2.0193014556256838e-02
+2.0163679030097536e-02
+2.0134382596054889e-02
+2.0105125217496835e-02
+2.0075906859646941e-02
+2.0046727492806553e-02
+2.0017587088153946e-02
+1.9988485617911961e-02
+1.9959423055957982e-02
+1.9930399375984269e-02
+1.9901414544790091e-02
+1.9872468522667382e-02
+1.9843561270441804e-02
+1.9814692756560379e-02
+1.9785862953742007e-02
+1.9757071834848795e-02
+1.9728319373238188e-02
+1.9699605542423657e-02
+1.9670930312902474e-02
+1.9642293646533009e-02
+1.9613695503696543e-02
+1.9585135849062192e-02
+1.9556614654384751e-02
+1.9528131892127577e-02
+1.9499687535750047e-02
+1.9471281559691359e-02
+1.9442913937558225e-02
+1.9414584634033970e-02
+1.9386293608581864e-02
+1.9358040822216357e-02
+1.9329826244698391e-02
+1.9301649848732977e-02
+1.9273511607335345e-02
+1.9245411494444434e-02
+1.9217349484113980e-02
+1.9189325545697820e-02
+1.9161339640445564e-02
+1.9133391729029097e-02
+1.9105481777530554e-02
+1.9077609757578030e-02
+1.9049775641139660e-02
+1.9021979401133558e-02
+1.8994221011057688e-02
+1.8966500442958185e-02
+1.8938817660592220e-02
+1.8911172624796819e-02
+1.8883565299161575e-02
+1.8855995655933919e-02
+1.8828463669043619e-02
+1.8800969311164820e-02
+1.8773512552711868e-02
+1.8746093363748623e-02
+1.8718711711372144e-02
+1.8691367559510421e-02
+1.8664060872313190e-02
+1.8636791618229571e-02
+1.8609559768446440e-02
+1.8582365294333377e-02
+1.8555208168086361e-02
+1.8528088362205781e-02
+1.8501005847180327e-02
+1.8473960586875254e-02
+1.8446952543822098e-02
+1.8419981683468565e-02
+1.8393047976741475e-02
+1.8366151395186638e-02
+1.8339291910758126e-02
+1.8312469495864458e-02
+1.8285684122463803e-02
+1.8258935756779067e-02
+1.8232224361223980e-02
+1.8205549899193551e-02
+1.8178912340653497e-02
+1.8152311658106261e-02
+1.8125747823822088e-02
+1.8099220809251439e-02
+1.8072730585647904e-02
+1.8046277121723089e-02
+1.8019860381201420e-02
+1.7993480327337392e-02
+1.7967136926748943e-02
+1.7940830149955664e-02
+1.7914559967868567e-02
+1.7888326353616250e-02
+1.7862129281863263e-02
+1.7835968725797971e-02
+1.7809844648700470e-02
+1.7783757009849098e-02
+1.7757705771392112e-02
+1.7731690905895815e-02
+1.7705712388270237e-02
+1.7679770191902051e-02
+1.7653864287056169e-02
+1.7627994643529425e-02
+1.7602161228274470e-02
+1.7576364004805452e-02
+1.7550602936783323e-02
+1.7524877992669160e-02
+1.7499189144390626e-02
+1.7473536363944810e-02
+1.7447919623277110e-02
+1.7422338894311079e-02
+1.7396794147467840e-02
+1.7371285347473224e-02
+1.7345812457714545e-02
+1.7320375443500756e-02
+1.7294974274255120e-02
+1.7269608919984289e-02
+1.7244279352605293e-02
+1.7218985546442335e-02
+1.7193727475449536e-02
+1.7168505106000920e-02
+1.7143318398763509e-02
+1.7118167315403242e-02
+1.7093051825859230e-02
+1.7067971903724163e-02
+1.7042927522127230e-02
+1.7017918652291460e-02
+1.6992945264956816e-02
+1.6968007328814524e-02
+1.6943104807971524e-02
+1.6918237665992292e-02
+1.6893405869625639e-02
+1.6868609389802842e-02
+1.6843848197759224e-02
+1.6819122265036106e-02
+1.6794431563414963e-02
+1.6769776064071210e-02
+1.6745155733497677e-02
+1.6720570536025842e-02
+1.6696020436854715e-02
+1.6671505404847020e-02
+1.6647025409823699e-02
+1.6622580422660075e-02
+1.6598170416697918e-02
+1.6573795365512199e-02
+1.6549455237457905e-02
+1.6525149993742456e-02
+1.6500879595498973e-02
+1.6476644011122313e-02
+1.6452443214947599e-02
+1.6428277181083861e-02
+1.6404145880416464e-02
+1.6380049282276044e-02
+1.6355987355354283e-02
+1.6331960065594654e-02
+1.6307967378193407e-02
+1.6284009259422950e-02
+1.6260085678188273e-02
+1.6236196603832399e-02
+1.6212342007783667e-02
+1.6188521864447490e-02
+1.6164736148024550e-02
+1.6140984825118873e-02
+1.6117267855857990e-02
+1.6093585201215264e-02
+1.6069936831092056e-02
+1.6046322719887537e-02
+1.6022742841412842e-02
+1.5999197166627573e-02
+1.5975685665671788e-02
+1.5952208307250082e-02
+1.5928765056394002e-02
+1.5905355877589518e-02
+1.5881980737135218e-02
+1.5858639604028200e-02
+1.5835332447653831e-02
+1.5812059240560911e-02
+1.5788819958108831e-02
+1.5765614574646272e-02
+1.5742443054616861e-02
+1.5719305357253185e-02
+1.5696201443829515e-02
+1.5673131285654424e-02
+1.5650094857045448e-02
+1.5627092131536079e-02
+1.5604123080558894e-02
+1.5581187675150644e-02
+1.5558285883460411e-02
+1.5535417669153543e-02
+1.5512582995693386e-02
+1.5489781830253948e-02
+1.5467014143444788e-02
+1.5444279906150556e-02
+1.5421579090628310e-02
+1.5398911669888927e-02
+1.5376277615470026e-02
+1.5353676891444458e-02
+1.5331109459541635e-02
+1.5308575284009784e-02
+1.5286074336158958e-02
+1.5263606588527934e-02
+1.5241172013714659e-02
+1.5218770584412941e-02
+1.5196402273062466e-02
+1.5174067046429793e-02
+1.5151764865808113e-02
+1.5129495692980640e-02
+1.5107259496824560e-02
+1.5085056250284128e-02
+1.5062885926155768e-02
+1.5040748496199526e-02
+1.5018643931832555e-02
+1.4996572202568231e-02
+1.4974533272333905e-02
+1.4952527104081707e-02
+1.4930553664150128e-02
+1.4908612924600582e-02
+1.4886704858012977e-02
+1.4864829436184644e-02
+1.4842986630126152e-02
+1.4821176410323718e-02
+1.4799398742113825e-02
+1.4777653587752014e-02
+1.4755940910767503e-02
+1.4734260681987101e-02
+1.4712612874754064e-02
+1.4690997461985059e-02
+1.4669414415278430e-02
+1.4647863705946259e-02
+1.4626345302343642e-02
+1.4604859167610557e-02
+1.4583405264524060e-02
+1.4561983560084937e-02
+1.4540594025718782e-02
+1.4519236633091176e-02
+1.4497911354213676e-02
+1.4476618161313785e-02
+1.4455357025631974e-02
+1.4434127912640914e-02
+1.4412930785731255e-02
+1.4391765609771149e-02
+1.4370632354395105e-02
+1.4349530990202215e-02
+1.4328461488509425e-02
+1.4307423821955247e-02
+1.4286417963140008e-02
+1.4265443879779944e-02
+1.4244501534259515e-02
+1.4223590889204994e-02
+1.4202711913268372e-02
+1.4181864579024980e-02
+1.4161048858962504e-02
+1.4140264724622849e-02
+1.4119512147190287e-02
+1.4098791096359435e-02
+1.4078101536801063e-02
+1.4057443432148159e-02
+1.4036816748443924e-02
+1.4016221456364438e-02
+1.3995657527132868e-02
+1.3975124932602542e-02
+1.3954623645343662e-02
+1.3934153637483699e-02
+1.3913714875142022e-02
+1.3893307320358241e-02
+1.3872930936016723e-02
+1.3852585690927462e-02
+1.3832271556243414e-02
+1.3811988503717270e-02
+1.3791736507202149e-02
+1.3771515540984226e-02
+1.3751325575106778e-02
+1.3731166571095610e-02
+1.3711038489626145e-02
+1.3690941296739267e-02
+1.3670874964836981e-02
+1.3650839466655088e-02
+1.3630834774463521e-02
+1.3610860860202358e-02
+1.3590917694945753e-02
+1.3571005243970324e-02
+1.3551123470155052e-02
+1.3531272337898501e-02
+1.3511451817260879e-02
+1.3491661879615828e-02
+1.3471902496621240e-02
+1.3452173640531100e-02
+1.3432475283554846e-02
+1.3412807393735186e-02
+1.3393169933966290e-02
+1.3373562867205428e-02
+1.3353986161778757e-02
+1.3334439789975953e-02
+1.3314923724073165e-02
+1.3295437935593266e-02
+1.3275982395733379e-02
+1.3256557074328962e-02
+1.3237161935928089e-02
+1.3217796943805746e-02
+1.3198462063450789e-02
+1.3179157265203559e-02
+1.3159882520072379e-02
+1.3140637800018236e-02
+1.3121423078229007e-02
+1.3102238327557150e-02
+1.3083083514627732e-02
+1.3063958601273297e-02
+1.3044863550123844e-02
+1.3025798330680544e-02
+1.3006762915550684e-02
+1.2987757277071887e-02
+1.2968781386420774e-02
+1.2949835214470393e-02
+1.2930918730208012e-02
+1.2912031898301342e-02
+1.2893174682885535e-02
+1.2874347051015811e-02
+1.2855548973667866e-02
+1.2836780422090200e-02
+1.2818041367492993e-02
+1.2799331781055689e-02
+1.2780651633397590e-02
+1.2762000890745216e-02
+1.2743379517249933e-02
+1.2724787478100859e-02
+1.2706224742973797e-02
+1.2687691282744119e-02
+1.2669187068722273e-02
+1.2650712073260691e-02
+1.2632266268773151e-02
+1.2613849623445847e-02
+1.2595462099547447e-02
+1.2577103659264569e-02
+1.2558774270892558e-02
+1.2540473907834061e-02
+1.2522202543339064e-02
+1.2503960148095917e-02
+1.2485746691528726e-02
+1.2467562142537839e-02
+1.2449406467716950e-02
+1.2431279633015756e-02
+1.2413181605052339e-02
+1.2395112352119096e-02
+1.2377071842809792e-02
+1.2359060047945859e-02
+1.2341076941600082e-02
+1.2323122497758058e-02
+1.2305196684145531e-02
+1.2287299463033904e-02
+1.2269430797145273e-02
+1.2251590654720262e-02
+1.2233779006844060e-02
+1.2215995824934867e-02
+1.2198241081864637e-02
+1.2180514750925780e-02
+1.2162816802329503e-02
+1.2145147198211803e-02
+1.2127505899492647e-02
+1.2109892872278096e-02
+1.2092308090568094e-02
+1.2074751528863724e-02
+1.2057223158528953e-02
+1.2039722948079236e-02
+1.2022250865756114e-02
+1.2004806878234218e-02
+1.1987390951344840e-02
+1.1970003051562948e-02
+1.1952643148575437e-02
+1.1935311213057017e-02
+1.1918007215782064e-02
+1.1900731127797583e-02
+1.1883482920159024e-02
+1.1866262561494529e-02
+1.1849070016578448e-02
+1.1831905249998586e-02
+1.1814768229594942e-02
+1.1797658926284753e-02
+1.1780577311099423e-02
+1.1763523355005400e-02
+1.1746497028932637e-02
+1.1729498303005804e-02
+1.1712527143189013e-02
+1.1695583514107396e-02
+1.1678667381757492e-02
+1.1661778716075480e-02
+1.1644917487708073e-02
+1.1628083667866492e-02
+1.1611277228696995e-02
+1.1594498142222720e-02
+1.1577746375735032e-02
+1.1561021891859856e-02
+1.1544324653627858e-02
+1.1527654630240440e-02
+1.1511011794517301e-02
+1.1494396119082340e-02
+1.1477807575248421e-02
+1.1461246133884837e-02
+1.1444711764102389e-02
+1.1428204429725350e-02
+1.1411724093630119e-02
+1.1395270722115420e-02
+1.1378844287395200e-02
+1.1362444762228308e-02
+1.1346072118342938e-02
+1.1329726326408366e-02
+1.1313407356677669e-02
+1.1297115175420638e-02
+1.1280849746470001e-02
+1.1264611034579267e-02
+1.1248399009942655e-02
+1.1232213644676513e-02
+1.1216054910364238e-02
+1.1199922776903647e-02
+1.1183817213848457e-02
+1.1167738189523763e-02
+1.1151685670038229e-02
+1.1135659621350069e-02
+1.1119660011557170e-02
+1.1103686811048197e-02
+1.1087739990356140e-02
+1.1071819520381219e-02
+1.1055925372258040e-02
+1.1040057516330319e-02
+1.1024215918192958e-02
+1.1008400541684837e-02
+1.0992611352248329e-02
+1.0976848320626911e-02
+1.0961111418652013e-02
+1.0945400617714223e-02
+1.0929715888373864e-02
+1.0914057201013171e-02
+1.0898424523578504e-02
+1.0882817821298598e-02
+1.0867237059509064e-02
+1.0851682206575161e-02
+1.0836153232879018e-02
+1.0820650109008968e-02
+1.0805172806618232e-02
+1.0789721297772004e-02
+1.0774295552745198e-02
+1.0758895535617763e-02
+1.0743521209156398e-02
+1.0728172539310472e-02
+1.0712849498288553e-02
+1.0697552058982414e-02
+1.0682280192844144e-02
+1.0667033869651957e-02
+1.0651813058851737e-02
+1.0636617726823666e-02
+1.0621447837819653e-02
+1.0606303356842520e-02
+1.0591184254128709e-02
+1.0576090502033704e-02
+1.0561022072564775e-02
+1.0545978936445004e-02
+1.0530961064094430e-02
+1.0515968424120350e-02
+1.0501000981406352e-02
+1.0486058700462507e-02
+1.0471141548609215e-02
+1.0456249496572178e-02
+1.0441382515260179e-02
+1.0426540575289594e-02
+1.0411723647065149e-02
+1.0396931700572556e-02
+1.0382164702926600e-02
+1.0367422620026412e-02
+1.0352705418612357e-02
+1.0338013068638774e-02
+1.0323345540821784e-02
+1.0308702805577613e-02
+1.0294084832678808e-02
+1.0279491591773616e-02
+1.0264923051011694e-02
+1.0250379176650089e-02
+1.0235859934993196e-02
+1.0221365294793255e-02
+1.0206895226649719e-02
+1.0192449701121094e-02
+1.0178028688136598e-02
+1.0163632157346857e-02
+1.0149260077837433e-02
+1.0134912416447041e-02
+1.0120589139459986e-02
+1.0106290214289580e-02
+1.0092015610881609e-02
+1.0077765299532198e-02
+1.0063539250760952e-02
+1.0049337435381670e-02
+1.0035159824010511e-02
+1.0021006383897820e-02
+1.0006877079646329e-02
+9.9927718763686887e-03
+9.9786907436348431e-03
+9.9646336530770860e-03
+9.9506005760891646e-03
+9.9365914830213328e-03
+9.9226063439465245e-03
+9.9086451276404371e-03
+9.8947077998367706e-03
+9.8807943258818354e-03
+9.8669046732458906e-03
+9.8530388123141393e-03
+9.8391967136946673e-03
+9.8253783481860868e-03
+9.8115836867432322e-03
+9.7978126998602300e-03
+9.7840653542757318e-03
+9.7703416149128135e-03
+9.7566414475500126e-03
+9.7429648217654454e-03
+9.7293117081778957e-03
+9.7156820775509984e-03
+9.7020759010035505e-03
+9.6884931496544272e-03
+9.6749337920168151e-03
+9.6613977928753161e-03
+9.6478851169221978e-03
+9.6343957322767848e-03
+9.6209296099868027e-03
+9.6074867211474336e-03
+9.5940670364565266e-03
+9.5806705264112751e-03
+9.5672971607461531e-03
+9.5539469056987354e-03
+9.5406197265061506e-03
+9.5273155897753221e-03
+9.5140344656273225e-03
+9.5007763247391391e-03
+9.4875411378035207e-03
+9.4743288755367357e-03
+9.4611395085031219e-03
+9.4479730043702578e-03
+9.4348293282261724e-03
+9.4217084454776452e-03
+9.4086103251957535e-03
+9.3955349383839770e-03
+9.3824822559654894e-03
+9.3694522483928240e-03
+9.3564448859749325e-03
+9.3434601378280316e-03
+9.3304979698667079e-03
+9.3175583475056598e-03
+9.3046412380858277e-03
+9.2917466119460286e-03
+9.2788744396873173e-03
+9.2660246919696720e-03
+9.2531973395077564e-03
+9.2403923526666008e-03
+9.2276096984863533e-03
+9.2148493421765950e-03
+9.2021112496327474e-03
+9.1893953903124520e-03
+9.1767017347961083e-03
+9.1640302537380359e-03
+9.1513809179990559e-03
+9.1387536984447182e-03
+9.1261485638072671e-03
+9.1135654793554725e-03
+9.1010044101703085e-03
+9.0884653241332450e-03
+9.0759481918337992e-03
+9.0634529839810959e-03
+9.0509796713726526e-03
+9.0385282248567865e-03
+9.0260986145491891e-03
+9.0136908066781596e-03
+9.0013047661897088e-03
+8.9889404593667156e-03
+8.9765978564274439e-03
+8.9642769283076670e-03
+8.9519776457448550e-03
+8.9396999791405574e-03
+8.9274438987632584e-03
+8.9152093725368177e-03
+8.9029963660225767e-03
+8.8908048449648988e-03
+8.8786347781363781e-03
+8.8664861361255655e-03
+8.8543588895361684e-03
+8.8422530089191098e-03
+8.8301684648064791e-03
+8.8181052266154934e-03
+8.8060632603281942e-03
+8.7940425312873407e-03
+8.7820430066184833e-03
+8.7700646565988596e-03
+8.7581074518287404e-03
+8.7461713629293555e-03
+8.7342563605439412e-03
+8.7223624150419930e-03
+8.7104894937281487e-03
+8.6986375619895317e-03
+8.6868065857581226e-03
+8.6749965343192893e-03
+8.6632073781722288e-03
+8.6514390878491658e-03
+8.6396916339835234e-03
+8.6279649872119443e-03
+8.6162591164320786e-03
+8.6045739873325065e-03
+8.5929095653457313e-03
+8.5812658183568435e-03
+8.5696427169344308e-03
+8.5580402317649469e-03
+8.5464583333152485e-03
+8.5348969919088677e-03
+8.5233561773653474e-03
+8.5118358564289006e-03
+8.5003359946788405e-03
+8.4888565586623364e-03
+8.4773975182080505e-03
+8.4659588438376933e-03
+8.4545405060570556e-03
+8.4431424753412618e-03
+8.4317647220885257e-03
+8.4204072145313905e-03
+8.4090699184330969e-03
+8.3977527996334164e-03
+8.3864558266128694e-03
+8.3751789696493266e-03
+8.3639221990877630e-03
+8.3526854854834437e-03
+8.3414687994749388e-03
+8.3302721107635837e-03
+8.3190953857269542e-03
+8.3079385900165503e-03
+8.2968016906945878e-03
+8.2856846576620600e-03
+8.2745874611647608e-03
+8.2635100715895728e-03
+8.2524524594910220e-03
+8.2414145952284818e-03
+8.2303964464401809e-03
+8.2193979788331359e-03
+8.2084191585169771e-03
+8.1974599546044222e-03
+8.1865203374532278e-03
+8.1756002774554179e-03
+8.1646997451154651e-03
+8.1538187109550728e-03
+8.1429571440372259e-03
+8.1321150103584108e-03
+8.1212922755873728e-03
+8.1104889074761263e-03
+8.0997048763567243e-03
+8.0889401527127411e-03
+8.0781947069039021e-03
+8.0674685091983063e-03
+8.0567615294744998e-03
+8.0460737348545704e-03
+8.0354050912656572e-03
+8.0247555653601144e-03
+8.0141251266351472e-03
+8.0035137452813630e-03
+7.9929213915914173e-03
+7.9823480360821427e-03
+7.9717936492461998e-03
+7.9612581995078605e-03
+7.9507416526213293e-03
+7.9402439743445508e-03
+7.9297651331443845e-03
+7.9193050995772108e-03
+7.9088638442214639e-03
+7.8984413374164775e-03
+7.8880375493932415e-03
+7.8776524496608040e-03
+7.8672860047806631e-03
+7.8569381805668696e-03
+7.8466089441041262e-03
+7.8362982653948313e-03
+7.8260061148471421e-03
+7.8157324627781705e-03
+7.8054772793824789e-03
+7.7952405347114350e-03
+7.7850221966640765e-03
+7.7748222314089916e-03
+7.7646406053860093e-03
+7.7544772875572593e-03
+7.7443322480792980e-03
+7.7342054571291272e-03
+7.7240968849407125e-03
+7.7140065017595842e-03
+7.7039342767127560e-03
+7.6938801762417835e-03
+7.6838441664292241e-03
+7.6738262150201821e-03
+7.6638262920922613e-03
+7.6538443678952454e-03
+7.6438804126382019e-03
+7.6339343964960706e-03
+7.6240062893463646e-03
+7.6140960586082319e-03
+7.6042036704846343e-03
+7.5943290917543146e-03
+7.5844722918213840e-03
+7.5746332408268228e-03
+7.5648119089095703e-03
+7.5550082662033434e-03
+7.5452222828132440e-03
+7.5354539274097004e-03
+7.5257031665643395e-03
+7.5159699667755632e-03
+7.5062542962460177e-03
+7.4965561246666769e-03
+7.4868754218414650e-03
+7.4772121581242581e-03
+7.4675663041530865e-03
+7.4579378298864551e-03
+7.4483267020706108e-03
+7.4387328865090094e-03
+7.4291563501424152e-03
+7.4195970629000159e-03
+7.4100549951940028e-03
+7.4005301173274305e-03
+7.3910223994368435e-03
+7.3815318115401218e-03
+7.3720583216119505e-03
+7.3626018957675616e-03
+7.3531625003363729e-03
+7.3437401042469284e-03
+7.3343346778299932e-03
+7.3249461913961703e-03
+7.3155746150890830e-03
+7.3062199189995467e-03
+7.2968820722905626e-03
+7.2875610415739671e-03
+7.2782567930499125e-03
+7.2689692944008701e-03
+7.2596985156682592e-03
+7.2504444270978319e-03
+7.2412069988110703e-03
+7.2319862008116045e-03
+7.2227820028715976e-03
+7.2135943725569352e-03
+7.2044232761909969e-03
+7.1952686805795869e-03
+7.1861305551009580e-03
+7.1770088699641826e-03
+7.1679035953252281e-03
+7.1588147011859993e-03
+7.1497421575034475e-03
+7.1406859329683813e-03
+7.1316459941694827e-03
+7.1226223075751436e-03
+7.1136148414078469e-03
+7.1046235656235098e-03
+7.0956484502662327e-03
+7.0866894655282333e-03
+7.0777465816887859e-03
+7.0688197685239186e-03
+7.0599089930669301e-03
+7.0510142214238528e-03
+7.0421354205868038e-03
+7.0332725602212749e-03
+7.0244256104947623e-03
+7.0155945415960484e-03
+7.0067793237507886e-03
+6.9979799271082223e-03
+6.9891963198745344e-03
+6.9804284682550384e-03
+6.9716763385881553e-03
+6.9629398996534702e-03
+6.9542191217276308e-03
+6.9455139750645321e-03
+6.9368244296645057e-03
+6.9281504554377770e-03
+6.9194920215567704e-03
+6.9108490948644359e-03
+6.9022216417584043e-03
+6.8936096299022321e-03
+6.8850130292486145e-03
+6.8764318099876721e-03
+6.8678659422210311e-03
+6.8593153959553566e-03
+6.8507801410091895e-03
+6.8422601450926776e-03
+6.8337553745671320e-03
+6.8252657961821962e-03
+6.8167913791459820e-03
+6.8083320935781663e-03
+6.7998879095771845e-03
+6.7914587971662412e-03
+6.7830447263430016e-03
+6.7746456660102532e-03
+6.7662615830038656e-03
+6.7578924439796297e-03
+6.7495382169923792e-03
+6.7411988716613693e-03
+6.7328743777150136e-03
+6.7245647052062299e-03
+6.7162698244044661e-03
+6.7079897051909544e-03
+6.6997243149791953e-03
+6.6914736202252660e-03
+6.6832375880400263e-03
+6.6750161878121978e-03
+6.6668093894246732e-03
+6.6586171628578378e-03
+6.6504394782842795e-03
+6.6422763058426836e-03
+6.6341276139338882e-03
+6.6259933689336043e-03
+6.6178735372779294e-03
+6.6097680876577988e-03
+6.6016769903331322e-03
+6.5936002155465075e-03
+6.5855377332156642e-03
+6.5774895131264681e-03
+6.5694555244848679e-03
+6.5614357343902596e-03
+6.5534301094701220e-03
+6.5454386173435259e-03
+6.5374612276713848e-03
+6.5294979103683237e-03
+6.5215486354182565e-03
+6.5136133728892496e-03
+6.5056920927154581e-03
+6.4977847629258218e-03
+6.4898913501670302e-03
+6.4820118213419166e-03
+6.4741461453486646e-03
+6.4662942919324479e-03
+6.4584562309099253e-03
+6.4506319323584258e-03
+6.4428213664114433e-03
+6.4350245021330766e-03
+6.4272413062866534e-03
+6.4194717453788432e-03
+6.4117157874530335e-03
+6.4039734024978305e-03
+6.3962445606177013e-03
+6.3885292317839423e-03
+6.3808273858671286e-03
+6.3731389924519613e-03
+6.3654640190523677e-03
+6.3578024322633103e-03
+6.3501541992410267e-03
+6.3425192894008562e-03
+6.3348976727222424e-03
+6.3272893191782401e-03
+6.3196941987275291e-03
+6.3121122812925404e-03
+6.3045435354147335e-03
+6.2969879278134020e-03
+6.2894454251993283e-03
+6.2819159960854206e-03
+6.2743996104054223e-03
+6.2668962381284320e-03
+6.2594058491990401e-03
+6.2519284135504729e-03
+6.2444639005934067e-03
+6.2370122775497246e-03
+6.2295735110714503e-03
+6.2221475686841552e-03
+6.2147344199669332e-03
+6.2073340347943975e-03
+6.1999463830726478e-03
+6.1925714347510902e-03
+6.1852091596767255e-03
+6.1778595259503796e-03
+6.1705225002379425e-03
+6.1631980494254307e-03
+6.1558861425250085e-03
+6.1485867495792053e-03
+6.1412998405956983e-03
+6.1340253853993318e-03
+6.1267633537625439e-03
+6.1195137146924615e-03
+6.1122764353148014e-03
+6.1050514824942019e-03
+6.0978388242159147e-03
+6.0906384300724332e-03
+6.0834502697893556e-03
+6.0762743132506585e-03
+6.0691105304759687e-03
+6.0619588912481188e-03
+6.0548193632936299e-03
+6.0476919132981047e-03
+6.0405765084098955e-03
+6.0334731179460567e-03
+6.0263817118475626e-03
+6.0193022600176114e-03
+6.0122347322621016e-03
+6.0051790983507262e-03
+5.9981353269185139e-03
+5.9911033849034349e-03
+5.9840832391914265e-03
+5.9770748583122596e-03
+5.9700782122628611e-03
+5.9630932710524245e-03
+5.9561200043375118e-03
+5.9491583815882813e-03
+5.9422083719509458e-03
+5.9352699430150384e-03
+5.9283430619017103e-03
+5.9214276963590069e-03
+5.9145238158222584e-03
+5.9076313900087735e-03
+5.9007503886993641e-03
+5.8938807817739101e-03
+5.8870225390457078e-03
+5.8801756288052037e-03
+5.8733400179264801e-03
+5.8665156734162890e-03
+5.8597025640498871e-03
+5.8529006595785275e-03
+5.8461099297903085e-03
+5.8393303446081547e-03
+5.8325618739966867e-03
+5.8258044871626370e-03
+5.8190581511778127e-03
+5.8123228327579442e-03
+5.8055984997943035e-03
+5.7988851220911533e-03
+5.7921826696225422e-03
+5.7854911122347539e-03
+5.7788104196502448e-03
+5.7721405614184615e-03
+5.7654815054078096e-03
+5.7588332185183845e-03
+5.7521956680016964e-03
+5.7455688230391736e-03
+5.7389526534510280e-03
+5.7323471290649658e-03
+5.7257522197295806e-03
+5.7191678952833872e-03
+5.7125941244830095e-03
+5.7060308742480853e-03
+5.6994781113878980e-03
+5.6929358043033042e-03
+5.6864039230025230e-03
+5.6798824375311249e-03
+5.6733713175773290e-03
+5.6668705326145541e-03
+5.6603800518413684e-03
+5.6538998429395007e-03
+5.6474298730651929e-03
+5.6409701099168616e-03
+5.6345205228693993e-03
+5.6280810816205368e-03
+5.6216517558782828e-03
+5.6152325153688634e-03
+5.6088233297702256e-03
+5.6024241674936404e-03
+5.5960349956173643e-03
+5.5896557813006377e-03
+5.5832864933184432e-03
+5.5769271014590059e-03
+5.5705775755122934e-03
+5.5642378851869720e-03
+5.5579080001620573e-03
+5.5515878895827132e-03
+5.5452775208664953e-03
+5.5389768610905419e-03
+5.5326858781950044e-03
+5.5264045417163952e-03
+5.5201328213637414e-03
+5.5138706868396092e-03
+5.5076181078394775e-03
+5.5013750539315573e-03
+5.4951414931807187e-03
+5.4889173926684605e-03
+5.4827027197454766e-03
+5.4764974435221742e-03
+5.4703015337772727e-03
+5.4641149602660402e-03
+5.4579376926598431e-03
+5.4517697006055358e-03
+5.4456109529501390e-03
+5.4394614169959010e-03
+5.4333210599067320e-03
+5.4271898499710239e-03
+5.4210677567622335e-03
+5.4149547499324577e-03
+5.4088507992391833e-03
+5.4027558745117932e-03
+5.3966699452782331e-03
+5.3905929791106897e-03
+5.3845249428042530e-03
+5.3784658038118485e-03
+5.3724155319319206e-03
+5.3663740974787075e-03
+5.3603414700480485e-03
+5.3543176177866672e-03
+5.3483025087494845e-03
+5.3422961136493979e-03
+5.3362984063649206e-03
+5.3303093618623240e-03
+5.3243289671361192e-03
+5.3183572177370637e-03
+5.3123941091189793e-03
+5.3064396348354711e-03
+5.3004937876503866e-03
+5.2945565599813449e-03
+5.2886279429653306e-03
+5.2827079274453881e-03
+5.2767965049792635e-03
+5.2708936686307909e-03
+5.2649994116541919e-03
+5.2591137272916455e-03
+5.2532366087703723e-03
+5.2473680492261515e-03
+5.2415080405135359e-03
+5.2356565735368716e-03
+5.2298136393862851e-03
+5.2239792306376411e-03
+5.2181533405124660e-03
+5.2123359622433330e-03
+5.2065270890956708e-03
+5.2007267143392476e-03
+5.1949348305065863e-03
+5.1891514285067426e-03
+5.1833764990621475e-03
+5.1776100340418501e-03
+5.1718520267984474e-03
+5.1661024707694231e-03
+5.1603613591864883e-03
+5.1546286851222702e-03
+5.1489044414704255e-03
+5.1431886198124053e-03
+5.1374812111335813e-03
+5.1317822067615156e-03
+5.1260915994377799e-03
+5.1204093822662250e-03
+5.1147355484105900e-03
+5.1090700911724648e-03
+5.1034130038489856e-03
+5.0977642787297054e-03
+5.0921239067451864e-03
+5.0864918788089339e-03
+5.0808681871018901e-03
+5.0752528248263588e-03
+5.0696457852111906e-03
+5.0640470614654320e-03
+5.0584566467887296e-03
+5.0528745340224050e-03
+5.0473007144689469e-03
+5.0417351790197603e-03
+5.0361779191783126e-03
+5.0306289279212248e-03
+5.0250881984428555e-03
+5.0195557239655830e-03
+5.0140314977511931e-03
+5.0085155129929275e-03
+5.0030077616597226e-03
+4.9975082346922399e-03
+4.9920169231627044e-03
+4.9865338195033051e-03
+4.9810589168206489e-03
+4.9755922082499139e-03
+4.9701336870331386e-03
+4.9646833464409143e-03
+4.9592411791452573e-03
+4.9538071763113225e-03
+4.9483813288867112e-03
+4.9429636286413324e-03
+4.9375540685508458e-03
+4.9321526416955287e-03
+4.9267593413119927e-03
+4.9213741607736904e-03
+4.9159970932783044e-03
+4.9106281304421955e-03
+4.9052672630627205e-03
+4.8999144822854755e-03
+4.8945697809334851e-03
+4.8892331523244081e-03
+4.8839045897100799e-03
+4.8785840861687727e-03
+4.8732716347373445e-03
+4.8679672276901766e-03
+4.8626708561356619e-03
+4.8573825111371156e-03
+4.8521021848042635e-03
+4.8468298702013116e-03
+4.8415655604473248e-03
+4.8363092488453354e-03
+4.8310609287978631e-03
+4.8258205933342513e-03
+4.8205882336304004e-03
+4.8153638402903360e-03
+4.8101474046301973e-03
+4.8049389199296176e-03
+4.7997383797991552e-03
+4.7945457775559683e-03
+4.7893611060492195e-03
+4.7841843580458919e-03
+4.7790155254648359e-03
+4.7738545994187413e-03
+4.7687015711166299e-03
+4.7635564330188616e-03
+4.7584191782921829e-03
+4.7532898001201888e-03
+4.7481682917326230e-03
+4.7430546463736369e-03
+4.7379488567397335e-03
+4.7328509139468993e-03
+4.7277608088392969e-03
+4.7226785331111760e-03
+4.7176040798714708e-03
+4.7125374423618270e-03
+4.7074786137995305e-03
+4.7024275873777405e-03
+4.6973843561599190e-03
+4.6923489118836318e-03
+4.6873212455053222e-03
+4.6823013482390919e-03
+4.6772892127587666e-03
+4.6722848322332308e-03
+4.6672881998103795e-03
+4.6622993085734636e-03
+4.6573181515858972e-03
+4.6523447212719312e-03
+4.6473790089458728e-03
+4.6424210058432416e-03
+4.6374707039824664e-03
+4.6325280961900103e-03
+4.6275931753616082e-03
+4.6226659347428046e-03
+4.6177463677941630e-03
+4.6128344676669769e-03
+4.6079302257247311e-03
+4.6030336326962412e-03
+4.5981446798546571e-03
+4.5932633601988362e-03
+4.5883896670674950e-03
+4.5835235937189056e-03
+4.5786651332655331e-03
+4.5738142787654593e-03
+4.5689710222504547e-03
+4.5641353546484933e-03
+4.5593072669616649e-03
+4.5544867516750884e-03
+4.5496738022248618e-03
+4.5448684119865053e-03
+4.5400705738779575e-03
+4.5352802806470039e-03
+4.5304975247548286e-03
+4.5257222977128217e-03
+4.5209545908411249e-03
+4.5161943960595483e-03
+4.5114417064226692e-03
+4.5066965151056067e-03
+4.5019588151192832e-03
+4.4972285992905996e-03
+4.4925058603653154e-03
+4.4877905902171791e-03
+4.4830827801367358e-03
+4.4783824215832808e-03
+4.4736895071483210e-03
+4.4690040298637724e-03
+4.4643259827838039e-03
+4.4596553590365452e-03
+4.4549921517614529e-03
+4.4503363534878788e-03
+4.4456879555395627e-03
+4.4410469491229492e-03
+4.4364133261926364e-03
+4.4317870795770355e-03
+4.4271682021718222e-03
+4.4225566871029616e-03
+4.4179525276570241e-03
+4.4133557169023126e-03
+4.4087662464384284e-03
+4.4041841072673714e-03
+4.3996092907988421e-03
+4.3950417899346911e-03
+4.3904815979157281e-03
+4.3859287078521067e-03
+4.3813831125842839e-03
+4.3768448049020655e-03
+4.3723137770109340e-03
+4.3677900204050959e-03
+4.3632735265893780e-03
+4.3587642878062903e-03
+4.3542622968347671e-03
+4.3497675465137085e-03
+4.3452800300155291e-03
+4.3407997406545596e-03
+4.3363266713303981e-03
+4.3318608133560673e-03
+4.3274021576695234e-03
+4.3229506959001299e-03
+4.3185064211684219e-03
+4.3140693267831008e-03
+4.3096394058368672e-03
+4.3052166511483693e-03
+4.3008010554648340e-03
+4.2963926107474201e-03
+4.2919913083613757e-03
+4.2875971398021471e-03
+4.2832100976277184e-03
+4.2788301748687627e-03
+4.2744573645427664e-03
+4.2700916596057565e-03
+4.2657330529963303e-03
+4.2613815371987758e-03
+4.2570371036733294e-03
+4.2526997437577303e-03
+4.2483694495060982e-03
+4.2440462139199751e-03
+4.2397300300571596e-03
+4.2354208908387198e-03
+4.2311187890776720e-03
+4.2268237174785585e-03
+4.2225356679322914e-03
+4.2182546319514931e-03
+4.2139806012447710e-03
+4.2097135683527255e-03
+4.2054535260348681e-03
+4.2012004671913780e-03
+4.1969543850539160e-03
+4.1927152728814896e-03
+4.1884831230240204e-03
+4.1842579265780368e-03
+4.1800396746201687e-03
+4.1758283594153667e-03
+4.1716239742073330e-03
+4.1674265122323062e-03
+4.1632359664291888e-03
+4.1590523295924461e-03
+4.1548755942928516e-03
+4.1507057521202794e-03
+4.1465427943959757e-03
+4.1423867129032916e-03
+4.1382375005644427e-03
+4.1340951504723897e-03
+4.1299596556421550e-03
+4.1258310089767204e-03
+4.1217092033253326e-03
+4.1175942307384548e-03
+4.1134860825808748e-03
+4.1093847503108002e-03
+4.1052902263756311e-03
+4.1012025037247008e-03
+4.0971215753380485e-03
+4.0930474343193590e-03
+4.0889800738068173e-03
+4.0849194864083817e-03
+4.0808656633650230e-03
+4.0768185957155128e-03
+4.0727782753288899e-03
+4.0687446953188676e-03
+4.0647178488937476e-03
+4.0606977291159588e-03
+4.0566843289174329e-03
+4.0526776411166201e-03
+4.0486776575504842e-03
+4.0446843695359207e-03
+4.0406977685979615e-03
+4.0367178472927347e-03
+4.0327445984882342e-03
+4.0287780151299661e-03
+4.0248180903723653e-03
+4.0208648173924270e-03
+4.0169181886099510e-03
+4.0129781952607992e-03
+4.0090448285257270e-03
+4.0051180805605472e-03
+4.0011979444300131e-03
+3.9972844132249649e-03
+3.9933774799542554e-03
+3.9894771375813855e-03
+3.9855833788450179e-03
+3.9816961953440134e-03
+3.9778155783166255e-03
+3.9739415193983715e-03
+3.9700740113470584e-03
+3.9662130471181632e-03
+3.9623586197340393e-03
+3.9585107223261149e-03
+3.9546693479924309e-03
+3.9508344888823333e-03
+3.9470061362236169e-03
+3.9431842813140248e-03
+3.9393689165352604e-03
+3.9355600348948824e-03
+3.9317576293966460e-03
+3.9279616929836685e-03
+3.9241722185786795e-03
+3.9203891987738167e-03
+3.9166126251836964e-03
+3.9128424892493725e-03
+3.9090787829016800e-03
+3.9053214989050278e-03
+3.9015706301093415e-03
+3.8978261694667411e-03
+3.8940881100327901e-03
+3.8903564447706159e-03
+3.8866311656137759e-03
+3.8829122638755157e-03
+3.8791997310594459e-03
+3.8754935597816579e-03
+3.8717937430448107e-03
+3.8681002738106822e-03
+3.8644131449132421e-03
+3.8607323491571723e-03
+3.8570578789341881e-03
+3.8533897259024927e-03
+3.8497278816659879e-03
+3.8460723383648247e-03
+3.8424230887047677e-03
+3.8387801254346752e-03
+3.8351434414837992e-03
+3.8315130298947832e-03
+3.8278888835333643e-03
+3.8242709942162886e-03
+3.8206593533787660e-03
+3.8170539527470184e-03
+3.8134547849933043e-03
+3.8098618429815976e-03
+3.8062751195935482e-03
+3.8026946077435821e-03
+3.7991203003263428e-03
+3.7955521895960396e-03
+3.7919902671029611e-03
+3.7884345244191208e-03
+3.7848849538033714e-03
+3.7813415479648919e-03
+3.7778042996641325e-03
+3.7742732019293282e-03
+3.7707482478906203e-03
+3.7672294303276238e-03
+3.7637167408273728e-03
+3.7602101707280506e-03
+3.7567097118937505e-03
+3.7532153572067306e-03
+3.7497270996613916e-03
+3.7462449321215598e-03
+3.7427688473014998e-03
+3.7392988378595208e-03
+3.7358348958524473e-03
+3.7323770129258286e-03
+3.7289251808324785e-03
+3.7254793920715227e-03
+3.7220396394393829e-03
+3.7186059157550558e-03
+3.7151782139152691e-03
+3.7117565268310524e-03
+3.7083408469906058e-03
+3.7049311660271749e-03
+3.7015274754878544e-03
+3.6981297674690125e-03
+3.6947380347226886e-03
+3.6913522700491529e-03
+3.6879724663794328e-03
+3.6845986167377844e-03
+3.6812307139920115e-03
+3.6778687499315343e-03
+3.6745127158964801e-03
+3.6711626035115207e-03
+3.6678184054700263e-03
+3.6644801147147632e-03
+3.6611477241636253e-03
+3.6578212266819635e-03
+3.6545006151128580e-03
+3.6511858817479597e-03
+3.6478770181928690e-03
+3.6445740160579109e-03
+3.6412768676302083e-03
+3.6379855656999776e-03
+3.6347001030783803e-03
+3.6314204726409578e-03
+3.6281466672912969e-03
+3.6248786796945843e-03
+3.6216165015816736e-03
+3.6183601244564531e-03
+3.6151095401841765e-03
+3.6118647414278026e-03
+3.6086257209601664e-03
+3.6053924716801787e-03
+3.6021649866502491e-03
+3.5989432588834891e-03
+3.5957272804832967e-03
+3.5925170428481416e-03
+3.5893125374815314e-03
+3.5861137568160392e-03
+3.5829206937073046e-03
+3.5797333410072128e-03
+3.5765516915434331e-03
+3.5733757381362138e-03
+3.5702054733066390e-03
+3.5670408888854748e-03
+3.5638819766142288e-03
+3.5607287285662858e-03
+3.5575811372636902e-03
+3.5544391952788039e-03
+3.5513028954819422e-03
+3.5481722309840739e-03
+3.5450471947660713e-03
+3.5419277787237303e-03
+3.5388139742365252e-03
+3.5357057729181376e-03
+3.5326031674044376e-03
+3.5295061506063429e-03
+3.5264147154168510e-03
+3.5233288546857059e-03
+3.5202485612454400e-03
+3.5171738274195853e-03
+3.5141046448142698e-03
+3.5110410050191365e-03
+3.5079829002693558e-03
+3.5049303233435072e-03
+3.5018832670401577e-03
+3.4988417241832302e-03
+3.4958056876092493e-03
+3.4927751499836623e-03
+3.4897501031989635e-03
+3.4867305389301782e-03
+3.4837164490950784e-03
+3.4807078262240917e-03
+3.4777046629462967e-03
+3.4747069520733869e-03
+3.4717146866854432e-03
+3.4687278598342732e-03
+3.4657464636581471e-03
+3.4627704894938959e-03
+3.4597999287715279e-03
+3.4568347739792442e-03
+3.4538750181546231e-03
+3.4509206542775082e-03
+3.4479716750321987e-03
+3.4450280730152281e-03
+3.4420898406280487e-03
+3.4391569697570386e-03
+3.4362294522103311e-03
+3.4333072801328848e-03
+3.4303904461859343e-03
+3.4274789430791290e-03
+3.4245727636141037e-03
+3.4216719006765865e-03
+3.4187763470647312e-03
+3.4158860947360479e-03
+3.4130011351923648e-03
+3.4101214601118409e-03
+3.4072470620708181e-03
+3.4043779339239652e-03
+3.4015140685243650e-03
+3.3986554587204774e-03
+3.3958020973524515e-03
+3.3929539767691827e-03
+3.3901110885341348e-03
+3.3872734241742249e-03
+3.3844409759320325e-03
+3.3816137367319275e-03
+3.3787916995111668e-03
+3.3759748570676910e-03
+3.3731632021206147e-03
+3.3703567272495394e-03
+3.3675554243118369e-03
+3.3647592849306786e-03
+3.3619683010121396e-03
+3.3591824652811743e-03
+3.3564017706087463e-03
+3.3536262097749931e-03
+3.3508557754085492e-03
+3.3480904601069948e-03
+3.3453302560892163e-03
+3.3425751551981620e-03
+3.3398251493129013e-03
+3.3370802308525884e-03
+3.3343403925553050e-03
+3.3316056271508712e-03
+3.3288759273013327e-03
+3.3261512856455826e-03
+3.3234316946487773e-03
+3.3207171462497054e-03
+3.3180076322913616e-03
+3.3153031449120380e-03
+3.3126036767640444e-03
+3.3099092205523210e-03
+3.3072197690088945e-03
+3.3045353148938111e-03
+3.3018558509087799e-03
+3.2991813691038313e-03
+3.2965118611274769e-03
+3.2938473187610045e-03
+3.2911877345813763e-03
+3.2885331014488066e-03
+3.2858834121665403e-03
+3.2832386593559062e-03
+3.2805988355998615e-03
+3.2779639332542621e-03
+3.2753339442623572e-03
+3.2727088605357659e-03
+3.2700886743041871e-03
+3.2674733781401909e-03
+3.2648629646462677e-03
+3.2622574265743307e-03
+3.2596567567723320e-03
+3.2570609479594548e-03
+3.2544699920696112e-03
+3.2518838807441279e-03
+3.2493026058651440e-03
+3.2467261601173583e-03
+3.2441545363513435e-03
+3.2415877273332958e-03
+3.2390257256693579e-03
+3.2364685239363671e-03
+3.2339161143835849e-03
+3.2313684888923091e-03
+3.2288256393554846e-03
+3.2262875580483523e-03
+3.2237542375024263e-03
+3.2212256703079327e-03
+3.2187018493966698e-03
+3.2161827678336007e-03
+3.2136684183552426e-03
+3.2111587925522074e-03
+3.2086538817697563e-03
+3.2061536778950398e-03
+3.2036581738886043e-03
+3.2011673628283611e-03
+3.1986812375141187e-03
+3.1961997904201320e-03
+3.1937230139761001e-03
+3.1912509002731551e-03
+3.1887834411657577e-03
+3.1863206285938509e-03
+3.1838624550978700e-03
+3.1814089134631989e-03
+3.1789599964398983e-03
+3.1765156966463270e-03
+3.1740760066693808e-03
+3.1716409188821304e-03
+3.1692104252152150e-03
+3.1667845175534061e-03
+3.1643631880856199e-03
+3.1619464293718385e-03
+3.1595342340038279e-03
+3.1571265947011435e-03
+3.1547235042764807e-03
+3.1523249554432494e-03
+3.1499309402063477e-03
+3.1475414502684426e-03
+3.1451564775245950e-03
+3.1427760146111798e-03
+3.1404000543417050e-03
+3.1380285894653070e-03
+3.1356616125919556e-03
+3.1332991163045042e-03
+3.1309410928536670e-03
+3.1285875340678016e-03
+3.1262384317800622e-03
+3.1238937782949927e-03
+3.1215535662753183e-03
+3.1192177884013499e-03
+3.1168864374168867e-03
+3.1145595060940398e-03
+3.1122369870354026e-03
+3.1099188721621946e-03
+3.1076051532258103e-03
+3.1052958222509207e-03
+3.1029908718796960e-03
+3.1006902948376562e-03
+3.0983940837925206e-03
+3.0961022313353904e-03
+3.0938147300280283e-03
+3.0915315720562542e-03
+3.0892527493081297e-03
+3.0869782537298264e-03
+3.0847080777798973e-03
+3.0824422141557018e-03
+3.0801806555328997e-03
+3.0779233944901408e-03
+3.0756704235800291e-03
+3.0734217352122533e-03
+3.0711773214588799e-03
+3.0689371743471377e-03
+3.0667012860791320e-03
+3.0644696490986353e-03
+3.0622422558776929e-03
+3.0600190990645580e-03
+3.0578001714529459e-03
+3.0555854657656903e-03
+3.0533749741131593e-03
+3.0511686883074769e-03
+3.0489666002711160e-03
+3.0467687024226184e-03
+3.0445749873176499e-03
+3.0423854475994400e-03
+3.0402000761275386e-03
+3.0380188657841735e-03
+3.0358418089478211e-03
+3.0336688972711075e-03
+3.0315001223850850e-03
+3.0293354765411288e-03
+3.0271749525243100e-03
+3.0250185431260237e-03
+3.0228662410426237e-03
+3.0207180389221202e-03
+3.0185739292859846e-03
+3.0164339040715470e-03
+3.0142979550476716e-03
+3.0121660742064172e-03
+3.0100382541167520e-03
+3.0079144874402418e-03
+3.0057947668737368e-03
+3.0036790851671034e-03
+3.0015674350477211e-03
+2.9994598087315413e-03
+2.9973561979759742e-03
+2.9952565945860999e-03
+2.9931609909447919e-03
+2.9910693797418134e-03
+2.9889817536625785e-03
+2.9868981053576354e-03
+2.9848184274666712e-03
+2.9827427124465562e-03
+2.9806709522597211e-03
+2.9786031387898362e-03
+2.9765392641685905e-03
+2.9744793209163750e-03
+2.9724233015926958e-03
+2.9703711988626684e-03
+2.9683230054900812e-03
+2.9662787141794310e-03
+2.9642383170335744e-03
+2.9622018058217637e-03
+2.9601691724229031e-03
+2.9581404092925280e-03
+2.9561155090693549e-03
+2.9540944644298674e-03
+2.9520772681572594e-03
+2.9500639130469520e-03
+2.9480543914400760e-03
+2.9460486949350246e-03
+2.9440468150948151e-03
+2.9420487442115800e-03
+2.9400544752873174e-03
+2.9380640013085824e-03
+2.9360773148103267e-03
+2.9340944080661411e-03
+2.9321152733328272e-03
+2.9301399027944976e-03
+2.9281682886111281e-03
+2.9262004230029802e-03
+2.9242362983690801e-03
+2.9222759071424360e-03
+2.9203192418357686e-03
+2.9183662950977860e-03
+2.9164170595770695e-03
+2.9144715276056849e-03
+2.9125296911945882e-03
+2.9105915423652804e-03
+2.9086570734039936e-03
+2.9067262767568324e-03
+2.9047991449069185e-03
+2.9028756705325497e-03
+2.9009558463799351e-03
+2.8990396650159234e-03
+2.8971271184502286e-03
+2.8952181985869682e-03
+2.8933128975303420e-03
+2.8914112077407764e-03
+2.8895131217179133e-03
+2.8876186320243276e-03
+2.8857277312891220e-03
+2.8838404121133278e-03
+2.8819566667460080e-03
+2.8800764872144733e-03
+2.8781998655866355e-03
+2.8763267941898239e-03
+2.8744572654460020e-03
+2.8725912718536827e-03
+2.8707288061599612e-03
+2.8688698611589393e-03
+2.8670144292864382e-03
+2.8651625023123888e-03
+2.8633140719519835e-03
+2.8614691304095926e-03
+2.8596276704284801e-03
+2.8577896847682225e-03
+2.8559551660523874e-03
+2.8541241068151591e-03
+2.8522964995177399e-03
+2.8504723361798502e-03
+2.8486516086527196e-03
+2.8468343089564784e-03
+2.8450204296881967e-03
+2.8432099635673910e-03
+2.8414029032665729e-03
+2.8395992413670279e-03
+2.8377989704271461e-03
+2.8360020826337629e-03
+2.8342085697471635e-03
+2.8324184235554890e-03
+2.8306316364957898e-03
+2.8288482014498474e-03
+2.8270681112459203e-03
+2.8252913583083632e-03
+2.8235179349002338e-03
+2.8217478332803283e-03
+2.8199810456937227e-03
+2.8182175643825368e-03
+2.8164573816040518e-03
+2.8147004896462804e-03
+2.8129468808074558e-03
+2.8111965475975096e-03
+2.8094494827796408e-03
+2.8077056790938811e-03
+2.8059651287696079e-03
+2.8042278236712699e-03
+2.8024937557179649e-03
+2.8007629172556127e-03
+2.7990353008084043e-03
+2.7973108989436950e-03
+2.7955897043883053e-03
+2.7938717099044749e-03
+2.7921569079312871e-03
+2.7904452902235374e-03
+2.7887368484620888e-03
+2.7870315747974888e-03
+2.7853294619659716e-03
+2.7836305027298365e-03
+2.7819346896987450e-03
+2.7802420153686339e-03
+2.7785524721844691e-03
+2.7768660522449846e-03
+2.7751827474977102e-03
+2.7735025499825202e-03
+2.7718254521044540e-03
+2.7701514463585749e-03
+2.7684805253185641e-03
+2.7668126817320770e-03
+2.7651479083581269e-03
+2.7634861974901543e-03
+2.7618275408164594e-03
+2.7601719300288648e-03
+2.7585193574864520e-03
+2.7568698160665424e-03
+2.7552232986101069e-03
+2.7535797975811187e-03
+2.7519393052714614e-03
+2.7503018139365077e-03
+2.7486673156849038e-03
+2.7470358025880222e-03
+2.7454072668399230e-03
+2.7437817009184663e-03
+2.7421590973416522e-03
+2.7405394486331490e-03
+2.7389227473242992e-03
+2.7373089859300940e-03
+2.7356981566924207e-03
+2.7340902516320813e-03
+2.7324852628034897e-03
+2.7308831825785447e-03
+2.7292840034805811e-03
+2.7276877180381315e-03
+2.7260943187981355e-03
+2.7245037983119696e-03
+2.7229161489631887e-03
+2.7213313627294303e-03
+2.7197494315341912e-03
+2.7181703475856801e-03
+2.7165941034943204e-03
+2.7150206918950333e-03
+2.7134501053209057e-03
+2.7118823362191056e-03
+2.7103173769975099e-03
+2.7087552197577938e-03
+2.7071958564490570e-03
+2.7056392791219310e-03
+2.7040854802918004e-03
+2.7025344526053477e-03
+2.7009861886411698e-03
+2.6994406808055873e-03
+2.6978979214767221e-03
+2.6963579029608106e-03
+2.6948206174581967e-03
+2.6932860571637547e-03
+2.6917542143281075e-03
+2.6902250812508980e-03
+2.6886986502603805e-03
+2.6871749139223589e-03
+2.6856538649262579e-03
+2.6841354958420938e-03
+2.6826197986678955e-03
+2.6811067652324811e-03
+2.6795963875650580e-03
+2.6780886582253652e-03
+2.6765835698588690e-03
+2.6750811150491440e-03
+2.6735812862846760e-03
+2.6720840760347652e-03
+2.6705894765493778e-03
+2.6690974798775063e-03
+2.6676080780772115e-03
+2.6661212633599407e-03
+2.6646370280204823e-03
+2.6631553644273082e-03
+2.6616762653116932e-03
+2.6601997235172789e-03
+2.6587257316292153e-03
+2.6572542815163857e-03
+2.6557853649292916e-03
+2.6543189739236168e-03
+2.6528551010441205e-03
+2.6513937388775717e-03
+2.6499348799684827e-03
+2.6484785168210171e-03
+2.6470246419067001e-03
+2.6455732473925379e-03
+2.6441243252728220e-03
+2.6426778676048699e-03
+2.6412338667855854e-03
+2.6397923153224164e-03
+2.6383532057374496e-03
+2.6369165305950635e-03
+2.6354822824635458e-03
+2.6340504536351852e-03
+2.6326210359408067e-03
+2.6311940211872584e-03
+2.6297694016356827e-03
+2.6283471699992365e-03
+2.6269273189923580e-03
+2.6255098411408621e-03
+2.6240947288589172e-03
+2.6226819744999902e-03
+2.6212715700927986e-03
+2.6198635075554539e-03
+2.6184577789663275e-03
+2.6170543768909019e-03
+2.6156532939853728e-03
+2.6142545227841579e-03
+2.6128580556092013e-03
+2.6114638847584046e-03
+2.6100720024638323e-03
+2.6086824008892872e-03
+2.6072950722060241e-03
+2.6059100087016682e-03
+2.6045272027357129e-03
+2.6031466467064416e-03
+2.6017683332291994e-03
+2.6003922549967325e-03
+2.5990184044950991e-03
+2.5976467735523315e-03
+2.5962773538694452e-03
+2.5949101374947189e-03
+2.5935451171088596e-03
+2.5921822854539402e-03
+2.5908216351192464e-03
+2.5894631585289922e-03
+2.5881068480719041e-03
+2.5867526958203088e-03
+2.5854006936426996e-03
+2.5840508334877520e-03
+2.5827031078089215e-03
+2.5813575092482350e-03
+2.5800140303978195e-03
+2.5786726636823271e-03
+2.5773334014906283e-03
+2.5759962361084697e-03
+2.5746611596255287e-03
+2.5733281641150208e-03
+2.5719972418080544e-03
+2.5706683851135052e-03
+2.5693415864549026e-03
+2.5680168383193582e-03
+2.5666941332367042e-03
+2.5653734636829073e-03
+2.5640548217871727e-03
+2.5627381995431547e-03
+2.5614235890058785e-03
+2.5601109824459345e-03
+2.5588003721819432e-03
+2.5574917506596354e-03
+2.5561851105771307e-03
+2.5548804446498641e-03
+2.5535777452036167e-03
+2.5522770041069894e-03
+2.5509782132291780e-03
+2.5496813647872033e-03
+2.5483864512417945e-03
+2.5470934650669414e-03
+2.5458023987915490e-03
+2.5445132449669742e-03
+2.5432259960168919e-03
+2.5419406438969808e-03
+2.5406571804572936e-03
+2.5393755977826181e-03
+2.5380958884446093e-03
+2.5368180450727339e-03
+2.5355420602041745e-03
+2.5342679262632681e-03
+2.5329956356484776e-03
+2.5317251804951968e-03
+2.5304565527466375e-03
+2.5291897443851844e-03
+2.5279247476983945e-03
+2.5266615551043244e-03
+2.5254001590582251e-03
+2.5241405521563144e-03
+2.5228827270274202e-03
+2.5216266760718885e-03
+2.5203723911948984e-03
+2.5191198642455295e-03
+2.5178690873968543e-03
+2.5166200532348872e-03
+2.5153727543579213e-03
+2.5141271831502334e-03
+2.5128833318331088e-03
+2.5116411926224117e-03
+2.5104007577242140e-03
+2.5091620193402084e-03
+2.5079249697066174e-03
+2.5066896011987916e-03
+2.5054559062270680e-03
+2.5042238771952612e-03
+2.5029935064924103e-03
+2.5017647865015640e-03
+2.5005377094439005e-03
+2.4993122673255389e-03
+2.4980884521566809e-03
+2.4968662562445867e-03
+2.4956456721323371e-03
+2.4944266923499288e-03
+2.4932093092755597e-03
+2.4919935152165062e-03
+2.4907793024575311e-03
+2.4895666631900371e-03
+2.4883555895808341e-03
+2.4871460738088375e-03
+2.4859381080816322e-03
+2.4847316846149112e-03
+2.4835267958028839e-03
+2.4823234342870228e-03
+2.4811215927033714e-03
+2.4799212632934074e-03
+2.4787224379721425e-03
+2.4775251086801725e-03
+2.4763292676471360e-03
+2.4751349072437653e-03
+2.4739420198682774e-03
+2.4727505980363523e-03
+2.4715606342957069e-03
+2.4703721210294432e-03
+2.4691850502129523e-03
+2.4679994137638533e-03
+2.4668152038123557e-03
+2.4656324127956988e-03
+2.4644510331747172e-03
+2.4632710574039843e-03
+2.4620924779326717e-03
+2.4609152871736912e-03
+2.4597394772296246e-03
+2.4585650400448297e-03
+2.4573919676351762e-03
+2.4562202523543794e-03
+2.4550498866541242e-03
+2.4538808629861963e-03
+2.4527131738026134e-03
+2.4515468115519244e-03
+2.4503817684876448e-03
+2.4492180365695559e-03
+2.4480556077477447e-03
+2.4468944742513650e-03
+2.4457346285603498e-03
+2.4445760631513188e-03
+2.4434187703899716e-03
+2.4422627425829510e-03
+2.4411079720226174e-03
+2.4399544509344541e-03
+2.4388021715235860e-03
+2.4376511259723665e-03
+2.4365013064014166e-03
+2.4353527049246460e-03
+2.4342053138830247e-03
+2.4330591259742111e-03
+2.4319141339023977e-03
+2.4307703298653911e-03
+2.4296277055867971e-03
+2.4284862528284545e-03
+2.4273459638926775e-03
+2.4262068313821829e-03
+2.4250688478673799e-03
+2.4239320057372108e-03
+2.4227962973227459e-03
+2.4216617148739733e-03
+2.4205282504108088e-03
+2.4193958959150782e-03
+2.4182646435402209e-03
+2.4171344857209158e-03
+2.4160054149157152e-03
+2.4148774235349247e-03
+2.4137505039417708e-03
+2.4126246484763194e-03
+2.4114998492644748e-03
+2.4103760983079014e-03
+2.4092533876503537e-03
+2.4081317095692831e-03
+2.4070110564201074e-03
+2.4058914205870091e-03
+2.4047727945394970e-03
+2.4036551707602156e-03
+2.4025385415217056e-03
+2.4014228987372446e-03
+2.4003082342964692e-03
+2.3991945403629969e-03
+2.3980818093790341e-03
+2.3969700338006042e-03
+2.3958592060980052e-03
+2.3947493187501763e-03
+2.3936403641571552e-03
+2.3925323342746285e-03
+2.3914252209031569e-03
+2.3903190159928222e-03
+2.3892137119596786e-03
+2.3881093013096003e-03
+2.3870057764946778e-03
+2.3859031298710150e-03
+2.3848013537785743e-03
+2.3837004403983709e-03
+2.3826003817430078e-03
+2.3815011698358891e-03
+2.3804027969139855e-03
+2.3793052553491368e-03
+2.3782085375177744e-03
+2.3771126358109172e-03
+2.3760175426248923e-03
+2.3749232502620248e-03
+2.3738297507180208e-03
+2.3727370359274487e-03
+2.3716450979577985e-03
+2.3705539291241900e-03
+2.3694635217728814e-03
+2.3683738683637186e-03
+2.3672849614819621e-03
+2.3661967936780613e-03
+2.3651093570086794e-03
+2.3640226432052229e-03
+2.3629366440677600e-03
+2.3618513518574680e-03
+2.3607667590119655e-03
+2.3596828579644309e-03
+2.3585996411316385e-03
+2.3575171009259711e-03
+2.3564352296514077e-03
+2.3553540194010494e-03
+2.3542734622436817e-03
+2.3531935502468754e-03
+2.3521142754768013e-03
+2.3510356300293347e-03
+2.3499576063779112e-03
+2.3488801972553299e-03
+2.3478033952954716e-03
+2.3467271924549806e-03
+2.3456515804193864e-03
+2.3445765510183799e-03
+2.3435020966006996e-03
+2.3424282096310167e-03
+2.3413548825364089e-03
+2.3402821076675779e-03
+2.3392098773621192e-03
+2.3381381838320637e-03
+2.3370670191388701e-03
+2.3359963753416483e-03
+2.3349262445875800e-03
+2.3338566190869311e-03
+2.3327874910726437e-03
+2.3317188529234372e-03
+2.3306506970790695e-03
+2.3295830158854927e-03
+2.3285158013355636e-03
+2.3274490453401302e-03
+2.3263827399584965e-03
+2.3253168775650896e-03
+2.3242514505733818e-03
+2.3231864513538502e-03
+2.3221218722232363e-03
+2.3210577054806427e-03
+2.3199939432213654e-03
+2.3189305773885058e-03
+2.3178675999643971e-03
+2.3168050032399295e-03
+2.3157427796410726e-03
+2.3146809215619101e-03
+2.3136194212687151e-03
+2.3125582709959372e-03
+2.3114974629022656e-03
+2.3104369889783297e-03
+2.3093768411966715e-03
+2.3083170117058948e-03
+2.3072574928839728e-03
+2.3061982771223071e-03
+2.3051393567823596e-03
+2.3040807242022880e-03
+2.3030223716801437e-03
+2.3019642912150682e-03
+2.3009064746694285e-03
+2.2998489139992137e-03
+2.2987916015498821e-03
+2.2977345297671625e-03
+2.2966776910382930e-03
+2.2956210776148775e-03
+2.2945646817267577e-03
+2.2935084954923582e-03
+2.2924525108787858e-03
+2.2913967198582869e-03
+2.2903411146616348e-03
+2.2892856877293698e-03
+2.2882304314836917e-03
+2.2871753381524520e-03
+2.2861203998705737e-03
+2.2850656087632774e-03
+2.2840109569162814e-03
+2.2829564364048411e-03
+2.2819020393750528e-03
+2.2808477581447895e-03
+2.2797935850558991e-03
+2.2787395123763147e-03
+2.2776855322693078e-03
+2.2766316368883761e-03
+2.2755778183552009e-03
+2.2745240687645604e-03
+2.2734703802216719e-03
+2.2724167449264527e-03
+2.2713631551261214e-03
+2.2703096030681565e-03
+2.2692560809996279e-03
+2.2682025811673954e-03
+2.2671490957798528e-03
+2.2660956169478275e-03
+2.2650421367673029e-03
+2.2639886473549121e-03
+2.2629351408577792e-03
+2.2618816094313941e-03
+2.2608280453406873e-03
+2.2597744409470354e-03
+2.2587207885896325e-03
+2.2576670803822899e-03
+2.2566133083212515e-03
+2.2555594644248045e-03
+2.2545055408210194e-03
+2.2534515296707184e-03
+2.2523974231982513e-03
+2.2513432137965445e-03
+2.2502888938820118e-03
+2.2492344556256610e-03
+2.2481798908205982e-03
+2.2471251912462393e-03
+2.2460703490493634e-03
+2.2450153567141334e-03
+2.2439602067134139e-03
+2.2429048912979387e-03
+2.2418494025974577e-03
+2.2407937327299570e-03
+2.2397378737607481e-03
+2.2386818177387749e-03
+2.2376255567438455e-03
+2.2365690829415051e-03
+2.2355123885126620e-03
+2.2344554656776360e-03
+2.2333983067200571e-03
+2.2323409039225026e-03
+2.2312832494235809e-03
+2.2302253352241199e-03
+2.2291671533337760e-03
+2.2281086959035283e-03
+2.2270499551646995e-03
+2.2259909233031542e-03
+2.2249315922617898e-03
+2.2238719539047582e-03
+2.2228120006827327e-03
+2.2217517267521338e-03
+2.2206911266072450e-03
+2.2196301969505867e-03
+2.2185689381854857e-03
+2.2175073510463249e-03
+2.2164454357602309e-03
+2.2153831920484752e-03
+2.2143206196016786e-03
+2.2132577180192861e-03
+2.2121944868466496e-03
+2.2111309256635466e-03
+2.2100670342428737e-03
+2.2090028124235371e-03
+2.2079382600632149e-03
+2.2068733770765799e-03
+2.2058081633876498e-03
+2.2047426187956800e-03
+2.2036767428817309e-03
+2.2026105352099278e-03
+2.2015439954694536e-03
+2.2004771234794477e-03
+2.1994099190726160e-03
+2.1983423821643490e-03
+2.1972745127212187e-03
+2.1962063106471001e-03
+2.1951377754797835e-03
+2.1940689066261010e-03
+2.1929997035837253e-03
+2.1919301661406827e-03
+2.1908602941434286e-03
+2.1897900875020122e-03
+2.1887195462425724e-03
+2.1876486703921619e-03
+2.1865774596726948e-03
+2.1855059134756657e-03
+2.1844340312018886e-03
+2.1833618125528011e-03
+2.1822892574239606e-03
+2.1812163657099425e-03
+2.1801431372797278e-03
+2.1790695719926989e-03
+2.1779956696359160e-03
+2.1769214297547171e-03
+2.1758468518450424e-03
+2.1747719355221704e-03
+2.1736966806288251e-03
+2.1726210870331862e-03
+2.1715451546009991e-03
+2.1704688831952644e-03
+2.1693922726627700e-03
+2.1683153226521898e-03
+2.1672380326787735e-03
+2.1661604022834807e-03
+2.1650824311866654e-03
+2.1640041191789867e-03
+2.1629254660688649e-03
+2.1618464717263783e-03
+2.1607671360342261e-03
+2.1596874587591283e-03
+2.1586074394369637e-03
+2.1575270775801535e-03
+2.1564463728223657e-03
+2.1553653249398530e-03
+2.1542839337225831e-03
+2.1532021990331401e-03
+2.1521201207851054e-03
+2.1510376988430153e-03
+2.1499549327365277e-03
+2.1488718218580236e-03
+2.1477883656996987e-03
+2.1467045641218904e-03
+2.1456204170688989e-03
+2.1445359244008210e-03
+2.1434510858026846e-03
+2.1423659009380770e-03
+2.1412803694836899e-03
+2.1401944911322796e-03
+2.1391082655711673e-03
+2.1380216923985599e-03
+2.1369347711474116e-03
+2.1358475014095946e-03
+2.1347598832014512e-03
+2.1336719167212846e-03
+2.1325836019700506e-03
+2.1314949381860998e-03
+2.1304059244259847e-03
+2.1293165600731493e-03
+2.1282268452212112e-03
+2.1271367800501850e-03
+2.1260463644858381e-03
+2.1249555981291452e-03
+2.1238644805575638e-03
+2.1227730113137890e-03
+2.1216811899139858e-03
+2.1205890158960462e-03
+2.1194964889633787e-03
+2.1184036088935667e-03
+2.1173103754910882e-03
+2.1162167886675876e-03
+2.1151228483609875e-03
+2.1140285543332759e-03
+2.1129339059469503e-03
+2.1118389025133002e-03
+2.1107435435057313e-03
+2.1096478286135273e-03
+2.1085517575566946e-03
+2.1074553303030365e-03
+2.1063585470175190e-03
+2.1052614077764799e-03
+2.1041639119246847e-03
+2.1030660584642770e-03
+2.1019678465770183e-03
+2.1008692762133265e-03
+2.0997703475263657e-03
+2.0986710604931139e-03
+2.0975714146722773e-03
+2.0964714095628059e-03
+2.0953710447071481e-03
+2.0942703197081424e-03
+2.0931692341777447e-03
+2.0920677878062282e-03
+2.0909659803488140e-03
+2.0898638115554387e-03
+2.0887612811167056e-03
+2.0876583886941845e-03
+2.0865551339436564e-03
+2.0854515164960867e-03
+2.0843475359754856e-03
+2.0832431919799656e-03
+2.0821384840433396e-03
+2.0810334116935407e-03
+2.0799279746560508e-03
+2.0788221729423151e-03
+2.0777160065618846e-03
+2.0766094750891977e-03
+2.0755025777226357e-03
+2.0743953136926657e-03
+2.0732876826133032e-03
+2.0721796842945875e-03
+2.0710713185561201e-03
+2.0699625852546675e-03
+2.0688534842575016e-03
+2.0677440152886500e-03
+2.0666341777000607e-03
+2.0655239707876205e-03
+2.0644133940470187e-03
+2.0633024472755598e-03
+2.0621911302928816e-03
+2.0610794428669371e-03
+2.0599673847191305e-03
+2.0588549555431734e-03
+2.0577421547960596e-03
+2.0566289818084544e-03
+2.0555154359762373e-03
+2.0544015170194259e-03
+2.0532872247567536e-03
+2.0521725589780671e-03
+2.0510575193946295e-03
+2.0499421057028578e-03
+2.0488263174977170e-03
+2.0477101542144324e-03
+2.0465936152819319e-03
+2.0454767002883547e-03
+2.0443594089712726e-03
+2.0432417410673944e-03
+2.0421236962496984e-03
+2.0410052741556572e-03
+2.0398864744007390e-03
+2.0387672964897077e-03
+2.0376477398920210e-03
+2.0365278041091423e-03
+2.0354074887336563e-03
+2.0342867933754952e-03
+2.0331657177328037e-03
+2.0320442616486249e-03
+2.0309224249666726e-03
+2.0298002072477576e-03
+2.0286776077760005e-03
+2.0275546258448195e-03
+2.0264312609588968e-03
+2.0253075127457608e-03
+2.0241833808765904e-03
+2.0230588652489201e-03
+2.0219339658358259e-03
+2.0208086824087253e-03
+2.0196830141380080e-03
+2.0185569600859013e-03
+2.0174305195772412e-03
+2.0163036923869747e-03
+2.0151764783319058e-03
+2.0140488771723608e-03
+2.0129208886111088e-03
+2.0117925123328971e-03
+2.0106637478572178e-03
+2.0095345946032931e-03
+2.0084050519951326e-03
+2.0072751194916685e-03
+2.0061447965641047e-03
+2.0050140827780499e-03
+2.0038829779937158e-03
+2.0027514821258879e-03
+2.0016195948390513e-03
+2.0004873153499363e-03
+1.9993546428383230e-03
+1.9982215767284407e-03
+1.9970881167041188e-03
+1.9959542624675510e-03
+1.9948200137868419e-03
+1.9936853704718136e-03
+1.9925503322550516e-03
+1.9914148984080792e-03
+1.9902790680334532e-03
+1.9891428403748172e-03
+1.9880062151379995e-03
+1.9868691921229552e-03
+1.9857317711092213e-03
+1.9845939518382074e-03
+1.9834557340354317e-03
+1.9823171171006399e-03
+1.9811781000730580e-03
+1.9800386820161739e-03
+1.9788988625087530e-03
+1.9777586414697641e-03
+1.9766180187896806e-03
+1.9754769941443969e-03
+1.9743355671274858e-03
+1.9731937372561214e-03
+1.9720515037862569e-03
+1.9709088659190109e-03
+1.9697658229875180e-03
+1.9686223745823354e-03
+1.9674785203266376e-03
+1.9663342599310382e-03
+1.9651895932069892e-03
+1.9640445199423750e-03
+1.9628990395541461e-03
+1.9617531512038547e-03
+1.9606068540885058e-03
+1.9594601476695182e-03
+1.9583130315144258e-03
+1.9571655052339661e-03
+1.9560175685930299e-03
+1.9548692213894447e-03
+1.9537204631806461e-03
+1.9525712930344807e-03
+1.9514217099710603e-03
+1.9502717133988360e-03
+1.9491213031930063e-03
+1.9479704792369078e-03
+1.9468192411501966e-03
+1.9456675883632241e-03
+1.9445155202951754e-03
+1.9433630363170228e-03
+1.9422101357795031e-03
+1.9410568180505796e-03
+1.9399030825633466e-03
+1.9387489287668487e-03
+1.9375943562173164e-03
+1.9364393646990499e-03
+1.9352839540168348e-03
+1.9341281236623432e-03
+1.9329718727350124e-03
+1.9318152003300767e-03
+1.9306581058383572e-03
+1.9295005888719159e-03
+1.9283426490543096e-03
+1.9271842860535194e-03
+1.9260254995570212e-03
+1.9248662891596833e-03
+1.9237066540904180e-03
+1.9225465934883060e-03
+1.9213861065904259e-03
+1.9202251928517697e-03
+1.9190638517609122e-03
+1.9179020829719813e-03
+1.9167398863552778e-03
+1.9155772617560679e-03
+1.9144142084150020e-03
+1.9132507251009895e-03
+1.9120868106729306e-03
+1.9109224647676809e-03
+1.9097576873789443e-03
+1.9085924783924511e-03
+1.9074268372392437e-03
+1.9062607632325769e-03
+1.9050942556466618e-03
+1.9039273136649507e-03
+1.9027599364631852e-03
+1.9015921234402349e-03
+1.9004238742986982e-03
+1.8992551887537534e-03
+1.8980860663712323e-03
+1.8969165065955099e-03
+1.8957465088491534e-03
+1.8945760724086377e-03
+1.8934051964804161e-03
+1.8922338803082452e-03
+1.8910621232997068e-03
+1.8898899249070037e-03
+1.8887172846421742e-03
+1.8875442021626979e-03
+1.8863706771427445e-03
+1.8851967090180337e-03
+1.8840222968858713e-03
+1.8828474398298611e-03
+1.8816721371429110e-03
+1.8804963882953316e-03
+1.8793201927808849e-03
+1.8781435502434512e-03
+1.8769664604020735e-03
+1.8757889228547995e-03
+1.8746109366464358e-03
+1.8734325006649264e-03
+1.8722536139849108e-03
+1.8710742761557527e-03
+1.8698944868008841e-03
+1.8687142455295657e-03
+1.8675335519300847e-03
+1.8663524055730141e-03
+1.8651708057312909e-03
+1.8639887514149496e-03
+1.8628062416642225e-03
+1.8616232758673398e-03
+1.8604398535944976e-03
+1.8592559743949950e-03
+1.8580716377108045e-03
+1.8568868429518286e-03
+1.8557015894807031e-03
+1.8545158765343305e-03
+1.8533297033302663e-03
+1.8521430691650774e-03
+1.8509559734572847e-03
+1.8497684156375039e-03
+1.8485803951694649e-03
+1.8473919115473800e-03
+1.8462029642359076e-03
+1.8450135524126362e-03
+1.8438236750984310e-03
+1.8426333313870625e-03
+1.8414425207452247e-03
+1.8402512427559989e-03
+1.8390594969477142e-03
+1.8378672826961328e-03
+1.8366745993497425e-03
+1.8354814461951938e-03
+1.8342878224195745e-03
+1.8330937272051913e-03
+1.8318991598247623e-03
+1.8307041196377277e-03
+1.8295086060170192e-03
+1.8283126184342792e-03
+1.8271161564174013e-03
+1.8259192194230963e-03
+1.8247218065307971e-03
+1.8235239166966243e-03
+1.8223255490044576e-03
+1.8211267029108525e-03
+1.8199273779392409e-03
+1.8187275735626106e-03
+1.8175272891692107e-03
+1.8163265241337052e-03
+1.8151252777050056e-03
+1.8139235490063337e-03
+1.8127213371654060e-03
+1.8115186414137735e-03
+1.8103154610447374e-03
+1.8091117953882539e-03
+1.8079076439717812e-03
+1.8067030063903414e-03
+1.8054978820591810e-03
+1.8042922698444492e-03
+1.8030861685115135e-03
+1.8018795771387213e-03
+1.8006724953530829e-03
+1.7994649228282773e-03
+1.7982568590193318e-03
+1.7970483031535421e-03
+1.7958392544399425e-03
+1.7946297120035139e-03
+1.7934196749170850e-03
+1.7922091422853032e-03
+1.7909981134013782e-03
+1.7897865876261624e-03
+1.7885745643239509e-03
+1.7873620428697709e-03
+1.7861490226396153e-03
+1.7849355028937094e-03
+1.7837214826804462e-03
+1.7825069610317100e-03
+1.7812919371429565e-03
+1.7800764103871678e-03
+1.7788603801442452e-03
+1.7776438457709036e-03
+1.7764268066088502e-03
+1.7752092619499184e-03
+1.7739912107845798e-03
+1.7727726519901753e-03
+1.7715535845599342e-03
+1.7703340078761868e-03
+1.7691139214026169e-03
+1.7678933245943260e-03
+1.7666722168900191e-03
+1.7654505977149635e-03
+1.7642284661580001e-03
+1.7630058209274733e-03
+1.7617826607519039e-03
+1.7605589848623893e-03
+1.7593347928292803e-03
+1.7581100841887911e-03
+1.7568848582187636e-03
+1.7556591140955313e-03
+1.7544328509760698e-03
+1.7532060679501991e-03
+1.7519787640930644e-03
+1.7507509384881758e-03
+1.7495225902357326e-03
+1.7482937184448329e-03
+1.7470643224428096e-03
+1.7458344018142201e-03
+1.7446039561191935e-03
+1.7433729844032618e-03
+1.7421414853497313e-03
+1.7409094577088393e-03
+1.7396769007300332e-03
+1.7384438138679124e-03
+1.7372101965194672e-03
+1.7359760478672284e-03
+1.7347413670443085e-03
+1.7335061531738279e-03
+1.7322704053580804e-03
+1.7310341226959996e-03
+1.7297973042604972e-03
+1.7285599490925166e-03
+1.7273220562515079e-03
+1.7260836250822171e-03
+1.7248446551387697e-03
+1.7236051458964948e-03
+1.7223650962415560e-03
+1.7211245048069353e-03
+1.7198833703555715e-03
+1.7186416921559193e-03
+1.7173994695980769e-03
+1.7161567020079129e-03
+1.7149133885714198e-03
+1.7136695284546641e-03
+1.7124251207664939e-03
+1.7111801645424967e-03
+1.7099346588123417e-03
+1.7086886025889925e-03
+1.7074419948726299e-03
+1.7061948347070104e-03
+1.7049471214611877e-03
+1.7036988546503494e-03
+1.7024500336354283e-03
+1.7012006571501181e-03
+1.6999507237703867e-03
+1.6987002322963879e-03
+1.6974491820385801e-03
+1.6961975723769280e-03
+1.6949454026444146e-03
+1.6936926721113166e-03
+1.6924393800228617e-03
+1.6911855252976554e-03
+1.6899311065938282e-03
+1.6886761226161595e-03
+1.6874205724896776e-03
+1.6861644555367071e-03
+1.6849077710535145e-03
+1.6836505182209337e-03
+1.6823926961889489e-03
+1.6811343040407229e-03
+1.6798753407003915e-03
+1.6786158050696269e-03
+1.6773556960812690e-03
+1.6760950127115279e-03
+1.6748337539547505e-03
+1.6735719190567374e-03
+1.6723095074722930e-03
+1.6710465185937468e-03
+1.6697829512483527e-03
+1.6685188039862011e-03
+1.6672540754616523e-03
+1.6659887648016074e-03
+1.6647228712643655e-03
+1.6634563941048635e-03
+1.6621893325696588e-03
+1.6609216858990104e-03
+1.6596534530796965e-03
+1.6583846327307165e-03
+1.6571152234624842e-03
+1.6558452242504678e-03
+1.6545746343863636e-03
+1.6533034531530559e-03
+1.6520316796667239e-03
+1.6507593129581441e-03
+1.6494863520338241e-03
+1.6482127957902510e-03
+1.6469386430918904e-03
+1.6456638928271283e-03
+1.6443885439466463e-03
+1.6431125954134509e-03
+1.6418360463207420e-03
+1.6405588959587133e-03
+1.6392811436167169e-03
+1.6380027882520794e-03
+1.6367238285223994e-03
+1.6354442630983417e-03
+1.6341640908678662e-03
+1.6328833108351741e-03
+1.6316019220519275e-03
+1.6303199237967078e-03
+1.6290373154170844e-03
+1.6277540960435736e-03
+1.6264702642151520e-03
+1.6251858183756501e-03
+1.6239007572639193e-03
+1.6226150800844180e-03
+1.6213287860801688e-03
+1.6200418744430109e-03
+1.6187543443166349e-03
+1.6174661948016934e-03
+1.6161774246026394e-03
+1.6148880322026718e-03
+1.6135980161853982e-03
+1.6123073756623338e-03
+1.6110161099138734e-03
+1.6097242181474657e-03
+1.6084316993622478e-03
+1.6071385525187483e-03
+1.6058447764564392e-03
+1.6045503698154777e-03
+1.6032553312292793e-03
+1.6019596595941651e-03
+1.6006633540641706e-03
+1.5993664137953559e-03
+1.5980688378545371e-03
+1.5967706252565130e-03
+1.5954717749565841e-03
+1.5941722855930291e-03
+1.5928721556979545e-03
+1.5915713839492174e-03
+1.5902699694603035e-03
+1.5889679114248028e-03
+1.5876652089649532e-03
+1.5863618610804074e-03
+1.5850578667512658e-03
+1.5837532247790964e-03
+1.5824479337831041e-03
+1.5811419923900047e-03
+1.5798353993956588e-03
+1.5785281536987961e-03
+1.5772202542424993e-03
+1.5759117002123726e-03
+1.5746024908790659e-03
+1.5732926253125919e-03
+1.5719821019548738e-03
+1.5706709191286362e-03
+1.5693590754622983e-03
+1.5680465701324137e-03
+1.5667334023643557e-03
+1.5654195711710792e-03
+1.5641050753394429e-03
+1.5627899136505495e-03
+1.5614740849447721e-03
+1.5601575881000888e-03
+1.5588404219619653e-03
+1.5575225851793668e-03
+1.5562040763290928e-03
+1.5548848941713521e-03
+1.5535650380680060e-03
+1.5522445074996893e-03
+1.5509233014866048e-03
+1.5496014181870894e-03
+1.5482788556835489e-03
+1.5469556125812655e-03
+1.5456316880654831e-03
+1.5443070813465974e-03
+1.5429817915745411e-03
+1.5416558178592331e-03
+1.5403291592064978e-03
+1.5390018139778661e-03
+1.5376737802871238e-03
+1.5363450564939570e-03
+1.5350156418046700e-03
+1.5336855356053631e-03
+1.5323547370489274e-03
+1.5310232448324196e-03
+1.5296910576011273e-03
+1.5283581740309785e-03
+1.5270245928333183e-03
+1.5256903127256962e-03
+1.5243553324796684e-03
+1.5230196509040622e-03
+1.5216832668269774e-03
+1.5203461791978405e-03
+1.5190083870148879e-03
+1.5176698891701172e-03
+1.5163306841724489e-03
+1.5149907704459405e-03
+1.5136501466103255e-03
+1.5123088116848228e-03
+1.5109667647339037e-03
+1.5096240047070798e-03
+1.5082805304153786e-03
+1.5069363406453359e-03
+1.5055914339633289e-03
+1.5042458087773131e-03
+1.5028994635524341e-03
+1.5015523971713348e-03
+1.5002046086923305e-03
+1.4988560971391932e-03
+1.4975068614029765e-03
+1.4961569003427465e-03
+1.4948062127006542e-03
+1.4934547969694754e-03
+1.4921026516136033e-03
+1.4907497752289884e-03
+1.4893961665767607e-03
+1.4880418244423840e-03
+1.4866867478107563e-03
+1.4853309358163903e-03
+1.4839743875137824e-03
+1.4826171013522437e-03
+1.4812590755148482e-03
+1.4799003083311197e-03
+1.4785407987148551e-03
+1.4771805457240795e-03
+1.4758195483486856e-03
+1.4744578054266930e-03
+1.4730953157708509e-03
+1.4717320780064200e-03
+1.4703680905132860e-03
+1.4690033516742147e-03
+1.4676378601702132e-03
+1.4662716149155207e-03
+1.4649046148303873e-03
+1.4635368588335196e-03
+1.4621683458429138e-03
+1.4607990746892589e-03
+1.4594290438408974e-03
+1.4580582516725957e-03
+1.4566866966671309e-03
+1.4553143775589761e-03
+1.4539412931201909e-03
+1.4525674422014680e-03
+1.4511928237607842e-03
+1.4498174367435555e-03
+1.4484412797640992e-03
+1.4470643511668520e-03
+1.4456866493296324e-03
+1.4443081729607473e-03
+1.4429289209272910e-03
+1.4415488921002966e-03
+1.4401680853635501e-03
+1.4387864996038219e-03
+1.4374041335490041e-03
+1.4360209855398384e-03
+1.4346370538641038e-03
+1.4332523370448194e-03
+1.4318668339396371e-03
+1.4304805434317584e-03
+1.4290934644044827e-03
+1.4277055957411923e-03
+1.4263169362816982e-03
+1.4249274844980956e-03
+1.4235372386779239e-03
+1.4221461971921398e-03
+1.4207543587986887e-03
+1.4193617223658844e-03
+1.4179682867808728e-03
+1.4165740509787810e-03
+1.4151790138960208e-03
+1.4137831741350170e-03
+1.4123865298027716e-03
+1.4109890789952635e-03
+1.4095908203510205e-03
+1.4081917529888946e-03
+1.4067918760104583e-03
+1.4053911882159888e-03
+1.4039896882478420e-03
+1.4025873747225486e-03
+1.4011842461397056e-03
+1.3997803009640547e-03
+1.3983755377072350e-03
+1.3969699550059852e-03
+1.3955635515202301e-03
+1.3941563260624860e-03
+1.3927482776813394e-03
+1.3913394054202608e-03
+1.3899297078158288e-03
+1.3885191829369763e-03
+1.3871078288998626e-03
+1.3856956444279586e-03
+1.3842826285770755e-03
+1.3828687803584311e-03
+1.3814540985423848e-03
+1.3800385818237776e-03
+1.3786222288123451e-03
+1.3772050378803146e-03
+1.3757870073615947e-03
+1.3743681357781981e-03
+1.3729484219557058e-03
+1.3715278647499312e-03
+1.3701064630738137e-03
+1.3686842158952119e-03
+1.3672611221249250e-03
+1.3658371800866472e-03
+1.3644123877687175e-03
+1.3629867433002816e-03
+1.3615602455726247e-03
+1.3601328937269197e-03
+1.3587046868080129e-03
+1.3572756235787774e-03
+1.3558457027484287e-03
+1.3544149228431092e-03
+1.3529832820807033e-03
+1.3515507786688869e-03
+1.3501174112627958e-03
+1.3486831789658207e-03
+1.3472480808706393e-03
+1.3458121157532460e-03
+1.3443752822008676e-03
+1.3429375787816537e-03
+1.3414990039722469e-03
+1.3400595562178966e-03
+1.3386192340317548e-03
+1.3371780361349217e-03
+1.3357359612889443e-03
+1.3342930083238306e-03
+1.3328491761898874e-03
+1.3314044638336859e-03
+1.3299588698052144e-03
+1.3285123922404747e-03
+1.3270650293100920e-03
+1.3256167797827136e-03
+1.3241676427989053e-03
+1.3227176174399956e-03
+1.3212667024112578e-03
+1.3198148962827174e-03
+1.3183621976073070e-03
+1.3169086048837131e-03
+1.3154541166010185e-03
+1.3139987313721927e-03
+1.3125424480374330e-03
+1.3110852654598880e-03
+1.3096271824655698e-03
+1.3081681978400941e-03
+1.3067083103513405e-03
+1.3052475185832842e-03
+1.3037858210005954e-03
+1.3023232160960061e-03
+1.3008597025454176e-03
+1.2993952790936888e-03
+1.2979299445396724e-03
+1.2964636978632412e-03
+1.2949965380799691e-03
+1.2935284639428099e-03
+1.2920594737018004e-03
+1.2905895655631605e-03
+1.2891187381116093e-03
+1.2876469903609225e-03
+1.2861743213436090e-03
+1.2847007300374213e-03
+1.2832262153830653e-03
+1.2817507762475770e-03
+1.2802744110312710e-03
+1.2787971179506531e-03
+1.2773188953729524e-03
+1.2758397421978075e-03
+1.2743596574419753e-03
+1.2728786401173622e-03
+1.2713966892261752e-03
+1.2699138037593248e-03
+1.2684299823862654e-03
+1.2669452233967011e-03
+1.2654595250899963e-03
+1.2639728861811330e-03
+1.2624853056783212e-03
+1.2609967825909735e-03
+1.2595073158952561e-03
+1.2580169045536380e-03
+1.2565255474321793e-03
+1.2550332430411482e-03
+1.2535399898096894e-03
+1.2520457863222031e-03
+1.2505506314874483e-03
+1.2490545242562819e-03
+1.2475574636291351e-03
+1.2460594486674759e-03
+1.2445604784088013e-03
+1.2430605515027942e-03
+1.2415596663138662e-03
+1.2400578212684627e-03
+1.2385550152780170e-03
+1.2370512474628901e-03
+1.2355465169228514e-03
+1.2340408226747992e-03
+1.2325341637147856e-03
+1.2310265388853130e-03
+1.2295179466936758e-03
+1.2280083856092369e-03
+1.2264978543398075e-03
+1.2249863518992055e-03
+1.2234738773289552e-03
+1.2219604297840456e-03
+1.2204460085064757e-03
+1.2189306126673195e-03
+1.2174142408941399e-03
+1.2158968915697418e-03
+1.2143785631945996e-03
+1.2128592547515427e-03
+1.2113389653460040e-03
+1.2098176941420535e-03
+1.2082954404375608e-03
+1.2067722035389839e-03
+1.2052479823377400e-03
+1.2037227751700162e-03
+1.2021965803688983e-03
+1.2006693968326467e-03
+1.1991412239112755e-03
+1.1976120609537640e-03
+1.1960819072022767e-03
+1.1945507618487091e-03
+1.1930186239831049e-03
+1.1914854922633401e-03
+1.1899513652330591e-03
+1.1884162416425843e-03
+1.1868801207353253e-03
+1.1853430018251337e-03
+1.1838048841557587e-03
+1.1822657668731770e-03
+1.1807256491058263e-03
+1.1791845298083090e-03
+1.1776424077904084e-03
+1.1760992818817637e-03
+1.1745551511119052e-03
+1.1730100146086443e-03
+1.1714638715748819e-03
+1.1699167215455208e-03
+1.1683685641471868e-03
+1.1668193986909567e-03
+1.1652692237005325e-03
+1.1637180375886776e-03
+1.1621658392682310e-03
+1.1606126283792762e-03
+1.1590584046028067e-03
+1.1575031673241567e-03
+1.1559469156719616e-03
+1.1543896487613808e-03
+1.1528313656646472e-03
+1.1512720654319505e-03
+1.1497117471407452e-03
+1.1481504099969089e-03
+1.1465880532441036e-03
+1.1450246762510327e-03
+1.1434602787128067e-03
+1.1418948603697267e-03
+1.1403284205426776e-03
+1.1387609579164564e-03
+1.1371924711514859e-03
+1.1356229594638033e-03
+1.1340524225721595e-03
+1.1324808602015770e-03
+1.1309082719686530e-03
+1.1293346574318469e-03
+1.1277600160604455e-03
+1.1261843468888474e-03
+1.1246076488185322e-03
+1.1230299209314292e-03
+1.1214511628025484e-03
+1.1198713740916012e-03
+1.1182905545385978e-03
+1.1167087040105750e-03
+1.1151258223599555e-03
+1.1135419089032487e-03
+1.1119569624516799e-03
+1.1103709818743349e-03
+1.1087839667890862e-03
+1.1071959172329528e-03
+1.1056068331843497e-03
+1.1040167142963111e-03
+1.1024255601174433e-03
+1.1008333701756784e-03
+1.0992401439399566e-03
+1.0976458808694561e-03
+1.0960505804745563e-03
+1.0944542423501362e-03
+1.0928568661096763e-03
+1.0912584516050506e-03
+1.0896589989223496e-03
+1.0880585081139858e-03
+1.0864569787885185e-03
+1.0848544102952022e-03
+1.0832508020316449e-03
+1.0816461536741890e-03
+1.0800404649929491e-03
+1.0784337358876826e-03
+1.0768259666462069e-03
+1.0752171576238216e-03
+1.0736073087816691e-03
+1.0719964194021298e-03
+1.0703844887217523e-03
+1.0687715164876960e-03
+1.0671575029698715e-03
+1.0655424484478648e-03
+1.0639263530501230e-03
+1.0623092168129602e-03
+1.0606910397354624e-03
+1.0590718216131189e-03
+1.0574515621698116e-03
+1.0558302612320364e-03
+1.0542079189484433e-03
+1.0525845355313765e-03
+1.0509601112570323e-03
+1.0493346465163707e-03
+1.0477081416997546e-03
+1.0460805968716066e-03
+1.0444520117486298e-03
+1.0428223860699051e-03
+1.0411917200227349e-03
+1.0395600140794634e-03
+1.0379272687150790e-03
+1.0362934843931144e-03
+1.0346586615728630e-03
+1.0330228006270883e-03
+1.0313859016441661e-03
+1.0297479646554082e-03
+1.0281089898291995e-03
+1.0264689775911181e-03
+1.0248279284001737e-03
+1.0231858428585462e-03
+1.0215427217275775e-03
+1.0198985657490236e-03
+1.0182533753277680e-03
+1.0166071506452475e-03
+1.0149598919263481e-03
+1.0133115996925235e-03
+1.0116622745795717e-03
+1.0100119172912361e-03
+1.0083605287644791e-03
+1.0067081099845157e-03
+1.0050546616960411e-03
+1.0034001841725023e-03
+1.0017446776449115e-03
+1.0000881427185177e-03
+9.9843058043213510e-04
+9.9677199184896779e-04
+9.9511237803423416e-04
+9.9345174005454457e-04
+9.9179007891699402e-04
+9.9012739523777408e-04
+9.8846368947542139e-04
+9.8679896223296572e-04
+9.8513321463673592e-04
+9.8346644793125167e-04
+9.8179866337912798e-04
+9.8012986228001209e-04
+9.7846004592973788e-04
+9.7678921534742245e-04
+9.7511737121807533e-04
+9.7344451423983383e-04
+9.7177064556038938e-04
+9.7009576665167154e-04
+9.6841987899945903e-04
+9.6674298413560638e-04
+9.6506508361140250e-04
+9.6338617886161508e-04
+9.6170627087968142e-04
+9.6002536055600854e-04
+9.5834344902343048e-04
+9.5666053793312330e-04
+9.5497662900389775e-04
+9.5329172398593847e-04
+9.5160582466891183e-04
+9.4991893282126533e-04
+9.4823104986858041e-04
+9.4654217697862845e-04
+9.4485231538252125e-04
+9.4316146681648085e-04
+9.4146963323949134e-04
+9.3977681662722648e-04
+9.3808301901772916e-04
+9.3638824246368815e-04
+9.3469248884187766e-04
+9.3299575963598231e-04
+9.3129805628491022e-04
+9.2959938056550817e-04
+9.2789973469791507e-04
+9.2619912093462424e-04
+9.2449754156337654e-04
+9.2279499889954002e-04
+9.2109149521087401e-04
+9.1938703239609527e-04
+9.1768161218381617e-04
+9.1597523642663703e-04
+9.1426790749688154e-04
+9.1255962790219233e-04
+9.1085040019032928e-04
+9.0914022700276664e-04
+9.0742911098831084e-04
+9.0571705453208219e-04
+9.0400405965861325e-04
+9.0229012839284381e-04
+9.0057526319264620e-04
+8.9885946686958423e-04
+8.9714274225796838e-04
+8.9542509229163130e-04
+8.9370651995233821e-04
+8.9198702811583205e-04
+8.9026661919392478e-04
+8.8854529547264724e-04
+8.8682305947618148e-04
+8.8509991431047475e-04
+8.8337586316916379e-04
+8.8165090927084329e-04
+8.7992505586969260e-04
+8.7819830620530423e-04
+8.7647066321428608e-04
+8.7474212957527019e-04
+8.7301270801868605e-04
+8.7128240178306875e-04
+8.6955121436258268e-04
+8.6781914927198467e-04
+8.6608621011136859e-04
+8.6435240050486840e-04
+8.6261772392522877e-04
+8.6088218345834508e-04
+8.5914578213489750e-04
+8.5740852329151834e-04
+8.5567041071973047e-04
+8.5393144825377301e-04
+8.5219163983573363e-04
+8.5045098950339664e-04
+8.4870950125032413e-04
+8.4696717864595633e-04
+8.4522402503690234e-04
+8.4348004389317227e-04
+8.4173523928636549e-04
+8.3998961546834813e-04
+8.3824317672062253e-04
+8.3649592740384256e-04
+8.3474787188804640e-04
+8.3299901432079440e-04
+8.3124935850465505e-04
+8.2949890823363957e-04
+8.2774766772568474e-04
+8.2599564159072060e-04
+8.2424283446462813e-04
+8.2248925108879822e-04
+8.2073489626249743e-04
+8.1897977470022656e-04
+8.1722389068688910e-04
+8.1546724837280480e-04
+8.1370985211922438e-04
+8.1195170687786439e-04
+8.1019281770379936e-04
+8.0843318970938492e-04
+8.0667282809963382e-04
+8.0491173807352683e-04
+8.0314992451839822e-04
+8.0138739202129420e-04
+7.9962414521228629e-04
+7.9786018927003460e-04
+7.9609552968729319e-04
+7.9433017197810916e-04
+7.9256412174939035e-04
+7.9079738463846277e-04
+7.8902996614593150e-04
+7.8726187137171657e-04
+7.8549310534685045e-04
+7.8372367341728380e-04
+7.8195358146047086e-04
+7.8018283540862903e-04
+7.7841144127663016e-04
+7.7663940516233617e-04
+7.7486673313310851e-04
+7.7309343089805008e-04
+7.7131950395221071e-04
+7.6954495789251448e-04
+7.6776979889622051e-04
+7.6599403334046351e-04
+7.6421766764938422e-04
+7.6244070839081657e-04
+7.6066316215748131e-04
+7.5888503531694950e-04
+7.5710633384023216e-04
+7.5532706367622388e-04
+7.5354723122944187e-04
+7.5176684338110406e-04
+7.4998590704253114e-04
+7.4820442920994605e-04
+7.4642241693249683e-04
+7.4463987719259846e-04
+7.4285681657992181e-04
+7.4107324154259774e-04
+7.3928915871882168e-04
+7.3750457535848107e-04
+7.3571949883481430e-04
+7.3393393658712912e-04
+7.3214789617620383e-04
+7.3036138516504559e-04
+7.2857441082445568e-04
+7.2678698010665425e-04
+7.2499909999550335e-04
+7.2321077803586865e-04
+7.2142202213740637e-04
+7.1963284022989716e-04
+7.1784324032808894e-04
+7.1605323047877476e-04
+7.1426281862083151e-04
+7.1247201232935771e-04
+7.1068081910540372e-04
+7.0888924673793616e-04
+7.0709730356860326e-04
+7.0530499800481282e-04
+7.0351233854642982e-04
+7.0171933379836520e-04
+6.9992599234344852e-04
+6.9813232241873241e-04
+6.9633833202677913e-04
+6.9454402926359378e-04
+6.9274942285304467e-04
+6.9095452176690347e-04
+6.8915933500835326e-04
+6.8736387168935435e-04
+6.8556814094452689e-04
+6.8377215172639070e-04
+6.8197591262240140e-04
+6.8017943219000248e-04
+6.7838271941868917e-04
+6.7658578380952591e-04
+6.7478863489838815e-04
+6.7299128228982103e-04
+6.7119373563692957e-04
+6.6939600454646525e-04
+6.6759809830589266e-04
+6.6580002607081741e-04
+6.6400179715296473e-04
+6.6220342144351592e-04
+6.6040490896817163e-04
+6.5860626982829757e-04
+6.5680751428372219e-04
+6.5500865260638863e-04
+6.5320969479699953e-04
+6.5141065052153643e-04
+6.4961152946461269e-04
+6.4781234186254500e-04
+6.4601309835841090e-04
+6.4421380961751944e-04
+6.4241448639553898e-04
+6.4061513948715867e-04
+6.3881577959429248e-04
+6.3701641705819127e-04
+6.3521706213400593e-04
+6.3341772534568190e-04
+6.3161841780539198e-04
+6.2981915070531389e-04
+6.2801993531991836e-04
+6.2622078302952764e-04
+6.2442170520043679e-04
+6.2262271288550885e-04
+6.2082381689670680e-04
+6.1902502812110889e-04
+6.1722635805154232e-04
+6.1542781845428632e-04
+6.1362942112798251e-04
+6.1183117799754006e-04
+6.1003310101931038e-04
+6.0823520199006979e-04
+6.0643749234157943e-04
+6.0463998346403105e-04
+6.0284268713382502e-04
+6.0104561564520965e-04
+5.9924878133552333e-04
+5.9745219665035079e-04
+5.9565587412199782e-04
+5.9385982623774312e-04
+5.9206406511266927e-04
+5.9026860268627374e-04
+5.8847345104752035e-04
+5.8667862292749212e-04
+5.8488413122866263e-04
+5.8308998890478365e-04
+5.8129620903224293e-04
+5.7950280470031135e-04
+5.7770978876464131e-04
+5.7591717375430609e-04
+5.7412497220333148e-04
+5.7233319714225408e-04
+5.7054186201619219e-04
+5.6875098029776085e-04
+5.6696056558163614e-04
+5.6517063152265311e-04
+5.6338119168670628e-04
+5.6159225923990675e-04
+5.5980384723725105e-04
+5.5801596897636706e-04
+5.5622863836182149e-04
+5.5444186939315483e-04
+5.5265567615269252e-04
+5.5087007284342917e-04
+5.4908507366001607e-04
+5.4730069247299184e-04
+5.4551694287085161e-04
+5.4373383850169019e-04
+5.4195139361408061e-04
+5.4016962276569823e-04
+5.3838854053731326e-04
+5.3660816160606961e-04
+5.3482850067705916e-04
+5.3304957231077186e-04
+5.3127139068925898e-04
+5.2949396993964338e-04
+5.2771732454328789e-04
+5.2594146952004755e-04
+5.2416641993890468e-04
+5.2239219094686487e-04
+5.2061879776168856e-04
+5.1884625556484186e-04
+5.1707457918129664e-04
+5.1530378324441154e-04
+5.1353388250756609e-04
+5.1176489232374837e-04
+5.0999682823012508e-04
+5.0822970581043507e-04
+5.0646354077583640e-04
+5.0469834885534905e-04
+5.0293414553816422e-04
+5.0117094593320113e-04
+4.9940876513836999e-04
+4.9764761872455405e-04
+4.9588752270959130e-04
+4.9412849313611607e-04
+4.9237054611728638e-04
+4.9061369780583112e-04
+4.8885796427921538e-04
+4.8710336122417494e-04
+4.8534990420195473e-04
+4.8359760897238912e-04
+4.8184649186489188e-04
+4.8009656931122659e-04
+4.7834785780832698e-04
+4.7660037396093111e-04
+4.7485413436909807e-04
+4.7310915530186944e-04
+4.7136545270232946e-04
+4.6962304255445645e-04
+4.6788194140129444e-04
+4.6614216611326958e-04
+4.6440373357364411e-04
+4.6266666071278519e-04
+4.6093096447684438e-04
+4.5919666168386871e-04
+4.5746376876722828e-04
+4.5573230209189613e-04
+4.5400227830904444e-04
+4.5227371456386153e-04
+4.5054662805262078e-04
+4.4882103602215430e-04
+4.4709695577117305e-04
+4.4537440456758701e-04
+4.4365339932086854e-04
+4.4193395672147872e-04
+4.4021609355117571e-04
+4.3849982712844486e-04
+4.3678517496114819e-04
+4.3507215457538309e-04
+4.3336078355392458e-04
+4.3165107948842812e-04
+4.2994305976156442e-04
+4.2823674137950046e-04
+4.2653214132328898e-04
+4.2482927694637381e-04
+4.2312816600037647e-04
+4.2142882625968383e-04
+4.1973127553634673e-04
+4.1803553166642403e-04
+4.1634161241675623e-04
+4.1464953513887181e-04
+4.1295931703094735e-04
+4.1127097544794847e-04
+4.0958452826232315e-04
+4.0789999345308621e-04
+4.0621738901277192e-04
+4.0453673295934121e-04
+4.0285804330298606e-04
+4.0118133775580652e-04
+3.9950663369776017e-04
+3.9783394852743178e-04
+3.9616330007998158e-04
+3.9449470648082236e-04
+3.9282818586168115e-04
+3.9116375636102354e-04
+3.8950143611990684e-04
+3.8784124315312192e-04
+3.8618319503937101e-04
+3.8452730926503341e-04
+3.8287360353715238e-04
+3.8122209599615375e-04
+3.7957280483355354e-04
+3.7792574825977840e-04
+3.7628094450721316e-04
+3.7463841177668827e-04
+3.7299816784790250e-04
+3.7136023020857713e-04
+3.6972461641665192e-04
+3.6809134453091836e-04
+3.6646043281267441e-04
+3.6483189950550142e-04
+3.6320576278678568e-04
+3.6158204081764125e-04
+3.5996075156615007e-04
+3.5834191260440646e-04
+3.5672554146378013e-04
+3.5511165593758807e-04
+3.5350027413614393e-04
+3.5189141418967925e-04
+3.5028509424099867e-04
+3.4868133244199580e-04
+3.4708014687190130e-04
+3.4548155510579908e-04
+3.4388557450559581e-04
+3.4229222255247028e-04
+3.4070151718315053e-04
+3.3911347644228362e-04
+3.3752811835048184e-04
+3.3594546087684345e-04
+3.3436552197513601e-04
+3.3278831928315340e-04
+3.3121387004014910e-04
+3.2964219148218249e-04
+3.2807330116821148e-04
+3.2650721690054605e-04
+3.2494395648140960e-04
+3.2338353766898936e-04
+3.2182597820200510e-04
+3.2027129568627566e-04
+3.1871950719912978e-04
+3.1717062968724351e-04
+3.1562468026590494e-04
+3.1408167642809476e-04
+3.1254163571654565e-04
+3.1100457561066962e-04
+3.0947051350662693e-04
+3.0793946676858593e-04
+3.0641145235447439e-04
+3.0488648690307535e-04
+3.0336458708806727e-04
+3.0184576991597984e-04
+3.0033005254713924e-04
+2.9881745211606420e-04
+2.9730798564613829e-04
+2.9580167013097442e-04
+2.9429852235277878e-04
+2.9279855859869772e-04
+2.9130179508953956e-04
+2.8980824824089357e-04
+2.8831793473532398e-04
+2.8683087126858670e-04
+2.8534707443565949e-04
+2.8386656074899972e-04
+2.8238934665725794e-04
+2.8091544811450976e-04
+2.7944488083605514e-04
+2.7797766060502619e-04
+2.7651380350805289e-04
+2.7505332571455769e-04
+2.7359624333461643e-04
+2.7214257233296776e-04
+2.7069232864594033e-04
+2.6924552789003685e-04
+2.6780218522470193e-04
+2.6636231578678737e-04
+2.6492593493319309e-04
+2.6349305820860683e-04
+2.6206370114491859e-04
+2.6063787911425869e-04
+2.5921560740818888e-04
+2.5779690119871225e-04
+2.5638177511222020e-04
+2.5497024361896423e-04
+2.5356232128272637e-04
+2.5215802290691735e-04
+2.5075736333071762e-04
+2.4936035728187407e-04
+2.4796701932207024e-04
+2.4657736397797476e-04
+2.4519140537267316e-04
+2.4380915727032436e-04
+2.4243063344060893e-04
+2.4105584781454240e-04
+2.3968481440810697e-04
+2.3831754720600687e-04
+2.3695406003881384e-04
+2.3559436669044360e-04
+2.3423848073181016e-04
+2.3288641516289567e-04
+2.3153818289054103e-04
+2.3019379691350270e-04
+2.2885327037340067e-04
+2.2751661641840634e-04
+2.2618384808023332e-04
+2.2485497828266497e-04
+2.2353001988387525e-04
+2.2220898516129754e-04
+2.2089188607305496e-04
+2.1957873461810325e-04
+2.1826954301813669e-04
+2.1696432356483724e-04
+2.1566308846129211e-04
+2.1436584966193998e-04
+2.1307261907315900e-04
+2.1178340827666047e-04
+2.1049822832774705e-04
+2.0921709024000474e-04
+2.0794000516510241e-04
+2.0666698438806191e-04
+2.0539803917346116e-04
+2.0413318052797392e-04
+2.0287241931026258e-04
+2.0161576627402664e-04
+2.0036323162662056e-04
+1.9911482539531340e-04
+1.9787055763821889e-04
+1.9663043850439118e-04
+1.9539447815789131e-04
+1.9416268663910444e-04
+1.9293507377919140e-04
+1.9171164937078686e-04
+1.9049242278053091e-04
+1.8927740294636937e-04
+1.8806659879344891e-04
+1.8686001931063294e-04
+1.8565767352494400e-04
+1.8445957042536901e-04
+1.8326571878673784e-04
+1.8207612730983263e-04
+1.8089080448663986e-04
+1.7970975816693110e-04
+1.7853299607807150e-04
+1.7736052600955527e-04
+1.7619235586056452e-04
+1.7502849353247523e-04
+1.7386894670081486e-04
+1.7271372280427705e-04
+1.7156282922834592e-04
+1.7041627289076462e-04
+1.6927406041702134e-04
+1.6813619842687491e-04
+1.6700269353268674e-04
+1.6587355234412227e-04
+1.6474878139833451e-04
+1.6362838699875119e-04
+1.6251237539883148e-04
+1.6140075255306340e-04
+1.6029352386496382e-04
+1.5919069467921229e-04
+1.5809227035437688e-04
+1.5699825626420223e-04
+1.5590865776474579e-04
+1.5482347999450500e-04
+1.5374272795018123e-04
+1.5266640652489185e-04
+1.5159451999243210e-04
+1.5052707239230975e-04
+1.4946406778598790e-04
+1.4840551031057586e-04
+1.4735140411770319e-04
+1.4630175319098047e-04
+1.4525656119072027e-04
+1.4421583172839715e-04
+1.4317956805917761e-04
+1.4214777303248543e-04
+1.4112044947336210e-04
+1.4009760017771997e-04
+1.3907922792167135e-04
+1.3806533544073447e-04
+1.3705592521180197e-04
+1.3605099960938810e-04
+1.3505056083914371e-04
+1.3405461050978193e-04
+1.3306315009804114e-04
+1.3207618108977931e-04
+1.3109370498918111e-04
+1.3011572329564190e-04
+1.2914223728512534e-04
+1.2817324796843835e-04
+1.2720875630916137e-04
+1.2624876284909761e-04
+1.2529326783110130e-04
+1.2434227148020265e-04
+1.2339577394382468e-04
+1.2245377533725925e-04
+1.2151627570981727e-04
+1.2058327486630881e-04
+1.1965477255322570e-04
+1.1873076825482171e-04
+1.1781126090482848e-04
+1.1689624936736984e-04
+1.1598573249968943e-04
+1.1507970915052114e-04
+1.1417817815203684e-04
+1.1328113811062752e-04
+1.1238858746583749e-04
+1.1150052457389412e-04
+1.1061694722687892e-04
+1.0973785297265091e-04
+1.0886323936560761e-04
+1.0799310398939748e-04
+1.0712744443404505e-04
+1.0626625814458473e-04
+1.0540954224798345e-04
+1.0455729382095230e-04
+1.0370950963261891e-04
+1.0286618605556936e-04
+1.0202731943301004e-04
+1.0119290606051464e-04
+1.0036294219696286e-04
+9.9537424066648909e-05
+9.8716347642490324e-05
+9.7899708783649508e-05
+9.7087503221847182e-05
+9.6279726171152714e-05
+9.5476372713585301e-05
+9.4677437917778227e-05
+9.3882916821670564e-05
+9.3092804454908079e-05
+9.2307095678735506e-05
+9.1525785128078073e-05
+9.0748867397613065e-05
+8.9976336693656402e-05
+8.9208186910680391e-05
+8.8444411929838542e-05
+8.7685005596767717e-05
+8.6929961740308967e-05
+8.6179274127581138e-05
+8.5432936262101259e-05
+8.4690941576293080e-05
+8.3953283315436298e-05
+8.3219954276121940e-05
+8.2490947188602567e-05
+8.1766254760533242e-05
+8.1045869667906463e-05
+8.0329784572868719e-05
+7.9617991942095229e-05
+7.8910484078672006e-05
+7.8207253230401551e-05
+7.7508291229014514e-05
+7.6813589700684183e-05
+7.6123140263391210e-05
+7.5436934504900655e-05
+7.4754964004264404e-05
+7.4077220246211340e-05
+7.3403694478942088e-05
+7.2734377909502233e-05
+7.2069261504555766e-05
+7.1408335879568629e-05
+7.0751591620714686e-05
+7.0099019287771217e-05
+6.9450609417492890e-05
+6.8806352522213004e-05
+6.8166238907893927e-05
+6.7530258774012281e-05
+6.6898402235347252e-05
+6.6270659012452980e-05
+6.5647018710057853e-05
+6.5027470923592317e-05
+6.4412005224133157e-05
+6.3800611176741695e-05
+6.3193278227838951e-05
+6.2589995643078068e-05
+6.1990752658580759e-05
+6.1395538231080491e-05
+6.0804341063372636e-05
+6.0217149847334752e-05
+5.9633953259371663e-05
+5.9054739967551887e-05
+5.8479498600456970e-05
+5.7908217592262393e-05
+5.7340885317121313e-05
+5.6777490027359207e-05
+5.6218019640835348e-05
+5.5662462018387283e-05
+5.5110805013050509e-05
+5.4563036465460757e-05
+5.4019144209003570e-05
+5.3479115948602229e-05
+5.2942939267508398e-05
+5.2410601714706017e-05
+5.1882090552909350e-05
+5.1357392883829389e-05
+5.0836495807229995e-05
+5.0319386422088301e-05
+4.9806051827071372e-05
+4.9296479065059890e-05
+4.8790655018575118e-05
+4.8288566539418280e-05
+4.7790200328403674e-05
+4.7295542835998591e-05
+4.6804580489164042e-05
+4.6317299716115611e-05
+4.5833686946307129e-05
+4.5353728597234741e-05
+4.4877410963216105e-05
+4.4404720266267436e-05
+4.3935642679886297e-05
+4.3470164119114968e-05
+4.3008270411690800e-05
+4.2549947390009889e-05
+4.2095180900697196e-05
+4.1643956792278796e-05
+4.1196260850253110e-05
+4.0752078751068633e-05
+4.0311396153495141e-05
+3.9874198550932218e-05
+3.9440471266706799e-05
+3.9010199618323960e-05
+3.8583368944444955e-05
+3.8159964596688072e-05
+3.7739971908722149e-05
+3.7323376110861099e-05
+3.6910162396834686e-05
+3.6500315896279200e-05
+3.6093821536864038e-05
+3.5690664206708174e-05
+3.5290828808902120e-05
+3.4894300273572800e-05
+3.4501063531524572e-05
+3.4111103457050577e-05
+3.3724404863882143e-05
+3.3340952549113801e-05
+3.2960731153084396e-05
+3.2583725215980797e-05
+3.2209919283238890e-05
+3.1839297941424283e-05
+3.1471845792327130e-05
+3.1107547418535718e-05
+3.0746387339116144e-05
+3.0388350059348487e-05
+3.0033420009818698e-05
+2.9681581480293663e-05
+2.9332818746151175e-05
+2.8987116117093079e-05
+2.8644457941153303e-05
+2.8304828565295973e-05
+2.7968212298970301e-05
+2.7634593426626235e-05
+2.7303956211736581e-05
+2.6976284788826186e-05
+2.6651563242459823e-05
+2.6329775676250893e-05
+2.6010906260147483e-05
+2.5694939178328683e-05
+2.5381858600166655e-05
+2.5071648665883161e-05
+2.4764293509980249e-05
+2.4459777195798411e-05
+2.4158083703859549e-05
+2.3859197014961328e-05
+2.3563101173549364e-05
+2.3269780268299601e-05
+2.2979218386771765e-05
+2.2691399603259303e-05
+2.2406307986679090e-05
+2.2123927582296819e-05
+2.1844242349595971e-05
+2.1567236228871159e-05
+2.1292893200519792e-05
+2.1021197327405220e-05
+2.0752132682476118e-05
+2.0485683336616063e-05
+2.0221833358203820e-05
+1.9960566812013014e-05
+1.9701867715552131e-05
+1.9445720052082860e-05
+1.9192107816390410e-05
+1.8941015088524014e-05
+1.8692425984675665e-05
+1.8446324626232460e-05
+1.8202695153853002e-05
+1.7961521712681611e-05
+1.7722788430378324e-05
+1.7486479397037741e-05
+1.7252578699580288e-05
+1.7021070486860301e-05
+1.6791938986028989e-05
+1.6565168431281117e-05
+1.6340743086227644e-05
+1.6118647236699895e-05
+1.5898865165598118e-05
+1.5681381130442749e-05
+1.5466179377506725e-05
+1.5253244181653919e-05
+1.5042559932014731e-05
+1.4834111046289713e-05
+1.4627881959199843e-05
+1.4423857143685174e-05
+1.4222021077901665e-05
+1.4022358240268298e-05
+1.3824853109550652e-05
+1.3629490170321414e-05
+1.3436253996707982e-05
+1.3245129233353691e-05
+1.3056100534288563e-05
+1.2869152610954645e-05
+1.2684270201386126e-05
+1.2501438046423478e-05
+1.2320640898039370e-05
+1.2141863511302581e-05
+1.1965090691474075e-05
+1.1790307361641861e-05
+1.1617498462692670e-05
+1.1446648975739888e-05
+1.1277743937160095e-05
+1.1110768388822688e-05
+1.0945707397041343e-05
+1.0782546048191234e-05
+1.0621269443619599e-05
+1.0461862800866650e-05
+1.0304311393704990e-05
+1.0148600514810411e-05
+9.9947155381570183e-06
+9.8426418600493704e-06
+9.6923648930799237e-06
+9.5438700898253621e-06
+9.3971429104664028e-06
+9.2521688924986266e-06
+9.1089336841625100e-06
+8.9674229461212315e-06
+8.8276224075316915e-06
+8.6895178561361766e-06
+8.5530950875448302e-06
+8.4183399482685196e-06
+8.2852383105494721e-06
+8.1537760763188620e-06
+8.0239392831411452e-06
+7.8957140076316987e-06
+7.7690863627431233e-06
+7.6440425547359412e-06
+7.5205688053393577e-06
+7.3986513742792498e-06
+7.2782765780371456e-06
+7.1594307433404207e-06
+7.0421003026295415e-06
+6.9262717825752552e-06
+6.8119317236311157e-06
+6.6990667603206982e-06
+6.5876635768275813e-06
+6.4777088736846611e-06
+6.3691894281220059e-06
+6.2620920405504745e-06
+6.1564035625985762e-06
+6.0521109835180104e-06
+5.9492013164374170e-06
+5.8476616351393121e-06
+5.7474791078994035e-06
+5.6486409143233544e-06
+5.5511342975868535e-06
+5.4549465599147753e-06
+5.3600650194500320e-06
+5.2664771238146962e-06
+5.1741703919918394e-06
+5.0831323660126932e-06
+4.9933507007471896e-06
+4.9048130867064037e-06
+4.8175072469831599e-06
+4.7314209962801820e-06
+4.6465421664206969e-06
+4.5628586665983150e-06
+4.4803585317473608e-06
+4.3990298123159262e-06
+4.3188606453073753e-06
+4.2398392515055531e-06
+4.1619538639724762e-06
+4.0851928041689645e-06
+4.0095444444075823e-06
+3.9349971845402278e-06
+3.8615395673639686e-06
+3.7891601829537454e-06
+3.7178476618628091e-06
+3.6475907537743739e-06
+3.5783782309017703e-06
+3.5101989202199179e-06
+3.4430417415624121e-06
+3.3768956281722688e-06
+3.3117496163170025e-06
+3.2475928461775196e-06
+3.1844144728245005e-06
+3.1222037601132064e-06
+3.0609500372011868e-06
+3.0006426533073533e-06
+2.9412710644414619e-06
+2.8828247635996797e-06
+2.8252932898015248e-06
+2.7686663239259580e-06
+2.7129335748329404e-06
+2.6580848144556645e-06
+2.6041099263451320e-06
+2.5509988085886423e-06
+2.4987414376536750e-06
+2.4473278723871383e-06
+2.3967481865965492e-06
+2.3469925775015331e-06
+2.2980513196126269e-06
+2.2499147095454466e-06
+2.2025731662133894e-06
+2.1560171528565779e-06
+2.1102371678775909e-06
+2.0652238231148414e-06
+2.0209677539524132e-06
+1.9774596641753942e-06
+1.9346903839244249e-06
+1.8926507601508261e-06
+1.8513317259147326e-06
+1.8107243085851915e-06
+1.7708195486760509e-06
+1.7316085853287339e-06
+1.6930826221152018e-06
+1.6552328854762358e-06
+1.6180507354292889e-06
+1.5815275826563859e-06
+1.5456548745133016e-06
+1.5104241822264109e-06
+1.4758271036834771e-06
+1.4418552916507951e-06
+1.4085005047429168e-06
+1.3757545166905012e-06
+1.3436091915603834e-06
+1.3120564965236335e-06
+1.2810884126508603e-06
+1.2506970247238968e-06
+1.2208744881833206e-06
+1.1916129771472615e-06
+1.1629047774179093e-06
+1.1347422191159011e-06
+1.1071176692879376e-06
+1.0800236256563854e-06
+1.0534526153264642e-06
+1.0273972210831292e-06
+1.0018501378727461e-06
+9.7680407643850544e-07
+9.5225182243619667e-07
+9.2818625062664551e-07
+9.0460024895081940e-07
+8.8148681153063815e-07
+8.5883900792129770e-07
+8.3664992608178094e-07
+8.1491276777996113e-07
+7.9362078201873501e-07
+7.7276724822668807e-07
+7.5234555848003386e-07
+7.3234913138436723e-07
+7.1277144041566356e-07
+6.9360607451976485e-07
+6.7484663935352907e-07
+6.5648681462473922e-07
+6.3852037184160230e-07
+6.2094109464254114e-07
+6.0374285734228598e-07
+5.8691960141722672e-07
+5.7046528586152298e-07
+5.5437398319936329e-07
+5.3863981522372737e-07
+5.2325693275771341e-07
+5.0821959910096199e-07
+4.9352210521149486e-07
+4.7915878833261926e-07
+4.6512408749184813e-07
+4.5141245712614339e-07
+4.3801842330144346e-07
+4.2493660464080362e-07
+4.1216163174873064e-07
+3.9968822308376162e-07
+3.8751116493831758e-07
+3.7562525855594514e-07
+3.6402540405239366e-07
+3.5270654639499465e-07
+3.4166365769926316e-07
+3.3089182021652804e-07
+3.2038614453293207e-07
+3.1014178462424979e-07
+3.0015399420423704e-07
+2.9041804240691830e-07
+2.8092925998475778e-07
+2.7168306069144474e-07
+2.6267486935214044e-07
+2.5390019433066491e-07
+2.4535461122373090e-07
+2.3703370946853165e-07
+2.2893317261377944e-07
+2.2104872882124731e-07
+2.1337612922066069e-07
+2.0591122229885438e-07
+1.9864988276920903e-07
+1.9158802532413473e-07
+1.8472166074489069e-07
+1.7804681517618865e-07
+1.7155957175578695e-07
+1.6525609366114651e-07
+1.5913255432448884e-07
+1.5318519990130120e-07
+1.4741033754775188e-07
+1.4180428692100984e-07
+1.3636345581479259e-07
+1.3108429567102339e-07
+1.2596327852673192e-07
+1.2099696763607452e-07
+1.1618195197185202e-07
+1.1151485465221920e-07
+1.0699238462952301e-07
+1.0261126513261986e-07
+9.8368271216990268e-08
+9.4260253832393812e-08
+9.0284073597132277e-08
+8.6436657471502500e-08
+8.2714990410169815e-08
+7.9116068145879363e-08
+7.5636963642010332e-08
+7.2274789807598368e-08
+6.9026677730644591e-08
+6.5889842651163036e-08
+6.2861524652269557e-08
+5.9938993979776449e-08
+5.7119600203705775e-08
+5.4400706552852301e-08
+5.1779720800665736e-08
+4.9254118749354845e-08
+4.6821384977939569e-08
+4.4479063555764986e-08
+4.2224752746582711e-08
+4.0056060312604309e-08
+3.7970663404051913e-08
+3.5966276644434552e-08
+3.4040629954939668e-08
+3.2191527115727021e-08
+3.0416794739610496e-08
+2.8714285620128342e-08
+2.7081924600850623e-08
+2.5517649416720541e-08
+2.4019436671316659e-08
+2.2585324886137478e-08
+2.1213360543420037e-08
+1.9901641197219492e-08
+1.8648312883644057e-08
+1.7451529836748166e-08
+1.6309507476790886e-08
+1.5220495717755661e-08
+1.4182757438466144e-08
+1.3194620779634317e-08
+1.2254435005899468e-08
+1.1360571231369219e-08
+1.0511463505953941e-08
+9.7055576037841815e-09
+8.9413325172566921e-09
+8.2173224463535838e-09
+7.5320687447264445e-09
+6.8841565629867150e-09
+6.2722143756175531e-09
+5.6948775613058142e-09
+5.1508335235121018e-09
+4.6388002742145488e-09
+4.1575065705047128e-09
+3.7057375338445002e-09
+3.2822973862967631e-09
+2.8860084177897511e-09
+2.5157473995279538e-09
+2.1704016701691829e-09
+1.8488859736989098e-09
+1.5501625822896503e-09
+1.2732000147967612e-09
+1.0170033732917113e-09
+7.8061546899696691e-10
+5.6308484380320537e-10
+3.6350354485982102e-10
+1.8099032637389914e-10
+1.4672548545429826e-11
+-1.3627546936868258e-10
+-2.7266275024656482e-10
+-3.9528382991195867e-10
+-5.0488750797468422e-10
+-6.0221333597396640e-10
+-6.8797882378260001e-10
+-7.6286158288414739e-10
+-8.2753390276790322e-10
+-8.8263868201995115e-10
+-9.2878725004939148e-10
+-9.6658633440795455e-10
+-9.9660760714979580e-10
+-1.0194002909519847e-09
+-1.0355069445959775e-09
+-1.0454323509265971e-09
+-1.0496672683468547e-09
+-1.0486913508129087e-09
+-1.0429475465596612e-09
+-1.0328710599001687e-09
+-1.0188801725892387e-09
+-1.0013611865251173e-09
+-9.8069605821806763e-10
+-9.5724422942839702e-10
+-9.3133994089698013e-10
+-9.0331390985108754e-10
+-8.7347012681480689e-10
+-8.4209473082785116e-10
+-8.0946899233957288e-10
+-7.7584556357010515e-10
+-7.4146597990138126e-10
+-7.0656379979897780e-10
+-6.7134497527979303e-10
+-6.3600937757318318e-10
+-6.0074480106438108e-10
+-5.6571520747174019e-10
+-5.3108125220077397e-10
+-4.9698769727096257e-10
+-4.6356076557954093e-10
+-4.3092419425706439e-10
+-3.9918312791884149e-10
+-3.6842976100314282e-10
+-3.3875306989704607e-10
+-3.1022247204718535e-10
+-2.8289943729004926e-10
+-2.5684034725160403e-10
+-2.3208315104220607e-10
+-2.0866155668082571e-10
+-1.8660176653937907e-10
+-1.6591451140927956e-10
+-1.4660832879836142e-10
+-1.2868219531189791e-10
+-1.1212346449829611e-10
+-9.6918010632165211e-11
+-8.3041030981627503e-11
+-7.0459968757199869e-11
+-5.9140570625383693e-11
+-4.9037993032256869e-11
+-4.0102892250395505e-11
+-3.2283490574312497e-11
+-2.5518787255762682e-11
+-1.9745564597045351e-11
+-1.4897368121761779e-11
+-1.0900772131069591e-11
+-7.6813524655460033e-12
+-5.1612697246377435e-12
+-3.2583570799095183e-12
+-1.8899358167316257e-12
+-9.6992078664974236e-13
+-4.0964778738235245e-13
+-1.2038872383213664e-13
+-1.3415500901773921e-14
+ 29 0.6354600000E+02 0.3615000000E+01 fcc
+-2.6710598878820768e-05
+-4.3279198631095653e-02
+-8.5581719763644801e-02
+-1.2695123846455958e-01
+-1.6740471920187333e-01
+-2.0695912644361936e-01
+-2.4563142465783100e-01
+-2.8343857831254154e-01
+-3.2039755187578434e-01
+-3.5652530981559272e-01
+-3.9183881659999997e-01
+-4.2635484999373952e-01
+-4.6008944094834464e-01
+-4.9305843371204860e-01
+-5.2527763396447336e-01
+-5.5676239902513380e-01
+-5.8752779694896184e-01
+-6.1758888582075921e-01
+-6.4696041478214550e-01
+-6.7565665411280584e-01
+-7.0369183290000004e-01
+-7.3108004986077968e-01
+-7.5783488223136042e-01
+-7.8396977687774916e-01
+-8.0949814316352120e-01
+-8.3443295448648080e-01
+-8.5878690297619464e-01
+-8.8257267157188768e-01
+-9.0580267306051443e-01
+-9.2848890149300833e-01
+-9.5064331489999998e-01
+-9.7227775430594654e-01
+-9.9340359271061107e-01
+-1.0140320861075836e+00
+-1.0341744571878264e+00
+-1.0538415414992517e+00
+-1.0730439248200612e+00
+-1.0917921847671226e+00
+-1.1100966590470287e+00
+-1.1279673135054451e+00
+-1.1454140820000001e+00
+-1.1624467948371959e+00
+-1.1790748681190324e+00
+-1.1953076143963828e+00
+-1.2111543168016541e+00
+-1.2266239164775681e+00
+-1.2417251339283388e+00
+-1.2564666824628539e+00
+-1.2708570643089139e+00
+-1.2849044545186377e+00
+-1.2986169999999999e+00
+-1.3120027566652639e+00
+-1.3250694164438463e+00
+-1.3378245802694531e+00
+-1.3502758233615864e+00
+-1.3624304220121324e+00
+-1.3742954596564496e+00
+-1.3858780134419344e+00
+-1.3971849760947881e+00
+-1.4082229544883558e+00
+-1.4189985309064881e+00
+-1.4295182086316316e+00
+-1.4397881749406036e+00
+-1.4498145381088123e+00
+-1.4596033841124580e+00
+-1.4691605396994347e+00
+-1.4784916643735633e+00
+-1.4876024121998459e+00
+-1.4964982781582545e+00
+-1.5051845106469532e+00
+-1.5136663368527681e+00
+-1.5219489160324227e+00
+-1.5300371357222224e+00
+-1.5379358155283647e+00
+-1.5456497559701399e+00
+-1.5531835356815373e+00
+-1.5605415901447317e+00
+-1.5677283501967081e+00
+-1.5747481111149311e+00
+-1.5816049580595952e+00
+-1.5883029581162897e+00
+-1.5948461207599300e+00
+-1.6012382250227482e+00
+-1.6074829923263079e+00
+-1.6135841279894296e+00
+-1.6195451501365477e+00
+-1.6253694561215282e+00
+-1.6310604393881813e+00
+-1.6366213795474478e+00
+-1.6420553797693276e+00
+-1.6473655280461057e+00
+-1.6525548643559829e+00
+-1.6576262366208274e+00
+-1.6625824447484252e+00
+-1.6674262752738580e+00
+-1.6721603592745202e+00
+-1.6767872275325255e+00
+-1.6813094075990513e+00
+-1.6857293334643648e+00
+-1.6900492940993244e+00
+-1.6942715660000001e+00
+-1.6983983863229766e+00
+-1.7024318348668965e+00
+-1.7063739520909169e+00
+-1.7102267676335585e+00
+-1.7139921853434439e+00
+-1.7176720279144220e+00
+-1.7212681154310987e+00
+-1.7247821925782534e+00
+-1.7282158871709330e+00
+-1.7315708169708737e+00
+-1.7348485684531501e+00
+-1.7380506029461853e+00
+-1.7411783504917389e+00
+-1.7442332325933709e+00
+-1.7472165714980630e+00
+-1.7501296254162921e+00
+-1.7529736505121258e+00
+-1.7557498442015635e+00
+-1.7584593128410930e+00
+-1.7611031549541267e+00
+-1.7636824450290312e+00
+-1.7661981614139870e+00
+-1.7686512584221270e+00
+-1.7710426838776419e+00
+-1.7733733101707638e+00
+-1.7756439610246524e+00
+-1.7778554586220958e+00
+-1.7800085813906801e+00
+-1.7821040399374226e+00
+-1.7841425390353134e+00
+-1.7861247658495225e+00
+-1.7880513371139457e+00
+-1.7899228519546613e+00
+-1.7917399048425509e+00
+-1.7935030361318374e+00
+-1.7952127512627722e+00
+-1.7968695545853504e+00
+-1.7984739199481417e+00
+-1.8000262739225084e+00
+-1.8015270390129563e+00
+-1.8029766257178432e+00
+-1.8043753965109344e+00
+-1.8057237018598469e+00
+-1.8070218892165637e+00
+-1.8082702709763165e+00
+-1.8094691369170786e+00
+-1.8106187761173582e+00
+-1.8117194583050280e+00
+-1.8127714232144745e+00
+-1.8137749080000001e+00
+-1.8147301428498177e+00
+-1.8156373300877851e+00
+-1.8164966650716716e+00
+-1.8173083414754363e+00
+-1.8180725333987482e+00
+-1.8187894023127025e+00
+-1.8194591093238262e+00
+-1.8200818062931403e+00
+-1.8206576307511331e+00
+-1.8211867189955577e+00
+-1.8216692043229366e+00
+-1.8221052080248661e+00
+-1.8224948483917107e+00
+-1.8228382432075845e+00
+-1.8231355043714357e+00
+-1.8233867399853314e+00
+-1.8235920580663390e+00
+-1.8237515653284546e+00
+-1.8238653664659119e+00
+-1.8239335659992020e+00
+-1.8239562687769419e+00
+-1.8239335809602546e+00
+-1.8238656090383885e+00
+-1.8237524599334449e+00
+-1.8235942455994354e+00
+-1.8233910812367660e+00
+-1.8231430821783694e+00
+-1.8228503684624335e+00
+-1.8225130674202914e+00
+-1.8221313070106440e+00
+-1.8217052182482019e+00
+-1.8212349443717186e+00
+-1.8207206316759579e+00
+-1.8201624275349082e+00
+-1.8195604918685335e+00
+-1.8189149926909769e+00
+-1.8182260983094261e+00
+-1.8174939865196373e+00
+-1.8167188498246454e+00
+-1.8159008819926281e+00
+-1.8150402816124398e+00
+-1.8141372665556459e+00
+-1.8131920595144879e+00
+-1.8122048847146703e+00
+-1.8111759842083952e+00
+-1.8101056115488303e+00
+-1.8089940206885522e+00
+-1.8078414780436551e+00
+-1.8066482693486876e+00
+-1.8054146820000001e+00
+-1.8041410091561751e+00
+-1.8028275670247231e+00
+-1.8014746775753856e+00
+-1.8000826645667904e+00
+-1.7986518725533607e+00
+-1.7971826595061624e+00
+-1.7956753838430126e+00
+-1.7941304173701995e+00
+-1.7925481526461406e+00
+-1.7909289840143825e+00
+-1.7892733119157360e+00
+-1.7875815611800667e+00
+-1.7858541627345050e+00
+-1.7840915492866640e+00
+-1.7822941742422815e+00
+-1.7804625043607236e+00
+-1.7785970068328505e+00
+-1.7766981613855330e+00
+-1.7747664671764587e+00
+-1.7728024250347827e+00
+-1.7708065419107089e+00
+-1.7687793492386312e+00
+-1.7667213845739924e+00
+-1.7646331864021918e+00
+-1.7625153040193746e+00
+-1.7603682936963621e+00
+-1.7581927122795356e+00
+-1.7559891441742466e+00
+-1.7537582165022509e+00
+-1.7515005600598357e+00
+-1.7492167712017452e+00
+-1.7469073085165490e+00
+-1.7445725961512690e+00
+-1.7422130494404602e+00
+-1.7398289812737464e+00
+-1.7374206384472504e+00
+-1.7349882668220800e+00
+-1.7325321222519334e+00
+-1.7300524760790255e+00
+-1.7275496009779152e+00
+-1.7250237662882679e+00
+-1.7224752280101712e+00
+-1.7199042388088179e+00
+-1.7173110509855238e+00
+-1.7146959126115218e+00
+-1.7120590690289597e+00
+-1.7094007654709549e+00
+-1.7067212433578411e+00
+-1.7040207382001396e+00
+-1.7012994849999998e+00
+-1.6985577172656694e+00
+-1.6957956625297843e+00
+-1.6930135468310779e+00
+-1.6902115957512061e+00
+-1.6873900295582980e+00
+-1.6845490650924011e+00
+-1.6816889190822968e+00
+-1.6788098050088769e+00
+-1.6759119313188062e+00
+-1.6729955060256965e+00
+-1.6700607357299977e+00
+-1.6671078213795072e+00
+-1.6641369625088593e+00
+-1.6611483582326012e+00
+-1.6581422027817516e+00
+-1.6551186872366679e+00
+-1.6520780025745789e+00
+-1.6490203367357268e+00
+-1.6459458729530223e+00
+-1.6428547940544447e+00
+-1.6397472815443492e+00
+-1.6366235116325942e+00
+-1.6334836592054143e+00
+-1.6303278987547147e+00
+-1.6271564001883321e+00
+-1.6239693304566387e+00
+-1.6207668564139028e+00
+-1.6175491421056372e+00
+-1.6143163472237807e+00
+-1.6110686310857720e+00
+-1.6078061517276705e+00
+-1.6045290620600177e+00
+-1.6012375137119759e+00
+-1.5979316579487031e+00
+-1.5946116418038074e+00
+-1.5912776095808647e+00
+-1.5879297054928501e+00
+-1.5845680710467420e+00
+-1.5811928435552232e+00
+-1.5778041599701773e+00
+-1.5744021560409884e+00
+-1.5709869627070419e+00
+-1.5675587097052246e+00
+-1.5641175264235676e+00
+-1.5606635381946607e+00
+-1.5571968677346792e+00
+-1.5537176376731567e+00
+-1.5502259680575032e+00
+-1.5467219749328387e+00
+-1.5432057740000000e+00
+-1.5396774798190314e+00
+-1.5361372023868076e+00
+-1.5325850505594119e+00
+-1.5290211328572589e+00
+-1.5254455538986400e+00
+-1.5218584157843442e+00
+-1.5182598205332880e+00
+-1.5146498677694833e+00
+-1.5110286534048416e+00
+-1.5073962730319530e+00
+-1.5037528211261102e+00
+-1.5000983876934169e+00
+-1.4964330616226782e+00
+-1.4927569314862252e+00
+-1.4890700821773657e+00
+-1.4853725962158442e+00
+-1.4816645560434654e+00
+-1.4779460417991692e+00
+-1.4742171300524556e+00
+-1.4704778970657759e+00
+-1.4667284180778408e+00
+-1.4629687642323992e+00
+-1.4591990056494584e+00
+-1.4554192121373974e+00
+-1.4516294498819051e+00
+-1.4478297827314517e+00
+-1.4440202744612838e+00
+-1.4402009867905043e+00
+-1.4363719782511928e+00
+-1.4325333071012751e+00
+-1.4286850305464867e+00
+-1.4248272015837962e+00
+-1.4209598721579804e+00
+-1.4170830939576389e+00
+-1.4131969156933011e+00
+-1.4093013841541620e+00
+-1.4053965460609659e+00
+-1.4014824459488007e+00
+-1.3975591249649857e+00
+-1.3936266239654194e+00
+-1.3896849829479614e+00
+-1.3857342384783133e+00
+-1.3817744262641385e+00
+-1.3778055817468176e+00
+-1.3738277372722010e+00
+-1.3698409231890236e+00
+-1.3658451697816547e+00
+-1.3618405054696829e+00
+-1.3578269557822846e+00
+-1.3538045460000001e+00
+-1.3497733006096773e+00
+-1.3457332409233993e+00
+-1.3416843874595585e+00
+-1.3376267604938556e+00
+-1.3335603774807043e+00
+-1.3294852540543329e+00
+-1.3254014057913743e+00
+-1.3213088466329619e+00
+-1.3172075879852025e+00
+-1.3130976410361370e+00
+-1.3089790162547894e+00
+-1.3048517212341224e+00
+-1.3007157628480830e+00
+-1.2965711477608506e+00
+-1.2924178801980692e+00
+-1.2882559628121317e+00
+-1.2840853982057245e+00
+-1.2799061875723448e+00
+-1.2757183299212467e+00
+-1.2715218240737942e+00
+-1.2673166682078514e+00
+-1.2631028579272932e+00
+-1.2588803881924948e+00
+-1.2546492538023883e+00
+-1.2504094476791183e+00
+-1.2461609615339981e+00
+-1.2419037870367162e+00
+-1.2376379145702787e+00
+-1.2333633325233357e+00
+-1.2290800291129795e+00
+-1.2247879920692029e+00
+-1.2204872071736039e+00
+-1.2161776597206808e+00
+-1.2118593348657924e+00
+-1.2075322161467950e+00
+-1.2031962860579943e+00
+-1.1988515270607234e+00
+-1.1944979206814255e+00
+-1.1901354469974681e+00
+-1.1857640859615659e+00
+-1.1813838171293609e+00
+-1.1769946184682039e+00
+-1.1725964675483720e+00
+-1.1681893418428089e+00
+-1.1637732176929434e+00
+-1.1593480707101966e+00
+-1.1549138764823863e+00
+-1.1504706099112030e+00
+-1.1460182448348382e+00
+-1.1415567549999999e+00
+-1.1370861138809309e+00
+-1.1326062938620112e+00
+-1.1281172670551549e+00
+-1.1236190055146833e+00
+-1.1191114806253848e+00
+-1.1145946633400932e+00
+-1.1100685245963309e+00
+-1.1055330348449222e+00
+-1.1009881637823098e+00
+-1.0964338810400429e+00
+-1.0918701561591075e+00
+-1.0872969583182359e+00
+-1.0827142566055972e+00
+-1.0781220200655870e+00
+-1.0735202172337468e+00
+-1.0689088163173242e+00
+-1.0642877855173352e+00
+-1.0596570929892231e+00
+-1.0550167068177929e+00
+-1.0503665950817722e+00
+-1.0457067257926542e+00
+-1.0410370666929851e+00
+-1.0363575854580771e+00
+-1.0316682497850040e+00
+-1.0269690276238457e+00
+-1.0222598870879092e+00
+-1.0175407962928307e+00
+-1.0128117233307465e+00
+-1.0080726362573675e+00
+-1.0033235031252719e+00
+-9.9856429209358399e-01
+-9.9379497174761844e-01
+-9.8901551077923744e-01
+-9.8422587792435745e-01
+-9.7942604243103493e-01
+-9.7461597387773813e-01
+-9.6979564185116918e-01
+-9.6496501610160790e-01
+-9.6012406663288041e-01
+-9.5527276347062395e-01
+-9.5041107692474913e-01
+-9.4553897844226487e-01
+-9.4065643975445479e-01
+-9.3576343261442951e-01
+-9.3085992902905867e-01
+-9.2594590116892683e-01
+-9.2102132122088032e-01
+-9.1608616218387118e-01
+-9.1114039831561300e-01
+-9.0618400398209886e-01
+-9.0121695369472599e-01
+-8.9623922254650312e-01
+-8.9125078577584282e-01
+-8.8625161871801550e-01
+-8.8124169783428541e-01
+-8.7622100031236438e-01
+-8.7118950336400769e-01
+-8.6614718491722120e-01
+-8.6109402401019708e-01
+-8.5602999977662786e-01
+-8.5095509159876381e-01
+-8.4586927985309412e-01
+-8.4077254516466715e-01
+-8.3566486826995401e-01
+-8.3054623120073767e-01
+-8.2541661682448497e-01
+-8.2027600803616629e-01
+-8.1512438854535674e-01
+-8.0996174332426585e-01
+-8.0478805745371773e-01
+-7.9960331627723047e-01
+-7.9440750618910727e-01
+-7.8920061384634688e-01
+-7.8398262605354174e-01
+-7.7875353133108483e-01
+-7.7351331930633482e-01
+-7.6826197963393661e-01
+-7.6299950249868331e-01
+-7.5772587890710086e-01
+-7.5244109993640218e-01
+-7.4714515713303342e-01
+-7.4183804392038344e-01
+-7.3651975419107685e-01
+-7.3119028195121760e-01
+-7.2584962252613383e-01
+-7.2049777209226340e-01
+-7.1513472685147594e-01
+-7.0976048368037936e-01
+-7.0437504050142907e-01
+-6.9897839532704575e-01
+-6.9357054667539009e-01
+-6.8815149508759088e-01
+-6.8272124161051773e-01
+-6.7727978736639771e-01
+-6.7182713435347552e-01
+-6.6636328513517074e-01
+-6.6088824230225818e-01
+-6.5540200952161587e-01
+-6.4990459212808815e-01
+-6.4439599559999949e-01
+-6.3887622576999870e-01
+-6.3334528988802674e-01
+-6.2780319555835018e-01
+-6.2224995047673892e-01
+-6.1668556340268899e-01
+-6.1111004378197387e-01
+-6.0552340108898373e-01
+-5.9992564582882446e-01
+-5.9431679010421601e-01
+-5.8869684615530693e-01
+-5.8306582647778871e-01
+-5.7742374458952050e-01
+-5.7177061426390541e-01
+-5.6610644939739707e-01
+-5.6043126531690934e-01
+-5.5474507827223662e-01
+-5.4904790454119257e-01
+-5.4333976115987215e-01
+-5.3762066633970418e-01
+-5.3189063839322337e-01
+-5.2614969588489813e-01
+-5.2039785838692887e-01
+-5.1463514572345093e-01
+-5.0886157783900043e-01
+-5.0307717607777036e-01
+-4.9728196268696107e-01
+-4.9147595993683024e-01
+-4.8565919057808965e-01
+-4.7983167810615285e-01
+-4.7399344608049548e-01
+-4.6814451840396709e-01
+-4.6228492035291152e-01
+-4.5641467754704862e-01
+-4.5053381569081602e-01
+-4.4464236147350250e-01
+-4.3874034221978281e-01
+-4.3282778527120858e-01
+-4.2690471834645494e-01
+-4.2097116974873638e-01
+-4.1502716783155236e-01
+-4.0907274132223764e-01
+-4.0310792044347277e-01
+-3.9713273579177272e-01
+-3.9114721799710972e-01
+-3.8515139807837490e-01
+-3.7914530730537294e-01
+-3.7312897696240743e-01
+-3.6710243895270139e-01
+-3.6106572613880150e-01
+-3.5501887146577871e-01
+-3.4896190811240452e-01
+-3.4289487019225490e-01
+-3.3681779205260493e-01
+-3.3073070806010363e-01
+-3.2463365280659839e-01
+-3.1852666102922456e-01
+-3.1240976748015215e-01
+-3.0628300766825139e-01
+-3.0014641827527982e-01
+-2.9400003608388647e-01
+-2.8784389786267212e-01
+-2.8167804032403648e-01
+-2.7550250016632732e-01
+-2.6931731416841020e-01
+-2.6312252004515069e-01
+-2.5691815611528368e-01
+-2.5070426071119156e-01
+-2.4448087238011254e-01
+-2.3824803000231307e-01
+-2.3200577248670537e-01
+-2.2575413879532241e-01
+-2.1949316810267316e-01
+-2.1322289963638355e-01
+-2.0694337267601595e-01
+-2.0065462710487034e-01
+-1.9435670319575621e-01
+-1.8804964123148243e-01
+-1.8173348170543185e-01
+-1.7540826543737387e-01
+-1.6907403327515222e-01
+-1.6273082604564446e-01
+-1.5637868449185555e-01
+-1.5001764933582049e-01
+-1.4364776136213087e-01
+-1.3726906208257680e-01
+-1.3088159347810976e-01
+-1.2448539753348473e-01
+-1.1808051599261536e-01
+-1.1166699022610857e-01
+-1.0524486157245698e-01
+-9.8814171542922075e-02
+-9.2374962339832986e-02
+-8.5927276338286646e-02
+-7.9471155905863164e-02
+-7.3006643322783366e-02
+-6.6533780812906090e-02
+-6.0052610598516916e-02
+-5.3563174863982932e-02
+-4.7065515734894148e-02
+-4.0559675331785151e-02
+-3.4045695884603988e-02
+-2.7523620060962123e-02
+-2.0993490637886445e-02
+-1.4455350353438774e-02
+-7.9092414927363925e-03
+-1.3552060486731327e-03
+5.2067139869208618e-03
+1.1776476393696639e-02
+1.8354038597104529e-02
+2.4939357992125259e-02
+3.1532392032279019e-02
+3.8133098405234205e-02
+4.4741434857196741e-02
+5.1357359153328223e-02
+5.7980829279125262e-02
+6.4611803362237943e-02
+7.1250239530634932e-02
+7.7896095789289369e-02
+8.4549329952526189e-02
+9.1209899818270684e-02
+9.7877763340979529e-02
+1.0455287910122500e-01
+1.1123520583610880e-01
+1.1792470227110877e-01
+1.2462132699655110e-01
+1.3132503851556920e-01
+1.3803579533118734e-01
+1.4475355602711090e-01
+1.5147827931209623e-01
+1.5820992390565691e-01
+1.6494844870776326e-01
+1.7169381334020264e-01
+1.7844597760521783e-01
+1.8520490127717004e-01
+1.9197054380630837e-01
+1.9874286443377395e-01
+2.0552182240540889e-01
+2.1230737745822520e-01
+2.1909949009054283e-01
+2.2589812086617081e-01
+2.3270323030708209e-01
+2.3951477876789537e-01
+2.4633272656139188e-01
+2.5315703403290934e-01
+2.5998766190626421e-01
+2.6682457114944924e-01
+2.7366772274006079e-01
+2.8051707798772690e-01
+2.8737259871671922e-01
+2.9423424679558063e-01
+3.0110198404237520e-01
+3.0797577207325633e-01
+3.1485557245389734e-01
+3.2174134682345823e-01
+3.2863305767538653e-01
+3.3553066805427922e-01
+3.4243414101273989e-01
+3.4934343953256891e-01
+3.5625852648582468e-01
+3.6317936473512324e-01
+3.7010591725256098e-01
+3.7703814744815800e-01
+3.8397601884141286e-01
+3.9091949500324213e-01
+3.9786854010229966e-01
+4.0482311869287269e-01
+4.1178319533617569e-01
+4.1874873462337886e-01
+4.2571970119208702e-01
+4.3269605968389696e-01
+4.3967777483816212e-01
+4.4666481178526379e-01
+4.5365713575333794e-01
+4.6065471202961633e-01
+4.6765750658831295e-01
+4.7466548584685814e-01
+4.8167861622773250e-01
+4.8869686401332946e-01
+4.9572019526890948e-01
+5.0274857604105283e-01
+5.0978197264718694e-01
+5.1682035248812974e-01
+5.2386368323554389e-01
+5.3091193256077196e-01
+5.3796506813142053e-01
+5.4502305761268921e-01
+5.5208586867249398e-01
+5.5915346914427144e-01
+5.6622582711801772e-01
+5.7330291070579609e-01
+5.8038468825395850e-01
+5.8747112904600784e-01
+5.9456220259973647e-01
+6.0165787841431762e-01
+6.0875812577250188e-01
+6.1586291381741398e-01
+6.2297221169921779e-01
+6.3008598913016656e-01
+6.3720421669375049e-01
+6.4432686504840719e-01
+6.5145390485376453e-01
+6.5858530677422167e-01
+6.6572104147537203e-01
+6.7286107965145581e-01
+6.8000539232975243e-01
+6.8715395075240759e-01
+6.9430672617275224e-01
+7.0146369030050271e-01
+7.0862481555277057e-01
+7.1579007440752096e-01
+7.2295943928953332e-01
+7.3013288241085517e-01
+7.3731037593035254e-01
+7.4449189208114785e-01
+7.5167740395961968e-01
+7.5886688521908396e-01
+7.6606030952189585e-01
+7.7325765051568074e-01
+7.8045888182523604e-01
+7.8766397707339730e-01
+7.9487290997838589e-01
+8.0208565463997317e-01
+8.0930218525332021e-01
+8.1652247607271800e-01
+8.2374650203986766e-01
+8.3097423853995911e-01
+8.3820566096350024e-01
+8.4544074457643614e-01
+8.5267946445164300e-01
+8.5992179564539117e-01
+8.6716771345448018e-01
+8.7441719413783470e-01
+8.8167021419491010e-01
+8.8892675012249944e-01
+8.9618677838642347e-01
+9.0345027543252132e-01
+9.1071721770957581e-01
+9.1798758186281393e-01
+9.2526134484195477e-01
+9.3253848362291214e-01
+9.3981897537644377e-01
+9.4710279805268927e-01
+9.5438992979663340e-01
+9.6168034873213881e-01
+9.6897403273750227e-01
+9.7627095953259158e-01
+9.8357110684407623e-01
+9.9087445296501142e-01
+9.9818097706635378e-01
+1.0054906583945777e+00
+1.0128034761450193e+00
+1.0201194093084482e+00
+1.0274384368244929e+00
+1.0347605376672908e+00
+1.0420856912121133e+00
+1.0494138770930295e+00
+1.0567450749546441e+00
+1.0640792648149435e+00
+1.0714164272706492e+00
+1.0787565429682671e+00
+1.0860995924858061e+00
+1.0934455561272798e+00
+1.1007944141282033e+00
+1.1081461467883216e+00
+1.1155007351540236e+00
+1.1228581607534065e+00
+1.1302184051229316e+00
+1.1375814498192598e+00
+1.1449472764303545e+00
+1.1523158665468720e+00
+1.1596872017847324e+00
+1.1670612638608997e+00
+1.1744380345175995e+00
+1.1818174955602960e+00
+1.1891996295296086e+00
+1.1965844194404471e+00
+1.2039718483138002e+00
+1.2113618990611335e+00
+1.2187545544241456e+00
+1.2261497971299318e+00
+1.2335476099777078e+00
+1.2409479760551623e+00
+1.2483508785221031e+00
+1.2557563005953465e+00
+1.2631642261544409e+00
+1.2705746395064992e+00
+1.2779875249613490e+00
+1.2854028665640911e+00
+1.2928206479494937e+00
+1.3002408527170295e+00
+1.3076634647226693e+00
+1.3150884688483857e+00
+1.3225158502326482e+00
+1.3299455939935179e+00
+1.3373776850118084e+00
+1.3448121080152666e+00
+1.3522488477320116e+00
+1.3596878890655473e+00
+1.3671292171912268e+00
+1.3745728173077858e+00
+1.3820186747717809e+00
+1.3894667755710539e+00
+1.3969171058512664e+00
+1.4043696517301671e+00
+1.4118243990010351e+00
+1.4192813332478091e+00
+1.4267404400589603e+00
+1.4342017055041465e+00
+1.4416651163988705e+00
+1.4491306596227918e+00
+1.4565983220154284e+00
+1.4640680902557415e+00
+1.4715399509825489e+00
+1.4790138908434365e+00
+1.4864898965879063e+00
+1.4939679550312148e+00
+1.5014480529968031e+00
+1.5089301777335733e+00
+1.5164143171498941e+00
+1.5239004592108596e+00
+1.5313885917574039e+00
+1.5388787021338188e+00
+1.5463707775602331e+00
+1.5538648053219848e+00
+1.5613607734624504e+00
+1.5688586705140668e+00
+1.5763584850145782e+00
+1.5838602053312358e+00
+1.5913638195670274e+00
+1.5988693158022065e+00
+1.6063766822071928e+00
+1.6138859073130689e+00
+1.6213969797410852e+00
+1.6289098881402715e+00
+1.6364246214826195e+00
+1.6439411689484849e+00
+1.6514595197203674e+00
+1.6589796629011395e+00
+1.6665015874702538e+00
+1.6740252823965434e+00
+1.6815507367738032e+00
+1.6890779401956693e+00
+1.6966068823807410e+00
+1.7041375530478740e+00
+1.7116699419189432e+00
+1.7192040387177718e+00
+1.7267398331685400e+00
+1.7342773150149782e+00
+1.7418164740311204e+00
+1.7493572999936087e+00
+1.7568997828317490e+00
+1.7644439130855094e+00
+1.7719896814475262e+00
+1.7795370785784168e+00
+1.7870860947666110e+00
+1.7946367200604154e+00
+1.8021889445112338e+00
+1.8097427585962396e+00
+1.8172981534525539e+00
+1.8248551202740695e+00
+1.8324136501975521e+00
+1.8399737341312665e+00
+1.8475353629263553e+00
+1.8550985274372704e+00
+1.8626632185569723e+00
+1.8702294272032640e+00
+1.8777971443008150e+00
+1.8853663611613258e+00
+1.8929370696963983e+00
+1.9005092618692403e+00
+1.9080829295015480e+00
+1.9156580638489802e+00
+1.9232346560256848e+00
+1.9308126972034994e+00
+1.9383921792248693e+00
+1.9459730943648925e+00
+1.9535554349035893e+00
+1.9611391929835262e+00
+1.9687243605342228e+00
+1.9763109294668704e+00
+1.9838988917187621e+00
+1.9914882393315934e+00
+1.9990789643731557e+00
+2.0066710589465737e+00
+2.0142645155656522e+00
+2.0218593270091567e+00
+2.0294554860586458e+00
+2.0370529853982151e+00
+2.0446518175609052e+00
+2.0522519750667616e+00
+2.0598534504379042e+00
+2.0674562362047695e+00
+2.0750603248998707e+00
+2.0826657091061884e+00
+2.0902723819934179e+00
+2.0978803371097792e+00
+2.1054895680035073e+00
+2.1131000678455427e+00
+2.1207118292220115e+00
+2.1283248446687284e+00
+2.1359391069504059e+00
+2.1435546097473139e+00
+2.1511713469686184e+00
+2.1587893124895103e+00
+2.1664084997902071e+00
+2.1740289020961137e+00
+2.1816505126298664e+00
+2.1892733247027536e+00
+2.1968973317634903e+00
+2.2045225272726112e+00
+2.2121489048345397e+00
+2.2197764586292759e+00
+2.2274051829807111e+00
+2.2350350721667760e+00
+2.2426661199311479e+00
+2.2502983196728206e+00
+2.2579316647922871e+00
+2.2655661491248504e+00
+2.2732017671797551e+00
+2.2808385135242242e+00
+2.2884763826489944e+00
+2.2961153687388527e+00
+2.3037554659021042e+00
+2.3113966682472591e+00
+2.3190389698852183e+00
+2.3266823649284318e+00
+2.3343268474950993e+00
+2.3419724120468182e+00
+2.3496190535774648e+00
+2.3572667671267018e+00
+2.3649155475763921e+00
+2.3725653891772214e+00
+2.3802162860220775e+00
+2.3878682322615936e+00
+2.3955212227177229e+00
+2.4031752526455206e+00
+2.4108303173036765e+00
+2.4184864117356000e+00
+2.4261435306510104e+00
+2.4338016687309274e+00
+2.4414608206847452e+00
+2.4491209813353496e+00
+2.4567821455340040e+00
+2.4644443081670016e+00
+2.4721074645278307e+00
+2.4797716101726963e+00
+2.4874367406577131e+00
+2.4951028512709494e+00
+2.5027699368850138e+00
+2.5104379923367750e+00
+2.5181070125987914e+00
+2.5257769931864038e+00
+2.5334479297506411e+00
+2.5411198179332204e+00
+2.5487926532675602e+00
+2.5564664312172054e+00
+2.5641411472430669e+00
+2.5718167967177150e+00
+2.5794933748767823e+00
+2.5871708769441293e+00
+2.5948492983069249e+00
+2.6025286350055747e+00
+2.6102088832438008e+00
+2.6178900391804958e+00
+2.6255720984534365e+00
+2.6332550563642005e+00
+2.6409389082146344e+00
+2.6486236496589055e+00
+2.6563092768972938e+00
+2.6639957861770478e+00
+2.6716831736809770e+00
+2.6793714353341049e+00
+2.6870605669970065e+00
+2.6947505645266632e+00
+2.7024414237382564e+00
+2.7101331404199911e+00
+2.7178257103648091e+00
+2.7255191296764383e+00
+2.7332133949403206e+00
+2.7409085027833426e+00
+2.7486044497208244e+00
+2.7563012318218236e+00
+2.7639988450438371e+00
+2.7716972853540534e+00
+2.7793965488323797e+00
+2.7870966316314427e+00
+2.7947975299093555e+00
+2.8024992400809903e+00
+2.8102017589591890e+00
+2.8179050833910231e+00
+2.8256092100836940e+00
+2.8333141351849100e+00
+2.8410198547025001e+00
+2.8487263646915788e+00
+2.8564336617568888e+00
+2.8641417428577682e+00
+2.8718506049565478e+00
+2.8795602448402366e+00
+2.8872706590240922e+00
+2.8949818440000015e+00
+2.9026937962496886e+00
+2.9104065122142542e+00
+2.9181199883246407e+00
+2.9258342210551653e+00
+2.9335492073844214e+00
+2.9412649446163384e+00
+2.9489814300541153e+00
+2.9566986606321128e+00
+2.9644166327129824e+00
+2.9721353426101906e+00
+2.9798547868157317e+00
+2.9875749625356880e+00
+2.9952958671546606e+00
+3.0030174980273285e+00
+3.0107398521605004e+00
+3.0184629263365457e+00
+3.0261867173342791e+00
+3.0339112219432733e+00
+3.0416364369697884e+00
+3.0493623592215204e+00
+3.0570889856416676e+00
+3.0648163137154625e+00
+3.0725443410636446e+00
+3.0802730652583632e+00
+3.0880024833069695e+00
+3.0957325918524239e+00
+3.1034633875383069e+00
+3.1111948674100445e+00
+3.1189270291359166e+00
+3.1266598704377757e+00
+3.1343933889258162e+00
+3.1421275817635794e+00
+3.1498624460029365e+00
+3.1575979787010384e+00
+3.1653341769763115e+00
+3.1730710379867251e+00
+3.1808085588954040e+00
+3.1885467371352241e+00
+3.1962855705571882e+00
+3.2040250570482667e+00
+3.2117651943213699e+00
+3.2195059793931895e+00
+3.2272474091063614e+00
+3.2349894803650683e+00
+3.2427321907890319e+00
+3.2504755384596087e+00
+3.2582195214611152e+00
+3.2659641375941213e+00
+3.2737093842193818e+00
+3.2814552586598147e+00
+3.2892017582389341e+00
+3.2969488802826139e+00
+3.3046966221173242e+00
+3.3124449811146381e+00
+3.3201939551704513e+00
+3.3279435425189381e+00
+3.3356937413925487e+00
+3.3434445495819176e+00
+3.3511959641928803e+00
+3.3589479822723636e+00
+3.3667006010887288e+00
+3.3744538187960980e+00
+3.3822076337700326e+00
+3.3899620443394975e+00
+3.3977170482918142e+00
+3.4054726430648570e+00
+3.4132288260925514e+00
+3.4209855949216661e+00
+3.4287429472738635e+00
+3.4365008808858559e+00
+3.4442593935834056e+00
+3.4520184835484753e+00
+3.4597781490520814e+00
+3.4675383883264401e+00
+3.4752991991526887e+00
+3.4830605790209535e+00
+3.4908225254219816e+00
+3.4985850361747723e+00
+3.5063481096071238e+00
+3.5141117440906036e+00
+3.5218759379050208e+00
+3.5296406889631853e+00
+3.5374059950861469e+00
+3.5451718540941188e+00
+3.5529382637975178e+00
+3.5607052220004345e+00
+3.5684727265106768e+00
+3.5762407753650316e+00
+3.5840093669552013e+00
+3.5917784997034219e+00
+3.5995481719799653e+00
+3.6073183819472381e+00
+3.6150891277156845e+00
+3.6228604073769306e+00
+3.6306322188038322e+00
+3.6384045597281083e+00
+3.6461774278854566e+00
+3.6539508213914225e+00
+3.6617247389503249e+00
+3.6694991793171248e+00
+3.6772741410651122e+00
+3.6850496220408768e+00
+3.6928256199093283e+00
+3.7006021323907929e+00
+3.7083791578497620e+00
+3.7161566950663114e+00
+3.7239347428221321e+00
+3.7317132995799067e+00
+3.7394923633078556e+00
+3.7472719319316674e+00
+3.7550520034335819e+00
+3.7628325760220362e+00
+3.7706136479620214e+00
+3.7783952175420175e+00
+3.7861772833235467e+00
+3.7939598440442981e+00
+3.8017428984393038e+00
+3.8095264449085078e+00
+3.8173104813324548e+00
+3.8250950055470074e+00
+3.8328800155697786e+00
+3.8406655101453699e+00
+3.8484514882001251e+00
+3.8562379486230691e+00
+3.8640248898693454e+00
+3.8718123101141679e+00
+3.8796002075287634e+00
+3.8873885803247457e+00
+3.8951774267763262e+00
+3.9029667451631052e+00
+3.9107565338718757e+00
+3.9185467917181969e+00
+3.9263375176248259e+00
+3.9341287104721978e+00
+3.9419203686488355e+00
+3.9497124902258967e+00
+3.9575050732747448e+00
+3.9652981161968284e+00
+3.9730916179052187e+00
+3.9808855773569927e+00
+3.9886799934005084e+00
+3.9964748644492247e+00
+4.0042701888078733e+00
+4.0120659647918968e+00
+4.0198621908412235e+00
+4.0276588654760888e+00
+4.0354559872207432e+00
+4.0432535547596347e+00
+4.0510515670255227e+00
+4.0588500229725302e+00
+4.0666489214266726e+00
+4.0744482607015566e+00
+4.0822480389826845e+00
+4.0900482545004229e+00
+4.0978489060067496e+00
+4.1056499925901564e+00
+4.1134515133407561e+00
+4.1212534671093932e+00
+4.1290558523760454e+00
+4.1368586675887826e+00
+4.1446619112244454e+00
+4.1524655818749343e+00
+4.1602696781609119e+00
+4.1680741987248364e+00
+4.1758791424624766e+00
+4.1836845084330250e+00
+4.1914902956937281e+00
+4.1992965030212046e+00
+4.2071031287571197e+00
+4.2149101712057213e+00
+4.2227176288135961e+00
+4.2305255005967064e+00
+4.2383337857133609e+00
+4.2461424833002894e+00
+4.2539515922434843e+00
+4.2617611112671607e+00
+4.2695710390910646e+00
+4.2773813743285158e+00
+4.2851921154278756e+00
+4.2930032608233120e+00
+4.3008148091052973e+00
+4.3086267594894974e+00
+4.3164391113478811e+00
+4.3242518640117069e+00
+4.3320650163389320e+00
+4.3398785668821711e+00
+4.3476925141902232e+00
+4.3555068568884323e+00
+4.3633215937207996e+00
+4.3711367234415306e+00
+4.3789522448853839e+00
+4.3867681572093495e+00
+4.3945844596509760e+00
+4.4024011514085055e+00
+4.4102182312233369e+00
+4.4180356975421251e+00
+4.4258535488125448e+00
+4.4336717838383608e+00
+4.4414904019752655e+00
+4.4493094026264348e+00
+4.4571287850845245e+00
+4.4649485482001108e+00
+4.4727686907132540e+00
+4.4805892113571195e+00
+4.4884101087846808e+00
+4.4962313815971831e+00
+4.5040530284015521e+00
+4.5118750481971013e+00
+4.5196974405913597e+00
+4.5275202052441763e+00
+4.5353433415726307e+00
+4.5431668480227527e+00
+4.5509907227978053e+00
+4.5588149641785112e+00
+4.5666395713461094e+00
+4.5744645440628053e+00
+4.5822898820924971e+00
+4.5901155847193280e+00
+4.5979416504838149e+00
+4.6057680778625132e+00
+4.6135948654397581e+00
+4.6214220122310108e+00
+4.6292495173595194e+00
+4.6370773799567386e+00
+4.6449055992495474e+00
+4.6527341745263913e+00
+4.6605631050729626e+00
+4.6683923899480178e+00
+4.6762220278585822e+00
+4.6840520174814229e+00
+4.6918823576107398e+00
+4.6997130475105005e+00
+4.7075440865621045e+00
+4.7153754741320659e+00
+4.7232072094137862e+00
+4.7310392914889778e+00
+4.7388717194352745e+00
+4.7467044921970709e+00
+4.7545376085122371e+00
+4.7623710671008812e+00
+4.7702048668381458e+00
+4.7780390072193093e+00
+4.7858734878946914e+00
+4.7937083084632039e+00
+4.8015434679261624e+00
+4.8093789648993415e+00
+4.8172147979982904e+00
+4.8250509662104246e+00
+4.8328874690995702e+00
+4.8407243062791325e+00
+4.8485614772382952e+00
+4.8563989809693515e+00
+4.8642368163403651e+00
+4.8720749822264562e+00
+4.8799134775847071e+00
+4.8877523014250732e+00
+4.8955914527624715e+00
+4.9034309308562358e+00
+4.9112707353445479e+00
+4.9191108658981824e+00
+4.9269513220030463e+00
+4.9347921024055852e+00
+4.9426332056673825e+00
+4.9504746304103495e+00
+4.9583163759577120e+00
+4.9661584420851641e+00
+4.9740008285703929e+00
+4.9818435348585250e+00
+4.9896865598792113e+00
+4.9975299025177575e+00
+5.0053735616945332e+00
+5.0132175364701412e+00
+5.0210618259402411e+00
+5.0289064292272725e+00
+5.0367513457649427e+00
+5.0445965751877724e+00
+5.0524421171282858e+00
+5.0602879708979867e+00
+5.0681341353107969e+00
+5.0759806091378383e+00
+5.0838273912925871e+00
+5.0916744812579102e+00
+5.0995218786590355e+00
+5.1073695830975439e+00
+5.1152175939002280e+00
+5.1230659102165976e+00
+5.1309145311924098e+00
+5.1387634559259343e+00
+5.1466126834418269e+00
+5.1544622127584070e+00
+5.1623120430052154e+00
+5.1701621737566601e+00
+5.1780126046983614e+00
+5.1858633354892083e+00
+5.1937143654772582e+00
+5.2015656938100303e+00
+5.2094173196306146e+00
+5.2172692420165463e+00
+5.2251214599437583e+00
+5.2329739723794457e+00
+5.2408267784449842e+00
+5.2486798778784918e+00
+5.2565332705722714e+00
+5.2643869563593988e+00
+5.2722409343844756e+00
+5.2800952033479271e+00
+5.2879497619498750e+00
+5.2958046093167583e+00
+5.3036597452357963e+00
+5.3115151695510470e+00
+5.3193708819926346e+00
+5.3272268818349309e+00
+5.3350831682383681e+00
+5.3429397403587879e+00
+5.3507965972986113e+00
+5.3586537381258079e+00
+5.3665111619122845e+00
+5.3743688680008805e+00
+5.3822268561543893e+00
+5.3900851261717282e+00
+5.3979436777131653e+00
+5.4058025098843920e+00
+5.4136616216524560e+00
+5.4215210120181583e+00
+5.4293806803747549e+00
+5.4372406263686965e+00
+5.4451008496487097e+00
+5.4529613497472207e+00
+5.4608221260163887e+00
+5.4686831777928582e+00
+5.4765445043641057e+00
+5.4844061048208896e+00
+5.4922679782047963e+00
+5.5001301235991917e+00
+5.5079925405731096e+00
+5.5158552290089293e+00
+5.5237181887885427e+00
+5.5315814194513102e+00
+5.5394449200056783e+00
+5.5473086894144261e+00
+5.5551727267699311e+00
+5.5630370316830016e+00
+5.5709016038940513e+00
+5.5787664431220652e+00
+5.5866315488369862e+00
+5.5944969203480834e+00
+5.6023625569604922e+00
+5.6102284578923811e+00
+5.6180946222271011e+00
+5.6259610490364143e+00
+5.6338277375668957e+00
+5.6416946877643763e+00
+5.6495618997495063e+00
+5.6574293735702650e+00
+5.6652971084298089e+00
+5.6731651029862586e+00
+5.6810333558976911e+00
+5.6889018663646471e+00
+5.6967706344285016e+00
+5.7046396602029565e+00
+5.7125089436327272e+00
+5.7203784839865932e+00
+5.7282482803643520e+00
+5.7361183318788092e+00
+5.7439886377940663e+00
+5.7518591974718243e+00
+5.7597300102781679e+00
+5.7676010757441869e+00
+5.7754723936567238e+00
+5.7833439638246302e+00
+5.7912157859148250e+00
+5.7990878590265105e+00
+5.8069601821169616e+00
+5.8148327541950433e+00
+5.8227055748693273e+00
+5.8305786441353034e+00
+5.8384519619901987e+00
+5.8463255281487516e+00
+5.8541993418878473e+00
+5.8620734024467103e+00
+5.8699477090648680e+00
+5.8778222609831063e+00
+5.8856970574425151e+00
+5.8935720977214743e+00
+5.9014473815317805e+00
+5.9093229088648513e+00
+5.9171986797104932e+00
+5.9250746936818768e+00
+5.9329509498083839e+00
+5.9408274470691831e+00
+5.9487041845950070e+00
+5.9565811621228368e+00
+5.9644583795412238e+00
+5.9723358367119967e+00
+5.9802135331863528e+00
+5.9880914683150888e+00
+5.9959696414460257e+00
+6.0038480519491362e+00
+6.0117266992287224e+00
+6.0196055826920354e+00
+6.0274847017966087e+00
+6.0353640562010922e+00
+6.0432436456144067e+00
+6.0511234697339891e+00
+6.0590035281236680e+00
+6.0668838202610731e+00
+6.0747643456209044e+00
+6.0826451035880655e+00
+6.0905260934082683e+00
+6.0984073143152582e+00
+6.1062887656891647e+00
+6.1141704474956624e+00
+6.1220523598468182e+00
+6.1299345027922456e+00
+6.1378168756555995e+00
+6.1456994772921743e+00
+6.1535823065574089e+00
+6.1614653627841234e+00
+6.1693486460450648e+00
+6.1772321564766273e+00
+6.1851158940755830e+00
+6.1929998582801868e+00
+6.2008840483890637e+00
+6.2087684637035894e+00
+6.2166531035570838e+00
+6.2245379673034726e+00
+6.2324230543008241e+00
+6.2403083641349761e+00
+6.2481938967448079e+00
+6.2560796520995705e+00
+6.2639656300297624e+00
+6.2718518298108856e+00
+6.2797382505796957e+00
+6.2876248915121939e+00
+6.2955117522406958e+00
+6.3033988326919088e+00
+6.3112861327938088e+00
+6.3191736522563824e+00
+6.3270613904517266e+00
+6.3349493467228672e+00
+6.3428375204461949e+00
+6.3507259111315317e+00
+6.3586145183220539e+00
+6.3665033415744627e+00
+6.3743923806026279e+00
+6.3822816352218101e+00
+6.3901711052453676e+00
+6.3980607902705708e+00
+6.4059506895597718e+00
+6.4138408023465123e+00
+6.4217311279954457e+00
+6.4296216663956995e+00
+6.4375124175675165e+00
+6.4454033814914320e+00
+6.4532945576864265e+00
+6.4611859453737024e+00
+6.4690775437720918e+00
+6.4769693522564440e+00
+6.4848613704434230e+00
+6.4927535979704896e+00
+6.5006460345172590e+00
+6.5085386799319425e+00
+6.5164315341048988e+00
+6.5243245968909243e+00
+6.5322178677313492e+00
+6.5401113458007609e+00
+6.5480050302746564e+00
+6.5558989206499367e+00
+6.5637930169216885e+00
+6.5716873191278511e+00
+6.5795818271952626e+00
+6.5874765406063682e+00
+6.5953714587325152e+00
+6.6032665809506623e+00
+6.6111619067030665e+00
+6.6190574354741116e+00
+6.6269531667521830e+00
+6.6348491002239856e+00
+6.6427452358836083e+00
+6.6506415737515781e+00
+6.6585381136993949e+00
+6.6664348550024171e+00
+6.6743317967869720e+00
+6.6822289382266105e+00
+6.6901262790438096e+00
+6.6980238193152006e+00
+6.7059215591191013e+00
+6.7138194982807597e+00
+6.7217176362331825e+00
+6.7296159723756324e+00
+6.7375145061225883e+00
+6.7454132369494122e+00
+6.7533121643466885e+00
+6.7612112878286892e+00
+6.7691106071851372e+00
+6.7770101223834542e+00
+6.7849098333910245e+00
+6.7928097399950449e+00
+6.8007098417034113e+00
+6.8086101379999997e+00
+6.8165106283590626e+00
+6.8244113122163581e+00
+6.8323121889980243e+00
+6.8402132581656225e+00
+6.8481145195924773e+00
+6.8560159734175725e+00
+6.8639176197773804e+00
+6.8718194583917267e+00
+6.8797214883346607e+00
+6.8876237086246750e+00
+6.8955261184818859e+00
+6.9034287179329166e+00
+6.9113315072060093e+00
+6.9192344864890529e+00
+6.9271376555007667e+00
+6.9350410136571776e+00
+6.9429445603695727e+00
+6.9508482950672459e+00
+6.9587522172074019e+00
+6.9666563262496481e+00
+6.9745606217573615e+00
+6.9824651037089698e+00
+6.9903697721866731e+00
+6.9982746272306020e+00
+7.0061796683918498e+00
+7.0140848949060048e+00
+7.0219903060087034e+00
+7.0298959012538491e+00
+7.0378016806886770e+00
+7.0457076444028521e+00
+7.0536137923760824e+00
+7.0615201241482346e+00
+7.0694266391492073e+00
+7.0773333368134681e+00
+7.0852402166285211e+00
+7.0931472781160787e+00
+7.1010545208022231e+00
+7.1089619444404590e+00
+7.1168695491368039e+00
+7.1247773350275994e+00
+7.1326853020787171e+00
+7.1405934495741343e+00
+7.1485017766273620e+00
+7.1564102824044964e+00
+7.1643189666829397e+00
+7.1722278296344992e+00
+7.1801368714334579e+00
+7.1880460920089027e+00
+7.1959554909098546e+00
+7.2038650676526350e+00
+7.2117748217361299e+00
+7.2196847525894592e+00
+7.2275948596243014e+00
+7.2355051422896919e+00
+7.2434156004689356e+00
+7.2513262343255036e+00
+7.2592370440219307e+00
+7.2671480293841544e+00
+7.2750591897163845e+00
+7.2829705242779532e+00
+7.2908820324597814e+00
+7.2987937141791388e+00
+7.3067055694848921e+00
+7.3146175984020019e+00
+7.3225298006776489e+00
+7.3304421758797966e+00
+7.3383547235730671e+00
+7.3462674433011275e+00
+7.3541803345751600e+00
+7.3620933969035454e+00
+7.3700066298860181e+00
+7.3779200334876993e+00
+7.3858336077650488e+00
+7.3937473527364759e+00
+7.4016612679779383e+00
+7.4095753527799424e+00
+7.4174896064339872e+00
+7.4254040285762732e+00
+7.4333186193772880e+00
+7.4412333790534859e+00
+7.4491483076776737e+00
+7.4570634047480970e+00
+7.4649786696193612e+00
+7.4728941016629262e+00
+7.4808097004462946e+00
+7.4887254656634372e+00
+7.4966413970123176e+00
+7.5045574943041569e+00
+7.5124737575257212e+00
+7.5203901866788723e+00
+7.5283067816513096e+00
+7.5362235418740600e+00
+7.5441404666639773e+00
+7.5520575553788811e+00
+7.5599748078527016e+00
+7.5678922242265516e+00
+7.5758098046423177e+00
+7.5837275489813472e+00
+7.5916454567211566e+00
+7.5995635273045270e+00
+7.6074817602233358e+00
+7.6154001551658830e+00
+7.6233187118695751e+00
+7.6312374300803443e+00
+7.6391563096433259e+00
+7.6470753504676523e+00
+7.6549945524618659e+00
+7.6629139154354009e+00
+7.6708334390440625e+00
+7.6787531229304387e+00
+7.6866729667130347e+00
+7.6945929699140052e+00
+7.7025131320314193e+00
+7.7104334525971039e+00
+7.7183539315352832e+00
+7.7262745690233450e+00
+7.7341953652373503e+00
+7.7421163200203553e+00
+7.7500374326992700e+00
+7.7579587025566052e+00
+7.7658801290116610e+00
+7.7738017120309140e+00
+7.7817234517176326e+00
+7.7896453481526775e+00
+7.7975674011564635e+00
+7.8054896103813718e+00
+7.8134119754756783e+00
+7.8213344960096176e+00
+7.8292571714324461e+00
+7.8371800011830164e+00
+7.8451029848352594e+00
+7.8530261225033957e+00
+7.8609494144367282e+00
+7.8688728608343883e+00
+7.8767964613122565e+00
+7.8847202151099340e+00
+7.8926441214669145e+00
+7.9005681799925407e+00
+7.9084923908694362e+00
+7.9164167543295374e+00
+7.9243412704841978e+00
+7.9322659389624555e+00
+7.9401907592727685e+00
+7.9481157309256663e+00
+7.9560408534558169e+00
+7.9639661264134469e+00
+7.9718915493534777e+00
+7.9798171220964571e+00
+7.9877428448746546e+00
+7.9956687179557608e+00
+8.0035947414312680e+00
+8.0115209146878659e+00
+8.0194472369360508e+00
+8.0273737074323410e+00
+8.0353003259683078e+00
+8.0432270926807252e+00
+8.0511540077095507e+00
+8.0590810710409553e+00
+8.0670082824227460e+00
+8.0749356415822255e+00
+8.0828631481941997e+00
+8.0907908017235144e+00
+8.0987186015825152e+00
+8.1066465472262692e+00
+8.1145746386063387e+00
+8.1225028759946163e+00
+8.1304312596623660e+00
+8.1383597895229229e+00
+8.1462884649348357e+00
+8.1542172852089259e+00
+8.1621462497801005e+00
+8.1700753585795916e+00
+8.1780046116627130e+00
+8.1859340090728701e+00
+8.1938635507150224e+00
+8.2017932364048054e+00
+8.2097230659532876e+00
+8.2176530389862812e+00
+8.2255831548424752e+00
+8.2335134128358529e+00
+8.2414438124650200e+00
+8.2493743539670277e+00
+8.2573050377635404e+00
+8.2652358642137145e+00
+8.2731668329499914e+00
+8.2810979431359666e+00
+8.2890291939349101e+00
+8.2969605849593240e+00
+8.3048921165180065e+00
+8.3128237889796619e+00
+8.3207556025455371e+00
+8.3286875567470702e+00
+8.3366196509482453e+00
+8.3445518845360116e+00
+8.3524842571643330e+00
+8.3604167686594320e+00
+8.3683494188511176e+00
+8.3762822076122152e+00
+8.3842151348822362e+00
+8.3921482006064192e+00
+8.4000814046952481e+00
+8.4080147469201929e+00
+8.4159482270179549e+00
+8.4238818447170889e+00
+8.4318155996513404e+00
+8.4397494913932860e+00
+8.4476835195178523e+00
+8.4556176838018118e+00
+8.4635519843348082e+00
+8.4714864212333989e+00
+8.4794209945065777e+00
+8.4873557037330833e+00
+8.4952905483840908e+00
+8.5032255279598363e+00
+8.5111606422984263e+00
+8.5190958914559474e+00
+8.5270312754905042e+00
+8.5349667943636636e+00
+8.5429024478873448e+00
+8.5508382358605939e+00
+8.5587741580108787e+00
+8.5667102137793432e+00
+8.5746464025355511e+00
+8.5825827236987671e+00
+8.5905191772660530e+00
+8.5984557636072338e+00
+8.6063924830916125e+00
+8.6143293356838573e+00
+8.6222663207214705e+00
+8.6302034374880048e+00
+8.6381406854241511e+00
+8.6460780645991768e+00
+8.6540155752394927e+00
+8.6619532175427523e+00
+8.6698909913723980e+00
+8.6778288963762513e+00
+8.6857669321976285e+00
+8.6937050984256992e+00
+8.7016433945656928e+00
+8.7095818201156181e+00
+8.7175203747139687e+00
+8.7254590585611904e+00
+8.7333978719982071e+00
+8.7413368153143427e+00
+8.7492758881989747e+00
+8.7572150899544283e+00
+8.7651544198822293e+00
+8.7730938776231842e+00
+8.7810334633439862e+00
+8.7889731772565654e+00
+8.7969130194858831e+00
+8.8048529898090315e+00
+8.8127930879161376e+00
+8.8207333134874730e+00
+8.8286736660888536e+00
+8.8366141452122413e+00
+8.8445547503535078e+00
+8.8524954813171437e+00
+8.8604363383859859e+00
+8.8683773218840241e+00
+8.8763184319764488e+00
+8.8842596681932733e+00
+8.8922010299057117e+00
+8.9001425165204324e+00
+8.9080841278562808e+00
+8.9160258639980245e+00
+8.9239677250329610e+00
+8.9319097109346259e+00
+8.9398518215001950e+00
+8.9477940565116825e+00
+8.9557364157157284e+00
+8.9636788987174629e+00
+8.9716215050866452e+00
+8.9795642344261246e+00
+8.9875070867234257e+00
+8.9954500622142639e+00
+9.0033931611327152e+00
+9.0113363833666362e+00
+9.0192797282672288e+00
+9.0272231951395430e+00
+9.0351667834503946e+00
+9.0431104933137370e+00
+9.0510543250052944e+00
+9.0589982787748511e+00
+9.0669423545705925e+00
+9.0748865521461060e+00
+9.0828308712492642e+00
+9.0907753114788115e+00
+9.0987198722023486e+00
+9.1066645527675902e+00
+9.1146093527162293e+00
+9.1225542723658091e+00
+9.1304993122278582e+00
+9.1384444727516314e+00
+9.1463897536625680e+00
+9.1543351542191314e+00
+9.1622806736779907e+00
+9.1702263116552736e+00
+9.1781720683242849e+00
+9.1861179439062557e+00
+9.1940639385353773e+00
+9.2020100519976857e+00
+9.2099562839921667e+00
+9.2179026342133010e+00
+9.2258491023030480e+00
+9.2337956878694847e+00
+9.2417423905236085e+00
+9.2496892100853234e+00
+9.2576361466983226e+00
+9.2655832005341612e+00
+9.2735303716863111e+00
+9.2814776599358861e+00
+9.2894250649859185e+00
+9.2973725865363743e+00
+9.3053202242515809e+00
+9.3132679777728775e+00
+9.3212158467446500e+00
+9.3291638310167251e+00
+9.3371119307573753e+00
+9.3450601461622558e+00
+9.3530084772963100e+00
+9.3609569237015808e+00
+9.3689054847893889e+00
+9.3768541600108932e+00
+9.3848029492803935e+00
+9.3927518528109797e+00
+9.4007008708176141e+00
+9.4086500033283489e+00
+9.4165992500815161e+00
+9.4245486107905343e+00
+9.4324980851420435e+00
+9.4404476727155746e+00
+9.4483973730638908e+00
+9.4563471857804000e+00
+9.4642971109310778e+00
+9.4722471488867779e+00
+9.4801973000165667e+00
+9.4881475642779556e+00
+9.4960979409905271e+00
+9.5040484294189902e+00
+9.5119990290006005e+00
+9.5199497398627972e+00
+9.5279005623055593e+00
+9.5358514965989798e+00
+9.5438025426656505e+00
+9.5517537002039674e+00
+9.5597049689076723e+00
+9.5676563484153512e+00
+9.5756078382800887e+00
+9.5835594380476259e+00
+9.5915111474098502e+00
+9.5994629666432605e+00
+9.6074148961705070e+00
+9.6153669363561800e+00
+9.6233190868900476e+00
+9.6312713470265017e+00
+9.6392237160193144e+00
+9.6471761935208455e+00
+9.6551287798012631e+00
+9.6630814751838656e+00
+9.6710342798746129e+00
+9.6789871936100624e+00
+9.6869402160094165e+00
+9.6948933466939984e+00
+9.7028465853097625e+00
+9.7107999315185438e+00
+9.7187533849867389e+00
+9.7267069456379200e+00
+9.7346606137942953e+00
+9.7426143898123687e+00
+9.7505682738614858e+00
+9.7585222653624140e+00
+9.7664763635487724e+00
+9.7744305677139156e+00
+9.7823848778456188e+00
+9.7903392943796721e+00
+9.7982938177533629e+00
+9.8062484480461816e+00
+9.8142031847830129e+00
+9.8221580274410396e+00
+9.8301129755489285e+00
+9.8380680288413238e+00
+9.8460231871043415e+00
+9.8539784501507910e+00
+9.8619338181035818e+00
+9.8698892912856913e+00
+9.8778448700166734e+00
+9.8858005542102472e+00
+9.8937563431511180e+00
+9.9017122360698799e+00
+9.9096682323792411e+00
+9.9176243322203810e+00
+9.9255805359165965e+00
+9.9335368437652480e+00
+9.9414932557623246e+00
+9.9494497717093680e+00
+9.9574063914014133e+00
+9.9653631144376380e+00
+9.9733199401136368e+00
+9.9812768676988846e+00
+9.9892338967948913e+00
+9.9971910283312919e+00
+1.0005148263569751e+01
+1.0013105603608402e+01
+1.0021063047644272e+01
+1.0029020593647887e+01
+1.0036978239590816e+01
+1.0044935984734138e+01
+1.0052893830337673e+01
+1.0060851777833182e+01
+1.0068809828259655e+01
+1.0076767981085068e+01
+1.0084726235384634e+01
+1.0092684590283250e+01
+1.0100643045483343e+01
+1.0108601601059950e+01
+1.0116560257094008e+01
+1.0124519013648815e+01
+1.0132477870760306e+01
+1.0140436828462061e+01
+1.0148395886664883e+01
+1.0156355044788441e+01
+1.0164314302129640e+01
+1.0172273658049360e+01
+1.0180233112652322e+01
+1.0188192666523141e+01
+1.0196152320246982e+01
+1.0204112073962241e+01
+1.0212071927114835e+01
+1.0220031879091104e+01
+1.0227991929338776e+01
+1.0235952077551079e+01
+1.0243912323482629e+01
+1.0251872666922990e+01
+1.0259833108068158e+01
+1.0267793647376330e+01
+1.0275754285304302e+01
+1.0283715021962671e+01
+1.0291675856925400e+01
+1.0299636789720305e+01
+1.0307597819827201e+01
+1.0315558946533939e+01
+1.0323520169080373e+01
+1.0331481486809398e+01
+1.0339442900261696e+01
+1.0347404410750732e+01
+1.0355366019583592e+01
+1.0363327726912280e+01
+1.0371289531098432e+01
+1.0379251430349660e+01
+1.0387213423417368e+01
+1.0395175511228080e+01
+1.0403137695252109e+01
+1.0411099976821182e+01
+1.0419062355656042e+01
+1.0427024830438071e+01
+1.0434987399839999e+01
+1.0442950063054150e+01
+1.0450912820078214e+01
+1.0458875670979166e+01
+1.0466838615896405e+01
+1.0474801655259002e+01
+1.0482764789568460e+01
+1.0490728019255100e+01
+1.0498691343921761e+01
+1.0506654762637426e+01
+1.0514618274471092e+01
+1.0522581879026944e+01
+1.0530545576738687e+01
+1.0538509368111384e+01
+1.0546473253574725e+01
+1.0554437233256897e+01
+1.0562401307210706e+01
+1.0570365475423007e+01
+1.0578329737113870e+01
+1.0586294091008673e+01
+1.0594258535840311e+01
+1.0602223071287948e+01
+1.0610187698497427e+01
+1.0618152418740776e+01
+1.0626117232902686e+01
+1.0634082140318553e+01
+1.0642047139936446e+01
+1.0650012230765382e+01
+1.0657977412522975e+01
+1.0665942685383991e+01
+1.0673908049528675e+01
+1.0681873505008893e+01
+1.0689839051677522e+01
+1.0697804689370315e+01
+1.0705770417935058e+01
+1.0713736237267637e+01
+1.0721702147275961e+01
+1.0729668147870802e+01
+1.0737634238996193e+01
+1.0745600420617608e+01
+1.0753566692699513e+01
+1.0761533055123545e+01
+1.0769499507642966e+01
+1.0777466050000003e+01
+1.0785432681968453e+01
+1.0793399403448475e+01
+1.0801366214371807e+01
+1.0809333114675754e+01
+1.0817300104362294e+01
+1.0825267183475138e+01
+1.0833234352054232e+01
+1.0841201609872675e+01
+1.0849168956289915e+01
+1.0857136390629828e+01
+1.0865103912407845e+01
+1.0873071521905654e+01
+1.0881039219596495e+01
+1.0889007005926144e+01
+1.0896974881020956e+01
+1.0904942844801216e+01
+1.0912910897179925e+01
+1.0920879037838834e+01
+1.0928847266101288e+01
+1.0936815581259792e+01
+1.0944783982845800e+01
+1.0952752471346560e+01
+1.0960721047488265e+01
+1.0968689711908723e+01
+1.0976658464218371e+01
+1.0984627303364814e+01
+1.0992596228295954e+01
+1.1000565238640110e+01
+1.1008534335080260e+01
+1.1016503518390092e+01
+1.1024472789064784e+01
+1.1032442146485431e+01
+1.1040411589754605e+01
+1.1048381118050264e+01
+1.1056350731426674e+01
+1.1064320430503489e+01
+1.1072290215902397e+01
+1.1080260087802523e+01
+1.1088230045696998e+01
+1.1096200089019952e+01
+1.1104170217221228e+01
+1.1112140429813573e+01
+1.1120110726325453e+01
+1.1128081106373708e+01
+1.1136051570602454e+01
+1.1144022120318571e+01
+1.1151992756819213e+01
+1.1159963480155630e+01
+1.1167934288447890e+01
+1.1175905179649945e+01
+1.1183876152296628e+01
+1.1191847207246276e+01
+1.1199818345938120e+01
+1.1207789569689050e+01
+1.1215760878393864e+01
+1.1223732271029878e+01
+1.1231703746569270e+01
+1.1239675304593435e+01
+1.1247646945628063e+01
+1.1255618670280073e+01
+1.1263590478904570e+01
+1.1271562370849390e+01
+1.1279534345210562e+01
+1.1287506401173351e+01
+1.1295478538960545e+01
+1.1303450759464294e+01
+1.1311423063572104e+01
+1.1319395451223443e+01
+1.1327367920888317e+01
+1.1335340470910333e+01
+1.1343313100228336e+01
+1.1351285810162137e+01
+1.1359258602626781e+01
+1.1367231479362287e+01
+1.1375204440073913e+01
+1.1383177483154171e+01
+1.1391150606985162e+01
+1.1399123810636876e+01
+1.1407097094245538e+01
+1.1415070458039088e+01
+1.1423043902246157e+01
+1.1431017427098165e+01
+1.1438991032827225e+01
+1.1446964719648870e+01
+1.1454938487585888e+01
+1.1462912336536714e+01
+1.1470886266395981e+01
+1.1478860276954142e+01
+1.1486834367840196e+01
+1.1494808538669242e+01
+1.1502782789043515e+01
+1.1510757118513727e+01
+1.1518731526617731e+01
+1.1526706012970459e+01
+1.1534680578082972e+01
+1.1542655223044481e+01
+1.1550629948939775e+01
+1.1558604756010167e+01
+1.1566579643189595e+01
+1.1574554609299531e+01
+1.1582529653325860e+01
+1.1590504774912093e+01
+1.1598479973866143e+01
+1.1606455250073536e+01
+1.1614430604321965e+01
+1.1622406037981166e+01
+1.1630381552406197e+01
+1.1638357147489037e+01
+1.1646332820853905e+01
+1.1654308569929945e+01
+1.1662284393059636e+01
+1.1670260292238780e+01
+1.1678236270376505e+01
+1.1686212330086645e+01
+1.1694188470550108e+01
+1.1702164688733015e+01
+1.1710140981597899e+01
+1.1718117348106315e+01
+1.1726093790318316e+01
+1.1734070310560483e+01
+1.1742046910447799e+01
+1.1750023588748803e+01
+1.1758000343520427e+01
+1.1765977173000527e+01
+1.1773954077530231e+01
+1.1781931058807599e+01
+1.1789908118528709e+01
+1.1797885256912645e+01
+1.1805862471889178e+01
+1.1813839761191144e+01
+1.1821817123249309e+01
+1.1829794559286144e+01
+1.1837772071222055e+01
+1.1845749660831288e+01
+1.1853727328188969e+01
+1.1861705072274026e+01
+1.1869682892050324e+01
+1.1877660786674769e+01
+1.1885638755603457e+01
+1.1893616798318229e+01
+1.1901594914555140e+01
+1.1909573105067151e+01
+1.1917551370861435e+01
+1.1925529712854049e+01
+1.1933508130901695e+01
+1.1941486624177635e+01
+1.1949465191849884e+01
+1.1957443833455283e+01
+1.1965422549102353e+01
+1.1973401338948795e+01
+1.1981380203079796e+01
+1.1989359141290487e+01
+1.1997338153303486e+01
+1.2005317238846040e+01
+1.2013296397699310e+01
+1.2021275629679232e+01
+1.2029254934606710e+01
+1.2037234312565660e+01
+1.2045213764047693e+01
+1.2053193289579479e+01
+1.2061172889454765e+01
+1.2069152563035598e+01
+1.2077132309451091e+01
+1.2085112127911355e+01
+1.2093092018567969e+01
+1.2101071982179938e+01
+1.2109052019505029e+01
+1.2117032130619803e+01
+1.2125012314544936e+01
+1.2132992570210284e+01
+1.2140972896850046e+01
+1.2148953294915852e+01
+1.2156933765163675e+01
+1.2164914308271758e+01
+1.2172894924014622e+01
+1.2180875611583755e+01
+1.2188856370167995e+01
+1.2196837199381177e+01
+1.2204818099495840e+01
+1.2212799070841195e+01
+1.2220780113783848e+01
+1.2228761228839973e+01
+1.2236742416563159e+01
+1.2244723677410120e+01
+1.2252705010711541e+01
+1.2260686415071630e+01
+1.2268667889095521e+01
+1.2276649432169908e+01
+1.2284631044892929e+01
+1.2292612727966933e+01
+1.2300594481932906e+01
+1.2308576306686417e+01
+1.2316558201961680e+01
+1.2324540167495803e+01
+1.2332522203059632e+01
+1.2340504308445771e+01
+1.2348486483451717e+01
+1.2356468728146460e+01
+1.2364451043019804e+01
+1.2372433428597761e+01
+1.2380415885191802e+01
+1.2388398412255258e+01
+1.2396381009026925e+01
+1.2404363674771483e+01
+1.2412346409054532e+01
+1.2420329211635824e+01
+1.2428312082287372e+01
+1.2436295021322719e+01
+1.2444278029894786e+01
+1.2452261109228704e+01
+1.2460244260013503e+01
+1.2468227480793862e+01
+1.2476210769578369e+01
+1.2484194124538766e+01
+1.2492177545743514e+01
+1.2500161034484755e+01
+1.2508144592063823e+01
+1.2516128219109712e+01
+1.2524111915209282e+01
+1.2532095679859751e+01
+1.2540079512663905e+01
+1.2548063413646794e+01
+1.2556047382939044e+01
+1.2564031420635803e+01
+1.2572015526419822e+01
+1.2579999699707788e+01
+1.2587983939916301e+01
+1.2595968246722762e+01
+1.2603952620208823e+01
+1.2611937060490911e+01
+1.2619921567767038e+01
+1.2627906142561576e+01
+1.2635890785480473e+01
+1.2643875497030431e+01
+1.2651860276564198e+01
+1.2659845122690058e+01
+1.2667830034019971e+01
+1.2675815010131322e+01
+1.2683800052097887e+01
+1.2691785161122175e+01
+1.2699770338083937e+01
+1.2707755582571920e+01
+1.2715740893852111e+01
+1.2723726271208470e+01
+1.2731711714133768e+01
+1.2739697222255510e+01
+1.2747682795212391e+01
+1.2755668433179776e+01
+1.2763654137164881e+01
+1.2771639908246460e+01
+1.2779625747125403e+01
+1.2787611652991059e+01
+1.2795597624654896e+01
+1.2803583660980522e+01
+1.2811569761437626e+01
+1.2819555925886915e+01
+1.2827542154203543e+01
+1.2835528446738298e+01
+1.2843514804579188e+01
+1.2851501228877641e+01
+1.2859487720307090e+01
+1.2867474277628961e+01
+1.2875460899126693e+01
+1.2883447583234581e+01
+1.2891434330140720e+01
+1.2899421141164691e+01
+1.2907408017631216e+01
+1.2915394960043125e+01
+1.2923381967629274e+01
+1.2931369039508928e+01
+1.2939356174947529e+01
+1.2947343373795192e+01
+1.2955330636048195e+01
+1.2963317961719174e+01
+1.2971305351010800e+01
+1.2979292804248360e+01
+1.2987280321756117e+01
+1.2995267903674485e+01
+1.3003255549858908e+01
+1.3011243260140319e+01
+1.3019231034246559e+01
+1.3027218871493107e+01
+1.3035206771092350e+01
+1.3043194732355618e+01
+1.3051182755744534e+01
+1.3059170842462843e+01
+1.3067158993710471e+01
+1.3075147209716528e+01
+1.3083135489205345e+01
+1.3091123830771807e+01
+1.3099112233344322e+01
+1.3107100697185363e+01
+1.3115089222890923e+01
+1.3123077811035357e+01
+1.3131066461941478e+01
+1.3139055175769798e+01
+1.3147043952672572e+01
+1.3155032792468058e+01
+1.3163021694456825e+01
+1.3171010657894913e+01
+1.3178999682281475e+01
+1.3186988768088161e+01
+1.3194977916029741e+01
+1.3202967126733169e+01
+1.3210956399804557e+01
+1.3218945734191411e+01
+1.3226935128845154e+01
+1.3234924583611361e+01
+1.3242914099721515e+01
+1.3250903678526324e+01
+1.3258893320887617e+01
+1.3266883025711749e+01
+1.3274872791416184e+01
+1.3282862616526307e+01
+1.3290852500821888e+01
+1.3298842444891989e+01
+1.3306832449337348e+01
+1.3314822514650054e+01
+1.3322812641153812e+01
+1.3330802829157834e+01
+1.3338793078788493e+01
+1.3346783389440796e+01
+1.3354773760326907e+01
+1.3362764190730172e+01
+1.3370754680761452e+01
+1.3378745231065489e+01
+1.3386735842287628e+01
+1.3394726514575662e+01
+1.3402717247306187e+01
+1.3410708039789442e+01
+1.3418698891436787e+01
+1.3426689802064004e+01
+1.3434680771587988e+01
+1.3442671799952141e+01
+1.3450662887407994e+01
+1.3458654034405885e+01
+1.3466645241392996e+01
+1.3474636508428324e+01
+1.3482627834969186e+01
+1.3490619220421149e+01
+1.3498610664420006e+01
+1.3506602167522551e+01
+1.3514593730515815e+01
+1.3522585354078004e+01
+1.3530577037622297e+01
+1.3538568779745727e+01
+1.3546560579047060e+01
+1.3554552435046304e+01
+1.3562544348691354e+01
+1.3570536321052941e+01
+1.3578528352990853e+01
+1.3586520444521085e+01
+1.3594512595448704e+01
+1.3602504805550183e+01
+1.3610497074269704e+01
+1.3618489400837056e+01
+1.3626481784486531e+01
+1.3634474224936341e+01
+1.3642466722654806e+01
+1.3650459278174768e+01
+1.3658451891903539e+01
+1.3666444563746310e+01
+1.3674437293482734e+01
+1.3682430080892484e+01
+1.3690422925755374e+01
+1.3698415827851314e+01
+1.3706408786964856e+01
+1.3714401803159120e+01
+1.3722394876928988e+01
+1.3730388008806493e+01
+1.3738381199106547e+01
+1.3746374447275562e+01
+1.3754367752542834e+01
+1.3762361114165520e+01
+1.3770354531724628e+01
+1.3778348005010116e+01
+1.3786341533823574e+01
+1.3794335118455818e+01
+1.3802328759955953e+01
+1.3810322459438312e+01
+1.3818316217568267e+01
+1.3826310033215318e+01
+1.3834303904800000e+01
+1.3842297830889729e+01
+1.3850291811759355e+01
+1.3858285848785297e+01
+1.3866279943346065e+01
+1.3874274095843504e+01
+1.3882268305165622e+01
+1.3890262570070217e+01
+1.3898256889658208e+01
+1.3906251264403021e+01
+1.3914245695121217e+01
+1.3922240182545249e+01
+1.3930234726429887e+01
+1.3938229325899147e+01
+1.3946223980075326e+01
+1.3954218688609329e+01
+1.3962213451971387e+01
+1.3970208270702212e+01
+1.3978203145214870e+01
+1.3986198075411869e+01
+1.3994193061068056e+01
+1.4002188101963366e+01
+1.4010183197936614e+01
+1.4018178348864616e+01
+1.4026173554622970e+01
+1.4034168814976267e+01
+1.4042164129517033e+01
+1.4050159497822996e+01
+1.4058154919763812e+01
+1.4066150396376841e+01
+1.4074145928991378e+01
+1.4082141518761253e+01
+1.4090137164800616e+01
+1.4098132864907695e+01
+1.4106128616885698e+01
+1.4114124420152788e+01
+1.4122120276630309e+01
+1.4130116188454926e+01
+1.4138112157082990e+01
+1.4146108181249575e+01
+1.4154104259009436e+01
+1.4162100388575935e+01
+1.4170096570006253e+01
+1.4178092804547124e+01
+1.4186089093455053e+01
+1.4194085437382915e+01
+1.4202081836047958e+01
+1.4210078289086942e+01
+1.4218074796133417e+01
+1.4226071356808102e+01
+1.4234067970728507e+01
+1.4242064637516425e+01
+1.4250061356843457e+01
+1.4258058128413339e+01
+1.4266054951938848e+01
+1.4274051827643508e+01
+1.4282048756542483e+01
+1.4290045739719039e+01
+1.4298042777848190e+01
+1.4306039869971940e+01
+1.4314037014724040e+01
+1.4322034210833996e+01
+1.4330031458144447e+01
+1.4338028757216174e+01
+1.4346026108619716e+01
+1.4354023512792418e+01
+1.4362020969965199e+01
+1.4370018480351224e+01
+1.4378016043970900e+01
+1.4386013660073630e+01
+1.4394011327716067e+01
+1.4402009046073449e+01
+1.4410006815699703e+01
+1.4418004638038219e+01
+1.4426002514524519e+01
+1.4434000445232378e+01
+1.4441998428124869e+01
+1.4449996460983490e+01
+1.4457994542290621e+01
+1.4465992673332126e+01
+1.4473990856094735e+01
+1.4481989092400388e+01
+1.4489987382155267e+01
+1.4497985724029581e+01
+1.4505984116685337e+01
+1.4513982559527918e+01
+1.4521981053114942e+01
+1.4529979598103152e+01
+1.4537978195016745e+01
+1.4545976843849793e+01
+1.4553975544463830e+01
+1.4561974296694045e+01
+1.4569973100069390e+01
+1.4577971953921242e+01
+1.4585970857585762e+01
+1.4593969810883912e+01
+1.4601968814388094e+01
+1.4609967868735351e+01
+1.4617966974333539e+01
+1.4625966130673763e+01
+1.4633965337017949e+01
+1.4641964592722594e+01
+1.4649963898243636e+01
+1.4657963254746319e+01
+1.4665962663392969e+01
+1.4673962124461070e+01
+1.4681961636856620e+01
+1.4689961199367636e+01
+1.4697960810961092e+01
+1.4705960471319790e+01
+1.4713960180305484e+01
+1.4721959937845805e+01
+1.4729959744634236e+01
+1.4737959601858352e+01
+1.4745959510694929e+01
+1.4753959471179087e+01
+1.4761959481576342e+01
+1.4769959540000000e+01
+1.4777959645206591e+01
+1.4785959798525555e+01
+1.4793960001929555e+01
+1.4801960257213571e+01
+1.4809960564106879e+01
+1.4817960921006064e+01
+1.4825961326299982e+01
+1.4833961779246494e+01
+1.4841962280450419e+01
+1.4849962830632446e+01
+1.4857963430358756e+01
+1.4865964079577521e+01
+1.4873964778082408e+01
+1.4881965525658659e+01
+1.4889966321993573e+01
+1.4897967166711254e+01
+1.4905968059440639e+01
+1.4913969000163489e+01
+1.4921969989408442e+01
+1.4929971027751179e+01
+1.4937972115540216e+01
+1.4945973252215390e+01
+1.4953974436989377e+01
+1.4961975669132714e+01
+1.4969976948588599e+01
+1.4977978275734197e+01
+1.4985979650953395e+01
+1.4993981074598979e+01
+1.5001982546975549e+01
+1.5009984068383561e+01
+1.5017985638998775e+01
+1.5025987258498196e+01
+1.5033988926434128e+01
+1.5041990642346475e+01
+1.5049992405630899e+01
+1.5057994215590000e+01
+1.5065996071535652e+01
+1.5073997973429037e+01
+1.5081999922237765e+01
+1.5090001919016023e+01
+1.5098003964515767e+01
+1.5106006058280022e+01
+1.5114008199549582e+01
+1.5122010387644417e+01
+1.5130012622804859e+01
+1.5138014905865036e+01
+1.5146017237654640e+01
+1.5154019618143256e+01
+1.5162022045967316e+01
+1.5170024519648559e+01
+1.5178027038165059e+01
+1.5186029602320167e+01
+1.5194032213373557e+01
+1.5202034872478757e+01
+1.5210037579555339e+01
+1.5218040333726764e+01
+1.5226043134109952e+01
+1.5234045980224794e+01
+1.5242048872215790e+01
+1.5250051810281169e+01
+1.5258054794682490e+01
+1.5266057825934574e+01
+1.5274060904615578e+01
+1.5282064031207343e+01
+1.5290067205072132e+01
+1.5298070424849897e+01
+1.5306073689183805e+01
+1.5314076997632935e+01
+1.5322080351176005e+01
+1.5330083750913854e+01
+1.5338087197703734e+01
+1.5346090691428559e+01
+1.5354094231727647e+01
+1.5362097818251254e+01
+1.5370101450776712e+01
+1.5378105129163330e+01
+1.5386108853271287e+01
+1.5394112622930544e+01
+1.5402116437924267e+01
+1.5410120298031588e+01
+1.5418124203158724e+01
+1.5426128153720240e+01
+1.5434132150257790e+01
+1.5442136193242066e+01
+1.5450140282318932e+01
+1.5458144416602098e+01
+1.5466148595207176e+01
+1.5474152817895956e+01
+1.5482157085431798e+01
+1.5490161398664215e+01
+1.5498165758073812e+01
+1.5506170162665512e+01
+1.5514174611075324e+01
+1.5522179102097851e+01
+1.5530183636371328e+01
+1.5538188215723443e+01
+1.5546192841980137e+01
+1.5554197515673055e+01
+1.5562202235327677e+01
+1.5570206999296920e+01
+1.5578211806363429e+01
+1.5586216657028835e+01
+1.5594221552224509e+01
+1.5602226492785068e+01
+1.5610231478420353e+01
+1.5618236508114551e+01
+1.5626241580852751e+01
+1.5634246696400503e+01
+1.5642251855733047e+01
+1.5650257059929688e+01
+1.5658262309691789e+01
+1.5666267604208938e+01
+1.5674272942292795e+01
+1.5682278322891380e+01
+1.5690283746538022e+01
+1.5698289214788829e+01
+1.5706294729192225e+01
+1.5714300289812567e+01
+1.5722305894413935e+01
+1.5730311540562530e+01
+1.5738317226685599e+01
+1.5746322954654563e+01
+1.5754328727201891e+01
+1.5762334546801801e+01
+1.5770340412926457e+01
+1.5778346323111206e+01
+1.5786352274882283e+01
+1.5794358267155941e+01
+1.5802364301002955e+01
+1.5810370377679442e+01
+1.5818376498270775e+01
+1.5826382663179340e+01
+1.5834388872636779e+01
+1.5842395126807391e+01
+1.5850401425072466e+01
+1.5858407766308160e+01
+1.5866414149392201e+01
+1.5874420573802352e+01
+1.5882427039946425e+01
+1.5890433548312233e+01
+1.5898440099359661e+01
+1.5906446693436882e+01
+1.5914453330864145e+01
+1.5922460011910401e+01
+1.5930466736248345e+01
+1.5938473503165973e+01
+1.5946480311951561e+01
+1.5954487162294171e+01
+1.5962494054504102e+01
+1.5970500988945089e+01
+1.5978507965987371e+01
+1.5986514986027204e+01
+1.5994522049467356e+01
+1.6002529156616919e+01
+1.6010536306696036e+01
+1.6018543498222314e+01
+1.6026550729722302e+01
+1.6034558000962221e+01
+1.6042565313629790e+01
+1.6050572669578013e+01
+1.6058580070079802e+01
+1.6066587514087676e+01
+1.6074594999974057e+01
+1.6082602526233604e+01
+1.6090610092781901e+01
+1.6098617700451264e+01
+1.6106625350080204e+01
+1.6114633041962428e+01
+1.6122640775547165e+01
+1.6130648550211003e+01
+1.6138656365518884e+01
+1.6146664221789081e+01
+1.6154672119528218e+01
+1.6162680059204874e+01
+1.6170688040845448e+01
+1.6178696064191062e+01
+1.6186704128979574e+01
+1.6194712235038416e+01
+1.6202720382333847e+01
+1.6210728570844061e+01
+1.6218736800514410e+01
+1.6226745071158824e+01
+1.6234753382558388e+01
+1.6242761734525590e+01
+1.6250770127237953e+01
+1.6258778561108514e+01
+1.6266787036545679e+01
+1.6274795553444751e+01
+1.6282804110905698e+01
+1.6290812707960082e+01
+1.6298821344026926e+01
+1.6306830020075097e+01
+1.6314838737460942e+01
+1.6322847497385581e+01
+1.6330856299245831e+01
+1.6338865141274411e+01
+1.6346874021707901e+01
+1.6354882940178157e+01
+1.6362891898479699e+01
+1.6370900898593089e+01
+1.6378909941876124e+01
+1.6386919027195596e+01
+1.6394928152795529e+01
+1.6402937317039438e+01
+1.6410946519679932e+01
+1.6418955761365790e+01
+1.6426965042758123e+01
+1.6434974364361377e+01
+1.6442983726437149e+01
+1.6450993129226159e+01
+1.6459002572832940e+01
+1.6467012056817278e+01
+1.6475021580602789e+01
+1.6483031143635362e+01
+1.6491040745620037e+01
+1.6499050386429040e+01
+1.6507060065941825e+01
+1.6515069784304906e+01
+1.6523079542078715e+01
+1.6531089339859296e+01
+1.6539099178116867e+01
+1.6547109056818375e+01
+1.6555118975804934e+01
+1.6563128934903748e+01
+1.6571138933780173e+01
+1.6579148971995135e+01
+1.6587159049108902e+01
+1.6595169164745830e+01
+1.6603179318629611e+01
+1.6611189510492494e+01
+1.6619199740268328e+01
+1.6627210008697450e+01
+1.6635220316721803e+01
+1.6643230665200264e+01
+1.6651241054026002e+01
+1.6659251482469145e+01
+1.6667261949792955e+01
+1.6675272455471596e+01
+1.6683282999306133e+01
+1.6691293581125752e+01
+1.6699304200930371e+01
+1.6707314859402853e+01
+1.6715325557396781e+01
+1.6723336295619703e+01
+1.6731347073081462e+01
+1.6739357887696606e+01
+1.6747368737394041e+01
+1.6755379622060133e+01
+1.6763390544615294e+01
+1.6771401508240931e+01
+1.6779412515087870e+01
+1.6787423563184650e+01
+1.6795434649529231e+01
+1.6803445771355555e+01
+1.6811456928641007e+01
+1.6819468123132918e+01
+1.6827479356588299e+01
+1.6835490629574487e+01
+1.6843501940814853e+01
+1.6851513288874141e+01
+1.6859524672866989e+01
+1.6867536094107614e+01
+1.6875547554460123e+01
+1.6883559055582932e+01
+1.6891570596743311e+01
+1.6899582175665856e+01
+1.6907593790076000e+01
+1.6915605439292300e+01
+1.6923617125102666e+01
+1.6931628849507415e+01
+1.6939640613938455e+01
+1.6947652417554060e+01
+1.6955664258944093e+01
+1.6963676136759670e+01
+1.6971688050363962e+01
+1.6979699999579527e+01
+1.6987711984147566e+01
+1.6995723998468193e+01
+1.7003736028662825e+01
+1.7011748060140743e+01
+1.7019760078698454e+01
+1.7027772071681383e+01
+1.7035784026822192e+01
+1.7043795931819346e+01
+1.7051807773973717e+01
+1.7059819540329677e+01
+1.7067831217929530e+01
+1.7075842793947725e+01
+1.7083854255763576e+01
+1.7091865590774020e+01
+1.7099876786523534e+01
+1.7107887831146815e+01
+1.7115898712926107e+01
+1.7123909420035591e+01
+1.7131919939393217e+01
+1.7139930257106457e+01
+1.7147940359283776e+01
+1.7155950232903319e+01
+1.7163959866291215e+01
+1.7171969247889571e+01
+1.7179978365859693e+01
+1.7187987207239697e+01
+1.7195995758786903e+01
+1.7204004007311056e+01
+1.7212011940231207e+01
+1.7220019545359538e+01
+1.7228026810508961e+01
+1.7236033723144054e+01
+1.7244040270189444e+01
+1.7252046438523308e+01
+1.7260052215218767e+01
+1.7268057588128681e+01
+1.7276062545300849e+01
+1.7284067074725964e+01
+1.7292071163730977e+01
+1.7300074799214592e+01
+1.7308077968073775e+01
+1.7316080657528897e+01
+1.7324082855301601e+01
+1.7332084549156654e+01
+1.7340085726724674e+01
+1.7348086375099669e+01
+1.7356086481241512e+01
+1.7364086032145966e+01
+1.7372085015226080e+01
+1.7380083418164137e+01
+1.7388081228644456e+01
+1.7396078434204853e+01
+1.7404075022156071e+01
+1.7412070979789316e+01
+1.7420066294429020e+01
+1.7428060953532540e+01
+1.7436054944590449e+01
+1.7444048255105844e+01
+1.7452040872727306e+01
+1.7460032785197281e+01
+1.7468023980251754e+01
+1.7476014445145431e+01
+1.7484004166386999e+01
+1.7491993130420997e+01
+1.7499981323976147e+01
+1.7507968734917959e+01
+1.7515955351396137e+01
+1.7523941161531909e+01
+1.7531926153115531e+01
+1.7539910313723716e+01
+1.7547893630922818e+01
+1.7555876091870338e+01
+1.7563857683090095e+01
+1.7571838391051394e+01
+1.7579818202515668e+01
+1.7587797105412861e+01
+1.7595775087965055e+01
+1.7603752138346703e+01
+1.7611728244178622e+01
+1.7619703392724421e+01
+1.7627677571240767e+01
+1.7635650766923092e+01
+1.7643622966871959e+01
+1.7651594158179773e+01
+1.7659564328048038e+01
+1.7667533464114754e+01
+1.7675501554127035e+01
+1.7683468585786791e+01
+1.7691434546270500e+01
+1.7699399422415645e+01
+1.7707363201062613e+01
+1.7715325869565667e+01
+1.7723287416075536e+01
+1.7731247828811469e+01
+1.7739207095773516e+01
+1.7747165204084919e+01
+1.7755122140649714e+01
+1.7763077892371367e+01
+1.7771032446146577e+01
+1.7778985788867690e+01
+1.7786937907439363e+01
+1.7794888789509343e+01
+1.7802838423877191e+01
+1.7810786799441541e+01
+1.7818733904562446e+01
+1.7826679725445643e+01
+1.7834624247758285e+01
+1.7842567457306806e+01
+1.7850509341517004e+01
+1.7858449888859404e+01
+1.7866389087812699e+01
+1.7874326926301183e+01
+1.7882263391389834e+01
+1.7890198470069691e+01
+1.7898132149483061e+01
+1.7906064417377259e+01
+1.7913995261650854e+01
+1.7921924670128575e+01
+1.7929852629776764e+01
+1.7937779127007968e+01
+1.7945704148236377e+01
+1.7953627680528147e+01
+1.7961549711960007e+01
+1.7969470230695617e+01
+1.7977389224784513e+01
+1.7985306681819775e+01
+1.7993222589280364e+01
+1.8001136934616991e+01
+1.8009049704952051e+01
+1.8016960887196102e+01
+1.8024870468260620e+01
+1.8032778435323785e+01
+1.8040684775977173e+01
+1.8048589477847916e+01
+1.8056492528553534e+01
+1.8064393915673097e+01
+1.8072293626776069e+01
+1.8080191649404391e+01
+1.8088087970780172e+01
+1.8095982577919155e+01
+1.8103875457837773e+01
+1.8111766597799821e+01
+1.8119655985452507e+01
+1.8127543608476028e+01
+1.8135429454478793e+01
+1.8143313510782122e+01
+1.8151195764635553e+01
+1.8159076203309869e+01
+1.8166954814322921e+01
+1.8174831585351942e+01
+1.8182706504072708e+01
+1.8190579557913544e+01
+1.8198450733919234e+01
+1.8206320019101572e+01
+1.8214187400565759e+01
+1.8222052865790634e+01
+1.8229916402348440e+01
+1.8237777997813801e+01
+1.8245637639788949e+01
+1.8253495315893936e+01
+1.8261351013744818e+01
+1.8269204720699946e+01
+1.8277056423718239e+01
+1.8284906109724254e+01
+1.8292753765725813e+01
+1.8300599379063822e+01
+1.8308442937162464e+01
+1.8316284427491887e+01
+1.8324123838056611e+01
+1.8331961157205907e+01
+1.8339796373278389e+01
+1.8347629473628345e+01
+1.8355460444084358e+01
+1.8363289270343767e+01
+1.8371115938640891e+01
+1.8378940437357976e+01
+1.8386762755414253e+01
+1.8394582881626235e+01
+1.8402400803616228e+01
+1.8410216508236090e+01
+1.8418029982326015e+01
+1.8425841212796090e+01
+1.8433650186664767e+01
+1.8441456890959820e+01
+1.8449261312930243e+01
+1.8457063440709916e+01
+1.8464863262653932e+01
+1.8472660767008097e+01
+1.8480455940747706e+01
+1.8488248770028346e+01
+1.8496039241004702e+01
+1.8503827340596747e+01
+1.8511613056910608e+01
+1.8519396378154479e+01
+1.8527177292437372e+01
+1.8534955787471677e+01
+1.8542731850870624e+01
+1.8550505470180841e+01
+1.8558276632174795e+01
+1.8566045323125483e+01
+1.8573811529314554e+01
+1.8581575238042749e+01
+1.8589336438190362e+01
+1.8597095118773559e+01
+1.8604851268284996e+01
+1.8612604873123221e+01
+1.8620355919163263e+01
+1.8628104392415725e+01
+1.8635850280467345e+01
+1.8643593571921709e+01
+1.8651334255384569e+01
+1.8659072318574363e+01
+1.8666807747834188e+01
+1.8674540529388835e+01
+1.8682270649787124e+01
+1.8689998096874021e+01
+1.8697722858818519e+01
+1.8705444923764009e+01
+1.8713164279556196e+01
+1.8720880913848720e+01
+1.8728594814282992e+01
+1.8736305967958565e+01
+1.8744014361135100e+01
+1.8751719980000001e+01
+1.8759422811166619e+01
+1.8767122842952059e+01
+1.8774820064099352e+01
+1.8782514463267244e+01
+1.8790206028134502e+01
+1.8797894745747666e+01
+1.8805580603138960e+01
+1.8813263587114250e+01
+1.8820943684128569e+01
+1.8828620880606763e+01
+1.8836295163396073e+01
+1.8843966521033316e+01
+1.8851634942477702e+01
+1.8859300416538829e+01
+1.8866962930287205e+01
+1.8874622469671333e+01
+1.8882279020636702e+01
+1.8889932570070179e+01
+1.8897583106317768e+01
+1.8905230617850979e+01
+1.8912875092854879e+01
+1.8920516518368707e+01
+1.8928154881145250e+01
+1.8935790167990621e+01
+1.8943422366330843e+01
+1.8951051463991902e+01
+1.8958677448800398e+01
+1.8966300308220799e+01
+1.8973920029156261e+01
+1.8981536598461652e+01
+1.8989150003194716e+01
+1.8996760231224737e+01
+1.9004367270623884e+01
+1.9011971109405142e+01
+1.9019571734893479e+01
+1.9027169133969995e+01
+1.9034763293513826e+01
+1.9042354200730252e+01
+1.9049941843330075e+01
+1.9057526209067582e+01
+1.9065107285579369e+01
+1.9072685060031255e+01
+1.9080259519471365e+01
+1.9087830650963987e+01
+1.9095398441761219e+01
+1.9102962879236358e+01
+1.9110523950770954e+01
+1.9118081644121336e+01
+1.9125635947624765e+01
+1.9133186849668466e+01
+1.9140734338181311e+01
+1.9148278399258746e+01
+1.9155819018537866e+01
+1.9163356181829183e+01
+1.9170889876959283e+01
+1.9178420093055436e+01
+1.9185946819246784e+01
+1.9193470043473525e+01
+1.9200989751832992e+01
+1.9208505930264007e+01
+1.9216018565093204e+01
+1.9223527644198501e+01
+1.9231033155845633e+01
+1.9238535088264822e+01
+1.9246033429273464e+01
+1.9253528166422608e+01
+1.9261019287252378e+01
+1.9268506778912720e+01
+1.9275990627948833e+01
+1.9283470820853903e+01
+1.9290947344403826e+01
+1.9298420186505361e+01
+1.9305889335347988e+01
+1.9313354779076874e+01
+1.9320816505322039e+01
+1.9328274501381127e+01
+1.9335728754544832e+01
+1.9343179252018093e+01
+1.9350625980872948e+01
+1.9358068928170006e+01
+1.9365508081087299e+01
+1.9372943427272531e+01
+1.9380374954490840e+01
+1.9387802650461108e+01
+1.9395226502364558e+01
+1.9402646497035530e+01
+1.9410062621311386e+01
+1.9417474862557409e+01
+1.9424883208957176e+01
+1.9432287648764653e+01
+1.9439688169973113e+01
+1.9447084759533045e+01
+1.9454477404134234e+01
+1.9461866090521028e+01
+1.9469250806071969e+01
+1.9476631538574750e+01
+1.9484008275819253e+01
+1.9491381005316875e+01
+1.9498749714147355e+01
+1.9506114389353318e+01
+1.9513475018031823e+01
+1.9520831587497714e+01
+1.9528184085120280e+01
+1.9535532498321597e+01
+1.9542876815137468e+01
+1.9550217023999643e+01
+1.9557553113327728e+01
+1.9564885070416768e+01
+1.9572212880818746e+01
+1.9579536529935694e+01
+1.9586856003857765e+01
+1.9594171291427596e+01
+1.9601482382175934e+01
+1.9608789265470815e+01
+1.9616091928788698e+01
+1.9623390358385659e+01
+1.9630684540503676e+01
+1.9637974461758660e+01
+1.9645260109346136e+01
+1.9652541470511483e+01
+1.9659818532646838e+01
+1.9667091283731310e+01
+1.9674359711890769e+01
+1.9681623805183918e+01
+1.9688883550888736e+01
+1.9696138935779508e+01
+1.9703389946627500e+01
+1.9710636570526955e+01
+1.9717878795072735e+01
+1.9725116607902770e+01
+1.9732349996644164e+01
+1.9739578948880744e+01
+1.9746803452185507e+01
+1.9754023494104853e+01
+1.9761239061875880e+01
+1.9768450142536153e+01
+1.9775656723123628e+01
+1.9782858790900068e+01
+1.9790056333474098e+01
+1.9797249338484200e+01
+1.9804437793511784e+01
+1.9811621685910023e+01
+1.9818801002975018e+01
+1.9825975732019614e+01
+1.9833145860551223e+01
+1.9840311376202770e+01
+1.9847472266605639e+01
+1.9854628519172188e+01
+1.9861780120975315e+01
+1.9868927059058706e+01
+1.9876069320548726e+01
+1.9883206892902400e+01
+1.9890339763659423e+01
+1.9897467920370929e+01
+1.9904591350721116e+01
+1.9911710042480006e+01
+1.9918823983409656e+01
+1.9925933160707771e+01
+1.9933037560697308e+01
+1.9940137169625981e+01
+1.9947231974195290e+01
+1.9954321962921941e+01
+1.9961407124776436e+01
+1.9968487448586906e+01
+1.9975562921526524e+01
+1.9982633529700728e+01
+1.9989699259210855e+01
+1.9996760096979607e+01
+2.0003816031202788e+01
+2.0010867050185730e+01
+2.0017913141980696e+01
+2.0024954293627708e+01
+2.0031990491913721e+01
+2.0039021723675155e+01
+2.0046047976323450e+01
+2.0053069237641033e+01
+2.0060085495411862e+01
+2.0067096737141583e+01
+2.0074102949904464e+01
+2.0081104120737653e+01
+2.0088100236743127e+01
+2.0095091285282123e+01
+2.0102077253780703e+01
+2.0109058129698862e+01
+2.0116033900891079e+01
+2.0123004555466355e+01
+2.0129970081526292e+01
+2.0136930466474549e+01
+2.0143885696632978e+01
+2.0150835758230372e+01
+2.0157780637887619e+01
+2.0164720323793990e+01
+2.0171654804530856e+01
+2.0178584068554592e+01
+2.0185508102868500e+01
+2.0192426893538432e+01
+2.0199340426632617e+01
+2.0206248689299645e+01
+2.0213151670362638e+01
+2.0220049358788781e+01
+2.0226941743077948e+01
+2.0233828809860846e+01
+2.0240710545300885e+01
+2.0247586935634363e+01
+2.0254457967944891e+01
+2.0261323629862709e+01
+2.0268183909030128e+01
+2.0275038793266148e+01
+2.0281888270663636e+01
+2.0288732329339012e+01
+2.0295570957140249e+01
+2.0302404140841443e+01
+2.0309231866948242e+01
+2.0316054122021164e+01
+2.0322870893258649e+01
+2.0329682168270690e+01
+2.0336487934675620e+01
+2.0343288180180529e+01
+2.0350082892630084e+01
+2.0356872059880786e+01
+2.0363655669661426e+01
+2.0370433709189921e+01
+2.0377206165556458e+01
+2.0383973025846149e+01
+2.0390734277084857e+01
+2.0397489906260230e+01
+2.0404239900367635e+01
+2.0410984246903134e+01
+2.0417722934138880e+01
+2.0424455950413790e+01
+2.0431183283723609e+01
+2.0437904920691349e+01
+2.0444620847596859e+01
+2.0451331050810747e+01
+2.0458035517758869e+01
+2.0464734236547869e+01
+2.0471427195291284e+01
+2.0478114381834729e+01
+2.0484795783608536e+01
+2.0491471388007323e+01
+2.0498141182378994e+01
+2.0504805153884629e+01
+2.0511463289638591e+01
+2.0518115576775870e+01
+2.0524762002671078e+01
+2.0531402554853447e+01
+2.0538037220856229e+01
+2.0544665988300117e+01
+2.0551288844941315e+01
+2.0557905778547688e+01
+2.0564516776625663e+01
+2.0571121825635917e+01
+2.0577720911777703e+01
+2.0584314021375519e+01
+2.0590901142209834e+01
+2.0597482263000455e+01
+2.0604057372471487e+01
+2.0610626458665664e+01
+2.0617189508569574e+01
+2.0623746509078952e+01
+2.0630297447118991e+01
+2.0636842309732675e+01
+2.0643381083992434e+01
+2.0649913757026937e+01
+2.0656440316618546e+01
+2.0662960750971358e+01
+2.0669475048285879e+01
+2.0675983196125639e+01
+2.0682485181066856e+01
+2.0688980989600807e+01
+2.0695470608403387e+01
+2.0701954024888877e+01
+2.0708431226656170e+01
+2.0714902201330585e+01
+2.0721366936844742e+01
+2.0727825421329527e+01
+2.0734277642907578e+01
+2.0740723589008798e+01
+2.0747163245989334e+01
+2.0753596600112960e+01
+2.0760023637955207e+01
+2.0766444347338588e+01
+2.0772858716397348e+01
+2.0779266733238998e+01
+2.0785668385660131e+01
+2.0792063661256730e+01
+2.0798452547614811e+01
+2.0804835031922245e+01
+2.0811211100749787e+01
+2.0817580740615103e+01
+2.0823943938303792e+01
+2.0830300681673187e+01
+2.0836650958848551e+01
+2.0842994757917634e+01
+2.0849332066532096e+01
+2.0855662872062240e+01
+2.0861987161871372e+01
+2.0868304923184056e+01
+2.0874616143009792e+01
+2.0880920808339592e+01
+2.0887218906300713e+01
+2.0893510424565431e+01
+2.0899795350942270e+01
+2.0906073673190203e+01
+2.0912345378492109e+01
+2.0918610453659188e+01
+2.0924868885506221e+01
+2.0931120661434221e+01
+2.0937365769752848e+01
+2.0943604198849943e+01
+2.0949835936717431e+01
+2.0956060969763648e+01
+2.0962279284001021e+01
+2.0968490865585412e+01
+2.0974695702340036e+01
+2.0980893783163818e+01
+2.0987085096957486e+01
+2.0993269631653490e+01
+2.0999447373683466e+01
+2.1005618309349945e+01
+2.1011782425183537e+01
+2.1017939708627164e+01
+2.1024090147351821e+01
+2.1030233729047623e+01
+2.1036370441626790e+01
+2.1042500273144874e+01
+2.1048623211649868e+01
+2.1054739244594249e+01
+2.1060848358507396e+01
+2.1066950539839304e+01
+2.1073045775217064e+01
+2.1079134051976286e+01
+2.1085215357629693e+01
+2.1091289679725190e+01
+2.1097357006219735e+01
+2.1103417325334185e+01
+2.1109470625281602e+01
+2.1115516893544374e+01
+2.1121556116472284e+01
+2.1127588280317710e+01
+2.1133613371720624e+01
+2.1139631378871460e+01
+2.1145642290348256e+01
+2.1151646094590475e+01
+2.1157642778426450e+01
+2.1163632327645090e+01
+2.1169614728042369e+01
+2.1175589966877702e+01
+2.1181558033678833e+01
+2.1187518918168635e+01
+2.1193472609267218e+01
+2.1199419092683634e+01
+2.1205358353324179e+01
+2.1211290376308472e+01
+2.1217215149236232e+01
+2.1223132661307201e+01
+2.1229042901730910e+01
+2.1234945858703156e+01
+2.1240841518848448e+01
+2.1246729868656139e+01
+2.1252610894849891e+01
+2.1258484585090628e+01
+2.1264350927273593e+01
+2.1270209909249292e+01
+2.1276061518348136e+01
+2.1281905741564991e+01
+2.1287742565892874e+01
+2.1293571978548851e+01
+2.1299393967097270e+01
+2.1305208519132353e+01
+2.1311015622203019e+01
+2.1316815263676983e+01
+2.1322607430876658e+01
+2.1328392111146609e+01
+2.1334169292088987e+01
+2.1339938961472107e+01
+2.1345701107057828e+01
+2.1351455716053788e+01
+2.1357202774808599e+01
+2.1362942269596974e+01
+2.1368674187140908e+01
+2.1374398515951523e+01
+2.1380115244987216e+01
+2.1385824363070537e+01
+2.1391525857444631e+01
+2.1397219714333705e+01
+2.1402905919953827e+01
+2.1408584461053028e+01
+2.1414255325203833e+01
+2.1419918500049707e+01
+2.1425573973275515e+01
+2.1431221732731721e+01
+2.1436861766310201e+01
+2.1442494061862359e+01
+2.1448118606769217e+01
+2.1453735388108310e+01
+2.1459344392953376e+01
+2.1464945608453363e+01
+2.1470539021873805e+01
+2.1476124620490257e+01
+2.1481702391580694e+01
+2.1487272322432723e+01
+2.1492834400336370e+01
+2.1498388612627402e+01
+2.1503934947173605e+01
+2.1509473392185971e+01
+2.1515003935868489e+01
+2.1520526565661367e+01
+2.1526041267820936e+01
+2.1531548028501692e+01
+2.1537046834260742e+01
+2.1542537673265642e+01
+2.1548020534086547e+01
+2.1553495405180108e+01
+2.1558962273683349e+01
+2.1564421125881932e+01
+2.1569871948059212e+01
+2.1575314727212145e+01
+2.1580749451443747e+01
+2.1586176108952177e+01
+2.1591594687767461e+01
+2.1597005175247116e+01
+2.1602407558580524e+01
+2.1607801824984975e+01
+2.1613187962002286e+01
+2.1618565957383623e+01
+2.1623935798875397e+01
+2.1629297473728876e+01
+2.1634650968427859e+01
+2.1639996269390128e+01
+2.1645333363368888e+01
+2.1650662238459049e+01
+2.1655982883090942e+01
+2.1661295285603764e+01
+2.1666599433277227e+01
+2.1671895312707516e+01
+2.1677182910489538e+01
+2.1682462213825556e+01
+2.1687733210859243e+01
+2.1692995889815251e+01
+2.1698250238691859e+01
+2.1703496244581853e+01
+2.1708733894351646e+01
+2.1713963174888857e+01
+2.1719184073327700e+01
+2.1724396576961468e+01
+2.1729600673086974e+01
+2.1734796349052779e+01
+2.1739983592287651e+01
+2.1745162390227250e+01
+2.1750332730413842e+01
+2.1755494600816075e+01
+2.1760647989509181e+01
+2.1765792884489507e+01
+2.1770929272836266e+01
+2.1776057141036976e+01
+2.1781176475575744e+01
+2.1786287263324187e+01
+2.1791389491754551e+01
+2.1796483148390752e+01
+2.1801568220838195e+01
+2.1806644697028272e+01
+2.1811712564973863e+01
+2.1816771812645751e+01
+2.1821822427525358e+01
+2.1826864396778383e+01
+2.1831897707563336e+01
+2.1836922346923547e+01
+2.1841938301723815e+01
+2.1846945558813569e+01
+2.1851944105299967e+01
+2.1856933929321027e+01
+2.1861915019272502e+01
+2.1866887363447113e+01
+2.1871850948939972e+01
+2.1876805762073548e+01
+2.1881751789169442e+01
+2.1886689017270221e+01
+2.1891617434535974e+01
+2.1896537029222916e+01
+2.1901447789352389e+01
+2.1906349702006292e+01
+2.1911242754031655e+01
+2.1916126932308654e+01
+2.1921002224102889e+01
+2.1925868616928632e+01
+2.1930726098304984e+01
+2.1935574655793282e+01
+2.1940414277020313e+01
+2.1945244949618491e+01
+2.1950066661128886e+01
+2.1954879398727176e+01
+2.1959683149497693e+01
+2.1964477900547820e+01
+2.1969263639252933e+01
+2.1974040353161318e+01
+2.1978808029822279e+01
+2.1983566656674085e+01
+2.1988316220982881e+01
+2.1993056710000005e+01
+2.1997788111142807e+01
+2.2002510412492747e+01
+2.2007223602297291e+01
+2.2011927668688504e+01
+2.2016622598456856e+01
+2.2021308377527259e+01
+2.2025984991825538e+01
+2.2030652428197190e+01
+2.2035310674913188e+01
+2.2039959720367140e+01
+2.2044599552768190e+01
+2.2049230159587641e+01
+2.2053851528112336e+01
+2.2058463645613852e+01
+2.2063066499186284e+01
+2.2067660075809226e+01
+2.2072244362466716e+01
+2.2076819346524456e+01
+2.2081385015939727e+01
+2.2085941358720682e+01
+2.2090488362727381e+01
+2.2095026015227464e+01
+2.2099554303340465e+01
+2.2104073214182371e+01
+2.2108582734827905e+01
+2.2113082852325146e+01
+2.2117573553729070e+01
+2.2122054826533553e+01
+2.2126526658912784e+01
+2.2130989039099482e+01
+2.2135441954977246e+01
+2.2139885393033193e+01
+2.2144319339405335e+01
+2.2148743780364281e+01
+2.2153158703722166e+01
+2.2157564098285658e+01
+2.2161959952862397e+01
+2.2166346255324211e+01
+2.2170722992092426e+01
+2.2175090149463575e+01
+2.2179447714004066e+01
+2.2183795673359729e+01
+2.2188134015446252e+01
+2.2192462728144722e+01
+2.2196781798933909e+01
+2.2201091215033038e+01
+2.2205390963659983e+01
+2.2209681032211780e+01
+2.2213961408363136e+01
+2.2218232079812662e+01
+2.2222493034119420e+01
+2.2226744258284377e+01
+2.2230985739168961e+01
+2.2235217463676026e+01
+2.2239439419190035e+01
+2.2243651593406156e+01
+2.2247853974023595e+01
+2.2252046548672404e+01
+2.2256229304875465e+01
+2.2260402230146440e+01
+2.2264565311985180e+01
+2.2268718537836293e+01
+2.2272861895130568e+01
+2.2276995371288088e+01
+2.2281118953604416e+01
+2.2285232629294779e+01
+2.2289336385573460e+01
+2.2293430209678153e+01
+2.2297514088882835e+01
+2.2301588010464606e+01
+2.2305651961696142e+01
+2.2309705929832450e+01
+2.2313749902124123e+01
+2.2317783865866517e+01
+2.2321807808875413e+01
+2.2325821719302358e+01
+2.2329825585295186e+01
+2.2333819394443157e+01
+2.2337803133469755e+01
+2.2341776789023992e+01
+2.2345740347989022e+01
+2.2349693798184603e+01
+2.2353637127664637e+01
+2.2357570324397930e+01
+2.2361493375363999e+01
+2.2365406266904102e+01
+2.2369308985362800e+01
+2.2373201517920890e+01
+2.2377083853055353e+01
+2.2380955979354663e+01
+2.2384817885137235e+01
+2.2388669557641258e+01
+2.2392510983834867e+01
+2.2396342150680415e+01
+2.2400163045073128e+01
+2.2403973653864945e+01
+2.2407773963916679e+01
+2.2411563962666495e+01
+2.2415343638447400e+01
+2.2419112979669382e+01
+2.2422871974396795e+01
+2.2426620609311410e+01
+2.2430358870749366e+01
+2.2434086745139957e+01
+2.2437804219995435e+01
+2.2441511283526747e+01
+2.2445207923947581e+01
+2.2448894128937983e+01
+2.2452569885350833e+01
+2.2456235179967852e+01
+2.2459889999771693e+01
+2.2463534332548679e+01
+2.2467168166286068e+01
+2.2470791488935564e+01
+2.2474404288035732e+01
+2.2478006550858584e+01
+2.2481598264667205e+01
+2.2485179416455988e+01
+2.2488749992802820e+01
+2.2492309980249775e+01
+2.2495859365674207e+01
+2.2499398137294595e+01
+2.2502926283664706e+01
+2.2506443793253982e+01
+2.2509950653551559e+01
+2.2513446851414113e+01
+2.2516932373691347e+01
+2.2520407207446784e+01
+2.2523871340075374e+01
+2.2527324759000585e+01
+2.2530767451710830e+01
+2.2534199405954325e+01
+2.2537620609544245e+01
+2.2541031050231673e+01
+2.2544430715045987e+01
+2.2547819590550940e+01
+2.2551197663311235e+01
+2.2554564920413490e+01
+2.2557921349753311e+01
+2.2561266939295894e+01
+2.2564601676935752e+01
+2.2567925550284617e+01
+2.2571238546883549e+01
+2.2574540654240845e+01
+2.2577831859484121e+01
+2.2581112149495389e+01
+2.2584381511157357e+01
+2.2587639931640474e+01
+2.2590887398561190e+01
+2.2594123899574317e+01
+2.2597349422350156e+01
+2.2600563954620984e+01
+2.2603767484134572e+01
+2.2606959998582475e+01
+2.2610141485002771e+01
+2.2613311930011950e+01
+2.2616471320231181e+01
+2.2619619642984162e+01
+2.2622756886683518e+01
+2.2625883039835546e+01
+2.2628998090531944e+01
+2.2632102025206013e+01
+2.2635194829876472e+01
+2.2638276490683587e+01
+2.2641346995180729e+01
+2.2644406331832958e+01
+2.2647454489111006e+01
+2.2650491454914494e+01
+2.2653517216257832e+01
+2.2656531760079286e+01
+2.2659535073396615e+01
+2.2662527143545610e+01
+2.2665507957941568e+01
+2.2668477504013147e+01
+2.2671435769344438e+01
+2.2674382741619802e+01
+2.2677318408521689e+01
+2.2680242757517917e+01
+2.2683155775743600e+01
+2.2686057450305238e+01
+2.2688947768382349e+01
+2.2691826717446538e+01
+2.2694694285042431e+01
+2.2697550458686994e+01
+2.2700395225575548e+01
+2.2703228572695917e+01
+2.2706050487038571e+01
+2.2708860955960500e+01
+2.2711659967386797e+01
+2.2714447509291432e+01
+2.2717223569485753e+01
+2.2719988135130695e+01
+2.2722741193224575e+01
+2.2725482730799982e+01
+2.2728212735287777e+01
+2.2730931194375792e+01
+2.2733638095755090e+01
+2.2736333427054312e+01
+2.2739017175805309e+01
+2.2741689329531614e+01
+2.2744349875578816e+01
+2.2746998800580766e+01
+2.2749636090993363e+01
+2.2752261733374258e+01
+2.2754875715463875e+01
+2.2757478025765717e+01
+2.2760068652786330e+01
+2.2762647584452310e+01
+2.2765214807791310e+01
+2.2767770309753661e+01
+2.2770314077357227e+01
+2.2772846097889989e+01
+2.2775366358707469e+01
+2.2777874847163027e+01
+2.2780371550584906e+01
+2.2782856456285153e+01
+2.2785329551577394e+01
+2.2787790823886368e+01
+2.2790240260809064e+01
+2.2792677849957286e+01
+2.2795103578902896e+01
+2.2797517435058058e+01
+2.2799919405794991e+01
+2.2802309478472601e+01
+2.2804687640294937e+01
+2.2807053878366148e+01
+2.2809408179793660e+01
+2.2811750531982085e+01
+2.2814080922796641e+01
+2.2816399340142176e+01
+2.2818705771705471e+01
+2.2821000204301040e+01
+2.2823282624525348e+01
+2.2825553019057764e+01
+2.2827811375541568e+01
+2.2830057682241904e+01
+2.2832291927426912e+01
+2.2834514098922330e+01
+2.2836724183868160e+01
+2.2838922169345420e+01
+2.2841108042517490e+01
+2.2843281790877175e+01
+2.2845443401999646e+01
+2.2847592863398063e+01
+2.2849730161864731e+01
+2.2851855283726881e+01
+2.2853968215322027e+01
+2.2856068944069200e+01
+2.2858157459063801e+01
+2.2860233749545426e+01
+2.2862297804170339e+01
+2.2864349609261456e+01
+2.2866389150558344e+01
+2.2868416413918656e+01
+2.2870431386572566e+01
+2.2872434056635772e+01
+2.2874424412234863e+01
+2.2876402441264570e+01
+2.2878368131260256e+01
+2.2880321469726358e+01
+2.2882262444114485e+01
+2.2884191041664863e+01
+2.2886107249564873e+01
+2.2888011055016026e+01
+2.2889902445383996e+01
+2.2891781408140375e+01
+2.2893647930755900e+01
+2.2895502000543534e+01
+2.2897343604571738e+01
+2.2899172729887923e+01
+2.2900989363687383e+01
+2.2902793493756885e+01
+2.2904585108031085e+01
+2.2906364194396023e+01
+2.2908130740172705e+01
+2.2909884732317618e+01
+2.2911626157787602e+01
+2.2913355003926036e+01
+2.2915071258675425e+01
+2.2916774910029819e+01
+2.2918465945723522e+01
+2.2920144352451921e+01
+2.2921810116650661e+01
+2.2923463224869273e+01
+2.2925103664981251e+01
+2.2926731425714234e+01
+2.2928346495790567e+01
+2.2929948862760057e+01
+2.2931538512355097e+01
+2.2933115430151741e+01
+2.2934679602374228e+01
+2.2936231017839553e+01
+2.2937769666012905e+01
+2.2939295536163833e+01
+2.2940808615287683e+01
+2.2942308888912553e+01
+2.2943796342563228e+01
+2.2945270963031948e+01
+2.2946732739075564e+01
+2.2948181659619905e+01
+2.2949617713120055e+01
+2.2951040886148068e+01
+2.2952451164805240e+01
+2.2953848535326308e+01
+2.2955232985497133e+01
+2.2956604504104330e+01
+2.2957963079931968e+01
+2.2959308700611849e+01
+2.2960641351989747e+01
+2.2961961019757787e+01
+2.2963267690199103e+01
+2.2964561351960807e+01
+2.2965841994281021e+01
+2.2967109606232604e+01
+2.2968364174967288e+01
+2.2969605686397387e+01
+2.2970834126427523e+01
+2.2972049481740541e+01
+2.2973251740225535e+01
+2.2974440889875357e+01
+2.2975616918605152e+01
+2.2976779814019210e+01
+2.2977929563644100e+01
+2.2979066154995358e+01
+2.2980189575460130e+01
+2.2981299812342748e+01
+2.2982396852946014e+01
+2.2983480684564444e+01
+2.2984551294479694e+01
+2.2985608669972315e+01
+2.2986652798323131e+01
+2.2987683666814082e+01
+2.2988701262727382e+01
+2.2989705573360791e+01
+2.2990696586192747e+01
+2.2991674288818260e+01
+2.2992638668835134e+01
+2.2993589713892383e+01
+2.2994527411718391e+01
+2.2995451750048360e+01
+2.2996362716474987e+01
+2.2997260298020876e+01
+2.2998144481566118e+01
+2.2999015254002241e+01
+2.2999872602353822e+01
+2.3000716513731259e+01
+2.3001546975254403e+01
+2.3002363974524496e+01
+2.3003167499888910e+01
+2.3003957539759202e+01
+2.3004734082221105e+01
+2.3005497114057029e+01
+2.3006246621723552e+01
+2.3006982591750671e+01
+2.3007705011521793e+01
+2.3008413868970930e+01
+2.3009109152036700e+01
+2.3009790848384185e+01
+2.3010458945254452e+01
+2.3011113429852095e+01
+2.3011754289379915e+01
+2.3012381511033524e+01
+2.3012995082006722e+01
+2.3013594989522826e+01
+2.3014181221148124e+01
+2.3014753764670186e+01
+2.3015312607876645e+01
+2.3015857738337477e+01
+2.3016389143285306e+01
+2.3016906809923729e+01
+2.3017410725457662e+01
+2.3017900877097279e+01
+2.3018377252054062e+01
+2.3018839837567604e+01
+2.3019288621204236e+01
+2.3019723590741098e+01
+2.3020144733955309e+01
+2.3020552038412188e+01
+2.3020945491348758e+01
+2.3021325079973817e+01
+2.3021690791496528e+01
+2.3022042613127628e+01
+2.3022380532078223e+01
+2.3022704535587859e+01
+2.3023014611226589e+01
+2.3023310746777696e+01
+2.3023592930024176e+01
+2.3023861148518588e+01
+2.3024115389456323e+01
+2.3024355640002049e+01
+2.3024581887355982e+01
+2.3024794118860576e+01
+2.3024992321893844e+01
+2.3025176483825650e+01
+2.3025346591931228e+01
+2.3025502633424757e+01
+2.3025644595521861e+01
+2.3025772465586158e+01
+2.3025886231210666e+01
+2.3025985880008133e+01
+2.3026071399624616e+01
+2.3026142777839411e+01
+2.3026200002465128e+01
+2.3026243061255812e+01
+2.3026271941284662e+01
+2.3026286629185641e+01
+2.3026287111593348e+01
+2.3026273375620587e+01
+2.3026245409121362e+01
+2.3026203200013434e+01
+2.3026146736091384e+01
+2.3026076004657060e+01
+2.3025990992889128e+01
+2.3025891687968674e+01
+2.3025778077104935e+01
+2.3025650147525305e+01
+2.3025507886460918e+01
+2.3025351281349035e+01
+2.3025180319946390e+01
+2.3024994990037200e+01
+2.3024795279290228e+01
+2.3024581174912360e+01
+2.3024352663995032e+01
+2.3024109733661739e+01
+2.3023852371408815e+01
+2.3023580564973138e+01
+2.3023294302093404e+01
+2.3022993570377395e+01
+2.3022678357229957e+01
+2.3022348650038477e+01
+2.3022004436056889e+01
+2.3021645702005312e+01
+2.3021272434470394e+01
+2.3020884620135099e+01
+2.3020482246801944e+01
+2.3020065302995739e+01
+2.3019633777239576e+01
+2.3019187657230912e+01
+2.3018726929387487e+01
+2.3018251580016958e+01
+2.3017761595798660e+01
+2.3017256964898664e+01
+2.3016737675854717e+01
+2.3016203717107359e+01
+2.3015655075967029e+01
+2.3015091739015059e+01
+2.3014513692826135e+01
+2.3013920924304813e+01
+2.3013313420866936e+01
+2.3012691169972349e+01
+2.3012054159087537e+01
+2.3011402375705607e+01
+2.3010735807326324e+01
+2.3010054441470601e+01
+2.3009358265905195e+01
+2.3008647268555482e+01
+2.3007921437339846e+01
+2.3007180759599002e+01
+2.3006425221778272e+01
+2.3005654810245954e+01
+2.3004869511764241e+01
+2.3004069314670868e+01
+2.3003254207697477e+01
+2.3002424179433735e+01
+2.3001579216819049e+01
+2.3000719305728140e+01
+2.2999844432034465e+01
+2.2998954582600160e+01
+2.2998049745819834e+01
+2.2997129910219918e+01
+2.2996195064073923e+01
+2.2995245194643672e+01
+2.2994280288938061e+01
+2.2993300333986962e+01
+2.2992305317063984e+01
+2.2991295225600005e+01
+2.2990270047025682e+01
+2.2989229768601664e+01
+2.2988174377325095e+01
+2.2987103860170446e+01
+2.2986018204382805e+01
+2.2984917398289699e+01
+2.2983801430489272e+01
+2.2982670289442318e+01
+2.2981523962012965e+01
+2.2980362434035221e+01
+2.2979185691343055e+01
+2.2977993720797631e+01
+2.2976786510852268e+01
+2.2975564050097237e+01
+2.2974326326858161e+01
+2.2973073328402027e+01
+2.2971805041731162e+01
+2.2970521453865327e+01
+2.2969222552026825e+01
+2.2967908323568640e+01
+2.2966578755845298e+01
+2.2965233836172779e+01
+2.2963873551807314e+01
+2.2962497890000002e+01
+2.2961106838075697e+01
+2.2959700383654294e+01
+2.2958278514429434e+01
+2.2956841218073055e+01
+2.2955388482004583e+01
+2.2953920293480547e+01
+2.2952436639754740e+01
+2.2950937508079345e+01
+2.2949422885704077e+01
+2.2947892759878428e+01
+2.2946347117930529e+01
+2.2944785947503032e+01
+2.2943209236317227e+01
+2.2941616972064846e+01
+2.2940009142094073e+01
+2.2938385733531451e+01
+2.2936746733504481e+01
+2.2935092129420063e+01
+2.2933421909118174e+01
+2.2931736060476030e+01
+2.2930034571159819e+01
+2.2928317427991548e+01
+2.2926584617582193e+01
+2.2924836126613076e+01
+2.2923071942583412e+01
+2.2921292053520080e+01
+2.2919496447451479e+01
+2.2917685111969838e+01
+2.2915858033991306e+01
+2.2914015200373875e+01
+2.2912156598188002e+01
+2.2910282215353973e+01
+2.2908392040004536e+01
+2.2906486060184804e+01
+2.2904564262921109e+01
+2.2902626634582514e+01
+2.2900673161539725e+01
+2.2898703830919807e+01
+2.2896718631022161e+01
+2.2894717550247041e+01
+2.2892700576807375e+01
+2.2890667698166773e+01
+2.2888618901601529e+01
+2.2886554174349843e+01
+2.2884473503207190e+01
+2.2882376874683388e+01
+2.2880264275296735e+01
+2.2878135692358537e+01
+2.2875991114409292e+01
+2.2873830530095237e+01
+2.2871653927674025e+01
+2.2869461293849010e+01
+2.2867252614934969e+01
+2.2865027877330999e+01
+2.2862787068416434e+01
+2.2860530176203028e+01
+2.2858257188708173e+01
+2.2855968093655960e+01
+2.2853662878315841e+01
+2.2851341529918159e+01
+2.2849004035669179e+01
+2.2846650382678863e+01
+2.2844280558033109e+01
+2.2841894548860513e+01
+2.2839492342786208e+01
+2.2837073927755661e+01
+2.2834639291713401e+01
+2.2832188422227311e+01
+2.2829721306281456e+01
+2.2827237930809691e+01
+2.2824738282894078e+01
+2.2822222350209532e+01
+2.2819690120579185e+01
+2.2817141581806613e+01
+2.2814576721467979e+01
+2.2811995526992749e+01
+2.2809397985802313e+01
+2.2806784084981292e+01
+2.2804153811092263e+01
+2.2801507150652913e+01
+2.2798844090489375e+01
+2.2796164618661582e+01
+2.2793468723537920e+01
+2.2790756393433711e+01
+2.2788027616047351e+01
+2.2785282378679231e+01
+2.2782520668618307e+01
+2.2779742472865927e+01
+2.2776947777977608e+01
+2.2774136570470521e+01
+2.2771308837189025e+01
+2.2768464566286223e+01
+2.2765603746242398e+01
+2.2762726365468033e+01
+2.2759832411562169e+01
+2.2756921871600323e+01
+2.2753994732647030e+01
+2.2751050981630804e+01
+2.2748090605269343e+01
+2.2745113590262211e+01
+2.2742119923622280e+01
+2.2739109593615691e+01
+2.2736082588821919e+01
+2.2733038897707996e+01
+2.2729978507434037e+01
+2.2726901404316980e+01
+2.2723807574670261e+01
+2.2720697005440453e+01
+2.2717569684555478e+01
+2.2714425600027688e+01
+2.2711264739796086e+01
+2.2708087091506343e+01
+2.2704892642730798e+01
+2.2701681380999975e+01
+2.2698453293358412e+01
+2.2695208366537106e+01
+2.2691946587269612e+01
+2.2688667942757313e+01
+2.2685372420926704e+01
+2.2682060009766655e+01
+2.2678730697107728e+01
+2.2675384470147243e+01
+2.2672021315924226e+01
+2.2668641221487544e+01
+2.2665244174000595e+01
+2.2661830160700667e+01
+2.2658399168833146e+01
+2.2654951186055637e+01
+2.2651486200664664e+01
+2.2648004201011720e+01
+2.2644505175050195e+01
+2.2640989109141078e+01
+2.2637455989247254e+01
+2.2633905801464863e+01
+2.2630338533439105e+01
+2.2626754173814561e+01
+2.2623152711240714e+01
+2.2619534133660114e+01
+2.2615898427919618e+01
+2.2612245580771823e+01
+2.2608575579122469e+01
+2.2604888410489849e+01
+2.2601184062545400e+01
+2.2597462522924772e+01
+2.2593723778847572e+01
+2.2589967817264988e+01
+2.2586194625129426e+01
+2.2582404189734696e+01
+2.2578596498903750e+01
+2.2574771540505076e+01
+2.2570929302316383e+01
+2.2567069771752355e+01
+2.2563192936136900e+01
+2.2559298782776793e+01
+2.2555387298779539e+01
+2.2551458471124096e+01
+2.2547512286794028e+01
+2.2543548733178170e+01
+2.2539567798293529e+01
+2.2535569470211165e+01
+2.2531553736787785e+01
+2.2527520585022764e+01
+2.2523470001701138e+01
+2.2519401973671624e+01
+2.2515316488523187e+01
+2.2511213534322376e+01
+2.2507093099135108e+01
+2.2502955170511548e+01
+2.2498799735202454e+01
+2.2494626779889810e+01
+2.2490436291431813e+01
+2.2486228257391449e+01
+2.2482002665507906e+01
+2.2477759503495829e+01
+2.2473498758784473e+01
+2.2469220418618985e+01
+2.2464924470244629e+01
+2.2460610901098516e+01
+2.2456279698915107e+01
+2.2451930851454438e+01
+2.2447564346280195e+01
+2.2443180170170638e+01
+2.2438778309707672e+01
+2.2434358751565853e+01
+2.2429921483496859e+01
+2.2425466493947287e+01
+2.2420993771366359e+01
+2.2416503303666204e+01
+2.2411995077926449e+01
+2.2407469081155103e+01
+2.2402925300313633e+01
+2.2398363722177304e+01
+2.2393784333474834e+01
+2.2389187121029106e+01
+2.2384572072757653e+01
+2.2379939177284214e+01
+2.2375288423229062e+01
+2.2370619798297277e+01
+2.2365933288775409e+01
+2.2361228880827976e+01
+2.2356506560972079e+01
+2.2351766317135109e+01
+2.2347008137597040e+01
+2.2342232010568228e+01
+2.2337437923449926e+01
+2.2332625863121354e+01
+2.2327795816456401e+01
+2.2322947770530419e+01
+2.2318081712731036e+01
+2.2313197630472754e+01
+2.2308295511212823e+01
+2.2303375342579553e+01
+2.2298437112244006e+01
+2.2293480807880552e+01
+2.2288506417201937e+01
+2.2283513927945670e+01
+2.2278503327839854e+01
+2.2273474604023793e+01
+2.2268427742724167e+01
+2.2263362730089135e+01
+2.2258279552743357e+01
+2.2253178199217452e+01
+2.2248058658518534e+01
+2.2242920919496186e+01
+2.2237764969168666e+01
+2.2232590793372758e+01
+2.2227398377943363e+01
+2.2222187709785203e+01
+2.2216958777461176e+01
+2.2211711569676822e+01
+2.2206446074826598e+01
+2.2201162280060633e+01
+2.2195860172217980e+01
+2.2190539738147905e+01
+2.2185200964818481e+01
+2.2179843839274426e+01
+2.2174468348567490e+01
+2.2169074480094579e+01
+2.2163662221787611e+01
+2.2158231561624518e+01
+2.2152782487482344e+01
+2.2147314986834573e+01
+2.2141829047053797e+01
+2.2136324655483069e+01
+2.2130801799121997e+01
+2.2125260464748600e+01
+2.2119700639145833e+01
+2.2114122309613638e+01
+2.2108525464253308e+01
+2.2102910091235071e+01
+2.2097276178508913e+01
+2.2091623713143903e+01
+2.2085952681988875e+01
+2.2080263071923788e+01
+2.2074554870190468e+01
+2.2068828064264213e+01
+2.2063082641626803e+01
+2.2057318589916211e+01
+2.2051535897012510e+01
+2.2045734550816590e+01
+2.2039914539046155e+01
+2.2034075848686200e+01
+2.2028218466538526e+01
+2.2022342379442080e+01
+2.2016447574667730e+01
+2.2010534039764995e+01
+2.2004601762288448e+01
+2.1998650729817594e+01
+2.1992680929970550e+01
+2.1986692350368774e+01
+2.1980684978474976e+01
+2.1974658801116931e+01
+2.1968613804963699e+01
+2.1962549976784835e+01
+2.1956467304518370e+01
+2.1950365776856195e+01
+2.1944245382486322e+01
+2.1938106109109860e+01
+2.1931947942898248e+01
+2.1925770869891323e+01
+2.1919574876489097e+01
+2.1913359950532186e+01
+2.1907126080221360e+01
+2.1900873253716487e+01
+2.1894601458701814e+01
+2.1888310682554739e+01
+2.1882000912645637e+01
+2.1875672136230655e+01
+2.1869324340388893e+01
+2.1862957512184209e+01
+2.1856571638724738e+01
+2.1850166707295696e+01
+2.1843742705226582e+01
+2.1837299619876411e+01
+2.1830837438947363e+01
+2.1824356150363045e+01
+2.1817855742044447e+01
+2.1811336201535269e+01
+2.1804797515794423e+01
+2.1798239671730510e+01
+2.1791662656328757e+01
+2.1785066456880916e+01
+2.1778451060755351e+01
+2.1771816455348706e+01
+2.1765162628386094e+01
+2.1758489567804567e+01
+2.1751797261537870e+01
+2.1745085697108472e+01
+2.1738354861401394e+01
+2.1731604741246834e+01
+2.1724835323610179e+01
+2.1718046595997603e+01
+2.1711238546050478e+01
+2.1704411161399776e+01
+2.1697564429555555e+01
+2.1690698337949872e+01
+2.1683812874011672e+01
+2.1676908025062250e+01
+2.1669983778255983e+01
+2.1663040120732884e+01
+2.1656077039835417e+01
+2.1649094523715796e+01
+2.1642092560728670e+01
+2.1635071139084030e+01
+2.1628030245310196e+01
+2.1620969864850551e+01
+2.1613889983155914e+01
+2.1606790587208824e+01
+2.1599671666365992e+01
+2.1592533210188350e+01
+2.1585375207653914e+01
+2.1578197645409070e+01
+2.1571000509517287e+01
+2.1563783786108214e+01
+2.1556547462080715e+01
+2.1549291524829940e+01
+2.1542015961767262e+01
+2.1534720760781074e+01
+2.1527405910499173e+01
+2.1520071399612949e+01
+2.1512717216274932e+01
+2.1505343346482164e+01
+2.1497949775692810e+01
+2.1490536489542226e+01
+2.1483103475725585e+01
+2.1475650723266973e+01
+2.1468178221196997e+01
+2.1460685957609137e+01
+2.1453173919144298e+01
+2.1445642092318440e+01
+2.1438090463841778e+01
+2.1430519021201576e+01
+2.1422927752079353e+01
+2.1415316644130360e+01
+2.1407685684704635e+01
+2.1400034860955273e+01
+2.1392364160038156e+01
+2.1384673569472127e+01
+2.1376963077338665e+01
+2.1369232671767634e+01
+2.1361482340589600e+01
+2.1353712070437911e+01
+2.1345921847646629e+01
+2.1338111658644905e+01
+2.1330281490967568e+01
+2.1322431332862767e+01
+2.1314561172580365e+01
+2.1306670997759166e+01
+2.1298760795090850e+01
+2.1290830551185607e+01
+2.1282880252901041e+01
+2.1274909888084313e+01
+2.1266919444829984e+01
+2.1258908911181820e+01
+2.1250878274593113e+01
+2.1242827522136196e+01
+2.1234756640882676e+01
+2.1226665618241725e+01
+2.1218554442145724e+01
+2.1210423100572068e+01
+2.1202271581174937e+01
+2.1194099870315657e+01
+2.1185907954032338e+01
+2.1177695818506734e+01
+2.1169463451590477e+01
+2.1161210842212554e+01
+2.1152937979300795e+01
+2.1144644850637267e+01
+2.1136331442228116e+01
+2.1127997739926716e+01
+2.1119643730128505e+01
+2.1111269401397216e+01
+2.1102874742838654e+01
+2.1094459743431980e+01
+2.1086024390684219e+01
+2.1077568671152640e+01
+2.1069092571385678e+01
+2.1060596078350908e+01
+2.1052079179665633e+01
+2.1043541863003021e+01
+2.1034984115591715e+01
+2.1026405922882176e+01
+2.1017807269880333e+01
+2.1009188141917985e+01
+2.1000548528115278e+01
+2.0991888420036474e+01
+2.0983207809244202e+01
+2.0974506684759206e+01
+2.0965785031662357e+01
+2.0957042834695585e+01
+2.0948280079273470e+01
+2.0939496753501075e+01
+2.0930692846156095e+01
+2.0921868345780656e+01
+2.0913023238178354e+01
+2.0904157507385996e+01
+2.0895271137464469e+01
+2.0886364115686497e+01
+2.0877436434303146e+01
+2.0868488085993757e+01
+2.0859519061900027e+01
+2.0850529347013154e+01
+2.0841518924786730e+01
+2.0832487778969064e+01
+2.0823435896734665e+01
+2.0814363267468469e+01
+2.0805269880560889e+01
+2.0796155723519956e+01
+2.0787020780936011e+01
+2.0777865037148409e+01
+2.0768688477794992e+01
+2.0759491093707506e+01
+2.0750272877016201e+01
+2.0741033819454334e+01
+2.0731773908140354e+01
+2.0722493127215415e+01
+2.0713191460800378e+01
+2.0703868894775713e+01
+2.0694525417749290e+01
+2.0685161018563591e+01
+2.0675775685320449e+01
+2.0666369403159131e+01
+2.0656942156478259e+01
+2.0647493930065352e+01
+2.0638024713228912e+01
+2.0628534498194252e+01
+2.0619023277183302e+01
+2.0609491039299655e+01
+2.0599937768813454e+01
+2.0590363449579069e+01
+2.0580768066383353e+01
+2.0571151607743097e+01
+2.0561514063107559e+01
+2.0551855421648465e+01
+2.0542175669310851e+01
+2.0532474789958044e+01
+2.0522752767469893e+01
+2.0513009588799665e+01
+2.0503245245664473e+01
+2.0493459730191205e+01
+2.0483653033387672e+01
+2.0473825141785362e+01
+2.0463976040796677e+01
+2.0454105715802996e+01
+2.0444214151825182e+01
+2.0434301333651469e+01
+2.0424367246111927e+01
+2.0414411876779326e+01
+2.0404435217477602e+01
+2.0394437260396391e+01
+2.0384417996445016e+01
+2.0374377411411562e+01
+2.0364315489803808e+01
+2.0354232216311342e+01
+2.0344127577737158e+01
+2.0334001562247746e+01
+2.0323854158012505e+01
+2.0313685352010509e+01
+2.0303495129375889e+01
+2.0293283475084070e+01
+2.0283050375228832e+01
+2.0272795820377404e+01
+2.0262519802215394e+01
+2.0252222312104088e+01
+2.0241903337634731e+01
+2.0231562863966275e+01
+2.0221200876232871e+01
+2.0210817360513030e+01
+2.0200412304348966e+01
+2.0189985695408804e+01
+2.0179537520887514e+01
+2.0169067766087402e+01
+2.0158576415837615e+01
+2.0148063455350407e+01
+2.0137528874291753e+01
+2.0126972665201002e+01
+2.0116394820610456e+01
+2.0105795329755967e+01
+2.0095174176763951e+01
+2.0084531345321281e+01
+2.0073866820008433e+01
+2.0063180588980291e+01
+2.0052472641285334e+01
+2.0041742965721717e+01
+2.0030991548177493e+01
+2.0020218372663230e+01
+2.0009423423212528e+01
+1.9998606687118574e+01
+1.9987768156726943e+01
+1.9976907824817843e+01
+1.9966025682737566e+01
+1.9955121716096865e+01
+1.9944195909072608e+01
+1.9933248246045761e+01
+1.9922278713769899e+01
+1.9911287300529306e+01
+1.9900273994612263e+01
+1.9889238783016026e+01
+1.9878181650736746e+01
+1.9867102582598445e+01
+1.9856001564546474e+01
+1.9844878587011646e+01
+1.9833733641546104e+01
+1.9822566719399145e+01
+1.9811377808299415e+01
+1.9800166893704187e+01
+1.9788933961046322e+01
+1.9777678996566443e+01
+1.9766401987757170e+01
+1.9755102922218811e+01
+1.9743781787084874e+01
+1.9732438567621568e+01
+1.9721073248628318e+01
+1.9709685815267541e+01
+1.9698276256921869e+01
+1.9686844565696656e+01
+1.9675390733699050e+01
+1.9663914750420346e+01
+1.9652416601297322e+01
+1.9640896271417972e+01
+1.9629353745835370e+01
+1.9617789009462875e+01
+1.9606202047178900e+01
+1.9594592844241667e+01
+1.9582961390324268e+01
+1.9571307677948116e+01
+1.9559631699627069e+01
+1.9547933444572472e+01
+1.9536212896876826e+01
+1.9524470040192298e+01
+1.9512704859236671e+01
+1.9500917342990157e+01
+1.9489107481498579e+01
+1.9477275264392876e+01
+1.9465420676481088e+01
+1.9453543699459722e+01
+1.9441644315058767e+01
+1.9429722510130240e+01
+1.9417778279465324e+01
+1.9405811618538134e+01
+1.9393822520605259e+01
+1.9381810970053170e+01
+1.9369776949050841e+01
+1.9357720440135264e+01
+1.9345641430121848e+01
+1.9333539908586264e+01
+1.9321415865110584e+01
+1.9309269286900108e+01
+1.9297100157476144e+01
+1.9284908460043113e+01
+1.9272694179655581e+01
+1.9260457308768771e+01
+1.9248197841688079e+01
+1.9235915772134490e+01
+1.9223611087035245e+01
+1.9211283768934546e+01
+1.9198933800346108e+01
+1.9186561166338183e+01
+1.9174165855938480e+01
+1.9161747858515309e+01
+1.9149307162528213e+01
+1.9136843752801635e+01
+1.9124357613251238e+01
+1.9111848728247143e+01
+1.9099317087442525e+01
+1.9086762683899007e+01
+1.9074185510676863e+01
+1.9061585557347318e+01
+1.9048962808073593e+01
+1.9036317246553722e+01
+1.9023648857314864e+01
+1.9010957628200746e+01
+1.8998243547884236e+01
+1.8985506604800076e+01
+1.8972746784614639e+01
+1.8959964071208265e+01
+1.8947158448493305e+01
+1.8934329904088276e+01
+1.8921478431356320e+01
+1.8908604024154727e+01
+1.8895706674508112e+01
+1.8882786367110242e+01
+1.8869843084822197e+01
+1.8856876810830197e+01
+1.8843887532100261e+01
+1.8830875238036967e+01
+1.8817839918047103e+01
+1.8804781559231113e+01
+1.8791700145114611e+01
+1.8778595658915687e+01
+1.8765468085612124e+01
+1.8752317417220567e+01
+1.8739143647517356e+01
+1.8725946769808591e+01
+1.8712726771933855e+01
+1.8699483638205958e+01
+1.8686217352875722e+01
+1.8672927900002225e+01
+1.8659615263347320e+01
+1.8646279426647300e+01
+1.8632920375534042e+01
+1.8619538103221771e+01
+1.8606132604820314e+01
+1.8592703874790704e+01
+1.8579251900051549e+01
+1.8565776662655416e+01
+1.8552278144621781e+01
+1.8538756330850461e+01
+1.8525211210705798e+01
+1.8511642773936174e+01
+1.8498051009147758e+01
+1.8484435900377836e+01
+1.8470797430521490e+01
+1.8457135583040884e+01
+1.8443450347990854e+01
+1.8429741719679519e+01
+1.8416009692415287e+01
+1.8402254256269170e+01
+1.8388475394744273e+01
+1.8374673090778714e+01
+1.8360847328426210e+01
+1.8346998096202842e+01
+1.8333125383740274e+01
+1.8319229180312821e+01
+1.8305309471040569e+01
+1.8291366238363509e+01
+1.8277399464752566e+01
+1.8263409137218197e+01
+1.8249395249807101e+01
+1.8235357797171265e+01
+1.8221296771985902e+01
+1.8207212159019260e+01
+1.8193103941062841e+01
+1.8178972101250434e+01
+1.8164816626694833e+01
+1.8150637507075931e+01
+1.8136434732069823e+01
+1.8122208288558262e+01
+1.8107958159091677e+01
+1.8093684325847928e+01
+1.8079386773176243e+01
+1.8065065494111437e+01
+1.8050720483859710e+01
+1.8036351737017615e+01
+1.8021959241094400e+01
+1.8007542979026884e+01
+1.7993102933711523e+01
+1.7978639090195625e+01
+1.7964151436860355e+01
+1.7949639962373620e+01
+1.7935104654473328e+01
+1.7920545497177283e+01
+1.7905962473573268e+01
+1.7891355567368684e+01
+1.7876724769474041e+01
+1.7862070075447050e+01
+1.7847391480830598e+01
+1.7832688975631076e+01
+1.7817962541273328e+01
+1.7803212158444044e+01
+1.7788437809690276e+01
+1.7773639485000700e+01
+1.7758817176224394e+01
+1.7743970874656750e+01
+1.7729100565156678e+01
+1.7714206228430502e+01
+1.7699287845207369e+01
+1.7684345401739350e+01
+1.7669378892839067e+01
+1.7654388314055542e+01
+1.7639373659002420e+01
+1.7624334913551948e+01
+1.7609272061640997e+01
+1.7594185087188180e+01
+1.7579073973899813e+01
+1.7563938705345254e+01
+1.7548779265160977e+01
+1.7533595641147318e+01
+1.7518387827558641e+01
+1.7503155819204498e+01
+1.7487899608874187e+01
+1.7472619181276038e+01
+1.7457314519098190e+01
+1.7441985605346879e+01
+1.7426632426726496e+01
+1.7411254972327345e+01
+1.7395853231241844e+01
+1.7380427190303763e+01
+1.7364976832845958e+01
+1.7349502141900135e+01
+1.7334003102453927e+01
+1.7318479707318748e+01
+1.7302931951261954e+01
+1.7287359828431931e+01
+1.7271763325781251e+01
+1.7256142425620062e+01
+1.7240497110233807e+01
+1.7224827365067458e+01
+1.7209133180463276e+01
+1.7193414547184776e+01
+1.7177671454233767e+01
+1.7161903883565177e+01
+1.7146111815372212e+01
+1.7130295230716328e+01
+1.7114454120752747e+01
+1.7098588483148763e+01
+1.7082698315570362e+01
+1.7066783609092891e+01
+1.7050844344576248e+01
+1.7034880502001585e+01
+1.7018892063298175e+01
+1.7002879018187802e+01
+1.6986841358340364e+01
+1.6970779074871164e+01
+1.6954692152448331e+01
+1.6938580571580502e+01
+1.6922444312810928e+01
+1.6906283362916863e+01
+1.6890097718338410e+01
+1.6873887376346882e+01
+1.6857652331435034e+01
+1.6841392566981451e+01
+1.6825108063586182e+01
+1.6808798802367075e+01
+1.6792464770461457e+01
+1.6776105958890156e+01
+1.6759722358673617e+01
+1.6743313956925732e+01
+1.6726880734705151e+01
+1.6710422672549647e+01
+1.6693939753778448e+01
+1.6677431972836661e+01
+1.6660899326950865e+01
+1.6644341812553776e+01
+1.6627759416849287e+01
+1.6611152121087255e+01
+1.6594519906474851e+01
+1.6577862757612781e+01
+1.6561180664361743e+01
+1.6544473617034878e+01
+1.6527741604469298e+01
+1.6510984609597912e+01
+1.6494202613877572e+01
+1.6477395599468785e+01
+1.6460563556711996e+01
+1.6443706481225060e+01
+1.6426824368638748e+01
+1.6409917210080891e+01
+1.6392984989699787e+01
+1.6376027691043344e+01
+1.6359045297672896e+01
+1.6342037793203325e+01
+1.6325005161262915e+01
+1.6307947386052710e+01
+1.6290864458432061e+01
+1.6273756373556015e+01
+1.6256623126569757e+01
+1.6239464707730900e+01
+1.6222281099721361e+01
+1.6205072284571397e+01
+1.6187838245639494e+01
+1.6170578971597148e+01
+1.6153294452444069e+01
+1.6135984677776563e+01
+1.6118649632501498e+01
+1.6101289298500269e+01
+1.6083903657689618e+01
+1.6066492697131995e+01
+1.6049056411865756e+01
+1.6031594797615352e+01
+1.6014107847870353e+01
+1.5996595547180814e+01
+1.5979057877861983e+01
+1.5961494822595856e+01
+1.5943906368328438e+01
+1.5926292504756699e+01
+1.5908653221569198e+01
+1.5890988505199237e+01
+1.5873298337034452e+01
+1.5855582698028446e+01
+1.5837841571914138e+01
+1.5820074953541797e+01
+1.5802282840541030e+01
+1.5784465229715970e+01
+1.5766622108274801e+01
+1.5748753457234733e+01
+1.5730859257565655e+01
+1.5712939493588378e+01
+1.5694994154817623e+01
+1.5677023231214898e+01
+1.5659026711328131e+01
+1.5641004578050911e+01
+1.5622956812863238e+01
+1.5604883397995849e+01
+1.5586784324406802e+01
+1.5568659588684772e+01
+1.5550509187418024e+01
+1.5532333111542570e+01
+1.5514131343233432e+01
+1.5495903863912009e+01
+1.5477650656472260e+01
+1.5459371709698415e+01
+1.5441067013847261e+01
+1.5422736558738789e+01
+1.5404380329115149e+01
+1.5385998306442444e+01
+1.5367590472224846e+01
+1.5349156813523944e+01
+1.5330697326015457e+01
+1.5312212006116107e+01
+1.5293700847743384e+01
+1.5275163834817878e+01
+1.5256600948760971e+01
+1.5238012171431432e+01
+1.5219397489772733e+01
+1.5200756894008803e+01
+1.5182090374362964e+01
+1.5163397917742129e+01
+1.5144679505912833e+01
+1.5125935120199369e+01
+1.5107164744454936e+01
+1.5088368372648326e+01
+1.5069546001277253e+01
+1.5050697626107501e+01
+1.5031823234396242e+01
+1.5012922807911233e+01
+1.4993996328383536e+01
+1.4975043780831676e+01
+1.4956065155369743e+01
+1.4937060442550193e+01
+1.4918029631162391e+01
+1.4898972702943489e+01
+1.4879889637867571e+01
+1.4860780416805655e+01
+1.4841645031055700e+01
+1.4822483478642758e+01
+1.4803295757603298e+01
+1.4784081859931678e+01
+1.4764841768257000e+01
+1.4745575464402741e+01
+1.4726282930424652e+01
+1.4706964149307350e+01
+1.4687619104267691e+01
+1.4668247779200627e+01
+1.4648850165883939e+01
+1.4629426261181125e+01
+1.4609976061938729e+01
+1.4590499558900047e+01
+1.4570996733348407e+01
+1.4551467565753368e+01
+1.4531912038382082e+01
+1.4512330140691970e+01
+1.4492721863938080e+01
+1.4473087198819133e+01
+1.4453426129567186e+01
+1.4433738636242230e+01
+1.4414024698949301e+01
+1.4394284304668036e+01
+1.4374517451033753e+01
+1.4354724136598392e+01
+1.4334904356722166e+01
+1.4315058093998443e+01
+1.4295185327828884e+01
+1.4275286038239944e+01
+1.4255360212520785e+01
+1.4235407842646216e+01
+1.4215428920591576e+01
+1.4195423433678085e+01
+1.4175391362013077e+01
+1.4155332685083334e+01
+1.4135247385443950e+01
+1.4115135457923341e+01
+1.4094996900418266e+01
+1.4074831710011290e+01
+1.4054639874320191e+01
+1.4034421374856384e+01
+1.4014176193078139e+01
+1.3993904313360352e+01
+1.3973605724598675e+01
+1.3953280416077648e+01
+1.3932928375879770e+01
+1.3912549587279354e+01
+1.3892144032348671e+01
+1.3871711693874913e+01
+1.3851252562956308e+01
+1.3830766636053053e+01
+1.3810253909621737e+01
+1.3789714374537436e+01
+1.3769148013024006e+01
+1.3748554806561112e+01
+1.3727934738064890e+01
+1.3707287796197374e+01
+1.3686613971057064e+01
+1.3665913252261868e+01
+1.3645185623842751e+01
+1.3624431066226192e+01
+1.3603649559893988e+01
+1.3582841092252968e+01
+1.3562005661443685e+01
+1.3541143266530053e+01
+1.3520253903148353e+01
+1.3499337553224379e+01
+1.3478394195256314e+01
+1.3457423808447386e+01
+1.3436426380196952e+01
+1.3415401903192201e+01
+1.3394350370124160e+01
+1.3373271768626561e+01
+1.3352166078494374e+01
+1.3331033278848212e+01
+1.3309873351934144e+01
+1.3288686292500092e+01
+1.3267472098419463e+01
+1.3246230766850882e+01
+1.3224962286643665e+01
+1.3203666641286295e+01
+1.3182343814160543e+01
+1.3160993787606142e+01
+1.3139616542347641e+01
+1.3118212058970702e+01
+1.3096780321225982e+01
+1.3075321325524367e+01
+1.3053835071441810e+01
+1.3032321557525858e+01
+1.3010780770368930e+01
+1.2989212688850495e+01
+1.2967617291805871e+01
+1.2945994563133969e+01
+1.2924344494582263e+01
+1.2902667078573366e+01
+1.2880962305235892e+01
+1.2859230155522557e+01
+1.2837470608092030e+01
+1.2815683642638154e+01
+1.2793869250888481e+01
+1.2772027432334282e+01
+1.2750158186471387e+01
+1.2728261505305641e+01
+1.2706337369233458e+01
+1.2684385757652597e+01
+1.2662406651919758e+01
+1.2640400041227364e+01
+1.2618365916726820e+01
+1.2596304269011725e+01
+1.2574215082191801e+01
+1.2552098336193600e+01
+1.2529954010992608e+01
+1.2507782093683293e+01
+1.2485582582394612e+01
+1.2463355476204727e+01
+1.2441100770890683e+01
+1.2418818449025121e+01
+1.2396508489879579e+01
+1.2374170873351147e+01
+1.2351805586608306e+01
+1.2329412621510802e+01
+1.2306991969913351e+01
+1.2284543618677665e+01
+1.2262067546926263e+01
+1.2239563733115935e+01
+1.2217032159358819e+01
+1.2194472822388557e+01
+1.2171885722594185e+01
+1.2149270859318028e+01
+1.2126628219734416e+01
+1.2103957783167454e+01
+1.2081259528881253e+01
+1.2058533440393552e+01
+1.2035779507815185e+01
+1.2012997721824140e+01
+1.1990188071374558e+01
+1.1967350538525201e+01
+1.1944485103610981e+01
+1.1921591747875308e+01
+1.1898670463122933e+01
+1.1875721247972406e+01
+1.1852744101037858e+01
+1.1829739013851468e+01
+1.1806705966968506e+01
+1.1783644940000018e+01
+1.1760555914625119e+01
+1.1737438880795464e+01
+1.1714293830530817e+01
+1.1691120755148221e+01
+1.1667919637795841e+01
+1.1644690456351501e+01
+1.1621433188747385e+01
+1.1598147821446775e+01
+1.1574834354136238e+01
+1.1551492787639839e+01
+1.1528123119444242e+01
+1.1504725333686524e+01
+1.1481299411166386e+01
+1.1457845332726386e+01
+1.1434363079707300e+01
+1.1410852633771411e+01
+1.1387313976696825e+01
+1.1363747096893370e+01
+1.1340151993050034e+01
+1.1316528664740037e+01
+1.1292877108122076e+01
+1.1269197305696805e+01
+1.1245489236550389e+01
+1.1221752880366834e+01
+1.1197988223780007e+01
+1.1174195257907552e+01
+1.1150373973872764e+01
+1.1126524358655306e+01
+1.1102646392812071e+01
+1.1078740056347479e+01
+1.1054805332399287e+01
+1.1030842216638655e+01
+1.1006850707870109e+01
+1.0982830803944916e+01
+1.0958782491632800e+01
+1.0934705750554128e+01
+1.0910600560285124e+01
+1.0886466904902480e+01
+1.0862304775458702e+01
+1.0838114163606294e+01
+1.0813895058950495e+01
+1.0789647442907356e+01
+1.0765371294845631e+01
+1.0741066595103348e+01
+1.0716733335286417e+01
+1.0692371514270377e+01
+1.0667981130934098e+01
+1.0643562177086705e+01
+1.0619114633579244e+01
+1.0594638480320187e+01
+1.0570133699096804e+01
+1.0545600279211774e+01
+1.0521038211846623e+01
+1.0496447487592455e+01
+1.0471828090176766e+01
+1.0447179998898902e+01
+1.0422503193111211e+01
+1.0397797659774570e+01
+1.0373063397643120e+01
+1.0348300406485491e+01
+1.0323508682630070e+01
+1.0298688208644492e+01
+1.0273838963656139e+01
+1.0248960927410433e+01
+1.0224054086837221e+01
+1.0199118433501461e+01
+1.0174153958962167e+01
+1.0149160649786365e+01
+1.0124138484803487e+01
+1.0099087442177360e+01
+1.0074007503988033e+01
+1.0048898667980497e+01
+1.0023760935816073e+01
+9.9985943079727981e+00
+9.9733987711738283e+00
+9.9481743032682246e+00
+9.9229208820460464e+00
+9.8976384906315289e+00
+9.8723271204168732e+00
+9.8469867635055088e+00
+9.8216174097428279e+00
+9.7962190399420930e+00
+9.7707916326584936e+00
+9.7453351675146429e+00
+9.7198496365412215e+00
+9.6943350397742307e+00
+9.6687913772662135e+00
+9.6432186420569490e+00
+9.6176168163164792e+00
+9.5919858812798076e+00
+9.5663258181643034e+00
+9.5406366081167757e+00
+9.5149182322663926e+00
+9.4891706726925928e+00
+9.4633939225220409e+00
+9.4375879820085693e+00
+9.4117528513893376e+00
+9.3858885227725857e+00
+9.3599949756667904e+00
+9.3340721884965863e+00
+9.3081201419425685e+00
+9.2821388257091435e+00
+9.2561282317566675e+00
+9.2300883513600525e+00
+9.2040191678258676e+00
+9.1779206593197991e+00
+9.1517928040658880e+00
+9.1256355889265794e+00
+9.0994490141540236e+00
+9.0732330811521766e+00
+9.0469877874353060e+00
+9.0207131149589941e+00
+8.9944090417891776e+00
+8.9680755466841582e+00
+8.9417126164510012e+00
+8.9153202430895124e+00
+8.8888984185986715e+00
+8.8624471297361769e+00
+8.8359663551355876e+00
+8.8094560727316331e+00
+8.7829162643998409e+00
+8.7563469277790187e+00
+8.7297480644488097e+00
+8.7031196748197353e+00
+8.6764617457113484e+00
+8.6497742551748686e+00
+8.6230571812040822e+00
+8.5963105071149339e+00
+8.5695342244728110e+00
+8.5427283255526572e+00
+8.5158928001944716e+00
+8.4890276284983646e+00
+8.4621327881294697e+00
+8.4352082579479326e+00
+8.4082540307060061e+00
+8.3812701081186329e+00
+8.3542564919013458e+00
+8.3272131748420275e+00
+8.3001401358907572e+00
+8.2730373528072576e+00
+8.2459048057731810e+00
+8.2187424846576000e+00
+8.1915503817514779e+00
+8.1643284886195371e+00
+8.1370767883838955e+00
+8.1097952587198190e+00
+8.0824838773628152e+00
+8.0551426311097458e+00
+8.0277715208026486e+00
+8.0003705484917607e+00
+7.9729397121625283e+00
+7.9454789935414505e+00
+7.9179883702902254e+00
+7.8904678207892447e+00
+7.8629173317734766e+00
+7.8353368953679405e+00
+7.8077265036986638e+00
+7.7800861435620883e+00
+7.7524157934937810e+00
+7.7247154313186890e+00
+7.6969850387582808e+00
+7.6692246131201758e+00
+7.6414341556086303e+00
+7.6136136664245360e+00
+7.5857631341054992e+00
+7.5578825396644316e+00
+7.5299718639855788e+00
+7.5020310877577625e+00
+7.4740601913669034e+00
+7.4460591551728639e+00
+7.4180279630907933e+00
+7.3899666132570312e+00
+7.3618751073632334e+00
+7.3337534459053355e+00
+7.3056016154794792e+00
+7.2774195937141384e+00
+7.2492073581809606e+00
+7.2209648920083787e+00
+7.1926921869378191e+00
+7.1643892354516101e+00
+7.1360560274953144e+00
+7.1076925428674294e+00
+7.0792987588296850e+00
+7.0508746538914346e+00
+7.0224202210657314e+00
+6.9939354627229706e+00
+6.9654203812338800e+00
+6.9368749696358378e+00
+6.9082992064995690e+00
+6.8796930691513625e+00
+6.8510565374394616e+00
+6.8223896012999150e+00
+6.7936922531907156e+00
+6.7649644848157777e+00
+6.7362062791128077e+00
+6.7074176133638632e+00
+6.6785984649144101e+00
+6.6497488205660362e+00
+6.6208686817775053e+00
+6.5919580512684179e+00
+6.5630169275057479e+00
+6.5340452919460308e+00
+6.5050431217932134e+00
+6.4760103950049155e+00
+6.4469470983002042e+00
+6.4178532240506856e+00
+6.3887287646274284e+00
+6.3595737067166915e+00
+6.3303880281933642e+00
+6.3011717061742898e+00
+6.2719247220680590e+00
+6.2426470744502351e+00
+6.2133387661881514e+00
+6.1839997988767736e+00
+6.1546301593199040e+00
+6.1252298247786889e+00
+6.0957987724508840e+00
+6.0663369852733142e+00
+6.0368444550783318e+00
+6.0073211744635655e+00
+5.9777671334025921e+00
+5.9481823113730501e+00
+5.9185666852285808e+00
+5.8889202331225148e+00
+5.8592429483172026e+00
+5.8295348338228017e+00
+5.7997958926496924e+00
+5.7700261180737336e+00
+5.7402254882823254e+00
+5.7103939801649179e+00
+5.6805315732443482e+00
+5.6506382575766398e+00
+5.6207140258511554e+00
+5.5907588699756214e+00
+5.5607727727712080e+00
+5.5307557111967780e+00
+5.5007076622723377e+00
+5.4706286125490307e+00
+5.4405185633513602e+00
+5.4103775172746635e+00
+5.3802054731653088e+00
+5.3500024148738081e+00
+5.3197683225017958e+00
+5.2895031761440006e+00
+5.2592069558156975e+00
+5.2288796414808845e+00
+5.1985212132431569e+00
+5.1681316596330795e+00
+5.1377109822430773e+00
+5.1072591837891768e+00
+5.0767762626675088e+00
+5.0462621999947208e+00
+5.0157169725675885e+00
+4.9851405579752583e+00
+4.9545329430172398e+00
+4.9238941204352695e+00
+4.8932240829683158e+00
+4.8625228172469805e+00
+4.8317903004338962e+00
+4.8010265088772446e+00
+4.7702314235302357e+00
+4.7394050437662720e+00
+4.7085473735638281e+00
+4.6776584155334175e+00
+4.6467381563835115e+00
+4.6157865725631284e+00
+4.5848036404537504e+00
+4.5537893426425811e+00
+4.5227436713356752e+00
+4.4916666195665123e+00
+4.4605581775726826e+00
+4.4294183244081955e+00
+4.3982470363311625e+00
+4.3670442909701572e+00
+4.3358100818854908e+00
+4.3045444129160364e+00
+4.2732472879013059e+00
+4.2419187004363570e+00
+4.2105586282375347e+00
+4.1791670476552838e+00
+4.1477439377984391e+00
+4.1162892888093845e+00
+4.0848030935888904e+00
+4.0532853442145083e+00
+4.0217360231938564e+00
+3.9901551068603922e+00
+3.9585425716177722e+00
+3.9268984042575341e+00
+3.8952226076723186e+00
+3.8635151861398489e+00
+3.8317761392362741e+00
+3.8000054477315293e+00
+3.7682030876940149e+00
+3.7363690360350956e+00
+3.7045032794655741e+00
+3.6726058110184669e+00
+3.6406766237256658e+00
+3.6087157042293239e+00
+3.5767230292675878e+00
+3.5446985747265622e+00
+3.5126423212831250e+00
+3.4805542687772544e+00
+3.4484344218397340e+00
+3.4162827836838296e+00
+3.3840993410442453e+00
+3.3518840700243882e+00
+3.3196369466562023e+00
+3.2873579533150434e+00
+3.2550470822085278e+00
+3.2227043263901338e+00
+3.1903296761053932e+00
+3.1579231103683383e+00
+3.1254846053851115e+00
+3.0930141387155667e+00
+3.0605117036565850e+00
+3.0279773036580266e+00
+2.9954109421907642e+00
+2.9628126138333446e+00
+2.9301822993812445e+00
+2.8975199784443060e+00
+2.8648256305894444e+00
+2.8320992352120475e+00
+2.7993407716645260e+00
+2.7665502205127930e+00
+2.7337275764294997e+00
+2.7008728431884479e+00
+2.6679860245428544e+00
+2.6350671139096491e+00
+2.6021160886846069e+00
+2.5691329248853481e+00
+2.5361176013910978e+00
+2.5030701085274432e+00
+2.4699904394816374e+00
+2.4368785865713498e+00
+2.4037345320062364e+00
+2.3705582514746357e+00
+2.3373497207386271e+00
+2.3041089265062720e+00
+2.2708358724519715e+00
+2.2375305637096030e+00
+2.2041930004852492e+00
+2.1708231632739192e+00
+2.1374210276428531e+00
+2.1039865700357181e+00
+2.0705197770836019e+00
+2.0370206419901895e+00
+2.0034891579589114e+00
+1.9699253116053013e+00
+1.9363290793336458e+00
+1.9027004366698428e+00
+1.8690393640920946e+00
+1.8353458618879217e+00
+1.8016199352971984e+00
+1.7678615880904913e+00
+1.7340708069577406e+00
+1.7002475675692721e+00
+1.6663918455221585e+00
+1.6325036230426293e+00
+1.5985828926320520e+00
+1.5646296476756751e+00
+1.5306438785476253e+00
+1.4966255635775148e+00
+1.4625746780838214e+00
+1.4284911988767861e+00
+1.3943751201085111e+00
+1.3602264471194236e+00
+1.3260451852500696e+00
+1.2918313286548366e+00
+1.2575848541497845e+00
+1.2233057370595093e+00
+1.1889939557275246e+00
+1.1546495005730035e+00
+1.1202723650340307e+00
+1.0858625416466625e+00
+1.0514200124608419e+00
+1.0169447527612616e+00
+9.8243673790878316e-01
+9.4789595460154175e-01
+9.1332240711033397e-01
+8.7871610121762855e-01
+8.4407703760045705e-01
+8.0940519651417941e-01
+7.7470055310875696e-01
+7.3996308343984663e-01
+7.0519277409181147e-01
+6.7038961844172684e-01
+6.3555360986719378e-01
+6.0068473498459674e-01
+5.6578296993037824e-01
+5.3084828993956157e-01
+4.9588067520862117e-01
+4.6088012578032345e-01
+4.2584664665903310e-01
+3.9078024156177715e-01
+3.5568089924033769e-01
+3.2054859879152720e-01
+2.8538331915018639e-01
+2.5018503918773705e-01
+2.1495373767730164e-01
+1.7968939338351925e-01
+1.4439198947648155e-01
+1.0906152674774316e-01
+7.3698010394288818e-02
+3.8301444127154749e-02
+2.8718143833528428e-03
+-3.2590903544576909e-02
+-6.8086734435374135e-02
+-1.0361569620029111e-01
+-1.3917779610599945e-01
+-1.7477304050351086e-01
+-2.1040143890526308e-01
+-2.4606301346921397e-01
+-2.8175778951480823e-01
+-3.1748579079074402e-01
+-3.5324702278602055e-01
+-3.8904147920914145e-01
+-4.2486915376867151e-01
+-4.6073005195730726e-01
+-4.9662419753305975e-01
+-5.3255161582513943e-01
+-5.6851232897573623e-01
+-6.0450634637898371e-01
+-6.4053367424203556e-01
+-6.7659431972370709e-01
+-7.1268830104695480e-01
+-7.4881564357281793e-01
+-7.8497637258258957e-01
+-8.2117050143452874e-01
+-8.5739802500611262e-01
+-8.9365893658506412e-01
+-9.2995323482771919e-01
+-9.6628093986475849e-01
+-1.0026420771954223e+00
+-1.0390366713593711e+00
+-1.0754647357407474e+00
+-1.1119262765267366e+00
+-1.1484212999058812e+00
+-1.1849498193469583e+00
+-1.2215118596031278e+00
+-1.2581074463982511e+00
+-1.2947365999990041e+00
+-1.3313993188432018e+00
+-1.3680955959114141e+00
+-1.4048254257985495e+00
+-1.4415888218661255e+00
+-1.4783858095829978e+00
+-1.5152164144987077e+00
+-1.5520806548914896e+00
+-1.5889785377691046e+00
+-1.6259100691698125e+00
+-1.6628752584305189e+00
+-1.6998741280827485e+00
+-1.7369067039566894e+00
+-1.7739730102485380e+00
+-1.8110730521592102e+00
+-1.8482068226345369e+00
+-1.8853743146206967e+00
+-1.9225755333380503e+00
+-1.9598105030320989e+00
+-1.9970792495848706e+00
+-2.0343817955502064e+00
+-2.0717181501692012e+00
+-2.1090883193547660e+00
+-2.1464923100017010e+00
+-2.1839301404193052e+00
+-2.2214018362810926e+00
+-2.2589074231848709e+00
+-2.2964469148216202e+00
+-2.3340203064264999e+00
+-2.3716275916471550e+00
+-2.4092687687983343e+00
+-2.4469438548632589e+00
+-2.4846528714922536e+00
+-2.5223958403494660e+00
+-2.5601727832597301e+00
+-2.5979837221515485e+00
+-2.6358286787793759e+00
+-2.6737076643509501e+00
+-2.7116206737265758e+00
+-2.7495677003602297e+00
+-2.7875487430982462e+00
+-2.8255638223558752e+00
+-2.8636129639405690e+00
+-2.9016961926766300e+00
+-2.9398135219592878e+00
+-2.9779649578101903e+00
+-3.0161505062537288e+00
+-3.0543701808523211e+00
+-3.0926240068523376e+00
+-3.1309120105052202e+00
+-3.1692342123676394e+00
+-3.2075906102168794e+00
+-3.2459811961354643e+00
+-3.2844059638969085e+00
+-3.3228649269326773e+00
+-3.3613581113567252e+00
+-3.3998855433669628e+00
+-3.4384472415164060e+00
+-3.4770432125085065e+00
+-3.5156734620273999e+00
+-3.5543379992148716e+00
+-3.5930368470433440e+00
+-3.6317700319428066e+00
+-3.6705375786385583e+00
+-3.7093394920376910e+00
+-3.7481757642613194e+00
+-3.7870463874301037e+00
+-3.8259513664233995e+00
+-3.8648907258964535e+00
+-3.9038644922056540e+00
+-3.9428726882705356e+00
+-3.9819153232632414e+00
+-4.0209924029191040e+00
+-4.0601039339996836e+00
+-4.0992499351976255e+00
+-4.1384304329029700e+00
+-4.1776454534189345e+00
+-4.2168950101414735e+00
+-4.2561790964601931e+00
+-4.2954977040437132e+00
+-4.3348508303779498e+00
+-4.3742384962179033e+00
+-4.4136607281358158e+00
+-4.4531175516682842e+00
+-4.4926089803120712e+00
+-4.5321350197964598e+00
+-4.5716956758513838e+00
+-4.6112909620151710e+00
+-4.6509209039291877e+00
+-4.6905855282759257e+00
+-4.7302848558701651e+00
+-4.7700188840557143e+00
+-4.8097876043085996e+00
+-4.8495910098435173e+00
+-4.8894291140870623e+00
+-4.9293019435057515e+00
+-4.9692095246526504e+00
+-5.0091518762395744e+00
+-5.0491290048242368e+00
+-5.0891409159188363e+00
+-5.1291876186037486e+00
+-5.1692691362320868e+00
+-5.2093854957251633e+00
+-5.2495367222353737e+00
+-5.2897228203513276e+00
+-5.3299437813945998e+00
+-5.3701995966870548e+00
+-5.4104902708330815e+00
+-5.4508158290251600e+00
+-5.4911762982267440e+00
+-5.5315717018112043e+00
+-5.5720020487915765e+00
+-5.6124673445908124e+00
+-5.6529675956893239e+00
+-5.6935028208605694e+00
+-5.7340730468090255e+00
+-5.7746783001564559e+00
+-5.8153185946303889e+00
+-5.8559939239720205e+00
+-5.8967042802033829e+00
+-5.9374496604323079e+00
+-5.9782300821099037e+00
+-6.0190455677730830e+00
+-6.0598961399588553e+00
+-6.1007818212053566e+00
+-6.1417026340514491e+00
+-6.1826586008476516e+00
+-6.2236497326430831e+00
+-6.2646760229696259e+00
+-6.3057374638523287e+00
+-6.3468340531135530e+00
+-6.3879658117652722e+00
+-6.4291327666167692e+00
+-6.4703349434186919e+00
+-6.5115723556150265e+00
+-6.5528450087100003e+00
+-6.5941529082112194e+00
+-6.6354960677689352e+00
+-6.6768745136545071e+00
+-6.7182882732249851e+00
+-6.7597373676802759e+00
+-6.8012217935913730e+00
+-6.8427415413721375e+00
+-6.8842966032650237e+00
+-6.9258869927701587e+00
+-6.9675127371022327e+00
+-7.0091738635666223e+00
+-7.0508703911953594e+00
+-7.0926023261968139e+00
+-7.1343696736762476e+00
+-7.1761724424926401e+00
+-7.2180106565199047e+00
+-7.2598843433855853e+00
+-7.3017935288639437e+00
+-7.3437382171834891e+00
+-7.3857183986722026e+00
+-7.4277340636579519e+00
+-7.4697852163622365e+00
+-7.5118718825416080e+00
+-7.5539940898050837e+00
+-7.5961518620094166e+00
+-7.6383452080023284e+00
+-7.6805741328792836e+00
+-7.7228386428502267e+00
+-7.7651387570804564e+00
+-7.8074745030937454e+00
+-7.8498459083205221e+00
+-7.8922529862338449e+00
+-7.9346957286727404e+00
+-7.9771741256152309e+00
+-8.0196881733256493e+00
+-8.0622378932134904e+00
+-8.1048233129745100e+00
+-8.1474444591857633e+00
+-8.1901013454194445e+00
+-8.2327939768573994e+00
+-8.2755223586821529e+00
+-8.3182865045012857e+00
+-8.3610864409813050e+00
+-8.4039221959120685e+00
+-8.4467937907624080e+00
+-8.4897012217168939e+00
+-8.5326444786389839e+00
+-8.5756235532592875e+00
+-8.6186384590139298e+00
+-8.6616892233425880e+00
+-8.7047758737788907e+00
+-8.7478984294963329e+00
+-8.7910568967099998e+00
+-8.8342512805202862e+00
+-8.8774815898010591e+00
+-8.9207478485201417e+00
+-8.9640500844188651e+00
+-9.0073883234076053e+00
+-9.0507625701117238e+00
+-9.0941728154242352e+00
+-9.1376190502100521e+00
+-9.1811012773805736e+00
+-9.2246195185190452e+00
+-9.2681737968149989e+00
+-9.3117641354634078e+00
+-9.3553905576811385e+00
+-9.3990530866905342e+00
+-9.4427517441021589e+00
+-9.4864865327895860e+00
+-9.5302574435379679e+00
+-9.5740644671609658e+00
+-9.6179076082713895e+00
+-9.6617868928706461e+00
+-9.7057023487999103e+00
+-9.7496540000586140e+00
+-9.7936418552788229e+00
+-9.8376659192507763e+00
+-9.8817261979430562e+00
+-9.9258227110224997e+00
+-9.9699554869935358e+00
+-1.0014124554260539e+01
+-1.0058329926386945e+01
+-1.0102571593932637e+01
+-1.0146849545478723e+01
+-1.0191163776168279e+01
+-1.0235514307392663e+01
+-1.0279901167105207e+01
+-1.0324324382185084e+01
+-1.0368783967024443e+01
+-1.0413279927959291e+01
+-1.0457812271317405e+01
+-1.0502381010988730e+01
+-1.0546986172584598e+01
+-1.0591627782724638e+01
+-1.0636305862001771e+01
+-1.0681020406902016e+01
+-1.0725771407884521e+01
+-1.0770558857227392e+01
+-1.0815382768352752e+01
+-1.0860243168323983e+01
+-1.0905140084294542e+01
+-1.0950073535180872e+01
+-1.0995043527132065e+01
+-1.1040050065198942e+01
+-1.1085093158364831e+01
+-1.1130172831343097e+01
+-1.1175289112779661e+01
+-1.1220442029348304e+01
+-1.1265631584797918e+01
+-1.1310857768086951e+01
+-1.1356120568171844e+01
+-1.1401419988678830e+01
+-1.1446756055972228e+01
+-1.1492128798372315e+01
+-1.1537538240253719e+01
+-1.1582984390208486e+01
+-1.1628467252883009e+01
+-1.1673986834137928e+01
+-1.1719543153948880e+01
+-1.1765136241398165e+01
+-1.1810766125459818e+01
+-1.1856432819507246e+01
+-1.1902136312732745e+01
+-1.1947876592248504e+01
+-1.1993653652347144e+01
+-1.2039467516042942e+01
+-1.2085318213530554e+01
+-1.2131205773708938e+01
+-1.2177130210414516e+01
+-1.2223091527765822e+01
+-1.2269089729871023e+01
+-1.2315124829927887e+01
+-1.2361196855223167e+01
+-1.2407305834255565e+01
+-1.2453451789019608e+01
+-1.2499634715492883e+01
+-1.2545854603148708e+01
+-1.2592111443166697e+01
+-1.2638405246562174e+01
+-1.2684736037147653e+01
+-1.2731103838944993e+01
+-1.2777508675736977e+01
+-1.2823950570936105e+01
+-1.2870429547922981e+01
+-1.2916945624538153e+01
+-1.2963498796461867e+01
+-1.3010089053834275e+01
+-1.3056716388643913e+01
+-1.3103380814366707e+01
+-1.3150082358341333e+01
+-1.3196821048001652e+01
+-1.3243596902630319e+01
+-1.3290409928875469e+01
+-1.3337260132298518e+01
+-1.3384147522191389e+01
+-1.3431072122768212e+01
+-1.3478033961973669e+01
+-1.3525033065833266e+01
+-1.3572069438061950e+01
+-1.3619143067980707e+01
+-1.3666253944911825e+01
+-1.3713402072650078e+01
+-1.3760587477422510e+01
+-1.3807810187385702e+01
+-1.3855070226774416e+01
+-1.3902367604135707e+01
+-1.3949702324094718e+01
+-1.3997074392504123e+01
+-1.4044483829486667e+01
+-1.4091930664371603e+01
+-1.4139414926382230e+01
+-1.4186936629177815e+01
+-1.4234495762293264e+01
+-1.4282092313188253e+01
+-1.4329726276271881e+01
+-1.4377397673750551e+01
+-1.4425106534780092e+01
+-1.4472852887285097e+01
+-1.4520636744877457e+01
+-1.4568458111935072e+01
+-1.4616316992841595e+01
+-1.4664213401559975e+01
+-1.4712147366901089e+01
+-1.4760118918953067e+01
+-1.4808128080421909e+01
+-1.4856174844484981e+01
+-1.4904259196937325e+01
+-1.4952381125819141e+01
+-1.5000540645269085e+01
+-1.5048737786263494e+01
+-1.5096972579883044e+01
+-1.5145245046631578e+01
+-1.5193555190618850e+01
+-1.5241903014544368e+01
+-1.5290288525798532e+01
+-1.5338711750535360e+01
+-1.5387172719599819e+01
+-1.5435671461635557e+01
+-1.5484207979697052e+01
+-1.5532782260329435e+01
+-1.5581394290069571e+01
+-1.5630044071467676e+01
+-1.5678731631894587e+01
+-1.5727457000856232e+01
+-1.5776220203728553e+01
+-1.5825021249367524e+01
+-1.5873860142499128e+01
+-1.5922736889065343e+01
+-1.5971651509144209e+01
+-1.6020604031933694e+01
+-1.6069594486524576e+01
+-1.6118622886449231e+01
+-1.6167689221124419e+01
+-1.6216793477892423e+01
+-1.6265935650537426e+01
+-1.6315115758611149e+01
+-1.6364333828107185e+01
+-1.6413589884867431e+01
+-1.6462883952970362e+01
+-1.6512216055356809e+01
+-1.6561586214738007e+01
+-1.6610994441194286e+01
+-1.6660440725227787e+01
+-1.6709925055656505e+01
+-1.6759447428031869e+01
+-1.6809007864838890e+01
+-1.6858606395295929e+01
+-1.6908243047373880e+01
+-1.6957917834541835e+01
+-1.7007630760912889e+01
+-1.7057381830611760e+01
+-1.7107171057813296e+01
+-1.7156998472270391e+01
+-1.7206864105075930e+01
+-1.7256767979642714e+01
+-1.7306710088663060e+01
+-1.7356690417149132e+01
+-1.7406708952368657e+01
+-1.7456765707810142e+01
+-1.7506860713878641e+01
+-1.7556994001095617e+01
+-1.7607165590050325e+01
+-1.7657375485937180e+01
+-1.7707623692626193e+01
+-1.7757910218337898e+01
+-1.7808235088694445e+01
+-1.7858598333668418e+01
+-1.7908999981095690e+01
+-1.7959440033972847e+01
+-1.8009918479271064e+01
+-1.8060435303956574e+01
+-1.8110990510724839e+01
+-1.8161584126651540e+01
+-1.8212216180909600e+01
+-1.8262886698702648e+01
+-1.8313595689357690e+01
+-1.8364343158232526e+01
+-1.8415129111841388e+01
+-1.8465953570142212e+01
+-1.8516816561766287e+01
+-1.8567718115232388e+01
+-1.8618658243634375e+01
+-1.8669636936157385e+01
+-1.8720654179929880e+01
+-1.8771709969152667e+01
+-1.8822804326315527e+01
+-1.8873937280980627e+01
+-1.8925108861434975e+01
+-1.8976319081142510e+01
+-1.9027567944003899e+01
+-1.9078855453932473e+01
+-1.9130181625164273e+01
+-1.9181546487935609e+01
+-1.9232950073859165e+01
+-1.9284392406652952e+01
+-1.9335873478456161e+01
+-1.9387393273513268e+01
+-1.9438951778379931e+01
+-1.9490549006480808e+01
+-1.9542184988575212e+01
+-1.9593859755546177e+01
+-1.9645573328365263e+01
+-1.9697325712641256e+01
+-1.9749116912661414e+01
+-1.9800946936925545e+01
+-1.9852815810783749e+01
+-1.9904723563798701e+01
+-1.9956670223451376e+01
+-2.0008655793022072e+01
+-2.0060680260177865e+01
+-2.0112743612554986e+01
+-2.0164845851554723e+01
+-2.0216986999914166e+01
+-2.0269167082205730e+01
+-2.0321386123202448e+01
+-2.0373644148479784e+01
+-2.0425941183813812e+01
+-2.0478277253005771e+01
+-2.0530652356899349e+01
+-2.0583066481526693e+01
+-2.0635519612952645e+01
+-2.0688011754006876e+01
+-2.0740542933504486e+01
+-2.0793113182495869e+01
+-2.0845722527420108e+01
+-2.0898370976271110e+01
+-2.0951058532431503e+01
+-2.1003785200675338e+01
+-2.1056551001952005e+01
+-2.1109355967646614e+01
+-2.1162200129025997e+01
+-2.1215083499821894e+01
+-2.1268006066586885e+01
+-2.1320967813535471e+01
+-2.1373968732647953e+01
+-2.1427008846967560e+01
+-2.1480088187303220e+01
+-2.1533206783173060e+01
+-2.1586364649089571e+01
+-2.1639561789884212e+01
+-2.1692798210382776e+01
+-2.1746073924751990e+01
+-2.1799388961636854e+01
+-2.1852743350927962e+01
+-2.1906137115053095e+01
+-2.1959570246588836e+01
+-2.2013042730648937e+01
+-2.2066554554631690e+01
+-2.2120105732493016e+01
+-2.2173696295322717e+01
+-2.2227326274324074e+01
+-2.2280995690375217e+01
+-2.2334704548350359e+01
+-2.2388452851746909e+01
+-2.2442240608608572e+01
+-2.2496067845163747e+01
+-2.2549934592187036e+01
+-2.2603840878179952e+01
+-2.2657786705219397e+01
+-2.2711772058334027e+01
+-2.2765796922555253e+01
+-2.2819861300127641e+01
+-2.2873965219976061e+01
+-2.2928108713320498e+01
+-2.2982291806717875e+01
+-2.3036514508073530e+01
+-2.3090776820629845e+01
+-2.3145078749046867e+01
+-2.3199420314465218e+01
+-2.3253801548658167e+01
+-2.3308222483279668e+01
+-2.3362683132191716e+01
+-2.3417183481678638e+01
+-2.3471723515652464e+01
+-2.3526303225873669e+01
+-2.3580922635496421e+01
+-2.3635581775523143e+01
+-2.3690280675608115e+01
+-2.3745019349731997e+01
+-2.3799797801763443e+01
+-2.3854616035577003e+01
+-2.3909474065512686e+01
+-2.3964371922131999e+01
+-2.4019309637391849e+01
+-2.4074287235224066e+01
+-2.4129304707459916e+01
+-2.4184362037905515e+01
+-2.4239459212520895e+01
+-2.4294596242306884e+01
+-2.4349773154419477e+01
+-2.4404989976268794e+01
+-2.4460246734356421e+01
+-2.4515543453775724e+01
+-2.4570880159498937e+01
+-2.4626256869846923e+01
+-2.4681673576534962e+01
+-2.4737130264626909e+01
+-2.4792626921507026e+01
+-2.4848163561533418e+01
+-2.4903740216466808e+01
+-2.4959356918173988e+01
+-2.5015013687486853e+01
+-2.5070710528133258e+01
+-2.5126447442369731e+01
+-2.5182224437650564e+01
+-2.5238041542221048e+01
+-2.5293898789524231e+01
+-2.5349796210442531e+01
+-2.5405733806090684e+01
+-2.5461711558378468e+01
+-2.5517729449215732e+01
+-2.5573787479729859e+01
+-2.5629885680835038e+01
+-2.5686024086007745e+01
+-2.5742202723482965e+01
+-2.5798421600529753e+01
+-2.5854680719175697e+01
+-2.5910980082974579e+01
+-2.5967319713222231e+01
+-2.6023699642660986e+01
+-2.6080119903913435e+01
+-2.6136580510967701e+01
+-2.6193081448928719e+01
+-2.6249622700416769e+01
+-2.6306204256338855e+01
+-2.6362826140748737e+01
+-2.6419488385986803e+01
+-2.6476191022928877e+01
+-2.6532934065425124e+01
+-2.6589717516341427e+01
+-2.6646541378548161e+01
+-2.6703405666169608e+01
+-2.6760310410773435e+01
+-2.6817255645427966e+01
+-2.6874241394658132e+01
+-2.6931267648815268e+01
+-2.6988334389707283e+01
+-2.7045441601673460e+01
+-2.7102589298480282e+01
+-2.7159777512879455e+01
+-2.7217006277750947e+01
+-2.7274275614685575e+01
+-2.7331585527775957e+01
+-2.7388936019609556e+01
+-2.7446327097796132e+01
+-2.7503758790035427e+01
+-2.7561231129049588e+01
+-2.7618744145058617e+01
+-2.7676297839194646e+01
+-2.7733892193823340e+01
+-2.7791527191313840e+01
+-2.7849202833009983e+01
+-2.7906919149666290e+01
+-2.7964676174567238e+01
+-2.8022473935760214e+01
+-2.8080312440343992e+01
+-2.8138191690180363e+01
+-2.8196111688707699e+01
+-2.8254072457692654e+01
+-2.8312074030726610e+01
+-2.8370116441279226e+01
+-2.8428199703691181e+01
+-2.8486323802653061e+01
+-2.8544488720304891e+01
+-2.8602694446406144e+01
+-2.8660941001194079e+01
+-2.8719228412525233e+01
+-2.8777556708139514e+01
+-2.8835925914419487e+01
+-2.8894336056872049e+01
+-2.8952787160738062e+01
+-2.9011279236172733e+01
+-2.9069812269948414e+01
+-2.9128386246826008e+01
+-2.9187001159367558e+01
+-2.9245657031339437e+01
+-2.9304353894309060e+01
+-2.9363091778455800e+01
+-2.9421870697822616e+01
+-2.9480690656042089e+01
+-2.9539551656751645e+01
+-2.9598453714291402e+01
+-2.9657396859590694e+01
+-2.9716381125005881e+01
+-2.9775406534515920e+01
+-2.9834473078589983e+01
+-2.9893580739319773e+01
+-2.9952729501310081e+01
+-3.0011919378380384e+01
+-3.0071150403198072e+01
+-3.0130422608556533e+01
+-3.0189736015952388e+01
+-3.0249090629372382e+01
+-3.0308486451297043e+01
+-3.0367923489332831e+01
+-3.0427401771589984e+01
+-3.0486921331304689e+01
+-3.0546482199161350e+01
+-3.0606084376179588e+01
+-3.0665727844240450e+01
+-3.0725412585226085e+01
+-3.0785138600232443e+01
+-3.0844905920136476e+01
+-3.0904714578376929e+01
+-3.0964564603081477e+01
+-3.1024456001133522e+01
+-3.1084388774105424e+01
+-3.1144362925209986e+01
+-3.1204378476730426e+01
+-3.1264435463253470e+01
+-3.1324533919231950e+01
+-3.1384673858781294e+01
+-3.1444855264493576e+01
+-3.1505078116249326e+01
+-3.1565342403046365e+01
+-3.1625648150351708e+01
+-3.1685995392749618e+01
+-3.1746384163150285e+01
+-3.1806814475002675e+01
+-3.1867286329200130e+01
+-3.1927799726642146e+01
+-3.1988354681152337e+01
+-3.2048951226586837e+01
+-3.2109589398524832e+01
+-3.2170269223221361e+01
+-3.2230990689633799e+01
+-3.2291753777395122e+01
+-3.2352558468823013e+01
+-3.2413404777445180e+01
+-3.2474292736924752e+01
+-3.2535222381063207e+01
+-3.2596193731828329e+01
+-3.2657206792845678e+01
+-3.2718261566163022e+01
+-3.2779358059145075e+01
+-3.2840496300425073e+01
+-3.2901676323953303e+01
+-3.2962898161111738e+01
+-3.3024161813425344e+01
+-3.3085467263156382e+01
+-3.3146814492525607e+01
+-3.3208203500524931e+01
+-3.3269634312141548e+01
+-3.3331106954598788e+01
+-3.3392621455122175e+01
+-3.3454177840946016e+01
+-3.3515776139306688e+01
+-3.3577416375221553e+01
+-3.3639098547910493e+01
+-3.3700822639949813e+01
+-3.3762588633954671e+01
+-3.3824396531515070e+01
+-3.3886246363631898e+01
+-3.3948138163835985e+01
+-3.4010071960394079e+01
+-3.4072047760516661e+01
+-3.4134065566150205e+01
+-3.4196125380864594e+01
+-3.4258227227103660e+01
+-3.4320371139487847e+01
+-3.4382557152497455e+01
+-3.4444785280028952e+01
+-3.4507055504073634e+01
+-3.4569367803878279e+01
+-3.4631722167834504e+01
+-3.4694118620913052e+01
+-3.4756557197229426e+01
+-3.4819037929365464e+01
+-3.4881560832073653e+01
+-3.4944125908603922e+01
+-3.5006733162199474e+01
+-3.5069382607204801e+01
+-3.5132074275171441e+01
+-3.5194808199131096e+01
+-3.5257584403417233e+01
+-3.5320402877570153e+01
+-3.5383263602431818e+01
+-3.5446166561448869e+01
+-3.5509111768347211e+01
+-3.5572099256387489e+01
+-3.5635129058963301e+01
+-3.5698201197902719e+01
+-3.5761315677107312e+01
+-3.5824472498936593e+01
+-3.5887671671146080e+01
+-3.5950913223075311e+01
+-3.6014197189459829e+01
+-3.6077523602251588e+01
+-3.6140892461042917e+01
+-3.6204303744548881e+01
+-3.6267757431493123e+01
+-3.6331253521988636e+01
+-3.6394792049302161e+01
+-3.6458373049552300e+01
+-3.6521996552832334e+01
+-3.6585662565134285e+01
+-3.6649371086424885e+01
+-3.6713122118495413e+01
+-3.6776915684347884e+01
+-3.6840751820668658e+01
+-3.6904630564004250e+01
+-3.6968551928824752e+01
+-3.7032515895381401e+01
+-3.7096522440982035e+01
+-3.7160571552674924e+01
+-3.7224663256470144e+01
+-3.7288797588118193e+01
+-3.7352974581667397e+01
+-3.7417194251378312e+01
+-3.7481456598745204e+01
+-3.7545761625259338e+01
+-3.7610109344997845e+01
+-3.7674499791546097e+01
+-3.7738933000167442e+01
+-3.7803408996605199e+01
+-3.7867927768521703e+01
+-3.7932489294058954e+01
+-3.7997093554240628e+01
+-3.8061740563589254e+01
+-3.8126430358239496e+01
+-3.8191162974457818e+01
+-3.8255938434806822e+01
+-3.8320756740608118e+01
+-3.8385617891356134e+01
+-3.8450521892764151e+01
+-3.8515468775420572e+01
+-3.8580458576132806e+01
+-3.8645491328854540e+01
+-3.8710567034365361e+01
+-3.8775685672042094e+01
+-3.8840847221213373e+01
+-3.8906051679721116e+01
+-3.8971299074102717e+01
+-3.9036589433364007e+01
+-3.9101922786236294e+01
+-3.9167299160352883e+01
+-3.9232718583072405e+01
+-3.9298181079470723e+01
+-3.9363686648084503e+01
+-3.9429235270328270e+01
+-3.9494826927659226e+01
+-3.9560461621215062e+01
+-3.9626139382638115e+01
+-3.9691860246194757e+01
+-3.9757624240652476e+01
+-3.9823431372783325e+01
+-3.9889281643860549e+01
+-3.9955175056910690e+01
+-4.0021111635344440e+01
+-4.0087091415723393e+01
+-4.0153114434455894e+01
+-4.0219180705603016e+01
+-4.0285290208587426e+01
+-4.0351442919852119e+01
+-4.0417638825814748e+01
+-4.0483877952791339e+01
+-4.0550160337072455e+01
+-4.0616486013231189e+01
+-4.0682854995874948e+01
+-4.0749267286729911e+01
+-4.0815722887517033e+01
+-4.0882221812517002e+01
+-4.0948764095478154e+01
+-4.1015349771823487e+01
+-4.1081978867270017e+01
+-4.1148651368710659e+01
+-4.1215367253332268e+01
+-4.1282126501279954e+01
+-4.1348929127088518e+01
+-4.1415775167479573e+01
+-4.1482664659312924e+01
+-4.1549597625561042e+01
+-4.1616574067670761e+01
+-4.1683593985237273e+01
+-4.1750657384161180e+01
+-4.1817764295564878e+01
+-4.1884914756876199e+01
+-4.1952108802507155e+01
+-4.2019346431810277e+01
+-4.2086627621519014e+01
+-4.2153952348357791e+01
+-4.2221320611127553e+01
+-4.2288732442848115e+01
+-4.2356187879482761e+01
+-4.2423686951352579e+01
+-4.2491229666209875e+01
+-4.2558816026164756e+01
+-4.2626446034950327e+01
+-4.2694119715167268e+01
+-4.2761837101588910e+01
+-4.2829598228837170e+01
+-4.2897403110277061e+01
+-4.2965251726325199e+01
+-4.3033144054563770e+01
+-4.3101080082298687e+01
+-4.3169059835729989e+01
+-4.3237083350781241e+01
+-4.3305150661673942e+01
+-4.3373261782843237e+01
+-4.3441416715958859e+01
+-4.3509615462691066e+01
+-4.3577858037506928e+01
+-4.3646144474708628e+01
+-4.3714474810304687e+01
+-4.3782849070595788e+01
+-4.3851267243052007e+01
+-4.3919729305435560e+01
+-4.3988235238093289e+01
+-4.4056785051417997e+01
+-4.4125378775186952e+01
+-4.4194016439488898e+01
+-4.4262698073718148e+01
+-4.4331423706192666e+01
+-4.4400193365137788e+01
+-4.4469007070565418e+01
+-4.4537864809633184e+01
+-4.4606766561285284e+01
+-4.4675712307272128e+01
+-4.4744702061966557e+01
+-4.4813735860788043e+01
+-4.4882813739294889e+01
+-4.4951935720329139e+01
+-4.5021101807022639e+01
+-4.5090312000811764e+01
+-4.5159566308934167e+01
+-4.5228864761832760e+01
+-4.5298207395751838e+01
+-4.5367594243958109e+01
+-4.5437025305105813e+01
+-4.5506500555518329e+01
+-4.5576019971525334e+01
+-4.5645583552165938e+01
+-4.5715191331678689e+01
+-4.5784843347330025e+01
+-4.5854539630255758e+01
+-4.5924280187069229e+01
+-4.5994065018253167e+01
+-4.6063894126090837e+01
+-4.6133767533795975e+01
+-4.6203685278086148e+01
+-4.6273647395528684e+01
+-4.6343653900175795e+01
+-4.6413704771181159e+01
+-4.6483799984696404e+01
+-4.6553939526938997e+01
+-4.6624123424389602e+01
+-4.6694351713594642e+01
+-4.6764624429312676e+01
+-4.6834941585518365e+01
+-4.6905303182777239e+01
+-4.6975709221665326e+01
+-4.7046159716789262e+01
+-4.7116654704503162e+01
+-4.7187194223031931e+01
+-4.7257778300033827e+01
+-4.7328406920900328e+01
+-4.7399080060456136e+01
+-4.7469797696571121e+01
+-4.7540559842514782e+01
+-4.7611366534395096e+01
+-4.7682217808489597e+01
+-4.7753113688421664e+01
+-4.7824054178200477e+01
+-4.7895039280147955e+01
+-4.7966069002069631e+01
+-4.8037143373705533e+01
+-4.8108262430279325e+01
+-4.8179426204148008e+01
+-4.8250634694343397e+01
+-4.8321887878397050e+01
+-4.8393185733843630e+01
+-4.8464528259905421e+01
+-4.8535915489420105e+01
+-4.8607347458117189e+01
+-4.8678824196073343e+01
+-4.8750345710754154e+01
+-4.8821912003972400e+01
+-4.8893523079248858e+01
+-4.8965178959959474e+01
+-4.9036879682290014e+01
+-4.9108625282270921e+01
+-4.9180415773801450e+01
+-4.9252251136477376e+01
+-4.9324131346943446e+01
+-4.9396056390896739e+01
+-4.9468026290242882e+01
+-4.9540041075939619e+01
+-4.9612100778815048e+01
+-4.9684205428190211e+01
+-4.9756355052413859e+01
+-4.9828549679510722e+01
+-4.9900789319036718e+01
+-4.9973073951921009e+01
+-5.0045403556630269e+01
+-5.0117778121213000e+01
+-5.0190197672045549e+01
+-5.0262662245086069e+01
+-5.0335171874534225e+01
+-5.0407726574147119e+01
+-5.0480326344493150e+01
+-5.0552971186158175e+01
+-5.0625661113964654e+01
+-5.0698396164801792e+01
+-5.0771176377457017e+01
+-5.0844001779947234e+01
+-5.0916872357207112e+01
+-5.0989788083400533e+01
+-5.1062748935794531e+01
+-5.1135754927727874e+01
+-5.1208806095811376e+01
+-5.1281902476820989e+01
+-5.1355044094168868e+01
+-5.1428230950553356e+01
+-5.1501463046890954e+01
+-5.1574740390397956e+01
+-5.1648063013489775e+01
+-5.1721430954881704e+01
+-5.1794844250028575e+01
+-5.1868302896484494e+01
+-5.1941806867351204e+01
+-5.2015356135731295e+01
+-5.2088950699230217e+01
+-5.2162590593432753e+01
+-5.2236275857190684e+01
+-5.2310006522924297e+01
+-5.2383782597327873e+01
+-5.2457604080664190e+01
+-5.2531470975052585e+01
+-5.2605383304194063e+01
+-5.2679341105713597e+01
+-5.2753344417073826e+01
+-5.2827393252076305e+01
+-5.2901487587847761e+01
+-5.2975627398360039e+01
+-5.3049812668356068e+01
+-5.3124043425662769e+01
+-5.3198319708878039e+01
+-5.3272641554635001e+01
+-5.3347008976726265e+01
+-5.3421421974208705e+01
+-5.3495880546151838e+01
+-5.3570384707131261e+01
+-5.3644934495756694e+01
+-5.3719529952705315e+01
+-5.3794171107050715e+01
+-5.3868857941451786e+01
+-5.3943590426963695e+01
+-5.4018368538051213e+01
+-5.4093192288815914e+01
+-5.4168061718931426e+01
+-5.4242976868246323e+01
+-5.4317937761532221e+01
+-5.4392944400191823e+01
+-5.4467996783617544e+01
+-5.4543094917714789e+01
+-5.4618238834440987e+01
+-5.4693428572266576e+01
+-5.4768664166521539e+01
+-5.4843945616027426e+01
+-5.4919272896051808e+01
+-5.4994645981816262e+01
+-5.5070064869336662e+01
+-5.5145529586859610e+01
+-5.5221040165404474e+01
+-5.5296596635938720e+01
+-5.5372199029222543e+01
+-5.5447847375964336e+01
+-5.5523541704102840e+01
+-5.5599282009379735e+01
+-5.5675068266764264e+01
+-5.5750900451277737e+01
+-5.5826778561835276e+01
+-5.5902702634387239e+01
+-5.5978672708069858e+01
+-5.6054688815299677e+01
+-5.6130750961615391e+01
+-5.6206859145836155e+01
+-5.6283013368820043e+01
+-5.6359213655127455e+01
+-5.6435460044610664e+01
+-5.6511752576951977e+01
+-5.6588091266344136e+01
+-5.6664476087470909e+01
+-5.6740907011617402e+01
+-5.6817384021620619e+01
+-5.6893907146524469e+01
+-5.6970476426924733e+01
+-5.7047091901332188e+01
+-5.7123753584019980e+01
+-5.7200461473624102e+01
+-5.7277215568779482e+01
+-5.7354015883694110e+01
+-5.7430862456714252e+01
+-5.7507755328262590e+01
+-5.7584694527175614e+01
+-5.7661680035944904e+01
+-5.7738711825475534e+01
+-5.7815789870130487e+01
+-5.7892914184468225e+01
+-5.7970084808979735e+01
+-5.8047301784322514e+01
+-5.8124565135213466e+01
+-5.8201874861661594e+01
+-5.8279230961550468e+01
+-5.8356633439856793e+01
+-5.8434082329929844e+01
+-5.8511577672212049e+01
+-5.8589119503754098e+01
+-5.8666707822176683e+01
+-5.8744342599661962e+01
+-5.8822023808388359e+01
+-5.8899751445754376e+01
+-5.8977525548249439e+01
+-5.9055346155725623e+01
+-5.9133213301145474e+01
+-5.9211126989913346e+01
+-5.9289087220544090e+01
+-5.9367093993631229e+01
+-5.9445147333933200e+01
+-5.9523247281798511e+01
+-5.9601393877405435e+01
+-5.9679587135115959e+01
+-5.9757827029276655e+01
+-5.9836113530791906e+01
+-5.9914446622181721e+01
+-5.9992826332428471e+01
+-6.0071252702130074e+01
+-6.0149725769802913e+01
+-6.0228245549765269e+01
+-6.0306812040723791e+01
+-6.0385425241382315e+01
+-6.0464085165885081e+01
+-6.0542791852309804e+01
+-6.0621545340792537e+01
+-6.0700345660331116e+01
+-6.0779192795369191e+01
+-6.0858086719211791e+01
+-6.0937027407992424e+01
+-6.1016014870725449e+01
+-6.1095049137638696e+01
+-6.1174130239330182e+01
+-6.1253258207410859e+01
+-6.1332433075060614e+01
+-6.1411654875594813e+01
+-6.1490923632113933e+01
+-6.1570239326860687e+01
+-6.1649601931863202e+01
+-6.1729011422517274e+01
+-6.1808467813367905e+01
+-6.1887971144217524e+01
+-6.1967521455028766e+01
+-6.2047118770117244e+01
+-6.2126763089546522e+01
+-6.2206454411293429e+01
+-6.2286192740737157e+01
+-6.2365978112863857e+01
+-6.2445810570061823e+01
+-6.2525690151084603e+01
+-6.2605616852432753e+01
+-6.2685590643346671e+01
+-6.2765611493061947e+01
+-6.2845679397784899e+01
+-6.2925794395525962e+01
+-6.3005956527892039e+01
+-6.3086165829180366e+01
+-6.3166422304451970e+01
+-6.3246725951458288e+01
+-6.3327076770131505e+01
+-6.3407474785752051e+01
+-6.3487920039954126e+01
+-6.3568412574199193e+01
+-6.3648952403229615e+01
+-6.3729539500373036e+01
+-6.3810173835394252e+01
+-6.3890855389850643e+01
+-6.3971584192467390e+01
+-6.4052360283762198e+01
+-6.4133183702169319e+01
+-6.4214054461908475e+01
+-6.4294972561576870e+01
+-6.4375937999782565e+01
+-6.4456950791407067e+01
+-6.4538010976555640e+01
+-6.4619118597503487e+01
+-6.4700273684172345e+01
+-6.4781476217071472e+01
+-6.4862726164356332e+01
+-6.4944023497851674e+01
+-6.5025368232031099e+01
+-6.5106760408884398e+01
+-6.5188200070582198e+01
+-6.5269687242659970e+01
+-6.5351221924868184e+01
+-6.5432804114739255e+01
+-6.5514433817207248e+01
+-6.5596111066812497e+01
+-6.5677835905497403e+01
+-6.5759608371607882e+01
+-6.5841428461686746e+01
+-6.5923296145306054e+01
+-6.6005211392034084e+01
+-6.6087174198153050e+01
+-6.6169184601352498e+01
+-6.6251242642883795e+01
+-6.6333348356883533e+01
+-6.6415501749029161e+01
+-6.6497702817883308e+01
+-6.6579951564086500e+01
+-6.6662248012433267e+01
+-6.6744592203302091e+01
+-6.6826984176907857e+01
+-6.6909423948097142e+01
+-6.6991911492394195e+01
+-6.7074446781940964e+01
+-6.7157029798721510e+01
+-6.7239660564088453e+01
+-6.7322339109236466e+01
+-6.7405065465528580e+01
+-6.7487839666284017e+01
+-6.7570661746083886e+01
+-6.7653531739124844e+01
+-6.7736449655251505e+01
+-6.7819415466563783e+01
+-6.7902429141914283e+01
+-6.7985490662551499e+01
+-6.8068600059306192e+01
+-6.8151757375404628e+01
+-6.8234962651769820e+01
+-6.8318215902549355e+01
+-6.8401517124616475e+01
+-6.8484866314844837e+01
+-6.8568263487422314e+01
+-6.8651708683372703e+01
+-6.8735201946028852e+01
+-6.8818743306063809e+01
+-6.8902332743513469e+01
+-6.8985970225754230e+01
+-6.9069655723883784e+01
+-6.9153389252259203e+01
+-6.9237170853146694e+01
+-6.9321000568996993e+01
+-6.9404878425417849e+01
+-6.9488804421911283e+01
+-6.9572778555733080e+01
+-6.9656800831724283e+01
+-6.9740871285064244e+01
+-6.9824989958517321e+01
+-6.9909156891146608e+01
+-6.9993372078989282e+01
+-7.0077635490323587e+01
+-7.0161947093424644e+01
+-7.0246306884135805e+01
+-7.0330714901030618e+01
+-7.0415171186358819e+01
+-7.0499675774924853e+01
+-7.0584228671754630e+01
+-7.0668829874428795e+01
+-7.0753479382799412e+01
+-7.0838177223117412e+01
+-7.0922923438665848e+01
+-7.1007718072534985e+01
+-7.1092561139219654e+01
+-7.1177452608891628e+01
+-7.1262392447909633e+01
+-7.1347380635425935e+01
+-7.1432417201764551e+01
+-7.1517502190042975e+01
+-7.1602635641132622e+01
+-7.1687817569800757e+01
+-7.1773047973972410e+01
+-7.1858326851568748e+01
+-7.1943654217103386e+01
+-7.2029030110808463e+01
+-7.2114454575128519e+01
+-7.2199927640101308e+01
+-7.2285449286138544e+01
+-7.2371019481244758e+01
+-7.2456638197059164e+01
+-7.2542305447467641e+01
+-7.2628021273612760e+01
+-7.2713785716829818e+01
+-7.2799598802789347e+01
+-7.2885460532881083e+01
+-7.2971370906406079e+01
+-7.3057329929545048e+01
+-7.3143337635997369e+01
+-7.3229394066342223e+01
+-7.3315499257724071e+01
+-7.3401653207362472e+01
+-7.3487855886717952e+01
+-7.3574107267198940e+01
+-7.3660407342813713e+01
+-7.3746756142601299e+01
+-7.3833153698613970e+01
+-7.3919600043380726e+01
+-7.4006095211337552e+01
+-7.4092639237397094e+01
+-7.4179232153156605e+01
+-7.4265873951670017e+01
+-7.4352564601125223e+01
+-7.4439304069763040e+01
+-7.4526092353900708e+01
+-7.4612929493372377e+01
+-7.4699815531755888e+01
+-7.4786750504912021e+01
+-7.4873734417833788e+01
+-7.4960767267797294e+01
+-7.5047849054359176e+01
+-7.5134979803587910e+01
+-7.5222159558656045e+01
+-7.5309388362541085e+01
+-7.5396666229381225e+01
+-7.5483993128615097e+01
+-7.5571369025835651e+01
+-7.5658793899777976e+01
+-7.5746267781744493e+01
+-7.5833790716179337e+01
+-7.5921362745156770e+01
+-7.6008983883201552e+01
+-7.6096654127064525e+01
+-7.6184373473495199e+01
+-7.6272141936948231e+01
+-7.6359959559320089e+01
+-7.6447826384868435e+01
+-7.6535742444691394e+01
+-7.6623707717250667e+01
+-7.6711722167848691e+01
+-7.6799785765668105e+01
+-7.6887898524998548e+01
+-7.6976060489230804e+01
+-7.7064271701956770e+01
+-7.7152532189726656e+01
+-7.7240841952677172e+01
+-7.7329200988672241e+01
+-7.7417609303003545e+01
+-7.7506066930670798e+01
+-7.7594573914101460e+01
+-7.7683130291988945e+01
+-7.7771736059623535e+01
+-7.7860391184293150e+01
+-7.7949095633292700e+01
+-7.8037849402337542e+01
+-7.8126652531194196e+01
+-7.8215505063419045e+01
+-7.8304407034720484e+01
+-7.8393358449417761e+01
+-7.8482359303982165e+01
+-7.8571409597285808e+01
+-7.8660509356103788e+01
+-7.8749658625213684e+01
+-7.8838857449196084e+01
+-7.8928105842810908e+01
+-7.9017403774595834e+01
+-7.9106751209112431e+01
+-7.9196148124186493e+01
+-7.9285594550700083e+01
+-7.9375090532799817e+01
+-7.9464636112295636e+01
+-7.9554231303840041e+01
+-7.9643876104563830e+01
+-7.9733570511601116e+01
+-7.9823314539789095e+01
+-7.9913108231404991e+01
+-8.0002951631086461e+01
+-8.0092844770435732e+01
+-8.0182787628913033e+01
+-8.0272780172942731e+01
+-8.0362822372315023e+01
+-8.0452914235941904e+01
+-8.0543055797976081e+01
+-8.0633247092995262e+01
+-8.0723488155868722e+01
+-8.0813779021917071e+01
+-8.0904119726499772e+01
+-8.0994510293442630e+01
+-8.1084950700436778e+01
+-8.1175440913639719e+01
+-8.1265980903063195e+01
+-8.1356570683528645e+01
+-8.1447210298765853e+01
+-8.1537899792698212e+01
+-8.1628639191920158e+01
+-8.1719428496167382e+01
+-8.1810267702865062e+01
+-8.1901156817175391e+01
+-8.1992095875208619e+01
+-8.2083084920812027e+01
+-8.2174123993937712e+01
+-8.2265213089254772e+01
+-8.2356352172218038e+01
+-8.2447541208285202e+01
+-8.2538780192332609e+01
+-8.2630069164834012e+01
+-8.2721408170185782e+01
+-8.2812797244839942e+01
+-8.2904236393471209e+01
+-8.2995725612810048e+01
+-8.3087264901961774e+01
+-8.3178854287639794e+01
+-8.3270493814368820e+01
+-8.3362183526471142e+01
+-8.3453923438282573e+01
+-8.3545713517661056e+01
+-8.3637553728465790e+01
+-8.3729444048127434e+01
+-8.3821384508359486e+01
+-8.3913375154446513e+01
+-8.4005416029257987e+01
+-8.4097507147588999e+01
+-8.4189648506122253e+01
+-8.4281840101540467e+01
+-8.4374081948657064e+01
+-8.4466374090386822e+01
+-8.4558716572062465e+01
+-8.4651109425234708e+01
+-8.4743552626328807e+01
+-8.4836046137987935e+01
+-8.4928589927024561e+01
+-8.5021184008715409e+01
+-8.5113828429604439e+01
+-8.5206523236430357e+01
+-8.5299268456348784e+01
+-8.5392064086161724e+01
+-8.5484910120059823e+01
+-8.5577806561110975e+01
+-8.5670753447889496e+01
+-8.5763750827847105e+01
+-8.5856798744200177e+01
+-8.5949897190935374e+01
+-8.6043046130277787e+01
+-8.6136245524444590e+01
+-8.6229495366936135e+01
+-8.6322795699741690e+01
+-8.6416146569021649e+01
+-8.6509548012575308e+01
+-8.6603000034759219e+01
+-8.6696502631568578e+01
+-8.6790055801468412e+01
+-8.6883659571628129e+01
+-8.6977313987736878e+01
+-8.7071019095279681e+01
+-8.7164774908981769e+01
+-8.7258581395890431e+01
+-8.7352438518951558e+01
+-8.7446346254769182e+01
+-8.7540304634579030e+01
+-8.7634313703275325e+01
+-8.7728373503389093e+01
+-8.7822484049986187e+01
+-8.7916645340412188e+01
+-8.8010857372011515e+01
+-8.8105120159763203e+01
+-8.8199433745980102e+01
+-8.8293798175326387e+01
+-8.8388213479370037e+01
+-8.8482679637294183e+01
+-8.8577196615185244e+01
+-8.8671764382499831e+01
+-8.8766382947865964e+01
+-8.8861052345184405e+01
+-8.8955772608791193e+01
+-8.9050543773896010e+01
+-8.9145365877062162e+01
+-8.9240238954969413e+01
+-8.9335163032243500e+01
+-8.9430138085293777e+01
+-8.9525164078475569e+01
+-8.9620240980139570e+01
+-8.9715368805086868e+01
+-8.9810547598085449e+01
+-8.9905777404102935e+01
+-9.0001058250084697e+01
+-9.0096390135042725e+01
+-9.0191773055585983e+01
+-9.0287207016564693e+01
+-9.0382692055793839e+01
+-9.0478228219329623e+01
+-9.0573815549067859e+01
+-9.0669454038538603e+01
+-9.0765143650068723e+01
+-9.0860884345988737e+01
+-9.0956676120085831e+01
+-9.1052519014903382e+01
+-9.1148413077179470e+01
+-9.1244358345092238e+01
+-9.1340354822582611e+01
+-9.1436402505032049e+01
+-9.1532501390334360e+01
+-9.1628651505589303e+01
+-9.1724852896738881e+01
+-9.1821105609523997e+01
+-9.1917409658745626e+01
+-9.2013765011249049e+01
+-9.2110171629753722e+01
+-9.2206629490718655e+01
+-9.2303138625558162e+01
+-9.2399699079425815e+01
+-9.2496310895068973e+01
+-9.2592974087264835e+01
+-9.2689688652745247e+01
+-9.2786454588252724e+01
+-9.2883271909215381e+01
+-9.2980140660023636e+01
+-9.3077060887559853e+01
+-9.3174032624437928e+01
+-9.3271055846200667e+01
+-9.3368130514122299e+01
+-9.3465256593666027e+01
+-9.3562434098987666e+01
+-9.3659663075657619e+01
+-9.3756943569461981e+01
+-9.3854275607715536e+01
+-9.3951659189102685e+01
+-9.4049094309844691e+01
+-9.4146580974589696e+01
+-9.4244119221691065e+01
+-9.4341709097929140e+01
+-9.4439350645836001e+01
+-9.4537043858562811e+01
+-9.4634788697401689e+01
+-9.4732585123647780e+01
+-9.4830433130637175e+01
+-9.4928332761369219e+01
+-9.5026284063115511e+01
+-9.5124287074560925e+01
+-9.5222341800045584e+01
+-9.5320448235322630e+01
+-9.5418606378619941e+01
+-9.5516816256926631e+01
+-9.5615077915788120e+01
+-9.5713391400552567e+01
+-9.5811756726178217e+01
+-9.5910173860518782e+01
+-9.6008642767375889e+01
+-9.6107163422696658e+01
+-9.6205735851009379e+01
+-9.6304360088988233e+01
+-9.6403036173253454e+01
+-9.6501764139805758e+01
+-9.6600544024245295e+01
+-9.6699375861725713e+01
+-9.6798259660993381e+01
+-9.6897195389863327e+01
+-9.6996183012629615e+01
+-9.7095222507178548e+01
+-9.7194313905765384e+01
+-9.7293457254237239e+01
+-9.7392652595957202e+01
+-9.7491899945405521e+01
+-9.7591199298429373e+01
+-9.7690550650889506e+01
+-9.7789954018132860e+01
+-9.7889409445708495e+01
+-9.7988916981763836e+01
+-9.8088476659580195e+01
+-9.8188088452974242e+01
+-9.8287752320896516e+01
+-9.8387468226735365e+01
+-9.8487236185472227e+01
+-9.8587056245373361e+01
+-9.8686928454924058e+01
+-9.8786852842429596e+01
+-9.8886829404917862e+01
+-9.8986858136725616e+01
+-9.9086939041192210e+01
+-9.9187072157665966e+01
+-9.9287257534497513e+01
+-9.9387495215586185e+01
+-9.9487785193085131e+01
+-9.9588127425762707e+01
+-9.9688521872410732e+01
+-9.9788968526633056e+01
+-9.9889467435990454e+01
+-9.9990018652685833e+01
+-1.0009062221803860e+02
+-1.0019127812983700e+02
+-1.0029198637498624e+02
+-1.0039274694384694e+02
+-1.0049355986694827e+02
+-1.0059442520073470e+02
+-1.0069534300143208e+02
+-1.0079631328622939e+02
+-1.0089733601180914e+02
+-1.0099841112964828e+02
+-1.0109953860902527e+02
+-1.0120071849042132e+02
+-1.0130195083211872e+02
+-1.0140323568875104e+02
+-1.0150457307253663e+02
+-1.0160596296832924e+02
+-1.0170740536094827e+02
+-1.0180890026052042e+02
+-1.0191044771639832e+02
+-1.0201204778130945e+02
+-1.0211370049221291e+02
+-1.0221540582299698e+02
+-1.0231716373178145e+02
+-1.0241897418127625e+02
+-1.0252083718754821e+02
+-1.0262275280108784e+02
+-1.0272472107258818e+02
+-1.0282674203046831e+02
+-1.0292881566862272e+02
+-1.0303094197797573e+02
+-1.0313312095930434e+02
+-1.0323535265279347e+02
+-1.0333763710848085e+02
+-1.0343997437209828e+02
+-1.0354236443932703e+02
+-1.0364480727355730e+02
+-1.0374730283807919e+02
+-1.0384985112246980e+02
+-1.0395245215705097e+02
+-1.0405510597564948e+02
+-1.0415781261302779e+02
+-1.0426057210769244e+02
+-1.0436338449908531e+02
+-1.0446624982285952e+02
+-1.0456916807061576e+02
+-1.0467213920553479e+02
+-1.0477516319082645e+02
+-1.0487824001990275e+02
+-1.0498136973298823e+02
+-1.0508455237433424e+02
+-1.0518778798052776e+02
+-1.0529107655749756e+02
+-1.0539441810350849e+02
+-1.0549781261906803e+02
+-1.0560126013076204e+02
+-1.0570476068200016e+02
+-1.0580831431599084e+02
+-1.0591192104701200e+02
+-1.0601558084450005e+02
+-1.0611929367403397e+02
+-1.0622305951421454e+02
+-1.0632687839572945e+02
+-1.0643075036228809e+02
+-1.0653467545534576e+02
+-1.0663865369015272e+02
+-1.0674268506505359e+02
+-1.0684676957840060e+02
+-1.0695090724594576e+02
+-1.0705509811040935e+02
+-1.0715934221683189e+02
+-1.0726363959622793e+02
+-1.0736799022350843e+02
+-1.0747239405955833e+02
+-1.0757685106936341e+02
+-1.0768136126558208e+02
+-1.0778592469162868e+02
+-1.0789054139117427e+02
+-1.0799521139250490e+02
+-1.0809993470006143e+02
+-1.0820471131623286e+02
+-1.0830954125029628e+02
+-1.0841442453907955e+02
+-1.0851936122629834e+02
+-1.0862435135165090e+02
+-1.0872939490813327e+02
+-1.0883449185861093e+02
+-1.0893964216591574e+02
+-1.0904484582101520e+02
+-1.0915010285848524e+02
+-1.0925541331665373e+02
+-1.0936077722872925e+02
+-1.0946619460744557e+02
+-1.0957166546041766e+02
+-1.0967718979708749e+02
+-1.0978276764813639e+02
+-1.0988839905794846e+02
+-1.0999408407057740e+02
+-1.1009982269653769e+02
+-1.1020561489435897e+02
+-1.1031146061809837e+02
+-1.1041735983837728e+02
+-1.1052331259207109e+02
+-1.1062931893261937e+02
+-1.1073537891024849e+02
+-1.1084149253783650e+02
+-1.1094765980416618e+02
+-1.1105388069804738e+02
+-1.1116015523401397e+02
+-1.1126648346647255e+02
+-1.1137286545326019e+02
+-1.1147930123479119e+02
+-1.1158579078179189e+02
+-1.1169233404756558e+02
+-1.1179893098980688e+02
+-1.1190558161725006e+02
+-1.1201228597155850e+02
+-1.1211904409489745e+02
+-1.1222585602659457e+02
+-1.1233272180157905e+02
+-1.1243964145440168e+02
+-1.1254661500728835e+02
+-1.1265364243316235e+02
+-1.1276072369262209e+02
+-1.1286785875076697e+02
+-1.1297504762502797e+02
+-1.1308229036659731e+02
+-1.1318958702684540e+02
+-1.1329693763407377e+02
+-1.1340434218082677e+02
+-1.1351180065657249e+02
+-1.1361931306172961e+02
+-1.1372687944051962e+02
+-1.1383449984811395e+02
+-1.1394217433437110e+02
+-1.1404990288737812e+02
+-1.1415768545537045e+02
+-1.1426552198665004e+02
+-1.1437341247338883e+02
+-1.1448135697575741e+02
+-1.1458935555977564e+02
+-1.1469740827685114e+02
+-1.1480551511994398e+02
+-1.1491367606740290e+02
+-1.1502189110126179e+02
+-1.1513016024640309e+02
+-1.1523848355535246e+02
+-1.1534686108057201e+02
+-1.1545529284302629e+02
+-1.1556377881485916e+02
+-1.1567231896401522e+02
+-1.1578091326949577e+02
+-1.1588956175452836e+02
+-1.1599826445339721e+02
+-1.1610702139891269e+02
+-1.1621583260674547e+02
+-1.1632469808150948e+02
+-1.1643361782788537e+02
+-1.1654259186565402e+02
+-1.1665162023800032e+02
+-1.1676070299012240e+02
+-1.1686984015257444e+02
+-1.1697903169733323e+02
+-1.1708827758173068e+02
+-1.1719757776772890e+02
+-1.1730693227111578e+02
+-1.1741634114240443e+02
+-1.1752580443235300e+02
+-1.1763532217165699e+02
+-1.1774489435991660e+02
+-1.1785452099405657e+02
+-1.1796420207854884e+02
+-1.1807393764805441e+02
+-1.1818372774478158e+02
+-1.1829357240693363e+02
+-1.1840347162615994e+02
+-1.1851342536407542e+02
+-1.1862343358236782e+02
+-1.1873349627717317e+02
+-1.1884361349802039e+02
+-1.1895378529903201e+02
+-1.1906401172223292e+02
+-1.1917429276125927e+02
+-1.1928462839765034e+02
+-1.1939501861723096e+02
+-1.1950546345564486e+02
+-1.1961596298067730e+02
+-1.1972651725984143e+02
+-1.1983712631214793e+02
+-1.1994779008142989e+02
+-1.2005850850505276e+02
+-1.2016928154034936e+02
+-1.2028010922451854e+02
+-1.2039099161472647e+02
+-1.2050192876660107e+02
+-1.2061292071789708e+02
+-1.2072396749483727e+02
+-1.2083506912308462e+02
+-1.2094622560625085e+02
+-1.2105743691376648e+02
+-1.2116870301212249e+02
+-1.2128002388122380e+02
+-1.2139139955463412e+02
+-1.2150283007933102e+02
+-1.2161431549945165e+02
+-1.2172585582610554e+02
+-1.2183745104909524e+02
+-1.2194910115830335e+02
+-1.2206080616975572e+02
+-1.2217256614000055e+02
+-1.2228438112907185e+02
+-1.2239625117821734e+02
+-1.2250817625354084e+02
+-1.2262015630236060e+02
+-1.2273219127737227e+02
+-1.2284428119379238e+02
+-1.2295642610717221e+02
+-1.2306862607331695e+02
+-1.2318088112289531e+02
+-1.2329319124761517e+02
+-1.2340555643583333e+02
+-1.2351797668703870e+02
+-1.2363045204524860e+02
+-1.2374298256561256e+02
+-1.2385556829820003e+02
+-1.2396820923401789e+02
+-1.2408090532596908e+02
+-1.2419365652696396e+02
+-1.2430646282850527e+02
+-1.2441932428191210e+02
+-1.2453224094364901e+02
+-1.2464521285793106e+02
+-1.2475824001997377e+02
+-1.2487132241274249e+02
+-1.2498446002302019e+02
+-1.2509765288197067e+02
+-1.2521090104938958e+02
+-1.2532420458489372e+02
+-1.2543756350869779e+02
+-1.2555097777994455e+02
+-1.2566444735252263e+02
+-1.2577797219530729e+02
+-1.2589155233712023e+02
+-1.2600518782176967e+02
+-1.2611887869090479e+02
+-1.2623262496108022e+02
+-1.2634642663266108e+02
+-1.2646028370606864e+02
+-1.2657419620132372e+02
+-1.2668816416882485e+02
+-1.2680218766158448e+02
+-1.2691626671546753e+02
+-1.2703040129775059e+02
+-1.2714459135856345e+02
+-1.2725883685291119e+02
+-1.2737313779247425e+02
+-1.2748749422549788e+02
+-1.2760190620053808e+02
+-1.2771637374820114e+02
+-1.2783089687127297e+02
+-1.2794547557014562e+02
+-1.2806010985294230e+02
+-1.2817479975870788e+02
+-1.2828954533421771e+02
+-1.2840434662191819e+02
+-1.2851920361392683e+02
+-1.2863411626989023e+02
+-1.2874908454937818e+02
+-1.2886410843982304e+02
+-1.2897918797184246e+02
+-1.2909432317976976e+02
+-1.2920951410055383e+02
+-1.2932476078160960e+02
+-1.2944006327296785e+02
+-1.2955542161946971e+02
+-1.2967083580562681e+02
+-1.2978630577702816e+02
+-1.2990183147929028e+02
+-1.3001741289862483e+02
+-1.3013305008416617e+02
+-1.3024874309046047e+02
+-1.3036449196295331e+02
+-1.3048029671068375e+02
+-1.3059615733359021e+02
+-1.3071207383373223e+02
+-1.3082804623783321e+02
+-1.3094407458852919e+02
+-1.3106015892820832e+02
+-1.3117629926847474e+02
+-1.3129249557321754e+02
+-1.3140874780222194e+02
+-1.3152505593028133e+02
+-1.3164141999222505e+02
+-1.3175784003789065e+02
+-1.3187431611407530e+02
+-1.3199084823222438e+02
+-1.3210743638097608e+02
+-1.3222408054904358e+02
+-1.3234078075242553e+02
+-1.3245753704941288e+02
+-1.3257434950193465e+02
+-1.3269121815234624e+02
+-1.3280814296470538e+02
+-1.3292512388349616e+02
+-1.3304216085883493e+02
+-1.3315925390632182e+02
+-1.3327640308380322e+02
+-1.3339360844937838e+02
+-1.3351087003406849e+02
+-1.3362818782692315e+02
+-1.3374556181338116e+02
+-1.3386299199205698e+02
+-1.3398047841426850e+02
+-1.3409802114450869e+02
+-1.3421562024100393e+02
+-1.3433327568912230e+02
+-1.3445098742722769e+02
+-1.3456875539369466e+02
+-1.3468657957458507e+02
+-1.3480446002987603e+02
+-1.3492239682590295e+02
+-1.3504039001426787e+02
+-1.3515843958764142e+02
+-1.3527654552396186e+02
+-1.3539470780573828e+02
+-1.3551292646862561e+02
+-1.3563120158256521e+02
+-1.3574953321725113e+02
+-1.3586792139320031e+02
+-1.3598636605470583e+02
+-1.3610486713950422e+02
+-1.3622342460547938e+02
+-1.3634203849110438e+02
+-1.3646070885499947e+02
+-1.3657943575254382e+02
+-1.3669821920143033e+02
+-1.3681705919503949e+02
+-1.3693595572670077e+02
+-1.3705490881104254e+02
+-1.3717391849570450e+02
+-1.3729298483116690e+02
+-1.3741210785195756e+02
+-1.3753128752879795e+02
+-1.3765052381645708e+02
+-1.3776981667400423e+02
+-1.3788916611050004e+02
+-1.3800857216725649e+02
+-1.3812803488613426e+02
+-1.3824755430962711e+02
+-1.3836713048121180e+02
+-1.3848676344444888e+02
+-1.3860645322733509e+02
+-1.3872619979560832e+02
+-1.3884600309944267e+02
+-1.3896586309394843e+02
+-1.3908577979162655e+02
+-1.3920575324200439e+02
+-1.3932578349491172e+02
+-1.3944587058130310e+02
+-1.3956601450287698e+02
+-1.3968621525881576e+02
+-1.3980647285682531e+02
+-1.3992678733870935e+02
+-1.4004715875479502e+02
+-1.4016758715046154e+02
+-1.4028807251355764e+02
+-1.4040861479481592e+02
+-1.4052921394502124e+02
+-1.4064986995518942e+02
+-1.4077058287869349e+02
+-1.4089135277427056e+02
+-1.4101217968780338e+02
+-1.4113306361375447e+02
+-1.4125400453373229e+02
+-1.4137500243338511e+02
+-1.4149605734533404e+02
+-1.4161716933250435e+02
+-1.4173833845761513e+02
+-1.4185956474071446e+02
+-1.4198084813570955e+02
+-1.4210218859081755e+02
+-1.4222358607157619e+02
+-1.4234504061280541e+02
+-1.4246655226664478e+02
+-1.4258812108237504e+02
+-1.4270974707603449e+02
+-1.4283143024221587e+02
+-1.4295317057551009e+02
+-1.4307496809187279e+02
+-1.4319682284037575e+02
+-1.4331873487293930e+02
+-1.4344070422445927e+02
+-1.4356273086173402e+02
+-1.4368481473453826e+02
+-1.4380695579790819e+02
+-1.4392915406805665e+02
+-1.4405140960066359e+02
+-1.4417372245167439e+02
+-1.4429609265343703e+02
+-1.4441852020172462e+02
+-1.4454100508916443e+02
+-1.4466354731863808e+02
+-1.4478614693404441e+02
+-1.4490880398953658e+02
+-1.4503151853377906e+02
+-1.4515429055162159e+02
+-1.4527711998674405e+02
+-1.4540000678288607e+02
+-1.4552295092858327e+02
+-1.4564595248180336e+02
+-1.4576901150648669e+02
+-1.4589212805354097e+02
+-1.4601530212174174e+02
+-1.4613853369683119e+02
+-1.4626182276811429e+02
+-1.4638516936631464e+02
+-1.4650857354887651e+02
+-1.4663203537303463e+02
+-1.4675555485668519e+02
+-1.4687913195675119e+02
+-1.4700276662490992e+02
+-1.4712645882765523e+02
+-1.4725020859074729e+02
+-1.4737401595476268e+02
+-1.4749788096018304e+02
+-1.4762180364638979e+02
+-1.4774578405205514e+02
+-1.4786982221534072e+02
+-1.4799391814452505e+02
+-1.4811807180156592e+02
+-1.4824228314443729e+02
+-1.4836655214645069e+02
+-1.4849087884226958e+02
+-1.4861526328189589e+02
+-1.4873970551261883e+02
+-1.4886420555019430e+02
+-1.4898876339003425e+02
+-1.4911337902755557e+02
+-1.4923805247877914e+02
+-1.4936278379166387e+02
+-1.4948757301691532e+02
+-1.4961242018942917e+02
+-1.4973732528085790e+02
+-1.4986228824704330e+02
+-1.4998730904824950e+02
+-1.5011238769614536e+02
+-1.5023752423556365e+02
+-1.5036271871160977e+02
+-1.5048797115258637e+02
+-1.5061328156075029e+02
+-1.5073864993611869e+02
+-1.5086407628732965e+02
+-1.5098956065750900e+02
+-1.5111510309840369e+02
+-1.5124070365660211e+02
+-1.5136636231872293e+02
+-1.5149207903269448e+02
+-1.5161785374650350e+02
+-1.5174368645035764e+02
+-1.5186957719990730e+02
+-1.5199552605643149e+02
+-1.5212153306732174e+02
+-1.5224759822441609e+02
+-1.5237372150566515e+02
+-1.5249990289383717e+02
+-1.5262614242771247e+02
+-1.5275244018220866e+02
+-1.5287879623190662e+02
+-1.5300521059505076e+02
+-1.5313168320256392e+02
+-1.5325821397785796e+02
+-1.5338480287099063e+02
+-1.5351144993860677e+02
+-1.5363815526399688e+02
+-1.5376491892450832e+02
+-1.5389174092839005e+02
+-1.5401862123931281e+02
+-1.5414555982093350e+02
+-1.5427255668071456e+02
+-1.5439961189401498e+02
+-1.5452672554203448e+02
+-1.5465389768118467e+02
+-1.5478112826872092e+02
+-1.5490841723711046e+02
+-1.5503576452494397e+02
+-1.5516317014200763e+02
+-1.5529063414401870e+02
+-1.5541815658709271e+02
+-1.5554573750526015e+02
+-1.5567337689832158e+02
+-1.5580107476313250e+02
+-1.5592883110595477e+02
+-1.5605664597067616e+02
+-1.5618451941059092e+02
+-1.5631245147369043e+02
+-1.5644044214632353e+02
+-1.5656849137507027e+02
+-1.5669659910656279e+02
+-1.5682476533038346e+02
+-1.5695299010268533e+02
+-1.5708127348534879e+02
+-1.5720961552636913e+02
+-1.5733801621820371e+02
+-1.5746647553942577e+02
+-1.5759499347324339e+02
+-1.5772357005674368e+02
+-1.5785220536177476e+02
+-1.5798089945992774e+02
+-1.5810965237256835e+02
+-1.5823846404321475e+02
+-1.5836733440868755e+02
+-1.5849626342394083e+02
+-1.5862525111645849e+02
+-1.5875429753185691e+02
+-1.5888340271613129e+02
+-1.5901256671967516e+02
+-1.5914178959571933e+02
+-1.5927107139678463e+02
+-1.5940041212995376e+02
+-1.5952981173187837e+02
+-1.5965927013315238e+02
+-1.5978878728804338e+02
+-1.5991836324551713e+02
+-1.6004799807821297e+02
+-1.6017769185440443e+02
+-1.6030744459161303e+02
+-1.6043725627461689e+02
+-1.6056712688808619e+02
+-1.6069705644298730e+02
+-1.6082704499104611e+02
+-1.6095709258749392e+02
+-1.6108719927041162e+02
+-1.6121736500927403e+02
+-1.6134758975640543e+02
+-1.6147787346882691e+02
+-1.6160821615816729e+02
+-1.6173861787128641e+02
+-1.6186907865533240e+02
+-1.6199959853952146e+02
+-1.6213017752527591e+02
+-1.6226081561162781e+02
+-1.6239151280670751e+02
+-1.6252226915504281e+02
+-1.6265308471025980e+02
+-1.6278395952059680e+02
+-1.6291489357164824e+02
+-1.6304588680859345e+02
+-1.6317693917666995e+02
+-1.6330805066500304e+02
+-1.6343922133074318e+02
+-1.6357045123689252e+02
+-1.6370174043221809e+02
+-1.6383308890854317e+02
+-1.6396449664345613e+02
+-1.6409596361936718e+02
+-1.6422748987474998e+02
+-1.6435907548424714e+02
+-1.6449072052219918e+02
+-1.6462242500864704e+02
+-1.6475418887946640e+02
+-1.6488601206329250e+02
+-1.6501789451254476e+02
+-1.6514983627478009e+02
+-1.6528183742133862e+02
+-1.6541389801889596e+02
+-1.6554601807989249e+02
+-1.6567819758177953e+02
+-1.6581043650199808e+02
+-1.6594273485240436e+02
+-1.6607509269819846e+02
+-1.6620751010916928e+02
+-1.6633998713273192e+02
+-1.6647252372680762e+02
+-1.6660511982694470e+02
+-1.6673777537504475e+02
+-1.6687049038687772e+02
+-1.6700326492586908e+02
+-1.6713609905573671e+02
+-1.6726899281004262e+02
+-1.6740194617560800e+02
+-1.6753495913523383e+02
+-1.6766803168615033e+02
+-1.6780116388330481e+02
+-1.6793435579607404e+02
+-1.6806760748704286e+02
+-1.6820091893983175e+02
+-1.6833429008711747e+02
+-1.6846772086153143e+02
+-1.6860121124398617e+02
+-1.6873476129022745e+02
+-1.6886837106243851e+02
+-1.6900204061704457e+02
+-1.6913576998743764e+02
+-1.6926955920125098e+02
+-1.6940340828253323e+02
+-1.6953731721366182e+02
+-1.6967128595012829e+02
+-1.6980531444761746e+02
+-1.6993940270024544e+02
+-1.7007355076169861e+02
+-1.7020775869078702e+02
+-1.7034202653417466e+02
+-1.7047635428994221e+02
+-1.7061074194402428e+02
+-1.7074518948612391e+02
+-1.7087969694975592e+02
+-1.7101426439670149e+02
+-1.7114889188846962e+02
+-1.7128357944202810e+02
+-1.7141832700530318e+02
+-1.7155313452028301e+02
+-1.7168800194847051e+02
+-1.7182292932943014e+02
+-1.7195791672224209e+02
+-1.7209296418219390e+02
+-1.7222807172048365e+02
+-1.7236323931986499e+02
+-1.7249846696320037e+02
+-1.7263375466828504e+02
+-1.7276910250706251e+02
+-1.7290451055613326e+02
+-1.7303997886620127e+02
+-1.7317550738437984e+02
+-1.7331109603188548e+02
+-1.7344674473768021e+02
+-1.7358245352077691e+02
+-1.7371822245828463e+02
+-1.7385405162765190e+02
+-1.7398994106860695e+02
+-1.7412589076240974e+02
+-1.7426190068529158e+02
+-1.7439797082837757e+02
+-1.7453410124237232e+02
+-1.7467029199287424e+02
+-1.7480654313925288e+02
+-1.7494285466845525e+02
+-1.7507922652070530e+02
+-1.7521565863621413e+02
+-1.7535215100118455e+02
+-1.7548870367310650e+02
+-1.7562531671560222e+02
+-1.7576199017902232e+02
+-1.7589872406063316e+02
+-1.7603551834443061e+02
+-1.7617237301841959e+02
+-1.7630928811722103e+02
+-1.7644626370552942e+02
+-1.7658329984773067e+02
+-1.7672039655956880e+02
+-1.7685755378139351e+02
+-1.7699477144706935e+02
+-1.7713204951298366e+02
+-1.7726938802561406e+02
+-1.7740678705396076e+02
+-1.7754424666286832e+02
+-1.7768176686886312e+02
+-1.7781934765729986e+02
+-1.7795698901345497e+02
+-1.7809469094913382e+02
+-1.7823245351725950e+02
+-1.7837027677429231e+02
+-1.7850816075934006e+02
+-1.7864610544209864e+02
+-1.7878411077491046e+02
+-1.7892217671420337e+02
+-1.7906030326389990e+02
+-1.7919849045856299e+02
+-1.7933673833338406e+02
+-1.7947504693057707e+02
+-1.7961341630324270e+02
+-1.7975184650541752e+02
+-1.7989033757290375e+02
+-1.8002888946856638e+02
+-1.8016750213703591e+02
+-1.8030617552820928e+02
+-1.8044490965320992e+02
+-1.8058370456266277e+02
+-1.8072256030751731e+02
+-1.8086147691874703e+02
+-1.8100045439636071e+02
+-1.8113949273770430e+02
+-1.8127859194998811e+02
+-1.8141775207988167e+02
+-1.8155697318391992e+02
+-1.8169625531290995e+02
+-1.8183559845107149e+02
+-1.8197500253966493e+02
+-1.8211446751999722e+02
+-1.8225399337908871e+02
+-1.8239358017481760e+02
+-1.8253322797115626e+02
+-1.8267293681869060e+02
+-1.8281270671445611e+02
+-1.8295253764210088e+02
+-1.8309242958935167e+02
+-1.8323238259134553e+02
+-1.8337239671380638e+02
+-1.8351247202214063e+02
+-1.8365260853212237e+02
+-1.8379280618259315e+02
+-1.8393306490577754e+02
+-1.8407338465689497e+02
+-1.8421376548314785e+02
+-1.8435420745473343e+02
+-1.8449471063758486e+02
+-1.8463527504806527e+02
+-1.8477590067055692e+02
+-1.8491658748937385e+02
+-1.8505733551674010e+02
+-1.8519814480814105e+02
+-1.8533901542278264e+02
+-1.8547994740075643e+02
+-1.8562094070569196e+02
+-1.8576199528210427e+02
+-1.8590311108017619e+02
+-1.8604428811598734e+02
+-1.8618552644813155e+02
+-1.8632682613544219e+02
+-1.8646818720861071e+02
+-1.8660960965470952e+02
+-1.8675109345705934e+02
+-1.8689263861379607e+02
+-1.8703424518232046e+02
+-1.8717591323484839e+02
+-1.8731764283637548e+02
+-1.8745943396794951e+02
+-1.8760128655645846e+02
+-1.8774320052878107e+02
+-1.8788517586537333e+02
+-1.8802721262973509e+02
+-1.8816931089250983e+02
+-1.8831147071081193e+02
+-1.8845369208763594e+02
+-1.8859597501244761e+02
+-1.8873831947782426e+02
+-1.8888072551252802e+02
+-1.8902319316866476e+02
+-1.8916572249810119e+02
+-1.8930831351500612e+02
+-1.8945096617511552e+02
+-1.8959368042913857e+02
+-1.8973645624248320e+02
+-1.8987929363935351e+02
+-1.9002219265865148e+02
+-1.9016515334031644e+02
+-1.9030817573633524e+02
+-1.9045125990646889e+02
+-1.9059440590974825e+02
+-1.9073761375366411e+02
+-1.9088088336582030e+02
+-1.9102421466694864e+02
+-1.9116760760528209e+02
+-1.9131106223905971e+02
+-1.9145457865402255e+02
+-1.9159815693008423e+02
+-1.9174179707942614e+02
+-1.9188549907052999e+02
+-1.9202926287181612e+02
+-1.9217308849166335e+02
+-1.9231697600038740e+02
+-1.9246092547363239e+02
+-1.9260493696267710e+02
+-1.9274901042133865e+02
+-1.9289314577906862e+02
+-1.9303734297207890e+02
+-1.9318160201516031e+02
+-1.9332592297380100e+02
+-1.9347030591385362e+02
+-1.9361475087240115e+02
+-1.9375925784193100e+02
+-1.9390382681109554e+02
+-1.9404845778044745e+02
+-1.9419315079814567e+02
+-1.9433790592424975e+02
+-1.9448272321284495e+02
+-1.9462760264856499e+02
+-1.9477254417123467e+02
+-1.9491754772066966e+02
+-1.9506261328089056e+02
+-1.9520774090443786e+02
+-1.9535293064974508e+02
+-1.9549818256467563e+02
+-1.9564349665480788e+02
+-1.9578887291514991e+02
+-1.9593431134385622e+02
+-1.9607981197566554e+02
+-1.9622537486891977e+02
+-1.9637100008161272e+02
+-1.9651668762724768e+02
+-1.9666243745036797e+02
+-1.9680824948958551e+02
+-1.9695412370381726e+02
+-1.9710006013320501e+02
+-1.9724605883819541e+02
+-1.9739211987565898e+02
+-1.9753824326088235e+02
+-1.9768442898232425e+02
+-1.9783067702849365e+02
+-1.9797698741771185e+02
+-1.9812336021450903e+02
+-1.9826979548739044e+02
+-1.9841629328066406e+02
+-1.9856285354184504e+02
+-1.9870947619425127e+02
+-1.9885616116885168e+02
+-1.9900290848557066e+02
+-1.9914971822172160e+02
+-1.9929659045497527e+02
+-1.9944352522705279e+02
+-1.9959052252395264e+02
+-1.9973758232687950e+02
+-1.9988470463045559e+02
+-2.0003188948297387e+02
+-2.0017913694614401e+02
+-2.0032644707575017e+02
+-2.0047381985868029e+02
+-2.0062125523737447e+02
+-2.0076875315415498e+02
+-2.0091631358877223e+02
+-2.0106393657899034e+02
+-2.0121162216756386e+02
+-2.0135937039960106e+02
+-2.0150718132962731e+02
+-2.0165505501452284e+02
+-2.0180299150501571e+02
+-2.0195099078032658e+02
+-2.0209905277354036e+02
+-2.0224717741781180e+02
+-2.0239536469655633e+02
+-2.0254361467109419e+02
+-2.0269192740944760e+02
+-2.0284030296527447e+02
+-2.0298874133477577e+02
+-2.0313724249978827e+02
+-2.0328580644647505e+02
+-2.0343443321128299e+02
+-2.0358312286310175e+02
+-2.0373187547048417e+02
+-2.0388069104939146e+02
+-2.0402956953426528e+02
+-2.0417851085253483e+02
+-2.0432751495602977e+02
+-2.0447658189417933e+02
+-2.0462571174081194e+02
+-2.0477490456513698e+02
+-2.0492416038266788e+02
+-2.0507347917427413e+02
+-2.0522286092080137e+02
+-2.0537230563624536e+02
+-2.0552181338598723e+02
+-2.0567138423982757e+02
+-2.0582101824394820e+02
+-2.0597071535005600e+02
+-2.0612047548623886e+02
+-2.0627029858757402e+02
+-2.0642018467039478e+02
+-2.0657013380345808e+02
+-2.0672014605584559e+02
+-2.0687022146374903e+02
+-2.0702036001237877e+02
+-2.0717056168256059e+02
+-2.0732082647029338e+02
+-2.0747115443227142e+02
+-2.0762154564036331e+02
+-2.0777200015973227e+02
+-2.0792251797759079e+02
+-2.0807309903086050e+02
+-2.0822374325633245e+02
+-2.0837445063320303e+02
+-2.0852522120639935e+02
+-2.0867605502650167e+02
+-2.0882695213583210e+02
+-2.0897791254367553e+02
+-2.0912893625105772e+02
+-2.0928002326185373e+02
+-2.0943117361305639e+02
+-2.0958238736302440e+02
+-2.0973366456971939e+02
+-2.0988500524591211e+02
+-2.1003640933432484e+02
+-2.1018787677165517e+02
+-2.1033940751516357e+02
+-2.1049100160436623e+02
+-2.1064265909934227e+02
+-2.1079438005697764e+02
+-2.1094616449703864e+02
+-2.1109801241534299e+02
+-2.1124992380767947e+02
+-2.1140189869206947e+02
+-2.1155393712099615e+02
+-2.1170603914990608e+02
+-2.1185820481496896e+02
+-2.1201043407524151e+02
+-2.1216272687050338e+02
+-2.1231508314596729e+02
+-2.1246750291001499e+02
+-2.1261998621178250e+02
+-2.1277253310108753e+02
+-2.1292514362788819e+02
+-2.1307781784236082e+02
+-2.1323055579470130e+02
+-2.1338335751661236e+02
+-2.1353622296582856e+02
+-2.1368915208159117e+02
+-2.1384214480892368e+02
+-2.1399520116005510e+02
+-2.1414832119057439e+02
+-2.1430150495640004e+02
+-2.1445475248992949e+02
+-2.1460806378710026e+02
+-2.1476143884071359e+02
+-2.1491487765638504e+02
+-2.1506838029098338e+02
+-2.1522194681419191e+02
+-2.1537557728824748e+02
+-2.1552927168883372e+02
+-2.1568302993579152e+02
+-2.1583685194905456e+02
+-2.1599073770989898e+02
+-2.1614468729468393e+02
+-2.1629870078794687e+02
+-2.1645277825440735e+02
+-2.1660691967951425e+02
+-2.1676112502889765e+02
+-2.1691539427410015e+02
+-2.1706972745538545e+02
+-2.1722412465735513e+02
+-2.1737858596430627e+02
+-2.1753311139798879e+02
+-2.1768770088320156e+02
+-2.1784235433640464e+02
+-2.1799707170089289e+02
+-2.1815185302730302e+02
+-2.1830669839310755e+02
+-2.1846160787100266e+02
+-2.1861658147815794e+02
+-2.1877161919591987e+02
+-2.1892672100555447e+02
+-2.1908188691928211e+02
+-2.1923711699730498e+02
+-2.1939241130395160e+02
+-2.1954776988239558e+02
+-2.1970319269118556e+02
+-2.1985867966771397e+02
+-2.2001423075553384e+02
+-2.2016984596980947e+02
+-2.2032552537190523e+02
+-2.2048126902350640e+02
+-2.2063707695935096e+02
+-2.2079294917240659e+02
+-2.2094888565204883e+02
+-2.2110488639965058e+02
+-2.2126095146457891e+02
+-2.2141708090819853e+02
+-2.2157327478594183e+02
+-2.2172953308427739e+02
+-2.2188585574518063e+02
+-2.2204224271054704e+02
+-2.2219869396200650e+02
+-2.2235520954277749e+02
+-2.2251178950137543e+02
+-2.2266843387960057e+02
+-2.2282514269238723e+02
+-2.2298191594795463e+02
+-2.2313875365649605e+02
+-2.2329565585116225e+02
+-2.2345262257991584e+02
+-2.2360965389031821e+02
+-2.2376674979104723e+02
+-2.2392391023051152e+02
+-2.2408113515193591e+02
+-2.2423842451675461e+02
+-2.2439577835924368e+02
+-2.2455319673188842e+02
+-2.2471067968653676e+02
+-2.2486822726761517e+02
+-2.2502583951476262e+02
+-2.2518351646698730e+02
+-2.2534125813020734e+02
+-2.2549906445905069e+02
+-2.2565693540373329e+02
+-2.2581487093084408e+02
+-2.2597287107245992e+02
+-2.2613093587703079e+02
+-2.2628906539064133e+02
+-2.2644725963189211e+02
+-2.2660551860165063e+02
+-2.2676384230087223e+02
+-2.2692223075350856e+02
+-2.2708068401915523e+02
+-2.2723920216047341e+02
+-2.2739778521743676e+02
+-2.2755643313926939e+02
+-2.2771514585250662e+02
+-2.2787392329078136e+02
+-2.2803276547022276e+02
+-2.2819167246018461e+02
+-2.2835064433038895e+02
+-2.2850968111946969e+02
+-2.2866878281787487e+02
+-2.2882794941190747e+02
+-2.2898718090107758e+02
+-2.2914647733772591e+02
+-2.2930583878740165e+02
+-2.2946526530895295e+02
+-2.2962475688334081e+02
+-2.2978431344127458e+02
+-2.2994393491348572e+02
+-2.3010362128222502e+02
+-2.3026337260959895e+02
+-2.3042318896458374e+02
+-2.3058307040276623e+02
+-2.3074301692617482e+02
+-2.3090302852344851e+02
+-2.3106310518662596e+02
+-2.3122324694725697e+02
+-2.3138345386238402e+02
+-2.3154372598877484e+02
+-2.3170406334127739e+02
+-2.3186446586976123e+02
+-2.3202493351850651e+02
+-2.3218546624951236e+02
+-2.3234606409565183e+02
+-2.3250672710751587e+02
+-2.3266745533318658e+02
+-2.3282824879158176e+02
+-2.3298910748280207e+02
+-2.3315003140702981e+02
+-2.3331102058810214e+02
+-2.3347207508652406e+02
+-2.3363319496595392e+02
+-2.3379438026697113e+02
+-2.3395563093783932e+02
+-2.3411694690374287e+02
+-2.3427832809706391e+02
+-2.3443977453386299e+02
+-2.3460128628418749e+02
+-2.3476286341846333e+02
+-2.3492450597590786e+02
+-2.3508621394736264e+02
+-2.3524798731950895e+02
+-2.3540982609180216e+02
+-2.3557173031479724e+02
+-2.3573370005182460e+02
+-2.3589573536013549e+02
+-2.3605783622630958e+02
+-2.3622000259133188e+02
+-2.3638223439605821e+02
+-2.3654453161913747e+02
+-2.3670689429780018e+02
+-2.3686932247431506e+02
+-2.3703181619300179e+02
+-2.3719437550637912e+02
+-2.3735700046901667e+02
+-2.3751969112964508e+02
+-2.3768244746912796e+02
+-2.3784526942454229e+02
+-2.3800815693303315e+02
+-2.3817110997962132e+02
+-2.3833412862353245e+02
+-2.3849721293037638e+02
+-2.3866036295178580e+02
+-2.3882357868349015e+02
+-2.3898686010724171e+02
+-2.3915020720925932e+02
+-2.3931362002767230e+02
+-2.3947709863410228e+02
+-2.3964064309983243e+02
+-2.3980425344239328e+02
+-2.3996792959599892e+02
+-2.4013167148769634e+02
+-2.4029547906798354e+02
+-2.4045935238116431e+02
+-2.4062329149499450e+02
+-2.4078729647304809e+02
+-2.4095136733029739e+02
+-2.4111550405035717e+02
+-2.4127970661692422e+02
+-2.4144397504990971e+02
+-2.4160830942535856e+02
+-2.4177270982414484e+02
+-2.4193717629828944e+02
+-2.4210170878439942e+02
+-2.4226630719022830e+02
+-2.4243097143235167e+02
+-2.4259570152989042e+02
+-2.4276049756812517e+02
+-2.4292535963276359e+02
+-2.4309028776903946e+02
+-2.4325528195944975e+02
+-2.4342034218109487e+02
+-2.4358546842656131e+02
+-2.4375066075037836e+02
+-2.4391591922256043e+02
+-2.4408124390598107e+02
+-2.4424663478050027e+02
+-2.4441209177241913e+02
+-2.4457761480806420e+02
+-2.4474320386878316e+02
+-2.4490885902120860e+02
+-2.4507458033930862e+02
+-2.4524036788094483e+02
+-2.4540622163955322e+02
+-2.4557214159246340e+02
+-2.4573812772214927e+02
+-2.4590418007089477e+02
+-2.4607029871957167e+02
+-2.4623648374864879e+02
+-2.4640273517589083e+02
+-2.4656905292186775e+02
+-2.4673543689878986e+02
+-2.4690188704710002e+02
+-2.4706840342017435e+02
+-2.4723498609962252e+02
+-2.4740163516187818e+02
+-2.4756835062320116e+02
+-2.4773513246102993e+02
+-2.4790198065276928e+02
+-2.4806889521257543e+02
+-2.4823587621157210e+02
+-2.4840292372578233e+02
+-2.4857003780508325e+02
+-2.4873721839476235e+02
+-2.4890446541395991e+02
+-2.4907177878947971e+02
+-2.4923915853720933e+02
+-2.4940660473050897e+02
+-2.4957411744313580e+02
+-2.4974169671519476e+02
+-2.4990934253462748e+02
+-2.5007705488488958e+02
+-2.5024483376433656e+02
+-2.5041267923092917e+02
+-2.5058059135752833e+02
+-2.5074857020973079e+02
+-2.5091661576868566e+02
+-2.5108472796105912e+02
+-2.5125290671337410e+02
+-2.5142115199807620e+02
+-2.5158946385879176e+02
+-2.5175784234526907e+02
+-2.5192628750889043e+02
+-2.5209479940756924e+02
+-2.5226337810085289e+02
+-2.5243202364186092e+02
+-2.5260073600899662e+02
+-2.5276951513245979e+02
+-2.5293836094247612e+02
+-2.5310727341903595e+02
+-2.5327625261926508e+02
+-2.5344529860692535e+02
+-2.5361441143250613e+02
+-2.5378359109341218e+02
+-2.5395283757377584e+02
+-2.5412215086249952e+02
+-2.5429153100392574e+02
+-2.5446097807816537e+02
+-2.5463049216487832e+02
+-2.5480007328087206e+02
+-2.5496972134553167e+02
+-2.5513943626986170e+02
+-2.5530921799344989e+02
+-2.5547906657021127e+02
+-2.5564898208264404e+02
+-2.5581896460802619e+02
+-2.5598901416296584e+02
+-2.5615913072492782e+02
+-2.5632931427133093e+02
+-2.5649956481597928e+02
+-2.5666988242907343e+02
+-2.5684026718566474e+02
+-2.5701071913586003e+02
+-2.5718123822998791e+02
+-2.5735182439343123e+02
+-2.5752247755830882e+02
+-2.5769319773503395e+02
+-2.5786398498453377e+02
+-2.5803483936817906e+02
+-2.5820576092349535e+02
+-2.5837674965104827e+02
+-2.5854780554822423e+02
+-2.5871892862319248e+02
+-2.5889011892725631e+02
+-2.5906137652250339e+02
+-2.5923270146424591e+02
+-2.5940409372904492e+02
+-2.5957555324265201e+02
+-2.5974707993090192e+02
+-2.5991867377535647e+02
+-2.6009033484395525e+02
+-2.6026206321206882e+02
+-2.6043385893858834e+02
+-2.6060572201648688e+02
+-2.6077765242225820e+02
+-2.6094965013767870e+02
+-2.6112171520592659e+02
+-2.6129384770979590e+02
+-2.6146604773166655e+02
+-2.6163831528951823e+02
+-2.6181065030150700e+02
+-2.6198305267720292e+02
+-2.6215552235485853e+02
+-2.6232805938746031e+02
+-2.6250066385667719e+02
+-2.6267333583932884e+02
+-2.6284607535586372e+02
+-2.6301888239035998e+02
+-2.6319175692679670e+02
+-2.6336469897951031e+02
+-2.6353770860989380e+02
+-2.6371078588338685e+02
+-2.6388393084230478e+02
+-2.6405714343645866e+02
+-2.6423042359253481e+02
+-2.6440377124391750e+02
+-2.6457718640186539e+02
+-2.6475066912787878e+02
+-2.6492421948418422e+02
+-2.6509783752633587e+02
+-2.6527152329954646e+02
+-2.6544527684813977e+02
+-2.6561909819784665e+02
+-2.6579298730002978e+02
+-2.6596694408745856e+02
+-2.6614096849989539e+02
+-2.6631506055838224e+02
+-2.6648922033640008e+02
+-2.6666344790768756e+02
+-2.6683774330898132e+02
+-2.6701210651966460e+02
+-2.6718653751418691e+02
+-2.6736103628399803e+02
+-2.6753560288854339e+02
+-2.6771023740426904e+02
+-2.6788493990015149e+02
+-2.6805971035835000e+02
+-2.6823454870501064e+02
+-2.6840945486624690e+02
+-2.6858442882223312e+02
+-2.6875947063693661e+02
+-2.6893458038153210e+02
+-2.6910975811186012e+02
+-2.6928500382242584e+02
+-2.6946031749239938e+02
+-2.6963569910578013e+02
+-2.6981114870269465e+02
+-2.6998666635948251e+02
+-2.7016225215211205e+02
+-2.7033790609810933e+02
+-2.7051362812441539e+02
+-2.7068941815017888e+02
+-2.7086527612093084e+02
+-2.7104120208773435e+02
+-2.7121719612803616e+02
+-2.7139325831432126e+02
+-2.7156938866140933e+02
+-2.7174558714691472e+02
+-2.7192185374846468e+02
+-2.7209818848160415e+02
+-2.7227459142065146e+02
+-2.7245106264498139e+02
+-2.7262760220611369e+02
+-2.7280421004414643e+02
+-2.7298088607132240e+02
+-2.7315763020842348e+02
+-2.7333444247548783e+02
+-2.7351132295659141e+02
+-2.7368827173616523e+02
+-2.7386528885598148e+02
+-2.7404237429168808e+02
+-2.7421952801324483e+02
+-2.7439675000955503e+02
+-2.7457404034529247e+02
+-2.7475139910407347e+02
+-2.7492882636139279e+02
+-2.7510632209833494e+02
+-2.7528388623507254e+02
+-2.7546151869168364e+02
+-2.7563921944342604e+02
+-2.7581698855108812e+02
+-2.7599482608281482e+02
+-2.7617273209257417e+02
+-2.7635070657762623e+02
+-2.7652874952105401e+02
+-2.7670686091075191e+02
+-2.7688504079055247e+02
+-2.7706328924037831e+02
+-2.7724160633975583e+02
+-2.7741999210841016e+02
+-2.7759844647337093e+02
+-2.7777696935369534e+02
+-2.7795556069095431e+02
+-2.7813422051677765e+02
+-2.7831294888531022e+02
+-2.7849174585079038e+02
+-2.7867061146854155e+02
+-2.7884954579458793e+02
+-2.7902854888418955e+02
+-2.7920762074601180e+02
+-2.7938676131650101e+02
+-2.7956597052588995e+02
+-2.7974524832693186e+02
+-2.7992459476245619e+02
+-2.8010400989781158e+02
+-2.8028349379434627e+02
+-2.8046304646689777e+02
+-2.8064266790029620e+02
+-2.8082235807945176e+02
+-2.8100211702409018e+02
+-2.8118194480789896e+02
+-2.8136184150920849e+02
+-2.8154180717854746e+02
+-2.8172184175524194e+02
+-2.8190194515081589e+02
+-2.8208211728532086e+02
+-2.8226235817792752e+02
+-2.8244266791175608e+02
+-2.8262304657032956e+02
+-2.8280349419745249e+02
+-2.8298401077536670e+02
+-2.8316459628101700e+02
+-2.8334525070733059e+02
+-2.8352597411115852e+02
+-2.8370676656533436e+02
+-2.8388762813540745e+02
+-2.8406855880226323e+02
+-2.8424955849216303e+02
+-2.8443062713132394e+02
+-2.8461176469785670e+02
+-2.8479297125030809e+02
+-2.8497424685414501e+02
+-2.8515559156226357e+02
+-2.8533700537728214e+02
+-2.8551848828924813e+02
+-2.8570004029223458e+02
+-2.8588166142709645e+02
+-2.8606335176487249e+02
+-2.8624511137615605e+02
+-2.8642694027470111e+02
+-2.8660883838615746e+02
+-2.8679080562859610e+02
+-2.8697284194680515e+02
+-2.8715494739243604e+02
+-2.8733712204385751e+02
+-2.8751936597451891e+02
+-2.8770167920069798e+02
+-2.8788406170178553e+02
+-2.8806651345713010e+02
+-2.8824903448035627e+02
+-2.8843162483821942e+02
+-2.8861428460204445e+02
+-2.8879701381974627e+02
+-2.8897981244560009e+02
+-2.8916268041046965e+02
+-2.8934561765152284e+02
+-2.8952862417919738e+02
+-2.8971170005120376e+02
+-2.8989484532566274e+02
+-2.9007806003811260e+02
+-2.9026134418908589e+02
+-2.9044469777610516e+02
+-2.9062812080790741e+02
+-2.9081161333809126e+02
+-2.9099517543147147e+02
+-2.9117880714583998e+02
+-2.9136250845736095e+02
+-2.9154627928953306e+02
+-2.9173011956585287e+02
+-2.9191402926227533e+02
+-2.9209800843606848e+02
+-2.9228205715149392e+02
+-2.9246617547013159e+02
+-2.9265036344282959e+02
+-2.9283462111775339e+02
+-2.9301894853688674e+02
+-2.9320334567034138e+02
+-2.9338781244186151e+02
+-2.9357234877537763e+02
+-2.9375695465243376e+02
+-2.9394163014387152e+02
+-2.9412637532821509e+02
+-2.9431119026674446e+02
+-2.9449607495176832e+02
+-2.9468102935835151e+02
+-2.9486605346703772e+02
+-2.9505114732206567e+02
+-2.9523631100876594e+02
+-2.9542154461206860e+02
+-2.9560684815172255e+02
+-2.9579222154644765e+02
+-2.9597766470627198e+02
+-2.9616317756870660e+02
+-2.9634876018118871e+02
+-2.9653441261863827e+02
+-2.9672013495162707e+02
+-2.9690592720018884e+02
+-2.9709178935175328e+02
+-2.9727772139374758e+02
+-2.9746372334613829e+02
+-2.9764979527932451e+02
+-2.9783593726804486e+02
+-2.9802214935984460e+02
+-2.9820843149349969e+02
+-2.9839478358059216e+02
+-2.9858120554095586e+02
+-2.9876769739033540e+02
+-2.9895425920635375e+02
+-2.9914089106710162e+02
+-2.9932759301681750e+02
+-2.9951436504726865e+02
+-2.9970120714570874e+02
+-2.9988811931310477e+02
+-3.0007510160527318e+02
+-3.0026215409174426e+02
+-3.0044927683449066e+02
+-3.0063646980764378e+02
+-3.0082373292866112e+02
+-3.0101106611505878e+02
+-3.0119846934453801e+02
+-3.0138594268808589e+02
+-3.0157348622471352e+02
+-3.0176110001719013e+02
+-3.0194878406331878e+02
+-3.0213653834465947e+02
+-3.0232436284742454e+02
+-3.0251225761189454e+02
+-3.0270022271323455e+02
+-3.0288825822619327e+02
+-3.0307636416569034e+02
+-3.0326454045391091e+02
+-3.0345278700506293e+02
+-3.0364110376109994e+02
+-3.0382949077496073e+02
+-3.0401794812733118e+02
+-3.0420647589381701e+02
+-3.0439507409098252e+02
+-3.0458374269729876e+02
+-3.0477248169118917e+02
+-3.0496129108623535e+02
+-3.0515017095051735e+02
+-3.0533912135680202e+02
+-3.0552814235414854e+02
+-3.0571723389677953e+02
+-3.0590639591520846e+02
+-3.0609562834582567e+02
+-3.0628493119332938e+02
+-3.0647430450648915e+02
+-3.0666374833483877e+02
+-3.0685326272977329e+02
+-3.0704284774556976e+02
+-3.0723250343675426e+02
+-3.0742222983748371e+02
+-3.0761202690044371e+02
+-3.0780189455795050e+02
+-3.0799183274860275e+02
+-3.0818184148402969e+02
+-3.0837192082297514e+02
+-3.0856207082458280e+02
+-3.0875229152480637e+02
+-3.0894258292365788e+02
+-3.0913294501805632e+02
+-3.0932337781646726e+02
+-3.0951388137353649e+02
+-3.0970445575545654e+02
+-3.0989510102133323e+02
+-3.1008581714790125e+02
+-3.1027660405875321e+02
+-3.1046746167749637e+02
+-3.1065838998183472e+02
+-3.1084938903331852e+02
+-3.1104045890071205e+02
+-3.1123159963906176e+02
+-3.1142281124854946e+02
+-3.1161409371563929e+02
+-3.1180544703154277e+02
+-3.1199687124264648e+02
+-3.1218836643093420e+02
+-3.1237993267786118e+02
+-3.1257156999751652e+02
+-3.1276327829957421e+02
+-3.1295505748472499e+02
+-3.1314690748529449e+02
+-3.1333882836014203e+02
+-3.1353082019976137e+02
+-3.1372288308873601e+02
+-3.1391501704295683e+02
+-3.1410722203399513e+02
+-3.1429949803342510e+02
+-3.1449184505731893e+02
+-3.1468426319071784e+02
+-3.1487675252459724e+02
+-3.1506931311803703e+02
+-3.1526194490253994e+02
+-3.1545464777771286e+02
+-3.1564742165232315e+02
+-3.1584026654161426e+02
+-3.1603318252952556e+02
+-3.1622616970047943e+02
+-3.1641922809924864e+02
+-3.1661235770914942e+02
+-3.1680555850821037e+02
+-3.1699883049208955e+02
+-3.1719217372695772e+02
+-3.1738558829661542e+02
+-3.1757907427606142e+02
+-3.1777263163798813e+02
+-3.1796626028908179e+02
+-3.1815996013602592e+02
+-3.1835373115128272e+02
+-3.1854757340927222e+02
+-3.1874148699318596e+02
+-3.1893547196906502e+02
+-3.1912952833435531e+02
+-3.1932365606935218e+02
+-3.1951785515910927e+02
+-3.1971212564397882e+02
+-3.1990646759999152e+02
+-3.2010088110278321e+02
+-3.2029536616868461e+02
+-3.2048992272210040e+02
+-3.2068455067952760e+02
+-3.2087924998164277e+02
+-3.2107402066583609e+02
+-3.2126886279367750e+02
+-3.2146377642648770e+02
+-3.2165876162270644e+02
+-3.2185381843891264e+02
+-3.2204894693078813e+02
+-3.2224414710197271e+02
+-3.2243941887544383e+02
+-3.2263476216723927e+02
+-3.2283017692113469e+02
+-3.2302566319185809e+02
+-3.2322122106187396e+02
+-3.2341685060828837e+02
+-3.2361255184590095e+02
+-3.2380832474931577e+02
+-3.2400416929316111e+02
+-3.2420008549379526e+02
+-3.2439607343225470e+02
+-3.2459213319514100e+02
+-3.2478826483801225e+02
+-3.2498446829225526e+02
+-3.2518074345821486e+02
+-3.2537709024597717e+02
+-3.2557350867888522e+02
+-3.2576999885334874e+02
+-3.2596656086615951e+02
+-3.2616319476389589e+02
+-3.2635990051530803e+02
+-3.2655667808245011e+02
+-3.2675352744812716e+02
+-3.2695044867814210e+02
+-3.2714744185904766e+02
+-3.2734450706883138e+02
+-3.2754164428590406e+02
+-3.2773885342443253e+02
+-3.2793613439852891e+02
+-3.2813348718327256e+02
+-3.2833091184823911e+02
+-3.2852840847113430e+02
+-3.2872597711355769e+02
+-3.2892361777269082e+02
+-3.2912133042960971e+02
+-3.2931911507022539e+02
+-3.2951697173665940e+02
+-3.2971490050729744e+02
+-3.2991290146007873e+02
+-3.3011097460991323e+02
+-3.3030911987401618e+02
+-3.3050733716119748e+02
+-3.3070562640960765e+02
+-3.3090398767475182e+02
+-3.3110242104147540e+02
+-3.3130092658913316e+02
+-3.3149950433326774e+02
+-3.3169815424825043e+02
+-3.3189687630845611e+02
+-3.3209567052956459e+02
+-3.3229453699128004e+02
+-3.3249347577881508e+02
+-3.3269248694787888e+02
+-3.3289157043617217e+02
+-3.3309072615189177e+02
+-3.3328995401170545e+02
+-3.3348925403073827e+02
+-3.3368862628763804e+02
+-3.3388807086149058e+02
+-3.3408758779420975e+02
+-3.3428717707009054e+02
+-3.3448683866847148e+02
+-3.3468657258612518e+02
+-3.3488637888955645e+02
+-3.3508625766270461e+02
+-3.3528620898083545e+02
+-3.3548623281840048e+02
+-3.3568632908480703e+02
+-3.3588649768933396e+02
+-3.3608673859850956e+02
+-3.3628705186760197e+02
+-3.3648743755951176e+02
+-3.3668789573720920e+02
+-3.3688842646394352e+02
+-3.3708902980303236e+02
+-3.3728970581011282e+02
+-3.3749045445151853e+02
+-3.3769127563596982e+02
+-3.3789216927231814e+02
+-3.3809313533496760e+02
+-3.3829417389992523e+02
+-3.3849528505193939e+02
+-3.3869646885780145e+02
+-3.3889772531247809e+02
+-3.3909905439298069e+02
+-3.3930045608181086e+02
+-3.3950193042530702e+02
+-3.3970347751099069e+02
+-3.3990509742587710e+02
+-3.4010679018533926e+02
+-3.4030855569370755e+02
+-3.4051039384575876e+02
+-3.4071230456950957e+02
+-3.4091428792592893e+02
+-3.4111634400922378e+02
+-3.4131847290742115e+02
+-3.4152067463669346e+02
+-3.4172294916685723e+02
+-3.4192529646772908e+02
+-3.4212771655556242e+02
+-3.4233020951858435e+02
+-3.4253277545121472e+02
+-3.4273541441460128e+02
+-3.4293812633680909e+02
+-3.4314091111263127e+02
+-3.4334376864633037e+02
+-3.4354669895225408e+02
+-3.4374970211577045e+02
+-3.4395277822280025e+02
+-3.4415592732133166e+02
+-3.4435914940056080e+02
+-3.4456244444462476e+02
+-3.4476581245265510e+02
+-3.4496925348375424e+02
+-3.4517276761201884e+02
+-3.4537635490359361e+02
+-3.4558001533219010e+02
+-3.4578374881188671e+02
+-3.4598755525680252e+02
+-3.4619143464322332e+02
+-3.4639538704378947e+02
+-3.4659941253943146e+02
+-3.4680351119306164e+02
+-3.4700768299552738e+02
+-3.4721192791965808e+02
+-3.4741624594419665e+02
+-3.4762063711661273e+02
+-3.4782510152871697e+02
+-3.4802963927187045e+02
+-3.4823425036607051e+02
+-3.4843893472070323e+02
+-3.4864369223563824e+02
+-3.4884852284102510e+02
+-3.4905342658812674e+02
+-3.4925840355848572e+02
+-3.4946345382884073e+02
+-3.4966857742010075e+02
+-3.4987377431715373e+02
+-3.5007904450486899e+02
+-3.5028438800301222e+02
+-3.5048980488543594e+02
+-3.5069529523064671e+02
+-3.5090085908954632e+02
+-3.5110649640262301e+02
+-3.5131220708275987e+02
+-3.5151799105002431e+02
+-3.5172384830798626e+02
+-3.5192977891408987e+02
+-3.5213578292671599e+02
+-3.5234186040662718e+02
+-3.5254801141827812e+02
+-3.5275423602643997e+02
+-3.5296053427017148e+02
+-3.5316690608567558e+02
+-3.5337335138344264e+02
+-3.5357987008236267e+02
+-3.5378646219898667e+02
+-3.5399312781287028e+02
+-3.5419986700399096e+02
+-3.5440667981455579e+02
+-3.5461356622822876e+02
+-3.5482052622363921e+02
+-3.5502755979729011e+02
+-3.5523466701718627e+02
+-3.5544184796920638e+02
+-3.5564910273037077e+02
+-3.5585643127470479e+02
+-3.5606383350978723e+02
+-3.5627130934312333e+02
+-3.5647885874433399e+02
+-3.5668648177931578e+02
+-3.5689417852224705e+02
+-3.5710194903375310e+02
+-3.5730979332024424e+02
+-3.5751771137457649e+02
+-3.5772570319330657e+02
+-3.5793376881601296e+02
+-3.5814190831002833e+02
+-3.5835012174221657e+02
+-3.5855840912346997e+02
+-3.5876677037792854e+02
+-3.5897520542226835e+02
+-3.5918371420079279e+02
+-3.5939229676831474e+02
+-3.5960095320727396e+02
+-3.5980968359438469e+02
+-3.6001848793980690e+02
+-3.6022736621076376e+02
+-3.6043631837458622e+02
+-3.6064534444809777e+02
+-3.6085444452483233e+02
+-3.6106361870492390e+02
+-3.6127286705437933e+02
+-3.6148218950270314e+02
+-3.6169158594527221e+02
+-3.6190105628684353e+02
+-3.6211060054119974e+02
+-3.6232021879246304e+02
+-3.6252991112526092e+02
+-3.6273967758414210e+02
+-3.6294951815153644e+02
+-3.6315943280452882e+02
+-3.6336942153858502e+02
+-3.6357948442268747e+02
+-3.6378962154419958e+02
+-3.6399983298143769e+02
+-3.6421011870756178e+02
+-3.6442047862788701e+02
+-3.6463091264766848e+02
+-3.6484142073640180e+02
+-3.6505200296315229e+02
+-3.6526265940555191e+02
+-3.6547339012553192e+02
+-3.6568419512222766e+02
+-3.6589507437907395e+02
+-3.6610602788456305e+02
+-3.6631705568596658e+02
+-3.6652815786848015e+02
+-3.6673933451681245e+02
+-3.6695058564858152e+02
+-3.6716191117741579e+02
+-3.6737331100799668e+02
+-3.6758478507082134e+02
+-3.6779633339964283e+02
+-3.6800795605402965e+02
+-3.6821965309416777e+02
+-3.6843142458743637e+02
+-3.6864327060585327e+02
+-3.6885519122045406e+02
+-3.6906718643860967e+02
+-3.6927925616901240e+02
+-3.6949140031186698e+02
+-3.6970361879903510e+02
+-3.6991591168901203e+02
+-3.7012827907194952e+02
+-3.7034072103211491e+02
+-3.7055323758535161e+02
+-3.7076582870336091e+02
+-3.7097849435784661e+02
+-3.7119123456489291e+02
+-3.7140404940937009e+02
+-3.7161693898206596e+02
+-3.7182990334172899e+02
+-3.7204294241894507e+02
+-3.7225605611226098e+02
+-3.7246924432981888e+02
+-3.7268250709132298e+02
+-3.7289584448845068e+02
+-3.7310925661327485e+02
+-3.7332274350955316e+02
+-3.7353630514615770e+02
+-3.7374994148551787e+02
+-3.7396365251399197e+02
+-3.7417743831365533e+02
+-3.7439129899051107e+02
+-3.7460523463936983e+02
+-3.7481924522491204e+02
+-3.7503333062786498e+02
+-3.7524749072894548e+02
+-3.7546172549227612e+02
+-3.7567603501125444e+02
+-3.7589041939039987e+02
+-3.7610487871150963e+02
+-3.7631941296549689e+02
+-3.7653402212055477e+02
+-3.7674870615076730e+02
+-3.7696346509871779e+02
+-3.7717829905118049e+02
+-3.7739320809450788e+02
+-3.7760819224547106e+02
+-3.7782325141299259e+02
+-3.7803838549671644e+02
+-3.7825359442783400e+02
+-3.7846887826372046e+02
+-3.7868423709329693e+02
+-3.7889967100003639e+02
+-3.7911518000406306e+02
+-3.7933076408463324e+02
+-3.7954642322093332e+02
+-3.7976215742889360e+02
+-3.7997796678139457e+02
+-3.8019385135621707e+02
+-3.8040981120362744e+02
+-3.8062584626383978e+02
+-3.8084195644955344e+02
+-3.8105814168160180e+02
+-3.8127440197537345e+02
+-3.8149073740725868e+02
+-3.8170714805406351e+02
+-3.8192363395647425e+02
+-3.8214019509919456e+02
+-3.8235683146211090e+02
+-3.8257354304247053e+02
+-3.8279032990695703e+02
+-3.8300719213961469e+02
+-3.8322412981555885e+02
+-3.8344114290611418e+02
+-3.8365823131564446e+02
+-3.8387539494855707e+02
+-3.8409263377892023e+02
+-3.8430994788877325e+02
+-3.8452733736944441e+02
+-3.8474480229150157e+02
+-3.8496234264247721e+02
+-3.8517995838914311e+02
+-3.8539764950436671e+02
+-3.8561541603186078e+02
+-3.8583325806104517e+02
+-3.8605117568098240e+02
+-3.8626916891352812e+02
+-3.8648723767636659e+02
+-3.8670538187822086e+02
+-3.8692360145333680e+02
+-3.8714189643804508e+02
+-3.8736026689419924e+02
+-3.8757871288374326e+02
+-3.8779723446968882e+02
+-3.8801583171573458e+02
+-3.8823450468460396e+02
+-3.8845325337982018e+02
+-3.8867207771314469e+02
+-3.8889097758844468e+02
+-3.8910995294068846e+02
+-3.8932900382924913e+02
+-3.8954813034459897e+02
+-3.8976733257130326e+02
+-3.8998661052523761e+02
+-3.9020596417796418e+02
+-3.9042539350104767e+02
+-3.9064489851057567e+02
+-3.9086447929164717e+02
+-3.9108413593529747e+02
+-3.9130386850114178e+02
+-3.9152367692311714e+02
+-3.9174356110374163e+02
+-3.9196352095446036e+02
+-3.9218355649050960e+02
+-3.9240366779408532e+02
+-3.9262385494779596e+02
+-3.9284411799195988e+02
+-3.9306445690134905e+02
+-3.9328487164509562e+02
+-3.9350536221497026e+02
+-3.9372592869329134e+02
+-3.9394657118501448e+02
+-3.9416728978406866e+02
+-3.9438808445618395e+02
+-3.9460895508438313e+02
+-3.9482990155167477e+02
+-3.9505092382299620e+02
+-3.9527202199027062e+02
+-3.9549319615634596e+02
+-3.9571444640045900e+02
+-3.9593577270740741e+02
+-3.9615717503837777e+02
+-3.9637865336146132e+02
+-3.9660020772501593e+02
+-3.9682183822918250e+02
+-3.9704354497366347e+02
+-3.9726532797997908e+02
+-3.9748718714847024e+02
+-3.9770912236905218e+02
+-3.9793113356473356e+02
+-3.9815322079088924e+02
+-3.9837538413598719e+02
+-3.9859762368307656e+02
+-3.9881993945222416e+02
+-3.9904233142286415e+02
+-3.9926479957446156e+02
+-3.9948734392905749e+02
+-3.9970996457468215e+02
+-3.9993266160504385e+02
+-4.0015543507924150e+02
+-4.0037828491794261e+02
+-4.0060121100720465e+02
+-4.0082421324333308e+02
+-4.0104729164174779e+02
+-4.0127044629471709e+02
+-4.0149367729508526e+02
+-4.0171698469334649e+02
+-4.0194036847435592e+02
+-4.0216382861732058e+02
+-4.0238736511938424e+02
+-4.0261097804943006e+02
+-4.0283466749427777e+02
+-4.0305843353140608e+02
+-4.0328227612971824e+02
+-4.0350619518806684e+02
+-4.0373019060519232e+02
+-4.0395426234316801e+02
+-4.0417841046222958e+02
+-4.0440263503105837e+02
+-4.0462693611818429e+02
+-4.0485131379153853e+02
+-4.0507576811890090e+02
+-4.0530029915982203e+02
+-4.0552490687817107e+02
+-4.0574959117608915e+02
+-4.0597435195584825e+02
+-4.0619918918935514e+02
+-4.0642410295645107e+02
+-4.0664909334626049e+02
+-4.0687416042754177e+02
+-4.0709930418758199e+02
+-4.0732452459330216e+02
+-4.0754982161858845e+02
+-4.0777519531831490e+02
+-4.0800064579960326e+02
+-4.0822617316901039e+02
+-4.0845177744685316e+02
+-4.0867745851977753e+02
+-4.0890321626293183e+02
+-4.0912905058939094e+02
+-4.0935496156394152e+02
+-4.0958094928929626e+02
+-4.0980701386169738e+02
+-4.1003315530215042e+02
+-4.1025937358312319e+02
+-4.1048566867701396e+02
+-4.1071204060066515e+02
+-4.1093848943980402e+02
+-4.1116501528608387e+02
+-4.1139161819719982e+02
+-4.1161829809500892e+02
+-4.1184505486741034e+02
+-4.1207188841272625e+02
+-4.1229879875046424e+02
+-4.1252578597831342e+02
+-4.1275285019449905e+02
+-4.1297999145114318e+02
+-4.1320720972891183e+02
+-4.1343450500232296e+02
+-4.1366187726413045e+02
+-4.1388932658003267e+02
+-4.1411685303396234e+02
+-4.1434445670079293e+02
+-4.1457213755006262e+02
+-4.1479989548335374e+02
+-4.1502773040226862e+02
+-4.1525564227767114e+02
+-4.1548363118777627e+02
+-4.1571169722003509e+02
+-4.1593984044340056e+02
+-4.1616806085283770e+02
+-4.1639635842481579e+02
+-4.1662473314129431e+02
+-4.1685318504807515e+02
+-4.1708171423214685e+02
+-4.1731032078003022e+02
+-4.1753900470890659e+02
+-4.1776776592848421e+02
+-4.1799660433922480e+02
+-4.1822551987187938e+02
+-4.1845451257834975e+02
+-4.1868358254082545e+02
+-4.1891272983655045e+02
+-4.1914195448526868e+02
+-4.1937125646962642e+02
+-4.1960063577229897e+02
+-4.1983009241480266e+02
+-4.2005962647885474e+02
+-4.2028923805135241e+02
+-4.2051892718783444e+02
+-4.2074869381841194e+02
+-4.2097853784183735e+02
+-4.2120845916542567e+02
+-4.2143845779602935e+02
+-4.2166853380471827e+02
+-4.2189868726353893e+02
+-4.2212891823895694e+02
+-4.2235922678878887e+02
+-4.2258961297010563e+02
+-4.2282007681584992e+02
+-4.2305061826244321e+02
+-4.2328123722217839e+02
+-4.2351193361558495e+02
+-4.2374270745895552e+02
+-4.2397355883036568e+02
+-4.2420448780833266e+02
+-4.2443549443608310e+02
+-4.2466657870214499e+02
+-4.2489774059034198e+02
+-4.2512898010099303e+02
+-4.2536029730040514e+02
+-4.2559169227138057e+02
+-4.2582316508761789e+02
+-4.2605471571696501e+02
+-4.2628634405898111e+02
+-4.2651805001327591e+02
+-4.2674983355085595e+02
+-4.2698169475338949e+02
+-4.2721363371206394e+02
+-4.2744565049725315e+02
+-4.2767774509607040e+02
+-4.2790991747481581e+02
+-4.2814216760680591e+02
+-4.2837449554694359e+02
+-4.2860690140276563e+02
+-4.2883938528127169e+02
+-4.2907194720450468e+02
+-4.2930458706282803e+02
+-4.2953730473527651e+02
+-4.2977010013655268e+02
+-4.3000297332403073e+02
+-4.3023592439075077e+02
+-4.3046895342412324e+02
+-4.3070206044609517e+02
+-4.3093524543638131e+02
+-4.3116850837466461e+02
+-4.3140184928103992e+02
+-4.3163526823823656e+02
+-4.3186876533437356e+02
+-4.3210234062615763e+02
+-4.3233599404465025e+02
+-4.3256972548950239e+02
+-4.3280353486917107e+02
+-4.3303742219449930e+02
+-4.3327138754238320e+02
+-4.3350543099025890e+02
+-4.3373955258182383e+02
+-4.3397375230848428e+02
+-4.3420803015714688e+02
+-4.3444238613153044e+02
+-4.3467682030259687e+02
+-4.3491133275811887e+02
+-4.3514592357629533e+02
+-4.3538059272401154e+02
+-4.3561534009633988e+02
+-4.3585016558832649e+02
+-4.3608506916534810e+02
+-4.3632005090178978e+02
+-4.3655511088141532e+02
+-4.3679024917178691e+02
+-4.3702546577566807e+02
+-4.3726076067962089e+02
+-4.3749613387498908e+02
+-4.3773158540870133e+02
+-4.3796711536354547e+02
+-4.3820272382175398e+02
+-4.3843841079627026e+02
+-4.3867417619264342e+02
+-4.3891001990718246e+02
+-4.3914594186630046e+02
+-4.3938194211681804e+02
+-4.3961802073565957e+02
+-4.3985417779895334e+02
+-4.4009041337358747e+02
+-4.4032672752048933e+02
+-4.4056312029947281e+02
+-4.4079959170958136e+02
+-4.4103614165566000e+02
+-4.4127277003445244e+02
+-4.4150947677601619e+02
+-4.4174626194367102e+02
+-4.4198312563405034e+02
+-4.4222006793733340e+02
+-4.4245708886865344e+02
+-4.4269418839472752e+02
+-4.4293136648232263e+02
+-4.4316862314954233e+02
+-4.4340595849406594e+02
+-4.4364337262041636e+02
+-4.4388086559608371e+02
+-4.4411843734041855e+02
+-4.4435608773573847e+02
+-4.4459381667476117e+02
+-4.4483162417112578e+02
+-4.4506951031648265e+02
+-4.4530747520308284e+02
+-4.4554551888120199e+02
+-4.4578364133605089e+02
+-4.4602184254724494e+02
+-4.4626012251209403e+02
+-4.4649848129869309e+02
+-4.4673691899283153e+02
+-4.4697543567091282e+02
+-4.4721403130020985e+02
+-4.4745270577759101e+02
+-4.4769145899994373e+02
+-4.4793029093578036e+02
+-4.4816920166463262e+02
+-4.4840819127558063e+02
+-4.4864725983993662e+02
+-4.4888640735793405e+02
+-4.4912563381203847e+02
+-4.4936493918944450e+02
+-4.4960432353234171e+02
+-4.4984378691839771e+02
+-4.5008332942481888e+02
+-4.5032295106557211e+02
+-4.5056265175660343e+02
+-4.5080243140542842e+02
+-4.5104228994834716e+02
+-4.5128222743680578e+02
+-4.5152224395103502e+02
+-4.5176233956604028e+02
+-4.5200251429606504e+02
+-4.5224276811615402e+02
+-4.5248310100149217e+02
+-4.5272351297497539e+02
+-4.5296400413344810e+02
+-4.5320457458011600e+02
+-4.5344522438121055e+02
+-4.5368595345506145e+02
+-4.5392676168302216e+02
+-4.5416764895692870e+02
+-4.5440861529047947e+02
+-4.5464966077599109e+02
+-4.5489078550639130e+02
+-4.5513198953256517e+02
+-4.5537327284023542e+02
+-4.5561463540951820e+02
+-4.5585607723769454e+02
+-4.5609759839070603e+02
+-4.5633919895165917e+02
+-4.5658087899502164e+02
+-4.5682263849484042e+02
+-4.5706447736037575e+02
+-4.5730639550070373e+02
+-4.5754839287873199e+02
+-4.5779046954080252e+02
+-4.5803262554043630e+02
+-4.5827486093591142e+02
+-4.5851717580454249e+02
+-4.5875957022840117e+02
+-4.5900204427998074e+02
+-4.5924459792040506e+02
+-4.5948723103894736e+02
+-4.5972994352500132e+02
+-4.5997273534698280e+02
+-4.6021560659579467e+02
+-4.6045855737287468e+02
+-4.6070158775603352e+02
+-4.6094469772856661e+02
+-4.6118788725014247e+02
+-4.6143115628777736e+02
+-4.6167450489392422e+02
+-4.6191793317615446e+02
+-4.6216144124152925e+02
+-4.6240502911137833e+02
+-4.6264869667414371e+02
+-4.6289244380683783e+02
+-4.6313627042389800e+02
+-4.6338017658946717e+02
+-4.6362416240511283e+02
+-4.6386822796595442e+02
+-4.6411237329213571e+02
+-4.6435659835543146e+02
+-4.6460090312757825e+02
+-4.6484528762645795e+02
+-4.6508975194147888e+02
+-4.6533429616820058e+02
+-4.6557892036722222e+02
+-4.6582362445929402e+02
+-4.6606840833020533e+02
+-4.6631327187603011e+02
+-4.6655821511241720e+02
+-4.6680323813215779e+02
+-4.6704834102860576e+02
+-4.6729352385164412e+02
+-4.6753878658377744e+02
+-4.6778412920171542e+02
+-4.6802955170209583e+02
+-4.6827505416127610e+02
+-4.6852063667554148e+02
+-4.6876629933039476e+02
+-4.6901204208596852e+02
+-4.6925786482151386e+02
+-4.6950376741634750e+02
+-4.6974974983470639e+02
+-4.6999581217244963e+02
+-4.7024195453675878e+02
+-4.7048817701117559e+02
+-4.7073447958467642e+02
+-4.7098086222259832e+02
+-4.7122732489674263e+02
+-4.7147386765407987e+02
+-4.7172049059007406e+02
+-4.7196719379972643e+02
+-4.7221397730167149e+02
+-4.7246084099617912e+02
+-4.7270778477333573e+02
+-4.7295480855643626e+02
+-4.7320191240161057e+02
+-4.7344909639819525e+02
+-4.7369636062996551e+02
+-4.7394370511602676e+02
+-4.7419112983376431e+02
+-4.7443863476063467e+02
+-4.7468621992017592e+02
+-4.7493388540734873e+02
+-4.7518163132325947e+02
+-4.7542945773155691e+02
+-4.7567736454606296e+02
+-4.7592535164314370e+02
+-4.7617341890967759e+02
+-4.7642156635476670e+02
+-4.7666979406636472e+02
+-4.7691810213353716e+02
+-4.7716649063311758e+02
+-4.7741495962298427e+02
+-4.7766350915938335e+02
+-4.7791213927172009e+02
+-4.7816084988202982e+02
+-4.7840964088550544e+02
+-4.7865851218776470e+02
+-4.7890746381559882e+02
+-4.7915649587397752e+02
+-4.7940560846823058e+02
+-4.7965480164720987e+02
+-4.7990407537222239e+02
+-4.8015342959704645e+02
+-4.8040286430166543e+02
+-4.8065237957089164e+02
+-4.8090197551574323e+02
+-4.8115165223568977e+02
+-4.8140140969595132e+02
+-4.8165124777513250e+02
+-4.8190116635180783e+02
+-4.8215116538926787e+02
+-4.8240124498211617e+02
+-4.8265140523625030e+02
+-4.8290164623289741e+02
+-4.8315196795459502e+02
+-4.8340237035921041e+02
+-4.8365285341218333e+02
+-4.8390341716699908e+02
+-4.8415406173394769e+02
+-4.8440478722279369e+02
+-4.8465559365505601e+02
+-4.8490648091546859e+02
+-4.8515744887700038e+02
+-4.8540849745124495e+02
+-4.8565962670430122e+02
+-4.8591083674089225e+02
+-4.8616212765896722e+02
+-4.8641349947771124e+02
+-4.8666495216549430e+02
+-4.8691648569069673e+02
+-4.8716810007305196e+02
+-4.8741979541189534e+02
+-4.8767157181340781e+02
+-4.8792342934409112e+02
+-4.8817536791172120e+02
+-4.8842738738439408e+02
+-4.8867948764222621e+02
+-4.8893166870508821e+02
+-4.8918393068301191e+02
+-4.8943627368661106e+02
+-4.8968869777115827e+02
+-4.8994120290614944e+02
+-4.9019378905370297e+02
+-4.9044645619971499e+02
+-4.9069920442520106e+02
+-4.9095203383495459e+02
+-4.9120494452266081e+02
+-4.9145793645285215e+02
+-4.9171100950673872e+02
+-4.9196416356548025e+02
+-4.9221739859063234e+02
+-4.9247071466836013e+02
+-4.9272411189554799e+02
+-4.9297759034916112e+02
+-4.9323115002648211e+02
+-4.9348479090487484e+02
+-4.9373851296730646e+02
+-4.9399231626190300e+02
+-4.9424620087882590e+02
+-4.9450016690769081e+02
+-4.9475421436322608e+02
+-4.9500834314408837e+02
+-4.9526255313894768e+02
+-4.9551684426734300e+02
+-4.9577121657228111e+02
+-4.9602567012763586e+02
+-4.9628020500746254e+02
+-4.9653482128791052e+02
+-4.9678951904648301e+02
+-4.9704429835947536e+02
+-4.9729915922946856e+02
+-4.9755410154478147e+02
+-4.9780912518390573e+02
+-4.9806423006401229e+02
+-4.9831941625699648e+02
+-4.9857468387343278e+02
+-4.9883003301634540e+02
+-4.9908546370098708e+02
+-4.9934097588598138e+02
+-4.9959656952993350e+02
+-4.9985224464686218e+02
+-5.0010800133668175e+02
+-5.0036383970669385e+02
+-5.0061975982570920e+02
+-5.0087576160856747e+02
+-5.0113184493161725e+02
+-5.0138800968244925e+02
+-5.0164425587935710e+02
+-5.0190058362495955e+02
+-5.0215699302245559e+02
+-5.0241348412563087e+02
+-5.0267005691167594e+02
+-5.0292671135119446e+02
+-5.0318344743544867e+02
+-5.0344026523834441e+02
+-5.0369716485444616e+02
+-5.0395414636786006e+02
+-5.0421120974109266e+02
+-5.0446835485819935e+02
+-5.0472558160330635e+02
+-5.0498288994315322e+02
+-5.0524027997253432e+02
+-5.0549775179725765e+02
+-5.0575530549847042e+02
+-5.0601294105866936e+02
+-5.0627065843569068e+02
+-5.0652845759495466e+02
+-5.0678633859006948e+02
+-5.0704430153153641e+02
+-5.0730234652935985e+02
+-5.0756047360684380e+02
+-5.0781868265290171e+02
+-5.0807697354488857e+02
+-5.0833534619605689e+02
+-5.0859380066325730e+02
+-5.0885233703923791e+02
+-5.0911095541137041e+02
+-5.0936965580450618e+02
+-5.0962843820316346e+02
+-5.0988730259181318e+02
+-5.1014624899249088e+02
+-5.1040527748545890e+02
+-5.1066438815598650e+02
+-5.1092358105713998e+02
+-5.1118285611316509e+02
+-5.1144221321610405e+02
+-5.1170165226782393e+02
+-5.1196117328442364e+02
+-5.1222077635569747e+02
+-5.1248046157196438e+02
+-5.1274022898125179e+02
+-5.1300007856603588e+02
+-5.1326001030315570e+02
+-5.1352002418977941e+02
+-5.1378012030440118e+02
+-5.1404029874584478e+02
+-5.1430055960203106e+02
+-5.1456090283411629e+02
+-5.1482132832147533e+02
+-5.1508183594338595e+02
+-5.1534242565521026e+02
+-5.1560309753023637e+02
+-5.1586385165189643e+02
+-5.1612468810148687e+02
+-5.1638560695175408e+02
+-5.1664660827330908e+02
+-5.1690769212758823e+02
+-5.1716885846939522e+02
+-5.1743010718473522e+02
+-5.1769143815979214e+02
+-5.1795285136016378e+02
+-5.1821434687454382e+02
+-5.1847592480221329e+02
+-5.1873758522066476e+02
+-5.1899932812023962e+02
+-5.1926115346948939e+02
+-5.1952306124382915e+02
+-5.1978505149844398e+02
+-5.2004712433998645e+02
+-5.2030927987449354e+02
+-5.2057151811971369e+02
+-5.2083383895654367e+02
+-5.2109624225410982e+02
+-5.2135872792127532e+02
+-5.2162129602585537e+02
+-5.2188394667540422e+02
+-5.2214667997059166e+02
+-5.2240949593207893e+02
+-5.2267239452890556e+02
+-5.2293537573007086e+02
+-5.2319843955366309e+02
+-5.2346158609386362e+02
+-5.2372481545139726e+02
+-5.2398812769040592e+02
+-5.2425152272868934e+02
+-5.2451500044746410e+02
+-5.2477856073859209e+02
+-5.2504220361770160e+02
+-5.2530592918027173e+02
+-5.2556973752231204e+02
+-5.2583362869192365e+02
+-5.2609760266294552e+02
+-5.2636165940282990e+02
+-5.2662579890351651e+02
+-5.2689002125490140e+02
+-5.2715432657136819e+02
+-5.2741871495476414e+02
+-5.2768318636118522e+02
+-5.2794774065269462e+02
+-5.2821237769136565e+02
+-5.2847709743384826e+02
+-5.2874189998338989e+02
+-5.2900678545584640e+02
+-5.2927175394132678e+02
+-5.2953680542694326e+02
+-5.2980193987406096e+02
+-5.3006715725106176e+02
+-5.3033245760791726e+02
+-5.3059784104723531e+02
+-5.3086330767111417e+02
+-5.3112885749834686e+02
+-5.3139449041860462e+02
+-5.3166020631045217e+02
+-5.3192600508961050e+02
+-5.3219188682043261e+02
+-5.3245785160442722e+02
+-5.3272389953656455e+02
+-5.3299003063578482e+02
+-5.3325624487197899e+02
+-5.3352254221504688e+02
+-5.3378892268456650e+02
+-5.3405538637711322e+02
+-5.3432193339588605e+02
+-5.3458856380568398e+02
+-5.3485527751769848e+02
+-5.3512207440472059e+02
+-5.3538895435111169e+02
+-5.3565591737575335e+02
+-5.3592296358431179e+02
+-5.3619009308305135e+02
+-5.3645730592723669e+02
+-5.3672460209308770e+02
+-5.3699198155002341e+02
+-5.3725944428859407e+02
+-5.3752699038387811e+02
+-5.3779461993208417e+02
+-5.3806233301899226e+02
+-5.3833012960912788e+02
+-5.3859800958878998e+02
+-5.3886597284417553e+02
+-5.3913401933367288e+02
+-5.3940214912756289e+02
+-5.3967036230575354e+02
+-5.3993865894597218e+02
+-5.4020703911722831e+02
+-5.4047550288635364e+02
+-5.4074405031157471e+02
+-5.4101268135110763e+02
+-5.4128139589864190e+02
+-5.4155019384803586e+02
+-5.4181907516766432e+02
+-5.4208803994140794e+02
+-5.4235708826308121e+02
+-5.4262622020615936e+02
+-5.4289543576275321e+02
+-5.4316473490463306e+02
+-5.4343411760990739e+02
+-5.4370358393035553e+02
+-5.4397313396528864e+02
+-5.4424276781347839e+02
+-5.4451248549390425e+02
+-5.4478228690186222e+02
+-5.4505217192201064e+02
+-5.4532214047336151e+02
+-5.4559219261234864e+02
+-5.4586232842975983e+02
+-5.4613254801073515e+02
+-5.4640285137476633e+02
+-5.4667323849898901e+02
+-5.4694370936060113e+02
+-5.4721426398282154e+02
+-5.4748490246020538e+02
+-5.4775562489344236e+02
+-5.4802643134618245e+02
+-5.4829732173390710e+02
+-5.4856829593505768e+02
+-5.4883935383888104e+02
+-5.4911049546025390e+02
+-5.4938172089510533e+02
+-5.4965303023995068e+02
+-5.4992442354552850e+02
+-5.5019590079161901e+02
+-5.5046746195190076e+02
+-5.5073910702197225e+02
+-5.5101083608512329e+02
+-5.5128264924656389e+02
+-5.5155454659959003e+02
+-5.5182652809897047e+02
+-5.5209859361010217e+02
+-5.5237074299845563e+02
+-5.5264297622319907e+02
+-5.5291529338873681e+02
+-5.5318769461196450e+02
+-5.5346017998348623e+02
+-5.5373274948873052e+02
+-5.5400540308683458e+02
+-5.5427814074445075e+02
+-5.5455096251562020e+02
+-5.5482386851076137e+02
+-5.5509685883974794e+02
+-5.5536993352338050e+02
+-5.5564309244439175e+02
+-5.5591633547363915e+02
+-5.5618966251976224e+02
+-5.5646307364253641e+02
+-5.5673656893951829e+02
+-5.5701014850254739e+02
+-5.5728381235697316e+02
+-5.5755756048525154e+02
+-5.5783139286978326e+02
+-5.5810530953265163e+02
+-5.5837931055744832e+02
+-5.5865339603305461e+02
+-5.5892756601526628e+02
+-5.5920182042752913e+02
+-5.5947615916020311e+02
+-5.5975058211265707e+02
+-5.6002508928901170e+02
+-5.6029968076096611e+02
+-5.6057435660138071e+02
+-5.6084911688509044e+02
+-5.6112396168999373e+02
+-5.6139889109425349e+02
+-5.6167390514219642e+02
+-5.6194900374281110e+02
+-5.6222418677124904e+02
+-5.6249945411429951e+02
+-5.6277480579401220e+02
+-5.6305024191970449e+02
+-5.6332576260120595e+02
+-5.6360136789191051e+02
+-5.6387705775773372e+02
+-5.6415283215706768e+02
+-5.6442869107531521e+02
+-5.6470463460592771e+02
+-5.6498066286936978e+02
+-5.6525677597292520e+02
+-5.6553297387067062e+02
+-5.6580925641783642e+02
+-5.6608562346965618e+02
+-5.6636207498030910e+02
+-5.6663861105734395e+02
+-5.6691523182150036e+02
+-5.6719193736624345e+02
+-5.6746872767593254e+02
+-5.6774560270765016e+02
+-5.6802256242631483e+02
+-5.6829960688791596e+02
+-5.6857673620720141e+02
+-5.6885395049830856e+02
+-5.6913124978008750e+02
+-5.6940863392368806e+02
+-5.6968610278755625e+02
+-5.6996365627383329e+02
+-5.7024129445944789e+02
+-5.7051901746502358e+02
+-5.7079682540293186e+02
+-5.7107471828959603e+02
+-5.7135269607953796e+02
+-5.7163075872723994e+02
+-5.7190890624663530e+02
+-5.7218713874381081e+02
+-5.7246545633277879e+02
+-5.7274385908683394e+02
+-5.7302234691639194e+02
+-5.7330091969115051e+02
+-5.7357957729257953e+02
+-5.7385831973902407e+02
+-5.7413714713713239e+02
+-5.7441605959411459e+02
+-5.7469505716256617e+02
+-5.7497413981042712e+02
+-5.7525330749835689e+02
+-5.7553256021257755e+02
+-5.7581189804157032e+02
+-5.7609132109937912e+02
+-5.7637082948766260e+02
+-5.7665042316408005e+02
+-5.7693010199338994e+02
+-5.7720986584036314e+02
+-5.7748971466347984e+02
+-5.7776964856647146e+02
+-5.7804966766556186e+02
+-5.7832977204956228e+02
+-5.7860996169762234e+02
+-5.7889023656147901e+02
+-5.7917059660144491e+02
+-5.7945104187754805e+02
+-5.7973157251414671e+02
+-5.8001218863503345e+02
+-5.8029289026561582e+02
+-5.8057367727880592e+02
+-5.8085454953439921e+02
+-5.8113550692963713e+02
+-5.8141654951155306e+02
+-5.8169767736462632e+02
+-5.8197889057326176e+02
+-5.8226018922097740e+02
+-5.8254157339072174e+02
+-5.8282304316408829e+02
+-5.8310459854203998e+02
+-5.8338623940055754e+02
+-5.8366796560487103e+02
+-5.8394977706270947e+02
+-5.8423167385178988e+02
+-5.8451365609232857e+02
+-5.8479572389620205e+02
+-5.8507787727835773e+02
+-5.8536011619120586e+02
+-5.8564244058717486e+02
+-5.8592485048222511e+02
+-5.8620734599079606e+02
+-5.8648992723579681e+02
+-5.8677259429556318e+02
+-5.8705534707013737e+02
+-5.8733818541498579e+02
+-5.8762110919852512e+02
+-5.8790411843969605e+02
+-5.8818721325455408e+02
+-5.8847039375977283e+02
+-5.8875366001211637e+02
+-5.8903701197548389e+02
+-5.8932044960578844e+02
+-5.8960397288686931e+02
+-5.8988758191427689e+02
+-5.9017127681149032e+02
+-5.9045505768845578e+02
+-5.9073892449781533e+02
+-5.9102287709072198e+02
+-5.9130691531832872e+02
+-5.9159103913320882e+02
+-5.9187524864513978e+02
+-5.9215954397742007e+02
+-5.9244392522553755e+02
+-5.9272839237372898e+02
+-5.9301294537841864e+02
+-5.9329758420390283e+02
+-5.9358230890596951e+02
+-5.9386711959943739e+02
+-5.9415201639855434e+02
+-5.9443699932441120e+02
+-5.9472206825370097e+02
+-5.9500722305069655e+02
+-5.9529246361937533e+02
+-5.9557779002253915e+02
+-5.9586320236269444e+02
+-5.9614870073614952e+02
+-5.9643428516716381e+02
+-5.9671995563351106e+02
+-5.9700571211296904e+02
+-5.9729155462994117e+02
+-5.9757748328110529e+02
+-5.9786349816935433e+02
+-5.9814959935772492e+02
+-5.9843578674981836e+02
+-5.9872206020937938e+02
+-5.9900841961260301e+02
+-5.9929486498043912e+02
+-5.9958139642722870e+02
+-5.9986801406788777e+02
+-6.0015471795855206e+02
+-6.0044150806424295e+02
+-6.0072838434214623e+02
+-6.0101534677660891e+02
+-6.0130239546063274e+02
+-6.0158953051438095e+02
+-6.0187675204536333e+02
+-6.0216406001397138e+02
+-6.0245145428568344e+02
+-6.0273893472572968e+02
+-6.0302650127944719e+02
+-6.0331415401633865e+02
+-6.0360189301658647e+02
+-6.0388971836109465e+02
+-6.0417763013364686e+02
+-6.0446562841874879e+02
+-6.0475371329021038e+02
+-6.0504188469752444e+02
+-6.0533014250997587e+02
+-6.0561848659703730e+02
+-6.0590691691953214e+02
+-6.0619543357987948e+02
+-6.0648403669268021e+02
+-6.0677272634669941e+02
+-6.0706150252736995e+02
+-6.0735036519428934e+02
+-6.0763931431457308e+02
+-6.0792834994271414e+02
+-6.0821747218958046e+02
+-6.0850668116544773e+02
+-6.0879597688879403e+02
+-6.0908535923580610e+02
+-6.0937482807043057e+02
+-6.0966438329893526e+02
+-6.0995402499686440e+02
+-6.1024375328208396e+02
+-6.1053356826423499e+02
+-6.1082346995737532e+02
+-6.1111345831389247e+02
+-6.1140353328622189e+02
+-6.1169369489121596e+02
+-6.1198394324557842e+02
+-6.1227427847460081e+02
+-6.1256470065793724e+02
+-6.1285520969269214e+02
+-6.1314580543033003e+02
+-6.1343648773559130e+02
+-6.1372725662752350e+02
+-6.1401811222472975e+02
+-6.1430905464645093e+02
+-6.1460008395075045e+02
+-6.1489120010086208e+02
+-6.1518240305186384e+02
+-6.1547369278702433e+02
+-6.1576506940238153e+02
+-6.1605653302216388e+02
+-6.1634808375719751e+02
+-6.1663972156250384e+02
+-6.1693144629258154e+02
+-6.1722325780186975e+02
+-6.1751515604162694e+02
+-6.1780714111318616e+02
+-6.1809921313078837e+02
+-6.1839137218337271e+02
+-6.1868361825866270e+02
+-6.1897595131908076e+02
+-6.1926837133468462e+02
+-6.1956087836431368e+02
+-6.1985347252408746e+02
+-6.2014615392948349e+02
+-6.2043892260029872e+02
+-6.2073177840802032e+02
+-6.2102472121137930e+02
+-6.2131775091137081e+02
+-6.2161086757805413e+02
+-6.2190407132375208e+02
+-6.2219736225351505e+02
+-6.2249074038782339e+02
+-6.2278420569259731e+02
+-6.2307775813373553e+02
+-6.2337139773032743e+02
+-6.2366512458391207e+02
+-6.2395893880311905e+02
+-6.2425284045756473e+02
+-6.2454682946080118e+02
+-6.2484090568736656e+02
+-6.2513506902155257e+02
+-6.2542931946105955e+02
+-6.2572365707675215e+02
+-6.2601808194085436e+02
+-6.2631259413400073e+02
+-6.2660719374985865e+02
+-6.2690188088321815e+02
+-6.2719665558904489e+02
+-6.2749151776301358e+02
+-6.2778646726097384e+02
+-6.2808150395216865e+02
+-6.2837662786151679e+02
+-6.2867183911437496e+02
+-6.2896713783663586e+02
+-6.2926252408600192e+02
+-6.2955799781448115e+02
+-6.2985355896498800e+02
+-6.3014920751223747e+02
+-6.3044494355813890e+02
+-6.3074076723640246e+02
+-6.3103667866654678e+02
+-6.3133267780313895e+02
+-6.3162876449432167e+02
+-6.3192493858818193e+02
+-6.3222120003576970e+02
+-6.3251754894772864e+02
+-6.3281398544843250e+02
+-6.3311050963279968e+02
+-6.3340712147793806e+02
+-6.3370382093150067e+02
+-6.3400060795032539e+02
+-6.3429748259800181e+02
+-6.3459444500699476e+02
+-6.3489149530912050e+02
+-6.3518863352850849e+02
+-6.3548585952236942e+02
+-6.3578317313355501e+02
+-6.3608057425122331e+02
+-6.3637806294974689e+02
+-6.3667563934980490e+02
+-6.3697330356447424e+02
+-6.3727105561848623e+02
+-6.3756889547957144e+02
+-6.3786682311539289e+02
+-6.3816483854643138e+02
+-6.3846294187504054e+02
+-6.3876113321061530e+02
+-6.3905941262042199e+02
+-6.3935778000321420e+02
+-6.3965623521561486e+02
+-6.3995477812728166e+02
+-6.4025340875938002e+02
+-6.4055212723082525e+02
+-6.4085093366113415e+02
+-6.4114982810828360e+02
+-6.4144881053485949e+02
+-6.4174788089524384e+02
+-6.4204703917254176e+02
+-6.4234628546476108e+02
+-6.4264561989863330e+02
+-6.4294504258718052e+02
+-6.4324455348405218e+02
+-6.4354415244007328e+02
+-6.4384383930600075e+02
+-6.4414361403120881e+02
+-6.4444347671793275e+02
+-6.4474342748155527e+02
+-6.4504346641275765e+02
+-6.4534359350340833e+02
+-6.4564380872067431e+02
+-6.4594411203893048e+02
+-6.4624450351635812e+02
+-6.4654498326520832e+02
+-6.4684555139706333e+02
+-6.4714620792940946e+02
+-6.4744695273387765e+02
+-6.4774778566955445e+02
+-6.4804870663357678e+02
+-6.4834971567529249e+02
+-6.4865081288209944e+02
+-6.4895199834133666e+02
+-6.4925327213963465e+02
+-6.4955463436316779e+02
+-6.4985608509673045e+02
+-6.5015762434268981e+02
+-6.5045925197565509e+02
+-6.5076096785924392e+02
+-6.5106277189833850e+02
+-6.5136466416287135e+02
+-6.5166664476403946e+02
+-6.5196871380610844e+02
+-6.5227087131279040e+02
+-6.5257311725582463e+02
+-6.5287545160689717e+02
+-6.5317787438644882e+02
+-6.5348038569048708e+02
+-6.5378298562152156e+02
+-6.5408567424281159e+02
+-6.5438845146062295e+02
+-6.5469131714197079e+02
+-6.5499427116596951e+02
+-6.5529731355236243e+02
+-6.5560044441162461e+02
+-6.5590366385483503e+02
+-6.5620697193869114e+02
+-6.5651036863559966e+02
+-6.5681385391071444e+02
+-6.5711742775306470e+02
+-6.5742109024717035e+02
+-6.5772484150142657e+02
+-6.5802868161226797e+02
+-6.5833261053711362e+02
+-6.5863662814369150e+02
+-6.5894073429972593e+02
+-6.5924492896231538e+02
+-6.5954921222709220e+02
+-6.5985358420160367e+02
+-6.6015804497019417e+02
+-6.6046259452439733e+02
+-6.6076723283254171e+02
+-6.6107195987026671e+02
+-6.6137677569817504e+02
+-6.6168168043168771e+02
+-6.6198667418548325e+02
+-6.6229175697498692e+02
+-6.6259692866177511e+02
+-6.6290218909419229e+02
+-6.6320753816600507e+02
+-6.6351297595267624e+02
+-6.6381850257509325e+02
+-6.6412411814649852e+02
+-6.6442982269128106e+02
+-6.6473561617650262e+02
+-6.6504149856917093e+02
+-6.6534746989028361e+02
+-6.6565353024452793e+02
+-6.6595967974378812e+02
+-6.6626591845680377e+02
+-6.6657224627972505e+02
+-6.6687866306555532e+02
+-6.6718516868054394e+02
+-6.6749176314490671e+02
+-6.6779844657819604e+02
+-6.6810521910062880e+02
+-6.6841208077309159e+02
+-6.6871903156450401e+02
+-6.6902607143587647e+02
+-6.6933320037400858e+02
+-6.6964041846886482e+02
+-6.6994772583619965e+02
+-6.7025512257912123e+02
+-6.7056260865372690e+02
+-6.7087018392126504e+02
+-6.7117784824282057e+02
+-6.7148560156440999e+02
+-6.7179344396369709e+02
+-6.7210137552966876e+02
+-6.7240939635049335e+02
+-6.7271750651105640e+02
+-6.7302570609542579e+02
+-6.7333399517655687e+02
+-6.7364237369824548e+02
+-6.7395084152095990e+02
+-6.7425939850539874e+02
+-6.7456804460955516e+02
+-6.7487677994222315e+02
+-6.7518560462517019e+02
+-6.7549451875223019e+02
+-6.7580352230551057e+02
+-6.7611261523918495e+02
+-6.7642179751593039e+02
+-6.7673106919725581e+02
+-6.7704043040843294e+02
+-6.7734988127404210e+02
+-6.7765942181330252e+02
+-6.7796905188212827e+02
+-6.7827877132238370e+02
+-6.7858858002403349e+02
+-6.7889847806943249e+02
+-6.7920846558903600e+02
+-6.7951854270456772e+02
+-6.7982870943627574e+02
+-6.8013896573893760e+02
+-6.8044931156726375e+02
+-6.8075974693741477e+02
+-6.8107027196079548e+02
+-6.8138088675700578e+02
+-6.8169159140136856e+02
+-6.8200238579210804e+02
+-6.8231326978317099e+02
+-6.8262424324162293e+02
+-6.8293530618700925e+02
+-6.8324645873725240e+02
+-6.8355770101088820e+02
+-6.8386903306499664e+02
+-6.8418045486139738e+02
+-6.8449196635371572e+02
+-6.8480356752509681e+02
+-6.8511525847675694e+02
+-6.8542703933943301e+02
+-6.8573891022963676e+02
+-6.8605087109853491e+02
+-6.8636292179061707e+02
+-6.8667506215030346e+02
+-6.8698729212443902e+02
+-6.8729961181863155e+02
+-6.8761202135214353e+02
+-6.8792452081884448e+02
+-6.8823711021103190e+02
+-6.8854978949560780e+02
+-6.8886255864655880e+02
+-6.8917541772020377e+02
+-6.8948836682598289e+02
+-6.8980140607269470e+02
+-6.9011453547766268e+02
+-6.9042775491641680e+02
+-6.9074106425229218e+02
+-6.9105446338874697e+02
+-6.9136795238973889e+02
+-6.9168153135935154e+02
+-6.9199520039531478e+02
+-6.9230895952151934e+02
+-6.9262280871421478e+02
+-6.9293674794967353e+02
+-6.9325077725306789e+02
+-6.9356489672536964e+02
+-6.9387910647406886e+02
+-6.9419340656657107e+02
+-6.9450779690993113e+02
+-6.9482227737111646e+02
+-6.9513684782734344e+02
+-6.9545150827494820e+02
+-6.9576625878712161e+02
+-6.9608109943853628e+02
+-6.9639603031603485e+02
+-6.9671105152531788e+02
+-6.9702616317371019e+02
+-6.9734136532299181e+02
+-6.9765665785277145e+02
+-6.9797204059711305e+02
+-6.9828751340519705e+02
+-6.9860307630193199e+02
+-6.9891872942559598e+02
+-6.9923447291514105e+02
+-6.9955030683644600e+02
+-6.9986623114213262e+02
+-7.0018224577507772e+02
+-7.0049835071050029e+02
+-7.0081454605297893e+02
+-7.0113083193943464e+02
+-7.0144720849172575e+02
+-7.0176367565662440e+02
+-7.0208023326794557e+02
+-7.0239688115948115e+02
+-7.0271361927675207e+02
+-7.0303044773845249e+02
+-7.0334736667817538e+02
+-7.0366437619990893e+02
+-7.0398147628923198e+02
+-7.0429866690211861e+02
+-7.0461594800281807e+02
+-7.0493331965175366e+02
+-7.0525078197139976e+02
+-7.0556833508351917e+02
+-7.0588597900522132e+02
+-7.0620371359140336e+02
+-7.0652153868300684e+02
+-7.0683945416839174e+02
+-7.0715746012558225e+02
+-7.0747555668002053e+02
+-7.0779374394918591e+02
+-7.0811202195800888e+02
+-7.0843039067170855e+02
+-7.0874885005544058e+02
+-7.0906740013014951e+02
+-7.0938604100325551e+02
+-7.0970477278961869e+02
+-7.1002359556027875e+02
+-7.1034250921100192e+02
+-7.1066151359373350e+02
+-7.1098060857369501e+02
+-7.1129979417042193e+02
+-7.1161907050300988e+02
+-7.1193843769119883e+02
+-7.1225789579394404e+02
+-7.1257744477598089e+02
+-7.1289708459393978e+02
+-7.1321681523126790e+02
+-7.1353663677867121e+02
+-7.1385654935367279e+02
+-7.1417655306297081e+02
+-7.1449664788744474e+02
+-7.1481683372679674e+02
+-7.1513711047937818e+02
+-7.1545747804353857e+02
+-7.1577793631762927e+02
+8.7906955009893750e-01
+8.7861680237913775e-01
+8.7816420763014091e-01
+8.7771176583056754e-01
+8.7725947695903805e-01
+8.7680734099417312e-01
+8.7635535791459329e-01
+8.7590352769891910e-01
+8.7545185032577100e-01
+8.7500032577376963e-01
+8.7454895402153554e-01
+8.7409773504768917e-01
+8.7364666883085129e-01
+8.7319575534964222e-01
+8.7274499458268262e-01
+8.7229438650859303e-01
+8.7184393110599390e-01
+8.7139362835350587e-01
+8.7094347822974960e-01
+8.7049348071334542e-01
+8.7004363578291410e-01
+8.6959394341707597e-01
+8.6914440359445178e-01
+8.6869501629366175e-01
+8.6824578149332676e-01
+8.6779669917206714e-01
+8.6734776930850377e-01
+8.6689899188125685e-01
+8.6645036686894705e-01
+8.6600189425019491e-01
+8.6555357400362098e-01
+8.6510540610784570e-01
+8.6465739054148993e-01
+8.6420952728317391e-01
+8.6376181631151827e-01
+8.6331425760514369e-01
+8.6286685114267048e-01
+8.6241959690271930e-01
+8.6197249486391092e-01
+8.6152554500486545e-01
+8.6107874730420386e-01
+8.6063210174054627e-01
+8.6018560829251367e-01
+8.5973926693872638e-01
+8.5929307765780483e-01
+8.5884704042836990e-01
+8.5840115522904181e-01
+8.5795542203844122e-01
+8.5750984083518889e-01
+8.5706441159790492e-01
+8.5661913430521019e-01
+8.5617400893572526e-01
+8.5572903546807055e-01
+8.5528421388086662e-01
+8.5483954415273411e-01
+8.5439502626229358e-01
+8.5395066018816534e-01
+8.5350644590897007e-01
+8.5306238340332852e-01
+8.5261847264986101e-01
+8.5217471362718811e-01
+8.5173110631393034e-01
+8.5128765068870849e-01
+8.5084434673014286e-01
+8.5040119441685402e-01
+8.4995819372746251e-01
+8.4951534464058898e-01
+8.4907264713485398e-01
+8.4863010118887794e-01
+8.4818770678128141e-01
+8.4774546389068517e-01
+8.4730337249570953e-01
+8.4686143257497504e-01
+8.4641964410710235e-01
+8.4597800707071202e-01
+8.4553652144442448e-01
+8.4509518720686039e-01
+8.4465400433664017e-01
+8.4421297281238450e-01
+8.4377209261271391e-01
+8.4333136371624895e-01
+8.4289078610161006e-01
+8.4245035974741789e-01
+8.4201008463229310e-01
+8.4156996073485590e-01
+8.4112998803372718e-01
+8.4069016650752726e-01
+8.4025049613487679e-01
+8.3981097689439621e-01
+8.3937160876470618e-01
+8.3893239172442735e-01
+8.3849332575218005e-01
+8.3805441082658494e-01
+8.3761564692626256e-01
+8.3717703402983346e-01
+8.3673857211591818e-01
+8.3630026116313716e-01
+8.3586210115011106e-01
+8.3542409205546053e-01
+8.3498623385780602e-01
+8.3454852653576794e-01
+8.3411097006796697e-01
+8.3367356443302376e-01
+8.3323630960955863e-01
+8.3279920557619225e-01
+8.3236225231154526e-01
+8.3192544979423810e-01
+8.3148879800289122e-01
+8.3105229691612537e-01
+8.3061594651256088e-01
+8.3017974677081852e-01
+8.2974369766951872e-01
+8.2930779918728192e-01
+8.2887205130272901e-01
+8.2843645399448018e-01
+8.2800100724115611e-01
+8.2756571102137744e-01
+8.2713056531376450e-01
+8.2669557009693806e-01
+8.2626072534951867e-01
+8.2582603105012664e-01
+8.2539148717738287e-01
+8.2495709370990733e-01
+8.2452285062632136e-01
+8.2408875790524472e-01
+8.2365481552529851e-01
+8.2322102346510306e-01
+8.2278738170327892e-01
+8.2235389021844674e-01
+8.2192054898922695e-01
+8.2148735799424022e-01
+8.2105431721210698e-01
+8.2062142662144777e-01
+8.2018868620088314e-01
+8.1975609592903376e-01
+8.1932365578452004e-01
+8.1889136574596266e-01
+8.1845922579198205e-01
+8.1802723590119886e-01
+8.1759539605223353e-01
+8.1716370622370671e-01
+8.1673216639423885e-01
+8.1630077654245059e-01
+8.1586953664696238e-01
+8.1543844668639487e-01
+8.1500750663936850e-01
+8.1457671648450392e-01
+8.1414607620042179e-01
+8.1371558576574232e-01
+8.1328524515908618e-01
+8.1285505435907413e-01
+8.1242501334432649e-01
+8.1199512209346381e-01
+8.1156538058510685e-01
+8.1113578879787607e-01
+8.1070634671039166e-01
+8.1027705430127472e-01
+8.0984791154914548e-01
+8.0941891843262459e-01
+8.0899007493033259e-01
+8.0856138102088992e-01
+8.0813283668291735e-01
+8.0770444189503521e-01
+8.0727619663586403e-01
+8.0684810088402459e-01
+8.0642015461813732e-01
+8.0599235781682255e-01
+8.0556471045870115e-01
+8.0513721252239367e-01
+8.0470986398652034e-01
+8.0428266482970190e-01
+8.0385561503055913e-01
+8.0342871456771214e-01
+8.0300196341978181e-01
+8.0257536156538845e-01
+8.0214890898315283e-01
+8.0172260565169529e-01
+8.0129645154963658e-01
+8.0087044665559692e-01
+8.0044459094819720e-01
+8.0001888440605784e-01
+7.9959332700779950e-01
+7.9916791873204263e-01
+7.9874265955740775e-01
+7.9831754946251532e-01
+7.9789258842598609e-01
+7.9746777642644040e-01
+7.9704311344249901e-01
+7.9661859945278235e-01
+7.9619423443591097e-01
+7.9577001837050543e-01
+7.9534595123518648e-01
+7.9492203300857422e-01
+7.9449826366928944e-01
+7.9407464319595289e-01
+7.9365117156718479e-01
+7.9322784876160590e-01
+7.9280467475783667e-01
+7.9238164953449763e-01
+7.9195877307020934e-01
+7.9153604534359245e-01
+7.9111346633326729e-01
+7.9069103601785473e-01
+7.9026875437597499e-01
+7.8984662138624884e-01
+7.8942463702729682e-01
+7.8900280127773925e-01
+7.8858111411619691e-01
+7.8815957552129023e-01
+7.8773818547163987e-01
+7.8731694394586627e-01
+7.8689585092259007e-01
+7.8647490638043172e-01
+7.8605411029801187e-01
+7.8563346265395095e-01
+7.8521296342686964e-01
+7.8479261259538824e-01
+7.8437241013812753e-01
+7.8395235603370816e-01
+7.8353245026075036e-01
+7.8311269279787488e-01
+7.8269308362370227e-01
+7.8227362271685297e-01
+7.8185431005594763e-01
+7.8143514561960681e-01
+7.8101612938645082e-01
+7.8059726133510066e-01
+7.8017854144417642e-01
+7.7975996969229899e-01
+7.7934154605808859e-01
+7.7892327052016597e-01
+7.7850514305715168e-01
+7.7808716364766628e-01
+7.7766933227033030e-01
+7.7725164890376419e-01
+7.7683411352658860e-01
+7.7641672611742418e-01
+7.7599948665489116e-01
+7.7558239511761029e-01
+7.7516545148420213e-01
+7.7474865573328722e-01
+7.7433200784348610e-01
+7.7391550779341922e-01
+7.7349915556170734e-01
+7.7308295112697090e-01
+7.7266689446783032e-01
+7.7225098556290628e-01
+7.7183522439081931e-01
+7.7141961093018996e-01
+7.7100414515963878e-01
+7.7058882705778631e-01
+7.7017365660325310e-01
+7.6975863377465958e-01
+7.6934375855062653e-01
+7.6892903090977449e-01
+7.6851445083072367e-01
+7.6810001829209495e-01
+7.6768573327250866e-01
+7.6727159575058568e-01
+7.6685760570494610e-01
+7.6644376311421092e-01
+7.6603006795700035e-01
+7.6561652021193516e-01
+7.6520311985763567e-01
+7.6478986687272266e-01
+7.6437676123581644e-01
+7.6396380292553778e-01
+7.6355099192050713e-01
+7.6313832819934513e-01
+7.6272581174067211e-01
+7.6231344252310884e-01
+7.6190122052527576e-01
+7.6148914572579340e-01
+7.6107721810328233e-01
+7.6066543763636318e-01
+7.6025380430365641e-01
+7.5984231808378255e-01
+7.5943097895536216e-01
+7.5901978689701588e-01
+7.5860874188736427e-01
+7.5819784390502776e-01
+7.5778709292862689e-01
+7.5737648893678222e-01
+7.5696603190811440e-01
+7.5655572182124375e-01
+7.5614555865479127e-01
+7.5573554238737706e-01
+7.5532567299762166e-01
+7.5491595046414606e-01
+7.5450637476557036e-01
+7.5409694588051535e-01
+7.5368766378760155e-01
+7.5327852846544929e-01
+7.5286953989267946e-01
+7.5246069804791227e-01
+7.5205200290976859e-01
+7.5164345445686875e-01
+7.5123505266783330e-01
+7.5082679752128301e-01
+7.5041868899583797e-01
+7.5001072707011929e-01
+7.4960291172274718e-01
+7.4919524293234230e-01
+7.4878772067752508e-01
+7.4838034493691619e-01
+7.4797311568913616e-01
+7.4756603291280543e-01
+7.4715909658654467e-01
+7.4675230668897441e-01
+7.4634566319871509e-01
+7.4593916609438737e-01
+7.4553281535461180e-01
+7.4512661095800903e-01
+7.4472055288319927e-01
+7.4431464110880330e-01
+7.4390887561344154e-01
+7.4350325637573489e-01
+7.4309778337430343e-01
+7.4269245658776806e-01
+7.4228727599474920e-01
+7.4188224157386728e-01
+7.4147735330374298e-01
+7.4107261116299683e-01
+7.4066801513024938e-01
+7.4026356518412118e-01
+7.3985926130323287e-01
+7.3945510346620480e-01
+7.3905109165165750e-01
+7.3864722583821185e-01
+7.3824350600448796e-01
+7.3783993212910670e-01
+7.3743650419068851e-01
+7.3703322216785394e-01
+7.3663008603922364e-01
+7.3622709578341783e-01
+7.3582425137905738e-01
+7.3542155280476273e-01
+7.3501900003915455e-01
+7.3461659306085325e-01
+7.3421433184847928e-01
+7.3381221638065341e-01
+7.3341024663599608e-01
+7.3300842259312782e-01
+7.3260674423066918e-01
+7.3220521152724083e-01
+7.3180382446146308e-01
+7.3140258301195671e-01
+7.3100148715734226e-01
+7.3060053687624005e-01
+7.3019973214727085e-01
+7.2979907294905499e-01
+7.2939855926021324e-01
+7.2899819105936614e-01
+7.2859796832513413e-01
+7.2819789103613775e-01
+7.2779795917099754e-01
+7.2739817270833429e-01
+7.2699853162676820e-01
+7.2659903590491992e-01
+7.2619968552141012e-01
+7.2580048045485923e-01
+7.2540142068388791e-01
+7.2500250618711670e-01
+7.2460373694316604e-01
+7.2420511293065648e-01
+7.2380663412820856e-01
+7.2340830051444294e-01
+7.2301011206798016e-01
+7.2261206876744066e-01
+7.2221417059144510e-01
+7.2181641751861392e-01
+7.2141880952756776e-01
+7.2102134659692707e-01
+7.2062402870531250e-01
+7.2022685583134460e-01
+7.1982982795364381e-01
+7.1943294505083077e-01
+7.1903620710152594e-01
+7.1863961408435006e-01
+7.1824316597792337e-01
+7.1784686276086673e-01
+7.1745070441180037e-01
+7.1705469090934515e-01
+7.1665882223212152e-01
+7.1626309835874991e-01
+7.1586751926785097e-01
+7.1547208493804515e-01
+7.1507679534795321e-01
+7.1468165047619547e-01
+7.1428665030139271e-01
+7.1389179480216514e-01
+7.1349708395713352e-01
+7.1310251774491851e-01
+7.1270809614414055e-01
+7.1231381913341996e-01
+7.1191968669137773e-01
+7.1152569879663408e-01
+7.1113185542780966e-01
+7.1073815656352490e-01
+7.1034460218240059e-01
+7.0995119226305703e-01
+7.0955792678411500e-01
+7.0916480572419494e-01
+7.0877182906191727e-01
+7.0837899677590277e-01
+7.0798630884477176e-01
+7.0759376524714501e-01
+7.0720136596164296e-01
+7.0680911096688603e-01
+7.0641700024149501e-01
+7.0602503376409032e-01
+7.0563321151329239e-01
+7.0524153346772200e-01
+7.0484999960599959e-01
+7.0445860990674569e-01
+7.0406736434858097e-01
+7.0367626291012586e-01
+7.0328530557000080e-01
+7.0289449230682655e-01
+7.0250382309922355e-01
+7.0211329792581234e-01
+7.0172291676521348e-01
+7.0133267959604750e-01
+7.0094258639693519e-01
+7.0055263714649674e-01
+7.0016283182335282e-01
+6.9977317040612408e-01
+6.9938365287343096e-01
+6.9899427920389401e-01
+6.9860504937613377e-01
+6.9821596336877101e-01
+6.9782702116042594e-01
+6.9743822272971934e-01
+6.9704956805527152e-01
+6.9666105711570347e-01
+6.9627268988963520e-01
+6.9588446635568757e-01
+6.9549638649248113e-01
+6.9510845027863633e-01
+6.9472065769277380e-01
+6.9433300871351400e-01
+6.9394550331947746e-01
+6.9355814148928485e-01
+6.9317092320155660e-01
+6.9278384843491336e-01
+6.9239691716797558e-01
+6.9201012937936401e-01
+6.9162348504769899e-01
+6.9123698415160106e-01
+6.9085062666969088e-01
+6.9046441258058888e-01
+6.9007834186291572e-01
+6.8969241449529195e-01
+6.8930663045633800e-01
+6.8892098972467453e-01
+6.8853549227892197e-01
+6.8815013809770109e-01
+6.8776492715963222e-01
+6.8737985944333602e-01
+6.8699493492743291e-01
+6.8661015359054356e-01
+6.8622551541128862e-01
+6.8584102036828831e-01
+6.8545666844016351e-01
+6.8507245960553453e-01
+6.8468839384302205e-01
+6.8430447113124659e-01
+6.8392069144882872e-01
+6.8353705477438886e-01
+6.8315356108654779e-01
+6.8277021036392582e-01
+6.8238700258514362e-01
+6.8200393772882173e-01
+6.8162101577358070e-01
+6.8123823669804107e-01
+6.8085560048082339e-01
+6.8047310710054809e-01
+6.8009075653583606e-01
+6.7970854876530740e-01
+6.7932648376758298e-01
+6.7894456152128324e-01
+6.7856278200502862e-01
+6.7818114519743977e-01
+6.7779965107713736e-01
+6.7741829962274180e-01
+6.7703709081287367e-01
+6.7665602462615349e-01
+6.7627510104120181e-01
+6.7589432003663918e-01
+6.7551368159108616e-01
+6.7513318568316327e-01
+6.7475283229149108e-01
+6.7437262139469034e-01
+6.7399255297138116e-01
+6.7361262700018443e-01
+6.7323284345972056e-01
+6.7285320232861023e-01
+6.7247370358547376e-01
+6.7209434720893202e-01
+6.7171513317760523e-01
+6.7133606147011404e-01
+6.7095713206507912e-01
+6.7057834494112090e-01
+6.7019970007685992e-01
+6.6982119745091673e-01
+6.6944283704191210e-01
+6.6906461882846624e-01
+6.6868654278919992e-01
+6.6830860890273347e-01
+6.6793081714768776e-01
+6.6755316750268312e-01
+6.6717565994634009e-01
+6.6679829445727923e-01
+6.6642107101412118e-01
+6.6604398959548650e-01
+6.6566705017999561e-01
+6.6529025274626918e-01
+6.6491359727292765e-01
+6.6453708373859155e-01
+6.6416071212188155e-01
+6.6378448240141807e-01
+6.6340839455582179e-01
+6.6303244856371324e-01
+6.6265664440371286e-01
+6.6228098205444130e-01
+6.6190546149451901e-01
+6.6153008270256675e-01
+6.6115484565720473e-01
+6.6077975033705372e-01
+6.6040479672073427e-01
+6.6002998478686692e-01
+6.5965531451407200e-01
+6.5928078588097039e-01
+6.5890639886618252e-01
+6.5853215344832883e-01
+6.5815804960602997e-01
+6.5778408731790650e-01
+6.5741026656257895e-01
+6.5703658731866765e-01
+6.5666304956479360e-01
+6.5628965327957700e-01
+6.5591639844163852e-01
+6.5554328502959858e-01
+6.5517031302207784e-01
+6.5479748239769686e-01
+6.5442479313507618e-01
+6.5405224521283634e-01
+6.5367983860959789e-01
+6.5330757330398126e-01
+6.5293544927460723e-01
+6.5256346650009611e-01
+6.5219162495906868e-01
+6.5181992463014526e-01
+6.5144836549194662e-01
+6.5107694752309309e-01
+6.5070567070220542e-01
+6.5033453500790395e-01
+6.4996354041880933e-01
+6.4959268691354222e-01
+6.4922197447072305e-01
+6.4885140306897227e-01
+6.4848097268691052e-01
+6.4811068330315846e-01
+6.4774053489633654e-01
+6.4737052744506529e-01
+6.4700066092796527e-01
+6.4663093532365701e-01
+6.4626135061076107e-01
+6.4589190676789809e-01
+6.4552260377368842e-01
+6.4515344160675281e-01
+6.4478442024571170e-01
+6.4441553966918574e-01
+6.4404679985579527e-01
+6.4367820078416105e-01
+6.4330974243290351e-01
+6.4294142478064309e-01
+6.4257324780600067e-01
+6.4220521148759668e-01
+6.4183731580405134e-01
+6.4146956073398564e-01
+6.4110194625601991e-01
+6.4073447234877468e-01
+6.4036713899087050e-01
+6.3999994616092803e-01
+6.3963289383756772e-01
+6.3926598199941020e-01
+6.3889921062507593e-01
+6.3853257969318555e-01
+6.3816608918235951e-01
+6.3779973907121845e-01
+6.3743352933838271e-01
+6.3706745996247316e-01
+6.3670153092211001e-01
+6.3633574219591416e-01
+6.3597009376250591e-01
+6.3560458560050592e-01
+6.3523921768853464e-01
+6.3487399000521261e-01
+6.3450890252916048e-01
+6.3414395523899880e-01
+6.3377914811334812e-01
+6.3341448113082877e-01
+6.3304995427006161e-01
+6.3268556750966698e-01
+6.3232132082826553e-01
+6.3195721420447781e-01
+6.3159324761692415e-01
+6.3122942104422552e-01
+6.3086573446500216e-01
+6.3050218785787449e-01
+6.3013878120146349e-01
+6.2977551447438929e-01
+6.2941238765527274e-01
+6.2904940072273430e-01
+6.2868655365539439e-01
+6.2832384643187367e-01
+6.2796127903079269e-01
+6.2759885143077188e-01
+6.2723656361043201e-01
+6.2687441554839340e-01
+6.2651240722327672e-01
+6.2615053861370251e-01
+6.2578880969829132e-01
+6.2542722045566368e-01
+6.2506577086444015e-01
+6.2470446090324128e-01
+6.2434329055068749e-01
+6.2398225978539956e-01
+6.2362136858599782e-01
+6.2326061693110302e-01
+6.2290000479933549e-01
+6.2253953216931590e-01
+6.2217919901966490e-01
+6.2181900532900292e-01
+6.2145895107595051e-01
+6.2109903623912821e-01
+6.2073926079715647e-01
+6.2037962472865604e-01
+6.2002012801224748e-01
+6.1966077062655112e-01
+6.1930155255018760e-01
+6.1894247376177747e-01
+6.1858353423994139e-01
+6.1822473396329980e-01
+6.1786607291047324e-01
+6.1750755106008226e-01
+6.1714916839074740e-01
+6.1679092488108933e-01
+6.1643282050972847e-01
+6.1607485525528538e-01
+6.1571702909638060e-01
+6.1535934201163478e-01
+6.1500179397966837e-01
+6.1464438497910190e-01
+6.1428711498855604e-01
+6.1392998398665122e-01
+6.1357299195200787e-01
+6.1321613886324688e-01
+6.1285942469898858e-01
+6.1250284943785349e-01
+6.1214641305846240e-01
+6.1179011553943541e-01
+6.1143395685939350e-01
+6.1107793699695701e-01
+6.1072205593074647e-01
+6.1036631363938265e-01
+6.1001071010148578e-01
+6.0965524529567650e-01
+6.0929991920057558e-01
+6.0894473179480335e-01
+6.0858968305698036e-01
+6.0823477296572726e-01
+6.0788000149966459e-01
+6.0752536863741280e-01
+6.0717087435759254e-01
+6.0681651863882413e-01
+6.0646230145972857e-01
+6.0610822279892596e-01
+6.0575428263503706e-01
+6.0540048094668242e-01
+6.0504681771248259e-01
+6.0469329291105800e-01
+6.0433990652102931e-01
+6.0398665852101696e-01
+6.0363354888964160e-01
+6.0328057760552378e-01
+6.0292774464728405e-01
+6.0257504999354294e-01
+6.0222249362292091e-01
+6.0187007551403848e-01
+6.0151779564551644e-01
+6.0116565399597521e-01
+6.0081365054403535e-01
+6.0046178526831728e-01
+6.0011005814744167e-01
+5.9975846916002906e-01
+5.9940701828470000e-01
+5.9905570550007503e-01
+5.9870453078477470e-01
+5.9835349411741945e-01
+5.9800259547662993e-01
+5.9765183484102680e-01
+5.9730121218923049e-01
+5.9695072749986144e-01
+5.9660038075154032e-01
+5.9625017192288765e-01
+5.9590010099252411e-01
+5.9555016793907001e-01
+5.9520037274114612e-01
+5.9485071537737277e-01
+5.9450119582637062e-01
+5.9415181406676032e-01
+5.9380257007716231e-01
+5.9345346383619713e-01
+5.9310449532248533e-01
+5.9275566451464745e-01
+5.9240697139130405e-01
+5.9205841593107578e-01
+5.9170999811258285e-01
+5.9136171791444636e-01
+5.9101357531528631e-01
+5.9066557029372357e-01
+5.9031770282837859e-01
+5.8996997289787201e-01
+5.8962238048082427e-01
+5.8927492555585581e-01
+5.8892760810158751e-01
+5.8858042809663957e-01
+5.8823338551963289e-01
+5.8788648034918767e-01
+5.8753971256392457e-01
+5.8719308214246424e-01
+5.8684658906342713e-01
+5.8650023330543388e-01
+5.8615401484710494e-01
+5.8580793366706085e-01
+5.8546198974392227e-01
+5.8511618305630964e-01
+5.8477051358284360e-01
+5.8442498130214449e-01
+5.8407958619283318e-01
+5.8373432823353000e-01
+5.8338920740285549e-01
+5.8304422367943043e-01
+5.8269937704187502e-01
+5.8235466746881004e-01
+5.8201009493885603e-01
+5.8166565943063331e-01
+5.8132136092276276e-01
+5.8097719939386472e-01
+5.8063317482255983e-01
+5.8028928718746853e-01
+5.7994553646721148e-01
+5.7960192264040922e-01
+5.7925844568568219e-01
+5.7891510558165105e-01
+5.7857190230693634e-01
+5.7822883584015849e-01
+5.7788590615993818e-01
+5.7754311324489593e-01
+5.7720045707365220e-01
+5.7685793762482773e-01
+5.7651555487704287e-01
+5.7617330880891815e-01
+5.7583119939907434e-01
+5.7548922662613178e-01
+5.7514739046871111e-01
+5.7480569090543288e-01
+5.7446412791491763e-01
+5.7412270147578581e-01
+5.7378141156665807e-01
+5.7344025816615507e-01
+5.7309924125289713e-01
+5.7275836080550491e-01
+5.7241761680259895e-01
+5.7207700922279980e-01
+5.7173653804472790e-01
+5.7139620324700402e-01
+5.7105600480824859e-01
+5.7071594270708204e-01
+5.7037601692212514e-01
+5.7003622743199833e-01
+5.6969657421532216e-01
+5.6935705725071706e-01
+5.6901767651680379e-01
+5.6867843199220280e-01
+5.6833932365553463e-01
+5.6800035148541983e-01
+5.6766151546047894e-01
+5.6732281555933251e-01
+5.6698425176060108e-01
+5.6664582404290531e-01
+5.6630753238486553e-01
+5.6596937676510251e-01
+5.6563135716223667e-01
+5.6529347355488846e-01
+5.6495572592167864e-01
+5.6461811424122776e-01
+5.6428063849215626e-01
+5.6394329865308468e-01
+5.6360609470263356e-01
+5.6326902661942346e-01
+5.6293209438207503e-01
+5.6259529796920871e-01
+5.6225863735944515e-01
+5.6192211253140467e-01
+5.6158572346370805e-01
+5.6124947013497573e-01
+5.6091335252382835e-01
+5.6057737060888635e-01
+5.6024152436877039e-01
+5.5990581378210091e-01
+5.5957023882749846e-01
+5.5923479948358357e-01
+5.5889949572897701e-01
+5.5856432754229912e-01
+5.5822929490217033e-01
+5.5789439778721150e-01
+5.5755963617604298e-01
+5.5722501004728531e-01
+5.5689051937955925e-01
+5.5655616415148501e-01
+5.5622194434168337e-01
+5.5588785992877487e-01
+5.5555391089137995e-01
+5.5522009720811927e-01
+5.5488641885761325e-01
+5.5455287581848256e-01
+5.5421946806934774e-01
+5.5388619558882923e-01
+5.5355305835554769e-01
+5.5322005634812366e-01
+5.5288718954517768e-01
+5.5255445792533009e-01
+5.5222186146720176e-01
+5.5188940014941301e-01
+5.5155707395058462e-01
+5.5122488284933691e-01
+5.5089282682429042e-01
+5.5056090585406592e-01
+5.5022911991728374e-01
+5.4989746899256453e-01
+5.4956595305852884e-01
+5.4923457209379711e-01
+5.4890332607699011e-01
+5.4857221498672815e-01
+5.4824123880163189e-01
+5.4791039750032189e-01
+5.4757969106141868e-01
+5.4724911946354282e-01
+5.4691868268531485e-01
+5.4658838070535520e-01
+5.4625821350228465e-01
+5.4592818105472363e-01
+5.4559828334129257e-01
+5.4526852034061224e-01
+5.4493889203130297e-01
+5.4460939839198552e-01
+5.4428003940128022e-01
+5.4395081503780784e-01
+5.4362172528018871e-01
+5.4329277010704358e-01
+5.4296394949699289e-01
+5.4263526342865720e-01
+5.4230671188065704e-01
+5.4197829483161297e-01
+5.4165001226014553e-01
+5.4132186414487526e-01
+5.4099385046442283e-01
+5.4066597119740867e-01
+5.4033822632245321e-01
+5.4001061581817722e-01
+5.3968313966320125e-01
+5.3935579783614562e-01
+5.3902859031563111e-01
+5.3870151708027814e-01
+5.3837457810870726e-01
+5.3804777337953902e-01
+5.3772110287139407e-01
+5.3739456656289286e-01
+5.3706816443265604e-01
+5.3674189645930404e-01
+5.3641576262145729e-01
+5.3608976289773669e-01
+5.3576389726676243e-01
+5.3543816570715530e-01
+5.3511256819753583e-01
+5.3478710471652446e-01
+5.3446177524274174e-01
+5.3413657975480833e-01
+5.3381151823134465e-01
+5.3348659065097137e-01
+5.3316179699230892e-01
+5.3283713723397796e-01
+5.3251261135459893e-01
+5.3218821933279248e-01
+5.3186396114717904e-01
+5.3153983677637917e-01
+5.3121584619901352e-01
+5.3089198939370275e-01
+5.3056826633906706e-01
+5.3024467701372724e-01
+5.2992122139630382e-01
+5.2959789946541724e-01
+5.2927471119968805e-01
+5.2895165657773702e-01
+5.2862873557818446e-01
+5.2830594817965104e-01
+5.2798329436075730e-01
+5.2766077410012369e-01
+5.2733838737637084e-01
+5.2701613416811921e-01
+5.2669401445398956e-01
+5.2637202821260221e-01
+5.2605017542257781e-01
+5.2572845606253693e-01
+5.2540687011109999e-01
+5.2508541754688776e-01
+5.2476409834852045e-01
+5.2444291249461905e-01
+5.2412185996380367e-01
+5.2380094073469519e-01
+5.2348015478591392e-01
+5.2315950209608064e-01
+5.2283898264381568e-01
+5.2251859640773968e-01
+5.2219834336647319e-01
+5.2187822349863677e-01
+5.2155823678285096e-01
+5.2123838319773630e-01
+5.2091866272191334e-01
+5.2059907533400263e-01
+5.2027962101262470e-01
+5.1996029973640012e-01
+5.1964111148394942e-01
+5.1932205623389316e-01
+5.1900313396485187e-01
+5.1868434465544611e-01
+5.1836568828429641e-01
+5.1804716483002344e-01
+5.1772877427124753e-01
+5.1741051658658943e-01
+5.1709239175466948e-01
+5.1677439975410844e-01
+5.1645654056352674e-01
+5.1613881416154495e-01
+5.1582122052678359e-01
+5.1550375963786332e-01
+5.1518643147340459e-01
+5.1486923601202794e-01
+5.1455217323235392e-01
+5.1423524311300317e-01
+5.1391844563259603e-01
+5.1360178076975327e-01
+5.1328524850309543e-01
+5.1296884881124294e-01
+5.1265258167281624e-01
+5.1233644706643622e-01
+5.1202044497072308e-01
+5.1170457536429759e-01
+5.1138883822578030e-01
+5.1107323353379153e-01
+5.1075776126695205e-01
+5.1044242140388241e-01
+5.1012721392320304e-01
+5.0981213880353460e-01
+5.0949719602349752e-01
+5.0918238556171236e-01
+5.0886770739679976e-01
+5.0855316150738017e-01
+5.0823874787207424e-01
+5.0792446646950240e-01
+5.0761031727828532e-01
+5.0729630027704342e-01
+5.0698241544439737e-01
+5.0666866275896771e-01
+5.0635504219937488e-01
+5.0604155374423943e-01
+5.0572819737218211e-01
+5.0541497306182315e-01
+5.0510188079178342e-01
+5.0478892054068325e-01
+5.0447609228714330e-01
+5.0416339600978410e-01
+5.0385083168722611e-01
+5.0353839929808997e-01
+5.0322609882099623e-01
+5.0291393023456532e-01
+5.0260189351741802e-01
+5.0228998864817465e-01
+5.0197821560545575e-01
+5.0166657436788209e-01
+5.0135506491407400e-01
+5.0104368722265213e-01
+5.0073244127223704e-01
+5.0042132704144926e-01
+5.0011034450890923e-01
+4.9979949365323773e-01
+4.9948877445305512e-01
+4.9917818688698201e-01
+4.9886773093363890e-01
+4.9855740657164638e-01
+4.9824721377962500e-01
+4.9793715253619530e-01
+4.9762722281997784e-01
+4.9731742460959316e-01
+4.9700775788366175e-01
+4.9669822262080426e-01
+4.9638881879964114e-01
+4.9607954639879304e-01
+4.9577040539688044e-01
+4.9546139577252390e-01
+4.9515251750434397e-01
+4.9484377057096118e-01
+4.9453515495099615e-01
+4.9422667062306935e-01
+4.9391831756580129e-01
+4.9361009575781267e-01
+4.9330200517772382e-01
+4.9299404580415551e-01
+4.9268621761572823e-01
+4.9237852059106241e-01
+4.9207095470877871e-01
+4.9176351994749762e-01
+4.9145621628583974e-01
+4.9114904370242551e-01
+4.9084200217587570e-01
+4.9053509168481058e-01
+4.9022831220785090e-01
+4.8992166372361712e-01
+4.8961514621072988e-01
+4.8930875964780957e-01
+4.8900250401347684e-01
+4.8869637928635223e-01
+4.8839038544505631e-01
+4.8808452246820955e-01
+4.8777879033443250e-01
+4.8747318902234582e-01
+4.8716771851057000e-01
+4.8686237877772554e-01
+4.8655716980243308e-01
+4.8625209156331306e-01
+4.8594714403898609e-01
+4.8564232720807271e-01
+4.8533764104919352e-01
+4.8503308554096891e-01
+4.8472866066201958e-01
+4.8442436639096609e-01
+4.8412020270642886e-01
+4.8381616958702856e-01
+4.8351226701138561e-01
+4.8320849495812063e-01
+4.8290485340585421e-01
+4.8260134233320684e-01
+4.8229796171879907e-01
+4.8199471154125151e-01
+4.8169159177918464e-01
+4.8138860241121895e-01
+4.8108574341597515e-01
+4.8078301477207369e-01
+4.8048041645813511e-01
+4.8017794845278000e-01
+4.7987561073462887e-01
+4.7957340328230230e-01
+4.7927132607442080e-01
+4.7896937908960491e-01
+4.7866756230647522e-01
+4.7836587570365230e-01
+4.7806431925975668e-01
+4.7776289295340879e-01
+4.7746159676322930e-01
+4.7716043066783881e-01
+4.7685939464585769e-01
+4.7655848867590667e-01
+4.7625771273660622e-01
+4.7595706680657690e-01
+4.7565655086443920e-01
+4.7535616488881371e-01
+4.7505590885832100e-01
+4.7475578275158159e-01
+4.7445578654721599e-01
+4.7415592022384484e-01
+4.7385618376008865e-01
+4.7355657713456789e-01
+4.7325710032590323e-01
+4.7295775331271517e-01
+4.7265853607362418e-01
+4.7235944858725099e-01
+4.7206049083221596e-01
+4.7176166278713971e-01
+4.7146296443064284e-01
+4.7116439574134583e-01
+4.7086595669786918e-01
+4.7056764727883360e-01
+4.7026946746285947e-01
+4.6997141722856739e-01
+4.6967349655457802e-01
+4.6937570541951179e-01
+4.6907804380198925e-01
+4.6878051168063095e-01
+4.6848310903405743e-01
+4.6818583584088935e-01
+4.6788869207974715e-01
+4.6759167772925136e-01
+4.6729479276802260e-01
+4.6699803717468136e-01
+4.6670141092784828e-01
+4.6640491400614381e-01
+4.6610854638818855e-01
+4.6581230805260299e-01
+4.6551619897800767e-01
+4.6522021914302325e-01
+4.6492436852627017e-01
+4.6462864710636909e-01
+4.6433305486194043e-01
+4.6403759177160475e-01
+4.6374225781398271e-01
+4.6344705296769473e-01
+4.6315197721136148e-01
+4.6285703052360344e-01
+4.6256221288304111e-01
+4.6226752426829515e-01
+4.6197296465798604e-01
+4.6167853403073433e-01
+4.6138423236516057e-01
+4.6109005963988525e-01
+4.6079601583352903e-01
+4.6050210092471244e-01
+4.6020831489205594e-01
+4.5991465771418016e-01
+4.5962112936970556e-01
+4.5932772983725279e-01
+4.5903445909544238e-01
+4.5874131712289484e-01
+4.5844830389823071e-01
+4.5815541940007054e-01
+4.5786266360703498e-01
+4.5757003649774441e-01
+4.5727753805081950e-01
+4.5698516824488072e-01
+4.5669292705854869e-01
+4.5640081447044389e-01
+4.5610883045918693e-01
+4.5581697500339835e-01
+4.5552524808169864e-01
+4.5523364967270841e-01
+4.5494217975504819e-01
+4.5465083830733849e-01
+4.5435962530819990e-01
+4.5406854073625297e-01
+4.5377758457011819e-01
+4.5348675678841621e-01
+4.5319605736976742e-01
+4.5290548629279259e-01
+4.5261504353611204e-01
+4.5232472907834653e-01
+4.5203454289811640e-01
+4.5174448497404235e-01
+4.5145455528474487e-01
+4.5116475380884447e-01
+4.5087508052496178e-01
+4.5058553541171731e-01
+4.5029611844773160e-01
+4.5000682961162514e-01
+4.4971766888201858e-01
+4.4942863623753249e-01
+4.4913973165678733e-01
+4.4885095511840362e-01
+4.4856230660100199e-01
+4.4827378608320301e-01
+4.4798539354362710e-01
+4.4769712896089497e-01
+4.4740899231362702e-01
+4.4712098358044389e-01
+4.4683310273996607e-01
+4.4654534977081417e-01
+4.4625772465160868e-01
+4.4597022736097020e-01
+4.4568285787751921e-01
+4.4539561617987633e-01
+4.4510850224666204e-01
+4.4482151605649695e-01
+4.4453465758800154e-01
+4.4424792681979641e-01
+4.4396132373050212e-01
+4.4367484829873921e-01
+4.4338850050312817e-01
+4.4310228032228960e-01
+4.4281618773484405e-01
+4.4253022271941206e-01
+4.4224438525461418e-01
+4.4195867531907090e-01
+4.4167309289140283e-01
+4.4138763795023050e-01
+4.4110231047417447e-01
+4.4081711044185534e-01
+4.4053203783189354e-01
+4.4024709262290967e-01
+4.3996227479352434e-01
+4.3967758432235798e-01
+4.3939302118803120e-01
+4.3910858536916453e-01
+4.3882427684437858e-01
+4.3854009559229384e-01
+4.3825604159153086e-01
+4.3797211482071025e-01
+4.3768831525845242e-01
+4.3740464288337810e-01
+4.3712109767410767e-01
+4.3683767960926173e-01
+4.3655438866746088e-01
+4.3627122482732561e-01
+4.3598818806747652e-01
+4.3570527836653417e-01
+4.3542249570311897e-01
+4.3513984005585160e-01
+4.3485731140335260e-01
+4.3457490972424251e-01
+4.3429263499714177e-01
+4.3401048720067109e-01
+4.3372846631345091e-01
+4.3344657231410183e-01
+4.3316480518124434e-01
+4.3288316489349909e-01
+4.3260165142948648e-01
+4.3232026476782720e-01
+4.3203900488714175e-01
+4.3175787176605063e-01
+4.3147686538317442e-01
+4.3119598571713369e-01
+4.3091523274654897e-01
+4.3063460645004081e-01
+4.3035410680622976e-01
+4.3007373379373637e-01
+4.2979348739118117e-01
+4.2951336757718472e-01
+4.2923337433036757e-01
+4.2895350762935025e-01
+4.2867376745275332e-01
+4.2839415377919732e-01
+4.2811466658730285e-01
+4.2783530585569035e-01
+4.2755607156298048e-01
+4.2727696368779378e-01
+4.2699798220875068e-01
+4.2671912710447180e-01
+4.2644039835357772e-01
+4.2616179593468900e-01
+4.2588331982642613e-01
+4.2560497000740966e-01
+4.2532674645626012e-01
+4.2504864915159812e-01
+4.2477067807204422e-01
+4.2449283319621889e-01
+4.2421511450274274e-01
+4.2393752197023626e-01
+4.2366005557732000e-01
+4.2338271530261457e-01
+4.2310550112474049e-01
+4.2282841302231833e-01
+4.2255145097396857e-01
+4.2227461495831181e-01
+4.2199790495396861e-01
+4.2172132093955950e-01
+4.2144486289370497e-01
+4.2116853079502570e-01
+4.2089232462214210e-01
+4.2061624435367478e-01
+4.2034028996824430e-01
+4.2006446144447118e-01
+4.1978875876097599e-01
+4.1951318189637921e-01
+4.1923773082930149e-01
+4.1896240553836334e-01
+4.1868720600218529e-01
+4.1841213219938789e-01
+4.1813718410859169e-01
+4.1786236170841723e-01
+4.1758766497748512e-01
+4.1731309389441584e-01
+4.1703864843782990e-01
+4.1676432858634799e-01
+4.1649013431859050e-01
+4.1621606561317809e-01
+4.1594212244873124e-01
+4.1566830480387051e-01
+4.1539461265721650e-01
+4.1512104598738975e-01
+4.1484760477301069e-01
+4.1457428899269999e-01
+4.1430109862507819e-01
+4.1402803364876578e-01
+4.1375509404238336e-01
+4.1348227978455143e-01
+4.1320959085389058e-01
+4.1293702722902137e-01
+4.1266458888856428e-01
+4.1239227581113991e-01
+4.1212008797536875e-01
+4.1184802535987142e-01
+4.1157608794326850e-01
+4.1130427570418038e-01
+4.1103258862122777e-01
+4.1076102667303116e-01
+4.1048958983821104e-01
+4.1021827809538802e-01
+4.0994709142318264e-01
+4.0967602980021545e-01
+4.0940509320510698e-01
+4.0913428161647780e-01
+4.0886359501294844e-01
+4.0859303337313951e-01
+4.0832259667567145e-01
+4.0805228489916484e-01
+4.0778209802224030e-01
+4.0751203602351826e-01
+4.0724209888161939e-01
+4.0697228657516415e-01
+4.0670259908277312e-01
+4.0643303638306688e-01
+4.0616359845466588e-01
+4.0589428527619076e-01
+4.0562509682626208e-01
+4.0535603308350032e-01
+4.0508709402652604e-01
+4.0481827963395983e-01
+4.0454958988442219e-01
+4.0428102475653366e-01
+4.0401258422891484e-01
+4.0374426828018628e-01
+4.0347607688896847e-01
+4.0320801003388201e-01
+4.0294006769354740e-01
+4.0267224984658523e-01
+4.0240455647161599e-01
+4.0213698754726035e-01
+4.0186954305213873e-01
+4.0160222296487169e-01
+4.0133502726407988e-01
+4.0106795592838373e-01
+4.0080100893640391e-01
+4.0053418626676079e-01
+4.0026748789807509e-01
+4.0000091380896730e-01
+3.9973446397805790e-01
+3.9946813838396755e-01
+3.9920193700531675e-01
+3.9893585982072599e-01
+3.9866990680881592e-01
+3.9840407794820698e-01
+3.9813837321751977e-01
+3.9787279259537489e-01
+3.9760733606039284e-01
+3.9734200359119420e-01
+3.9707679516639943e-01
+3.9681171076462912e-01
+3.9654675036450387e-01
+3.9628191394464418e-01
+3.9601720148367064e-01
+3.9575261296020370e-01
+3.9548814835286400e-01
+3.9522380764027210e-01
+3.9495959080104848e-01
+3.9469549781381369e-01
+3.9443152865718833e-01
+3.9416768330979290e-01
+3.9390396175024800e-01
+3.9364036395717411e-01
+3.9337688990919184e-01
+3.9311353958492168e-01
+3.9285031296298423e-01
+3.9258721002199998e-01
+3.9232423074058959e-01
+3.9206137509737349e-01
+3.9179864307097223e-01
+3.9153603464000647e-01
+3.9127354978309664e-01
+3.9101118847886335e-01
+3.9074895070592713e-01
+3.9048683644290855e-01
+3.9022484566842808e-01
+3.8996297836110638e-01
+3.8970123449956390e-01
+3.8943961406242122e-01
+3.8917811702829896e-01
+3.8891674337581755e-01
+3.8865549308359759e-01
+3.8839436613025968e-01
+3.8813336249442432e-01
+3.8787248215471198e-01
+3.8761172508974334e-01
+3.8735109127813888e-01
+3.8709058069851915e-01
+3.8683019332950475e-01
+3.8656992914971611e-01
+3.8630978813777389e-01
+3.8604977027229859e-01
+3.8578987553191080e-01
+3.8553010389523101e-01
+3.8527045534087978e-01
+3.8501092984747770e-01
+3.8475152739364527e-01
+3.8449224795800307e-01
+3.8423309151917162e-01
+3.8397405805577145e-01
+3.8371514754642322e-01
+3.8345635996974731e-01
+3.8319769530436443e-01
+3.8293915352889496e-01
+3.8268073462195962e-01
+3.8242243856217883e-01
+3.8216426532817321e-01
+3.8190621489856330e-01
+3.8164828725196964e-01
+3.8139048236701273e-01
+3.8113280022231316e-01
+3.8087524079649149e-01
+3.8061780406816820e-01
+3.8036049001596395e-01
+3.8010329861849917e-01
+3.7984622985439453e-01
+3.7958928370227046e-01
+3.7933246014074762e-01
+3.7907575914844643e-01
+3.7881918070398757e-01
+3.7856272478599146e-01
+3.7830639137307875e-01
+3.7805018044386995e-01
+3.7779409197698555e-01
+3.7753812595104619e-01
+3.7728228234467243e-01
+3.7702656113648469e-01
+3.7677096230510365e-01
+3.7651548582914979e-01
+3.7626013168724370e-01
+3.7600489985800584e-01
+3.7574979032005684e-01
+3.7549480305201727e-01
+3.7523993803250760e-01
+3.7498519524014839e-01
+3.7473057465356024e-01
+3.7447607625136364e-01
+3.7422170001217914e-01
+3.7396744591462738e-01
+3.7371331393732876e-01
+3.7345930405890398e-01
+3.7320541625797349e-01
+3.7295165051315787e-01
+3.7269800680307763e-01
+3.7244448510635342e-01
+3.7219108540160567e-01
+3.7193780766745493e-01
+3.7168465188252187e-01
+3.7143161802542690e-01
+3.7117870607479064e-01
+3.7092591600923364e-01
+3.7067324780737643e-01
+3.7042070144783956e-01
+3.7016827690924359e-01
+3.6991597417020899e-01
+3.6966379320935644e-01
+3.6941173400530641e-01
+3.6915979653667946e-01
+3.6890798078209613e-01
+3.6865628672017697e-01
+3.6840471432954253e-01
+3.6815326358881334e-01
+3.6790193447660996e-01
+3.6765072697155299e-01
+3.6739964105226292e-01
+3.6714867669736029e-01
+3.6689783388546571e-01
+3.6664711259519966e-01
+3.6639651280518271e-01
+3.6614603449403538e-01
+3.6589567764037828e-01
+3.6564544222283191e-01
+3.6539532822001686e-01
+3.6514533561055362e-01
+3.6489546437306281e-01
+3.6464571448616490e-01
+3.6439608592848050e-01
+3.6414657867863015e-01
+3.6389719271523435e-01
+3.6364792801691365e-01
+3.6339878456228869e-01
+3.6314976232997992e-01
+3.6290086129860788e-01
+3.6265208144679323e-01
+3.6240342275315640e-01
+3.6215488519631800e-01
+3.6190646875489857e-01
+3.6165817340751866e-01
+3.6140999913279875e-01
+3.6116194590935952e-01
+3.6091401371582138e-01
+3.6066620253080495e-01
+3.6041851233293082e-01
+3.6017094310081943e-01
+3.5992349481309138e-01
+3.5967616744836728e-01
+3.5942896098526755e-01
+3.5918187540241286e-01
+3.5893491067842370e-01
+3.5868806679192061e-01
+3.5844134372152414e-01
+3.5819474144585484e-01
+3.5794825994353330e-01
+3.5770189919318002e-01
+3.5745565917341554e-01
+3.5720953986286041e-01
+3.5696354124013524e-01
+3.5671766328386051e-01
+3.5647190597265682e-01
+3.5622626928514467e-01
+3.5598075319994460e-01
+3.5573535769567721e-01
+3.5549008275096305e-01
+3.5524492834442262e-01
+3.5499989445467650e-01
+3.5475498106034520e-01
+3.5451018814004925e-01
+3.5426551567240933e-01
+3.5402096363604585e-01
+3.5377653200957943e-01
+3.5353222077163055e-01
+3.5328802990081987e-01
+3.5304395937576782e-01
+3.5280000917509496e-01
+3.5255617927742194e-01
+3.5231246966136925e-01
+3.5206888030555739e-01
+3.5182541118860694e-01
+3.5158206228913852e-01
+3.5133883358577256e-01
+3.5109572505712966e-01
+3.5085273668183031e-01
+3.5060986843849523e-01
+3.5036712030574479e-01
+3.5012449226219960e-01
+3.4988198428648026e-01
+3.4963959635720726e-01
+3.4939732845300109e-01
+3.4915518055248240e-01
+3.4891315263427175e-01
+3.4867124467698957e-01
+3.4842945665925651e-01
+3.4818778855969307e-01
+3.4794624035691984e-01
+3.4770481202955728e-01
+3.4746350355622607e-01
+3.4722231491554661e-01
+3.4698124608613956e-01
+3.4674029704662546e-01
+3.4649946777562479e-01
+3.4625875825175811e-01
+3.4601816845364602e-01
+3.4577769835990907e-01
+3.4553734794916774e-01
+3.4529711720004264e-01
+3.4505700609115425e-01
+3.4481701460112318e-01
+3.4457714270856998e-01
+3.4433739039211519e-01
+3.4409775763037931e-01
+3.4385824440198293e-01
+3.4361885068554660e-01
+3.4337957645969086e-01
+3.4314042170303627e-01
+3.4290138639420331e-01
+3.4266247051181264e-01
+3.4242367403448470e-01
+3.4218499694084009e-01
+3.4194643920949941e-01
+3.4170800081908309e-01
+3.4146968174821174e-01
+3.4123148197550596e-01
+3.4099340147958618e-01
+3.4075544023907306e-01
+3.4051759823258709e-01
+3.4027987543874882e-01
+3.4004227183617880e-01
+3.3980478740349762e-01
+3.3956742211932572e-01
+3.3933017596228376e-01
+3.3909304891099229e-01
+3.3885604094407173e-01
+3.3861915204014276e-01
+3.3838238217782590e-01
+3.3814573133574166e-01
+3.3790919949251053e-01
+3.3767278662675321e-01
+3.3743649271709014e-01
+3.3720031774214193e-01
+3.3696426168052906e-01
+3.3672832451087215e-01
+3.3649250621179172e-01
+3.3625680676190828e-01
+3.3602122613984481e-01
+3.3578576433754487e-01
+3.3555042139149815e-01
+3.3531519734704318e-01
+3.3508009219829638e-01
+3.3484510584172011e-01
+3.3461023816529095e-01
+3.3437548912877380e-01
+3.3414085877296501e-01
+3.3390634714007705e-01
+3.3367195423624729e-01
+3.3343768004331026e-01
+3.3320352453844992e-01
+3.3296948767214429e-01
+3.3273556938440302e-01
+3.3250176962686112e-01
+3.3226808839198679e-01
+3.3203452568123154e-01
+3.3180108150168630e-01
+3.3156775587166898e-01
+3.3133454880932023e-01
+3.3110146028544546e-01
+3.3086849021516851e-01
+3.3063563851510153e-01
+3.3040290516307363e-01
+3.3017029017991834e-01
+3.2993779358463193e-01
+3.2970541537795989e-01
+3.2947315555316353e-01
+3.2924101409425693e-01
+3.2900899095136193e-01
+3.2877708606689354e-01
+3.2854529939507815e-01
+3.2831363091470700e-01
+3.2808208060836530e-01
+3.2785064848366291e-01
+3.2761933457888970e-01
+3.2738813892879409e-01
+3.2715706149282486e-01
+3.2692610217527895e-01
+3.2669526088898249e-01
+3.2646453761560340e-01
+3.2623393236632975e-01
+3.2600344515323038e-01
+3.2577307599133132e-01
+3.2554282489621850e-01
+3.2531269185479461e-01
+3.2508267679162944e-01
+3.2485277962416093e-01
+3.2462300030920144e-01
+3.2439333885387756e-01
+3.2416379526841743e-01
+3.2393436956041421e-01
+3.2370506173544872e-01
+3.2347587179264531e-01
+3.2324679968377518e-01
+3.2301784533938249e-01
+3.2278900870015231e-01
+3.2256028974813139e-01
+3.2233168847585891e-01
+3.2210320488785210e-01
+3.2187483901583464e-01
+3.2164659089377051e-01
+3.2141846049319661e-01
+3.2119044770249472e-01
+3.2096255240978544e-01
+3.2073477458990346e-01
+3.2050711428669937e-01
+3.2027957154054915e-01
+3.2005214634993756e-01
+3.1982483869372358e-01
+3.1959764854564071e-01
+3.1937057585819256e-01
+3.1914362057829776e-01
+3.1891678266242990e-01
+3.1869006208975414e-01
+3.1846345884315658e-01
+3.1823697292485792e-01
+3.1801060436392875e-01
+3.1778435318763781e-01
+3.1755821935975631e-01
+3.1733220279138180e-01
+3.1710630339877099e-01
+3.1688052115348486e-01
+3.1665485605415356e-01
+3.1642930810423975e-01
+3.1620387732784189e-01
+3.1597856375469002e-01
+3.1575336738031512e-01
+3.1552828811530853e-01
+3.1530332585825072e-01
+3.1507848055557847e-01
+3.1485375222302464e-01
+3.1462914088132427e-01
+3.1440464654363076e-01
+3.1418026921654313e-01
+3.1395600889989139e-01
+3.1373186553696009e-01
+3.1350783904212581e-01
+3.1328392934272475e-01
+3.1306013642752040e-01
+3.1283646030314849e-01
+3.1261290097965194e-01
+3.1238945847592242e-01
+3.1216613281145855e-01
+3.1194292396033030e-01
+3.1171983182800872e-01
+3.1149685631752472e-01
+3.1127399739437173e-01
+3.1105125508031833e-01
+3.1082862939708589e-01
+3.1060612034766005e-01
+3.1038372792502489e-01
+3.1016145211454371e-01
+3.0993929286482402e-01
+3.0971725011328777e-01
+3.0949532380833122e-01
+3.0927351392820002e-01
+3.0905182045646845e-01
+3.0883024339572129e-01
+3.0860878277848508e-01
+3.0838743863643708e-01
+3.0816621092959362e-01
+3.0794509955069277e-01
+3.0772410439810471e-01
+3.0750322544925657e-01
+3.0728246272563337e-01
+3.0706181624752132e-01
+3.0684128602662114e-01
+3.0662087207186495e-01
+3.0640057436744800e-01
+3.0618039282715670e-01
+3.0596032735298867e-01
+3.0574037789323072e-01
+3.0552054447222815e-01
+3.0530082712042145e-01
+3.0508122584660807e-01
+3.0486174063841187e-01
+3.0464237147901280e-01
+3.0442311831551261e-01
+3.0420398107402857e-01
+3.0398495969082306e-01
+3.0376605415807983e-01
+3.0354726448668440e-01
+3.0332859068279067e-01
+3.0311003273840953e-01
+3.0289159064269544e-01
+3.0267326436614356e-01
+3.0245505384725724e-01
+3.0223695902264985e-01
+3.0201897985881881e-01
+3.0180111635272655e-01
+3.0158336850293405e-01
+3.0136573631044034e-01
+3.0114821977772432e-01
+3.0093081889797918e-01
+3.0071353361190784e-01
+3.0049636384183637e-01
+3.0027930952883786e-01
+3.0006237067257641e-01
+2.9984554728404689e-01
+2.9962883936767343e-01
+2.9941224691612273e-01
+2.9919576991966029e-01
+2.9897940833820275e-01
+2.9876316209942738e-01
+2.9854703113360859e-01
+2.9833101541812762e-01
+2.9811511496019250e-01
+2.9789932976672162e-01
+2.9768365984012157e-01
+2.9746810518114059e-01
+2.9725266577399473e-01
+2.9703734154883177e-01
+2.9682213242501038e-01
+2.9660703834813740e-01
+2.9639205931285084e-01
+2.9617719531933578e-01
+2.9596244637267383e-01
+2.9574781248336729e-01
+2.9553329365758074e-01
+2.9531888984604326e-01
+2.9510460096287239e-01
+2.9489042693193512e-01
+2.9467636774175171e-01
+2.9446242340565132e-01
+2.9424859393243807e-01
+2.9403487931522931e-01
+2.9382127954362924e-01
+2.9360779458825231e-01
+2.9339442438267288e-01
+2.9318116885721529e-01
+2.9296802797324889e-01
+2.9275500172795588e-01
+2.9254209012068072e-01
+2.9232929315298206e-01
+2.9211661082794366e-01
+2.9190404314019519e-01
+2.9169159002895184e-01
+2.9147925141118292e-01
+2.9126702722084458e-01
+2.9105491745314577e-01
+2.9084292211703544e-01
+2.9063104121970068e-01
+2.9041927476473833e-01
+2.9020762275403256e-01
+2.8999608514752057e-01
+2.8978466185470936e-01
+2.8957335278692914e-01
+2.8936215792053793e-01
+2.8915107727859307e-01
+2.8894011088106702e-01
+2.8872925871974026e-01
+2.8851852077455609e-01
+2.8830789701650766e-01
+2.8809738738302715e-01
+2.8788699180378335e-01
+2.8767671023223690e-01
+2.8746654267248783e-01
+2.8725648913480156e-01
+2.8704654961783665e-01
+2.8683672410570793e-01
+2.8662701257957085e-01
+2.8641741499130924e-01
+2.8620793127089145e-01
+2.8599856135469159e-01
+2.8578930522913781e-01
+2.8558016290263166e-01
+2.8537113438075656e-01
+2.8516221965759481e-01
+2.8495341872430141e-01
+2.8474473155359026e-01
+2.8453615807715582e-01
+2.8432769822180171e-01
+2.8411935193953264e-01
+2.8391111921526946e-01
+2.8370300003748028e-01
+2.8349499441494436e-01
+2.8328710237229326e-01
+2.8307932392370999e-01
+2.8287165900085159e-01
+2.8266410749750875e-01
+2.8245666932922403e-01
+2.8224934450243494e-01
+2.8204213304703724e-01
+2.8183503497589285e-01
+2.8162805026225568e-01
+2.8142117887354101e-01
+2.8121442076756775e-01
+2.8100777588908810e-01
+2.8080124418361452e-01
+2.8059482562428856e-01
+2.8038852020672728e-01
+2.8018232792727954e-01
+2.7997624878292865e-01
+2.7977028277096183e-01
+2.7956442987573549e-01
+2.7935869002545294e-01
+2.7915306313315930e-01
+2.7894754913722136e-01
+2.7874214803757780e-01
+2.7853685984330051e-01
+2.7833168456128660e-01
+2.7812662219534545e-01
+2.7792167274602125e-01
+2.7771683616118920e-01
+2.7751211234407008e-01
+2.7730750120519732e-01
+2.7710300272855887e-01
+2.7689861693493217e-01
+2.7669434384139330e-01
+2.7649018344691534e-01
+2.7628613574526611e-01
+2.7608220070673611e-01
+2.7587837824190387e-01
+2.7567466825294767e-01
+2.7547107069273008e-01
+2.7526758558914527e-01
+2.7506421297438749e-01
+2.7486095284796369e-01
+2.7465780518049976e-01
+2.7445476993891815e-01
+2.7425184706610306e-01
+2.7404903649236512e-01
+2.7384633815726034e-01
+2.7364375204501185e-01
+2.7344127815316205e-01
+2.7323891648087206e-01
+2.7303666703160501e-01
+2.7283452980894118e-01
+2.7263250478140494e-01
+2.7243059186339591e-01
+2.7222879096740077e-01
+2.7202710206003333e-01
+2.7182552515774505e-01
+2.7162406027562758e-01
+2.7142270739865582e-01
+2.7122146649535789e-01
+2.7102033753168520e-01
+2.7081932046151858e-01
+2.7061841523497610e-01
+2.7041762180807510e-01
+2.7021694015326958e-01
+2.7001637024608360e-01
+2.6981591207743633e-01
+2.6961556566304135e-01
+2.6941533101823445e-01
+2.6921520810227556e-01
+2.6901519682062164e-01
+2.6881529708268764e-01
+2.6861550885840740e-01
+2.6841583215221204e-01
+2.6821626696841538e-01
+2.6801681330860555e-01
+2.6781747117346150e-01
+2.6761824054442251e-01
+2.6741912134681883e-01
+2.6722011349621433e-01
+2.6702121693883124e-01
+2.6682243167240893e-01
+2.6662375769950358e-01
+2.6642519501998019e-01
+2.6622674363101290e-01
+2.6602840352442170e-01
+2.6583017463737335e-01
+2.6563205687452340e-01
+2.6543405015430260e-01
+2.6523615447345777e-01
+2.6503836985557155e-01
+2.6484069631447843e-01
+2.6464313383416571e-01
+2.6444568239275329e-01
+2.6424834195216029e-01
+2.6405111244589624e-01
+2.6385399380575830e-01
+2.6365698599234544e-01
+2.6346008899626344e-01
+2.6326330280974120e-01
+2.6306662742743586e-01
+2.6287006284551201e-01
+2.6267360905128773e-01
+2.6247726598076365e-01
+2.6228103355153126e-01
+2.6208491169819365e-01
+2.6188890040986218e-01
+2.6169299968654136e-01
+2.6149720952961203e-01
+2.6130152994297440e-01
+2.6110596092908928e-01
+2.6091050244463848e-01
+2.6071515439660481e-01
+2.6051991669504287e-01
+2.6032478931502057e-01
+2.6012977227369694e-01
+2.5993486558410062e-01
+2.5974006922986503e-01
+2.5954538318358156e-01
+2.5935080740957273e-01
+2.5915634184450304e-01
+2.5896198641943774e-01
+2.5876774108723727e-01
+2.5857360584241340e-01
+2.5837958068407707e-01
+2.5818566560864203e-01
+2.5799186060947049e-01
+2.5779816567646791e-01
+2.5760458075878612e-01
+2.5741110577805892e-01
+2.5721774066248343e-01
+2.5702448538543365e-01
+2.5683133993803858e-01
+2.5663830431454859e-01
+2.5644537852003418e-01
+2.5625256256169104e-01
+2.5605985641324569e-01
+2.5586725998162763e-01
+2.5567477316740261e-01
+2.5548239592060751e-01
+2.5529012824960573e-01
+2.5509797016567898e-01
+2.5490592167439519e-01
+2.5471398277729879e-01
+2.5452215346634988e-01
+2.5433043366980945e-01
+2.5413882328975335e-01
+2.5394732224707134e-01
+2.5375593053225531e-01
+2.5356464815179242e-01
+2.5337347510772940e-01
+2.5318241139285619e-01
+2.5299145699789904e-01
+2.5280061188240022e-01
+2.5260987596758355e-01
+2.5241924917567443e-01
+2.5222873147566255e-01
+2.5203832287086830e-01
+2.5184802336358741e-01
+2.5165783294331262e-01
+2.5146775159403317e-01
+2.5127777928941836e-01
+2.5108791596336349e-01
+2.5089816154026401e-01
+2.5070851596370175e-01
+2.5051897921905525e-01
+2.5032955129734902e-01
+2.5014023219502474e-01
+2.4995102191546256e-01
+2.4976192045915893e-01
+2.4957292777710655e-01
+2.4938404378241294e-01
+2.4919526839411324e-01
+2.4900660158231208e-01
+2.4881804334006327e-01
+2.4862959366271842e-01
+2.4844125255449021e-01
+2.4825302002170552e-01
+2.4806489604080945e-01
+2.4787688052020715e-01
+2.4768897336004214e-01
+2.4750117450848041e-01
+2.4731348397780309e-01
+2.4712590178349886e-01
+2.4693842792121390e-01
+2.4675106237076552e-01
+2.4656380510748277e-01
+2.4637665607511980e-01
+2.4618961520260263e-01
+2.4600268242674700e-01
+2.4581585771823072e-01
+2.4562914105675016e-01
+2.4544253243166947e-01
+2.4525603185536859e-01
+2.4506963934258710e-01
+2.4488335486280891e-01
+2.4469717832252624e-01
+2.4451110962653830e-01
+2.4432514872965341e-01
+2.4413929562825953e-01
+2.4395355032000693e-01
+2.4376791280253327e-01
+2.4358238307347013e-01
+2.4339696112013218e-01
+2.4321164688390515e-01
+2.4302644029342294e-01
+2.4284134128643162e-01
+2.4265634982336634e-01
+2.4247146586859186e-01
+2.4228668940960998e-01
+2.4210202046750245e-01
+2.4191745906280981e-01
+2.4173300515884893e-01
+2.4154865866935232e-01
+2.4136441951103754e-01
+2.4118028764065461e-01
+2.4099626303546856e-01
+2.4081234567796872e-01
+2.4062853557425593e-01
+2.4044483273726480e-01
+2.4026123715530906e-01
+2.4007774875256654e-01
+2.3989436744335887e-01
+2.3971109316758810e-01
+2.3952792590387334e-01
+2.3934486563506485e-01
+2.3916191236342163e-01
+2.3897906610872860e-01
+2.3879632688202918e-01
+2.3861369460886361e-01
+2.3843116916901880e-01
+2.3824875046243291e-01
+2.3806643848982911e-01
+2.3788423328270375e-01
+2.3770213485661640e-01
+2.3752014318366213e-01
+2.3733825822847210e-01
+2.3715647994769898e-01
+2.3697480828539996e-01
+2.3679324318516287e-01
+2.3661178460382690e-01
+2.3643043251070070e-01
+2.3624918687817470e-01
+2.3606804770364367e-01
+2.3588701499847017e-01
+2.3570608875970711e-01
+2.3552526891013020e-01
+2.3534455534876403e-01
+2.3516394800190257e-01
+2.3498344687368872e-01
+2.3480305198182916e-01
+2.3462276332751980e-01
+2.3444258088476391e-01
+2.3426250462410098e-01
+2.3408253449548677e-01
+2.3390267042869400e-01
+2.3372291235640835e-01
+2.3354326024954197e-01
+2.3336371410129372e-01
+2.3318427390404606e-01
+2.3300493964428451e-01
+2.3282571130650817e-01
+2.3264658886279935e-01
+2.3246757224813983e-01
+2.3228866139085305e-01
+2.3210985623874350e-01
+2.3193115677309462e-01
+2.3175256297866351e-01
+2.3157407484433523e-01
+2.3139569236321270e-01
+2.3121741552507330e-01
+2.3103924428191011e-01
+2.3086117856273022e-01
+2.3068321830147817e-01
+2.3050536346185949e-01
+2.3032761401803362e-01
+2.3014996995104023e-01
+2.2997243126341907e-01
+2.2979499796156247e-01
+2.2961767002025482e-01
+2.2944044735758784e-01
+2.2926332988733239e-01
+2.2908631756410985e-01
+2.2890941038603563e-01
+2.2873260835195902e-01
+2.2855591144506662e-01
+2.2837931963860472e-01
+2.2820283290188223e-01
+2.2802645118177353e-01
+2.2785017441690833e-01
+2.2767400255495257e-01
+2.2749793557324807e-01
+2.2732197345521957e-01
+2.2714611618522002e-01
+2.2697036374934057e-01
+2.2679471613294114e-01
+2.2661917329561046e-01
+2.2644373516834404e-01
+2.2626840168304421e-01
+2.2609317280045477e-01
+2.2591804850041153e-01
+2.2574302876597438e-01
+2.2556811359817922e-01
+2.2539330300497482e-01
+2.2521859697348209e-01
+2.2504399541919004e-01
+2.2486949824245109e-01
+2.2469510537340118e-01
+2.2452081680040972e-01
+2.2434663251872825e-01
+2.2417255252775800e-01
+2.2399857683169819e-01
+2.2382470543037117e-01
+2.2365093826430971e-01
+2.2347727523311714e-01
+2.2330371624597090e-01
+2.2313026128007851e-01
+2.2295691034002654e-01
+2.2278366342859224e-01
+2.2261052054176489e-01
+2.2243748167381319e-01
+2.2226454679086485e-01
+2.2209171580157872e-01
+2.2191898860894355e-01
+2.2174636516031665e-01
+2.2157384545651954e-01
+2.2140142950114231e-01
+2.2122911729216757e-01
+2.2105690882354176e-01
+2.2088480408082656e-01
+2.2071280299248067e-01
+2.2054090546292793e-01
+2.2036911141242968e-01
+2.2019742082137780e-01
+2.2002583368436829e-01
+2.1985434999794107e-01
+2.1968296976278354e-01
+2.1951169297906001e-01
+2.1934051960883300e-01
+2.1916944956631199e-01
+2.1899848276556616e-01
+2.1882761916240381e-01
+2.1865685874395527e-01
+2.1848620149860584e-01
+2.1831564741832188e-01
+2.1814519649664546e-01
+2.1797484871490050e-01
+2.1780460400600252e-01
+2.1763446229097172e-01
+2.1746442350880432e-01
+2.1729448763857953e-01
+2.1712465466492645e-01
+2.1695492457762361e-01
+2.1678529737319088e-01
+2.1661577304557586e-01
+2.1644635154230499e-01
+2.1627703277459182e-01
+2.1610781665985890e-01
+2.1593870317017769e-01
+2.1576969230275603e-01
+2.1560078405265870e-01
+2.1543197840550068e-01
+2.1526327534438419e-01
+2.1509467483655834e-01
+2.1492617681231846e-01
+2.1475778119721231e-01
+2.1458948793888111e-01
+2.1442129701511844e-01
+2.1425320840686213e-01
+2.1408522211099903e-01
+2.1391733813742012e-01
+2.1374955648691876e-01
+2.1358187708433118e-01
+2.1341429981798754e-01
+2.1324682459610830e-01
+2.1307945141451134e-01
+2.1291218029280515e-01
+2.1274501123750084e-01
+2.1257794422318246e-01
+2.1241097921932259e-01
+2.1224411617907252e-01
+2.1207735503235972e-01
+2.1191069570894427e-01
+2.1174413816660656e-01
+2.1157768238693761e-01
+2.1141132835334445e-01
+2.1124507605817161e-01
+2.1107892549825094e-01
+2.1091287665799394e-01
+2.1074692946496207e-01
+2.1058108383055488e-01
+2.1041533968759238e-01
+2.1024969702351509e-01
+2.1008415583427020e-01
+2.0991871611192939e-01
+2.0975337784281389e-01
+2.0958814101082668e-01
+2.0942300556344665e-01
+2.0925797141589644e-01
+2.0909303848794111e-01
+2.0892820674968463e-01
+2.0876347619762400e-01
+2.0859884682615540e-01
+2.0843431861850384e-01
+2.0826989155453698e-01
+2.0810556560366492e-01
+2.0794134070739864e-01
+2.0777721680283184e-01
+2.0761319383810872e-01
+2.0744927177847483e-01
+2.0728545059135015e-01
+2.0712173025827535e-01
+2.0695811077382251e-01
+2.0679459212907367e-01
+2.0663117427777455e-01
+2.0646785715323304e-01
+2.0630464069307961e-01
+2.0614152485769771e-01
+2.0597850961460504e-01
+2.0581559493782012e-01
+2.0565278081950800e-01
+2.0549006725463134e-01
+2.0532745421496523e-01
+2.0516494163485272e-01
+2.0500252944627598e-01
+2.0484021760353188e-01
+2.0467800608237621e-01
+2.0451589486011057e-01
+2.0435388392074522e-01
+2.0419197325212340e-01
+2.0403016283413231e-01
+2.0386845260451208e-01
+2.0370684248718693e-01
+2.0354533241993764e-01
+2.0338392238108313e-01
+2.0322261235631120e-01
+2.0306140233125958e-01
+2.0290029229148160e-01
+2.0273928222124329e-01
+2.0257837207527779e-01
+2.0241756177872425e-01
+2.0225685125909135e-01
+2.0209624048220962e-01
+2.0193572943675944e-01
+2.0177531810971683e-01
+2.0161500647695121e-01
+2.0145479451051265e-01
+2.0129468217704208e-01
+2.0113466942662706e-01
+2.0097475620626987e-01
+2.0081494246922466e-01
+2.0065522817973461e-01
+2.0049561330359633e-01
+2.0033609781751530e-01
+2.0017668170958794e-01
+2.0001736496542732e-01
+1.9985814753723891e-01
+1.9969902935644518e-01
+1.9954001036027727e-01
+1.9938109052148514e-01
+1.9922226982559599e-01
+1.9906354825656231e-01
+1.9890492579323088e-01
+1.9874640241325714e-01
+1.9858797807743564e-01
+1.9842965271562626e-01
+1.9827142625542379e-01
+1.9811329865265129e-01
+1.9795526989384685e-01
+1.9779733996630283e-01
+1.9763950884801620e-01
+1.9748177651095195e-01
+1.9732414292437750e-01
+1.9716660804175082e-01
+1.9700917181057745e-01
+1.9685183418189670e-01
+1.9669459511866291e-01
+1.9653745458638966e-01
+1.9638041255732175e-01
+1.9622346901659826e-01
+1.9606662395006894e-01
+1.9590987732181867e-01
+1.9575322907125295e-01
+1.9559667913752871e-01
+1.9544022747325296e-01
+1.9528387404013586e-01
+1.9512761880490243e-01
+1.9497146176526456e-01
+1.9481540293114080e-01
+1.9465944229217377e-01
+1.9450357976646582e-01
+1.9434781525659572e-01
+1.9419214869534493e-01
+1.9403658007591659e-01
+1.9388110939832956e-01
+1.9372573665057899e-01
+1.9357046180645171e-01
+1.9341528483708600e-01
+1.9326020568953120e-01
+1.9310522429383628e-01
+1.9295034058479080e-01
+1.9279555453145408e-01
+1.9264086611700812e-01
+1.9248627532530907e-01
+1.9233178214254032e-01
+1.9217738655529604e-01
+1.9202308852992547e-01
+1.9186888799046906e-01
+1.9171478485650315e-01
+1.9156077907672647e-01
+1.9140687063570477e-01
+1.9125305952007005e-01
+1.9109934571445469e-01
+1.9094572920201974e-01
+1.9079220996104523e-01
+1.9063878793555611e-01
+1.9048546305481595e-01
+1.9033223525616000e-01
+1.9017910450840259e-01
+1.9002607078799130e-01
+1.8987313407424875e-01
+1.8972029435277590e-01
+1.8956755160933567e-01
+1.8941490580444587e-01
+1.8926235686621715e-01
+1.8910990472283440e-01
+1.8895754933524891e-01
+1.8880529068954580e-01
+1.8865312877148843e-01
+1.8850106355968080e-01
+1.8834909502950181e-01
+1.8819722314925408e-01
+1.8804544785857416e-01
+1.8789376908987251e-01
+1.8774218678683052e-01
+1.8759070091885563e-01
+1.8743931145915696e-01
+1.8728801839047124e-01
+1.8713682170828480e-01
+1.8698572140629094e-01
+1.8683471743563995e-01
+1.8668380971346690e-01
+1.8653299816185984e-01
+1.8638228274909333e-01
+1.8623166346518483e-01
+1.8608114029724909e-01
+1.8593071321950427e-01
+1.8578038220271534e-01
+1.8563014721116372e-01
+1.8548000819365759e-01
+1.8532996509677105e-01
+1.8518001786823077e-01
+1.8503016645737158e-01
+1.8488041081585704e-01
+1.8473075093271296e-01
+1.8458118682810043e-01
+1.8443171851362725e-01
+1.8428234592261533e-01
+1.8413306894988368e-01
+1.8398388750553188e-01
+1.8383480156906162e-01
+1.8368581113932086e-01
+1.8353691621135684e-01
+1.8338811677072792e-01
+1.8323941280098208e-01
+1.8309080425747665e-01
+1.8294229105455992e-01
+1.8279387310579800e-01
+1.8264555036901592e-01
+1.8249732284047659e-01
+1.8234919051595125e-01
+1.8220115337585446e-01
+1.8205321139271222e-01
+1.8190536453316267e-01
+1.8175761273658719e-01
+1.8160995593442500e-01
+1.8146239407094475e-01
+1.8131492712392019e-01
+1.8116755507651844e-01
+1.8102027791148145e-01
+1.8087309561090642e-01
+1.8072600815488926e-01
+1.8057901548585695e-01
+1.8043211751214427e-01
+1.8028531414813304e-01
+1.8013860537479656e-01
+1.7999199120882678e-01
+1.7984547165852363e-01
+1.7969904668931724e-01
+1.7955271625349881e-01
+1.7940648029981307e-01
+1.7926033876732220e-01
+1.7911429159369818e-01
+1.7896833873241089e-01
+1.7882248016192856e-01
+1.7867671586304099e-01
+1.7853104581882706e-01
+1.7838547001452451e-01
+1.7823998843159222e-01
+1.7809460101418531e-01
+1.7794930768557116e-01
+1.7780410837591282e-01
+1.7765900305206619e-01
+1.7751399169266524e-01
+1.7736907427672613e-01
+1.7722425078434292e-01
+1.7707952119562578e-01
+1.7693488547812700e-01
+1.7679034357866816e-01
+1.7664589544227360e-01
+1.7650154101714935e-01
+1.7635728025462830e-01
+1.7621311310970636e-01
+1.7606903957339076e-01
+1.7592505965773358e-01
+1.7578117336115431e-01
+1.7563738060698766e-01
+1.7549368129334023e-01
+1.7535007534032276e-01
+1.7520656273402493e-01
+1.7506314347276200e-01
+1.7491981754852898e-01
+1.7477658494243398e-01
+1.7463344563343247e-01
+1.7449039957464538e-01
+1.7434744669273686e-01
+1.7420458691592522e-01
+1.7406182020211966e-01
+1.7391914652733403e-01
+1.7377656586899740e-01
+1.7363407821110124e-01
+1.7349168353994165e-01
+1.7334938182831897e-01
+1.7320717300667465e-01
+1.7306505699738464e-01
+1.7292303374343690e-01
+1.7278110322487700e-01
+1.7263926542565691e-01
+1.7249752033066623e-01
+1.7235586792579533e-01
+1.7221430819342842e-01
+1.7207284107540466e-01
+1.7193146648777138e-01
+1.7179018435361201e-01
+1.7164899464035679e-01
+1.7150789733177924e-01
+1.7136689241344980e-01
+1.7122597987676302e-01
+1.7108515971407803e-01
+1.7094443189300859e-01
+1.7080379633472395e-01
+1.7066325295624649e-01
+1.7052280170184408e-01
+1.7038244254608248e-01
+1.7024217546600728e-01
+1.7010200044949625e-01
+1.6996191749161427e-01
+1.6982192657904760e-01
+1.6968202764529974e-01
+1.6954222060336549e-01
+1.6940250538039828e-01
+1.6926288195248895e-01
+1.6912335030625297e-01
+1.6898391042726599e-01
+1.6884456229906580e-01
+1.6870530590406899e-01
+1.6856614119773441e-01
+1.6842706810428065e-01
+1.6828808654906222e-01
+1.6814919649435761e-01
+1.6801039792799410e-01
+1.6787169083618225e-01
+1.6773307519116229e-01
+1.6759455095953793e-01
+1.6745611810167058e-01
+1.6731777655543192e-01
+1.6717952625373853e-01
+1.6704136714732085e-01
+1.6690329922337660e-01
+1.6676532247328241e-01
+1.6662743687898565e-01
+1.6648964241104566e-01
+1.6635193903715240e-01
+1.6621432669523231e-01
+1.6607680530173871e-01
+1.6593937478058007e-01
+1.6580203511040326e-01
+1.6566478629295162e-01
+1.6552762832496853e-01
+1.6539056118395601e-01
+1.6525358484277536e-01
+1.6511669925893654e-01
+1.6497990435711590e-01
+1.6484320005847106e-01
+1.6470658630997811e-01
+1.6457006309111397e-01
+1.6443363038392364e-01
+1.6429728817764450e-01
+1.6416103646692357e-01
+1.6402487523893738e-01
+1.6388880442568521e-01
+1.6375282393482515e-01
+1.6361693368686550e-01
+1.6348113365375491e-01
+1.6334542382021930e-01
+1.6320980417379838e-01
+1.6307427470832139e-01
+1.6293883541753518e-01
+1.6280348625799559e-01
+1.6266822713745871e-01
+1.6253305796361794e-01
+1.6239797869413661e-01
+1.6226298932585662e-01
+1.6212808985454177e-01
+1.6199328025970752e-01
+1.6185856051337771e-01
+1.6172393058037390e-01
+1.6158939039570461e-01
+1.6145493988668111e-01
+1.6132057899619676e-01
+1.6118630770355641e-01
+1.6105212599317176e-01
+1.6091803384571471e-01
+1.6078403123674165e-01
+1.6065011813991126e-01
+1.6051629450381533e-01
+1.6038256025656061e-01
+1.6024891532978361e-01
+1.6011535968831772e-01
+1.5998189331298987e-01
+1.5984851618594201e-01
+1.5971522829460741e-01
+1.5958202962779519e-01
+1.5944892015185258e-01
+1.5931589977823893e-01
+1.5918296841105287e-01
+1.5905012599636106e-01
+1.5891737254008570e-01
+1.5878470805092043e-01
+1.5865213250578372e-01
+1.5851964585453110e-01
+1.5838724804631046e-01
+1.5825493903159937e-01
+1.5812271876154466e-01
+1.5799058718979192e-01
+1.5785854428140036e-01
+1.5772659000470385e-01
+1.5759472433294583e-01
+1.5746294725191870e-01
+1.5733125874890902e-01
+1.5719965878526015e-01
+1.5706814728373150e-01
+1.5693672416543508e-01
+1.5680538937935556e-01
+1.5667414289921730e-01
+1.5654298470092376e-01
+1.5641191477215988e-01
+1.5628093310680249e-01
+1.5615003968796573e-01
+1.5601923444684115e-01
+1.5588851729909023e-01
+1.5575788817722364e-01
+1.5562734705882625e-01
+1.5549689392892627e-01
+1.5536652877180199e-01
+1.5523625157056825e-01
+1.5510606230670876e-01
+1.5497596093098695e-01
+1.5484594736575175e-01
+1.5471602153565545e-01
+1.5458618339709632e-01
+1.5445643292389141e-01
+1.5432677009266124e-01
+1.5419719489323652e-01
+1.5406770731957320e-01
+1.5393830734729499e-01
+1.5380899490069858e-01
+1.5367976989554941e-01
+1.5355063227346397e-01
+1.5342158201788816e-01
+1.5329261911577405e-01
+1.5316374354748352e-01
+1.5303495528702665e-01
+1.5290625430542909e-01
+1.5277764054662618e-01
+1.5264911393903796e-01
+1.5252067441784764e-01
+1.5239232195492697e-01
+1.5226405653421390e-01
+1.5213587813738680e-01
+1.5200778673947971e-01
+1.5187978231411955e-01
+1.5175186481996281e-01
+1.5162403419039164e-01
+1.5149629035723400e-01
+1.5136863327274519e-01
+1.5124106290969674e-01
+1.5111357924237462e-01
+1.5098618225152677e-01
+1.5085887192176328e-01
+1.5073164823066357e-01
+1.5060451111655354e-01
+1.5047746050424460e-01
+1.5035049633212441e-01
+1.5022361858029862e-01
+1.5009682723674309e-01
+1.4997012227995074e-01
+1.4984350367170685e-01
+1.4971697137197992e-01
+1.4959052533783931e-01
+1.4946416552332001e-01
+1.4933789188218219e-01
+1.4921170436672185e-01
+1.4908560292832193e-01
+1.4895958752333482e-01
+1.4883365813710214e-01
+1.4870781476541653e-01
+1.4858205739036506e-01
+1.4845638594991004e-01
+1.4833080037326477e-01
+1.4820530060008433e-01
+1.4807988658922713e-01
+1.4795455830243504e-01
+1.4782931572361863e-01
+1.4770415886086538e-01
+1.4757908771779532e-01
+1.4745410223114233e-01
+1.4732920229413504e-01
+1.4720438781203704e-01
+1.4707965876814916e-01
+1.4695501517522777e-01
+1.4683045703313027e-01
+1.4670598429805870e-01
+1.4658159691704500e-01
+1.4645729483910791e-01
+1.4633307801708098e-01
+1.4620894640446780e-01
+1.4608489996173915e-01
+1.4596093865728393e-01
+1.4583706246043499e-01
+1.4571327134694187e-01
+1.4558956529690678e-01
+1.4546594428434412e-01
+1.4534240824367908e-01
+1.4521895709370169e-01
+1.4509559076706743e-01
+1.4497230924554494e-01
+1.4484911252169938e-01
+1.4472600058228513e-01
+1.4460297340240397e-01
+1.4448003095503578e-01
+1.4435717318988975e-01
+1.4423440002911336e-01
+1.4411171139628559e-01
+1.4398910725500144e-01
+1.4386658759716189e-01
+1.4374415241332328e-01
+1.4362180168094979e-01
+1.4349953537209684e-01
+1.4337735345070948e-01
+1.4325525585076326e-01
+1.4313324249937506e-01
+1.4301131333608244e-01
+1.4288946832644289e-01
+1.4276770743973671e-01
+1.4264603066089038e-01
+1.4252443799414427e-01
+1.4240292944076280e-01
+1.4228150494346745e-01
+1.4216016440180432e-01
+1.4203890772300656e-01
+1.4191773487592205e-01
+1.4179664585601526e-01
+1.4167564065638014e-01
+1.4155471926049804e-01
+1.4143388164941911e-01
+1.4131312778496455e-01
+1.4119245758686208e-01
+1.4107187097004639e-01
+1.4095136787910004e-01
+1.4083094829675213e-01
+1.4071061220803008e-01
+1.4059035959475877e-01
+1.4047019043630099e-01
+1.4035010470792464e-01
+1.4023010235484393e-01
+1.4011018330870187e-01
+1.3999034750777639e-01
+1.3987059491762255e-01
+1.3975092551074994e-01
+1.3963133926322066e-01
+1.3951183615922530e-01
+1.3939241618345052e-01
+1.3927307929399138e-01
+1.3915382541327709e-01
+1.3903465446345237e-01
+1.3891556640190669e-01
+1.3879656121427394e-01
+1.3867763888552953e-01
+1.3855879938925636e-01
+1.3844004269366114e-01
+1.3832136876362053e-01
+1.3820277754993412e-01
+1.3808426899964946e-01
+1.3796584306065571e-01
+1.3784749968285556e-01
+1.3772923881690807e-01
+1.3761106043477050e-01
+1.3749296453818236e-01
+1.3737495112857262e-01
+1.3725702016445201e-01
+1.3713917156848440e-01
+1.3702140526529419e-01
+1.3690372120478855e-01
+1.3678611934933937e-01
+1.3666859966807662e-01
+1.3655116215998259e-01
+1.3643380683231154e-01
+1.3631653366357227e-01
+1.3619934256034494e-01
+1.3608223341900086e-01
+1.3596520617983834e-01
+1.3584826084720431e-01
+1.3573139742895260e-01
+1.3561461590471210e-01
+1.3549791622954313e-01
+1.3538129835750443e-01
+1.3526476224107911e-01
+1.3514830783193910e-01
+1.3503193508115285e-01
+1.3491564393698910e-01
+1.3479943434692651e-01
+1.3468330627377587e-01
+1.3456725972048611e-01
+1.3445129469578349e-01
+1.3433541116790260e-01
+1.3421960904350702e-01
+1.3410388822695221e-01
+1.3398824867796255e-01
+1.3387269040648836e-01
+1.3375721341944771e-01
+1.3364181767922650e-01
+1.3352650312426737e-01
+1.3341126969549036e-01
+1.3329611734714233e-01
+1.3318104603756589e-01
+1.3306605572673458e-01
+1.3295114637908748e-01
+1.3283631795993825e-01
+1.3272157044205890e-01
+1.3260690381005075e-01
+1.3249231804810280e-01
+1.3237781310995347e-01
+1.3226338892055725e-01
+1.3214904540688346e-01
+1.3203478252634465e-01
+1.3192060025344005e-01
+1.3180649856378032e-01
+1.3169247743773760e-01
+1.3157853685720389e-01
+1.3146467679199939e-01
+1.3135089717731807e-01
+1.3123719794246211e-01
+1.3112357903672109e-01
+1.3101004044245759e-01
+1.3089658214460112e-01
+1.3078320411604610e-01
+1.3066990631783251e-01
+1.3055668870982823e-01
+1.3044355124504223e-01
+1.3033049387246581e-01
+1.3021751654177388e-01
+1.3010461920662039e-01
+1.2999180182200826e-01
+1.2987906435449204e-01
+1.2976640680531895e-01
+1.2965382918176732e-01
+1.2954133145385494e-01
+1.2942891352726368e-01
+1.2931657530322851e-01
+1.2920431672965271e-01
+1.2909213780234025e-01
+1.2898003851759499e-01
+1.2886801885353602e-01
+1.2875607877716783e-01
+1.2864421825200106e-01
+1.2853243722258864e-01
+1.2842073562679496e-01
+1.2830911340858600e-01
+1.2819757053114811e-01
+1.2808610696154707e-01
+1.2797472267706975e-01
+1.2786341767342277e-01
+1.2775219194650514e-01
+1.2764104544697880e-01
+1.2752997807712219e-01
+1.2741898974222995e-01
+1.2730808040919098e-01
+1.2719725008416727e-01
+1.2708649876860006e-01
+1.2697582643196939e-01
+1.2686523303194619e-01
+1.2675471852223136e-01
+1.2664428284350085e-01
+1.2653392593386623e-01
+1.2642364774394158e-01
+1.2631344824786325e-01
+1.2620332742250034e-01
+1.2609328524848262e-01
+1.2598332171063129e-01
+1.2587343679059460e-01
+1.2576363042890684e-01
+1.2565390253875983e-01
+1.2554425304150729e-01
+1.2543468191276005e-01
+1.2532518914910473e-01
+1.2521577473968759e-01
+1.2510643864779397e-01
+1.2499718083110302e-01
+1.2488800124406910e-01
+1.2477889983481115e-01
+1.2466987655100131e-01
+1.2456093134922908e-01
+1.2445206419644163e-01
+1.2434327506091472e-01
+1.2423456392052719e-01
+1.2412593075981773e-01
+1.2401737555742716e-01
+1.2390889825227568e-01
+1.2380049876721859e-01
+1.2369217703648409e-01
+1.2358393303564864e-01
+1.2347576674960820e-01
+1.2336767815771515e-01
+1.2325966722794635e-01
+1.2315173392667059e-01
+1.2304387821319665e-01
+1.2293610003828689e-01
+1.2282839935211295e-01
+1.2272077610377634e-01
+1.2261323024160482e-01
+1.2250576171900282e-01
+1.2239837052463129e-01
+1.2229105666206408e-01
+1.2218382012027190e-01
+1.2207666083258242e-01
+1.2196957871921528e-01
+1.2186257371723520e-01
+1.2175564579982268e-01
+1.2164879494473203e-01
+1.2154202112632290e-01
+1.2143532431467155e-01
+1.2132870447860995e-01
+1.2122216157289498e-01
+1.2111569554167274e-01
+1.2100930633124288e-01
+1.2090299390547271e-01
+1.2079675823599854e-01
+1.2069059929428964e-01
+1.2058451705101342e-01
+1.2047851147660739e-01
+1.2037258253493262e-01
+1.2026673017511430e-01
+1.2016095434439235e-01
+1.2005525499473980e-01
+1.1994963208435437e-01
+1.1984408557300959e-01
+1.1973861543826293e-01
+1.1963322167164733e-01
+1.1952790425988995e-01
+1.1942266315003772e-01
+1.1931749827079727e-01
+1.1921240955536007e-01
+1.1910739695604868e-01
+1.1900246043023489e-01
+1.1889759995106437e-01
+1.1879281552863294e-01
+1.1868810717717987e-01
+1.1858347486074765e-01
+1.1847891847455676e-01
+1.1837443791254482e-01
+1.1827003312953015e-01
+1.1816570413019692e-01
+1.1806145091768683e-01
+1.1795727347086940e-01
+1.1785317175689212e-01
+1.1774914573648558e-01
+1.1764519534263214e-01
+1.1754132050078073e-01
+1.1743752115488858e-01
+1.1733379729425213e-01
+1.1723014891456916e-01
+1.1712657599140210e-01
+1.1702307847152951e-01
+1.1691965630028479e-01
+1.1681630943648827e-01
+1.1671303785047327e-01
+1.1660984151121816e-01
+1.1650672037305794e-01
+1.1640367438294050e-01
+1.1630070349355204e-01
+1.1619780768417041e-01
+1.1609498694166476e-01
+1.1599224123908103e-01
+1.1588957051404170e-01
+1.1578697469889840e-01
+1.1568445374350883e-01
+1.1558200762382675e-01
+1.1547963631804638e-01
+1.1537733980647959e-01
+1.1527511807132228e-01
+1.1517297109054321e-01
+1.1507089880368940e-01
+1.1496890113006691e-01
+1.1486697799724226e-01
+1.1476512937340813e-01
+1.1466335523896508e-01
+1.1456165557557929e-01
+1.1446003036830438e-01
+1.1435847960241820e-01
+1.1425700324277546e-01
+1.1415560122247796e-01
+1.1405427347261346e-01
+1.1395301993895034e-01
+1.1385184058086668e-01
+1.1375073536091734e-01
+1.1364970426679584e-01
+1.1354874730002201e-01
+1.1344786445073460e-01
+1.1334705565089984e-01
+1.1324632081419088e-01
+1.1314565987064712e-01
+1.1304507279626171e-01
+1.1294455957498860e-01
+1.1284412018797318e-01
+1.1274375461180559e-01
+1.1264346282177125e-01
+1.1254324477394148e-01
+1.1244310040582629e-01
+1.1234302965628611e-01
+1.1224303248519397e-01
+1.1214310886448581e-01
+1.1204325876638302e-01
+1.1194348216385942e-01
+1.1184377903012943e-01
+1.1174414932941533e-01
+1.1164459299951376e-01
+1.1154510997365320e-01
+1.1144570020518942e-01
+1.1134636368153826e-01
+1.1124710039271000e-01
+1.1114791031247588e-01
+1.1104879339826042e-01
+1.1094974960655653e-01
+1.1085077889162090e-01
+1.1075188120637053e-01
+1.1065305650398402e-01
+1.1055430473919475e-01
+1.1045562586727770e-01
+1.1035701985234685e-01
+1.1025848668571997e-01
+1.1016002636360016e-01
+1.1006163885309354e-01
+1.0996332406992045e-01
+1.0986508192629596e-01
+1.0976691237814906e-01
+1.0966881542726233e-01
+1.0957079107493130e-01
+1.0947283929286182e-01
+1.0937496003426588e-01
+1.0927715325221818e-01
+1.0917941890064051e-01
+1.0908175693376095e-01
+1.0898416730592284e-01
+1.0888664997183968e-01
+1.0878920488643523e-01
+1.0869183201833497e-01
+1.0859453136142294e-01
+1.0849730291084771e-01
+1.0840014662219440e-01
+1.0830306240780288e-01
+1.0820605018248036e-01
+1.0810910991601905e-01
+1.0801224161405869e-01
+1.0791544527621293e-01
+1.0781872086142398e-01
+1.0772206831324356e-01
+1.0762548757878199e-01
+1.0752897861727176e-01
+1.0743254139050436e-01
+1.0733617586041355e-01
+1.0723988198920707e-01
+1.0714365973948423e-01
+1.0704750908445575e-01
+1.0695143000941962e-01
+1.0685542249724302e-01
+1.0675948649220109e-01
+1.0666362191232914e-01
+1.0656782868225619e-01
+1.0647210677225782e-01
+1.0637645617068307e-01
+1.0628087686431403e-01
+1.0618536883422389e-01
+1.0608993206007945e-01
+1.0599456650187100e-01
+1.0589927208003508e-01
+1.0580404871145513e-01
+1.0570889635091696e-01
+1.0561381499820022e-01
+1.0551880465361387e-01
+1.0542386528980628e-01
+1.0532899685981459e-01
+1.0523419931655260e-01
+1.0513947261491392e-01
+1.0504481671061203e-01
+1.0495023155865239e-01
+1.0485571711140221e-01
+1.0476127332071487e-01
+1.0466690015451925e-01
+1.0457259761450222e-01
+1.0447836570533528e-01
+1.0438420438721796e-01
+1.0429011356532777e-01
+1.0419609314546982e-01
+1.0410214309037293e-01
+1.0400826340484373e-01
+1.0391445408991093e-01
+1.0382071511274352e-01
+1.0372704642584780e-01
+1.0363344798168000e-01
+1.0353991973273056e-01
+1.0344646163151763e-01
+1.0335307363437700e-01
+1.0325975570602201e-01
+1.0316650781242816e-01
+1.0307332992531064e-01
+1.0298022202378655e-01
+1.0288718408596939e-01
+1.0279421606759967e-01
+1.0270131790717772e-01
+1.0260848954542474e-01
+1.0251573094298548e-01
+1.0242304206952355e-01
+1.0233042289614447e-01
+1.0223787339965680e-01
+1.0214539355827919e-01
+1.0205298333945934e-01
+1.0196064268593900e-01
+1.0186837153727393e-01
+1.0177616984411501e-01
+1.0168403757202869e-01
+1.0159197468837765e-01
+1.0149998117245346e-01
+1.0140805701312915e-01
+1.0131620219452930e-01
+1.0122441666129389e-01
+1.0113270033938478e-01
+1.0104105316351293e-01
+1.0094947510630413e-01
+1.0085796615050810e-01
+1.0076652627413443e-01
+1.0067515544382402e-01
+1.0058385362443518e-01
+1.0049262077555858e-01
+1.0040145684940187e-01
+1.0031036179783620e-01
+1.0021933557639806e-01
+1.0012837814369240e-01
+1.0003748946087221e-01
+9.9946669509415803e-02
+9.9855918280846168e-02
+9.9765235756252554e-02
+9.9674621869588614e-02
+9.9584076541639865e-02
+9.9493599711183239e-02
+9.9403191362128135e-02
+9.9312851485149137e-02
+9.9222580060723653e-02
+9.9132377054426471e-02
+9.9042242430116292e-02
+9.8952176141927015e-02
+9.8862178135508225e-02
+9.8772248357887699e-02
+9.8682386770608921e-02
+9.8592593342707632e-02
+9.8502868044094735e-02
+9.8413210848504712e-02
+9.8323621730780783e-02
+9.8234100658174450e-02
+9.8144647578012806e-02
+9.8055262434560572e-02
+9.7965945181652012e-02
+9.7876695787706428e-02
+9.7787514222543406e-02
+9.7698400459376764e-02
+9.7609354474506277e-02
+9.7520376241938461e-02
+9.7431465713535809e-02
+9.7342622829226635e-02
+9.7253847533155316e-02
+9.7165139790843916e-02
+9.7076499574399885e-02
+9.6987926857514492e-02
+9.6899421618224096e-02
+9.6810983835045911e-02
+9.6722613469868005e-02
+9.6634310458141984e-02
+9.6546074734087411e-02
+9.6457906255367265e-02
+9.6369805001855213e-02
+9.6281770953622045e-02
+9.6193804084158549e-02
+9.6105904363253725e-02
+9.6018071757024884e-02
+9.5930306212795635e-02
+9.5842607671834890e-02
+9.5754976084102009e-02
+9.5667411424554011e-02
+9.5579913672538028e-02
+9.5492482801920908e-02
+9.5405118777480202e-02
+9.5317821562882349e-02
+9.5230591116055682e-02
+9.5143427389263707e-02
+9.5056330335089048e-02
+9.4969299911857930e-02
+9.4882336081268920e-02
+9.4795438807936866e-02
+9.4708608072084088e-02
+9.4621843859199611e-02
+9.4535146143720314e-02
+9.4448514866790304e-02
+9.4361949963473996e-02
+9.4275451382150349e-02
+9.4189019094242099e-02
+9.4102653073567868e-02
+9.4016353296441230e-02
+9.3930119741742299e-02
+9.3843952385959231e-02
+9.3757851178362439e-02
+9.3671816051547951e-02
+9.3585846943646633e-02
+9.3499943825714624e-02
+9.3414106680456660e-02
+9.3328335487315672e-02
+9.3242630215403244e-02
+9.3156990831725753e-02
+9.3071417296367420e-02
+9.2985909556908428e-02
+9.2900467560073086e-02
+9.2815091264557947e-02
+9.2729780641893772e-02
+9.2644535664438990e-02
+9.2559356306816540e-02
+9.2474242545096536e-02
+9.2389194350816051e-02
+9.2304211668242014e-02
+9.2219294431543114e-02
+9.2134442584491896e-02
+9.2049656102655836e-02
+9.1964934968133738e-02
+9.1880279159962913e-02
+9.1795688651407178e-02
+9.1711163414491342e-02
+9.1626703404271065e-02
+9.1542308556845919e-02
+9.1457978809647747e-02
+9.1373714128439656e-02
+9.1289514497869734e-02
+9.1205379900637609e-02
+9.1121310305038838e-02
+9.1037305673786012e-02
+9.0953365967124389e-02
+9.0869491136795377e-02
+9.0785681132753634e-02
+9.0701935911719420e-02
+9.0618255443736431e-02
+9.0534639700361103e-02
+9.0451088651796518e-02
+9.0367602266670150e-02
+9.0284180512860260e-02
+9.0200823349729967e-02
+9.0117530730723233e-02
+9.0034302610147471e-02
+8.9951138948801732e-02
+8.9868039710117253e-02
+8.9785004860286524e-02
+8.9702034375500270e-02
+8.9619128234147222e-02
+8.9536286404034687e-02
+8.9453508831203996e-02
+8.9370795459351782e-02
+8.9288146243382202e-02
+8.9205561151797244e-02
+8.9123040154387614e-02
+8.9040583227385089e-02
+8.8958190351689781e-02
+8.8875861504105216e-02
+8.8793596632277247e-02
+8.8711395671488197e-02
+8.8629258564453001e-02
+8.8547185282348589e-02
+8.8465175803115595e-02
+8.8383230103385294e-02
+8.8301348156974879e-02
+8.8219529936986077e-02
+8.8137775403673360e-02
+8.8056084501044962e-02
+8.7974457173126810e-02
+8.7892893379371062e-02
+8.7811393090885925e-02
+8.7729956279645929e-02
+8.7648582921850307e-02
+8.7567272995571141e-02
+8.7486026471896808e-02
+8.7404843294010853e-02
+8.7323723398193553e-02
+8.7242666733195529e-02
+8.7161673275778243e-02
+8.7080743006466357e-02
+8.6999875903528368e-02
+8.6919071942258785e-02
+8.6838331096403459e-02
+8.6757653318864564e-02
+8.6677038546127044e-02
+8.6596486717317608e-02
+8.6515997795261118e-02
+8.6435571753762375e-02
+8.6355208568549377e-02
+8.6274908223146832e-02
+8.6194670703060625e-02
+8.6114495978158206e-02
+8.6034383981583779e-02
+8.5954334641713537e-02
+8.5874347908953680e-02
+8.5794423763984232e-02
+8.5714562189481688e-02
+8.5634763164779734e-02
+8.5555026666467790e-02
+8.5475352667927454e-02
+8.5395741117265153e-02
+8.5316191950351436e-02
+8.5236705108829400e-02
+8.5157280560020560e-02
+8.5077918278291725e-02
+8.4998618239650214e-02
+8.4919380424131524e-02
+8.4840204812042172e-02
+8.4761091367226857e-02
+8.4682040029943645e-02
+8.4603050739741864e-02
+8.4524123455755940e-02
+8.4445258153877170e-02
+8.4366454810232805e-02
+8.4287713398357236e-02
+8.4209033890473739e-02
+8.4130416254521251e-02
+8.4051860438773829e-02
+8.3973366385873049e-02
+8.3894934047040168e-02
+8.3816563395538182e-02
+8.3738254408125046e-02
+8.3660007061809441e-02
+8.3581821333974682e-02
+8.3503697200821070e-02
+8.3425634615649946e-02
+8.3347633511345040e-02
+8.3269693823576407e-02
+8.3191815519446544e-02
+8.3113998582656376e-02
+8.3036242995922771e-02
+8.2958548736490459e-02
+8.2880915779939418e-02
+8.2803344091997994e-02
+8.2725833611913102e-02
+8.2648384274806572e-02
+8.2570996032783936e-02
+8.2493668864417891e-02
+8.2416402750332698e-02
+8.2339197666262159e-02
+8.2262053583396069e-02
+8.2184970471273891e-02
+8.2107948285440227e-02
+8.2030986973724199e-02
+8.1954086486382013e-02
+8.1877246786361713e-02
+8.1800467840622504e-02
+8.1723749620615460e-02
+8.1647092110426631e-02
+8.1570495296054937e-02
+8.1493959143426983e-02
+8.1417483585838460e-02
+8.1341068554791396e-02
+8.1264714007817401e-02
+8.1188419927650732e-02
+8.1112186297340072e-02
+8.1036013092749146e-02
+8.0959900285607234e-02
+8.0883847843884374e-02
+8.0807855715853513e-02
+8.0731923843282288e-02
+8.0656052176512782e-02
+8.0580240691161223e-02
+8.0504489367410989e-02
+8.0428798180456881e-02
+8.0353167097032011e-02
+8.0277596082760694e-02
+8.0202085096525946e-02
+8.0126634090409321e-02
+8.0051243017101412e-02
+7.9975911838901001e-02
+7.9900640523876243e-02
+7.9825429041515780e-02
+7.9750277368785025e-02
+7.9675185485234210e-02
+7.9600153362924905e-02
+7.9525180950802729e-02
+7.9450268193457255e-02
+7.9375415043313371e-02
+7.9300621466666152e-02
+7.9225887431512237e-02
+7.9151212912938848e-02
+7.9076597893487782e-02
+7.9002042353805757e-02
+7.8927546249408995e-02
+7.8853109520070186e-02
+7.8778732109442778e-02
+7.8704413985293362e-02
+7.8630155124128756e-02
+7.8555955501440872e-02
+7.8481815089401025e-02
+7.8407733859429174e-02
+7.8333711774644904e-02
+7.8259748782830096e-02
+7.8185844830648485e-02
+7.8111999879475869e-02
+7.8038213906805889e-02
+7.7964486890606324e-02
+7.7890818804737055e-02
+7.7817209620373584e-02
+7.7743659305663709e-02
+7.7670167810446042e-02
+7.7596735077614082e-02
+7.7523361056488063e-02
+7.7450045718205074e-02
+7.7376789038526211e-02
+7.7303590994228746e-02
+7.7230451564050562e-02
+7.7157370726381458e-02
+7.7084348442710060e-02
+7.7011384655229373e-02
+7.6938479306492613e-02
+7.6865632356772545e-02
+7.6792843778417871e-02
+7.6720113544705537e-02
+7.6647441633401869e-02
+7.6574828024054742e-02
+7.6502272689132331e-02
+7.6429775575948489e-02
+7.6357336626304992e-02
+7.6284955791510303e-02
+7.6212633042029132e-02
+7.6140368350735149e-02
+7.6068161693980618e-02
+7.5996013052256700e-02
+7.5923922404568508e-02
+7.5851889706938791e-02
+7.5779914899058304e-02
+7.5707997923995532e-02
+7.5636138750078491e-02
+7.5564337356122141e-02
+7.5492593719785339e-02
+7.5420907814296903e-02
+7.5349279611807041e-02
+7.5277709076529364e-02
+7.5206196155970642e-02
+7.5134740795943955e-02
+7.5063342956990964e-02
+7.4992002617917525e-02
+7.4920719758060889e-02
+7.4849494348197709e-02
+7.4778326352762214e-02
+7.4707215735604293e-02
+7.4636162457475230e-02
+7.4565166477781164e-02
+7.4494227755937462e-02
+7.4423346251416847e-02
+7.4352521923743572e-02
+7.4281754739903408e-02
+7.4211044683295715e-02
+7.4140391739019915e-02
+7.4069795873531255e-02
+7.3999257029186458e-02
+7.3928775148164996e-02
+7.3858350194017861e-02
+7.3787982146802322e-02
+7.3717670985815678e-02
+7.3647416681451666e-02
+7.3577219200063881e-02
+7.3507078505809093e-02
+7.3436994553937651e-02
+7.3366967297444921e-02
+7.3296996694873814e-02
+7.3227082717523304e-02
+7.3157225338474102e-02
+7.3087424530616174e-02
+7.3017680266582452e-02
+7.2947992518106866e-02
+7.2878361242810441e-02
+7.2808786386952609e-02
+7.2739267899084567e-02
+7.2669805748382055e-02
+7.2600399913800850e-02
+7.2531050373277423e-02
+7.2461757100122690e-02
+7.2392520066383470e-02
+7.2323339236830916e-02
+7.2254214558743604e-02
+7.2185145977119045e-02
+7.2116133450682351e-02
+7.2047176957443060e-02
+7.1978276476526923e-02
+7.1909431981422120e-02
+7.1840643440886573e-02
+7.1771910822532689e-02
+7.1703234085673084e-02
+7.1634613185508775e-02
+7.1566048078404568e-02
+7.1497538726093324e-02
+7.1429085091834321e-02
+7.1360687145763962e-02
+7.1292344875312455e-02
+7.1224058270129953e-02
+7.1155827296289845e-02
+7.1087651885329700e-02
+7.1019531967762783e-02
+7.0951467505597540e-02
+7.0883458488382747e-02
+7.0815504904975235e-02
+7.0747606730047513e-02
+7.0679763930933392e-02
+7.0611976472348709e-02
+7.0544244306949833e-02
+7.0476567383850428e-02
+7.0408945657457186e-02
+7.0341379096104328e-02
+7.0273867670450116e-02
+7.0206411354656606e-02
+7.0139010128238491e-02
+7.0071663970342452e-02
+7.0004372844082161e-02
+6.9937136697961311e-02
+6.9869955481458579e-02
+6.9802829157984442e-02
+6.9735757698475634e-02
+6.9668741075044199e-02
+6.9601779265254016e-02
+6.9534872248339694e-02
+6.9468019994734162e-02
+6.9401222450632863e-02
+6.9334479558305198e-02
+6.9267791273601872e-02
+6.9201157574015237e-02
+6.9134578438821800e-02
+6.9068053844185628e-02
+6.9001583763315250e-02
+6.8935168167712307e-02
+6.8868807013385505e-02
+6.8802500247606854e-02
+6.8736247820919624e-02
+6.8670049701357067e-02
+6.8603905862611683e-02
+6.8537816280387576e-02
+6.8471780936179741e-02
+6.8405799812299134e-02
+6.8339872874892904e-02
+6.8274000063236515e-02
+6.8208181315030980e-02
+6.8142416589720631e-02
+6.8076705868264642e-02
+6.8011049132380805e-02
+6.7945446362149581e-02
+6.7879897536687786e-02
+6.7814402629648454e-02
+6.7748961584994577e-02
+6.7683574336638935e-02
+6.7618240831069029e-02
+6.7552961052758667e-02
+6.7487734993199100e-02
+6.7422562633694713e-02
+6.7357443937877834e-02
+6.7292378867532227e-02
+6.7227367382378306e-02
+6.7162409440009077e-02
+6.7097504998553950e-02
+6.7032654023041233e-02
+6.6967856482735719e-02
+6.6903112347977425e-02
+6.6838421594900749e-02
+6.6773784201692735e-02
+6.6709200139453140e-02
+6.6644669356861294e-02
+6.6580191798306557e-02
+6.6515767420650351e-02
+6.6451396203337620e-02
+6.6387078128006191e-02
+6.6322813171390382e-02
+6.6258601304955991e-02
+6.6194442498780023e-02
+6.6130336709940826e-02
+6.6066283887189936e-02
+6.6002283981650492e-02
+6.5938336959494137e-02
+6.5874442792480795e-02
+6.5810601455043666e-02
+6.5746812930443335e-02
+6.5683077203621681e-02
+6.5619394243620968e-02
+6.5555763989427515e-02
+6.5492186377523590e-02
+6.5428661368202232e-02
+6.5365188948415948e-02
+6.5301769105527985e-02
+6.5238401814726232e-02
+6.5175087043063976e-02
+6.5111824755787792e-02
+6.5048614907695299e-02
+6.4985457449524595e-02
+6.4922352336425709e-02
+6.4859299538901391e-02
+6.4796299030799309e-02
+6.4733350787817390e-02
+6.4670454789306137e-02
+6.4607611014565164e-02
+6.4544819428096090e-02
+6.4482079977134038e-02
+6.4419392609245160e-02
+6.4356757288904290e-02
+6.4294173992367198e-02
+6.4231642695566221e-02
+6.4169163370706245e-02
+6.4106735988476979e-02
+6.4044360517241772e-02
+6.3982036916911261e-02
+6.3919765145489818e-02
+6.3857545163480481e-02
+6.3795376936538584e-02
+6.3733260431137626e-02
+6.3671195619883936e-02
+6.3609182482841684e-02
+6.3547220999211590e-02
+6.3485311130151337e-02
+6.3423452823711243e-02
+6.3361646030478211e-02
+6.3299890720745905e-02
+6.3238186873184749e-02
+6.3176534465606365e-02
+6.3114933472427942e-02
+6.3053383867213542e-02
+6.2991885615630086e-02
+6.2930438666330774e-02
+6.2869042966114189e-02
+6.2807698474897672e-02
+6.2746405169226291e-02
+6.2685163026668655e-02
+6.2623972024107979e-02
+6.2562832137908322e-02
+6.2501743342145338e-02
+6.2440705594240399e-02
+6.2379718844213845e-02
+6.2318783046621494e-02
+6.2257898174301572e-02
+6.2197064204652493e-02
+6.2136281112430351e-02
+6.2075548866441559e-02
+6.2014867434586854e-02
+6.1954236781044864e-02
+6.1893656865076571e-02
+6.1833127646060693e-02
+6.1772649090446559e-02
+6.1712221170265334e-02
+6.1651843857653245e-02
+6.1591517124386173e-02
+6.1531240942072643e-02
+6.1471015280107968e-02
+6.1410840098606076e-02
+6.1350715355260585e-02
+6.1290641011419490e-02
+6.1230617037033336e-02
+6.1170643403314205e-02
+6.1110720082568987e-02
+6.1050847048612557e-02
+6.0991024274760816e-02
+6.0931251724237100e-02
+6.0871529351960399e-02
+6.0811857113804380e-02
+6.0752234975384414e-02
+6.0692662907043261e-02
+6.0633140881436530e-02
+6.0573668881256516e-02
+6.0514246891919775e-02
+6.0454874886777921e-02
+6.0395552809480745e-02
+6.0336280599536718e-02
+6.0277058213575513e-02
+6.0217885632814987e-02
+6.0158762840040056e-02
+6.0099689812095840e-02
+6.0040666520733796e-02
+5.9981692936112080e-02
+5.9922769016190917e-02
+5.9863894712747542e-02
+5.9805069981941600e-02
+5.9746294800371094e-02
+5.9687569150511703e-02
+5.9628893009541405e-02
+5.9570266340993522e-02
+5.9511689106265649e-02
+5.9453161268442904e-02
+5.9394682793137622e-02
+5.9336253646264943e-02
+5.9277873795546755e-02
+5.9219543210319595e-02
+5.9161261860168596e-02
+5.9103029716405318e-02
+5.9044846751255160e-02
+5.8986712935246127e-02
+5.8928628230654270e-02
+5.8870592597266340e-02
+5.8812605996533478e-02
+5.8754668394393604e-02
+5.8696779757617390e-02
+5.8638940058156321e-02
+5.8581149276054310e-02
+5.8523407391441767e-02
+5.8465714371924861e-02
+5.8408070173446250e-02
+5.8350474752263549e-02
+5.8292928071847272e-02
+5.8235430099653873e-02
+5.8177980804663736e-02
+5.8120580163377213e-02
+5.8063228154667343e-02
+5.8005924751597528e-02
+5.7948669910840023e-02
+5.7891463586301269e-02
+5.7834305739037230e-02
+5.7777196341753836e-02
+5.7720135368362936e-02
+5.7663122795704500e-02
+5.7606158603459967e-02
+5.7549242769610764e-02
+5.7492375253917927e-02
+5.7435556005633215e-02
+5.7378784976478338e-02
+5.7322062131999654e-02
+5.7265387442328598e-02
+5.7208760880964132e-02
+5.7152182431343158e-02
+5.7095652078570786e-02
+5.7039169795433518e-02
+5.6982735533773927e-02
+5.6926349243817342e-02
+5.6870010885633676e-02
+5.6813720429247830e-02
+5.6757477845974749e-02
+5.6701283116120209e-02
+5.6645136225401391e-02
+5.6589037154443508e-02
+5.6532985855009717e-02
+5.6476982268849153e-02
+5.6421026346605778e-02
+5.6365118066471799e-02
+5.6309257411905005e-02
+5.6253444362320583e-02
+5.6197678889960655e-02
+5.6141960966039406e-02
+5.6086290554399600e-02
+5.6030667611116476e-02
+5.5975092092888888e-02
+5.5919563967556637e-02
+5.5864083209955305e-02
+5.5808649795366018e-02
+5.5753263701047787e-02
+5.5697924904976714e-02
+5.5642633379231303e-02
+5.5587389076771951e-02
+5.5532191946787615e-02
+5.5477041948203763e-02
+5.5421939057980173e-02
+5.5366883254903861e-02
+5.5311874514266779e-02
+5.5256912807523102e-02
+5.5201998105434011e-02
+5.5147130372866678e-02
+5.5092309570827766e-02
+5.5037535661345331e-02
+5.4982808613149553e-02
+5.4928128397519788e-02
+5.4873494987222146e-02
+5.4818908360055735e-02
+5.4764368494800354e-02
+5.4709875359889526e-02
+5.4655428903747215e-02
+5.4601029073095407e-02
+5.4546675832042035e-02
+5.4492369164589369e-02
+5.4438109055318526e-02
+5.4383895482383746e-02
+5.4329728419549146e-02
+5.4275607837884848e-02
+5.4221533691584556e-02
+5.4167505928126962e-02
+5.4113524502047622e-02
+5.4059589393065918e-02
+5.4005700586472326e-02
+5.3951858063260354e-02
+5.3898061795744141e-02
+5.3844311754922367e-02
+5.3790607903067694e-02
+5.3736950192046884e-02
+5.3683338574582351e-02
+5.3629773022950696e-02
+5.3576253523356446e-02
+5.3522780060053149e-02
+5.3469352602001134e-02
+5.3415971111795774e-02
+5.3362635552068299e-02
+5.3309345885661760e-02
+5.3256102075487421e-02
+5.3202904087594066e-02
+5.3149751894651140e-02
+5.3096645470224871e-02
+5.3043584789892267e-02
+5.2990569831729492e-02
+5.2937600572823748e-02
+5.2884676974021862e-02
+5.2831798984110605e-02
+5.2778966554899602e-02
+5.2726179661843349e-02
+5.2673438290685978e-02
+5.2620742424160587e-02
+5.2568092033053140e-02
+5.2515487085214543e-02
+5.2462927545812860e-02
+5.2410413374100177e-02
+5.2357944528724207e-02
+5.2305520975495935e-02
+5.2253142689506524e-02
+5.2200809646484256e-02
+5.2148521822451124e-02
+5.2096279193656447e-02
+5.2044081734483633e-02
+5.1991929405244997e-02
+5.1939822159852184e-02
+5.1887759956072421e-02
+5.1835742767623094e-02
+5.1783770572308228e-02
+5.1731843347160224e-02
+5.1679961067432827e-02
+5.1628123707954859e-02
+5.1576331236112223e-02
+5.1524583609238991e-02
+5.1472880784524194e-02
+5.1421222728268462e-02
+5.1369609414124495e-02
+5.1318040816414827e-02
+5.1266516913102453e-02
+5.1215037683880825e-02
+5.1163603104241534e-02
+5.1112213131556283e-02
+5.1060867718347336e-02
+5.1009566823849883e-02
+5.0958310423478877e-02
+5.0907098495023208e-02
+5.0855931015588246e-02
+5.0804807961316902e-02
+5.0753729307634610e-02
+5.0702695018898535e-02
+5.0651705050157807e-02
+5.0600759357906241e-02
+5.0549857913089108e-02
+5.0499000693827942e-02
+5.0448187677812534e-02
+5.0397418840551447e-02
+5.0346694156926532e-02
+5.0296013597047010e-02
+5.0245377118990686e-02
+5.0194784679119191e-02
+5.0144236241617492e-02
+5.0093731782156981e-02
+5.0043271277334517e-02
+4.9992854703904459e-02
+4.9942482038759194e-02
+4.9892153257277250e-02
+4.9841868321503835e-02
+4.9791627186569175e-02
+4.9741429810584992e-02
+4.9691276166043345e-02
+4.9641166229684251e-02
+4.9591099978378045e-02
+4.9541077389337114e-02
+4.9491098439692849e-02
+4.9441163098634791e-02
+4.9391271323191904e-02
+4.9341423069866303e-02
+4.9291618305019810e-02
+4.9241857004019347e-02
+4.9192139142688399e-02
+4.9142464698016843e-02
+4.9092833647626170e-02
+4.9043245966185506e-02
+4.8993701613686151e-02
+4.8944200545583454e-02
+4.8894742722626700e-02
+4.8845328120183142e-02
+4.8795956716103976e-02
+4.8746628487122377e-02
+4.8697343408185781e-02
+4.8648101453714628e-02
+4.8598902590394344e-02
+4.8549746777548697e-02
+4.8500633975176455e-02
+4.8451564152729623e-02
+4.8402537285003704e-02
+4.8353553347208249e-02
+4.8304612316392749e-02
+4.8255714170198576e-02
+4.8206858881336315e-02
+4.8158046408265175e-02
+4.8109276706984387e-02
+4.8060549740810400e-02
+4.8011865485252887e-02
+4.7963223917022707e-02
+4.7914625013874751e-02
+4.7866068754599284e-02
+4.7817555116647134e-02
+4.7769084063184648e-02
+4.7720655548951670e-02
+4.7672269531405624e-02
+4.7623925983438627e-02
+4.7575624883184932e-02
+4.7527366208486702e-02
+4.7479149936288996e-02
+4.7430976043282023e-02
+4.7382844498980725e-02
+4.7334755260423085e-02
+4.7286708283838262e-02
+4.7238703536204338e-02
+4.7190740995607557e-02
+4.7142820640526127e-02
+4.7094942448127557e-02
+4.7047106394772643e-02
+4.6999312454591373e-02
+4.6951560588995953e-02
+4.6903850754877477e-02
+4.6856182913455412e-02
+4.6808557039689676e-02
+4.6760973111251387e-02
+4.6713431105276676e-02
+4.6665930997930677e-02
+4.6618472764974106e-02
+4.6571056374205007e-02
+4.6523681784846685e-02
+4.6476348956557140e-02
+4.6429057858917468e-02
+4.6381808467880190e-02
+4.6334600759685214e-02
+4.6287434711671079e-02
+4.6240310301584403e-02
+4.6193227502882094e-02
+4.6146186274768027e-02
+4.6099186573557230e-02
+4.6052228363006820e-02
+4.6005311620975778e-02
+4.5958436326822429e-02
+4.5911602457826876e-02
+4.5864809988937071e-02
+4.5818058894242598e-02
+4.5771349138844647e-02
+4.5724680681825065e-02
+4.5678053484018884e-02
+4.5631467518039752e-02
+4.5584922761089393e-02
+4.5538419190549732e-02
+4.5491956784394036e-02
+4.5445535520671460e-02
+4.5399155370596689e-02
+4.5352816291860588e-02
+4.5306518240869224e-02
+4.5260261183481351e-02
+4.5214045096610408e-02
+4.5167869957881787e-02
+4.5121735746019243e-02
+4.5075642440513500e-02
+4.5029590018547706e-02
+4.4983578441879501e-02
+4.4937607665981164e-02
+4.4891677650606365e-02
+4.4845788371201838e-02
+4.4799939806789105e-02
+4.4754131935717631e-02
+4.4708364734947756e-02
+4.4662638181044566e-02
+4.4616952243018468e-02
+4.4571306880672082e-02
+4.4525702053881185e-02
+4.4480137731218818e-02
+4.4434613887590749e-02
+4.4389130498550908e-02
+4.4343687543176809e-02
+4.4298285002047411e-02
+4.4252922851475987e-02
+4.4207601051432496e-02
+4.4162319558014543e-02
+4.4117078333926314e-02
+4.4071877356140050e-02
+4.4026716603462766e-02
+4.3981596053789457e-02
+4.3936515683856453e-02
+4.3891475469696455e-02
+4.3846475378129593e-02
+4.3801515368982968e-02
+4.3756595403389310e-02
+4.3711715453342813e-02
+4.3666875495676244e-02
+4.3622075507452521e-02
+4.3577315466568942e-02
+4.3532595351107331e-02
+4.3487915133639171e-02
+4.3443274774297963e-02
+4.3398674231708075e-02
+4.3354113472464616e-02
+4.3309592473717809e-02
+4.3265111213342068e-02
+4.3220669669184288e-02
+4.3176267819069553e-02
+4.3131905639247146e-02
+4.3087583093802242e-02
+4.3043300141156642e-02
+4.2999056742902129e-02
+4.2954852874097449e-02
+4.2910688513340664e-02
+4.2866563638946545e-02
+4.2822478228561327e-02
+4.2778432259565895e-02
+4.2734425701781695e-02
+4.2690458514594042e-02
+4.2646530657242554e-02
+4.2602642099237441e-02
+4.2558792818559059e-02
+4.2514982793471628e-02
+4.2471212002489135e-02
+4.2427480424247085e-02
+4.2383788034150174e-02
+4.2340134793349853e-02
+4.2296520659086310e-02
+4.2252945594603332e-02
+4.2209409577961425e-02
+4.2165912589440961e-02
+4.2122454608056338e-02
+4.2079035610999634e-02
+4.2035655574788049e-02
+4.1992314466460574e-02
+4.1949012244909760e-02
+4.1905748870243509e-02
+4.1862524315250373e-02
+4.1819338559162068e-02
+4.1776191580915042e-02
+4.1733083357845549e-02
+4.1690013866818462e-02
+4.1646983080529006e-02
+4.1603990960907652e-02
+4.1561037468298749e-02
+4.1518122570090847e-02
+4.1475246244246519e-02
+4.1432408469548536e-02
+4.1389609223824023e-02
+4.1346848484044060e-02
+4.1304126226027145e-02
+4.1261442415457657e-02
+4.1218797012642930e-02
+4.1176189980385275e-02
+4.1133621293828533e-02
+4.1091090931852377e-02
+4.1048598872779930e-02
+4.1006145093428530e-02
+4.0963729570274270e-02
+4.0921352274277387e-02
+4.0879013167762226e-02
+4.0836712212675381e-02
+4.0794449378611389e-02
+4.0752224642303353e-02
+4.0710037980939348e-02
+4.0667889373438848e-02
+4.0625778799680379e-02
+4.0583706236735219e-02
+4.0541671647340009e-02
+4.0499674989689469e-02
+4.0457716226863054e-02
+4.0415795335759758e-02
+4.0373912295704299e-02
+4.0332067086015402e-02
+4.0290259686001959e-02
+4.0248490074500286e-02
+4.0206758220021808e-02
+4.0165064081035595e-02
+4.0123407616932991e-02
+4.0081788800556920e-02
+4.0040207612527308e-02
+3.9998664033035286e-02
+3.9957158039478503e-02
+3.9915689608323902e-02
+3.9874258712924708e-02
+3.9832865317415644e-02
+3.9791509384298214e-02
+3.9750190881192464e-02
+3.9708909784441471e-02
+3.9667666071252571e-02
+3.9626459719149777e-02
+3.9585290705978035e-02
+3.9544159008776031e-02
+3.9503064595860990e-02
+3.9462007430288500e-02
+3.9420987476635187e-02
+3.9380004708404866e-02
+3.9339059102208314e-02
+3.9298150635272838e-02
+3.9257279286728314e-02
+3.9216445035997825e-02
+3.9175647855811006e-02
+3.9134887706992735e-02
+3.9094164549526543e-02
+3.9053478353187787e-02
+3.9012829098093227e-02
+3.8972216764702264e-02
+3.8931641331760282e-02
+3.8891102776933861e-02
+3.8850601075931981e-02
+3.8810136193051528e-02
+3.8769708088432962e-02
+3.8729316726378041e-02
+3.8688962084730188e-02
+3.8648644144067608e-02
+3.8608362883821620e-02
+3.8568118281294299e-02
+3.8527910313312062e-02
+3.8487738949985119e-02
+3.8447604154032221e-02
+3.8407505888546273e-02
+3.8367444125593640e-02
+3.8327418843131865e-02
+3.8287430019361690e-02
+3.8247477633350430e-02
+3.8207561664495328e-02
+3.8167682088582650e-02
+3.8127838869100060e-02
+3.8088031966967695e-02
+3.8048261348870578e-02
+3.8008526992669690e-02
+3.7968828877507042e-02
+3.7929166982518865e-02
+3.7889541286834784e-02
+3.7849951768763906e-02
+3.7810398396265335e-02
+3.7770881130211903e-02
+3.7731399933271979e-02
+3.7691954780654381e-02
+3.7652545652570375e-02
+3.7613172528742050e-02
+3.7573835387099117e-02
+3.7534534205140586e-02
+3.7495268955990223e-02
+3.7456039603913104e-02
+3.7416846112298618e-02
+3.7377688450850273e-02
+3.7338566596818466e-02
+3.7299480527976471e-02
+3.7260430223161001e-02
+3.7221415661967967e-02
+3.7182436822425835e-02
+3.7143493671767586e-02
+3.7104586172722137e-02
+3.7065714290688653e-02
+3.7026878001113962e-02
+3.6988077281797635e-02
+3.6949312111057148e-02
+3.6910582468305538e-02
+3.6871888332893329e-02
+3.6833229677015196e-02
+3.6794606463951517e-02
+3.6756018657012973e-02
+3.6717466227895110e-02
+3.6678949154534367e-02
+3.6640467415272313e-02
+3.6602020990288482e-02
+3.6563609860564193e-02
+3.6525234003399215e-02
+3.6486893381637298e-02
+3.6448587954610048e-02
+3.6410317688235765e-02
+3.6372082562992576e-02
+3.6333882561258399e-02
+3.6295717663494126e-02
+3.6257587847671427e-02
+3.6219493091038696e-02
+3.6181433362409754e-02
+3.6143408624054109e-02
+3.6105418839572141e-02
+3.6067463983888409e-02
+3.6029544037091223e-02
+3.5991658979062875e-02
+3.5953808788730085e-02
+3.5915993444757217e-02
+3.5878212921639556e-02
+3.5840467184238944e-02
+3.5802756196210352e-02
+3.5765079927600092e-02
+3.5727438357105942e-02
+3.5689831463985362e-02
+3.5652259226608064e-02
+3.5614721622625835e-02
+3.5577218628729819e-02
+3.5539750214152510e-02
+3.5502316344572404e-02
+3.5464916987468648e-02
+3.5427552118180376e-02
+3.5390221714167447e-02
+3.5352925753575667e-02
+3.5315664216208201e-02
+3.5278437081972612e-02
+3.5241244324126800e-02
+3.5204085906544051e-02
+3.5166961792890854e-02
+3.5129871955470203e-02
+3.5092816373864709e-02
+3.5055795027784394e-02
+3.5018807896101574e-02
+3.4981854957271560e-02
+3.4944936187672651e-02
+3.4908051554303751e-02
+3.4871201021523301e-02
+3.4834384557588985e-02
+3.4797602140613240e-02
+3.4760853750227944e-02
+3.4724139365358869e-02
+3.4687458963892651e-02
+3.4650812523333283e-02
+3.4614200015672607e-02
+3.4577621408060477e-02
+3.4541076668068535e-02
+3.4504565768432832e-02
+3.4468088684574211e-02
+3.4431645393088420e-02
+3.4395235876034262e-02
+3.4358860117078095e-02
+3.4322518094372471e-02
+3.4286209771489412e-02
+3.4249935109734717e-02
+3.4213694077195482e-02
+3.4177486652366619e-02
+3.4141312814687366e-02
+3.4105172544799646e-02
+3.4069065824446305e-02
+3.4032992634123210e-02
+3.3996952942368430e-02
+3.3960946711229449e-02
+3.3924973905227661e-02
+3.3889034501510727e-02
+3.3853128481144176e-02
+3.3817255824839521e-02
+3.3781416512325149e-02
+3.3745610523072699e-02
+3.3709837830778432e-02
+3.3674098399892591e-02
+3.3638392194407674e-02
+3.3602719186207906e-02
+3.3567079354705438e-02
+3.3531472679660397e-02
+3.3495899141301480e-02
+3.3460358720122853e-02
+3.3424851394515828e-02
+3.3389377131882780e-02
+3.3353935896057049e-02
+3.3318527654734066e-02
+3.3283152386804980e-02
+3.3247810073163728e-02
+3.3212500693721038e-02
+3.3177224226745371e-02
+3.3141980650106061e-02
+3.3106769936141450e-02
+3.3071592051692168e-02
+3.3036446964004325e-02
+3.3001334646971005e-02
+3.2966255078415573e-02
+3.2931208236695007e-02
+3.2896194102807731e-02
+3.2861212658649060e-02
+3.2826263881915348e-02
+3.2791347737559533e-02
+3.2756464188206928e-02
+3.2721613203256839e-02
+3.2686794763915665e-02
+3.2652008852503758e-02
+3.2617255449587289e-02
+3.2582534533915519e-02
+3.2547846083447809e-02
+3.2513190068416506e-02
+3.2478566454286852e-02
+3.2443975208103645e-02
+3.2409416306392373e-02
+3.2374889729058678e-02
+3.2340395456067872e-02
+3.2305933467561831e-02
+3.2271503743663527e-02
+3.2237106259288238e-02
+3.2202740979877013e-02
+3.2168407870180125e-02
+3.2134106903253724e-02
+3.2099838061118754e-02
+3.2065601325932808e-02
+3.2031396676275456e-02
+3.1997224088423516e-02
+3.1963083537873437e-02
+3.1928974995643247e-02
+3.1894898431080052e-02
+3.1860853815232536e-02
+3.1826841124826297e-02
+3.1792860337777062e-02
+3.1758911433082973e-02
+3.1724994391798121e-02
+3.1691109194943098e-02
+3.1657255815977808e-02
+3.1623434219858346e-02
+3.1589644371875190e-02
+3.1555886246981892e-02
+3.1522159826618171e-02
+3.1488465092140622e-02
+3.1454802023618667e-02
+3.1421170600618831e-02
+3.1387570799911058e-02
+3.1354002588506950e-02
+3.1320465931330733e-02
+3.1286960798610187e-02
+3.1253487171092928e-02
+3.1220045030739503e-02
+3.1186634358671750e-02
+3.1153255135028500e-02
+3.1119907339245603e-02
+3.1086590942336404e-02
+3.1053305909418856e-02
+3.1020052207054418e-02
+3.0986829812222311e-02
+3.0953638706157225e-02
+3.0920478869896163e-02
+3.0887350283706483e-02
+3.0854252927651420e-02
+3.0821186777446431e-02
+3.0788151799798616e-02
+3.0755147960502081e-02
+3.0722175232332231e-02
+3.0689233596592935e-02
+3.0656323035026637e-02
+3.0623443528268391e-02
+3.0590595056145056e-02
+3.0557777597212572e-02
+3.0524991121261311e-02
+3.0492235594337308e-02
+3.0459510984996246e-02
+3.0426817271475597e-02
+3.0394154434335824e-02
+3.0361522454433854e-02
+3.0328921313268455e-02
+3.0296350992241133e-02
+3.0263811466018267e-02
+3.0231302700690538e-02
+3.0198824662361845e-02
+3.0166377325504538e-02
+3.0133960670957860e-02
+3.0101574679652732e-02
+3.0069219332020926e-02
+3.0036894608271317e-02
+3.0004600486548367e-02
+2.9972336936696972e-02
+2.9940103926489658e-02
+2.9907901426882471e-02
+2.9875729416034877e-02
+2.9843587873130822e-02
+2.9811476778743146e-02
+2.9779396115288119e-02
+2.9747345864733227e-02
+2.9715326000028294e-02
+2.9683336486971634e-02
+2.9651377292345536e-02
+2.9619448392074098e-02
+2.9587549766348017e-02
+2.9555681395830608e-02
+2.9523843263077075e-02
+2.9492035351124067e-02
+2.9460257638173094e-02
+2.9428510090987351e-02
+2.9396792674825020e-02
+2.9365105361638312e-02
+2.9333448132642121e-02
+2.9301820969654006e-02
+2.9270223853207888e-02
+2.9238656762776677e-02
+2.9207119677053348e-02
+2.9175612568631624e-02
+2.9144135407131098e-02
+2.9112688163515282e-02
+2.9081270814779136e-02
+2.9049883339586954e-02
+2.9018525717553707e-02
+2.8987197930646243e-02
+2.8955899961066560e-02
+2.8924631784925749e-02
+2.8893393369547143e-02
+2.8862184682023583e-02
+2.8831005697543651e-02
+2.8799856398270058e-02
+2.8768736766310785e-02
+2.8737646781344578e-02
+2.8706586421812907e-02
+2.8675555664968204e-02
+2.8644554482594696e-02
+2.8613582844898233e-02
+2.8582640724638751e-02
+2.8551728101187172e-02
+2.8520844954966231e-02
+2.8489991266198254e-02
+2.8459167014804068e-02
+2.8428372180389527e-02
+2.8397606737024891e-02
+2.8366870653810893e-02
+2.8336163900518654e-02
+2.8305486454588098e-02
+2.8274838297537828e-02
+2.8244219410612489e-02
+2.8213629773540593e-02
+2.8183069365586941e-02
+2.8152538163838267e-02
+2.8122036139482304e-02
+2.8091563262775954e-02
+2.8061119507584630e-02
+2.8030704853436575e-02
+2.8000319280386134e-02
+2.7969962769116494e-02
+2.7939635300899136e-02
+2.7909336856253842e-02
+2.7879067408302285e-02
+2.7848826926058449e-02
+2.7818615379972114e-02
+2.7788432748041689e-02
+2.7758279010666614e-02
+2.7728154148364877e-02
+2.7698058141987735e-02
+2.7667990972389520e-02
+2.7637952616541159e-02
+2.7607943045056052e-02
+2.7577962228168346e-02
+2.7548010140709525e-02
+2.7518086761992758e-02
+2.7488192071743932e-02
+2.7458326051975668e-02
+2.7428488686025765e-02
+2.7398679955175996e-02
+2.7368899829617193e-02
+2.7339148275847946e-02
+2.7309425264066385e-02
+2.7279730775461329e-02
+2.7250064793238011e-02
+2.7220427299512701e-02
+2.7190818274541492e-02
+2.7161237698202945e-02
+2.7131685545748754e-02
+2.7102161787730557e-02
+2.7072666394992291e-02
+2.7043199343735079e-02
+2.7013760613399593e-02
+2.6984350183867578e-02
+2.6954968037245199e-02
+2.6925614156413182e-02
+2.6896288521134053e-02
+2.6866991101471633e-02
+2.6837721865664254e-02
+2.6808480786854209e-02
+2.6779267846926511e-02
+2.6750083028616877e-02
+2.6720926313315976e-02
+2.6691797680990698e-02
+2.6662697111097110e-02
+2.6633624578101645e-02
+2.6604580053322942e-02
+2.6575563508893691e-02
+2.6546574922037058e-02
+2.6517614271835667e-02
+2.6488681538241993e-02
+2.6459776704033433e-02
+2.6430899752517629e-02
+2.6402050662407636e-02
+2.6373229403865762e-02
+2.6344435946320348e-02
+2.6315670264681599e-02
+2.6286932339906477e-02
+2.6258222153298729e-02
+2.6229539686580962e-02
+2.6200884921751405e-02
+2.6172257839517748e-02
+2.6143658412567685e-02
+2.6115086610523714e-02
+2.6086542405269475e-02
+2.6058025776429437e-02
+2.6029536705279171e-02
+2.6001075173162112e-02
+2.5972641161553570e-02
+2.5944234651796544e-02
+2.5915855620813156e-02
+2.5887504040443741e-02
+2.5859179882607938e-02
+2.5830883123779982e-02
+2.5802613743559692e-02
+2.5774371721955919e-02
+2.5746157041239767e-02
+2.5717969684586905e-02
+2.5689809632548279e-02
+2.5661676856273571e-02
+2.5633571324839628e-02
+2.5605493011505019e-02
+2.5577441898015599e-02
+2.5549417967125915e-02
+2.5521421200954023e-02
+2.5493451580855447e-02
+2.5465509087698533e-02
+2.5437593696409508e-02
+2.5409705377662649e-02
+2.5381844103053101e-02
+2.5354009851100631e-02
+2.5326202603221250e-02
+2.5298422341004170e-02
+2.5270669046651730e-02
+2.5242942702489359e-02
+2.5215243287329710e-02
+2.5187570772536940e-02
+2.5159925128654281e-02
+2.5132306330829662e-02
+2.5104714359960360e-02
+2.5077149197375036e-02
+2.5049610825396796e-02
+2.5022099227090609e-02
+2.4994614384408725e-02
+2.4967156271179413e-02
+2.4939724857678241e-02
+2.4912320116042087e-02
+2.4884942025787851e-02
+2.4857590568248770e-02
+2.4830265725189746e-02
+2.4802967479332191e-02
+2.4775695813400445e-02
+2.4748450705220328e-02
+2.4721232126242425e-02
+2.4694040047857534e-02
+2.4666874447040261e-02
+2.4639735305107588e-02
+2.4612622603503925e-02
+2.4585536323773163e-02
+2.4558476447504668e-02
+2.4531442954922964e-02
+2.4504435820622946e-02
+2.4477455017755730e-02
+2.4450500521311046e-02
+2.4423572310537562e-02
+2.4396670365314663e-02
+2.4369794666782865e-02
+2.4342945197793703e-02
+2.4316121940957253e-02
+2.4289324872998879e-02
+2.4262553965873897e-02
+2.4235809192137189e-02
+2.4209090530207644e-02
+2.4182397961305089e-02
+2.4155731467108102e-02
+2.4129091031203979e-02
+2.4102476637682869e-02
+2.4075888266523349e-02
+2.4049325887745179e-02
+2.4022789470028155e-02
+2.3996278988615793e-02
+2.3969794428036231e-02
+2.3943335773348232e-02
+2.3916903006629527e-02
+2.3890496107439416e-02
+2.3864115054911747e-02
+2.3837759825278141e-02
+2.3811430393322088e-02
+2.3785126734397862e-02
+2.3758848826496107e-02
+2.3732596648358535e-02
+2.3706370180449441e-02
+2.3680169407597221e-02
+2.3653994315203208e-02
+2.3627844882991536e-02
+2.3601721082312333e-02
+2.3575622884130197e-02
+2.3549550264717965e-02
+2.3523503205021959e-02
+2.3497481686450716e-02
+2.3471485693084833e-02
+2.3445515210397325e-02
+2.3419570221477157e-02
+2.3393650698019960e-02
+2.3367756608346165e-02
+2.3341887924939183e-02
+2.3316044631319418e-02
+2.3290226712792888e-02
+2.3264434153338162e-02
+2.3238666934891697e-02
+2.3212925038937272e-02
+2.3187208441440357e-02
+2.3161517113303495e-02
+2.3135851026172004e-02
+2.3110210160356685e-02
+2.3084594500883071e-02
+2.3059004032189641e-02
+2.3033438735551730e-02
+2.3007898591258544e-02
+2.2982383578129772e-02
+2.2956893670908751e-02
+2.2931428843678988e-02
+2.2905989073254869e-02
+2.2880574340832956e-02
+2.2855184628028602e-02
+2.2829819916963184e-02
+2.2804480190241859e-02
+2.2779165429938231e-02
+2.2753875612709473e-02
+2.2728610712136593e-02
+2.2703370702757943e-02
+2.2678155564305733e-02
+2.2652965278205577e-02
+2.2627799826395411e-02
+2.2602659192298653e-02
+2.2577543359552237e-02
+2.2552452307713505e-02
+2.2527386009509782e-02
+2.2502344437261495e-02
+2.2477327568865977e-02
+2.2452335387776585e-02
+2.2427367877559289e-02
+2.2402425020457629e-02
+2.2377506797931372e-02
+2.2352613190448668e-02
+2.2327744173090122e-02
+2.2302899719098601e-02
+2.2278079804084902e-02
+2.2253284410868230e-02
+2.2228513523620558e-02
+2.2203767125412756e-02
+2.2179045197391941e-02
+2.2154347720391019e-02
+2.2129674672276323e-02
+2.2105026027834478e-02
+2.2080401762097152e-02
+2.2055801854358372e-02
+2.2031226286547943e-02
+2.2006675040737611e-02
+2.1982148099591863e-02
+2.1957645445986416e-02
+2.1933167061065038e-02
+2.1908712920451209e-02
+2.1884282998692068e-02
+2.1859877272371219e-02
+2.1835495721785950e-02
+2.1811138327707837e-02
+2.1786805073023274e-02
+2.1762495942906399e-02
+2.1738210921965245e-02
+2.1713949986901442e-02
+2.1689713109316451e-02
+2.1665500262179040e-02
+2.1641311427243872e-02
+2.1617146589552463e-02
+2.1593005733484338e-02
+2.1568888841189311e-02
+2.1544795894328599e-02
+2.1520726871886182e-02
+2.1496681747748807e-02
+2.1472660495403906e-02
+2.1448663093306689e-02
+2.1424689525512592e-02
+2.1400739776294305e-02
+2.1376813828913713e-02
+2.1352911665952639e-02
+2.1329033269019460e-02
+2.1305178613617824e-02
+2.1281347672861741e-02
+2.1257540422017874e-02
+2.1233756843906281e-02
+2.1209996922993239e-02
+2.1186260643048772e-02
+2.1162547986458592e-02
+2.1138858935333509e-02
+2.1115193468297658e-02
+2.1091551559878994e-02
+2.1067933184741962e-02
+2.1044338322392508e-02
+2.1020766955733277e-02
+2.0997219067856950e-02
+2.0973694642655995e-02
+2.0950193664350331e-02
+2.0926716115153329e-02
+2.0903261969913163e-02
+2.0879831201808155e-02
+2.0856423786948613e-02
+2.0833039707534372e-02
+2.0809678946553254e-02
+2.0786341488011398e-02
+2.0763027317161790e-02
+2.0739736418781154e-02
+2.0716468769983776e-02
+2.0693224342278931e-02
+2.0670003108409711e-02
+2.0646805050677237e-02
+2.0623630155475546e-02
+2.0600478408344124e-02
+2.0577349791475717e-02
+2.0554244286249353e-02
+2.0531161872323966e-02
+2.0508102525625543e-02
+2.0485066221669714e-02
+2.0462052938919201e-02
+2.0439062659597811e-02
+2.0416095366260982e-02
+2.0393151042746565e-02
+2.0370229673870331e-02
+2.0347331243516852e-02
+2.0324455728516374e-02
+2.0301603102541199e-02
+2.0278773340888571e-02
+2.0255966425468560e-02
+2.0233182339859532e-02
+2.0210421067988399e-02
+2.0187682594572678e-02
+2.0164966904316323e-02
+2.0142273976894356e-02
+2.0119603785291700e-02
+2.0096956302471883e-02
+2.0074331508340711e-02
+2.0051729388322229e-02
+2.0029149927811903e-02
+2.0006593110799806e-02
+1.9984058920618525e-02
+1.9961547339080538e-02
+1.9939058341586581e-02
+1.9916591901853877e-02
+1.9894147996696865e-02
+1.9871726610275076e-02
+1.9849327727797503e-02
+1.9826951333774247e-02
+1.9804597411746134e-02
+1.9782265944868947e-02
+1.9759956911042442e-02
+1.9737670283811900e-02
+1.9715406037576287e-02
+1.9693164154789156e-02
+1.9670944621841106e-02
+1.9648747424431227e-02
+1.9626572545073960e-02
+1.9604419965397968e-02
+1.9582289665771292e-02
+1.9560181623435466e-02
+1.9538095815205287e-02
+1.9516032220384630e-02
+1.9493990821876837e-02
+1.9471971602860027e-02
+1.9449974546396197e-02
+1.9427999635447082e-02
+1.9406046852570889e-02
+1.9384116176877925e-02
+1.9362207585718206e-02
+1.9340321057159781e-02
+1.9318456572674780e-02
+1.9296614114725330e-02
+1.9274793666456902e-02
+1.9252995212787775e-02
+1.9231218738847325e-02
+1.9209464225710175e-02
+1.9187731648336093e-02
+1.9166020981422494e-02
+1.9144332204345711e-02
+1.9122665300692121e-02
+1.9101020254324457e-02
+1.9079397050251530e-02
+1.9057795674093173e-02
+1.9036216109912855e-02
+1.9014658334157244e-02
+1.8993122320958889e-02
+1.8971608047000477e-02
+1.8950115495890596e-02
+1.8928644652400229e-02
+1.8907195501181803e-02
+1.8885768026701239e-02
+1.8864362213180438e-02
+1.8842978040165492e-02
+1.8821615482818257e-02
+1.8800274516781148e-02
+1.8778955123923722e-02
+1.8757657289581269e-02
+1.8736380998927400e-02
+1.8715126236117659e-02
+1.8693892984980469e-02
+1.8672681227096716e-02
+1.8651490937659315e-02
+1.8630322090800022e-02
+1.8609174665304838e-02
+1.8588048647597145e-02
+1.8566944024720564e-02
+1.8545860781758360e-02
+1.8524798901878418e-02
+1.8503758367706596e-02
+1.8482739157191907e-02
+1.8461741245566706e-02
+1.8440764609380707e-02
+1.8419809232432825e-02
+1.8398875100942732e-02
+1.8377962200374989e-02
+1.8357070513941615e-02
+1.8336200024413225e-02
+1.8315350712628076e-02
+1.8294522556115810e-02
+1.8273715532219039e-02
+1.8252929621551384e-02
+1.8232164808056787e-02
+1.8211421075811387e-02
+1.8190698408706144e-02
+1.8169996790519762e-02
+1.8149316204363879e-02
+1.8128656629602280e-02
+1.8108018044288327e-02
+1.8087400427437398e-02
+1.8066803761068288e-02
+1.8046228027796273e-02
+1.8025673211406960e-02
+1.8005139297777358e-02
+1.7984626272811884e-02
+1.7964134117558955e-02
+1.7943662807915133e-02
+1.7923212319985806e-02
+1.7902782635051413e-02
+1.7882373737664797e-02
+1.7861985612568812e-02
+1.7841618245324323e-02
+1.7821271621791146e-02
+1.7800945725526589e-02
+1.7780640532565912e-02
+1.7760356017449252e-02
+1.7740092158726725e-02
+1.7719848942429062e-02
+1.7699626355348563e-02
+1.7679424382709894e-02
+1.7659243008004609e-02
+1.7639082214309619e-02
+1.7618941980808649e-02
+1.7598822284117615e-02
+1.7578723101856004e-02
+1.7558644418155224e-02
+1.7538586219641883e-02
+1.7518548492073589e-02
+1.7498531218216026e-02
+1.7478534380187438e-02
+1.7458557959152264e-02
+1.7438601934417045e-02
+1.7418666285137954e-02
+1.7398750992394265e-02
+1.7378856039480920e-02
+1.7358981409971289e-02
+1.7339127089416369e-02
+1.7319293064727452e-02
+1.7299479321555237e-02
+1.7279685837154883e-02
+1.7259912585415947e-02
+1.7240159542968224e-02
+1.7220426696305486e-02
+1.7200714034118363e-02
+1.7181021543004441e-02
+1.7161349205302951e-02
+1.7141697002786300e-02
+1.7122064915605188e-02
+1.7102452921963128e-02
+1.7082861000244774e-02
+1.7063289132830735e-02
+1.7043737304967530e-02
+1.7024205501998485e-02
+1.7004693709501691e-02
+1.6985201913153648e-02
+1.6965730097074368e-02
+1.6946278239528031e-02
+1.6926846317413886e-02
+1.6907434309626577e-02
+1.6888042199302029e-02
+1.6868669970168504e-02
+1.6849317607735188e-02
+1.6829985099740000e-02
+1.6810672433575164e-02
+1.6791379589663865e-02
+1.6772106543218326e-02
+1.6752853270293265e-02
+1.6733619753918769e-02
+1.6714405980182815e-02
+1.6695211935062002e-02
+1.6676037604042356e-02
+1.6656882972477850e-02
+1.6637748023405789e-02
+1.6618632734717500e-02
+1.6599537083701758e-02
+1.6580461051188225e-02
+1.6561404622625450e-02
+1.6542367783730062e-02
+1.6523350519569803e-02
+1.6504352814706656e-02
+1.6485374653147700e-02
+1.6466416014794913e-02
+1.6447476877669235e-02
+1.6428557221100589e-02
+1.6409657029871790e-02
+1.6390776290173173e-02
+1.6371914987775186e-02
+1.6353073107473262e-02
+1.6334250633853957e-02
+1.6315447548445761e-02
+1.6296663828618625e-02
+1.6277899451775296e-02
+1.6259154400685059e-02
+1.6240428662477168e-02
+1.6221722224152857e-02
+1.6203035070684723e-02
+1.6184367186074047e-02
+1.6165718553485371e-02
+1.6147089152481944e-02
+1.6128478961656308e-02
+1.6109887961218514e-02
+1.6091316135306198e-02
+1.6072763468661131e-02
+1.6054229946956725e-02
+1.6035715557187285e-02
+1.6017220286140905e-02
+1.5998744115287802e-02
+1.5980287021595357e-02
+1.5961848982567889e-02
+1.5943429981417012e-02
+1.5925030004208980e-02
+1.5906649037025804e-02
+1.5888287065924780e-02
+1.5869944076950564e-02
+1.5851620053810977e-02
+1.5833314974278669e-02
+1.5815028815272653e-02
+1.5796761557667398e-02
+1.5778513188185263e-02
+1.5760283693939579e-02
+1.5742073060552232e-02
+1.5723881272329050e-02
+1.5705708313244502e-02
+1.5687554164738139e-02
+1.5669418806925409e-02
+1.5651302220487776e-02
+1.5633204388860129e-02
+1.5615125296298342e-02
+1.5597064927787379e-02
+1.5579023270249435e-02
+1.5561000310857491e-02
+1.5542996032793965e-02
+1.5525010413088148e-02
+1.5507043428523442e-02
+1.5489095061440037e-02
+1.5471165299287952e-02
+1.5453254129562841e-02
+1.5435361538410785e-02
+1.5417487511241839e-02
+1.5399632032436954e-02
+1.5381795081268161e-02
+1.5363976635416906e-02
+1.5346176674901419e-02
+1.5328395186241231e-02
+1.5310632157058279e-02
+1.5292887573716527e-02
+1.5275161420556585e-02
+1.5257453681637645e-02
+1.5239764338918811e-02
+1.5222093372346800e-02
+1.5204440762141141e-02
+1.5186806492009628e-02
+1.5169190547645817e-02
+1.5151592914911862e-02
+1.5134013580433692e-02
+1.5116452531084667e-02
+1.5098909751356455e-02
+1.5081385218804380e-02
+1.5063878909788374e-02
+1.5046390805200534e-02
+1.5028920893538522e-02
+1.5011469163928686e-02
+1.4994035603238467e-02
+1.4976620196079753e-02
+1.4959222926680180e-02
+1.4941843776283345e-02
+1.4924482724360102e-02
+1.4907139750969089e-02
+1.4889814839533220e-02
+1.4872507974627382e-02
+1.4855219141783530e-02
+1.4837948329449525e-02
+1.4820695526579315e-02
+1.4803460718036360e-02
+1.4786243881520757e-02
+1.4769044994206542e-02
+1.4751864038152700e-02
+1.4734701000500937e-02
+1.4717555868538347e-02
+1.4700428628541607e-02
+1.4683319266161114e-02
+1.4666227766330352e-02
+1.4649154109894875e-02
+1.4632098276235917e-02
+1.4615060246249745e-02
+1.4598040005679179e-02
+1.4581037541230057e-02
+1.4564052839326359e-02
+1.4547085885876868e-02
+1.4530136666619868e-02
+1.4513205164205010e-02
+1.4496291357933117e-02
+1.4479395227354289e-02
+1.4462516756880515e-02
+1.4445655934067355e-02
+1.4428812746261149e-02
+1.4411987179219403e-02
+1.4395179218103567e-02
+1.4378388847238462e-02
+1.4361616048151449e-02
+1.4344860801793478e-02
+1.4328123090064935e-02
+1.4311402896678149e-02
+1.4294700205641830e-02
+1.4278015003646531e-02
+1.4261347280412950e-02
+1.4244697025215107e-02
+1.4228064219800019e-02
+1.4211448840838921e-02
+1.4194850866126783e-02
+1.4178270281223563e-02
+1.4161707074736527e-02
+1.4145161234839441e-02
+1.4128632748159691e-02
+1.4112121600966483e-02
+1.4095627776975204e-02
+1.4079151254811332e-02
+1.4062692012653994e-02
+1.4046250033625229e-02
+1.4029825306667318e-02
+1.4013417820868502e-02
+1.3997027562853429e-02
+1.3980654517514369e-02
+1.3964298669271780e-02
+1.3947959999629144e-02
+1.3931638488892419e-02
+1.3915334118605625e-02
+1.3899046874880134e-02
+1.3882776744874115e-02
+1.3866523715257031e-02
+1.3850287771680878e-02
+1.3834068899631615e-02
+1.3817867083256666e-02
+1.3801682305060806e-02
+1.3785514547497622e-02
+1.3769363793708810e-02
+1.3753230027340546e-02
+1.3737113232551527e-02
+1.3721013397025394e-02
+1.3704930509958945e-02
+1.3688864558844546e-02
+1.3672815524579100e-02
+1.3656783386481635e-02
+1.3640768126102765e-02
+1.3624769729847845e-02
+1.3608788184758315e-02
+1.3592823477801854e-02
+1.3576875595851797e-02
+1.3560944525515753e-02
+1.3545030249558937e-02
+1.3529132747809793e-02
+1.3513252000700558e-02
+1.3497387993682454e-02
+1.3481540714458987e-02
+1.3465710150527626e-02
+1.3449896288509556e-02
+1.3434099114797893e-02
+1.3418318614252710e-02
+1.3402554768248210e-02
+1.3386807557731866e-02
+1.3371076965929521e-02
+1.3355362979104958e-02
+1.3339665583765370e-02
+1.3323984766927446e-02
+1.3308320516013774e-02
+1.3292672817914528e-02
+1.3277041655285629e-02
+1.3261427008797236e-02
+1.3245828860025436e-02
+1.3230247194435408e-02
+1.3214681998523737e-02
+1.3199133259062927e-02
+1.3183600963481448e-02
+1.3168085099239274e-02
+1.3152585650891266e-02
+1.3137102598953869e-02
+1.3121635923895862e-02
+1.3106185610399891e-02
+1.3090751646647652e-02
+1.3075334020768071e-02
+1.3059932719587547e-02
+1.3044547729294271e-02
+1.3029179035296448e-02
+1.3013826619554485e-02
+1.2998490463075048e-02
+1.2983170548313777e-02
+1.2967866861329070e-02
+1.2952579388750727e-02
+1.2937308118262532e-02
+1.2922053039075988e-02
+1.2906814140204710e-02
+1.2891591404955298e-02
+1.2876384811695563e-02
+1.2861194339419010e-02
+1.2846019973933184e-02
+1.2830861704532867e-02
+1.2815719520161868e-02
+1.2800593407996550e-02
+1.2785483354695560e-02
+1.2770389345425424e-02
+1.2755311361471587e-02
+1.2740249383543924e-02
+1.2725203395013181e-02
+1.2710173383272176e-02
+1.2695159336050064e-02
+1.2680161241115064e-02
+1.2665179086270637e-02
+1.2650212858825418e-02
+1.2635262541569157e-02
+1.2620328114876761e-02
+1.2605409560128624e-02
+1.2590506863732111e-02
+1.2575620013628198e-02
+1.2560748997580634e-02
+1.2545893802869718e-02
+1.2531054416666904e-02
+1.2516230824424650e-02
+1.2501423008885210e-02
+1.2486630952624152e-02
+1.2471854639699327e-02
+1.2457094055561590e-02
+1.2442349185951818e-02
+1.2427620018879301e-02
+1.2412906543618806e-02
+1.2398208748166452e-02
+1.2383526613890500e-02
+1.2368860120043288e-02
+1.2354209248598220e-02
+1.2339573989285358e-02
+1.2324954333170213e-02
+1.2310350268691395e-02
+1.2295761779966821e-02
+1.2281188850739876e-02
+1.2266631465370910e-02
+1.2252089608824462e-02
+1.2237563266074596e-02
+1.2223052421935341e-02
+1.2208557061127549e-02
+1.2194077168995225e-02
+1.2179612734241549e-02
+1.2165163746693068e-02
+1.2150730194118100e-02
+1.2136312058140877e-02
+1.2121909319279428e-02
+1.2107521960843715e-02
+1.2093149970935404e-02
+1.2078793338097275e-02
+1.2064452050143169e-02
+1.2050126094143092e-02
+1.2035815456874962e-02
+1.2021520122342949e-02
+1.2007240072866056e-02
+1.1992975291279392e-02
+1.1978725763466504e-02
+1.1964491476380068e-02
+1.1950272417389876e-02
+1.1936068575165854e-02
+1.1921879938605131e-02
+1.1907706494207932e-02
+1.1893548224181053e-02
+1.1879405110385165e-02
+1.1865277137260875e-02
+1.1851164291992143e-02
+1.1837066561928013e-02
+1.1822983934782831e-02
+1.1808916398502489e-02
+1.1794863940439573e-02
+1.1780826544407999e-02
+1.1766804192923001e-02
+1.1752796869630830e-02
+1.1738804561887990e-02
+1.1724827257804868e-02
+1.1710864945024806e-02
+1.1696917610317794e-02
+1.1682985240315077e-02
+1.1669067820450404e-02
+1.1655165334830603e-02
+1.1641277767592405e-02
+1.1627405104060301e-02
+1.1613547330344020e-02
+1.1599704433004966e-02
+1.1585876401329260e-02
+1.1572063225649467e-02
+1.1558264894204332e-02
+1.1544481388039500e-02
+1.1530712686685006e-02
+1.1516958772905747e-02
+1.1503219635782923e-02
+1.1489495265105031e-02
+1.1475785649960487e-02
+1.1462090778629294e-02
+1.1448410639047110e-02
+1.1434745215334252e-02
+1.1421094488980649e-02
+1.1407458442239228e-02
+1.1393837062693096e-02
+1.1380230340067479e-02
+1.1366638263508574e-02
+1.1353060820058748e-02
+1.1339497996279353e-02
+1.1325949777551062e-02
+1.1312416146846664e-02
+1.1298897086932241e-02
+1.1285392583428899e-02
+1.1271902625393616e-02
+1.1258427202001353e-02
+1.1244966301262257e-02
+1.1231519910349133e-02
+1.1218088016075352e-02
+1.1204670602910279e-02
+1.1191267654338059e-02
+1.1177879154691006e-02
+1.1164505091512910e-02
+1.1151145453102975e-02
+1.1137800227501415e-02
+1.1124469402196630e-02
+1.1111152964558179e-02
+1.1097850900227281e-02
+1.1084563192677274e-02
+1.1071289825448053e-02
+1.1058030785011013e-02
+1.1044786060034563e-02
+1.1031555639225281e-02
+1.1018339511181261e-02
+1.1005137664452932e-02
+1.0991950086327052e-02
+1.0978776759094731e-02
+1.0965617663826442e-02
+1.0952472784510508e-02
+1.0939342111632524e-02
+1.0926225636495514e-02
+1.0913123348047369e-02
+1.0900035232156768e-02
+1.0886961274443028e-02
+1.0873901459889394e-02
+1.0860855772982184e-02
+1.0847824198556800e-02
+1.0834806724202877e-02
+1.0821803338775157e-02
+1.0808814030795555e-02
+1.0795838787378645e-02
+1.0782877595272808e-02
+1.0769930440828081e-02
+1.0756997309467227e-02
+1.0744078186500236e-02
+1.0731173058056728e-02
+1.0718281911383472e-02
+1.0705404733870934e-02
+1.0692541513945433e-02
+1.0679692240876769e-02
+1.0666856903395892e-02
+1.0654035485725412e-02
+1.0641227969924127e-02
+1.0628434339209264e-02
+1.0615654581893001e-02
+1.0602888687670538e-02
+1.0590136645911907e-02
+1.0577398445195549e-02
+1.0564674073936835e-02
+1.0551963518394984e-02
+1.0539266761765163e-02
+1.0526583787208884e-02
+1.0513914581368050e-02
+1.0501259133838267e-02
+1.0488617434150398e-02
+1.0475989470499962e-02
+1.0463375230412969e-02
+1.0450774700889813e-02
+1.0438187866557964e-02
+1.0425614711372509e-02
+1.0413055220691931e-02
+1.0400509383448154e-02
+1.0387977189117593e-02
+1.0375458626328054e-02
+1.0362953682449822e-02
+1.0350462344692554e-02
+1.0337984599168742e-02
+1.0325520431020495e-02
+1.0313069825550743e-02
+1.0300632769788225e-02
+1.0288209251665311e-02
+1.0275799259345103e-02
+1.0263402782055708e-02
+1.0251019809340236e-02
+1.0238650329134895e-02
+1.0226294325094669e-02
+1.0213951780206747e-02
+1.0201622679684531e-02
+1.0189307012182078e-02
+1.0177004766683144e-02
+1.0164715932867545e-02
+1.0152440501056629e-02
+1.0140178461021471e-02
+1.0127929797152596e-02
+1.0115694490899167e-02
+1.0103472525029142e-02
+1.0091263889072541e-02
+1.0079068574672589e-02
+1.0066886572266068e-02
+1.0054717868923521e-02
+1.0042562451130317e-02
+1.0030420305170448e-02
+1.0018291417003243e-02
+1.0006175772597532e-02
+9.9940733587559286e-03
+9.9819841630818217e-03
+9.9699081733574998e-03
+9.9578453788147902e-03
+9.9457957695126466e-03
+9.9337593346932353e-03
+9.9217360592518400e-03
+9.9097259266607840e-03
+9.8977289217147511e-03
+9.8857450330716249e-03
+9.8737742500882072e-03
+9.8618165619448906e-03
+9.8498719575253295e-03
+9.8379404256028601e-03
+9.8260219530652178e-03
+9.8141165249130569e-03
+9.8022241262312026e-03
+9.7903447438426362e-03
+9.7784783656053621e-03
+9.7666249797135497e-03
+9.7547845761408267e-03
+9.7429571454705228e-03
+9.7311426767655619e-03
+9.7193411544382238e-03
+9.7075525620368783e-03
+9.6957768849960883e-03
+9.6840141120613857e-03
+9.6722642323276448e-03
+9.6605272352347175e-03
+9.6488031105822214e-03
+9.6370918478941286e-03
+9.6253934334624165e-03
+9.6137078515710871e-03
+9.6020350869712549e-03
+9.5903751272947979e-03
+9.5787279612086062e-03
+9.5670935777990972e-03
+9.5554719674922073e-03
+9.5438631209559931e-03
+9.5322670263324159e-03
+9.5206836671349413e-03
+9.5091130265031552e-03
+9.4975550908278621e-03
+9.4860098500330180e-03
+9.4744772942000014e-03
+9.4629574131740932e-03
+9.4514501966475629e-03
+9.4399556336655106e-03
+9.4284737093524359e-03
+9.4170044073589258e-03
+9.4055477127044009e-03
+9.3941036150118513e-03
+9.3826721048638536e-03
+9.3712531722424473e-03
+9.3598468059808218e-03
+9.3484529947236040e-03
+9.3370717253994755e-03
+9.3257029829938928e-03
+9.3143467526087716e-03
+9.3030030220864531e-03
+9.2916717811215663e-03
+9.2803530193925447e-03
+9.2690467262514804e-03
+9.2577528909220230e-03
+9.2464715018763868e-03
+9.2352025449443272e-03
+9.2239460053832063e-03
+9.2127018695817488e-03
+9.2014701261889514e-03
+9.1902507641396097e-03
+9.1790437729091286e-03
+9.1678491426109253e-03
+9.1566668631668669e-03
+9.1454969214971350e-03
+9.1343393024062823e-03
+9.1231939911058362e-03
+9.1120609758363509e-03
+9.1009402460849077e-03
+9.0898317914718460e-03
+9.0787356020947344e-03
+9.0676516681498596e-03
+9.0565799780382480e-03
+9.0455205164142252e-03
+9.0344732675409177e-03
+9.0234382183697857e-03
+9.0124153591589571e-03
+9.0014046803352146e-03
+8.9904061718420070e-03
+8.9794198232676006e-03
+8.9684456237427729e-03
+8.9574835592279578e-03
+8.9465336143193016e-03
+8.9355957746512487e-03
+8.9246700298933508e-03
+8.9137563706872813e-03
+8.9028547871060331e-03
+8.8919652679824157e-03
+8.8810878019633752e-03
+8.8702223768494862e-03
+8.8593689793562431e-03
+8.8485275961992741e-03
+8.8376982151521753e-03
+8.8268808247990212e-03
+8.8160754139178042e-03
+8.8052819725726837e-03
+8.7945004914064071e-03
+8.7837309601516717e-03
+8.7729733648406506e-03
+8.7622276905733147e-03
+8.7514939237141234e-03
+8.7407720535098016e-03
+8.7300620696117923e-03
+8.7193639618825952e-03
+8.7086777204667710e-03
+8.6980033353683747e-03
+8.6873407940573893e-03
+8.6766900819802949e-03
+8.6660511849491646e-03
+8.6554240920721677e-03
+8.6448087940070202e-03
+8.6342052810757935e-03
+8.6236135421356233e-03
+8.6130335656531606e-03
+8.6024653397088324e-03
+8.5919088514626301e-03
+8.5813640879590057e-03
+8.5708310370956626e-03
+8.5603096879591292e-03
+8.5498000297674244e-03
+8.5393020524708804e-03
+8.5288157466293091e-03
+8.5183411024171221e-03
+8.5078781066866647e-03
+8.4974267446586271e-03
+8.4869870023067222e-03
+8.4765588690112262e-03
+8.4661423351010158e-03
+8.4557373908681743e-03
+8.4453440265129555e-03
+8.4349622321885139e-03
+8.4245919963732586e-03
+8.4142333051125274e-03
+8.4038861443586979e-03
+8.3935505018385894e-03
+8.3832263668181164e-03
+8.3729137287592396e-03
+8.3626125783804878e-03
+8.3523229070450056e-03
+8.3420447052681146e-03
+8.3317779595780354e-03
+8.3215226553415549e-03
+8.3112787791198833e-03
+8.3010463205892612e-03
+8.2908252699261629e-03
+8.2806156172432841e-03
+8.2704173525566787e-03
+8.2602304657793477e-03
+8.2500549449907121e-03
+8.2398907766128397e-03
+8.2297379472547286e-03
+8.2195964457780369e-03
+8.2094662622510788e-03
+8.1993473868035276e-03
+8.1892398098096369e-03
+8.1791435217169802e-03
+8.1690585119807372e-03
+8.1589847673477957e-03
+8.1489222741272568e-03
+8.1388710198903175e-03
+8.1288309942026717e-03
+8.1188021868235042e-03
+8.1087845878717469e-03
+8.0987781878051873e-03
+8.0887829768817796e-03
+8.0787989433059818e-03
+8.0688260741339415e-03
+8.0588643566905909e-03
+8.0489137797475491e-03
+8.0389743325405879e-03
+8.0290460047456862e-03
+8.0191287872958244e-03
+8.0092226713206222e-03
+7.9993276460690859e-03
+7.9894436976897694e-03
+7.9795708121515908e-03
+7.9697089778704450e-03
+7.9598581856639532e-03
+7.9500184264246661e-03
+7.9401896907802059e-03
+7.9303719692035788e-03
+7.9205652515618105e-03
+7.9107695244631741e-03
+7.9009847734229175e-03
+7.8912109853760907e-03
+7.8814481515075765e-03
+7.8716962637808852e-03
+7.8619553131332575e-03
+7.8522252887364696e-03
+7.8425061795654710e-03
+7.8327979740557777e-03
+7.8231006600911999e-03
+7.8134142256249435e-03
+7.8037386596257544e-03
+7.7940739516808057e-03
+7.7844200915748443e-03
+7.7747770701615719e-03
+7.7651448786700090e-03
+7.7555235072641372e-03
+7.7459129427692817e-03
+7.7363131713756774e-03
+7.7267241808581808e-03
+7.7171459618368020e-03
+7.7075785052223194e-03
+7.6980218017738827e-03
+7.6884758420890384e-03
+7.6789406165531128e-03
+7.6694161132247543e-03
+7.6599023186844917e-03
+7.6503992199964087e-03
+7.6409068072391152e-03
+7.6314250716005188e-03
+7.6219540040633176e-03
+7.6124935949308187e-03
+7.6030438343570855e-03
+7.5936047114261848e-03
+7.5841762132165908e-03
+7.5747583266538238e-03
+7.5653510405580202e-03
+7.5559543458534840e-03
+7.5465682335465276e-03
+7.5371926943093555e-03
+7.5278277185927781e-03
+7.5184732965360461e-03
+7.5091294163584770e-03
+7.4997960655400608e-03
+7.4904732320948538e-03
+7.4811609058798561e-03
+7.4718590771507129e-03
+7.4625677364838659e-03
+7.4532868750836357e-03
+7.4440164841539872e-03
+7.4347565526747400e-03
+7.4255070670515462e-03
+7.4162680137943174e-03
+7.4070393825823840e-03
+7.3978211652852193e-03
+7.3886133536454814e-03
+7.3794159382882156e-03
+7.3702289093881693e-03
+7.3610522565967758e-03
+7.3518859676825381e-03
+7.3427300299964823e-03
+7.3335844318973935e-03
+7.3244491638042456e-03
+7.3153242163959738e-03
+7.3062095806236804e-03
+7.2971052477667558e-03
+7.2880112089620279e-03
+7.2789274531459792e-03
+7.2698539676696941e-03
+7.2607907401233372e-03
+7.2517377599857751e-03
+7.2426950175316918e-03
+7.2336625033500692e-03
+7.2246402092077076e-03
+7.2156281271406279e-03
+7.2066262475893378e-03
+7.1976345575865356e-03
+7.1886530437795474e-03
+7.1796816947342426e-03
+7.1707205014284415e-03
+7.1617694549967375e-03
+7.1528285466228962e-03
+7.1438977675276202e-03
+7.1349771085956228e-03
+7.1260665582703808e-03
+7.1171661039199233e-03
+7.1082757334954673e-03
+7.0993954372787337e-03
+7.0905252061300829e-03
+7.0816650311689693e-03
+7.0728149040931877e-03
+7.0639748166264633e-03
+7.0551447584164461e-03
+7.0463247163902046e-03
+7.0375146774562820e-03
+7.0287146310672958e-03
+7.0199245686679550e-03
+7.0111444817289410e-03
+7.0023743615131532e-03
+6.9936141991878203e-03
+6.9848639854055280e-03
+6.9761237086818587e-03
+6.9673933569799730e-03
+6.9586729189764635e-03
+6.9499623850127262e-03
+6.9412617456773712e-03
+6.9325709920034558e-03
+6.9238901156312106e-03
+6.9152191081130829e-03
+6.9065579588492403e-03
+6.8979066554832645e-03
+6.8892651858760874e-03
+6.8806335400449191e-03
+6.8720117090444004e-03
+6.8633996840363068e-03
+6.8547974566204664e-03
+6.8462050185124261e-03
+6.8376223602425344e-03
+6.8290494694490328e-03
+6.8204863333770254e-03
+6.8119329411880872e-03
+6.8033892847735407e-03
+6.7948553561983129e-03
+6.7863311469129597e-03
+6.7778166478454430e-03
+6.7693118496554459e-03
+6.7608167408756883e-03
+6.7523313089699324e-03
+6.7438555420912347e-03
+6.7353894315796709e-03
+6.7269329696843837e-03
+6.7184861482989201e-03
+6.7100489584089778e-03
+6.7016213908398618e-03
+6.6932034354713092e-03
+6.6847950807786089e-03
+6.6763963152006731e-03
+6.6680071286257898e-03
+6.6596275122270477e-03
+6.6512574572095825e-03
+6.6428969546676285e-03
+6.6345459956372137e-03
+6.6262045709283672e-03
+6.6178726702704411e-03
+6.6095502830695249e-03
+6.6012373987886378e-03
+6.5929340070430198e-03
+6.5846400974954910e-03
+6.5763556611531191e-03
+6.5680806911053670e-03
+6.5598151804628149e-03
+6.5515591191751014e-03
+6.5433124942719263e-03
+6.5350752930321511e-03
+6.5268475061059789e-03
+6.5186291259909926e-03
+6.5104201449717502e-03
+6.5022205541667676e-03
+6.4940303443283337e-03
+6.4858495057115153e-03
+6.4776780271817158e-03
+6.4695158973804750e-03
+6.4613631061013962e-03
+6.4532196449997737e-03
+6.4450855058931023e-03
+6.4369606804448570e-03
+6.4288451601702502e-03
+6.4207389363613275e-03
+6.4126419981558672e-03
+6.4045543334594873e-03
+6.3964759306967770e-03
+6.3884067811056386e-03
+6.3803468768479418e-03
+6.3722962099766528e-03
+6.3642547722243745e-03
+6.3562225552508036e-03
+6.3481995496040599e-03
+6.3401857439581294e-03
+6.3321811268645372e-03
+6.3241856882121049e-03
+6.3161994192310481e-03
+6.3082223112546762e-03
+6.3002543560821984e-03
+6.2922955457909088e-03
+6.2843458720403794e-03
+6.2764053241579614e-03
+6.2684738906691167e-03
+6.2605515607691243e-03
+6.2526383257088761e-03
+6.2447341771352076e-03
+6.2368391069871224e-03
+6.2289531077176939e-03
+6.2210761717336411e-03
+6.2132082889827089e-03
+6.2053494468424630e-03
+6.1974996328750098e-03
+6.1896588380275551e-03
+6.1818270553553210e-03
+6.1740042777066861e-03
+6.1661904965434220e-03
+6.1583857028278226e-03
+6.1505898872210880e-03
+6.1428030394195792e-03
+6.1350251489318145e-03
+6.1272562058103499e-03
+6.1194962011069361e-03
+6.1117451260046876e-03
+6.1040029723389523e-03
+6.0962697326554759e-03
+6.0885453993213823e-03
+6.0808299621872407e-03
+6.0731234094689029e-03
+6.0654257298037610e-03
+6.0577369145693605e-03
+6.0500569561761060e-03
+6.0423858468711105e-03
+6.0347235783455942e-03
+6.0270701421676976e-03
+6.0194255291809570e-03
+6.0117897288394107e-03
+6.0041627304820658e-03
+5.9965445246801408e-03
+5.9889351034034541e-03
+5.9813344586661186e-03
+5.9737425820930159e-03
+5.9661594650453273e-03
+5.9585850986839314e-03
+5.9510194729185967e-03
+5.9434625771656808e-03
+5.9359144014029088e-03
+5.9283749375922947e-03
+5.9208441781309126e-03
+5.9133221151158955e-03
+5.9058087400437010e-03
+5.8983040443098787e-03
+5.8908080183790353e-03
+5.8833206516145974e-03
+5.8758419334433466e-03
+5.8683718549674075e-03
+5.8609104084724421e-03
+5.8534575862264860e-03
+5.8460133802113465e-03
+5.8385777822907436e-03
+5.8311507839041285e-03
+5.8237323749235799e-03
+5.8163225448629296e-03
+5.8089212838695710e-03
+5.8015285834162921e-03
+5.7941444351550745e-03
+5.7867688311799845e-03
+5.7794017641301073e-03
+5.7720432265168297e-03
+5.7646932085909904e-03
+5.7573516989384340e-03
+5.7500186865402101e-03
+5.7426941634477610e-03
+5.7353781230370495e-03
+5.7280705582789465e-03
+5.7207714605536971e-03
+5.7134808208546021e-03
+5.7061986298731545e-03
+5.6989248776410720e-03
+5.6916595541282918e-03
+5.6844026502692524e-03
+5.6771541582377660e-03
+5.6699140702857961e-03
+5.6626823786157165e-03
+5.6554590753918168e-03
+5.6482441525634091e-03
+5.6410376004870548e-03
+5.6338394088010658e-03
+5.6266495675469539e-03
+5.6194680684192025e-03
+5.6122949035322970e-03
+5.6051300650213310e-03
+5.5979735450684895e-03
+5.5908253358403215e-03
+5.5836854285785179e-03
+5.5765538132859106e-03
+5.5694304799338732e-03
+5.5623154193703353e-03
+5.5552086231447752e-03
+5.5481100829813043e-03
+5.5410197918178035e-03
+5.5339377431641475e-03
+5.5268639297771510e-03
+5.5197983411900166e-03
+5.5127409660813576e-03
+5.5056917943102981e-03
+5.4986508185563337e-03
+5.4916180318986619e-03
+5.4845934268370703e-03
+5.4775769950621868e-03
+5.4705687281717671e-03
+5.4635686172094123e-03
+5.4565766527564777e-03
+5.4495928254742754e-03
+5.4426171268002494e-03
+5.4356495485539634e-03
+5.4286900827150578e-03
+5.4217387219665566e-03
+5.4147954591854163e-03
+5.4078602863177954e-03
+5.4009331929840343e-03
+5.3940141684743299e-03
+5.3871032034644925e-03
+5.3802002906480177e-03
+5.3733054228825849e-03
+5.3664185931158858e-03
+5.3595397943738644e-03
+5.3526690193798901e-03
+5.3458062582053224e-03
+5.3389514995577968e-03
+5.3321047328379499e-03
+5.3252659507464486e-03
+5.3184351469489216e-03
+5.3116123146846814e-03
+5.3047974460782446e-03
+5.2979905330614334e-03
+5.2911915668396835e-03
+5.2844005375153446e-03
+5.2776174351714311e-03
+5.2708422513041810e-03
+5.2640749786901390e-03
+5.2573156101383880e-03
+5.2505641383321653e-03
+5.2438205558871399e-03
+5.2370848550360978e-03
+5.2303570261332385e-03
+5.2236370589576796e-03
+5.2169249440235689e-03
+5.2102206738564366e-03
+5.2035242413214023e-03
+5.1968356392024491e-03
+5.1901548601550381e-03
+5.1834818967637312e-03
+5.1768167403762281e-03
+5.1701593811725689e-03
+5.1635098094372171e-03
+5.1568680169058060e-03
+5.1502339961273791e-03
+5.1436077397098261e-03
+5.1369892405181989e-03
+5.1303784914994840e-03
+5.1237754849308018e-03
+5.1171802111706129e-03
+5.1105926602496975e-03
+5.1040128231780906e-03
+5.0974406925840630e-03
+5.0908762612515510e-03
+5.0843195220545197e-03
+5.0777704679555048e-03
+5.0712290917469217e-03
+5.0646953844458486e-03
+5.0581693360308164e-03
+5.0516509368388699e-03
+5.0451401792171550e-03
+5.0386370561893374e-03
+5.0321415607369763e-03
+5.0256536857138179e-03
+5.0191734239388120e-03
+5.0127007673397509e-03
+5.0062357063077592e-03
+4.9997782311348967e-03
+4.9933283333910812e-03
+4.9868860059561551e-03
+4.9804512417656200e-03
+4.9740240337132202e-03
+4.9676043746672126e-03
+4.9611922572130856e-03
+4.9547876723331340e-03
+4.9483906104448453e-03
+4.9420010624640527e-03
+4.9356190208741891e-03
+4.9292444784674082e-03
+4.9228774281918257e-03
+4.9165178632762496e-03
+4.9101657769219393e-03
+4.9038211608518675e-03
+4.8974840052099285e-03
+4.8911543002266048e-03
+4.8848320380017567e-03
+4.8785172118256141e-03
+4.8722098149592778e-03
+4.8659098403761357e-03
+4.8596172809433225e-03
+4.8533321290594915e-03
+4.8470543755817757e-03
+4.8407840110578238e-03
+4.8345210268136317e-03
+4.8282654156375920e-03
+4.8220171704844430e-03
+4.8157762844495576e-03
+4.8095427507848596e-03
+4.8033165626155958e-03
+4.7970977114355469e-03
+4.7908861876549292e-03
+4.7846819819556121e-03
+4.7784850868417420e-03
+4.7722954955209907e-03
+4.7661132011935278e-03
+4.7599381970284439e-03
+4.7537704761814936e-03
+4.7476100309745651e-03
+4.7414568520935587e-03
+4.7353109300734978e-03
+4.7291722566529405e-03
+4.7230408249665633e-03
+4.7169166282305421e-03
+4.7107996597034315e-03
+4.7046899126731365e-03
+4.6985873801563749e-03
+4.6924920533829052e-03
+4.6864039228607692e-03
+4.6803229796231853e-03
+4.6742492166096930e-03
+4.6681826271901591e-03
+4.6621232046729424e-03
+4.6560709422403448e-03
+4.6500258330285484e-03
+4.6439878691536462e-03
+4.6379570414984946e-03
+4.6319333409670215e-03
+4.6259167597548301e-03
+4.6199072909903407e-03
+4.6139049278504209e-03
+4.6079096637036895e-03
+4.6019214919997605e-03
+4.5959404057033058e-03
+4.5899663959395398e-03
+4.5839994534023331e-03
+4.5780395695764284e-03
+4.5720867376398784e-03
+4.5661409509889098e-03
+4.5602022030090750e-03
+4.5542704870724744e-03
+4.5483457964512371e-03
+4.5424281229829045e-03
+4.5365174574249255e-03
+4.5306137907608424e-03
+4.5247171158091315e-03
+4.5188274261986046e-03
+4.5129447154853763e-03
+4.5070689769224305e-03
+4.5012002036845522e-03
+4.4953383883244115e-03
+4.4894835220026094e-03
+4.4836355957164767e-03
+4.4777946014879846e-03
+4.4719605326849201e-03
+4.4661333827715460e-03
+4.4603131452896237e-03
+4.4544998138417412e-03
+4.4486933818001151e-03
+4.4428938407632818e-03
+4.4371011815111019e-03
+4.4313153952700163e-03
+4.4255364751458436e-03
+4.4197644147338120e-03
+4.4139992076040893e-03
+4.4082408472682294e-03
+4.4024893272066896e-03
+4.3967446399024879e-03
+4.3910067764728845e-03
+4.3852757280187660e-03
+4.3795514869928590e-03
+4.3738340469537231e-03
+4.3681234014872703e-03
+4.3624195441381219e-03
+4.3567224684309879e-03
+4.3510321675339515e-03
+4.3453486330573459e-03
+4.3396718561879493e-03
+4.3340018287187348e-03
+4.3283385439255879e-03
+4.3226819953085978e-03
+4.3170321764481592e-03
+4.3113890810393147e-03
+4.3057527027086833e-03
+4.3001230337286330e-03
+4.2945000652169713e-03
+4.2888837884507485e-03
+4.2832741963703220e-03
+4.2776712827539976e-03
+4.2720750413387252e-03
+4.2664854656426785e-03
+4.2609025491202671e-03
+4.2553262847304062e-03
+4.2497566641641034e-03
+4.2441936789268222e-03
+4.2386373212998348e-03
+4.2330875847193979e-03
+4.2275444627221468e-03
+4.2220079489643835e-03
+4.2164780372087318e-03
+4.2109547210531888e-03
+4.2054379925916792e-03
+4.1999278431268314e-03
+4.1944242642966596e-03
+4.1889272493847137e-03
+4.1834367921682039e-03
+4.1779528864218608e-03
+4.1724755259135325e-03
+4.1670047043947580e-03
+4.1615404147029135e-03
+4.1560826482559378e-03
+4.1506313964119650e-03
+4.1451866517871281e-03
+4.1397484081622986e-03
+4.1343166593622825e-03
+4.1288913992122579e-03
+4.1234726215376013e-03
+4.1180603198632693e-03
+4.1126544861999912e-03
+4.1072551120831221e-03
+4.1018621895465299e-03
+4.0964757120217441e-03
+4.0910956731844556e-03
+4.0857220667882155e-03
+4.0803548867126872e-03
+4.0749941267988624e-03
+4.0696397798047563e-03
+4.0642918374435401e-03
+4.0589502915045683e-03
+4.0536151349586814e-03
+4.0482863614540758e-03
+4.0429639646994133e-03
+4.0376479386806498e-03
+4.0323382774745597e-03
+4.0270349745738822e-03
+4.0217380217573472e-03
+4.0164474105027128e-03
+4.0111631331938144e-03
+4.0058851837457467e-03
+4.0006135562143360e-03
+3.9953482444924490e-03
+3.9900892423091255e-03
+3.9848365432851168e-03
+3.9795901399783118e-03
+3.9743500243107103e-03
+3.9691161884143874e-03
+3.9638886256345733e-03
+3.9586673297349216e-03
+3.9534522945674751e-03
+3.9482435142547279e-03
+3.9430409829604857e-03
+3.9378446939331499e-03
+3.9326546388066480e-03
+3.9274708091035426e-03
+3.9222931976785847e-03
+3.9171217987821324e-03
+3.9119566067008036e-03
+3.9067976153918478e-03
+3.9016448186069246e-03
+3.8964982099046657e-03
+3.8913577817376930e-03
+3.8862235261594128e-03
+3.8810954355849195e-03
+3.8759735035956144e-03
+3.8708577240088526e-03
+3.8657480908098631e-03
+3.8606445982929333e-03
+3.8555472407390888e-03
+3.8504560111698601e-03
+3.8453709012318347e-03
+3.8402919026376387e-03
+3.8352190086971163e-03
+3.8301522137600573e-03
+3.8250915121481937e-03
+3.8200368979030529e-03
+3.8149883649602158e-03
+3.8099459068796551e-03
+3.8049095159547021e-03
+3.7998791842174611e-03
+3.7948549043571155e-03
+3.7898366703258768e-03
+3.7848244762220596e-03
+3.7798183162263397e-03
+3.7748181846130840e-03
+3.7698240755458644e-03
+3.7648359817426987e-03
+3.7598538949400089e-03
+3.7548778071331609e-03
+3.7499077121009631e-03
+3.7449436043273713e-03
+3.7399854782246156e-03
+3.7350333279451134e-03
+3.7300871475792700e-03
+3.7251469305871914e-03
+3.7202126691636829e-03
+3.7152843553821886e-03
+3.7103619822717701e-03
+3.7054455439944432e-03
+3.7005350347782229e-03
+3.6956304488548640e-03
+3.6907317804587675e-03
+3.6858390236378957e-03
+3.6809521711814387e-03
+3.6760712153580065e-03
+3.6711961487557831e-03
+3.6663269651538073e-03
+3.6614636586076604e-03
+3.6566062232778270e-03
+3.6517546535447822e-03
+3.6469089437904619e-03
+3.6420690874826517e-03
+3.6372350769595849e-03
+3.6324069045644281e-03
+3.6275845636929514e-03
+3.6227680485179984e-03
+3.6179573532480126e-03
+3.6131524722151933e-03
+3.6083533998052548e-03
+3.6035601300292495e-03
+3.5987726554411875e-03
+3.5939909682445475e-03
+3.5892150613105948e-03
+3.5844449289739785e-03
+3.5796805657594042e-03
+3.5749219660430038e-03
+3.5701691240095311e-03
+3.5654220337681618e-03
+3.5606806884864511e-03
+3.5559450806072978e-03
+3.5512152027243802e-03
+3.5464910486957433e-03
+3.5417726129509893e-03
+3.5370598899027756e-03
+3.5323528738832950e-03
+3.5276515592021374e-03
+3.5229559396638003e-03
+3.5182660079158233e-03
+3.5135817564626000e-03
+3.5089031785695978e-03
+3.5042302685240941e-03
+3.4995630206905329e-03
+3.4949014295199590e-03
+3.4902454895328894e-03
+3.4855951950921596e-03
+3.4809505393067455e-03
+3.4763115146932977e-03
+3.4716781140520093e-03
+3.4670503314095983e-03
+3.4624281611204352e-03
+3.4578115975761508e-03
+3.4532006352576048e-03
+3.4485952686426256e-03
+3.4439954914638020e-03
+3.4394012964105796e-03
+3.4348126761547136e-03
+3.4302296243899520e-03
+3.4256521356644978e-03
+3.4210802045331612e-03
+3.4165138253880699e-03
+3.4119529925410643e-03
+3.4073977000833879e-03
+3.4028479411204794e-03
+3.3983037084829057e-03
+3.3937649954228813e-03
+3.3892317962488567e-03
+3.3847041054321102e-03
+3.3801819174498083e-03
+3.3756652267877140e-03
+3.3711540278835842e-03
+3.3666483142907205e-03
+3.3621480787917779e-03
+3.3576533142748708e-03
+3.3531640147719541e-03
+3.3486801749045818e-03
+3.3442017892760492e-03
+3.3397288523808878e-03
+3.3352613586809712e-03
+3.3307993022642615e-03
+3.3263426762388053e-03
+3.3218914735640118e-03
+3.3174456877672416e-03
+3.3130053132403485e-03
+3.3085703444518991e-03
+3.3041407759515119e-03
+3.2997166023624016e-03
+3.2952978182022915e-03
+3.2908844169949013e-03
+3.2864763917289617e-03
+3.2820737355886151e-03
+3.2776764427463758e-03
+3.2732845076787909e-03
+3.2688979249383692e-03
+3.2645166892857399e-03
+3.2601407955056374e-03
+3.2557702376614472e-03
+3.2514050086712844e-03
+3.2470451013969347e-03
+3.2426905096481244e-03
+3.2383412281315202e-03
+3.2339972515863947e-03
+3.2296585747265817e-03
+3.2253251922516215e-03
+3.2209970986335585e-03
+3.2166742871692863e-03
+3.2123567507775352e-03
+3.2080444827929356e-03
+3.2037374777448449e-03
+3.1994357303762456e-03
+3.1951392354676012e-03
+3.1908479878614581e-03
+3.1865619823631388e-03
+3.1822812128123336e-03
+3.1780056720966407e-03
+3.1737353531826763e-03
+3.1694702502596843e-03
+3.1652103582338158e-03
+3.1609556720007576e-03
+3.1567061863500864e-03
+3.1524618960353220e-03
+3.1482227954336916e-03
+3.1439888777910464e-03
+3.1397601361490336e-03
+3.1355365641712370e-03
+3.1313181565962044e-03
+3.1271049082689148e-03
+3.1228968140259786e-03
+3.1186938686954086e-03
+3.1144960670096379e-03
+3.1103034026704469e-03
+3.1061158687490415e-03
+3.1019334585266145e-03
+3.0977561665312633e-03
+3.0935839877316374e-03
+3.0894169170677449e-03
+3.0852549493877936e-03
+3.0810980795161242e-03
+3.0769463017283442e-03
+3.0727996093101533e-03
+3.0686579954720739e-03
+3.0645214541720057e-03
+3.0603899801680055e-03
+3.0562635682729183e-03
+3.0521422134779999e-03
+3.0480259108883780e-03
+3.0439146553866820e-03
+3.0398084405149381e-03
+3.0357072593194343e-03
+3.0316111052588711e-03
+3.0275199731556132e-03
+3.0234338581120886e-03
+3.0193527551387860e-03
+3.0152766590730391e-03
+3.0112055647092090e-03
+3.0071394661688724e-03
+3.0030783568230088e-03
+2.9990222300860102e-03
+2.9949710803776723e-03
+2.9909249027870984e-03
+2.9868836923839072e-03
+2.9828474440393737e-03
+2.9788161525479782e-03
+2.9747898124382849e-03
+2.9707684173197278e-03
+2.9667519606073746e-03
+2.9627404362486034e-03
+2.9587338392376619e-03
+2.9547321646879233e-03
+2.9507354076209092e-03
+2.9467435629513491e-03
+2.9427566255251533e-03
+2.9387745893798864e-03
+2.9347974479919429e-03
+2.9308251949849511e-03
+2.9268578250278257e-03
+2.9228953332127092e-03
+2.9189377146027059e-03
+2.9149849641513076e-03
+2.9110370767846173e-03
+2.9070940470467660e-03
+2.9031558686972358e-03
+2.8992225354145819e-03
+2.8952940413953330e-03
+2.8913703814636522e-03
+2.8874515505017588e-03
+2.8835375436701781e-03
+2.8796283563308832e-03
+2.8757239836525298e-03
+2.8718244194329960e-03
+2.8679296568897249e-03
+2.8640396896268492e-03
+2.8601545127261638e-03
+2.8562741216195653e-03
+2.8523985115762244e-03
+2.8485276775160589e-03
+2.8446616143011222e-03
+2.8408003163304129e-03
+2.8369437774181236e-03
+2.8330919913895579e-03
+2.8292449527752696e-03
+2.8254026566380138e-03
+2.8215650980625761e-03
+2.8177322721989226e-03
+2.8139041742258758e-03
+2.8100807990777805e-03
+2.8062621407142232e-03
+2.8024481928537329e-03
+2.7986389495889053e-03
+2.7948344058513993e-03
+2.7910345566901367e-03
+2.7872393972755965e-03
+2.7834489229382835e-03
+2.7796631289603154e-03
+2.7758820097069847e-03
+2.7721055588223915e-03
+2.7683337700670019e-03
+2.7645666382426653e-03
+2.7608041586330680e-03
+2.7570463265222333e-03
+2.7532931371846612e-03
+2.7495445858907223e-03
+2.7458006674691759e-03
+2.7420613757132041e-03
+2.7383267042828409e-03
+2.7345966475049678e-03
+2.7308712006216601e-03
+2.7271503589448541e-03
+2.7234341178443708e-03
+2.7197224727374915e-03
+2.7160154189002235e-03
+2.7123129504570687e-03
+2.7086150609758352e-03
+2.7049217443176551e-03
+2.7012329956445963e-03
+2.6975488104746389e-03
+2.6938691842394551e-03
+2.6901941121590446e-03
+2.6865235894119530e-03
+2.6828576107080218e-03
+2.6791961700864055e-03
+2.6755392615695197e-03
+2.6718868797939456e-03
+2.6682390199210663e-03
+2.6645956771569885e-03
+2.6609568469445348e-03
+2.6573225248460682e-03
+2.6536927061448666e-03
+2.6500673848378572e-03
+2.6464465545540023e-03
+2.6428302094514524e-03
+2.6392183450459589e-03
+2.6356109570632317e-03
+2.6320080409743319e-03
+2.6284095918703318e-03
+2.6248156047896289e-03
+2.6212260743629706e-03
+2.6176409948580974e-03
+2.6140603605887113e-03
+2.6104841663940927e-03
+2.6069124073906914e-03
+2.6033450787873984e-03
+2.5997821762264737e-03
+2.5962236954796469e-03
+2.5926696318011801e-03
+2.5891199790562119e-03
+2.5855747308925867e-03
+2.5820338817695862e-03
+2.5784974274093582e-03
+2.5749653636267977e-03
+2.5714376859040568e-03
+2.5679143894145121e-03
+2.5643954692624819e-03
+2.5608809200099157e-03
+2.5573707359201523e-03
+2.5538649113937459e-03
+2.5503634415403828e-03
+2.5468663216933409e-03
+2.5433735472701396e-03
+2.5398851139247633e-03
+2.5364010173433474e-03
+2.5329212525931353e-03
+2.5294458137365828e-03
+2.5259746947773332e-03
+2.5225078904376739e-03
+2.5190453961348100e-03
+2.5155872073350052e-03
+2.5121333197105143e-03
+2.5086837290519662e-03
+2.5052384309288672e-03
+2.5017974197308951e-03
+2.4983606894585014e-03
+2.4949282344544086e-03
+2.4915000500690056e-03
+2.4880761318376390e-03
+2.4846564753402208e-03
+2.4812410762321598e-03
+2.4778299301450031e-03
+2.4744230319835212e-03
+2.4710203759201674e-03
+2.4676219561808152e-03
+2.4642277678951063e-03
+2.4608378067346517e-03
+2.4574520683543805e-03
+2.4540705482754910e-03
+2.4506932419728349e-03
+2.4473201447039196e-03
+2.4439512510566952e-03
+2.4405865554943170e-03
+2.4372260528104954e-03
+2.4338697383833124e-03
+2.4305176076579236e-03
+2.4271696562639363e-03
+2.4238258800246262e-03
+2.4204862746809645e-03
+2.4171508349535289e-03
+2.4138195549244937e-03
+2.4104924288637828e-03
+2.4071694521948621e-03
+2.4038506207587304e-03
+2.4005359303635870e-03
+2.3972253767098905e-03
+2.3939189554718411e-03
+2.3906166618618682e-03
+2.3873184902402683e-03
+2.3840244349009184e-03
+2.3807344908319721e-03
+2.3774486537812187e-03
+2.3741669195303291e-03
+2.3708892838048838e-03
+2.3676157422938562e-03
+2.3643462905356752e-03
+2.3610809231495058e-03
+2.3578196344063145e-03
+2.3545624189297734e-03
+2.3513092725388983e-03
+2.3480601913032618e-03
+2.3448151710631624e-03
+2.3415742072171435e-03
+2.3383372951049542e-03
+2.3351044298148341e-03
+2.3318756061482516e-03
+2.3286508189218087e-03
+2.3254300633369562e-03
+2.3222133348570796e-03
+2.3190006290178164e-03
+2.3157919417878111e-03
+2.3125872693073200e-03
+2.3093866073363735e-03
+2.3061899502853636e-03
+2.3029972922699918e-03
+2.2998086279977124e-03
+2.2966239533667647e-03
+2.2934432644158760e-03
+2.2902665571099099e-03
+2.2870938273259612e-03
+2.2839250708713743e-03
+2.2807602826951071e-03
+2.2775994571369159e-03
+2.2744425886837799e-03
+2.2712896729068259e-03
+2.2681407058266572e-03
+2.2649956834108332e-03
+2.2618546014243832e-03
+2.2587174555834038e-03
+2.2555842412948579e-03
+2.2524549533158482e-03
+2.2493295863363553e-03
+2.2462081355695807e-03
+2.2430905968767105e-03
+2.2399769661567213e-03
+2.2368672392737597e-03
+2.2337614120662001e-03
+2.2306594802591613e-03
+2.2275614387762110e-03
+2.2244672821934387e-03
+2.2213770053189255e-03
+2.2182906038702710e-03
+2.2152080737867469e-03
+2.2121294110380952e-03
+2.2090546116609938e-03
+2.2059836716843309e-03
+2.2029165864973698e-03
+2.1998533506636941e-03
+2.1967939587465100e-03
+2.1937384061237178e-03
+2.1906866888016332e-03
+2.1876388028039318e-03
+2.1845947441626701e-03
+2.1815545089137046e-03
+2.1785180928342259e-03
+2.1754854906444886e-03
+2.1724566967969432e-03
+2.1694317062532702e-03
+2.1664105151444481e-03
+2.1633931197602690e-03
+2.1603795161939505e-03
+2.1573697002741756e-03
+2.1543636677774257e-03
+2.1513614139431823e-03
+2.1483629335791910e-03
+2.1453682215751167e-03
+2.1423772735621404e-03
+2.1393900855225852e-03
+2.1364066534660586e-03
+2.1334269735100463e-03
+2.1304510417995302e-03
+2.1274788540582841e-03
+2.1245104049988006e-03
+2.1215456891999322e-03
+2.1185847019386870e-03
+2.1156274394715634e-03
+2.1126738981122137e-03
+2.1097240738987204e-03
+2.1067779626382449e-03
+2.1038355600746213e-03
+2.1008968614855857e-03
+2.0979618619182878e-03
+2.0950305565397656e-03
+2.0921029410629790e-03
+2.0891790113544300e-03
+2.0862587634025839e-03
+2.0833421935021585e-03
+2.0804292979828549e-03
+2.0775200725385045e-03
+2.0746145119327182e-03
+2.0717126108983630e-03
+2.0688143649548142e-03
+2.0659197703083135e-03
+2.0630288231755787e-03
+2.0601415196630749e-03
+2.0572578558203007e-03
+2.0543778275400842e-03
+2.0515014299794568e-03
+2.0486286580795425e-03
+2.0457595070649793e-03
+2.0428939729053700e-03
+2.0400320516928225e-03
+2.0371737396129592e-03
+2.0343190329940742e-03
+2.0314679281348193e-03
+2.0286204205206145e-03
+2.0257765048967784e-03
+2.0229361760947554e-03
+2.0200994299885530e-03
+2.0172662630146380e-03
+2.0144366715504785e-03
+2.0116106516550160e-03
+2.0087881992886872e-03
+2.0059693101972626e-03
+2.0031539795363268e-03
+2.0003422023680321e-03
+1.9975339742140043e-03
+1.9947292913270660e-03
+1.9919281500202571e-03
+1.9891305465027189e-03
+1.9863364768850636e-03
+1.9835459372137773e-03
+1.9807589229493957e-03
+1.9779754292224678e-03
+1.9751954512942402e-03
+1.9724189851225058e-03
+1.9696460268900590e-03
+1.9668765728041932e-03
+1.9641106191424051e-03
+1.9613481621887771e-03
+1.9585891977930816e-03
+1.9558337210840212e-03
+1.9530817271486217e-03
+1.9503332116662432e-03
+1.9475881709016059e-03
+1.9448466011385420e-03
+1.9421084986013136e-03
+1.9393738594791711e-03
+1.9366426798591606e-03
+1.9339149552749710e-03
+1.9311906810731997e-03
+1.9284698527628221e-03
+1.9257524663427565e-03
+1.9230385179052119e-03
+1.9203280036528703e-03
+1.9176209199798062e-03
+1.9149172632751670e-03
+1.9122170293459418e-03
+1.9095202133996387e-03
+1.9068268106756184e-03
+1.9041368170574467e-03
+1.9014502288237534e-03
+1.8987670422650096e-03
+1.8960872537066239e-03
+1.8934108594862924e-03
+1.8907378557195015e-03
+1.8880682378200034e-03
+1.8854020010668812e-03
+1.8827391410712777e-03
+1.8800796540447925e-03
+1.8774235362668764e-03
+1.8747707841398255e-03
+1.8721213941977541e-03
+1.8694753629044237e-03
+1.8668326858405047e-03
+1.8641933580217137e-03
+1.8615573746304783e-03
+1.8589247319032798e-03
+1.8562954264674098e-03
+1.8536694548654444e-03
+1.8510468133575452e-03
+1.8484274981433355e-03
+1.8458115051808908e-03
+1.8431988299722874e-03
+1.8405894679825255e-03
+1.8379834150604880e-03
+1.8353806674843208e-03
+1.8327812215644958e-03
+1.8301850737294423e-03
+1.8275922204862951e-03
+1.8250026582253764e-03
+1.8224163825929177e-03
+1.8198333889464589e-03
+1.8172536728420972e-03
+1.8146772305266579e-03
+1.8121040583967904e-03
+1.8095341528754480e-03
+1.8069675104374382e-03
+1.8044041275475701e-03
+1.8018440001755108e-03
+1.7992871237139350e-03
+1.7967334935695418e-03
+1.7941831057504088e-03
+1.7916359566830700e-03
+1.7890920428169845e-03
+1.7865513606971104e-03
+1.7840139069071623e-03
+1.7814796778219970e-03
+1.7789486690568993e-03
+1.7764208760563305e-03
+1.7738962945222335e-03
+1.7713749206867511e-03
+1.7688567508534038e-03
+1.7663417815283573e-03
+1.7638300094638840e-03
+1.7613214313713420e-03
+1.7588160431979249e-03
+1.7563138403364170e-03
+1.7538148182594587e-03
+1.7513189730810070e-03
+1.7488263011872468e-03
+1.7463367990255617e-03
+1.7438504632727749e-03
+1.7413672906582450e-03
+1.7388872775301503e-03
+1.7364104194165701e-03
+1.7339367117521591e-03
+1.7314661504480417e-03
+1.7289987320184752e-03
+1.7265344530167325e-03
+1.7240733099998914e-03
+1.7216152995279061e-03
+1.7191604180827858e-03
+1.7167086615764533e-03
+1.7142600256678392e-03
+1.7118145061298421e-03
+1.7093720991952731e-03
+1.7069328012124484e-03
+1.7044966086740073e-03
+1.7020635183971130e-03
+1.6996335272289719e-03
+1.6972066314424918e-03
+1.6947828265528014e-03
+1.6923621080613986e-03
+1.6899444720626449e-03
+1.6875299151183298e-03
+1.6851184338116984e-03
+1.6827100247934791e-03
+1.6803046847456999e-03
+1.6779024101895288e-03
+1.6755031969715455e-03
+1.6731070407625282e-03
+1.6707139374565266e-03
+1.6683238834724493e-03
+1.6659368753071809e-03
+1.6635529095740424e-03
+1.6611719830465232e-03
+1.6587940924721785e-03
+1.6564192339768192e-03
+1.6540474031753304e-03
+1.6516785957513781e-03
+1.6493128080679771e-03
+1.6469500368173661e-03
+1.6445902786778950e-03
+1.6422335302574084e-03
+1.6398797881438771e-03
+1.6375290487463529e-03
+1.6351813080340383e-03
+1.6328365619146454e-03
+1.6304948065356123e-03
+1.6281560383882040e-03
+1.6258202539957975e-03
+1.6234874499799284e-03
+1.6211576230461986e-03
+1.6188307698419098e-03
+1.6165068864941112e-03
+1.6141859688664981e-03
+1.6118680129249964e-03
+1.6095530151158392e-03
+1.6072409720235493e-03
+1.6049318802728639e-03
+1.6026257365919071e-03
+1.6003225377194102e-03
+1.5980222800783010e-03
+1.5957249596191736e-03
+1.5934305722734524e-03
+1.5911391143414654e-03
+1.5888505824527947e-03
+1.5865649732545309e-03
+1.5842822834472548e-03
+1.5820025097598219e-03
+1.5797256488084242e-03
+1.5774516966637799e-03
+1.5751806492324361e-03
+1.5729125026127725e-03
+1.5706472534194988e-03
+1.5683848983536438e-03
+1.5661254341375215e-03
+1.5638688575266512e-03
+1.5616151652606391e-03
+1.5593643536984008e-03
+1.5571164188447804e-03
+1.5548713567312847e-03
+1.5526291637698653e-03
+1.5503898365824321e-03
+1.5481533718380623e-03
+1.5459197664336663e-03
+1.5436890173378091e-03
+1.5414611212386763e-03
+1.5392360740345793e-03
+1.5370138714912555e-03
+1.5347945097520343e-03
+1.5325779855747098e-03
+1.5303642957770730e-03
+1.5281534372546741e-03
+1.5259454069784237e-03
+1.5237402018533459e-03
+1.5215378180939074e-03
+1.5193382515168014e-03
+1.5171414980681059e-03
+1.5149475544070977e-03
+1.5127564174291076e-03
+1.5105680840215615e-03
+1.5083825510481266e-03
+1.5061998153638508e-03
+1.5040198734925609e-03
+1.5018427213956899e-03
+1.4996683550007734e-03
+1.4974967707200063e-03
+1.4953279654550517e-03
+1.4931619361287832e-03
+1.4909986796593133e-03
+1.4888381929618914e-03
+1.4866804728345634e-03
+1.4845255154217914e-03
+1.4823733166415937e-03
+1.4802238726095546e-03
+1.4780771800522599e-03
+1.4759332358153074e-03
+1.4737920368679026e-03
+1.4716535803982894e-03
+1.4695178635878094e-03
+1.4673848828761534e-03
+1.4652546339225211e-03
+1.4631271124310112e-03
+1.4610023150235967e-03
+1.4588802388978558e-03
+1.4567608812221791e-03
+1.4546442389420777e-03
+1.4525303089221373e-03
+1.4504190878684223e-03
+1.4483105719743212e-03
+1.4462047573319393e-03
+1.4441016402624858e-03
+1.4420012175109557e-03
+1.4399034858755808e-03
+1.4378084423560939e-03
+1.4357160841732021e-03
+1.4336264084918845e-03
+1.4315394116833527e-03
+1.4294550895995910e-03
+1.4273734382222014e-03
+1.4252944543849337e-03
+1.4232181352451644e-03
+1.4211444778942804e-03
+1.4190734791977475e-03
+1.4170051359718196e-03
+1.4149394448709977e-03
+1.4128764022373779e-03
+1.4108160043852609e-03
+1.4087582478617177e-03
+1.4067031294798316e-03
+1.4046506460804000e-03
+1.4026007946696146e-03
+1.4005535723664985e-03
+1.3985089762034212e-03
+1.3964670026390545e-03
+1.3944276479041133e-03
+1.3923909083444375e-03
+1.3903567807171736e-03
+1.3883252618713843e-03
+1.3862963487344625e-03
+1.3842700383918031e-03
+1.3822463279364648e-03
+1.3802252140960791e-03
+1.3782066931630589e-03
+1.3761907614353128e-03
+1.3741774156227648e-03
+1.3721666527284257e-03
+1.3701584697569066e-03
+1.3681528636811293e-03
+1.3661498314608436e-03
+1.3641493699562770e-03
+1.3621514756569401e-03
+1.3601561449668937e-03
+1.3581633744373012e-03
+1.3561731609293133e-03
+1.3541855013475680e-03
+1.3522003927454753e-03
+1.3502178323611153e-03
+1.3482378174020327e-03
+1.3462603444805291e-03
+1.3442854097674530e-03
+1.3423130095027813e-03
+1.3403431404941481e-03
+1.3383757997958755e-03
+1.3364109844770139e-03
+1.3344486916602224e-03
+1.3324889184802727e-03
+1.3305316618765252e-03
+1.3285769183580256e-03
+1.3266246843806515e-03
+1.3246749565615631e-03
+1.3227277317265972e-03
+1.3207830067363646e-03
+1.3188407787664287e-03
+1.3169010452358473e-03
+1.3149638034542718e-03
+1.3130290498627537e-03
+1.3110967805077766e-03
+1.3091669916511337e-03
+1.3072396804447346e-03
+1.3053148442679894e-03
+1.3033924804025311e-03
+1.3014725859049267e-03
+1.2995551577930594e-03
+1.2976401927827746e-03
+1.2957276871825415e-03
+1.2938176373090335e-03
+1.2919100400725710e-03
+1.2900048928618632e-03
+1.2881021930445723e-03
+1.2862019377146104e-03
+1.2843041238359439e-03
+1.2824087482992399e-03
+1.2805158076837062e-03
+1.2786252984855221e-03
+1.2767372173781585e-03
+1.2748515614618048e-03
+1.2729683278994402e-03
+1.2710875138490568e-03
+1.2692091164616343e-03
+1.2673331328685446e-03
+1.2654595598744480e-03
+1.2635883940096048e-03
+1.2617196318432235e-03
+1.2598532703393742e-03
+1.2579893066579405e-03
+1.2561277379545082e-03
+1.2542685613589656e-03
+1.2524117739936473e-03
+1.2505573728538641e-03
+1.2487053546151549e-03
+1.2468557159067565e-03
+1.2450084535253888e-03
+1.2431635645133536e-03
+1.2413210459421523e-03
+1.2394808950595912e-03
+1.2376431092677948e-03
+1.2358076859035466e-03
+1.2339746216851698e-03
+1.2321439130106710e-03
+1.2303155563845620e-03
+1.2284895488271594e-03
+1.2266658875110532e-03
+1.2248445696794424e-03
+1.2230255927614432e-03
+1.2212089542091942e-03
+1.2193946510566489e-03
+1.2175826796982678e-03
+1.2157730365004820e-03
+1.2139657183388281e-03
+1.2121607225532237e-03
+1.2103580464976997e-03
+1.2085576874995320e-03
+1.2067596428715292e-03
+1.2049639098127085e-03
+1.2031704849590984e-03
+1.2013793647729966e-03
+1.1995905459164398e-03
+1.1978040256022142e-03
+1.1960198011376211e-03
+1.1942378698575709e-03
+1.1924582291410130e-03
+1.1906808763500977e-03
+1.1889058084109125e-03
+1.1871330218350632e-03
+1.1853625131727249e-03
+1.1835942795105337e-03
+1.1818283182379586e-03
+1.1800646267322470e-03
+1.1783032022893820e-03
+1.1765440421788772e-03
+1.1747871435139850e-03
+1.1730325029570266e-03
+1.1712801170936419e-03
+1.1695299828158045e-03
+1.1677820975252793e-03
+1.1660364586671267e-03
+1.1642930635752692e-03
+1.1625519094735507e-03
+1.1608129935524135e-03
+1.1590763127065770e-03
+1.1573418636565407e-03
+1.1556096431836454e-03
+1.1538796484131932e-03
+1.1521518765871979e-03
+1.1504263250330057e-03
+1.1487029913355724e-03
+1.1469818731230600e-03
+1.1452629675846014e-03
+1.1435462711469205e-03
+1.1418317801827550e-03
+1.1401194916057700e-03
+1.1384094028879196e-03
+1.1367015115277942e-03
+1.1349958150344238e-03
+1.1332923109232558e-03
+1.1315909966005510e-03
+1.1298918688471945e-03
+1.1281949242220532e-03
+1.1265001594477288e-03
+1.1248075717660328e-03
+1.1231171585223117e-03
+1.1214289171601309e-03
+1.1197428453010839e-03
+1.1180589405651441e-03
+1.1163772000353336e-03
+1.1146976202171862e-03
+1.1130201976418158e-03
+1.1113449294641083e-03
+1.1096718132389339e-03
+1.1080008465092141e-03
+1.1063320267066825e-03
+1.1046653512217142e-03
+1.1030008173081582e-03
+1.1013384217672037e-03
+1.0996781613084640e-03
+1.0980200328802156e-03
+1.0963640338823625e-03
+1.0947101617674027e-03
+1.0930584140541521e-03
+1.0914087883357535e-03
+1.0897612821596700e-03
+1.0881158924674038e-03
+1.0864726157951898e-03
+1.0848314487918284e-03
+1.0831923888632486e-03
+1.0815554337098767e-03
+1.0799205809578685e-03
+1.0782878279728791e-03
+1.0766571720629474e-03
+1.0750286104018786e-03
+1.0734021398982210e-03
+1.0717777574372350e-03
+1.0701554601467256e-03
+1.0685352454377843e-03
+1.0669171107408541e-03
+1.0653010535292462e-03
+1.0636870713061676e-03
+1.0620751615179455e-03
+1.0604653212297861e-03
+1.0588575473518195e-03
+1.0572518368816399e-03
+1.0556481871372310e-03
+1.0540465955099717e-03
+1.0524470594567190e-03
+1.0508495765694848e-03
+1.0492541444465436e-03
+1.0476607603338644e-03
+1.0460694210485707e-03
+1.0444801234103279e-03
+1.0428928646304787e-03
+1.0413076422051857e-03
+1.0397244536409619e-03
+1.0381432964716741e-03
+1.0365641682428277e-03
+1.0349870663917003e-03
+1.0334119879418966e-03
+1.0318389298193005e-03
+1.0302678891432448e-03
+1.0286988634502739e-03
+1.0271318503281754e-03
+1.0255668472524771e-03
+1.0240038515562800e-03
+1.0224428605578352e-03
+1.0208838714925203e-03
+1.0193268815328887e-03
+1.0177718878685712e-03
+1.0162188878257775e-03
+1.0146678787914761e-03
+1.0131188581903748e-03
+1.0115718235972474e-03
+1.0100267726237070e-03
+1.0084837027183476e-03
+1.0069426109623064e-03
+1.0054034943901724e-03
+1.0038663501885890e-03
+1.0023311757452946e-03
+1.0007979684716415e-03
+9.9926672593170880e-04
+9.9773744581026485e-04
+9.9621012573778388e-04
+9.9468476290076884e-04
+9.9316135427930099e-04
+9.9163989694256503e-04
+9.9012038833880072e-04
+9.8860282601584068e-04
+9.8708720754599449e-04
+9.8557353055925322e-04
+9.8406179268768204e-04
+9.8255199128542670e-04
+9.8104412332345185e-04
+9.7953818576781981e-04
+9.7803417596747781e-04
+9.7653209158673386e-04
+9.7503193028943187e-04
+9.7353368965936624e-04
+9.7203736724144464e-04
+9.7054296051354860e-04
+9.6905046665951144e-04
+9.6755988278255615e-04
+9.6607120609531951e-04
+9.6458443408009098e-04
+9.6309956426184702e-04
+9.6161659425865432e-04
+9.6013552182240254e-04
+9.5865634469171864e-04
+9.5717906018619246e-04
+9.5570366526571548e-04
+9.5423015693198740e-04
+9.5275853264406346e-04
+9.5128879009307083e-04
+9.4982092696422270e-04
+9.4835494090702264e-04
+9.4689082956034558e-04
+9.4542859041435846e-04
+9.4396822057584502e-04
+9.4250971709504471e-04
+9.4105307726401590e-04
+9.3959829873733526e-04
+9.3814537919992465e-04
+9.3669431634725315e-04
+9.3524510788422469e-04
+9.3379775147046852e-04
+9.3235224435449671e-04
+9.3090858356698026e-04
+9.2946676623225592e-04
+9.2802678993796441e-04
+9.2658865241180058e-04
+9.2515235136957465e-04
+9.2371788449495309e-04
+9.2228524946285219e-04
+9.2085444374027177e-04
+9.1942546446911700e-04
+9.1799830877731053e-04
+9.1657297408387752e-04
+9.1514945807920790e-04
+9.1372775846538818e-04
+9.1230787295719915e-04
+9.1088979927644430e-04
+9.0947353506360112e-04
+9.0805907754561079e-04
+9.0664642381858796e-04
+9.0523557112798616e-04
+9.0382651714114310e-04
+9.0241925959930452e-04
+9.0101379624121390e-04
+8.9961012480153295e-04
+8.9820824300182510e-04
+8.9680814828578211e-04
+8.9540983782717505e-04
+8.9401330882000227e-04
+8.9261855877313223e-04
+8.9122558537723317e-04
+8.8983438634514613e-04
+8.8844495949615967e-04
+8.8705730268473959e-04
+8.8567141358060302e-04
+8.8428728930709996e-04
+8.8290492689084121e-04
+8.8152432365331624e-04
+8.8014547741788001e-04
+8.7876838605339665e-04
+8.7739304734974508e-04
+8.7601945901685362e-04
+8.7464761873529031e-04
+8.7327752391178103e-04
+8.7190917178806406e-04
+8.7054255965889646e-04
+8.6917768512827969e-04
+8.6781454590769194e-04
+8.6645313973895955e-04
+8.6509346445756696e-04
+8.6373551791446058e-04
+8.6237929772679908e-04
+8.6102480109648749e-04
+8.5967202519480362e-04
+8.5832096749946486e-04
+8.5697162581141201e-04
+8.5562399794799325e-04
+8.5427808173742150e-04
+8.5293387501473802e-04
+8.5159137553894441e-04
+8.5025058062196998e-04
+8.4891148741314375e-04
+8.4757409321227538e-04
+8.4623839580820438e-04
+8.4490439308849974e-04
+8.4357208291151663e-04
+8.4224146308144350e-04
+8.4091253138650140e-04
+8.3958528533808617e-04
+8.3825972214332674e-04
+8.3693583902927024e-04
+8.3561363364495944e-04
+8.3429310391611806e-04
+8.3297424775637216e-04
+8.3165706297508182e-04
+8.3034154734189626e-04
+8.2902769853176951e-04
+8.2771551389792955e-04
+8.2640499072683042e-04
+8.2509612648985157e-04
+8.2378891901638729e-04
+8.2248336617537241e-04
+8.2117946579301181e-04
+8.1987721564656744e-04
+8.1857661349391268e-04
+8.1727765688251978e-04
+8.1598034321599502e-04
+8.1468466993163641e-04
+8.1339063470300564e-04
+8.1209823529778118e-04
+8.1080746951851736e-04
+8.0951833529120068e-04
+8.0823083056776512e-04
+8.0694495308362643e-04
+8.0566070013640397e-04
+8.0437806897934070e-04
+8.0309705713848341e-04
+8.0181766246552614e-04
+8.0053988283514403e-04
+7.9926371617394061e-04
+7.9798916044554295e-04
+7.9671621354783192e-04
+7.9544487292582903e-04
+7.9417513583587764e-04
+7.9290699965515934e-04
+7.9164046221467314e-04
+7.9037552145122677e-04
+7.8911217527487460e-04
+7.8785042153915871e-04
+7.8659025808552907e-04
+7.8533168258170731e-04
+7.8407469247927450e-04
+7.8281928523126344e-04
+7.8156545850342003e-04
+7.8031321011960871e-04
+7.7906253792153985e-04
+7.7781343985174425e-04
+7.7656591389667405e-04
+7.7531995792275382e-04
+7.7407556932551375e-04
+7.7283274538625401e-04
+7.7159148360016465e-04
+7.7035178193459223e-04
+7.6911363841829455e-04
+7.6787705101432138e-04
+7.6664201760051111e-04
+7.6540853603200315e-04
+7.6417660390674328e-04
+7.6294621862337973e-04
+7.6171737762173431e-04
+7.6049007869067676e-04
+7.5926431977802150e-04
+7.5804009882728379e-04
+7.5681741376101527e-04
+7.5559626249593274e-04
+7.5437664283609692e-04
+7.5315855232561610e-04
+7.5194198847494936e-04
+7.5072694891793919e-04
+7.4951343145522728e-04
+7.4830143390861416e-04
+7.4709095425015074e-04
+7.4588199057324441e-04
+7.4467454091643628e-04
+7.4346860285616294e-04
+7.4226417374897286e-04
+7.4106125104683924e-04
+7.3985983261846218e-04
+7.3865991644469554e-04
+7.3746150050583330e-04
+7.3626458278081420e-04
+7.3506916124428526e-04
+7.3387523367842659e-04
+7.3268279759414634e-04
+7.3149185049415895e-04
+7.3030239009157650e-04
+7.2911441427662526e-04
+7.2792792095991918e-04
+7.2674290817607195e-04
+7.2555937402133731e-04
+7.2437731648950898e-04
+7.2319673310968456e-04
+7.2201762128023541e-04
+7.2083997855192344e-04
+7.1966380286011677e-04
+7.1848909220058679e-04
+7.1731584460398370e-04
+7.1614405815221942e-04
+7.1497373091200316e-04
+7.1380486059548860e-04
+7.1263744460378078e-04
+7.1147148037487170e-04
+7.1030696576381361e-04
+7.0914389884218121e-04
+7.0798227767208922e-04
+7.0682210026212311e-04
+7.0566336460483074e-04
+7.0450606858253606e-04
+7.0335020978652435e-04
+7.0219578576352409e-04
+7.0104279423051526e-04
+6.9989123316543326e-04
+6.9874110056810496e-04
+6.9759239443409392e-04
+6.9644511275506610e-04
+6.9529925349990989e-04
+6.9415481442765812e-04
+6.9301179318358803e-04
+6.9187018745088796e-04
+6.9072999510662498e-04
+6.8959121408799378e-04
+6.8845384236661418e-04
+6.8731787800919238e-04
+6.8618331909578608e-04
+6.8505016351459573e-04
+6.8391840884707441e-04
+6.8278805265877159e-04
+6.8165909276030469e-04
+6.8053152719576139e-04
+6.7940535401709657e-04
+6.7828057126236734e-04
+6.7715717696176692e-04
+6.7603516909312477e-04
+6.7491454536190308e-04
+6.7379530338523559e-04
+6.7267744087940340e-04
+6.7156095584768440e-04
+6.7044584634487784e-04
+6.6933211041972026e-04
+6.6821974611083583e-04
+6.6710875144792940e-04
+6.6599912428002791e-04
+6.6489086227679468e-04
+6.6378396311871557e-04
+6.6267842467768894e-04
+6.6157424493864484e-04
+6.6047142190794384e-04
+6.5936995370109816e-04
+6.5826983847066189e-04
+6.5717107425341192e-04
+6.5607365873522887e-04
+6.5497758953742924e-04
+6.5388286441919871e-04
+6.5278948137970896e-04
+6.5169743844518328e-04
+6.5060673371515588e-04
+6.4951736536499765e-04
+6.4842933154031751e-04
+6.4734263002320686e-04
+6.4625725837178308e-04
+6.4517321420945570e-04
+6.4409049555313666e-04
+6.4300910055983069e-04
+6.4192902738290048e-04
+6.4085027416360891e-04
+6.3977283903879194e-04
+6.3869671994988574e-04
+6.3762191448331351e-04
+6.3654842019982320e-04
+6.3547623497449608e-04
+6.3440535702124752e-04
+6.3333578456249695e-04
+6.3226751572471255e-04
+6.3120054857269102e-04
+6.3013488112687998e-04
+6.2907051114668587e-04
+6.2800743629425743e-04
+6.2694565433135934e-04
+6.2588516335160954e-04
+6.2482596151737675e-04
+6.2376804697409499e-04
+6.2271141783507727e-04
+6.2165607220367961e-04
+6.2060200800083474e-04
+6.1954922294255932e-04
+6.1849771475554162e-04
+6.1744748143064689e-04
+6.1639852113583229e-04
+6.1535083203594814e-04
+6.1430441225552570e-04
+6.1325925990336782e-04
+6.1221537300946581e-04
+6.1117274932922844e-04
+6.1013138655952503e-04
+6.0909128255983097e-04
+6.0805243551171858e-04
+6.0701484363312875e-04
+6.0597850509434446e-04
+6.0494341800985897e-04
+6.0390958047627362e-04
+6.0287699039887990e-04
+6.0184564554923564e-04
+6.0081554372778609e-04
+5.9978668294522733e-04
+5.9875906129802073e-04
+5.9773267691617189e-04
+5.9670752805132774e-04
+5.9568361298173661e-04
+5.9466092980508059e-04
+5.9363947624543011e-04
+5.9261924998674036e-04
+5.9160024892293832e-04
+5.9058247120412442e-04
+5.8956591500054160e-04
+5.8855057854583024e-04
+5.8753646011983811e-04
+5.8652355794378691e-04
+5.8551186982193739e-04
+5.8450139338068596e-04
+5.8349212637245982e-04
+5.8248406703501185e-04
+5.8147721372187825e-04
+5.8047156471090027e-04
+5.7946711811626955e-04
+5.7846387202755160e-04
+5.7746182441296414e-04
+5.7646097308641515e-04
+5.7546131586816223e-04
+5.7446285081815462e-04
+5.7346557617846735e-04
+5.7246949018966591e-04
+5.7147459104779565e-04
+5.7048087692904831e-04
+5.6948834595477833e-04
+5.6849699602646035e-04
+5.6750682499077227e-04
+5.6651783078385263e-04
+5.6553001154398491e-04
+5.6454336543816034e-04
+5.6355789067230036e-04
+5.6257358550393160e-04
+5.6159044818029664e-04
+5.6060847673242392e-04
+5.5962766902009262e-04
+5.5864802292113235e-04
+5.5766953648921460e-04
+5.5669220785996591e-04
+5.5571603520613655e-04
+5.5474101685487891e-04
+5.5376715117338819e-04
+5.5279443636318691e-04
+5.5182287023441555e-04
+5.5085245054540069e-04
+5.4988317526461460e-04
+5.4891504265093462e-04
+5.4794805098333402e-04
+5.4698219852129131e-04
+5.4601748350819278e-04
+5.4505390415984247e-04
+5.4409145847144323e-04
+5.4313014433077407e-04
+5.4216995967305392e-04
+5.4121090264615170e-04
+5.4025297145673316e-04
+5.3929616435458277e-04
+5.3834047969600883e-04
+5.3738591584873000e-04
+5.3643247094444565e-04
+5.3548014277477851e-04
+5.3452892912116145e-04
+5.3357882805420197e-04
+5.3262983789329952e-04
+5.3168195696637886e-04
+5.3073518360488396e-04
+5.2978951614204915e-04
+5.2884495283419316e-04
+5.2790149158142563e-04
+5.2695913018113401e-04
+5.2601786657052621e-04
+5.2507769904821232e-04
+5.2413862596996754e-04
+5.2320064566707713e-04
+5.2226375643402688e-04
+5.2132795655200680e-04
+5.2039324410678032e-04
+5.1945961700889374e-04
+5.1852707318952005e-04
+5.1759561082241981e-04
+5.1666522821020109e-04
+5.1573592366097325e-04
+5.1480769550378710e-04
+5.1388054207387849e-04
+5.1295446160498257e-04
+5.1202945205630840e-04
+5.1110551134349042e-04
+5.1018263752939969e-04
+5.0926082890766135e-04
+5.0834008379327758e-04
+5.0742040052630208e-04
+5.0650177747019523e-04
+5.0558421296132501e-04
+5.0466770506908643e-04
+5.0375225171483907e-04
+5.0283785087391192e-04
+5.0192450080457061e-04
+5.0101219985494141e-04
+5.0010094637421257e-04
+4.9919073871447202e-04
+4.9828157522628213e-04
+4.9737345411853440e-04
+4.9646637336849680e-04
+4.9556033094097160e-04
+4.9465532499670716e-04
+4.9375135388722384e-04
+4.9284841597295567e-04
+4.9194650962453945e-04
+4.9104563321851588e-04
+4.9014578507944253e-04
+4.8924696325368508e-04
+4.8834916569513807e-04
+4.8745239045783217e-04
+4.8655663589284041e-04
+4.8566190040578858e-04
+4.8476818238385710e-04
+4.8387548018275959e-04
+4.8298379214856932e-04
+4.8209311647233043e-04
+4.8120345118780742e-04
+4.8031479434027484e-04
+4.7942714417219880e-04
+4.7854049904513124e-04
+4.7765485732882657e-04
+4.7677021742979130e-04
+4.7588657776729442e-04
+4.7500393667512314e-04
+4.7412229222159875e-04
+4.7324164242508964e-04
+4.7236198543187545e-04
+4.7148331961597027e-04
+4.7060564337537248e-04
+4.6972895512062472e-04
+4.6885325327553144e-04
+4.6797853624479572e-04
+4.6710480221090819e-04
+4.6623204921635724e-04
+4.6536027534292175e-04
+4.6448947891655903e-04
+4.6361965835228270e-04
+4.6275081206945866e-04
+4.6188293850118881e-04
+4.6101603608225320e-04
+4.6015010313227035e-04
+4.5928513775682415e-04
+4.5842113804355611e-04
+4.5755810222775084e-04
+4.5669602870734144e-04
+4.5583491589216486e-04
+4.5497476223422374e-04
+4.5411556621323098e-04
+4.5325732626681683e-04
+4.5240004056946792e-04
+4.5154370719524046e-04
+4.5068832429264908e-04
+4.4983389026472589e-04
+4.4898040356873168e-04
+4.4812786266662492e-04
+4.4727626602948070e-04
+4.4642561212396964e-04
+4.4557589925377835e-04
+4.4472712553548431e-04
+4.4387928909193648e-04
+4.4303238825545811e-04
+4.4218642150193661e-04
+4.4134138731084175e-04
+4.4049728416671623e-04
+4.3965411055612512e-04
+4.3881186489973088e-04
+4.3797054538268545e-04
+4.3713015013835209e-04
+4.3629067741277197e-04
+4.3545212568036923e-04
+4.3461449344315791e-04
+4.3377777920210712e-04
+4.3294198145692815e-04
+4.3210709869333350e-04
+4.3127312921025825e-04
+4.3044007117316104e-04
+4.2960792277730621e-04
+4.2877668244106564e-04
+4.2794634867599700e-04
+4.2711691999825272e-04
+4.2628839494002988e-04
+4.2546077203663938e-04
+4.2463404971484581e-04
+4.2380822617156598e-04
+4.2298329957893906e-04
+4.2215926826884640e-04
+4.2133613077236404e-04
+4.2051388563386363e-04
+4.1969253140894093e-04
+4.1887206666155419e-04
+4.1805248992222185e-04
+4.1723379948009842e-04
+4.1641599351893320e-04
+4.1559907028735905e-04
+4.1478302829057166e-04
+4.1396786609676646e-04
+4.1315358227837795e-04
+4.1234017541722081e-04
+4.1152764409245891e-04
+4.1071598673112517e-04
+4.0990520156251528e-04
+4.0909528681586554e-04
+4.0828624092008732e-04
+4.0747806245917359e-04
+4.0667075002249304e-04
+4.0586430220927489e-04
+4.0505871762324953e-04
+4.0425399481034367e-04
+4.0345013207835506e-04
+4.0264712767419696e-04
+4.0184497994602607e-04
+4.0104368747619285e-04
+4.0024324888014891e-04
+3.9944366277698545e-04
+3.9864492779072503e-04
+3.9784704253416114e-04
+3.9705000543295885e-04
+3.9625381476129538e-04
+3.9545846881832011e-04
+3.9466396613613367e-04
+3.9387030535795316e-04
+3.9307748512819578e-04
+3.9228550409350265e-04
+3.9149436090083232e-04
+3.9070405410799013e-04
+3.8991458205714092e-04
+3.8912594306136987e-04
+3.8833813556999469e-04
+3.8755115822478964e-04
+3.8676500968309820e-04
+3.8597968861989456e-04
+3.8519519372502833e-04
+3.8441152366101362e-04
+3.8362867685776190e-04
+3.8284665162928010e-04
+3.8206544634795887e-04
+3.8128505965436438e-04
+3.8050549026490452e-04
+3.7972673688902239e-04
+3.7894879821852772e-04
+3.7817167294011298e-04
+3.7739535961595842e-04
+3.7661985662482643e-04
+3.7584516234109746e-04
+3.7507127532958898e-04
+3.7429819432256798e-04
+3.7352591805624137e-04
+3.7275444525124016e-04
+3.7198377462008991e-04
+3.7121390483290398e-04
+3.7044483435875428e-04
+3.6967656160726584e-04
+3.6890908507313192e-04
+3.6814240347625741e-04
+3.6737651557336063e-04
+3.6661142011956531e-04
+3.6584711586754547e-04
+3.6508360156200305e-04
+3.6432087579431056e-04
+3.6355893701534394e-04
+3.6279778369173346e-04
+3.6203741448487877e-04
+3.6127782816200855e-04
+3.6051902349606990e-04
+3.5976099928323790e-04
+3.5900375432679909e-04
+3.5824728735220417e-04
+3.5749159686924894e-04
+3.5673668135252065e-04
+3.5598253939706263e-04
+3.5522916979095721e-04
+3.5447657134051678e-04
+3.5372474287032128e-04
+3.5297368322239302e-04
+3.5222339121821031e-04
+3.5147386547077538e-04
+3.5072510447484878e-04
+3.4997710676915549e-04
+3.4922987112917325e-04
+3.4848339640744259e-04
+3.4773768146181887e-04
+3.4699272516545287e-04
+3.4624852639260963e-04
+3.4550508389548601e-04
+3.4476239622218340e-04
+3.4402046190924566e-04
+3.4327927967242746e-04
+3.4253884840579427e-04
+3.4179916701021777e-04
+3.4106023437748288e-04
+3.4032204939399632e-04
+3.3958461091163246e-04
+3.3884791759335701e-04
+3.3811196803778149e-04
+3.3737676091252186e-04
+3.3664229509497890e-04
+3.3590856950234572e-04
+3.3517558306068220e-04
+3.3444333471151889e-04
+3.3371182339186732e-04
+3.3298104788951060e-04
+3.3225100683751183e-04
+3.3152169888025389e-04
+3.3079312286484012e-04
+3.3006527776356832e-04
+3.2933816254865909e-04
+3.2861177618124929e-04
+3.2788611761850044e-04
+3.2716118576425215e-04
+3.2643697935267750e-04
+3.2571349708527609e-04
+3.2499073776052047e-04
+3.2426870035348745e-04
+3.2354738385843661e-04
+3.2282678728128076e-04
+3.2210690964052291e-04
+3.2138774994098129e-04
+3.2066930702143290e-04
+3.1995157961368649e-04
+3.1923456648076827e-04
+3.1851826658499811e-04
+3.1780267896315198e-04
+3.1708780266210450e-04
+3.1637363676197410e-04
+3.1566018034880858e-04
+3.1494743239741100e-04
+3.1423539167106901e-04
+3.1352405691544835e-04
+3.1281342705046449e-04
+3.1210350119221440e-04
+3.1139427846592441e-04
+3.1068575798041714e-04
+3.0997793883349366e-04
+3.0927082009482419e-04
+3.0856440065691221e-04
+3.0785867934300849e-04
+3.0715365503673271e-04
+3.0644932683323564e-04
+3.0574569387391791e-04
+3.0504275530918282e-04
+3.0434051030730916e-04
+3.0363895803443765e-04
+3.0293809752395608e-04
+3.0223792765349375e-04
+3.0153844730557166e-04
+3.0083965554234568e-04
+3.0014155155183477e-04
+2.9944413452793139e-04
+2.9874740368638134e-04
+2.9805135825186570e-04
+2.9735599739490399e-04
+2.9666132008750439e-04
+2.9596732525682815e-04
+2.9527401192299774e-04
+2.9458137929894845e-04
+2.9388942662211218e-04
+2.9319815314795866e-04
+2.9250755815401499e-04
+2.9181764090760719e-04
+2.9112840051621127e-04
+2.9043983597052748e-04
+2.8975194628654623e-04
+2.8906473067611364e-04
+2.8837818843482872e-04
+2.8769231886503972e-04
+2.8700712129380273e-04
+2.8632259505364561e-04
+2.8563873939145318e-04
+2.8495555336850503e-04
+2.8427303602563005e-04
+2.8359118654658767e-04
+2.8291000429730924e-04
+2.8222948865500545e-04
+2.8154963898879235e-04
+2.8087045466162130e-04
+2.8019193501662251e-04
+2.7951407925200971e-04
+2.7883688650121274e-04
+2.7816035594222129e-04
+2.7748448693367837e-04
+2.7680927887976074e-04
+2.7613473119982474e-04
+2.7546084334761109e-04
+2.7478761477858483e-04
+2.7411504482510984e-04
+2.7344313265599817e-04
+2.7277187744090118e-04
+2.7210127853987347e-04
+2.7143133546412147e-04
+2.7076204772591623e-04
+2.7009341481351367e-04
+2.6942543620394965e-04
+2.6875811134145517e-04
+2.6809143953202214e-04
+2.6742542004542602e-04
+2.6676005222532140e-04
+2.6609533559032446e-04
+2.6543126968465406e-04
+2.6476785406497088e-04
+2.6410508830516867e-04
+2.6344297197207988e-04
+2.6278150449328928e-04
+2.6212068518116719e-04
+2.6146051337028284e-04
+2.6080098860472700e-04
+2.6014211053086516e-04
+2.5948387879037339e-04
+2.5882629300110627e-04
+2.5816935277418523e-04
+2.5751305766935541e-04
+2.5685740711911770e-04
+2.5620240053875735e-04
+2.5554803745062265e-04
+2.5489431753168517e-04
+2.5424124047181319e-04
+2.5358880597582559e-04
+2.5293701376143270e-04
+2.5228586352827914e-04
+2.5163535481699935e-04
+2.5098548708715540e-04
+2.5033625984433727e-04
+2.4968767281081841e-04
+2.4903972577170142e-04
+2.4839241850982294e-04
+2.4774575080213168e-04
+2.4709972242320120e-04
+2.4645433306788085e-04
+2.4580958231094799e-04
+2.4516546972413300e-04
+2.4452199501073530e-04
+2.4387915799228699e-04
+2.4323695849860056e-04
+2.4259539639643224e-04
+2.4195447157220718e-04
+2.4131418387684004e-04
+2.4067453298745920e-04
+2.4003551852849061e-04
+2.3939714019476332e-04
+2.3875939787203364e-04
+2.3812229147843794e-04
+2.3748582095278539e-04
+2.3684998626635986e-04
+2.3621478738660961e-04
+2.3558022414407704e-04
+2.3494629624110086e-04
+2.3431300339441609e-04
+2.3368034550572096e-04
+2.3304832257951808e-04
+2.3241693462910170e-04
+2.3178618170703103e-04
+2.3115606387828937e-04
+2.3052658113781926e-04
+2.2989773328174873e-04
+2.2926952007303739e-04
+2.2864194140531009e-04
+2.2801499738632342e-04
+2.2738868814329986e-04
+2.2676301379509798e-04
+2.2613797445241463e-04
+2.2551357021275683e-04
+2.2488980104381945e-04
+2.2426666683799293e-04
+2.2364416752363047e-04
+2.2302230322674042e-04
+2.2240107413925832e-04
+2.2178048045725941e-04
+2.2116052238898681e-04
+2.2054120014388209e-04
+2.1992251384783852e-04
+2.1930446348388571e-04
+2.1868704902776656e-04
+2.1807027061427359e-04
+2.1745412853992508e-04
+2.1683862310733145e-04
+2.1622375460679939e-04
+2.1560952332118775e-04
+2.1499592951004659e-04
+2.1438297330244081e-04
+2.1377065478189058e-04
+2.1315897409426174e-04
+2.1254793157965198e-04
+2.1193752761588242e-04
+2.1132776258403371e-04
+2.1071863687100397e-04
+2.1011015086065481e-04
+2.0950230484376183e-04
+2.0889509901246954e-04
+2.0828853356818602e-04
+2.0768260887057074e-04
+2.0707732537922046e-04
+2.0647268355875899e-04
+2.0586868389420941e-04
+2.0526532687804218e-04
+2.0466261295979855e-04
+2.0406054244896882e-04
+2.0345911562740055e-04
+2.0285833286717530e-04
+2.0225819470847959e-04
+2.0165870171063942e-04
+2.0105985445474566e-04
+2.0046165354592065e-04
+1.9986409957841570e-04
+1.9926719300162728e-04
+1.9867093416953626e-04
+1.9807532346884142e-04
+1.9748036149946303e-04
+1.9688604894291064e-04
+1.9629238648323863e-04
+1.9569937481263557e-04
+1.9510701462446256e-04
+1.9451530654344181e-04
+1.9392425106077419e-04
+1.9333384865647646e-04
+1.9274409993633138e-04
+1.9215500565083278e-04
+1.9156656656055994e-04
+1.9097878345254331e-04
+1.9039165713198366e-04
+1.8980518838182680e-04
+1.8921937783778446e-04
+1.8863422607662842e-04
+1.8804973373039361e-04
+1.8746590162966318e-04
+1.8688273064949859e-04
+1.8630022166952025e-04
+1.8571837557861088e-04
+1.8513719326414296e-04
+1.8455667552738132e-04
+1.8397682306633389e-04
+1.8339763658397051e-04
+1.8281911693210248e-04
+1.8224126506915302e-04
+1.8166408196220840e-04
+1.8108756862176580e-04
+1.8051172607649814e-04
+1.7993655530695283e-04
+1.7936205711269432e-04
+1.7878823225141529e-04
+1.7821508158491215e-04
+1.7764260619595670e-04
+1.7707080719503798e-04
+1.7649968567455218e-04
+1.7592924270428271e-04
+1.7535947934755006e-04
+1.7479039659563136e-04
+1.7422199538600459e-04
+1.7365427667366830e-04
+1.7308724154897217e-04
+1.7252089116151983e-04
+1.7195522667332540e-04
+1.7139024929428663e-04
+1.7082596024580455e-04
+1.7026236069115537e-04
+1.6969945166468017e-04
+1.6913723418585764e-04
+1.6857570937072545e-04
+1.6801487846111512e-04
+1.6745474271032145e-04
+1.6689530341759329e-04
+1.6633656191795238e-04
+1.6577851952866840e-04
+1.6522117742550740e-04
+1.6466453671948553e-04
+1.6410859856244903e-04
+1.6355336427620445e-04
+1.6299883522648734e-04
+1.6244501279719703e-04
+1.6189189841435167e-04
+1.6133949350782430e-04
+1.6078779941709973e-04
+1.6023681735890724e-04
+1.5968654855021814e-04
+1.5913699435405601e-04
+1.5858815625194992e-04
+1.5804003573070865e-04
+1.5749263429194890e-04
+1.5694595344436770e-04
+1.5639999466825259e-04
+1.5585475932071370e-04
+1.5531024872574562e-04
+1.5476646427409435e-04
+1.5422340751836304e-04
+1.5368108003559029e-04
+1.5313948342093612e-04
+1.5259861929521962e-04
+1.5205848927453335e-04
+1.5151909485946563e-04
+1.5098043745292875e-04
+1.5044251847543710e-04
+1.4990533952100125e-04
+1.4936890227029224e-04
+1.4883320841098114e-04
+1.4829825965960951e-04
+1.4776405774075799e-04
+1.4723060431779970e-04
+1.4669790089886700e-04
+1.4616594897009084e-04
+1.4563475013597906e-04
+1.4510430617582453e-04
+1.4457461888286519e-04
+1.4404569004816499e-04
+1.4351752146087203e-04
+1.4299011489716208e-04
+1.4246347201907751e-04
+1.4193759442912319e-04
+1.4141248376544038e-04
+1.4088814183827044e-04
+1.4036457050902284e-04
+1.3984177164521260e-04
+1.3931974713053501e-04
+1.3879849885008064e-04
+1.3827802861472591e-04
+1.3775833812106520e-04
+1.3723942906252289e-04
+1.3672130326285089e-04
+1.3620396266549257e-04
+1.3568740921978523e-04
+1.3517164488861068e-04
+1.3465667164222757e-04
+1.3414249142203018e-04
+1.3362910602492120e-04
+1.3311651720288815e-04
+1.3260472677684029e-04
+1.3209373675916215e-04
+1.3158354919513059e-04
+1.3107416612450766e-04
+1.3056558957819661e-04
+1.3005782158211616e-04
+1.2955086407313369e-04
+1.2904471890289357e-04
+1.2853938793465667e-04
+1.2803487317969821e-04
+1.2753117673344164e-04
+1.2702830069374982e-04
+1.2652624716617808e-04
+1.2602501825875273e-04
+1.2552461603668245e-04
+1.2502504244065756e-04
+1.2452629938996239e-04
+1.2402838888636179e-04
+1.2353131306985047e-04
+1.2303507409437396e-04
+1.2253967413121411e-04
+1.2204511536894126e-04
+1.2155139998285743e-04
+1.2105853000250054e-04
+1.2056650737092806e-04
+1.2007533406749591e-04
+1.1958501227731386e-04
+1.1909554425580059e-04
+1.1860693224409475e-04
+1.1811917843965933e-04
+1.1763228503113597e-04
+1.1714625416147147e-04
+1.1666108789369692e-04
+1.1617678828641362e-04
+1.1569335748775368e-04
+1.1521079773888576e-04
+1.1472911128694439e-04
+1.1424830039704850e-04
+1.1376836734544964e-04
+1.1328931438485579e-04
+1.1281114363120173e-04
+1.1233385715149956e-04
+1.1185745706254494e-04
+1.1138194564016127e-04
+1.1090732519174457e-04
+1.1043359801754087e-04
+1.0996076640474386e-04
+1.0948883263642891e-04
+1.0901779892291154e-04
+1.0854766739571920e-04
+1.0807844019129485e-04
+1.0761011954911339e-04
+1.0714270777518022e-04
+1.0667620717930899e-04
+1.0621062008764685e-04
+1.0574594883245106e-04
+1.0528219570574601e-04
+1.0481936286502006e-04
+1.0435745244028061e-04
+1.0389646662940029e-04
+1.0343640775959588e-04
+1.0297727817234452e-04
+1.0251908020153026e-04
+1.0206181617246894e-04
+1.0160548840191544e-04
+1.0115009910670990e-04
+1.0069565043640342e-04
+1.0024214455931823e-04
+9.9789583771175053e-05
+9.9337970417621112e-05
+9.8887306840927345e-05
+9.8437595371125210e-05
+9.7988838335133488e-05
+9.7541038002459517e-05
+9.7094196528341346e-05
+9.6648316057284511e-05
+9.6203398821430552e-05
+9.5759447155979185e-05
+9.5316463400399589e-05
+9.4874449872821314e-05
+9.4433408876387523e-05
+9.3993342698595514e-05
+9.3554253524442995e-05
+9.3116143496909987e-05
+9.2679014787343887e-05
+9.2242869671751052e-05
+9.1807710450163567e-05
+9.1373539423127227e-05
+9.0940358892255832e-05
+9.0508171156598627e-05
+9.0076978422853245e-05
+8.9646782784529716e-05
+8.9217586335864948e-05
+8.8789391277319972e-05
+8.8362199887134926e-05
+8.7936014443283991e-05
+8.7510837209344529e-05
+8.7086670442722253e-05
+8.6663516363760012e-05
+8.6241377050172541e-05
+8.5820254545637852e-05
+8.5400150948338019e-05
+8.4981068474864171e-05
+8.4563009356952479e-05
+8.4145975811640857e-05
+8.3729970037190693e-05
+8.3314994223307194e-05
+8.2901050451358909e-05
+8.2488140720020502e-05
+8.2076267040080510e-05
+8.1665431527276855e-05
+8.1255636344378890e-05
+8.0846883647107531e-05
+8.0439175561831274e-05
+8.0032514207293006e-05
+7.9626901651912421e-05
+7.9222339849841501e-05
+7.8818830740793718e-05
+7.8416376319425995e-05
+7.8014978653560753e-05
+7.7614639815099453e-05
+7.7215361860284425e-05
+7.6817146832898467e-05
+7.6419996760607905e-05
+7.6023913548444466e-05
+7.5628899044005490e-05
+7.5234955115215492e-05
+7.4842083717438214e-05
+7.4450286829146609e-05
+7.4059566421854505e-05
+7.3669924450554209e-05
+7.3281362865902221e-05
+7.2893883530681216e-05
+7.2507488185678733e-05
+7.2122178567469159e-05
+7.1737956492838730e-05
+7.1354823845093241e-05
+7.0972782505115728e-05
+7.0591834317489636e-05
+7.0211981109036619e-05
+6.9833224676548871e-05
+6.9455566684063977e-05
+6.9079008758886459e-05
+6.8703552560359999e-05
+6.8329199827380841e-05
+6.7955952310643397e-05
+6.7583811743846748e-05
+6.7212779836088222e-05
+6.6842858288534193e-05
+6.6474048694675043e-05
+6.6106352554939175e-05
+6.5739771374559295e-05
+6.5374306726631901e-05
+6.5009960218937349e-05
+6.4646733453907368e-05
+6.4284628007779145e-05
+6.3923645449060686e-05
+6.3563787292183894e-05
+6.3205054911120195e-05
+6.2847449658087976e-05
+6.2490972927723107e-05
+6.2135626178694576e-05
+6.1781410873413956e-05
+6.1428328444167773e-05
+6.1076380296109487e-05
+6.0725567819702314e-05
+6.0375892280632543e-05
+6.0027354877996523e-05
+5.9679956823763479e-05
+5.9333699395791792e-05
+5.8988583891993530e-05
+5.8644611596249349e-05
+5.8301783754285711e-05
+5.7960101604140968e-05
+5.7619566304540918e-05
+5.7280178889330026e-05
+5.6941940383958802e-05
+5.6604851866945577e-05
+5.6268914466616625e-05
+5.5934129307981467e-05
+5.5600497465738338e-05
+5.5268019986555806e-05
+5.4936697892462682e-05
+5.4606532080867605e-05
+5.4277523409414310e-05
+5.3949672751810052e-05
+5.3622981027520960e-05
+5.3297449163759830e-05
+5.2973078063886243e-05
+5.2649868592078054e-05
+5.2327821604551939e-05
+5.2006937862059244e-05
+5.1687218031983569e-05
+5.1368662781684299e-05
+5.1051272817781607e-05
+5.0735048869724715e-05
+5.0419991658648162e-05
+5.0106101859498196e-05
+4.9793380131744247e-05
+4.9481827090821263e-05
+4.9171443220988991e-05
+4.8862228982453151e-05
+4.8554184856932499e-05
+4.8247311363018743e-05
+4.7941609021475721e-05
+4.7637078318522821e-05
+4.7333719705173918e-05
+4.7031533619832191e-05
+4.6730520382809009e-05
+4.6430680242764536e-05
+4.6132013454233982e-05
+4.5834520310548968e-05
+4.5538201118618413e-05
+4.5243056169123206e-05
+4.4949085702051182e-05
+4.4656289946798925e-05
+4.4364669066088628e-05
+4.4074223103372587e-05
+4.3784952090659404e-05
+4.3496856083936987e-05
+4.3209935164658838e-05
+4.2924189411530620e-05
+4.2639618858182035e-05
+4.2356223509710522e-05
+4.2074003349354672e-05
+4.1792958233648668e-05
+4.1513087972684910e-05
+4.1234392385101542e-05
+4.0956871317710547e-05
+4.0680524622833067e-05
+4.0405352127442659e-05
+4.0131353611178302e-05
+3.9858528845378029e-05
+3.9586877514682083e-05
+3.9316399207786234e-05
+3.9047093510047708e-05
+3.8778960026435200e-05
+3.8511998374865545e-05
+3.8246208165857462e-05
+3.7981588962521847e-05
+3.7718140309779122e-05
+3.7455861714425726e-05
+3.7194752552742192e-05
+3.6934812173179752e-05
+3.6676039937099559e-05
+3.6418435231036320e-05
+3.6161997443177262e-05
+3.5906725923871780e-05
+3.5652619979832403e-05
+3.5399678907277270e-05
+3.5147901899733527e-05
+3.4897288080022620e-05
+3.4647836572533661e-05
+3.4399546521004132e-05
+3.4152417076935964e-05
+3.3906447376807980e-05
+3.3661636503061678e-05
+3.3417983525633049e-05
+3.3175487459944635e-05
+3.2934147210394774e-05
+3.2693961668207279e-05
+3.2454929735479636e-05
+3.2217050327378414e-05
+3.1980322356684195e-05
+3.1744744693504351e-05
+3.1510316177309880e-05
+3.1277035630187337e-05
+3.1044901759531294e-05
+3.0813913224596128e-05
+3.0584068689649987e-05
+3.0355366838463408e-05
+3.0127806359252768e-05
+2.9901385915416174e-05
+2.9676104117543663e-05
+2.9451959567510038e-05
+2.9228950797181817e-05
+2.9007076250726912e-05
+2.8786334367463254e-05
+2.8566723596691362e-05
+2.8348242395183525e-05
+2.8130889213229521e-05
+2.7914662453047022e-05
+2.7699560495757158e-05
+2.7485581694675994e-05
+2.7272724293698699e-05
+2.7060986509744267e-05
+2.6850366564766760e-05
+2.6640862691916566e-05
+2.6432473125109925e-05
+2.6225196069030597e-05
+2.6019029690191911e-05
+2.5813972146833813e-05
+2.5610021510116093e-05
+2.5407175783255962e-05
+2.5205432969406886e-05
+2.5004791084908287e-05
+2.4805248152147994e-05
+2.4606802181800557e-05
+2.4409451135921930e-05
+2.4213192963828727e-05
+2.4018025573465504e-05
+2.3823946776605603e-05
+2.3630954371553637e-05
+2.3439046163743039e-05
+2.3248219968311153e-05
+2.3058473598848386e-05
+2.2869804832454995e-05
+2.2682211416555819e-05
+2.2495691086536160e-05
+2.2310241488470769e-05
+2.2125860225627448e-05
+2.1942544903536946e-05
+2.1760293138720259e-05
+2.1579102550626558e-05
+2.1398970741576929e-05
+2.1219895272258191e-05
+2.1041873696024847e-05
+2.0864903512276496e-05
+2.0688982143838462e-05
+2.0514107008262749e-05
+2.0340275532707827e-05
+2.0167485152474426e-05
+1.9995733298459268e-05
+1.9825017362332916e-05
+1.9655334716125646e-05
+1.9486682713351810e-05
+1.9319058623920567e-05
+1.9152459693977171e-05
+1.8986883173290696e-05
+1.8822326320848415e-05
+1.8658786396677832e-05
+1.8496260639382385e-05
+1.8334746255859371e-05
+1.8174240447190861e-05
+1.8014740353968921e-05
+1.7856243063354816e-05
+1.7698745661729223e-05
+1.7542245244845217e-05
+1.7386738913356641e-05
+1.7232223760871869e-05
+1.7078696847166845e-05
+1.6926155221885191e-05
+1.6774595907085906e-05
+1.6624015851445782e-05
+1.6474411991692740e-05
+1.6325781271675555e-05
+1.6178120646233994e-05
+1.6031427069955839e-05
+1.5885697473704969e-05
+1.5740928766507917e-05
+1.5597117849920076e-05
+1.5454261563223898e-05
+1.5312356711704759e-05
+1.5171400102547997e-05
+1.5031388554173256e-05
+1.4892318888497072e-05
+1.4754187918666686e-05
+1.4616992433407222e-05
+1.4480729216681195e-05
+1.4345395016114800e-05
+1.4210986520830586e-05
+1.4077500415182845e-05
+1.3944933394812048e-05
+1.3813282166184250e-05
+1.3682543434162251e-05
+1.3552713883471893e-05
+1.3423790187363867e-05
+1.3295769007170096e-05
+1.3168646942326706e-05
+1.3042420572026737e-05
+1.2917086482126109e-05
+1.2792641277939564e-05
+1.2669081568141217e-05
+1.2546403948789330e-05
+1.2424604994749505e-05
+1.2303681277233809e-05
+1.2183629330121219e-05
+1.2064445649976128e-05
+1.1946126733229799e-05
+1.1828669091833395e-05
+1.1712069246967548e-05
+1.1596323716431985e-05
+1.1481428998721257e-05
+1.1367381585707039e-05
+1.1254177954569416e-05
+1.1141814537648362e-05
+1.1030287758855670e-05
+1.0919594050664481e-05
+1.0809729860556240e-05
+1.0700691637162728e-05
+1.0592475820006520e-05
+1.0485078839122788e-05
+1.0378497120627094e-05
+1.0272727052289852e-05
+1.0167764998089750e-05
+1.0063607325397783e-05
+9.9602504232665820e-06
+9.8576906885251678e-06
+9.7559245139587536e-06
+9.6549482793858464e-06
+9.5547583618608595e-06
+9.4553511210138526e-06
+9.3567228845914536e-06
+9.2588699774567026e-06
+9.1617887384102821e-06
+9.0654755213796481e-06
+8.9699266805329765e-06
+8.8751385639895642e-06
+8.7811075159537031e-06
+8.6878298754660876e-06
+8.5953019506079937e-06
+8.5035200378375738e-06
+8.4124804401968527e-06
+8.3221794828646593e-06
+8.2326134956379938e-06
+8.1437788066653065e-06
+8.0556717409455812e-06
+7.9682886224793258e-06
+7.8816257565820504e-06
+7.7956794274366419e-06
+7.7104459198013611e-06
+7.6259215396029049e-06
+7.5421026070572366e-06
+7.4589854423049594e-06
+7.3765663632949554e-06
+7.2948416871146215e-06
+7.2138077249704676e-06
+7.1334607674173019e-06
+7.0537971005608563e-06
+6.9748130216341933e-06
+6.8965048500710148e-06
+6.8188689079971323e-06
+6.7419015193403716e-06
+6.6655990101525216e-06
+6.5899577054791799e-06
+6.5149739155586782e-06
+6.4406439402065248e-06
+6.3669640828135507e-06
+6.2939306721902524e-06
+6.2215400475934268e-06
+6.1497885496478310e-06
+6.0786725238976223e-06
+6.0081883169807887e-06
+5.9383322694723382e-06
+5.8691007093110764e-06
+5.8004899633868102e-06
+5.7324963768443819e-06
+5.6651163172535237e-06
+5.5983461539339413e-06
+5.5321822614223163e-06
+5.4666210180840664e-06
+5.4016588012962788e-06
+5.3372919808509181e-06
+5.2735169232804036e-06
+5.2103300023373013e-06
+5.1477276196983983e-06
+5.0857061838019737e-06
+5.0242621075453022e-06
+4.9633918135363078e-06
+4.9030917255690427e-06
+4.8433582639865969e-06
+4.7841878447134747e-06
+4.7255768850118788e-06
+4.6675218262590091e-06
+4.6100191282819322e-06
+4.5530652529379639e-06
+4.4966566736603303e-06
+4.4407898690825115e-06
+4.3854613173975007e-06
+4.3306674949148870e-06
+4.2764048775226812e-06
+4.2226699538815038e-06
+4.1694592417256196e-06
+4.1167692630258905e-06
+4.0645965485126427e-06
+4.0129376406075279e-06
+3.9617890826171871e-06
+3.9111474189755282e-06
+3.8610091950154393e-06
+3.8113709598548276e-06
+3.7622292919309106e-06
+3.7135807834456124e-06
+3.6654220304926832e-06
+3.6177496453466305e-06
+3.5705602445804348e-06
+3.5238504466220596e-06
+3.4776168743140540e-06
+3.4318561515548294e-06
+3.3865649210906558e-06
+3.3417398518946129e-06
+3.2973776157189321e-06
+3.2534748984531424e-06
+3.2100283977375596e-06
+3.1670348123897787e-06
+3.1244908479624952e-06
+3.0823932133118972e-06
+3.0407386244890776e-06
+2.9995238294638757e-06
+2.9587455851031045e-06
+2.9184006559678023e-06
+2.8784858257693513e-06
+2.8389978812564122e-06
+2.7999336146224225e-06
+2.7612898259606891e-06
+2.7230633173788491e-06
+2.6852509160721496e-06
+2.6478494709679693e-06
+2.6108558339123303e-06
+2.5742668757820184e-06
+2.5380794772033386e-06
+2.5022905214797675e-06
+2.4668969040395808e-06
+2.4318955238701408e-06
+2.3972832919945471e-06
+2.3630571507759271e-06
+2.3292140478371378e-06
+2.2957509433657769e-06
+2.2626648165610884e-06
+2.2299526487399566e-06
+2.1976114315284444e-06
+2.1656381658589993e-06
+2.1340298562716220e-06
+2.1027835371635539e-06
+2.0718962589040173e-06
+2.0413650766585524e-06
+2.0111870683297847e-06
+1.9813593187742752e-06
+1.9518789183636464e-06
+1.9227429724939937e-06
+1.8939485893838126e-06
+1.8654928953333955e-06
+1.8373730451801615e-06
+1.8095861971148655e-06
+1.7821295266345835e-06
+1.7550002255165381e-06
+1.7281954877799016e-06
+1.7017125229338147e-06
+1.6755485491376972e-06
+1.6497007908948054e-06
+1.6241665047952770e-06
+1.5989429577076384e-06
+1.5740274248221647e-06
+1.5494172050559035e-06
+1.5251096016677896e-06
+1.5011019277569059e-06
+1.4773915126237838e-06
+1.4539756881266021e-06
+1.4308518093573311e-06
+1.4080172541829604e-06
+1.3854694035955073e-06
+1.3632056606409089e-06
+1.3412234412189976e-06
+1.3195201649083102e-06
+1.2980932702411592e-06
+1.2769402021113594e-06
+1.2560584159295062e-06
+1.2354453985089495e-06
+1.2150986426618181e-06
+1.1950156541323398e-06
+1.1751939608823238e-06
+1.1556310936646634e-06
+1.1363245976040154e-06
+1.1172720325051121e-06
+1.0984709613735773e-06
+1.0799189744782749e-06
+1.0616136786686222e-06
+1.0435526854536641e-06
+1.0257336313596617e-06
+1.0081541616977862e-06
+9.9081192829328597e-07
+9.7370460332424608e-07
+9.5682986310666676e-07
+9.4018539942605788e-07
+9.2376893180603105e-07
+9.0757818333539853e-07
+8.9161089460227938e-07
+8.7586482482099731e-07
+8.6033773573600771e-07
+8.4502740757493733e-07
+8.2993163229219806e-07
+8.1504820697336091e-07
+8.0037495804744422e-07
+7.8590972272840246e-07
+7.7165034583904007e-07
+7.5759469709256798e-07
+7.4374065139461861e-07
+7.3008609423258578e-07
+7.1662893090147585e-07
+7.0336706958315062e-07
+6.9029843833381222e-07
+6.7742098725380947e-07
+6.6473266936494572e-07
+6.5223145904690398e-07
+6.3991534481322085e-07
+6.2778231882548439e-07
+6.1583039440987144e-07
+6.0405759303268369e-07
+5.9246194445368584e-07
+5.8104150686833035e-07
+5.6979434466797352e-07
+5.5871853385766008e-07
+5.4781217314264615e-07
+5.3707336433517682e-07
+5.2650022375610007e-07
+5.1609088449656268e-07
+5.0584348241509523e-07
+4.9575617676796892e-07
+4.8582714295878313e-07
+4.7605456028406087e-07
+4.6643663142868215e-07
+4.5697156848747415e-07
+4.4765758961545235e-07
+4.3849293469969194e-07
+4.2947584860161805e-07
+4.2060458843063342e-07
+4.1187743630104903e-07
+4.0329267784632523e-07
+3.9484861417057938e-07
+3.8654356501456349e-07
+3.7837585255170360e-07
+3.7034381688888367e-07
+3.6244581103760119e-07
+3.5468019191023452e-07
+3.4704534130751003e-07
+3.3953965150250699e-07
+3.3216152096936233e-07
+3.2490937145667168e-07
+3.1778163025870330e-07
+3.1077673405402772e-07
+3.0389313953747825e-07
+2.9712930641695486e-07
+2.9048371033805339e-07
+2.8395484695708317e-07
+2.7754121448812782e-07
+2.7124132968811410e-07
+2.6505372322477932e-07
+2.5897692885497630e-07
+2.5300950024406217e-07
+2.4714999981567768e-07
+2.4139699614715465e-07
+2.3574908202479698e-07
+2.3020485626858509e-07
+2.2476292705562498e-07
+2.1942192342095214e-07
+2.1418047754120473e-07
+2.0903723433604515e-07
+2.0399085540253922e-07
+1.9904000468370705e-07
+1.9418336479959244e-07
+1.8941963297604859e-07
+1.8474750947223402e-07
+1.8016571467350104e-07
+1.7567297821956509e-07
+1.7126803463765978e-07
+1.6694963853704068e-07
+1.6271654977123559e-07
+1.5856753733366847e-07
+1.5450139151616642e-07
+1.5051690592480089e-07
+1.4661288663582144e-07
+1.4278815673919748e-07
+1.3904154149359104e-07
+1.3537188160634771e-07
+1.3177803037707337e-07
+1.2825884395987642e-07
+1.2481319843859585e-07
+1.2143997947261083e-07
+1.1813807736346603e-07
+1.1490640234974027e-07
+1.1174387011474814e-07
+1.0864940381840564e-07
+1.0562194483912396e-07
+1.0266043752762319e-07
+9.9763838256447021e-08
+9.6931120499285789e-08
+9.4161259889366666e-08
+9.1453246952813596e-08
+8.8806084867463271e-08
+8.6218779222071027e-08
+8.3690352557843177e-08
+8.1219835924354660e-08
+7.8806264699775782e-08
+7.6448693722721475e-08
+7.4146183396179673e-08
+7.1897801130504648e-08
+6.9702632196380407e-08
+6.7559764858019396e-08
+6.5468297493662005e-08
+6.3427343484284566e-08
+6.1436018186646986e-08
+5.9493451146722885e-08
+5.7598784472402857e-08
+5.5751162521297162e-08
+5.3949745801994470e-08
+5.2193703288503431e-08
+5.0482207568278492e-08
+4.8814448164373129e-08
+4.7189619671490844e-08
+4.5606923157918452e-08
+4.4065576955319998e-08
+4.2564802399786549e-08
+4.1103830229687496e-08
+3.9681905729442702e-08
+3.8298276042925405e-08
+3.6952200528790264e-08
+3.5642949814711425e-08
+3.4369796573442070e-08
+3.3132028706842745e-08
+3.1928942450661837e-08
+3.0759837314954712e-08
+2.9624028818351998e-08
+2.8520837498587408e-08
+2.7449589383762209e-08
+2.6409625824163507e-08
+2.5400290951936743e-08
+2.4420937545223866e-08
+2.3470932335320383e-08
+2.2549643846097828e-08
+2.1656451870098078e-08
+2.0790747033210083e-08
+1.9951921748658892e-08
+1.9139381790115178e-08
+1.8352540562743317e-08
+1.7590814405763152e-08
+1.6853634638182679e-08
+1.6140437496484198e-08
+1.5450664146428726e-08
+1.4783770152888909e-08
+1.4139213796118368e-08
+1.3516460835709369e-08
+1.2914989624879398e-08
+1.2334280172932356e-08
+1.1773822797010243e-08
+1.1233118140436153e-08
+1.0711668469022814e-08
+1.0208988312601723e-08
+9.7245995113660910e-09
+9.2580264164220144e-09
+8.8088067147453358e-09
+8.3764826765762072e-09
+7.9606009592392355e-09
+7.5607216368379886e-09
+7.1764074195337767e-09
+6.8072277210423936e-09
+6.4527637343533972e-09
+6.1125982112619590e-09
+5.7863229555284617e-09
+5.4735392201280839e-09
+5.1738497105487190e-09
+4.8868682990460800e-09
+4.6122158026461726e-09
+4.3495152467579891e-09
+4.0984018581672062e-09
+3.8585152529049410e-09
+3.6294988253281781e-09
+3.4110080678521706e-09
+3.2027009531660326e-09
+3.0042414175600265e-09
+2.8153043355824108e-09
+2.6355660544651749e-09
+2.4647110276190645e-09
+2.3024325262411608e-09
+2.1484251117110526e-09
+2.0023932562014884e-09
+1.8640478613546741e-09
+1.7331017575852194e-09
+1.6092788583423043e-09
+1.4923072494131091e-09
+1.3819183146073346e-09
+1.2778544948962196e-09
+1.1798605964685874e-09
+1.0876866235554241e-09
+1.0010925346820735e-09
+9.1983965992326683e-10
+8.4369653954392330e-10
+7.7243988708990168e-10
+7.0584757158003763e-10
+6.4370633133506075e-10
+5.8580890556061664e-10
+5.3194969641682307e-10
+4.8193301759858779e-10
+4.3556708665567181e-10
+3.9266298161055297e-10
+3.5304182198766093e-10
+3.1652697059859265e-10
+2.8294633812037027e-10
+2.5213693067858138e-10
+2.2393703694370754e-10
+1.9819128134383900e-10
+1.7475177303860478e-10
+1.5347165194190779e-10
+1.3421194606142811e-10
+1.1683924866270742e-10
+1.0122158943475852e-10
+8.7235867576752845e-11
+7.4762636298405140e-11
+6.3684905816652672e-11
+5.3894715904398616e-11
+4.5286214490216743e-11
+3.7757504957138539e-11
+3.1214954438643486e-11
+2.5566126662098809e-11
+2.0724136503430105e-11
+1.6608933569807510e-11
+1.3141387681423206e-11
+1.0249353831803688e-11
+7.8658252212537837e-12
+5.9250187775302997e-12
+4.3689559142859634e-12
+3.1430201289835695e-12
+2.1947659264505541e-12
+1.4801006250704581e-12
+9.5696851168414673e-13
+5.8642698376696251e-13
+3.3632956193968378e-13
+1.7558116714589642e-13
+7.8935518884976325e-14
+2.8652274695018987e-14
+7.7556896585279663e-15
+3.3178180794170636e-15
+5.5146980544532664e-15
+5.6589835357476087e-15
+2.9211111912203087e-15
+1.0090238441144674e-17
+-9.8644687335608177e-16
+-5.7197156468614520e-16
+9.4521475599704040e-17
+2.6253474453120869e-16
+1.1369017591290275e-16
+-4.4859537981526003e-17
+-6.6578571098693631e-17
+-1.9800105627790634e-17
+1.5677383134456251e-17
+1.6119013839263808e-17
+2.6023003961930344e-18
+-4.8039657937757076e-18
+-3.7131087424769670e-18
+-5.9902854709798725e-20
+1.3601286395387457e-18
+8.0595409853445084e-19
+-1.2107017951461570e-19
+-3.6348400182760852e-19
+-1.6146803441388885e-19
+6.0108949558930308e-20
+9.2523501483602974e-20
+2.8511416649725076e-20
+-2.1323635515727172e-20
+-2.2485105669500375e-20
+-3.8803039211928160e-21
+6.5862221476852026e-21
+5.2016144236638360e-21
+1.4741139372984609e-22
+-1.8746791233071743e-21
+-1.1350803108309357e-21
+1.5382473828437660e-22
+5.0309463308289075e-22
+2.2914612015974760e-22
+-8.0393002374739042e-23
+-1.2854105095664163e-22
+-4.0993629288849920e-23
+2.8978958931217970e-23
+3.1355556074030537e-23
+5.7582900550543815e-24
+-9.0250953085027012e-24
+-7.2841346295720809e-24
+-2.9451494854549944e-25
+2.5829292197557337e-24
+1.5978317840210937e-24
+-1.9353721876556724e-25
+-6.9610990383415951e-25
+-3.2494758569466901e-25
+1.0730592166730116e-25
+1.7852691080704635e-25
+5.8857271283428123e-26
+-3.9347808607990493e-26
+-4.3711885644115134e-26
+-8.5092916402769176e-27
+1.2360539185570173e-26
+1.0196684191070991e-26
+5.3446133756588301e-28
+-3.5574075540987631e-27
+-2.2481674839030816e-27
+2.4059050293584423e-28
+9.6287376229332625e-28
+4.6047283850990639e-28
+-1.4291307684846214e-28
+-2.4787725174840324e-28
+-8.4392879301066650e-29
+5.3377080881328723e-29
+6.0918724692328479e-29
+1.2527553412687940e-29
+-1.6919458407955093e-29
+-1.4268723691774903e-29
+-9.1741241382521387e-31
+4.8976268813089206e-30
+3.1617227073283714e-30
+-2.9458579800588079e-31
+-1.3314439898205162e-30
+-6.5207195092170089e-31
+1.8987729367224484e-31
+3.4406592783386413e-31
+1.2085658930423664e-31
+-7.2337064245950547e-32
+-8.4872782213872509e-32
+-1.8381463432467657e-32
+2.3146802360018417e-32
+1.9959902649813337e-32
+1.5184784798129084e-33
+-6.7400949432213485e-33
+-4.4445018958033746e-33
+3.5365085896435487e-34
+1.8405005247039713e-33
+9.2277907820895052e-34
+-2.5160676803390023e-34
+-4.7743945273282305e-34
+-1.7287129078851088e-34
+9.7929911081131554e-35
+1.1821006808485464e-34
+2.6889584236306837e-35
+-3.1647578761733451e-35
+-2.7911313930516777e-35
+-2.4495591118990289e-36
+9.2719458828421819e-36
+6.2449751319271765e-36
+-4.1336775357540165e-37
+-2.5433596366541687e-36
+-1.3050378896671981e-36
+3.3242339813038637e-37
+6.6231619593863261e-37
+2.4699590933773282e-37
+-1.3243173553355309e-37
+-1.6459225873241290e-37
+-3.9228231621876172e-38
+4.3244046765057254e-38
+3.9017027865915605e-38
+3.8767191845707101e-39
+-1.2749551827964877e-38
+-8.7710214879021548e-39
+4.6504565170022479e-40
+3.5134731785562480e-39
+1.8445074774800470e-39
+-4.3776101042391100e-40
+-9.1850909590301187e-40
+-3.5253256205303531e-40
+1.7887869247292289e-40
+2.2910423371575184e-40
+5.7085719536607460e-41
+-5.9052551004913971e-41
+-5.4523249494744831e-41
+-6.0451178931003700e-42
+1.7524055731817192e-41
+1.2313663468839701e-41
+-4.9299557795558416e-43
+-4.8519866388634050e-42
+-2.6054190025558311e-42
+5.7436501635166593e-43
+1.2734208299543434e-42
+5.0265871629111027e-43
+-2.4131441514845670e-43
+-3.1880659841581011e-43
+-8.2883154466985041e-44
+8.0586926983561331e-44
+7.6166496455077549e-44
+9.3154416488584641e-45
+-2.4076066691714920e-44
+-1.7280067147060994e-44
+4.7044142760824752e-46
+6.6981597935914521e-45
+3.6781125955927114e-45
+-7.5046725791083021e-46
+-1.7649375003911724e-45
+-7.1603062077762068e-46
+3.2511003268735849e-46
+4.4349859152002187e-46
+1.2008613136040823e-46
+-1.0989885434079709e-46
+-1.0636627782541082e-46
+-1.4216971509749370e-47
+3.3062926202915171e-47
+2.4239712968003728e-47
+-3.5318981743280174e-49
+-9.2436229890224804e-48
+-5.1895518921414185e-48
+9.7593116448675855e-49
+2.4454336255518139e-48
+1.0190524695013363e-48
+-4.3737725479523788e-49
+-6.1677609193736613e-49
+-1.7365020600227226e-49
+1.4976555801380750e-49
+1.4849196644288371e-49
+2.1523355016236702e-50
+-4.5383444625820475e-50
+-3.3989006710174193e-50
+6.9943483464826107e-53
+1.2751941175846365e-50
+7.3181026275615174e-51
+-1.2622456036119104e-51
+-3.3872771007121968e-51
+-1.4490551359643508e-51
+5.8751160385256809e-52
+8.5750086182800141e-52
+2.5065667610938943e-52
+-2.0394120098702888e-52
+-2.0723431929652442e-52
+-3.2362624942359100e-53
+6.2265660845358250e-53
+4.7641040806309456e-53
+4.9194259786995894e-55
+-1.7585556673242073e-53
+-1.0314300293140761e-53
+1.6222338988795287e-54
+4.6904232751250434e-54
+2.0587898723696516e-54
+-7.8788165916747968e-55
+-1.1918274868943124e-54
+-3.6120834055773835e-55
+2.7749687976384684e-55
+2.8912308406671934e-55
+4.8376512942207204e-56
+-8.5386098155039012e-56
+-6.6751044156636698e-56
+-1.5077144260495079e-57
+2.4242593511325841e-56
+1.4529795605705683e-56
+-2.0693819412193460e-57
+-6.4929156606561066e-57
+-2.9227769541044941e-57
+1.0546992089197098e-57
+1.6560114598290643e-57
+5.1970613966755975e-58
+-3.7727275767291080e-58
+-4.0324334912561938e-58
+-7.1947061654998960e-59
+1.1703279282773051e-58
+9.3491764489887911e-59
+3.2472633130722918e-60
+-3.3407281553881577e-59
+-2.0457986331689049e-59
+2.6163351312316678e-60
+8.9853035429299810e-60
+4.1461885499333270e-60
+-1.4091435052636098e-60
+-2.3003054094449113e-60
+-7.4666646847238279e-61
+5.1247994959694906e-61
+5.6223180206714260e-61
+1.0652394081067937e-61
+-1.6032569944967746e-61
+-1.3089692506915876e-61
+-6.1217798114806747e-63
+4.6019311906510737e-62
+2.8791047995505397e-62
+-3.2720333994901045e-63
+-1.2430506359883481e-62
+-5.8773852265494584e-63
+1.8787429490398757e-63
+3.1943294551614620e-63
+1.0712771584805724e-63
+-6.9551086529324791e-64
+-7.8366353875228995e-64
+-1.5709616753770044e-64
+2.1951532635630789e-64
+1.8320111998294769e-64
+1.0753054922472296e-65
+-6.3368419662941272e-65
+-4.0499351253500810e-65
+4.0369995470098923e-66
+1.7191254354831271e-65
+8.3255998407365013e-66
+-2.4990526865156825e-66
+-4.4345033345051940e-66
+-1.5350313248741869e-66
+9.4300903134921483e-67
+1.0919698206043323e-66
+2.3086101197013605e-67
+-3.0039010439907011e-67
+-2.5631455156137159e-67
+-1.8075981121857944e-68
+8.7223733955460723e-68
+5.6942807373237605e-68
+-4.8952337031993599e-69
+-2.3767720460415525e-68
+-1.1785653172542049e-68
+3.3157521984158484e-69
+6.1543495930833325e-69
+2.1968883677213067e-69
+-1.2772820619136340e-69
+-1.5211025276162933e-69
+-3.3818598972932283e-70
+4.1082535911393072e-70
+3.5848151568827622e-70
+2.9486345936310539e-71
+-1.2001144899220665e-70
+-8.0026978662752555e-71
+5.8008190214239464e-72
+3.2849300627747688e-71
+1.6672781551409894e-71
+-4.3870638707593713e-72
+-8.5386816666048705e-72
+-3.1405214780880603e-72
+1.7281927763882770e-72
+2.1182399743951719e-72
+4.9398978009991786e-73
+-5.6152459111263725e-73
+-5.0119878226970715e-73
+-4.7058286530999012e-74
+1.6505666869098236e-73
+1.1242028187133090e-73
+-6.6573178925324939e-75
+-4.5386069709451093e-74
+-2.3571694050149549e-74
+5.7864445324444878e-75
+1.1843217611119954e-74
+4.4845988648903175e-75
+-2.3356317682474287e-75
+-2.9489073283179695e-75
+-7.1969529404356992e-76
+7.6702809955666427e-76
+7.0049714639843747e-76
+7.3862933761676097e-77
+-2.2691348577613098e-76
+-1.5785816007797134e-76
+7.2848807983753094e-78
+6.2686650273292067e-77
+3.3305065960876183e-77
+-7.6056843286411032e-78
+-1.6421746675533836e-77
+-6.3973559523196985e-78
+3.1527483059001457e-78
+4.1040835836196596e-78
+1.0460282753247584e-78
+-1.0470669925297150e-78
+-9.7871760895673132e-79
+-1.1442513974868516e-79
+3.1181768495428580e-79
+2.2156909275245934e-79
+-7.3686999828063825e-81
+-8.6552686915095635e-80
+-4.7029916593491568e-80
+9.9578508389642219e-81
+2.2763502395725797e-80
+9.1170302870699020e-81
+-4.2502395441577479e-81
+-5.7100778358003871e-81
+-1.5170211483670517e-81
+1.4283840303540821e-81
+1.3669860873678225e-81
+1.7539012857498446e-82
+-4.2830165777729489e-82
+-3.1086683032289606e-82
+6.3819625509146894e-84
+1.1946421595983478e-82
+6.6373183854327028e-83
+-1.2979535255599457e-83
+-3.1544768934096204e-83
+-1.2980793026680830e-83
+5.7218823792457704e-84
+7.9421641192938514e-84
+2.1956631797101243e-84
+-1.9472036494492921e-84
+-1.9086636836970223e-84
+-2.6649343012163347e-85
+5.8803176457494368e-85
+4.3597883510258470e-85
+-3.4671496917332981e-87
+-1.6483320144930197e-85
+-9.3620829236769517e-86
+1.6832216754972408e-86
+4.3700294987342610e-86
+1.8465679847968670e-86
+-7.6916513486856057e-87
+-1.1043486924742308e-86
+-3.1719714407896237e-87
+2.6525322705869929e-87
+2.6641248599763331e-87
+4.0194478187481973e-88
+-8.0695483831313155e-88
+-6.1120539140215162e-88
+-2.7448602392260455e-90
+2.2735136827766821e-88
+1.3198357097544238e-88
+-2.1700423955288632e-89
+-6.0521435517652745e-89
+-2.6245916193577670e-89
+1.0323055771003095e-89
+1.5351311167137548e-89
+4.5745042015930154e-90
+-3.6105742124339183e-90
+-3.7174081030218909e-90
+-6.0243550784177758e-91
+1.1068517354016920e-90
+8.5652968116503675e-91
+1.4398243183993138e-92
+-3.1346912177736121e-91
+-1.8597022683548631e-91
+2.7784102516459758e-92
+8.3791509100335766e-92
+3.7273931899150191e-92
+-1.3830934549858983e-92
+-2.1333230545211531e-92
+-6.5865770642249908e-93
+4.9106996970576774e-93
+5.1854803029410812e-93
+8.9804268512094631e-94
+-1.5174474274469081e-93
+-1.1998675934042000e-93
+-3.4807057333297368e-95
+4.3204957743768857e-94
+2.6190798766940183e-94
+-3.5283204958935855e-95
+-1.1597293172957874e-94
+-5.2894785260635855e-95
+1.8496269171372172e-95
+2.9637320680380652e-95
+9.4693637700475308e-96
+-6.6733721812329697e-96
+-7.2310565429170263e-96
+-1.3323576722937963e-96
+2.0792945696896946e-96
+1.6802124944705473e-96
+6.9049672191401833e-98
+-5.9526434720207888e-97
+-3.6867258503463484e-97
+4.4366048463871240e-98
+1.6046410222230879e-97
+7.5006230486649887e-98
+-2.4685241063737597e-98
+-4.1161716316154843e-98
+-1.3594766590550516e-98
+9.0606882861112181e-99
+1.0080426010075549e-98
+1.9684444327513598e-99
+-2.8476698678618407e-99
+-2.3520000262647928e-99
+-1.2482990126266474e-100
+8.1982535661801062e-100
+5.1871294720774219e-100
+-5.5111391850063336e-101
+-2.2195325531560573e-100
+-1.0628455954853525e-100
+3.2872467492709391e-101
+5.7150497340196076e-101
+1.9491634094287352e-101
+-1.2290555072335461e-101
+-1.4048262253565529e-101
+-2.8974201081514051e-102
+3.8978504494464096e-102
+3.2912007855084212e-102
+2.1375463570414294e-103
+-1.1286641972538666e-102
+-7.2947785258237280e-103
+6.7414832550399648e-104
+3.0690718797864075e-103
+1.5050308993204348e-103
+-4.3668928916797730e-104
+-7.9326362036911863e-104
+-2.7911442582852230e-104
+1.6655378993244003e-104
+1.9571927307860244e-104
+4.2506164205150625e-105
+-5.3323083766582517e-105
+-4.6038286929425285e-105
+-3.5322006663157862e-106
+1.5532280106817562e-105
+1.0254157233148792e-105
+-8.0830750204787037e-107
+-4.2424134898890850e-106
+-2.1297721162243170e-106
+5.7856577998517488e-107
+1.1007452427185295e-106
+3.9921545650883845e-107
+-2.2546708955868307e-107
+-2.7259124062409129e-107
+-6.2170577259938191e-108
+7.2903999480004024e-108
+6.4377409073779722e-108
+5.6912820379069758e-109
+-2.1366322404605571e-108
+-1.4407778777065500e-108
+9.4314383034824694e-110
+5.8624163947566377e-109
+3.0119135462757829e-109
+-7.6427513500897737e-110
+-1.5269590753766689e-109
+-5.7036089441909057e-110
+3.0488177749086799e-110
+3.7954163008122604e-110
+9.0685345573194751e-111
+-9.9614405029811272e-111
+-8.9990920599768032e-111
+-8.9987754659682153e-112
+2.9379506243314834e-111
+2.0235182438463495e-111
+-1.0582768536998082e-112
+-8.0983624268834673e-112
+-4.2568190468853687e-112
+1.0062637753422489e-112
+2.1175709404376498e-112
+8.1401660260646417e-113
+-4.1178483314512735e-113
+-5.2829511283936961e-113
+-1.3195051035268181e-113
+1.3602485895148745e-113
+1.2575291650671544e-113
+1.4022026556607111e-114
+-4.0380681310761611e-114
+-2.8407534345576159e-114
+1.1171512793027943e-115
+1.1183371611640071e-114
+6.0126971160629130e-115
+-1.3199774815359052e-115
+-2.9357495545843150e-115
+-1.1606032529670648e-115
+5.5547423674513804e-116
+7.3512837247795561e-116
+1.9155588715535454e-116
+-1.8562184895013276e-116
+-1.7566817718004441e-116
+-2.1595368585295264e-117
+5.5477059902138709e-117
+3.9864085133998177e-117
+-1.0573138257079289e-118
+-1.5438325128517063e-117
+-8.4879394159972019e-118
+1.7242752072584941e-118
+4.0688324081296853e-118
+1.6531841465332919e-118
+-7.4830155827435846e-119
+-1.0226353290936393e-118
+-2.7750693211524668e-119
+2.5312829450102828e-119
+2.4531534255418567e-119
+3.2942039301633413e-120
+-7.6183178577602543e-120
+-5.5918445261486917e-120
+7.7592985917457141e-122
+2.1304835977453585e-120
+1.1975505389845104e-120
+-2.2416723578486889e-121
+-5.6375284072846334e-121
+-2.3526846709199123e-121
+1.0066268092559732e-121
+1.4221637795804788e-121
+4.0124870425401650e-122
+-3.4493805717668930e-122
+-3.4246469518802824e-122
+-4.9851369738517008e-123
+1.0456921333320679e-122
+7.8407218523052803e-123
+-1.0756808148274848e-125
+-2.9390332328904635e-123
+-1.6886929298166350e-123
+2.8983632766970966e-124
+7.8086506017496600e-124
+3.3452742872757526e-124
+-1.3520428333103755e-124
+-1.9771933358881780e-124
+-5.7912780245380722e-125
+4.6969596555696673e-125
+4.7793359108777465e-125
+7.4931420090007469e-126
+-1.4346398579901153e-125
+-1.0989792615807455e-125
+-1.2094375038041094e-127
+4.0529891172623115e-126
+2.3800096488090317e-126
+-3.7235815655768298e-127
+-1.0812611011813171e-126
+-4.7527030745426784e-127
+1.8129770859960430e-127
+2.7480249290476114e-127
+8.3447686937509033e-128
+-6.3907312553457371e-128
+-6.6677691144924584e-128
+-1.1197508013972908e-128
+1.9672991598014260e-128
+1.5397778555258054e-128
+3.5816578774018999e-130
+-5.5871356655172078e-129
+-3.3526352731773779e-129
+4.7477984007049055e-130
+1.4967544346799393e-129
+6.7469054189998776e-130
+-2.4267052903806318e-130
+-3.8182483512584744e-130
+-1.2005496042407325e-130
+8.6881395070021744e-131
+9.2994511152906224e-131
+1.6648925982343845e-131
+-2.6963628913886153e-131
+-2.1565715463796304e-131
+-7.6341372456640558e-133
+7.6991547465786248e-132
+4.7204009982393325e-132
+-5.9993562736153364e-133
+-2.0712653786878677e-132
+-9.5706203320706505e-133
+3.2418657822281085e-133
+5.3036989633415035e-133
+1.7246999968952654e-133
+-1.1801252788907327e-133
+-1.2965782601148097e-133
+-2.4644675120567834e-134
+3.6936916097556252e-134
+3.0193337026664418e-134
+1.4320165808287327e-135
+-1.0605536996457406e-134
+-6.6429546758714293e-135
+7.4979539912378304e-136
+2.8653976612954273e-135
+1.3566231464488253e-135
+-4.3216789240582617e-136
+-7.3648814069668928e-136
+-2.4743265464057915e-136
+1.6015209101531014e-136
+1.8071953422458178e-136
+3.6337046231466979e-137
+-5.0571998376074179e-137
+-4.2257322130186483e-137
+-2.5080183831891055e-138
+1.4603456718888084e-137
+9.3441687287069828e-138
+-9.2430857579096317e-139
+-3.9627410800007014e-138
+-1.9216446714423088e-138
+5.7478372679371581e-139
+1.0224088237150224e-138
+3.5452278569498293e-139
+-2.1713002965112966e-139
+-2.5181324945872631e-139
+-5.3389368929502153e-140
+6.9201758967118330e-140
+5.9120497870106688e-140
+4.2077112273995228e-141
+-2.0100584697096137e-140
+-1.3137766043368304e-140
+1.1195622249423831e-141
+5.4785749049817542e-141
+2.7201650890261811e-141
+-7.6251266721193257e-142
+-1.4189081713283466e-141
+-5.0734723264147009e-142
+2.9408108829400594e-142
+3.5076786926427433e-142
+7.8197046685313904e-143
+-9.4639843911998237e-143
+-8.2684315969628448e-143
+-6.8543173419237854e-144
+2.7655832001588436e-143
+1.8463233333615772e-143
+-1.3247189599630974e-144
+-7.5717984310330616e-144
+-3.8480034186398671e-144
+1.0087093132612713e-144
+1.9685913841143572e-144
+7.2522436305704408e-145
+-3.9787423538102858e-145
+-4.8845974273760962e-145
+-1.1420501150771200e-145
+1.2935162397771380e-145
+1.1560028692767800e-145
+1.0927882448835590e-146
+-3.8035285720443469e-146
+-2.5936153990379762e-146
+1.5170738791169691e-147
+1.0461339088087310e-146
+5.4400445546219223e-147
+-1.3302314517848612e-147
+-2.7304106067186483e-147
+-1.0355484549804568e-147
+5.3768594159943000e-148
+6.7999754291052249e-148
+1.6636285696978823e-148
+-1.7668473297861735e-148
+-1.6156475896939699e-148
+-1.7138461840213420e-149
+5.2288294035183906e-149
+3.6418217776994477e-149
+-1.6545444732766003e-150
+-1.4448786819201211e-149
+-7.6861278588808604e-150
+1.7480950473710678e-150
+3.7859081521377378e-150
+1.4771413761441633e-150
+-7.2574654707096472e-151
+-9.4635895535580550e-151
+-2.4176801654888565e-151
+2.4118243571556180e-151
+2.2573013723094836e-151
+2.6533072230247711e-152
+-7.1851230782354930e-152
+-5.1115223541780920e-152
+1.6638609374986200e-153
+1.9949380268760893e-152
+1.0853223043942052e-152
+-2.2881773923051815e-153
+-5.2478611257875972e-153
+-2.1049999443292561e-153
+9.7831092513258980e-154
+1.3166615422778950e-153
+3.5058632841311852e-154
+-3.2900365619787068e-154
+-3.1527466014211800e-154
+-4.0648724792876645e-155
+9.8689727228671212e-155
+7.1714288263602927e-155
+-1.4222705255199291e-156
+-2.7534560345376836e-155
+-1.5316618982819737e-155
+2.9817544163457832e-156
+7.2721695687949708e-156
+2.9969501862194628e-156
+-1.3169424066269900e-156
+-1.8313175311607659e-156
+-5.0736764742315149e-157
+4.4848689269205709e-157
+4.4019597553283485e-157
+6.1735268192717387e-158
+-1.3549171105607289e-157
+-1.0057453879575924e-157
+7.3037000175143078e-160
+3.7990605772031244e-158
+2.1603777419361633e-158
+-3.8656508053862865e-159
+-1.0074265359400349e-158
+-4.2630622248411996e-159
+1.7701583597938967e-159
+2.5463878916499941e-159
+7.3290109768420959e-160
+-6.1091425121081258e-160
+-6.1441721303338002e-160
+-9.3078921931228503e-161
+1.8593004952172744e-160
+1.4099375676165252e-160
+7.2938345241394234e-163
+-5.2398788917561899e-161
+-3.0455481767901181e-161
+4.9818818143900170e-162
+1.3951811756018665e-161
+6.0589619488577927e-162
+-2.3755324124084348e-162
+-3.5396173427783917e-162
+-1.0568625547640887e-162
+8.3153035444429266e-163
+8.5731832540639889e-163
+1.3946325922938887e-163
+-2.5502192458101163e-163
+-1.9758132532837452e-163
+-3.4548203282127461e-165
+7.2245281248099789e-164
+4.2911725228861171e-164
+-6.3759501973892710e-165
+-1.9315886666123041e-164
+-8.6044666165975415e-165
+3.1824364949990658e-165
+4.9188113406135224e-165
+1.5215878284360197e-165
+-1.1309028731721229e-165
+-1.1958667913392154e-165
+-2.0783660691148416e-166
+3.4961534108944458e-166
+2.7677612939629503e-166
+8.2145715226743868e-168
+-9.9572412862016471e-167
+-6.0432329166132747e-167
+8.0928387978957661e-168
+2.6733972087421062e-167
+1.2209905853890683e-167
+-4.2554697065215396e-168
+-6.8333874093969877e-168
+-2.1873837249391137e-168
+1.5367584440751969e-168
+1.6675847884304857e-168
+3.0827594258635536e-169
+-4.7904925969950005e-169
+-3.8756996484751022e-169
+-1.6184485357606497e-170
+1.3718511861469533e-169
+8.5064978503844777e-170
+-1.0169892989274343e-170
+-3.6989367466075405e-170
+-1.7313276524333550e-170
+5.6787122749406095e-171
+9.4903692717601879e-171
+3.1400873027133920e-171
+-2.0864153766247323e-171
+-2.3246539290015449e-171
+-4.5535562285248358e-172
+6.5605503974211378e-172
+5.4251838034882433e-172
+2.9150153538560291e-173
+-1.8893351848928753e-172
+-1.1968094601034567e-172
+1.2623630052442215e-173
+5.1162715079013882e-173
+2.4532198215271037e-173
+-7.5611432999772569e-174
+-1.3176568690252386e-173
+-4.5018132184533338e-174
+2.8300095409736591e-174
+3.2396208961041300e-174
+6.7011966515203178e-175
+-8.9797315678555546e-175
+-7.5914328952467673e-175
+-4.9799903864315951e-176
+2.6010131707728443e-175
+1.6830575756885373e-175
+-1.5426902825425897e-176
+-7.0744247601927102e-176
+-3.4737177844546352e-176
+1.0043120332102061e-176
+1.8289144811576506e-176
+6.4460567822829196e-177
+-3.8348249070108487e-177
+-4.5133362237300808e-177
+-9.8291797590927125e-178
+1.2283989231025652e-177
+1.0618901210446106e-177
+8.2157888985569988e-179
+-3.5793497195225672e-178
+-2.3657944606864083e-178
+1.8472941227128823e-179
+9.7788763959790402e-179
+4.9154876550551258e-179
+-1.3303971764814738e-179
+-2.5377871651738354e-179
+-9.2191405468861657e-180
+5.1909837296910906e-180
+6.2859277738736147e-180
+1.4374224220497652e-180
+-1.6794245386568003e-180
+-1.4848600825243563e-180
+-1.3222129575160278e-181
+4.9236663024514337e-181
+3.3240144132716301e-181
+-2.1516358053953763e-182
+-1.3512802142880269e-181
+-6.9512359570575356e-182
+1.7571190913722756e-182
+3.5203706528673535e-182
+1.3170640351204499e-182
+-7.0189228762052605e-183
+-8.7520387951547228e-183
+-2.0963910620976359e-183
+2.2946546411250579e-183
+2.0755983793144575e-183
+2.0887606273961149e-184
+-6.7700636158392497e-184
+-4.6683421993791899e-184
+2.4078809822008497e-185
+1.8666276665947341e-184
+9.8240206978325319e-185
+-2.3130331469427843e-185
+-4.8819400783087404e-185
+-1.8796079872663682e-185
+9.4793607928899368e-186
+1.2182012098826509e-185
+3.0499273710704808e-186
+-3.1332698158538283e-186
+-2.9003747637672089e-186
+-3.2523819159445867e-187
+9.3049131896268123e-187
+6.5536003909790271e-187
+-2.5306396913684010e-188
+-2.5776550467204506e-187
+-1.3875840557691143e-187
+3.0334863920483221e-188
+6.7680870772389477e-188
+2.6797432026627380e-188
+-1.2786243570425855e-188
+-1.6951147884043687e-188
+-4.4271472937907469e-189
+4.2755471696599470e-189
+4.0515487977876779e-189
+5.0061141651762940e-190
+-1.2783249934553015e-189
+-9.1963982311415306e-190
+2.3746841222160541e-191
+3.5583175036957403e-190
+1.9587530300776720e-190
+-3.9616152687532429e-191
+-9.3801382108019424e-191
+-3.8168786018387327e-191
+1.7223537466114697e-191
+2.3580290996266195e-191
+6.4128687460263813e-192
+-5.8302539143264487e-192
+-5.6577735886357230e-192
+-7.6328607478236363e-193
+1.7553975684905219e-192
+1.2899752613217549e-192
+-1.7005993344926238e-194
+-4.9103686406768173e-193
+-2.7634857512306872e-193
+5.1489418264485222e-194
+1.2996354606769542e-193
+5.4316397742404478e-194
+-2.3167395867741646e-194
+-3.2792208208682555e-194
+-9.2714509371749979e-195
+7.9445650929931065e-195
+7.8982049010933023e-195
+1.1546102262824679e-195
+-2.4094051385864823e-195
+-1.8087301182412318e-195
+1.2392301503424864e-198
+6.7737869956677541e-196
+3.8967381363028770e-196
+-6.6551296681809884e-197
+-1.8001187193276530e-196
+-7.7228491119964412e-197
+3.1114470818232351e-197
+4.5589385403003599e-197
+1.3380400655919321e-197
+-1.0817492175654200e-197
+-1.1022302540851434e-197
+-1.7348943605436005e-198
+3.3054997044447738e-198
+2.5351133542842593e-198
+2.9619764120206733e-200
+-9.3410254072687359e-199
+-5.4918393921524866e-199
+8.5466268731641506e-200
+2.4925740753199742e-199
+1.0971526851006866e-199
+-4.1717933871604985e-200
+-6.3361839462595544e-200
+-1.9278305953268225e-200
+1.4717773133506604e-200
+1.5377241262965020e-200
+2.5918191864184345e-201
+-4.5326496435240771e-201
+-3.5518679673652151e-201
+-8.5007038352491729e-203
+1.2876543299771737e-201
+7.7359306434707382e-202
+-1.0892614866942026e-202
+-3.4503350174650862e-202
+-1.5574484255226196e-202
+5.5834307660261902e-203
+8.8036745801646473e-203
+2.7733120434692154e-203
+-2.0007734601205003e-203
+-2.1446043538190178e-203
+-3.8525973086151684e-204
+6.2122460626194910e-204
+4.9745582867340951e-204
+1.7941512587663510e-205
+-1.7743682424453482e-204
+-1.0891641961234667e-204
+1.3756429559838307e-205
+4.7746181376154451e-205
+2.2091756940002988e-205
+-7.4581684672842777e-206
+-1.2228473254537363e-205
+-3.9838249998512576e-206
+2.7175465521081995e-206
+2.9900674465403253e-206
+5.7015234689249348e-207
+-8.5097744990591033e-207
+-6.9645401828387538e-207
+-3.3491216129009928e-208
+2.4441337236997487e-207
+1.5327286278771958e-207
+-1.7180859335962245e-208
+-6.6051078988603443e-208
+-3.1313543895318671e-208
+9.9411436231269763e-209
+1.6980546502814458e-208
+5.7149255187151904e-209
+-3.6877393419309758e-209
+-4.1675481972498424e-209
+-8.4048824857467262e-210
+1.1650747038382108e-209
+9.7470817584885429e-210
+5.8487725474830931e-211
+-3.3654132642982301e-210
+-2.1559207165573875e-210
+2.1161787750761332e-211
+9.1344777218793030e-211
+4.4353793645919396e-211
+-1.3219898614579417e-211
+-2.3572365508469268e-211
+-8.1878130217515276e-212
+4.9994662178556075e-212
+5.8069261774617646e-212
+1.2346813925436645e-212
+-1.5942194232889858e-212
+-1.3636503557934267e-212
+-9.7939785075429157e-214
+4.6321375325637855e-213
+3.0311171168272735e-213
+-2.5603468633744334e-214
+-1.2628378556328184e-213
+-6.2782138490257611e-214
+1.7535109600845696e-214
+3.2713454245778432e-214
+1.1716624643191690e-214
+-6.7708734433918093e-215
+-8.0887248624184129e-215
+-1.8080851928584102e-215
+2.1801717050167756e-215
+1.9071251899274346e-215
+1.5932335431105974e-216
+-6.3730964060280265e-216
+-4.2597023771367802e-216
+3.0248792948655835e-217
+1.7453031307290442e-216
+8.8809810149544329e-217
+-2.3192955427610539e-217
+-4.5385822015837322e-217
+-1.6747178905097889e-217
+9.1600556098188525e-218
+1.1263735715891079e-217
+2.6402872385549242e-218
+-2.9797047923530884e-218
+-2.6662854918962682e-218
+-2.5375148626462780e-219
+8.7647641730412861e-219
+5.9836480189875484e-219
+-3.4566177793694433e-220
+-2.4113033268948244e-219
+-1.2554929210223855e-219
+3.0579868038663422e-220
+6.2948471129135333e-220
+2.3911921469214122e-220
+-1.2378059571127801e-220
+-1.5680263904930940e-220
+-3.8455727598875292e-221
+4.0699223537155763e-221
+3.7263789580445595e-221
+3.9765384163928361e-222
+-1.2048897447840360e-221
+-8.4017346885237193e-222
+3.7570179321332615e-223
+3.3303327503461922e-222
+1.7737983085304091e-222
+-4.0177852896199175e-223
+-8.7281211096545783e-223
+-3.4107007607833235e-223
+1.6706194869202851e-223
+2.1822000065718805e-223
+5.5879084204948987e-224
+-5.5554183440294562e-224
+-5.2062067411997108e-224
+-6.1523344362618803e-225
+1.6556454420654136e-224
+1.1792109520530726e-224
+-3.7551570435157839e-226
+-4.5980865129060851e-225
+-2.5046179812791109e-225
+5.2578774675775445e-226
+1.2098331112312189e-225
+4.8601496381309747e-226
+-2.2518462291748173e-226
+-3.0360317893405767e-226
+-8.1021004264207423e-227
+7.5779989031184381e-227
+7.2713141338880086e-227
+9.4204801272674336e-228
+-2.2740189817222416e-227
+-1.6543850573167243e-227
+3.1657968286530830e-229
+6.3462661935593631e-228
+3.5345434711720447e-228
+-6.8497526990233229e-229
+-1.6764847448075881e-228
+-6.9191914866957123e-229
+3.0310564565831278e-229
+4.2226809827970420e-229
+1.1724044449513122e-229
+-1.0329691695867908e-229
+-1.0152262232889277e-229
+-1.4301261891688894e-230
+3.1219306758187571e-230
+2.3201143089725159e-230
+-1.5250255285355951e-232
+-8.7560387783902131e-231
+-4.9852426806510988e-231
+8.8776135086223344e-232
+2.3224284608151546e-231
+9.8418810334377156e-232
+-4.0738118344024166e-232
+-5.8714026917648547e-232
+-1.6933913056194035e-232
+1.4070180819212507e-232
+1.4170067496814124e-232
+2.1554014287853605e-233
+-4.2840007172554543e-233
+-3.2524657719902478e-233
+-1.9047394058625143e-235
+1.2076574412760051e-233
+7.0276389380071548e-234
+-1.1437017340309200e-234
+-3.2162654854365162e-234
+-1.3987294961261343e-234
+5.4665273065869361e-235
+8.1614472345269128e-235
+2.4417016662865137e-235
+-1.9150397824963076e-235
+-1.9771648132091095e-235
+-3.2284836388010298e-236
+5.8757799865411510e-236
+4.5577343378876019e-236
+8.2772034092353990e-238
+-1.6650374143335732e-236
+-9.9016756041159973e-237
+1.4631161058465832e-237
+4.4527491899205618e-237
+1.9862799915592115e-237
+-7.3226294096520764e-238
+-1.1341318453296973e-237
+-3.5150570433711377e-238
+2.6043917252489919e-238
+2.7578885408579462e-238
+4.8099874432742241e-239
+-8.0550046625108210e-239
+-6.3844381930377928e-239
+-1.9375702364026761e-240
+2.2947977576773889e-239
+1.3944064574592354e-239
+-1.8561828073423770e-240
+-6.1626891221597228e-240
+-2.8184600439771104e-240
+9.7905342461855598e-241
+1.5755497478155203e-240
+5.0527244528006580e-241
+-3.5388784785239863e-241
+-3.8456863516662137e-241
+-7.1326849640285201e-242
+1.1036817186927154e-241
+8.9399719031442180e-242
+3.7925873625972431e-243
+-3.1615708675843887e-242
+-1.9627239391909337e-242
+2.3311507079166341e-243
+8.5265987366097750e-243
+3.9963207664202050e-243
+-1.3063500697282296e-243
+-2.1881281393136296e-243
+-7.2528967415261847e-244
+4.8043866577815820e-244
+5.3608870406447138e-244
+1.0533448740934019e-244
+-1.5114397476723516e-244
+-1.2513859075325813e-244
+-6.8060509412649517e-246
+4.3540802375842760e-245
+2.7613604618924532e-245
+-2.8913551837635150e-246
+-1.1793550638089588e-245
+-5.6624022558646028e-246
+1.7391668445339518e-246
+3.0379771496043946e-246
+1.0397409218945765e-246
+-6.5163315376418129e-247
+-7.4707783096343254e-247
+-1.5498562860999365e-247
+2.0687113806318812e-247
+1.7510233364038519e-247
+1.1600795205723486e-248
+-5.9940491151887496e-248
+-3.8831605983179519e-248
+3.5300069091935012e-249
+1.6307038318899529e-248
+8.0175889075517466e-249
+-2.3097190924733515e-249
+-4.2166565985173887e-249
+-1.4886852860553320e-249
+8.8295027727651006e-250
+1.0407863098449147e-249
+2.2728918972499461e-250
+-2.8298474931679462e-250
+-2.4492895586891252e-250
+-1.9108550608941447e-251
+8.2484392431516746e-251
+5.4582397479818338e-251
+-4.2214950120073187e-252
+-2.2540566954594058e-251
+-1.1344865088203095e-251
+3.0591875315516906e-252
+5.8509119067219154e-252
+2.1289891978629389e-252
+-1.1951252581802410e-252
+-1.4495253735577675e-252
+-3.3233645146800351e-253
+3.8687399896838141e-253
+3.4248162006606278e-253
+3.0716272361943806e-254
+-1.1346114111310385e-253
+-7.6688267191008955e-254
+4.9079408924474991e-255
+3.1146774278601145e-254
+1.6042782290052900e-254
+-4.0397126967427681e-255
+-8.1161349053603482e-255
+-3.0413243346319919e-255
+1.6158761976116754e-255
+2.0181763169456788e-255
+4.8462566266418010e-256
+-5.2858001293490102e-256
+-4.7872575280960069e-256
+-4.8480773318186769e-257
+1.5600587420321025e-256
+1.0770052158044574e-256
+-5.4776024632478296e-258
+-4.3024719249014950e-257
+-2.2672191503067042e-257
+5.3167284159459623e-258
+1.1255010137089606e-257
+4.3400885113613138e-258
+-2.1821636173810683e-258
+-2.8090616374789205e-258
+-7.0496087731465020e-259
+7.2173311903915519e-259
+6.6894479996152342e-259
+7.5436562210926466e-260
+-2.1441228528577389e-259
+-1.5119067561116268e-259
+5.7308748347216056e-261
+5.9412354735208213e-260
+3.2022011839673867e-260
+-6.9712741342995246e-261
+-1.5603169724657595e-260
+-6.1873202098590391e-261
+2.9431935592203739e-261
+3.9087149535009980e-261
+1.0231695748567209e-261
+-9.8481394110134783e-262
+-9.3443431560970059e-262
+-1.1604555800785862e-262
+2.9455660823255140e-262
+2.1215530221700909e-262
+-5.3293404446277345e-264
+-8.2014016242997309e-263
+-4.5201761618355388e-263
+9.1019486621430397e-264
+2.1624623683992301e-263
+8.8124031430665271e-264
+-3.9642983093377473e-264
+-5.4372284791877827e-264
+-1.4819388178586334e-264
+1.3428651423743455e-264
+1.3048649294281490e-264
+1.7685217277198166e-265
+-4.0447690989932690e-265
+-2.9758542518135590e-265
+3.7171177920095647e-267
+1.1318296790962356e-265
+6.3781247012921793e-266
+-1.1832019389757582e-266
+-2.9996199845140109e-266
+-1.2574649103007106e-266
+5.3749985324126678e-267
+7.7076246591903442e-267
+2.2420260157991015e-267
+-2.0781015623507002e-267
+-2.3995410736831581e-267
+-4.8025352697660912e-268
+1.8075639316312354e-267
+2.5917141560026745e-267
+0.0000000000000000e+00
+3.9162539082986517e-02
+7.8235911646472894e-02
+1.1722022900636597e-01
+1.5611560241346592e-01
+1.9492214305346645e-01
+2.3363996204695436e-01
+2.7226917044941024e-01
+3.1080987925120762e-01
+3.4926219937761377e-01
+3.8762624168878917e-01
+4.2590211697978775e-01
+4.6408993598055681e-01
+5.0218980935593704e-01
+5.4020184770566237e-01
+5.7812616156436036e-01
+6.1596286140155188e-01
+6.5371205762165119e-01
+6.9137386056396555e-01
+7.2894838050269650e-01
+7.6643572764693790e-01
+8.0383601214067768e-01
+8.4114934406279729e-01
+8.7837583342707060e-01
+9.1551559018216599e-01
+9.5256872421164496e-01
+9.8953534533396159e-01
+1.0264155633024643e+00
+1.0632094878053946e+00
+1.0999172284658871e+00
+1.1365388948419703e+00
+1.1730745964265656e+00
+1.2095244426474878e+00
+1.2458885428674455e+00
+1.2821670063840409e+00
+1.3183599424297685e+00
+1.3544674601720168e+00
+1.3904896687130683e+00
+1.4264266770900977e+00
+1.4622785942751741e+00
+1.4980455291752595e+00
+1.5337275906322090e+00
+1.5693248874227717e+00
+1.6048375282585898e+00
+1.6402656217861993e+00
+1.6756092765870283e+00
+1.7108686011774004e+00
+1.7460437040085302e+00
+1.7811346934665275e+00
+1.8161416778723942e+00
+1.8510647654820271e+00
+1.8859040644862151e+00
+1.9206596830106406e+00
+1.9553317291158798e+00
+1.9899203107974028e+00
+2.0244255359855714e+00
+2.0588475125456434e+00
+2.0931863482777664e+00
+2.1274421509169850e+00
+2.1616150281332343e+00
+2.1957050875313446e+00
+2.2297124366510399e+00
+2.2636371829669359e+00
+2.2974794338885425e+00
+2.3312392967602631e+00
+2.3649168788613943e+00
+2.3985122874061267e+00
+2.4320256295435430e+00
+2.4654570123576205e+00
+2.4988065428672299e+00
+2.5320743280261331e+00
+2.5652604747229892e+00
+2.5983650897813471e+00
+2.6313882799596517e+00
+2.6643301519512397e+00
+2.6971908123843407e+00
+2.7299703678220801e+00
+2.7626689247624743e+00
+2.7952865896384340e+00
+2.8278234688177641e+00
+2.8602796686031611e+00
+2.8926552952322164e+00
+2.9249504548774139e+00
+2.9571652536461319e+00
+2.9892997975806401e+00
+3.0213541926581047e+00
+3.0533285447905820e+00
+3.0852229598250234e+00
+3.1170375435432742e+00
+3.1487724016620713e+00
+3.1804276398330469e+00
+3.2120033636427250e+00
+3.2434996786125243e+00
+3.2749166901987561e+00
+3.3062545037926241e+00
+3.3375132247202282e+00
+3.3686929582425602e+00
+3.3997938095555038e+00
+3.4308158837898377e+00
+3.4617592860112336e+00
+3.4926241212202584e+00
+3.5234104943523676e+00
+3.5541185102779149e+00
+3.5847482738021452e+00
+3.6152998896651982e+00
+3.6457734625421052e+00
+3.6761690970427914e+00
+3.7064868977120757e+00
+3.7367269690296712e+00
+3.7668894154101817e+00
+3.7969743412031098e+00
+3.8269818506928437e+00
+3.8569120480986716e+00
+3.8867650375747722e+00
+3.9165409232102175e+00
+3.9462398090289743e+00
+3.9758617989899006e+00
+4.0054069969867516e+00
+4.0348755068481701e+00
+4.0642674323376982e+00
+4.0935828771537679e+00
+4.1228219449297043e+00
+4.1519847392337299e+00
+4.1810713635689556e+00
+4.2100819213733880e+00
+4.2390165160199267e+00
+4.2678752508163642e+00
+4.2966582290053896e+00
+4.3253655537645797e+00
+4.3539973282064102e+00
+4.3825536553782474e+00
+4.4110346382623513e+00
+4.4394403797758741e+00
+4.4677709827708636e+00
+4.4960265500342613e+00
+4.5242071842878984e+00
+4.5523129881885041e+00
+4.5803440643276980e+00
+4.6083005152319929e+00
+4.6361824433627969e+00
+4.6639899511164113e+00
+4.6917231408240285e+00
+4.7193821147517365e+00
+4.7469669751005164e+00
+4.7744778240062420e+00
+4.8019147635396813e+00
+4.8292778957064950e+00
+4.8565673224472352e+00
+4.8837831456373522e+00
+4.9109254670871865e+00
+4.9379943885419717e+00
+4.9649900116818362e+00
+4.9919124381218012e+00
+5.0187617694117801e+00
+5.0455381070365837e+00
+5.0722415524159095e+00
+5.0988722069043551e+00
+5.1254301717914084e+00
+5.1519155483014503e+00
+5.1783284375937546e+00
+5.2046689407624909e+00
+5.2309371588367197e+00
+5.2571331927803975e+00
+5.2832571434923725e+00
+5.3093091118063853e+00
+5.3352891984910711e+00
+5.3611975042499598e+00
+5.3870341297214734e+00
+5.4127991754789253e+00
+5.4384927420305269e+00
+5.4641149298193792e+00
+5.4896658392234752e+00
+5.5151455705557071e+00
+5.5405542240638566e+00
+5.5658918999305973e+00
+5.5911586982735004e+00
+5.6163547191450274e+00
+5.6414800625325343e+00
+5.6665348283582704e+00
+5.6915191164793786e+00
+5.7164330266878940e+00
+5.7412766587107464e+00
+5.7660501122097587e+00
+5.7907534867816466e+00
+5.8153868819580197e+00
+5.8399503972053806e+00
+5.8644441319251266e+00
+5.8888681854535454e+00
+5.9132226570618220e+00
+5.9375076459560328e+00
+5.9617232512771468e+00
+5.9858695721010262e+00
+6.0099467074384298e+00
+6.0339547562350075e+00
+6.0578938173712986e+00
+6.0817639896627460e+00
+6.1055653718596741e+00
+6.1292980626473099e+00
+6.1529621606457701e+00
+6.1765577644100631e+00
+6.2000849724300942e+00
+6.2235438831306595e+00
+6.2469345948714494e+00
+6.2702572059470487e+00
+6.2935118145869344e+00
+6.3166985189554756e+00
+6.3398174171519379e+00
+6.3628686072104781e+00
+6.3858521871001477e+00
+6.4087682547248885e+00
+6.4316169079235408e+00
+6.4543982444698331e+00
+6.4771123620723925e+00
+6.4997593583747344e+00
+6.5223393309552691e+00
+6.5448523773273033e+00
+6.5672985949390332e+00
+6.5896780811735516e+00
+6.6119909333488414e+00
+6.6342372487177821e+00
+6.6564171244681445e+00
+6.6785306577225905e+00
+6.7005779455386847e+00
+6.7225590849088732e+00
+6.7444741727605022e+00
+6.7663233059558099e+00
+6.7881065812919275e+00
+6.8098240955008817e+00
+6.8314759452495899e+00
+6.8530622271398638e+00
+6.8745830377084092e+00
+6.8960384734268247e+00
+6.9174286307016013e+00
+6.9387536058741235e+00
+6.9600134952206743e+00
+6.9812083949524215e+00
+7.0023384012154324e+00
+7.0234036100906660e+00
+7.0444041175939720e+00
+7.0653400196761007e+00
+7.0862114122226876e+00
+7.1070183910542664e+00
+7.1277610519262646e+00
+7.1484394905289967e+00
+7.1690538024876789e+00
+7.1896040833624175e+00
+7.2100904286482104e+00
+7.2305129337749499e+00
+7.2508716941074249e+00
+7.2711668049453104e+00
+7.2913983615231839e+00
+7.3115664590105087e+00
+7.3316711925116458e+00
+7.3517126570658480e+00
+7.3716909476472612e+00
+7.3916061591649260e+00
+7.4114583864627743e+00
+7.4312477243196353e+00
+7.4509742674492259e+00
+7.4706381105001620e+00
+7.4902393480559475e+00
+7.5097780746349869e+00
+7.5292543846905682e+00
+7.5486683726108845e+00
+7.5680201327190098e+00
+7.5873097592729213e+00
+7.6065373464654860e+00
+7.6257029884244654e+00
+7.6448067792125114e+00
+7.6638488128271707e+00
+7.6828291832008837e+00
+7.7017479842009866e+00
+7.7206053096297067e+00
+7.7394012532241625e+00
+7.7581359086563682e+00
+7.7768093695332325e+00
+7.7954217293965575e+00
+7.8139730817230362e+00
+7.8324635199242563e+00
+7.8508931373466995e+00
+7.8692620272717386e+00
+7.8875702829156413e+00
+7.9058179974295717e+00
+7.9240052638995824e+00
+7.9421321753466216e+00
+7.9601988247265307e+00
+7.9782053049300439e+00
+7.9961517087827909e+00
+8.0140381290452911e+00
+8.0318646584129603e+00
+8.0496313895161098e+00
+8.0673384149199379e+00
+8.0849858271245374e+00
+8.1025737185649032e+00
+8.1201021816109105e+00
+8.1375713085673400e+00
+8.1549811916738566e+00
+8.1723319231050233e+00
+8.1896235949702980e+00
+8.2068562993140226e+00
+8.2240301281154480e+00
+8.2411451732887055e+00
+8.2582015266828215e+00
+8.2751992800817238e+00
+8.2921385252042228e+00
+8.3090193537040307e+00
+8.3258418571697508e+00
+8.3426061271248759e+00
+8.3593122550277972e+00
+8.3759603322717950e+00
+8.3925504501850483e+00
+8.4090827000306252e+00
+8.4255571730064904e+00
+8.4419739602454964e+00
+8.4583331528153938e+00
+8.4746348417188262e+00
+8.4908791178933321e+00
+8.5070660722113374e+00
+8.5231957954801665e+00
+8.5392683784420349e+00
+8.5552839117740564e+00
+8.5712424860882308e+00
+8.5871441919314559e+00
+8.6029891197855211e+00
+8.6187773600671083e+00
+8.6345090031277962e+00
+8.6501841392540548e+00
+8.6658028586672486e+00
+8.6813652515236335e+00
+8.6968714079143581e+00
+8.7123214178654695e+00
+8.7277153713379025e+00
+8.7430533582274848e+00
+8.7583354683649475e+00
+8.7735617915159025e+00
+8.7887324173808619e+00
+8.8038474355952268e+00
+8.8189069357293022e+00
+8.8339110072882718e+00
+8.8488597397122213e+00
+8.8637532223761291e+00
+8.8785915445898667e+00
+8.8933747955981950e+00
+8.9081030645807768e+00
+8.9227764406521608e+00
+8.9373950128617903e+00
+8.9519588701940034e+00
+8.9664681015680348e+00
+8.9809227958380031e+00
+8.9953230417929309e+00
+9.0096689281567297e+00
+9.0239605435882027e+00
+9.0381979766810474e+00
+9.0523813159638546e+00
+9.0665106499001116e+00
+9.0805860668881966e+00
+9.0946076552613828e+00
+9.1085755032878293e+00
+9.1224896991706004e+00
+9.1363503310476464e+00
+9.1501574869918105e+00
+9.1639112550108361e+00
+9.1776117230473488e+00
+9.1912589789788779e+00
+9.2048531106178419e+00
+9.2183942057115527e+00
+9.2318823519422164e+00
+9.2453176369269272e+00
+9.2587001482176863e+00
+9.2720299733013736e+00
+9.2853071995997674e+00
+9.2985319144695424e+00
+9.3117042052022629e+00
+9.3248241590243914e+00
+9.3378918630972780e+00
+9.3509074045171676e+00
+9.3638708703152016e+00
+9.3767823474574126e+00
+9.3896419228447279e+00
+9.4024496833129643e+00
+9.4152057156328350e+00
+9.4279101065099482e+00
+9.4405629425848030e+00
+9.4531643104327898e+00
+9.4657142965641992e+00
+9.4782129874242109e+00
+9.4906604693928962e+00
+9.5030568287852208e+00
+9.5154021518510454e+00
+9.5276965247751253e+00
+9.5399400336771070e+00
+9.5521327646115264e+00
+9.5642748035678231e+00
+9.5763662364703190e+00
+9.5884071491782397e+00
+9.6003976274856928e+00
+9.6123377571216899e+00
+9.6242276237501301e+00
+9.6360673129698071e+00
+9.6478569103144096e+00
+9.6595965012525173e+00
+9.6712861711876013e+00
+9.6829260054580324e+00
+9.6945160893370712e+00
+9.7060565080328711e+00
+9.7175473466884785e+00
+9.7289886903818363e+00
+9.7403806241257787e+00
+9.7517232328680326e+00
+9.7630166014912199e+00
+9.7742608148128536e+00
+9.7854559575853433e+00
+9.7966021144959896e+00
+9.8076993701669863e+00
+9.8187478091554219e+00
+9.8297475159532759e+00
+9.8406985749874281e+00
+9.8516010706196457e+00
+9.8624550871465857e+00
+9.8732607087998048e+00
+9.8840180197457546e+00
+9.8947271040857725e+00
+9.9053880458560979e+00
+9.9160009290278541e+00
+9.9265658375070664e+00
+9.9370828551346513e+00
+9.9475520656864127e+00
+9.9579735528730584e+00
+9.9683474003401802e+00
+9.9786736916682663e+00
+9.9889525103727035e+00
+9.9991839399037605e+00
+1.0009368063646612e+01
+1.0019504964921317e+01
+1.0029594726982832e+01
+1.0039637433021010e+01
+1.0049633166160586e+01
+1.0059582009461201e+01
+1.0069484045917383e+01
+1.0079339358458556e+01
+1.0089148029949035e+01
+1.0098910143188027e+01
+1.0108625780909639e+01
+1.0118295025782864e+01
+1.0127917960411592e+01
+1.0137494667334609e+01
+1.0147025229025587e+01
+1.0156509727893100e+01
+1.0165948246280609e+01
+1.0175340866466469e+01
+1.0184687670663930e+01
+1.0193988741021137e+01
+1.0203244159621129e+01
+1.0212454008481831e+01
+1.0221618369556069e+01
+1.0230737324731559e+01
+1.0239810955830913e+01
+1.0248839344611635e+01
+1.0257822572766115e+01
+1.0266760721921651e+01
+1.0275653873640424e+01
+1.0284502109419513e+01
+1.0293305510690885e+01
+1.0302064158821409e+01
+1.0310778135112834e+01
+1.0319447520801818e+01
+1.0328072397059904e+01
+1.0336652844993525e+01
+1.0345188945644018e+01
+1.0353680779987604e+01
+1.0362128428935399e+01
+1.0370531973333417e+01
+1.0378891493962559e+01
+1.0387207071538628e+01
+1.0395478786712310e+01
+1.0403706720069190e+01
+1.0411890952129749e+01
+1.0420031563349356e+01
+1.0428128634118275e+01
+1.0436182244761667e+01
+1.0444192475539582e+01
+1.0452159406646965e+01
+1.0460083118213651e+01
+1.0467963690304376e+01
+1.0475801202918763e+01
+1.0483595735991329e+01
+1.0491347369391489e+01
+1.0499056182923546e+01
+1.0506722256326700e+01
+1.0514345669275039e+01
+1.0521926501377555e+01
+1.0529464832178117e+01
+1.0536960741155507e+01
+1.0544414307723386e+01
+1.0551825611230313e+01
+1.0559194730959740e+01
+1.0566521746130011e+01
+1.0573806735894371e+01
+1.0581049779340946e+01
+1.0588250955492761e+01
+1.0595410343307742e+01
+1.0602528021678696e+01
+1.0609604069433329e+01
+1.0616638565334245e+01
+1.0623631588078931e+01
+1.0630583216299778e+01
+1.0637493528564057e+01
+1.0644362603373951e+01
+1.0651190519166523e+01
+1.0657977354313729e+01
+1.0664723187122425e+01
+1.0671428095834356e+01
+1.0678092158626162e+01
+1.0684715453609380e+01
+1.0691298058830430e+01
+1.0697840052270637e+01
+1.0704341511846213e+01
+1.0710802515408261e+01
+1.0717223140742785e+01
+1.0723603465570680e+01
+1.0729943567547728e+01
+1.0736243524264610e+01
+1.0742503413246906e+01
+1.0748723311955073e+01
+1.0754903297784480e+01
+1.0761043448065376e+01
+1.0767143840062909e+01
+1.0773204550977121e+01
+1.0779225657942943e+01
+1.0785207238030203e+01
+1.0791149368243625e+01
+1.0797052125522823e+01
+1.0802915586742300e+01
+1.0808739828711460e+01
+1.0814524928174592e+01
+1.0820270961810891e+01
+1.0825978006234436e+01
+1.0831646137994200e+01
+1.0837275433574048e+01
+1.0842865969392747e+01
+1.0848417821803947e+01
+1.0853931067096200e+01
+1.0859405781492940e+01
+1.0864842041152510e+01
+1.0870239922168134e+01
+1.0875599500567935e+01
+1.0880920852314926e+01
+1.0886204053307015e+01
+1.0891449179377005e+01
+1.0896656306292590e+01
+1.0901825509756360e+01
+1.0906956865405796e+01
+1.0912050448813273e+01
+1.0917106335486059e+01
+1.0922124600866317e+01
+1.0927105320331099e+01
+1.0932048569192359e+01
+1.0936954422696935e+01
+1.0941822956026565e+01
+1.0946654244297875e+01
+1.0951448362562392e+01
+1.0956205385806525e+01
+1.0960925388951589e+01
+1.0965608446853780e+01
+1.0970254634304199e+01
+1.0974864026028836e+01
+1.0979436696688568e+01
+1.0983972720879176e+01
+1.0988472173131330e+01
+1.0992935127910584e+01
+1.0997361659617408e+01
+1.1001751842587140e+01
+1.1006105751090026e+01
+1.1010423459331200e+01
+1.1014705041450698e+01
+1.1018950571523440e+01
+1.1023160123559238e+01
+1.1027333771502809e+01
+1.1031471589233751e+01
+1.1035573650566564e+01
+1.1039640029250631e+01
+1.1043670798970245e+01
+1.1047666033344576e+01
+1.1051625805927699e+01
+1.1055550190208571e+01
+1.1059439259611056e+01
+1.1063293087493898e+01
+1.1067111747150744e+01
+1.1070895311810128e+01
+1.1074643854635484e+01
+1.1078357448725136e+01
+1.1082036167112300e+01
+1.1085680082765080e+01
+1.1089289268586493e+01
+1.1092863797414427e+01
+1.1096403742021675e+01
+1.1099909175115922e+01
+1.1103380169339744e+01
+1.1106816797270611e+01
+1.1110219131420889e+01
+1.1113587244237836e+01
+1.1116921208103602e+01
+1.1120221095335230e+01
+1.1123486978184660e+01
+1.1126718928838724e+01
+1.1129917019419143e+01
+1.1133081321982541e+01
+1.1136211908520421e+01
+1.1139308850959191e+01
+1.1142372221160157e+01
+1.1145402090919497e+01
+1.1148398531968303e+01
+1.1151361615972554e+01
+1.1154291414533121e+01
+1.1157187999185769e+01
+1.1160051441401153e+01
+1.1162881812584828e+01
+1.1165679184077240e+01
+1.1168443627153728e+01
+1.1171175213024515e+01
+1.1173874012834739e+01
+1.1176540097664411e+01
+1.1179173538528445e+01
+1.1181774406376650e+01
+1.1184342772093718e+01
+1.1186878706499247e+01
+1.1189382280347719e+01
+1.1191853564328513e+01
+1.1194292629065904e+01
+1.1196699545119055e+01
+1.1199074382982026e+01
+1.1201417213083772e+01
+1.1203728105788139e+01
+1.1206007131393861e+01
+1.1208254360134575e+01
+1.1210469862178808e+01
+1.1212653707629979e+01
+1.1214805966526395e+01
+1.1216926708841267e+01
+1.1219016004482695e+01
+1.1221073923293675e+01
+1.1223100535052087e+01
+1.1225095909470715e+01
+1.1227060116197229e+01
+1.1228993224814198e+01
+1.1230895304839084e+01
+1.1232766425724234e+01
+1.1234606656856899e+01
+1.1236416067559219e+01
+1.1238194727088228e+01
+1.1239942704635851e+01
+1.1241660069328907e+01
+1.1243346890229112e+01
+1.1245003236333075e+01
+1.1246629176572291e+01
+1.1248224779813160e+01
+1.1249790114856962e+01
+1.1251325250439885e+01
+1.1252830255232997e+01
+1.1254305197842269e+01
+1.1255750146808561e+01
+1.1257165170607625e+01
+1.1258550337650112e+01
+1.1259905716281558e+01
+1.1261231374782403e+01
+1.1262527381367972e+01
+1.1263793804188483e+01
+1.1265030711329056e+01
+1.1266238170809693e+01
+1.1267416250585299e+01
+1.1268565018545669e+01
+1.1269684542515490e+01
+1.1270774890254341e+01
+1.1271836129456698e+01
+1.1272868327751933e+01
+1.1273871552704303e+01
+1.1274845871812966e+01
+1.1275791352511966e+01
+1.1276708062170245e+01
+1.1277596068091645e+01
+1.1278455437514886e+01
+1.1279286237613594e+01
+1.1280088535496285e+01
+1.1280862398206363e+01
+1.1281607892722137e+01
+1.1282325085956796e+01
+1.1283014044758431e+01
+1.1283674835910023e+01
+1.1284307526129449e+01
+1.1284912182069478e+01
+1.1285488870317772e+01
+1.1286037657396887e+01
+1.1286558609764274e+01
+1.1287051793812267e+01
+1.1287517275868110e+01
+1.1287955122193932e+01
+1.1288365398986748e+01
+1.1288748172378483e+01
+1.1289103508435943e+01
+1.1289431473160830e+01
+1.1289732132489739e+01
+1.1290005552294161e+01
+1.1290251798380478e+01
+1.1290470936489971e+01
+1.1290663032298804e+01
+1.1290828151418040e+01
+1.1290966359393639e+01
+1.1291077721706447e+01
+1.1291162303772209e+01
+1.1291220170941568e+01
+1.1291251388500038e+01
+1.1291256021668058e+01
+1.1291234135600940e+01
+1.1291185795388889e+01
+1.1291111066057013e+01
+1.1291010012565312e+01
+1.1290882699808668e+01
+1.1290729192616867e+01
+1.1290549555754593e+01
+1.1290343853921410e+01
+1.1290112151751785e+01
+1.1289854513815072e+01
+1.1289571004615524e+01
+1.1289261688592283e+01
+1.1288926630119390e+01
+1.1288565893505771e+01
+1.1288179542995250e+01
+1.1287767642766548e+01
+1.1287330256933275e+01
+1.1286867449543937e+01
+1.1286379284581930e+01
+1.1285865825965541e+01
+1.1285327137547961e+01
+1.1284763283117263e+01
+1.1284174326396421e+01
+1.1283560331043297e+01
+1.1282921360650652e+01
+1.1282257478746137e+01
+1.1281568748792292e+01
+1.1280855234186561e+01
+1.1280116998261274e+01
+1.1279354104283655e+01
+1.1278566615455823e+01
+1.1277754594914786e+01
+1.1276918105732456e+01
+1.1276057210915626e+01
+1.1275171973405987e+01
+1.1274262456080130e+01
+1.1273328721749529e+01
+1.1272370833160556e+01
+1.1271388852994479e+01
+1.1270382843867452e+01
+1.1269352868330534e+01
+1.1268298988869665e+01
+1.1267221267905686e+01
+1.1266119767794331e+01
+1.1264994550826220e+01
+1.1263845679226877e+01
+1.1262673215156715e+01
+1.1261477220711035e+01
+1.1260257757920041e+01
+1.1259014888748824e+01
+1.1257748675097368e+01
+1.1256459178800554e+01
+1.1255146461628156e+01
+1.1253810585284839e+01
+1.1252451611410162e+01
+1.1251069601578580e+01
+1.1249664617299434e+01
+1.1248236720016973e+01
+1.1246785971110318e+01
+1.1245312431893504e+01
+1.1243816163615449e+01
+1.1242297227459964e+01
+1.1240755684545759e+01
+1.1239191595926432e+01
+1.1237605022590479e+01
+1.1235996025461279e+01
+1.1234364665397120e+01
+1.1232711003191175e+01
+1.1231035099571507e+01
+1.1229337015201081e+01
+1.1227616810677745e+01
+1.1225874546534248e+01
+1.1224110283238236e+01
+1.1222324081192232e+01
+1.1220516000733673e+01
+1.1218686102134875e+01
+1.1216834445603054e+01
+1.1214961091280315e+01
+1.1213066099243662e+01
+1.1211149529504983e+01
+1.1209211442011075e+01
+1.1207251896643610e+01
+1.1205270953219168e+01
+1.1203268671489212e+01
+1.1201245111140105e+01
+1.1199200331793106e+01
+1.1197134393004356e+01
+1.1195047354264902e+01
+1.1192939275000674e+01
+1.1190810214572501e+01
+1.1188660232276106e+01
+1.1186489387342103e+01
+1.1184297738935999e+01
+1.1182085346158198e+01
+1.1179852268043991e+01
+1.1177598563563571e+01
+1.1175324291622017e+01
+1.1173029511059303e+01
+1.1170714280650300e+01
+1.1168378659104766e+01
+1.1166022705067363e+01
+1.1163646477117634e+01
+1.1161250033770020e+01
+1.1158833433473861e+01
+1.1156396734613384e+01
+1.1153939995507709e+01
+1.1151463274410855e+01
+1.1148966629511728e+01
+1.1146450118934132e+01
+1.1143913800736764e+01
+1.1141357732913207e+01
+1.1138781973391950e+01
+1.1136186580036366e+01
+1.1133571610644726e+01
+1.1130937122950190e+01
+1.1128283174620814e+01
+1.1125609823259550e+01
+1.1122917126404239e+01
+1.1120205141527618e+01
+1.1117473926037317e+01
+1.1114723537275855e+01
+1.1111954032520654e+01
+1.1109165468984020e+01
+1.1106357903813157e+01
+1.1103531394090163e+01
+1.1100685996832025e+01
+1.1097821768990627e+01
+1.1094938767452746e+01
+1.1092037049040053e+01
+1.1089116670509110e+01
+1.1086177688551375e+01
+1.1083220159793198e+01
+1.1080244140795820e+01
+1.1077249688055380e+01
+1.1074236858002910e+01
+1.1071205707004330e+01
+1.1068156291360461e+01
+1.1065088667307009e+01
+1.1062002891014581e+01
+1.1058899018588674e+01
+1.1055777106069677e+01
+1.1052637209432877e+01
+1.1049479384588450e+01
+1.1046303687381462e+01
+1.1043110173591886e+01
+1.1039898898934570e+01
+1.1036669919059273e+01
+1.1033423289550635e+01
+1.1030159065928197e+01
+1.1026877303646385e+01
+1.1023578058094527e+01
+1.1020261384596841e+01
+1.1016927338412437e+01
+1.1013575974735321e+01
+1.1010207348694390e+01
+1.1006821515353433e+01
+1.1003418529711139e+01
+1.0999998446701083e+01
+1.0996561321191740e+01
+1.0993107207986471e+01
+1.0989636161823537e+01
+1.0986148237376087e+01
+1.0982643489252169e+01
+1.0979121971994720e+01
+1.0975583740081575e+01
+1.0972028847925452e+01
+1.0968457349873978e+01
+1.0964869300209658e+01
+1.0961264753149901e+01
+1.0957643762847006e+01
+1.0954006383388164e+01
+1.0950352668795462e+01
+1.0946682673025878e+01
+1.0942996449971281e+01
+1.0939294053458442e+01
+1.0935575537249015e+01
+1.0931840955039558e+01
+1.0928090360461516e+01
+1.0924323807081224e+01
+1.0920541348399917e+01
+1.0916743037853722e+01
+1.0912928928813658e+01
+1.0909099074585637e+01
+1.0905253528410462e+01
+1.0901392343463838e+01
+1.0897515572856358e+01
+1.0893623269633505e+01
+1.0889715486775660e+01
+1.0885792277198096e+01
+1.0881853693750978e+01
+1.0877899789219370e+01
+1.0873930616323220e+01
+1.0869946227717378e+01
+1.0865946675991584e+01
+1.0861932013670470e+01
+1.0857902293213565e+01
+1.0853857567015284e+01
+1.0849797887404945e+01
+1.0845723306646756e+01
+1.0841633876939815e+01
+1.0837529650418112e+01
+1.0833410679150543e+01
+1.0829277015140883e+01
+1.0825128710327803e+01
+1.0820965816584875e+01
+1.0816788385720560e+01
+1.0812596469478210e+01
+1.0808390119536075e+01
+1.0804169387507288e+01
+1.0799934324939894e+01
+1.0795684983316812e+01
+1.0791421414055867e+01
+1.0787143668509774e+01
+1.0782851797966137e+01
+1.0778545853647458e+01
+1.0774225886711136e+01
+1.0769891948249455e+01
+1.0765544089289596e+01
+1.0761182360793637e+01
+1.0756806813658539e+01
+1.0752417498716170e+01
+1.0748014466733284e+01
+1.0743597768411528e+01
+1.0739167454387442e+01
+1.0734723575232461e+01
+1.0730266181452919e+01
+1.0725795323490029e+01
+1.0721311051719914e+01
+1.0716813416453578e+01
+1.0712302467936922e+01
+1.0707778256350746e+01
+1.0703240831810735e+01
+1.0698690244367471e+01
+1.0694126544006428e+01
+1.0689549780647981e+01
+1.0684960004147388e+01
+1.0680357264294800e+01
+1.0675741610815274e+01
+1.0671113093368751e+01
+1.0666471761550062e+01
+1.0661817664888938e+01
+1.0657150852850005e+01
+1.0652471374832775e+01
+1.0647779280171658e+01
+1.0643074618135959e+01
+1.0638357437929871e+01
+1.0633627788692484e+01
+1.0628885719497781e+01
+1.0624131279354639e+01
+1.0619364517206828e+01
+1.0614585481933005e+01
+1.0609794222346739e+01
+1.0604990787196467e+01
+1.0600175225165540e+01
+1.0595347584872188e+01
+1.0590507914869546e+01
+1.0585656263645639e+01
+1.0580792679623377e+01
+1.0575917211160574e+01
+1.0571029906549935e+01
+1.0566130814019051e+01
+1.0561219981730417e+01
+1.0556297457781417e+01
+1.0551363290204325e+01
+1.0546417526966312e+01
+1.0541460215969446e+01
+1.0536491405050675e+01
+1.0531511141981857e+01
+1.0526519474469737e+01
+1.0521516450155945e+01
+1.0516502116617019e+01
+1.0511476521364381e+01
+1.0506439711844346e+01
+1.0501391735438123e+01
+1.0496332639461821e+01
+1.0491262471166438e+01
+1.0486181277737860e+01
+1.0481089106296876e+01
+1.0475986003899161e+01
+1.0470872017535287e+01
+1.0465747194130717e+01
+1.0460611580545812e+01
+1.0455465223575821e+01
+1.0450308169950890e+01
+1.0445140466336056e+01
+1.0439962159331250e+01
+1.0434773295471299e+01
+1.0429573921225918e+01
+1.0424364082999723e+01
+1.0419143827132213e+01
+1.0413913199897792e+01
+1.0408672247505747e+01
+1.0403421016100268e+01
+1.0398159551760429e+01
+1.0392887900500204e+01
+1.0387606108268459e+01
+1.0382314220948953e+01
+1.0377012284360333e+01
+1.0371700344256150e+01
+1.0366378446324841e+01
+1.0361046636189737e+01
+1.0355704959409069e+01
+1.0350353461475949e+01
+1.0344992187818393e+01
+1.0339621183799306e+01
+1.0334240494716486e+01
+1.0328850165802626e+01
+1.0323450242225313e+01
+1.0318040769087025e+01
+1.0312621791425137e+01
+1.0307193354211911e+01
+1.0301755502354510e+01
+1.0296308280694985e+01
+1.0290851734010284e+01
+1.0285385907012245e+01
+1.0279910844347599e+01
+1.0274426590597976e+01
+1.0268933190279895e+01
+1.0263430687844769e+01
+1.0257919127678905e+01
+1.0252398554103500e+01
+1.0246869011374651e+01
+1.0241330543683342e+01
+1.0235783195155454e+01
+1.0230227009851758e+01
+1.0224662031767926e+01
+1.0219088304834514e+01
+1.0213505872916976e+01
+1.0207914779815662e+01
+1.0202315069265810e+01
+1.0196706784937556e+01
+1.0191089970435922e+01
+1.0185464669300831e+01
+1.0179830925007099e+01
+1.0174188780964434e+01
+1.0168538280517431e+01
+1.0162879466945588e+01
+1.0157212383463294e+01
+1.0151537073219826e+01
+1.0145853579299363e+01
+1.0140161944720967e+01
+1.0134462212438601e+01
+1.0128754425341121e+01
+1.0123038626252274e+01
+1.0117314857930701e+01
+1.0111583163069936e+01
+1.0105843584298407e+01
+1.0100096164179437e+01
+1.0094340945211238e+01
+1.0088577969826918e+01
+1.0082807280394482e+01
+1.0077028919216820e+01
+1.0071242928531724e+01
+1.0065449350511877e+01
+1.0059648227264846e+01
+1.0053839600833109e+01
+1.0048023513194021e+01
+1.0042200006259842e+01
+1.0036369121877716e+01
+1.0030530901829685e+01
+1.0024685387832690e+01
+1.0018832621538555e+01
+1.0012972644534003e+01
+1.0007105498340648e+01
+1.0001231224415003e+01
+9.9953498641484639e+00
+9.9894614588673338e+00
+9.9835660498327954e+00
+9.9776636782409316e+00
+9.9717543852227237e+00
+9.9658382118440354e+00
+9.9599151991056303e+00
+9.9539853879431686e+00
+9.9480488192271910e+00
+9.9421055337631472e+00
+9.9361555722913728e+00
+9.9301989754870927e+00
+9.9242357839604338e+00
+9.9182660382564123e+00
+9.9122897788549356e+00
+9.9063070461708094e+00
+9.9003178805537271e+00
+9.8943223222882768e+00
+9.8883204115939503e+00
+9.8823121886251144e+00
+9.8762976934710451e+00
+9.8702769661559024e+00
+9.8642500466387446e+00
+9.8582169748135229e+00
+9.8521777905090762e+00
+9.8461325334891470e+00
+9.8400812434523619e+00
+9.8340239600322459e+00
+9.8279607227972168e+00
+9.8218915712505819e+00
+9.8158165448305468e+00
+9.8097356829102118e+00
+9.8036490247975596e+00
+9.7975566097354818e+00
+9.7914584769017523e+00
+9.7853546654090415e+00
+9.7792452143049147e+00
+9.7731301625718299e+00
+9.7670095491271347e+00
+9.7608834128230786e+00
+9.7547517924467932e+00
+9.7486147267203140e+00
+9.7424722543005622e+00
+9.7363244137793572e+00
+9.7301712436834134e+00
+9.7240127824743290e+00
+9.7178490685486061e+00
+9.7116801402376343e+00
+9.7055060358076997e+00
+9.6993267934599796e+00
+9.6931424513305444e+00
+9.6869530474903591e+00
+9.6807586199452853e+00
+9.6745592066360704e+00
+9.6683548454383619e+00
+9.6621455741626967e+00
+9.6559314305545065e+00
+9.6497124522941178e+00
+9.6434886769967481e+00
+9.6372601422125097e+00
+9.6310268854264098e+00
+9.6247889440583450e+00
+9.6185463554631063e+00
+9.6122991569303817e+00
+9.6060473856847484e+00
+9.5997910788856782e+00
+9.5935302736275396e+00
+9.5872650069395853e+00
+9.5809953157859749e+00
+9.5747212370657522e+00
+9.5684428076128540e+00
+9.5621600641961138e+00
+9.5558730435192594e+00
+9.5495817822209066e+00
+9.5432863168745712e+00
+9.5369866839886601e+00
+9.5306829200064698e+00
+9.5243750613061930e+00
+9.5180631442009158e+00
+9.5117472049386240e+00
+9.5054272797021842e+00
+9.4991034046093610e+00
+9.4927756157128211e+00
+9.4864439490001118e+00
+9.4801084403936855e+00
+9.4737691257508754e+00
+9.4674260408639181e+00
+9.4610792214599400e+00
+9.4547287032009635e+00
+9.4483745216838990e+00
+9.4420167124405552e+00
+9.4356553109376300e+00
+9.4292903525767198e+00
+9.4229218726943103e+00
+9.4165499065617801e+00
+9.4101744893854065e+00
+9.4037956563063538e+00
+9.3974134424006852e+00
+9.3910278826793530e+00
+9.3846390120882042e+00
+9.3782468655079789e+00
+9.3718514777543138e+00
+9.3654528835777349e+00
+9.3590511176636610e+00
+9.3526462146324096e+00
+9.3462382090391873e+00
+9.3398271353740956e+00
+9.3334130280621270e+00
+9.3269959214631708e+00
+9.3205758498720055e+00
+9.3141528475183115e+00
+9.3077269485666534e+00
+9.3012981871164886e+00
+9.2948665972021782e+00
+9.2884322127929675e+00
+9.2819950677929981e+00
+9.2755551960413030e+00
+9.2691126313118133e+00
+9.2626674073133515e+00
+9.2562195576896293e+00
+9.2497691160192570e+00
+9.2433161158157340e+00
+9.2368605905274599e+00
+9.2304025735377202e+00
+9.2239420981646969e+00
+9.2174791976614667e+00
+9.2110139052159958e+00
+9.2045462539511504e+00
+9.1980762769246809e+00
+9.1916040071292411e+00
+9.1851294774923691e+00
+9.1786527208765030e+00
+9.1721737700789703e+00
+9.1656926578319968e+00
+9.1592094168026943e+00
+9.1527240795930727e+00
+9.1462366787400349e+00
+9.1397472467153804e+00
+9.1332558159257928e+00
+9.1267624187128575e+00
+9.1202670873530529e+00
+9.1137698540577450e+00
+9.1072707509731963e+00
+9.1007698101805641e+00
+9.0942670636959004e+00
+9.0877625434701450e+00
+9.0812562813891375e+00
+9.0747483092736037e+00
+9.0682386588791708e+00
+9.0617273618963523e+00
+9.0552144499505598e+00
+9.0486999546020943e+00
+9.0421839073461552e+00
+9.0356663396128347e+00
+9.0291472827671093e+00
+9.0226267681088625e+00
+9.0161048268728603e+00
+9.0095814902287685e+00
+9.0030567892811426e+00
+8.9965307550694380e+00
+8.9900034185679907e+00
+8.9834748106860420e+00
+8.9769449622677246e+00
+8.9704139040920570e+00
+8.9638816668729611e+00
+8.9573482812592466e+00
+8.9508137778346164e+00
+8.9442781871176678e+00
+8.9377415395618947e+00
+8.9312038655556769e+00
+8.9246651954222962e+00
+8.9181255594199236e+00
+8.9115849877416178e+00
+8.9050435105153429e+00
+8.8985011578039472e+00
+8.8919579596051754e+00
+8.8854139458516652e+00
+8.8788691464109508e+00
+8.8723235910854523e+00
+8.8657773096124899e+00
+8.8592303316642784e+00
+8.8526826868479169e+00
+8.8461344047054080e+00
+8.8395855147136402e+00
+8.8330360462844002e+00
+8.8264860287643678e+00
+8.8199354914351158e+00
+8.8133844635131044e+00
+8.8068329741496942e+00
+8.8002810524311386e+00
+8.7937287273785820e+00
+8.7871760279480622e+00
+8.7806229830305131e+00
+8.7740696214517584e+00
+8.7675159719725180e+00
+8.7609620632884067e+00
+8.7544079240299268e+00
+8.7478535827624775e+00
+8.7412990679863487e+00
+8.7347444081367343e+00
+8.7281896315837066e+00
+8.7216347666322402e+00
+8.7150798415222006e+00
+8.7085248844283480e+00
+8.7019699234603340e+00
+8.6954149866627084e+00
+8.6888601020149032e+00
+8.6823052974312596e+00
+8.6757506007609972e+00
+8.6691960397882415e+00
+8.6626416422319998e+00
+8.6560874357461817e+00
+8.6495334479195876e+00
+8.6429797062759093e+00
+8.6364262382737333e+00
+8.6298730713065410e+00
+8.6233202327027048e+00
+8.6167677497254900e+00
+8.6102156495730604e+00
+8.6036639593784656e+00
+8.5971127062096553e+00
+8.5905619170694685e+00
+8.5840116188956390e+00
+8.5774618385607919e+00
+8.5709126028724523e+00
+8.5643639385730292e+00
+8.5578158723398339e+00
+8.5512684307850630e+00
+8.5447216404558137e+00
+8.5381755278340723e+00
+8.5316301193367181e+00
+8.5250854413155270e+00
+8.5185415200571679e+00
+8.5119983817831972e+00
+8.5054560526500733e+00
+8.4989145587491404e+00
+8.4923739261066444e+00
+8.4858341806837156e+00
+8.4792953483763824e+00
+8.4727574550155662e+00
+8.4662205263670831e+00
+8.4596845881316387e+00
+8.4531496659448369e+00
+8.4466157853771726e+00
+8.4400829719340305e+00
+8.4335512510556949e+00
+8.4270206481173400e+00
+8.4204911884290343e+00
+8.4139628972357379e+00
+8.4074357997173070e+00
+8.4009099209884912e+00
+8.3943852860989310e+00
+8.3878619200331634e+00
+8.3813398477106134e+00
+8.3748190939856055e+00
+8.3682996836473578e+00
+8.3617816414199719e+00
+8.3552649919624553e+00
+8.3487497598687028e+00
+8.3422359696675006e+00
+8.3357236458225366e+00
+8.3292128127323792e+00
+8.3227034947305043e+00
+8.3161957160852698e+00
+8.3096895009999336e+00
+8.3031848736126435e+00
+8.2966818579964414e+00
+8.2901804781592681e+00
+8.2836807580439480e+00
+8.2771827215282041e+00
+8.2706863924246576e+00
+8.2641917944808103e+00
+8.2576989513790728e+00
+8.2512078867367329e+00
+8.2447186241059889e+00
+8.2382311869739198e+00
+8.2317455987625010e+00
+8.2252618828286046e+00
+8.2187800624639937e+00
+8.2123001608953210e+00
+8.2058222012841426e+00
+8.1993462067268990e+00
+8.1928722002549250e+00
+8.1864002048344542e+00
+8.1799302433666057e+00
+8.1734623386874006e+00
+8.1669965135677476e+00
+8.1605327907134519e+00
+8.1540711927652065e+00
+8.1476117422986079e+00
+8.1411544618241347e+00
+8.1346993737871660e+00
+8.1282465005679718e+00
+8.1217958644817188e+00
+8.1153474877784610e+00
+8.1089013926431495e+00
+8.1024576011956313e+00
+8.0960161354906415e+00
+8.0895770175178097e+00
+8.0831402692016638e+00
+8.0767059124016196e+00
+8.0702739689119873e+00
+8.0638444604619739e+00
+8.0574174087156738e+00
+8.0509928352720816e+00
+8.0445707616650797e+00
+8.0381512093634466e+00
+8.0317341997708542e+00
+8.0253197542258672e+00
+8.0189078940019414e+00
+8.0124986403074345e+00
+8.0060920142855849e+00
+7.9996880370145318e+00
+7.9932867295073118e+00
+7.9868881127118447e+00
+7.9804922075109506e+00
+7.9740990347223413e+00
+7.9677086150986236e+00
+7.9613209693272946e+00
+7.9549361180307461e+00
+7.9485540817662637e+00
+7.9421748810260269e+00
+7.9357985362371073e+00
+7.9294250677614704e+00
+7.9230544958959737e+00
+7.9166868408723730e+00
+7.9103221228573108e+00
+7.9039603619523300e+00
+7.8976015781938562e+00
+7.8912457915532226e+00
+7.8848930219366435e+00
+7.8785432891852345e+00
+7.8721966130750003e+00
+7.8658530133168396e+00
+7.8595125095565477e+00
+7.8531751213748064e+00
+7.8468408682872006e+00
+7.8405097697441990e+00
+7.8341818451311696e+00
+7.8278571137683715e+00
+7.8215355949109586e+00
+7.8152173077489770e+00
+7.8089022714073666e+00
+7.8025905049459610e+00
+7.7962820273594842e+00
+7.7899768575775612e+00
+7.7836750144647011e+00
+7.7773765168203122e+00
+7.7710813833786938e+00
+7.7647896328090420e+00
+7.7585012837154412e+00
+7.7522163546368708e+00
+7.7459348640472090e+00
+7.7396568303552176e+00
+7.7333822719045617e+00
+7.7271112069737917e+00
+7.7208436537763570e+00
+7.7145796304605962e+00
+7.7083191551097450e+00
+7.7020622457419305e+00
+7.6958089203101725e+00
+7.6895591967023860e+00
+7.6833130927413782e+00
+7.6770706261848503e+00
+7.6708318147253962e+00
+7.6645966759905058e+00
+7.6583652275425571e+00
+7.6521374868788259e+00
+7.6459134714314798e+00
+7.6396931985675796e+00
+7.6334766855890814e+00
+7.6272639497328329e+00
+7.6210550081705755e+00
+7.6148498780089424e+00
+7.6086485762894638e+00
+7.6024511199885580e+00
+7.5962575260175429e+00
+7.5900678112226290e+00
+7.5838819923849119e+00
+7.5777000862203918e+00
+7.5715221093799530e+00
+7.5653480784493832e+00
+7.5591780099493509e+00
+7.5530119203354298e+00
+7.5468498259980787e+00
+7.5406917432626548e+00
+7.5345376883894080e+00
+7.5283876775734759e+00
+7.5222417269449000e+00
+7.5160998525686047e+00
+7.5099620704444146e+00
+7.5038283965070445e+00
+7.4976988466261041e+00
+7.4915734366060951e+00
+7.4854521821864139e+00
+7.4793350990413501e+00
+7.4732222027800850e+00
+7.4671135089466958e+00
+7.4610090330201517e+00
+7.4549087904143159e+00
+7.4488127964779425e+00
+7.4427210664946841e+00
+7.4366336156830819e+00
+7.4305504591965725e+00
+7.4244716121234857e+00
+7.4183970894870432e+00
+7.4123269062453634e+00
+7.4062610772914574e+00
+7.4001996174532243e+00
+7.3941425414934647e+00
+7.3880898641098653e+00
+7.3820415999350129e+00
+7.3759977635363807e+00
+7.3699583694163424e+00
+7.3639234320121600e+00
+7.3578929656959886e+00
+7.3518669847748823e+00
+7.3458455034907812e+00
+7.3398285360205255e+00
+7.3338160964758430e+00
+7.3278081989033588e+00
+7.3218048572845911e+00
+7.3158060855359484e+00
+7.3098118975087365e+00
+7.3038223069891526e+00
+7.2978373276982866e+00
+7.2918569732921235e+00
+7.2858812573615399e+00
+7.2799101934323085e+00
+7.2739437949650911e+00
+7.2679820753554480e+00
+7.2620250479338289e+00
+7.2560727259655780e+00
+7.2501251226509345e+00
+7.2441822511250287e+00
+7.2382441244578857e+00
+7.2323107556544226e+00
+7.2263821576544522e+00
+7.2204583433326786e+00
+7.2145393254986994e+00
+7.2086251168970072e+00
+7.2027157302069860e+00
+7.1968111780429149e+00
+7.1909114729539647e+00
+7.1850166274242033e+00
+7.1791266538725855e+00
+7.1732415646529653e+00
+7.1673613720540859e+00
+7.1614860882995890e+00
+7.1556157255480048e+00
+7.1497502958927592e+00
+7.1438898113621709e+00
+7.1380342839194508e+00
+7.1321837254627063e+00
+7.1263381478249368e+00
+7.1204975627740321e+00
+7.1146619820127812e+00
+7.1088314171788598e+00
+7.1030058798448428e+00
+7.0971853815181944e+00
+7.0913699336412748e+00
+7.0855595475913375e+00
+7.0797542346805278e+00
+7.0739540061558843e+00
+7.0681588731993417e+00
+7.0623688469277237e+00
+7.0565839383927518e+00
+7.0508041585810384e+00
+7.0450295184140899e+00
+7.0392600287483056e+00
+7.0334957003749796e+00
+7.0277365440202963e+00
+7.0219825703453376e+00
+7.0162337899460772e+00
+7.0104902133533793e+00
+7.0047518510330073e+00
+6.9990187133856114e+00
+6.9932908107467391e+00
+6.9875681533868326e+00
+6.9818507515112236e+00
+6.9761386152601395e+00
+6.9704317547087005e+00
+6.9647301798669208e+00
+6.9590339006797084e+00
+6.9533429270268607e+00
+6.9476572687230744e+00
+6.9419769355179364e+00
+6.9363019370959265e+00
+6.9306322830764193e+00
+6.9249679830136825e+00
+6.9193090463968758e+00
+6.9136554826500554e+00
+6.9080073011321659e+00
+6.9023645111370513e+00
+6.8967271218934441e+00
+6.8910951425649722e+00
+6.8854685822501578e+00
+6.8798474499824138e+00
+6.8742317547300500e+00
+6.8686215053962663e+00
+6.8630167108191573e+00
+6.8574173797717117e+00
+6.8518235209618110e+00
+6.8462351430322297e+00
+6.8406522545606361e+00
+6.8350748640595915e+00
+6.8295029799765512e+00
+6.8239366106938641e+00
+6.8183757645287706e+00
+6.8128204497334064e+00
+6.8072706744948004e+00
+6.8017264469348744e+00
+6.7961877751104431e+00
+6.7906546670132162e+00
+6.7851271305697942e+00
+6.7796051736416736e+00
+6.7740888040252436e+00
+6.7685780294517865e+00
+6.7630728575874768e+00
+6.7575732960333843e+00
+6.7520793523254703e+00
+6.7465910339345925e+00
+6.7411083482665637e+00
+6.7356313030277093e+00
+6.7301599070836007e+00
+6.7246941694809461e+00
+6.7192340976946152e+00
+6.7137796962520913e+00
+6.7083309693518149e+00
+6.7028879230434901e+00
+6.6974505654818790e+00
+6.6920189048728789e+00
+6.6865929493191549e+00
+6.6811727068335918e+00
+6.6757581849808449e+00
+6.6703493888057057e+00
+6.6649463223203149e+00
+6.6595489902244243e+00
+6.6541573998178523e+00
+6.6487715589223413e+00
+6.6433914752752345e+00
+6.6380171565065282e+00
+6.6326486101298254e+00
+6.6272858420427463e+00
+6.6219288562478935e+00
+6.6165776567153012e+00
+6.6112322492084274e+00
+6.6058926407351901e+00
+6.6005588383479212e+00
+6.5952308495676846e+00
+6.5899086820727160e+00
+6.5845923426622477e+00
+6.5792818350600228e+00
+6.5739771622362095e+00
+6.5686783283719787e+00
+6.5633853402486508e+00
+6.5580982049205998e+00
+6.5528169294336402e+00
+6.5475415208369530e+00
+6.5422719859640823e+00
+6.5370083293730703e+00
+6.5317505539326763e+00
+6.5264986627657926e+00
+6.5212526614680044e+00
+6.5160125566625302e+00
+6.5107783549363711e+00
+6.5055500628932776e+00
+6.5003276870893121e+00
+6.4951112328676031e+00
+6.4899007030015632e+00
+6.4846960999138270e+00
+6.4794974277380808e+00
+6.4743046928195378e+00
+6.4691179015838465e+00
+6.4639370602752741e+00
+6.4587621749851749e+00
+6.4535932514244969e+00
+6.4484302928911070e+00
+6.4432733015612760e+00
+6.4381222801882965e+00
+6.4329772340890115e+00
+6.4278381691837359e+00
+6.4227050913468506e+00
+6.4175780064241614e+00
+6.4124569201671378e+00
+6.4073418366540125e+00
+6.4022327577487781e+00
+6.3971296852365684e+00
+6.3920326230237281e+00
+6.3869415766971844e+00
+6.3818565518347086e+00
+6.3767775539679814e+00
+6.3717045885757555e+00
+6.3666376604467780e+00
+6.3615767716353702e+00
+6.3565219234250963e+00
+6.3514731182428470e+00
+6.3464303613295883e+00
+6.3413936582767834e+00
+6.3363630142039939e+00
+6.3313384335965806e+00
+6.3263199207610281e+00
+6.3213074786625301e+00
+6.3163011091396362e+00
+6.3113008141305782e+00
+6.3063065971297352e+00
+6.3013184623639784e+00
+6.2963364141729024e+00
+6.2913604575794446e+00
+6.2863905977517929e+00
+6.2814268386168379e+00
+6.2764691810988698e+00
+6.2715176256403238e+00
+6.2665721743516221e+00
+6.2616328317944809e+00
+6.2566996026613770e+00
+6.2517724914382340e+00
+6.2468515024241862e+00
+6.2419366395930318e+00
+6.2370279045897465e+00
+6.2321252978339476e+00
+6.2272288202329946e+00
+6.2223384752562252e+00
+6.2174542670780317e+00
+6.2125761997306395e+00
+6.2077042769683732e+00
+6.2028385024338855e+00
+6.1979788786998595e+00
+6.1931254067498118e+00
+6.1882780874385066e+00
+6.1834369227579300e+00
+6.1786019157217007e+00
+6.1737730694091129e+00
+6.1689503876243661e+00
+6.1641338745332588e+00
+6.1593235336497525e+00
+6.1545193655001249e+00
+6.1497213696542179e+00
+6.1449295465787133e+00
+6.1401438992974571e+00
+6.1353644312187194e+00
+6.1305911457489541e+00
+6.1258240463247171e+00
+6.1210631362414798e+00
+6.1163084168419406e+00
+6.1115598876265320e+00
+6.1068175482001434e+00
+6.1020814003966404e+00
+6.0973514472693715e+00
+6.0926276918616500e+00
+6.0879101373285307e+00
+6.0831987868216091e+00
+6.0784936425063787e+00
+6.0737947038412976e+00
+6.0691019697725928e+00
+6.0644154406351296e+00
+6.0597351190922959e+00
+6.0550610079710889e+00
+6.0503931099916830e+00
+6.0457314277683780e+00
+6.0410759636550369e+00
+6.0364267178991851e+00
+6.0317836894940715e+00
+6.0271468778056123e+00
+6.0225162845653131e+00
+6.0178919122598691e+00
+6.0132737632270041e+00
+6.0086618394687585e+00
+6.0040561428671229e+00
+5.9994566743238886e+00
+5.9948634330978425e+00
+5.9902764182850152e+00
+5.9856956302428470e+00
+5.9811210706197233e+00
+5.9765527411111306e+00
+5.9719906438160564e+00
+5.9674347810574364e+00
+5.9628851546180286e+00
+5.9583417634628617e+00
+5.9538046055273259e+00
+5.9492736795864332e+00
+5.9447489871798913e+00
+5.9402305303404388e+00
+5.9357183108966414e+00
+5.9312123303543025e+00
+5.9267125900784077e+00
+5.9222190898995004e+00
+5.9177318280173248e+00
+5.9132508026760373e+00
+5.9087760141336307e+00
+5.9043074639057682e+00
+5.8998451534351721e+00
+5.8953890838782463e+00
+5.8909392562510376e+00
+5.8864956709348411e+00
+5.8820583263586768e+00
+5.8776272205133129e+00
+5.8732023523801153e+00
+5.8687837228480806e+00
+5.8643713329667477e+00
+5.8599651837317124e+00
+5.8555652760847039e+00
+5.8511716107547738e+00
+5.8467841865171604e+00
+5.8424030008331211e+00
+5.8380280514623006e+00
+5.8336593384838480e+00
+5.8292968628350996e+00
+5.8249406253709717e+00
+5.8205906267879914e+00
+5.8162468676973917e+00
+5.8119093475765355e+00
+5.8075780637390713e+00
+5.8032530132491278e+00
+5.7989341947801112e+00
+5.7946216088761826e+00
+5.7903152561266937e+00
+5.7860151369628889e+00
+5.7817212516901888e+00
+5.7774336002539215e+00
+5.7731521805530379e+00
+5.7688769896274419e+00
+5.7646080250385419e+00
+5.7603452863894287e+00
+5.7560887737009088e+00
+5.7518384870138499e+00
+5.7475944264660361e+00
+5.7433565921169665e+00
+5.7391249825475787e+00
+5.7348995945678798e+00
+5.7306804249599450e+00
+5.7264674722577658e+00
+5.7222607362412212e+00
+5.7180602166791932e+00
+5.7138659133821825e+00
+5.7096778261475087e+00
+5.7054959541308312e+00
+5.7013202942141588e+00
+5.6971508427038176e+00
+5.6929875969225545e+00
+5.6888305564281714e+00
+5.6846797210130298e+00
+5.6805350901817748e+00
+5.6763966630910634e+00
+5.6722644387322623e+00
+5.6681384147042557e+00
+5.6640185875464120e+00
+5.6599049539394022e+00
+5.6557975121254156e+00
+5.6516962610033428e+00
+5.6476011995438888e+00
+5.6435123271468184e+00
+5.6394296432741129e+00
+5.6353531463022044e+00
+5.6312828322525910e+00
+5.6272186968157385e+00
+5.6231607371318875e+00
+5.6191089522574806e+00
+5.6150633413166817e+00
+5.6110239031782481e+00
+5.6069906364997166e+00
+5.6029635396734854e+00
+5.5989426094553068e+00
+5.5949278418174879e+00
+5.5909192330820954e+00
+5.5869167812190748e+00
+5.5829204845870990e+00
+5.5789303416453455e+00
+5.5749463511566457e+00
+5.5709685118524090e+00
+5.5669968210867271e+00
+5.5630312743529764e+00
+5.5590718670613350e+00
+5.5551185962641965e+00
+5.5511714603434665e+00
+5.5472304576789595e+00
+5.5432955866722047e+00
+5.5393668457086207e+00
+5.5354442326414848e+00
+5.5315277431812211e+00
+5.5276173724165911e+00
+5.5237131162117894e+00
+5.5198149724021981e+00
+5.5159229390748088e+00
+5.5120370143094295e+00
+5.5081571961972084e+00
+5.5042834826924922e+00
+5.5004158701205590e+00
+5.4965543534136492e+00
+5.4926989276410847e+00
+5.4888495898091616e+00
+5.4850063378707468e+00
+5.4811691697284859e+00
+5.4773380832015324e+00
+5.4735130760472543e+00
+5.4696941451837313e+00
+5.4658812854695915e+00
+5.4620744914170380e+00
+5.4582737587924219e+00
+5.4544790852499636e+00
+5.4506904685441171e+00
+5.4469079062582866e+00
+5.4431313958186243e+00
+5.4393609343997742e+00
+5.4355965173725425e+00
+5.4318381391358050e+00
+5.4280857944996921e+00
+5.4243394804914784e+00
+5.4205991947653063e+00
+5.4168649347160294e+00
+5.4131366971291150e+00
+5.4094144786366805e+00
+5.4056982752024707e+00
+5.4019880817842409e+00
+5.3982838932510839e+00
+5.3945857053606767e+00
+5.3908935146870007e+00
+5.3872073178324857e+00
+5.3835271117857433e+00
+5.3798528937244381e+00
+5.3761846603955075e+00
+5.3725224065713268e+00
+5.3688661263695741e+00
+5.3652158144344142e+00
+5.3615714669776366e+00
+5.3579330804450667e+00
+5.3543006515184244e+00
+5.3506741772906583e+00
+5.3470536547694207e+00
+5.3434390792311053e+00
+5.3398304442846740e+00
+5.3362277436199674e+00
+5.3326309728618337e+00
+5.3290401287192326e+00
+5.3254552078355841e+00
+5.3218762066467491e+00
+5.3183031214871592e+00
+5.3147359480928360e+00
+5.3111746805465501e+00
+5.3076193125981339e+00
+5.3040698387989611e+00
+5.3005262550866021e+00
+5.2969885574998488e+00
+5.2934567423195782e+00
+5.2899308060694521e+00
+5.2864107450521391e+00
+5.2828965535811374e+00
+5.2793882247625294e+00
+5.2758857520446805e+00
+5.2723891310954611e+00
+5.2688983583131748e+00
+5.2654134298873885e+00
+5.2619343414647526e+00
+5.2584610885416021e+00
+5.2549936659375041e+00
+5.2515320673202783e+00
+5.2480762862396828e+00
+5.2446263173331342e+00
+5.2411821563763796e+00
+5.2377437991454192e+00
+5.2343112412857895e+00
+5.2308844783437349e+00
+5.2274635055620493e+00
+5.2240483166607259e+00
+5.2206389047790447e+00
+5.2172352635348185e+00
+5.2138373881970628e+00
+5.2104452743264869e+00
+5.2070589174115431e+00
+5.2036783128477069e+00
+5.2003034559380028e+00
+5.1969343408642619e+00
+5.1935709605923890e+00
+5.1902133081048012e+00
+5.1868613778194064e+00
+5.1835151650686644e+00
+5.1801746651714993e+00
+5.1768398735050285e+00
+5.1735107854390199e+00
+5.1701873957085676e+00
+5.1668696970282193e+00
+5.1635576816567061e+00
+5.1602513428602075e+00
+5.1569506758814363e+00
+5.1536556761419732e+00
+5.1503663389255498e+00
+5.1470826593657426e+00
+5.1438046324113662e+00
+5.1405322513203267e+00
+5.1372655081897198e+00
+5.1340043953653183e+00
+5.1307489071959091e+00
+5.1274990387906785e+00
+5.1242547851889526e+00
+5.1210161412929676e+00
+5.1177831019326119e+00
+5.1145556610579765e+00
+5.1113338109066877e+00
+5.1081175435099171e+00
+5.1049068521892966e+00
+5.1017017318006630e+00
+5.0985021772344234e+00
+5.0953081831924809e+00
+5.0921197442302173e+00
+5.0889368546227018e+00
+5.0857595070403985e+00
+5.0825876934633678e+00
+5.0794214062764569e+00
+5.0762606395011520e+00
+5.0731053875017569e+00
+5.0699556447378304e+00
+5.0668114059175666e+00
+5.0636726657022173e+00
+5.0605394173693794e+00
+5.0574116525031929e+00
+5.0542893626654442e+00
+5.0511725411751236e+00
+5.0480611826319972e+00
+5.0449552815666081e+00
+5.0418548320745469e+00
+5.0387598280381569e+00
+5.0356702629612311e+00
+5.0325861290174743e+00
+5.0295074180253057e+00
+5.0264341224484763e+00
+5.0233662362170897e+00
+5.0203037534147610e+00
+5.0172466680488812e+00
+5.0141949740416942e+00
+5.0111486651889718e+00
+5.0081077340696813e+00
+5.0050721723182141e+00
+5.0020419716890236e+00
+4.9990171253116733e+00
+4.9959976269099373e+00
+4.9929834702237024e+00
+4.9899746491822672e+00
+4.9869711577268561e+00
+4.9839729890075146e+00
+4.9809801344266713e+00
+4.9779925851311955e+00
+4.9750103334249509e+00
+4.9720333731762087e+00
+4.9690616983003908e+00
+4.9660953023312766e+00
+4.9631341784886001e+00
+4.9601783198191551e+00
+4.9572277183827067e+00
+4.9542823657495578e+00
+4.9513422537122533e+00
+4.9484073751737156e+00
+4.9454777232998017e+00
+4.9425532913613912e+00
+4.9396340729409909e+00
+4.9367200616067226e+00
+4.9338112498376718e+00
+4.9309076286112550e+00
+4.9280091888324993e+00
+4.9251159227673256e+00
+4.9222278238083659e+00
+4.9193448853280692e+00
+4.9164671005514045e+00
+4.9135944626088097e+00
+4.9107269642758444e+00
+4.9078645968982659e+00
+4.9050073513910721e+00
+4.9021552192302309e+00
+4.8993081933611364e+00
+4.8964662669169368e+00
+4.8936294329375967e+00
+4.8907976843470520e+00
+4.8879710139665393e+00
+4.8851494136039735e+00
+4.8823328741811558e+00
+4.8795213866865854e+00
+4.8767149432855481e+00
+4.8739135367263966e+00
+4.8711171597678140e+00
+4.8683258053505805e+00
+4.8655394664375029e+00
+4.8627581353654605e+00
+4.8599818029067938e+00
+4.8572104595587957e+00
+4.8544440966706688e+00
+4.8516827069074706e+00
+4.8489262830105346e+00
+4.8461748177813906e+00
+4.8434283040720736e+00
+4.8406867345267797e+00
+4.8379501002014980e+00
+4.8352183912793780e+00
+4.8324915982539958e+00
+4.8297697133607711e+00
+4.8270527293390693e+00
+4.8243406388369827e+00
+4.8216334343249008e+00
+4.8189311081972495e+00
+4.8162336521054812e+00
+4.8135410565505028e+00
+4.8108533119396304e+00
+4.8081704096584463e+00
+4.8054923420128102e+00
+4.8028191013142489e+00
+4.8001506799277642e+00
+4.7974870702300807e+00
+4.7948282642939937e+00
+4.7921742527980422e+00
+4.7895250259436333e+00
+4.7868805743358100e+00
+4.7842408898173590e+00
+4.7816059644198372e+00
+4.7789757903729164e+00
+4.7763503602600395e+00
+4.7737296665976219e+00
+4.7711137004485078e+00
+4.7685024514461176e+00
+4.7658959092866668e+00
+4.7632940653162574e+00
+4.7606969118276492e+00
+4.7581044410861431e+00
+4.7555166453196120e+00
+4.7529335167161859e+00
+4.7503550468574982e+00
+4.7477812255910719e+00
+4.7452120424173927e+00
+4.7426474878031009e+00
+4.7400875539104455e+00
+4.7375322330265996e+00
+4.7349815172399117e+00
+4.7324353984360519e+00
+4.7298938683245506e+00
+4.7273569171925018e+00
+4.7248245344427815e+00
+4.7222967097527748e+00
+4.7197734346293423e+00
+4.7172547011969730e+00
+4.7147405014719297e+00
+4.7122308272130065e+00
+4.7097256700894867e+00
+4.7072250210772859e+00
+4.7047288699386041e+00
+4.7022372063063589e+00
+4.6997500207068974e+00
+4.6972673046228666e+00
+4.6947890495655002e+00
+4.6923152472341023e+00
+4.6898458894332986e+00
+4.6873809676905163e+00
+4.6849204720657376e+00
+4.6824643920516698e+00
+4.6800127174925201e+00
+4.6775654394877568e+00
+4.6751225493639046e+00
+4.6726840385508090e+00
+4.6702498987066656e+00
+4.6678201214427899e+00
+4.6653946972823253e+00
+4.6629736155428256e+00
+4.6605568655542866e+00
+4.6581444380017674e+00
+4.6557363244559031e+00
+4.6533325164234416e+00
+4.6509330051110291e+00
+4.6485377815855937e+00
+4.6461468365620258e+00
+4.6437601596404914e+00
+4.6413777401546463e+00
+4.6389995681575460e+00
+4.6366256351512707e+00
+4.6342559327570036e+00
+4.6318904520868811e+00
+4.6295291836692192e+00
+4.6271721179433607e+00
+4.6248192450666528e+00
+4.6224705549889515e+00
+4.6201260376776299e+00
+4.6177856834614639e+00
+4.6154494827913854e+00
+4.6131174263046093e+00
+4.6107895054109260e+00
+4.6084657116601200e+00
+4.6061460357788908e+00
+4.6038304668494723e+00
+4.6015189937462289e+00
+4.5992116062830828e+00
+4.5969082954170535e+00
+4.5946090521410170e+00
+4.5923138674535240e+00
+4.5900227323467568e+00
+4.5877356376017513e+00
+4.5854525727613140e+00
+4.5831735268227165e+00
+4.5808984891121947e+00
+4.5786274503202202e+00
+4.5763604014304766e+00
+4.5740973332595640e+00
+4.5718382363092873e+00
+4.5695831009948051e+00
+4.5673319172195779e+00
+4.5650846742529785e+00
+4.5628413613578180e+00
+4.5606019687824713e+00
+4.5583664875071923e+00
+4.5561349084285396e+00
+4.5539072219296948e+00
+4.5516834181464354e+00
+4.5494634870442789e+00
+4.5472474180298645e+00
+4.5450352003435217e+00
+4.5428268235501754e+00
+4.5406222779879313e+00
+4.5384215540726141e+00
+4.5362246423838428e+00
+4.5340315337275889e+00
+4.5318422188164522e+00
+4.5296566871759527e+00
+4.5274749273926265e+00
+4.5252969281718505e+00
+4.5231226795721415e+00
+4.5209521722558064e+00
+4.5187853968429543e+00
+4.5166223438777475e+00
+4.5144630038558047e+00
+4.5123073666852394e+00
+4.5101554209511310e+00
+4.5080071550410361e+00
+4.5058625583856440e+00
+4.5037216218563829e+00
+4.5015843363636359e+00
+4.4994506922540038e+00
+4.4973206794068066e+00
+4.4951942876054805e+00
+4.4930715062227371e+00
+4.4909523244140317e+00
+4.4888367313970905e+00
+4.4867247167927147e+00
+4.4846162703057306e+00
+4.4825113818932234e+00
+4.4804100421806057e+00
+4.4783122418470631e+00
+4.4762179707287633e+00
+4.4741272174749867e+00
+4.4720399706514584e+00
+4.4699562195279263e+00
+4.4678759539682691e+00
+4.4657991638877270e+00
+4.4637258397322412e+00
+4.4616559721976063e+00
+4.4595895515852186e+00
+4.4575265665064157e+00
+4.4554670050638956e+00
+4.4534108558868164e+00
+4.4513581090081926e+00
+4.4493087546525896e+00
+4.4472627830098412e+00
+4.4452201842349623e+00
+4.4431809484074334e+00
+4.4411450648073760e+00
+4.4391125220013894e+00
+4.4370833085765611e+00
+4.4350574138049694e+00
+4.4330348273016469e+00
+4.4310155388220682e+00
+4.4289995389117180e+00
+4.4269868183280447e+00
+4.4249773670343755e+00
+4.4229711729278351e+00
+4.4209682235511325e+00
+4.4189685075333092e+00
+4.4169720152083851e+00
+4.4149787370176634e+00
+4.4129886631909896e+00
+4.4110017837601188e+00
+4.4090180885869241e+00
+4.4070375662785812e+00
+4.4050602047376088e+00
+4.4030859921618246e+00
+4.4011149184173934e+00
+4.3991469738708044e+00
+4.3971821486594482e+00
+4.3952204323385438e+00
+4.3932618143298239e+00
+4.3913062837337105e+00
+4.3893538291522329e+00
+4.3874044391390843e+00
+4.3854581028428763e+00
+4.3835148099843355e+00
+4.3815745502715435e+00
+4.3796373133413962e+00
+4.3777030887757400e+00
+4.3757718660373568e+00
+4.3738436341056355e+00
+4.3719183817779452e+00
+4.3699960978425301e+00
+4.3680767711279831e+00
+4.3661603904519106e+00
+4.3642469453468360e+00
+4.3623364265748767e+00
+4.3604288249127450e+00
+4.3585241293544392e+00
+4.3566223271037678e+00
+4.3547234054334876e+00
+4.3528273534919935e+00
+4.3509341615350552e+00
+4.3490438197474788e+00
+4.3471563179798602e+00
+4.3452716459464726e+00
+4.3433897929351710e+00
+4.3415107469936025e+00
+4.3396344959122057e+00
+4.3377610281576393e+00
+4.3358903334137961e+00
+4.3340224014583741e+00
+4.3321572220059421e+00
+4.3302947847064912e+00
+4.3284350790993891e+00
+4.3265780938370488e+00
+4.3247238170062952e+00
+4.3228722368186121e+00
+4.3210233424214399e+00
+4.3191771232789202e+00
+4.3173335689070260e+00
+4.3154926690571562e+00
+4.3136544134964740e+00
+4.3118187913186166e+00
+4.3099857904058814e+00
+4.3081553985174130e+00
+4.3063276043886569e+00
+4.3045023978226533e+00
+4.3026797686249818e+00
+4.3008597063115195e+00
+4.2990422001988184e+00
+4.2972272394393309e+00
+4.2954148123630613e+00
+4.2936049069691107e+00
+4.2917975115667675e+00
+4.2899926155903536e+00
+4.2881902086858199e+00
+4.2863902804092122e+00
+4.2845928201722208e+00
+4.2827978173208336e+00
+4.2810052605295290e+00
+4.2792151377140888e+00
+4.2774274368072893e+00
+4.2756421468211387e+00
+4.2738592574895566e+00
+4.2720787584786706e+00
+4.2703006390916052e+00
+4.2685248884695950e+00
+4.2667514955098049e+00
+4.2649804483278757e+00
+4.2632117348461156e+00
+4.2614453435523911e+00
+4.2596812641003883e+00
+4.2579194862463599e+00
+4.2561599993881867e+00
+4.2544027925048962e+00
+4.2526478544983251e+00
+4.2508951739231229e+00
+4.2491447390792105e+00
+4.2473965383427741e+00
+4.2456505608164683e+00
+4.2439067958851959e+00
+4.2421652328483246e+00
+4.2404258607655958e+00
+4.2386886686167191e+00
+4.2369536451267518e+00
+4.2352207785209650e+00
+4.2334900569533715e+00
+4.2317614692057957e+00
+4.2300350048420388e+00
+4.2283106534157753e+00
+4.2265884040152288e+00
+4.2248682453776079e+00
+4.2231501662031716e+00
+4.2214341551673487e+00
+4.2197202009176475e+00
+4.2180082921108513e+00
+4.2162984175266871e+00
+4.2145905659532499e+00
+4.2128847263855356e+00
+4.2111808883063562e+00
+4.2094790412213587e+00
+4.2077791739682215e+00
+4.2060812745338074e+00
+4.2043853308629267e+00
+4.2026913315075722e+00
+4.2009992654795534e+00
+4.1993091218530072e+00
+4.1976208902600627e+00
+4.1959345605694081e+00
+4.1942501222121420e+00
+4.1925675629203436e+00
+4.1908868699739790e+00
+4.1892080313370039e+00
+4.1875310365772149e+00
+4.1858558754531154e+00
+4.1841825373386987e+00
+4.1825110111018722e+00
+4.1808412855377011e+00
+4.1791733492438050e+00
+4.1775071906538050e+00
+4.1758427982119910e+00
+4.1741801606762738e+00
+4.1725192669373392e+00
+4.1708601059437189e+00
+4.1692026669791851e+00
+4.1675469393955371e+00
+4.1658929122165000e+00
+4.1642405737202317e+00
+4.1625899120573848e+00
+4.1609409156503405e+00
+4.1592935733128851e+00
+4.1576478738889264e+00
+4.1560038066530316e+00
+4.1543613612348969e+00
+4.1527205271105672e+00
+4.1510812925868334e+00
+4.1494436453795931e+00
+4.1478075734266460e+00
+4.1461730657777691e+00
+4.1445401117738792e+00
+4.1429087007811525e+00
+4.1412788222691921e+00
+4.1396504656878603e+00
+4.1380236197928788e+00
+4.1363982723407764e+00
+4.1347744110257851e+00
+4.1331520243011965e+00
+4.1315311012772584e+00
+4.1299116311134778e+00
+4.1282936034063029e+00
+4.1266770079644628e+00
+4.1250618342138807e+00
+4.1234480698726035e+00
+4.1218357021393484e+00
+4.1202247189240442e+00
+4.1186151100441295e+00
+4.1170068655947265e+00
+4.1153999751280663e+00
+4.1137944273844624e+00
+4.1121902110011916e+00
+4.1105873143892797e+00
+4.1089857257520013e+00
+4.1073854333352120e+00
+4.1057864260610142e+00
+4.1041886932027207e+00
+4.1025922240178279e+00
+4.1009970077698039e+00
+4.0994030337057028e+00
+4.0978102908178355e+00
+4.0962187674464348e+00
+4.0946284518030200e+00
+4.0930393323575620e+00
+4.0914513980056144e+00
+4.0898646376768797e+00
+4.0882790406960554e+00
+4.0866945967597399e+00
+4.0851112954227764e+00
+4.0835291249347909e+00
+4.0819480728012003e+00
+4.0803681268282821e+00
+4.0787892765305553e+00
+4.0772115119548404e+00
+4.0756348228463288e+00
+4.0740591981302341e+00
+4.0724846265611125e+00
+4.0709110966127326e+00
+4.0693385963116100e+00
+4.0677671136607207e+00
+4.0661966375925482e+00
+4.0646271579545559e+00
+4.0630586645585467e+00
+4.0614911466681534e+00
+4.0599245932157340e+00
+4.0583589930371193e+00
+4.0567943345784689e+00
+4.0552306061375809e+00
+4.0536677962104575e+00
+4.0521058939400660e+00
+4.0505448885711521e+00
+4.0489847694047745e+00
+4.0474255258569007e+00
+4.0458671473106573e+00
+4.0443096225854109e+00
+4.0427529399226740e+00
+4.0411970875676291e+00
+4.0396420543295424e+00
+4.0380878293526425e+00
+4.0365344018598339e+00
+4.0349817616052421e+00
+4.0334298985151031e+00
+4.0318788020061689e+00
+4.0303284599434264e+00
+4.0287788598758159e+00
+4.0272299901864992e+00
+4.0256818407818047e+00
+4.0241344016834306e+00
+4.0225876622784984e+00
+4.0210416112772132e+00
+4.0194962373618228e+00
+4.0179515295154848e+00
+4.0164074769044227e+00
+4.0148640686326527e+00
+4.0133212935317326e+00
+4.0117791403173788e+00
+4.0102375979352924e+00
+4.0086966561443917e+00
+4.0071563048476824e+00
+4.0056165333726490e+00
+4.0040773299848880e+00
+4.0025386828346035e+00
+4.0010005807214997e+00
+3.9994630131717512e+00
+3.9979259697215062e+00
+3.9963894398060131e+00
+3.9948534127857740e+00
+3.9933178779427645e+00
+3.9917828241941073e+00
+3.9902482403014821e+00
+3.9887141150631122e+00
+3.9871804374624809e+00
+3.9856471965077440e+00
+3.9841143815642472e+00
+3.9825819827206357e+00
+3.9810499900988257e+00
+3.9795183928253515e+00
+3.9779871788746282e+00
+3.9764563362309446e+00
+3.9749258541069010e+00
+3.9733957225597378e+00
+3.9718659315487925e+00
+3.9703364703948294e+00
+3.9688073281471112e+00
+3.9672784938871830e+00
+3.9657499568754271e+00
+3.9642217063944787e+00
+3.9626937315784265e+00
+3.9611660212803543e+00
+3.9596385643188010e+00
+3.9581113501549936e+00
+3.9565843690325133e+00
+3.9550576111465063e+00
+3.9535310656394640e+00
+3.9520047208867410e+00
+3.9504785653607302e+00
+3.9489525884566907e+00
+3.9474267799474645e+00
+3.9459011295801485e+00
+3.9443756270579748e+00
+3.9428502620560506e+00
+3.9413250239562658e+00
+3.9397999015368859e+00
+3.9382748834907946e+00
+3.9367499589312458e+00
+3.9352251175074495e+00
+3.9337003488950666e+00
+3.9321756429220303e+00
+3.9306509895259167e+00
+3.9291263785366630e+00
+3.9276017991079866e+00
+3.9260772400825892e+00
+3.9245526903976344e+00
+3.9230281394365374e+00
+3.9215035766789201e+00
+3.9199789918444718e+00
+3.9184543752161431e+00
+3.9169297171176578e+00
+3.9154050071090931e+00
+3.9138802337530896e+00
+3.9123553855738571e+00
+3.9108304518456749e+00
+3.9093054224275305e+00
+3.9077802872117191e+00
+3.9062550363550819e+00
+3.9047296601260895e+00
+3.9032041485300435e+00
+3.9016784905345960e+00
+3.9001526748223512e+00
+3.8986266903938986e+00
+3.8971005270229262e+00
+3.8955741745810495e+00
+3.8940476231248429e+00
+3.8925208629716241e+00
+3.8909938843901668e+00
+3.8894666768156521e+00
+3.8879392289970038e+00
+3.8864115297758541e+00
+3.8848835690477697e+00
+3.8833553372069201e+00
+3.8818268245514922e+00
+3.8802980210093456e+00
+3.8787689163925574e+00
+3.8772395003593814e+00
+3.8757097622201986e+00
+3.8741796912225377e+00
+3.8726492769178842e+00
+3.8711185093006226e+00
+3.8695873783893342e+00
+3.8680558743222679e+00
+3.8665239873370179e+00
+3.8649917076132185e+00
+3.8634590249474847e+00
+3.8619259289336965e+00
+3.8603924091339583e+00
+3.8588584550415659e+00
+3.8573240561170312e+00
+3.8557892022404956e+00
+3.8542538843965968e+00
+3.8527180937121566e+00
+3.8511818203548702e+00
+3.8496450530723210e+00
+3.8481077805318660e+00
+3.8465699924001120e+00
+3.8450316792301722e+00
+3.8434928315985966e+00
+3.8419534401517850e+00
+3.8404134955645697e+00
+3.8388729882582098e+00
+3.8373319075008898e+00
+3.8357902422016119e+00
+3.8342479817081565e+00
+3.8327051165770865e+00
+3.8311616375497475e+00
+3.8296175352983028e+00
+3.8280728003970363e+00
+3.8265274233625224e+00
+3.8249813940258881e+00
+3.8234347015816841e+00
+3.8218873352834910e+00
+3.8203392853243869e+00
+3.8187905424058597e+00
+3.8172410972490476e+00
+3.8156909407159896e+00
+3.8141400637010259e+00
+3.8125884566933155e+00
+3.8110361090767841e+00
+3.8094830100359305e+00
+3.8079291493171721e+00
+3.8063745175893415e+00
+3.8048191056006360e+00
+3.8032629043100816e+00
+3.8017059048797348e+00
+3.8001480983357783e+00
+3.7985894744090873e+00
+3.7970300220794733e+00
+3.7954697306010328e+00
+3.7939085908063332e+00
+3.7923465940369838e+00
+3.7907837315095589e+00
+3.7892199941032505e+00
+3.7876553726159732e+00
+3.7860898573484869e+00
+3.7845234377725276e+00
+3.7829561033062964e+00
+3.7813878443503040e+00
+3.7798186522936272e+00
+3.7782485185075783e+00
+3.7766774338605709e+00
+3.7751053889133970e+00
+3.7735323741898052e+00
+3.7719583801053869e+00
+3.7703833970274294e+00
+3.7688074153480491e+00
+3.7672304255706384e+00
+3.7656524182104443e+00
+3.7640733841091967e+00
+3.7624933146971893e+00
+3.7609122014223861e+00
+3.7593300349977663e+00
+3.7577468053664203e+00
+3.7561625024831433e+00
+3.7545771170021967e+00
+3.7529906400087611e+00
+3.7514030626364110e+00
+3.7498143763355807e+00
+3.7482245726615644e+00
+3.7466336427605538e+00
+3.7450415764939939e+00
+3.7434483634590294e+00
+3.7418539940080535e+00
+3.7402584598988926e+00
+3.7386617530133308e+00
+3.7370638648248735e+00
+3.7354647863622810e+00
+3.7338645085810258e+00
+3.7322630219953319e+00
+3.7306603168262891e+00
+3.7290563834605170e+00
+3.7274512134093101e+00
+3.7258447986002738e+00
+3.7242371307485067e+00
+3.7226282008824567e+00
+3.7210179998738622e+00
+3.7194065185801173e+00
+3.7177937478451879e+00
+3.7161796785094960e+00
+3.7145643017375813e+00
+3.7129476090650830e+00
+3.7113295920325178e+00
+3.7097102421437924e+00
+3.7080895508733689e+00
+3.7064675096204169e+00
+3.7048441093799269e+00
+3.7032193409779310e+00
+3.7015931952979528e+00
+3.6999656634665361e+00
+3.6983367366561151e+00
+3.6967064065131559e+00
+3.6950746656504867e+00
+3.6934415067434343e+00
+3.6918069211096278e+00
+3.6901708984583212e+00
+3.6885334285207190e+00
+3.6868945027429305e+00
+3.6852541137823067e+00
+3.6836122542289722e+00
+3.6819689161152720e+00
+3.6803240912350166e+00
+3.6786777711708436e+00
+3.6770299467618175e+00
+3.6753806086656611e+00
+3.6737297479181912e+00
+3.6720773563646678e+00
+3.6704234259487474e+00
+3.6687679488786662e+00
+3.6671109176928631e+00
+3.6654523248578137e+00
+3.6637921616900964e+00
+3.6621304186530330e+00
+3.6604670863858733e+00
+3.6588021570066829e+00
+3.6571356232663352e+00
+3.6554674777198586e+00
+3.6537977121853040e+00
+3.6521263182918675e+00
+3.6504532876942966e+00
+3.6487786121192189e+00
+3.6471022832951103e+00
+3.6454242930790803e+00
+3.6437446334977888e+00
+3.6420632965979647e+00
+3.6403802747229799e+00
+3.6386955604419011e+00
+3.6370091462131593e+00
+3.6353210237007305e+00
+3.6336311842020073e+00
+3.6319396191515900e+00
+3.6302463205918882e+00
+3.6285512807120663e+00
+3.6268544919622872e+00
+3.6251559474063129e+00
+3.6234556401638671e+00
+3.6217535624973771e+00
+3.6200497055214611e+00
+3.6183440603239929e+00
+3.6166366190394350e+00
+3.6149273746400956e+00
+3.6132163200656802e+00
+3.6115034478875114e+00
+3.6097887504966790e+00
+3.6080722202429341e+00
+3.6063538493421863e+00
+3.6046336299659552e+00
+3.6029115543203112e+00
+3.6011876147108408e+00
+3.5994618034570052e+00
+3.5977341132978622e+00
+3.5960045375647476e+00
+3.5942730695711229e+00
+3.5925397017274725e+00
+3.5908044256868159e+00
+3.5890672331670421e+00
+3.5873281167033357e+00
+3.5855870692288123e+00
+3.5838440837141428e+00
+3.5820991533226350e+00
+3.5803522712633185e+00
+3.5786034304383194e+00
+3.5768526229965745e+00
+3.5750998409706729e+00
+3.5733450768795221e+00
+3.5715883239575681e+00
+3.5698295754852714e+00
+3.5680688247096599e+00
+3.5663060648473128e+00
+3.5645412890257417e+00
+3.5627744896810074e+00
+3.5610056588870345e+00
+3.5592347889114255e+00
+3.5574618729884335e+00
+3.5556869046291211e+00
+3.5539098773712730e+00
+3.5521307848382264e+00
+3.5503496206487903e+00
+3.5485663778158303e+00
+3.5467810484345415e+00
+3.5449936245701559e+00
+3.5432040993972769e+00
+3.5414124670977283e+00
+3.5396187217859674e+00
+3.5378228566892749e+00
+3.5360248645525085e+00
+3.5342247382015906e+00
+3.5324224709256344e+00
+3.5306180561494629e+00
+3.5288114872492007e+00
+3.5270027574839906e+00
+3.5251918600911525e+00
+3.5233787886929173e+00
+3.5215635375285452e+00
+3.5197461008424562e+00
+3.5179264719934311e+00
+3.5161046435010843e+00
+3.5142806079380788e+00
+3.5124543587998187e+00
+3.5106258900964531e+00
+3.5087951958397006e+00
+3.5069622700551042e+00
+3.5051271067667127e+00
+3.5032896998211380e+00
+3.5014500425715589e+00
+3.4996081282770146e+00
+3.4977639503093072e+00
+3.4959175022333340e+00
+3.4940687776554684e+00
+3.4922177708799778e+00
+3.4903644768996820e+00
+3.4885088905931760e+00
+3.4866510054333650e+00
+3.4847908140644872e+00
+3.4829283093576135e+00
+3.4810634855153633e+00
+3.4791963371845531e+00
+3.4773268589345978e+00
+3.4754550451161559e+00
+3.4735808900293383e+00
+3.4717043877053069e+00
+3.4698255317160576e+00
+3.4679443155948597e+00
+3.4660607332264819e+00
+3.4641747788573531e+00
+3.4622864468118681e+00
+3.4603957321533447e+00
+3.4585026303949129e+00
+3.4566071367072233e+00
+3.4547092443039440e+00
+3.4528089457010687e+00
+3.4509062340771455e+00
+3.4490011047215630e+00
+3.4470935533282807e+00
+3.4451835751066189e+00
+3.4432711643961706e+00
+3.4413563154404563e+00
+3.4394390225289753e+00
+3.4375192800010406e+00
+3.4355970822060082e+00
+3.4336724236558487e+00
+3.4317452989637314e+00
+3.4298157028286709e+00
+3.4278836304878388e+00
+3.4259490773735184e+00
+3.4240120385694079e+00
+3.4220725080220631e+00
+3.4201304794428622e+00
+3.4181859471474767e+00
+3.4162389065971874e+00
+3.4142893533694156e+00
+3.4123372828837781e+00
+3.4103826903844032e+00
+3.4084255710513176e+00
+3.4064659194645701e+00
+3.4045037298021148e+00
+3.4025389963701360e+00
+3.4005717143644438e+00
+3.3986018793215620e+00
+3.3966294867903026e+00
+3.3946545323735564e+00
+3.3926770116783458e+00
+3.3906969199124770e+00
+3.3887142515040836e+00
+3.3867290008100461e+00
+3.3847411629814919e+00
+3.3827507340947136e+00
+3.3807577102349056e+00
+3.3787620869881483e+00
+3.3767638595920539e+00
+3.3747630232475521e+00
+3.3727595729933677e+00
+3.3707535037987308e+00
+3.3687448108385363e+00
+3.3667334900505637e+00
+3.3647195375411161e+00
+3.3627029493395253e+00
+3.3606837213221148e+00
+3.3586618493329254e+00
+3.3566373289119693e+00
+3.3546101552317773e+00
+3.3525803234702729e+00
+3.3505478292523123e+00
+3.3485126685249971e+00
+3.3464748372910145e+00
+3.3444343319170855e+00
+3.3423911489216422e+00
+3.3403452845286110e+00
+3.3382967338526299e+00
+3.3362454917430919e+00
+3.3341915535924538e+00
+3.3321349159660856e+00
+3.3300755755750879e+00
+3.3280135290339810e+00
+3.3259487728362718e+00
+3.3238813034261918e+00
+3.3218111166979285e+00
+3.3197382081290669e+00
+3.3176625732722220e+00
+3.3155842083348332e+00
+3.3135031098118950e+00
+3.3114192742833928e+00
+3.3093326986750067e+00
+3.3072433799944170e+00
+3.3051513149197143e+00
+3.3030564993940010e+00
+3.3009589292601826e+00
+3.2988586005207119e+00
+3.2967555093897438e+00
+3.2946496521533595e+00
+3.2925410260453738e+00
+3.2904296290450001e+00
+3.2883154588997514e+00
+3.2861985114410253e+00
+3.2840787816103960e+00
+3.2819562648527354e+00
+3.2798309587544829e+00
+3.2777028614581334e+00
+3.2755719706649948e+00
+3.2734382830443156e+00
+3.2713017951166088e+00
+3.2691625035015877e+00
+3.2670204049566367e+00
+3.2648754962567157e+00
+3.2627277743538650e+00
+3.2605772363448069e+00
+3.2584238793746079e+00
+3.2562677009654144e+00
+3.2541086988204651e+00
+3.2519468704455603e+00
+3.2497822124845999e+00
+3.2476147213436404e+00
+3.2454443937629001e+00
+3.2432712273078574e+00
+3.2410952196692104e+00
+3.2389163686855302e+00
+3.2367346724080504e+00
+3.2345501288490590e+00
+3.2323627350760398e+00
+3.2301724873481152e+00
+3.2279793820496945e+00
+3.2257834168810824e+00
+3.2235845902064098e+00
+3.2213829003991528e+00
+3.2191783458571717e+00
+3.2169709249830603e+00
+3.2147606355981435e+00
+3.2125474740349995e+00
+3.2103314364073161e+00
+3.2081125199122473e+00
+3.2058907233662670e+00
+3.2036660456955608e+00
+3.2014384854145859e+00
+3.1992080406707695e+00
+3.1969747095546297e+00
+3.1947384897744091e+00
+3.1924993788355676e+00
+3.1902573743098874e+00
+3.1880124741067277e+00
+3.1857646762362513e+00
+3.1835139790409750e+00
+3.1812603817583418e+00
+3.1790038837591608e+00
+3.1767444834945664e+00
+3.1744821779840766e+00
+3.1722169641750786e+00
+3.1699488401121614e+00
+3.1676778048586738e+00
+3.1654038575163308e+00
+3.1631269971881086e+00
+3.1608472229775328e+00
+3.1585645337630077e+00
+3.1562789272871128e+00
+3.1539904009333575e+00
+3.1516989525492134e+00
+3.1494045812905362e+00
+3.1471072865416723e+00
+3.1448070677188897e+00
+3.1425039242902404e+00
+3.1401978556869694e+00
+3.1378888604378106e+00
+3.1355769361981443e+00
+3.1332620807004612e+00
+3.1309442928215723e+00
+3.1286235720960627e+00
+3.1262999180730913e+00
+3.1239733303363426e+00
+3.1216438084809295e+00
+3.1193113518534559e+00
+3.1169759590689408e+00
+3.1146376286123658e+00
+3.1122963593276651e+00
+3.1099521506676715e+00
+3.1076050021516819e+00
+3.1052549134705538e+00
+3.1029018844881313e+00
+3.1005459150246382e+00
+3.0981870043538517e+00
+3.0958251514216126e+00
+3.0934603552264348e+00
+3.0910926150866920e+00
+3.0887219304315527e+00
+3.0863483009786319e+00
+3.0839717273334077e+00
+3.0815922102645144e+00
+3.0792097497722257e+00
+3.0768243444969245e+00
+3.0744359929724880e+00
+3.0720446945704478e+00
+3.0696504495424537e+00
+3.0672532582128404e+00
+3.0648531212393588e+00
+3.0624500394891565e+00
+3.0600440136081719e+00
+3.0576350429229109e+00
+3.0552231262821454e+00
+3.0528082629535036e+00
+3.0503904535597699e+00
+3.0479696989959755e+00
+3.0455459999376107e+00
+3.0431193566532753e+00
+3.0406897693711628e+00
+3.0382572383861413e+00
+3.0358217640659575e+00
+3.0333833467718687e+00
+3.0309419867309639e+00
+3.0284976840831210e+00
+3.0260504391438059e+00
+3.0236002533083499e+00
+3.0211471283830114e+00
+3.0186910656295507e+00
+3.0162320644582308e+00
+3.0137701238960433e+00
+3.0113052439043204e+00
+3.0088374262450208e+00
+3.0063666728747349e+00
+3.0038929853661331e+00
+3.0014163648534335e+00
+2.9989368124022189e+00
+2.9964543284931078e+00
+2.9939689132087981e+00
+2.9914805667812985e+00
+2.9889892904476980e+00
+2.9864950858451871e+00
+2.9839979546834705e+00
+2.9814978989181240e+00
+2.9789949205574491e+00
+2.9764890210062593e+00
+2.9739802004515394e+00
+2.9714684589620615e+00
+2.9689537974703266e+00
+2.9664362179354717e+00
+2.9639157223873407e+00
+2.9613923129619986e+00
+2.9588659918719946e+00
+2.9563367611771620e+00
+2.9538046218726191e+00
+2.9512695745130499e+00
+2.9487316200020643e+00
+2.9461907605407416e+00
+2.9436469986335925e+00
+2.9411003366386956e+00
+2.9385507766018568e+00
+2.9359983205270979e+00
+2.9334429702349638e+00
+2.9308847273178711e+00
+2.9283235933686633e+00
+2.9257595701511820e+00
+2.9231926595566708e+00
+2.9206228636332145e+00
+2.9180501855036827e+00
+2.9154746287598674e+00
+2.9128961965110305e+00
+2.9103148899639897e+00
+2.9077307098674221e+00
+2.9051436576994192e+00
+2.9025537365381324e+00
+2.8999609496720051e+00
+2.8973653001430928e+00
+2.8947667906738292e+00
+2.8921654239460253e+00
+2.8895612022943595e+00
+2.8869541277864372e+00
+2.8843442025906505e+00
+2.8817314296594696e+00
+2.8791158123033473e+00
+2.8764973538031660e+00
+2.8738760572965552e+00
+2.8712519258870746e+00
+2.8686249624404057e+00
+2.8659951692700223e+00
+2.8633625486270939e+00
+2.8607271032618571e+00
+2.8580888365950847e+00
+2.8554477521203450e+00
+2.8528038536690770e+00
+2.8501571453456362e+00
+2.8475076310976659e+00
+2.8448553135390271e+00
+2.8422001946537288e+00
+2.8395422767765548e+00
+2.8368815637499756e+00
+2.8342180598242983e+00
+2.8315517692259711e+00
+2.8288826961156199e+00
+2.8262108446338643e+00
+2.8235362182117014e+00
+2.8208588192819208e+00
+2.8181786502881216e+00
+2.8154957150764157e+00
+2.8128100186698095e+00
+2.8101215660137222e+00
+2.8074303610598506e+00
+2.8047364072708492e+00
+2.8020397081995396e+00
+2.7993402678018602e+00
+2.7966380901509069e+00
+2.7939331792926074e+00
+2.7912255391959548e+00
+2.7885151738332983e+00
+2.7858020877227827e+00
+2.7830862861785590e+00
+2.7803677745206876e+00
+2.7776465569098900e+00
+2.7749226364945461e+00
+2.7721960165309323e+00
+2.7694667014811056e+00
+2.7667346964334749e+00
+2.7640000065167643e+00
+2.7612626369992568e+00
+2.7585225931945656e+00
+2.7557798800054862e+00
+2.7530345012439685e+00
+2.7502864605615001e+00
+2.7475357623130519e+00
+2.7447824119243536e+00
+2.7420264149187030e+00
+2.7392677768401259e+00
+2.7365065032521882e+00
+2.7337425996320648e+00
+2.7309760705957200e+00
+2.7282069202971262e+00
+2.7254351530957126e+00
+2.7226607743655324e+00
+2.7198837897987853e+00
+2.7171042052409837e+00
+2.7143220269455401e+00
+2.7115372612288779e+00
+2.7087499135535640e+00
+2.7059599880182601e+00
+2.7031674886639134e+00
+2.7003724207677831e+00
+2.6975747907806555e+00
+2.6947746051958195e+00
+2.6919718703991218e+00
+2.6891665927195301e+00
+2.6863587782733416e+00
+2.6835484320442915e+00
+2.6807355586551318e+00
+2.6779201632699410e+00
+2.6751022525995860e+00
+2.6722818336352305e+00
+2.6694589131126416e+00
+2.6666334973375285e+00
+2.6638055925614150e+00
+2.6609752045704722e+00
+2.6581423386908130e+00
+2.6553070003546169e+00
+2.6524691962225275e+00
+2.6496289336811589e+00
+2.6467862200293180e+00
+2.6439410619967596e+00
+2.6410934661262604e+00
+2.6382434388127156e+00
+2.6353909859889151e+00
+2.6325361135139942e+00
+2.6296788278254093e+00
+2.6268191363570712e+00
+2.6239570466389388e+00
+2.6210925659248425e+00
+2.6182257011838219e+00
+2.6153564593624266e+00
+2.6124848472218156e+00
+2.6096108714127060e+00
+2.6067345386380878e+00
+2.6038558558692828e+00
+2.6009748301785072e+00
+2.5980914689347481e+00
+2.5952057804241671e+00
+2.5923177731127218e+00
+2.5894274546032139e+00
+2.5865348309290699e+00
+2.5836399080031529e+00
+2.5807426927348360e+00
+2.5778431931027885e+00
+2.5749414171469596e+00
+2.5720373729081123e+00
+2.5691310684311368e+00
+2.5662225115450048e+00
+2.5633117087363941e+00
+2.5603986659992040e+00
+2.5574833898178957e+00
+2.5545658882849396e+00
+2.5516461698313750e+00
+2.5487242427203176e+00
+2.5458001148886260e+00
+2.5428737942161663e+00
+2.5399452877573525e+00
+2.5370146016420234e+00
+2.5340817420777109e+00
+2.5311467167310115e+00
+2.5282095342457485e+00
+2.5252702031564218e+00
+2.5223287311434022e+00
+2.5193851255612292e+00
+2.5164393937815737e+00
+2.5134915432159435e+00
+2.5105415812905534e+00
+2.5075895153161891e+00
+2.5046353523673535e+00
+2.5016790995272564e+00
+2.4987207647739753e+00
+2.4957603571273732e+00
+2.4927978855605852e+00
+2.4898333575638834e+00
+2.4868667795978934e+00
+2.4838981582123556e+00
+2.4809275006412137e+00
+2.4779548144014094e+00
+2.4749801073253210e+00
+2.4720033883648034e+00
+2.4690246667277651e+00
+2.4660439506346510e+00
+2.4630612462611210e+00
+2.4600765595737859e+00
+2.4570898977747535e+00
+2.4541012695656219e+00
+2.4511106837085945e+00
+2.4481181484353836e+00
+2.4451236715952902e+00
+2.4421272609843698e+00
+2.4391289240347058e+00
+2.4361286680288412e+00
+2.4331265003734264e+00
+2.4301224289259791e+00
+2.4271164616594492e+00
+2.4241086067302713e+00
+2.4210988726787877e+00
+2.4180872680814915e+00
+2.4150738007035564e+00
+2.4120584772801883e+00
+2.4090413045532548e+00
+2.4060222902267614e+00
+2.4030014427350079e+00
+2.3999787705713405e+00
+2.3969542824682768e+00
+2.3939279872701928e+00
+2.3908998933880374e+00
+2.3878700074692381e+00
+2.3848383357304166e+00
+2.3818048852827585e+00
+2.3787696652397217e+00
+2.3757326849796931e+00
+2.3726939531824307e+00
+2.3696534776021525e+00
+2.3666112659324545e+00
+2.3635673257893224e+00
+2.3605216647293532e+00
+2.3574742903833190e+00
+2.3544252109084676e+00
+2.3513744347113490e+00
+2.3483219702229587e+00
+2.3452678259404975e+00
+2.3422120103845012e+00
+2.3391545317679072e+00
+2.3360953975676169e+00
+2.3330346151693870e+00
+2.3299721922925896e+00
+2.3269081371124773e+00
+2.3238424578826713e+00
+2.3207751634713900e+00
+2.3177062632539647e+00
+2.3146357663862105e+00
+2.3115636800539536e+00
+2.3084900104919890e+00
+2.3054147644410028e+00
+2.3023379508670598e+00
+2.2992595793536714e+00
+2.2961796591594803e+00
+2.2930981987288299e+00
+2.2900152063831527e+00
+2.2869306900604958e+00
+2.2838446571449231e+00
+2.2807571150297723e+00
+2.2776680719028866e+00
+2.2745775366342187e+00
+2.2714855181127418e+00
+2.2683920251301122e+00
+2.2652970664335230e+00
+2.2622006505776113e+00
+2.2591027851975092e+00
+2.2560034776704132e+00
+2.2529027357365203e+00
+2.2498005680567217e+00
+2.2466969834467241e+00
+2.2435919907732091e+00
+2.2404855989742809e+00
+2.2373778169683907e+00
+2.2342686530316329e+00
+2.2311581148674526e+00
+2.2280462102140088e+00
+2.2249329472378112e+00
+2.2218183343360867e+00
+2.2187023800808245e+00
+2.2155850938430723e+00
+2.2124664852410496e+00
+2.2093465632678586e+00
+2.2062253352169332e+00
+2.2031028081180288e+00
+2.1999789897978568e+00
+2.1968538893222709e+00
+2.1937275158770371e+00
+2.1905998787262164e+00
+2.1874709872074249e+00
+2.1843408505355457e+00
+2.1812094766539678e+00
+2.1780768728078210e+00
+2.1749430464716859e+00
+2.1718080062886140e+00
+2.1686717612775008e+00
+2.1655343206080437e+00
+2.1623956938565749e+00
+2.1592558906660591e+00
+2.1561149197988776e+00
+2.1529727885778636e+00
+2.1498295042483089e+00
+2.1466850751006787e+00
+2.1435395104391866e+00
+2.1403928196211952e+00
+2.1372450120339650e+00
+2.1340960970862350e+00
+2.1309460839149863e+00
+2.1277949801694813e+00
+2.1246427930122076e+00
+2.1214895302811114e+00
+2.1183352017922545e+00
+2.1151798177246040e+00
+2.1120233875948355e+00
+2.1088659197875081e+00
+2.1057074225929164e+00
+2.1025479044919200e+00
+2.0993873741578395e+00
+2.0962258402817437e+00
+2.0930633115700474e+00
+2.0898997967420074e+00
+2.0867353046379264e+00
+2.0835698447311906e+00
+2.0804034267210061e+00
+2.0772360599406765e+00
+2.0740677525717195e+00
+2.0708985125848538e+00
+2.0677283483345850e+00
+2.0645572688492009e+00
+2.0613852832450683e+00
+2.0582124009152016e+00
+2.0550386315433866e+00
+2.0518639847434956e+00
+2.0486884690960805e+00
+2.0455120925366419e+00
+2.0423348631442315e+00
+2.0391567898580596e+00
+2.0359778819354646e+00
+2.0327981487975775e+00
+2.0296176003727426e+00
+2.0264362466920067e+00
+2.0232540969861468e+00
+2.0200711589969540e+00
+2.0168874403482469e+00
+2.0137029496632963e+00
+2.0105176966611080e+00
+2.0073316911172969e+00
+2.0041449427136473e+00
+2.0009574610739564e+00
+1.9977692556589401e+00
+1.9945803348839577e+00
+1.9913907067724386e+00
+1.9882003796811802e+00
+1.9850093630807821e+00
+1.9818176666853820e+00
+1.9786253002192884e+00
+1.9754322734172671e+00
+1.9722385959986406e+00
+1.9690442769419636e+00
+1.9658493243775428e+00
+1.9626537464730400e+00
+1.9594575523599205e+00
+1.9562607518303474e+00
+1.9530633546915923e+00
+1.9498653707136966e+00
+1.9466668096578044e+00
+1.9434676810082323e+00
+1.9402679932408844e+00
+1.9370677546174093e+00
+1.9338669738748389e+00
+1.9306656607008266e+00
+1.9274638249064806e+00
+1.9242614763324251e+00
+1.9210586248525738e+00
+1.9178552802852571e+00
+1.9146514515696442e+00
+1.9114471470217418e+00
+1.9082423751011253e+00
+1.9050371452863801e+00
+1.9018314674852215e+00
+1.8986253516174405e+00
+1.8954188076159904e+00
+1.8922118454216372e+00
+1.8890044745249610e+00
+1.8857967034571916e+00
+1.8825885406533465e+00
+1.8793799951953229e+00
+1.8761710769662447e+00
+1.8729617959123002e+00
+1.8697521620462279e+00
+1.8665421854326811e+00
+1.8633318759966251e+00
+1.8601212425994240e+00
+1.8569102936448252e+00
+1.8536990378372697e+00
+1.8504874850398214e+00
+1.8472756454056003e+00
+1.8440635290555549e+00
+1.8408511460278891e+00
+1.8376385063420053e+00
+1.8344256194029682e+00
+1.8312124938179675e+00
+1.8279991382049883e+00
+1.8247855620365192e+00
+1.8215717754480378e+00
+1.8183577885990800e+00
+1.8151436116387354e+00
+1.8119292547166959e+00
+1.8087147277455498e+00
+1.8055000396370255e+00
+1.8022851990543736e+00
+1.7990702150742390e+00
+1.7958550977141254e+00
+1.7926398571331759e+00
+1.7894245035617942e+00
+1.7862090473231169e+00
+1.7829934986987492e+00
+1.7797778670619873e+00
+1.7765621610555336e+00
+1.7733463894437833e+00
+1.7701305620626757e+00
+1.7669146892618843e+00
+1.7636987813868965e+00
+1.7604828487196778e+00
+1.7572669015310214e+00
+1.7540509497146621e+00
+1.7508350022433841e+00
+1.7476190679734569e+00
+1.7444031563411264e+00
+1.7411872775950121e+00
+1.7379714420565990e+00
+1.7347556601070424e+00
+1.7315399421792024e+00
+1.7283242985975751e+00
+1.7251087387031554e+00
+1.7218932713533368e+00
+1.7186779056421837e+00
+1.7154626517169229e+00
+1.7122475200280309e+00
+1.7090325210311710e+00
+1.7058176651801493e+00
+1.7026029629255299e+00
+1.6993884241463741e+00
+1.6961740578791353e+00
+1.6929598731422466e+00
+1.6897458797234086e+00
+1.6865320880850792e+00
+1.6833185087269447e+00
+1.6801051522026793e+00
+1.6768920290986618e+00
+1.6736791497840566e+00
+1.6704665235652063e+00
+1.6672541594415182e+00
+1.6640420668122731e+00
+1.6608302561166692e+00
+1.6576187379711793e+00
+1.6544075230008948e+00
+1.6511966218388923e+00
+1.6479860450871175e+00
+1.6447758025589774e+00
+1.6415659033490704e+00
+1.6383563566376831e+00
+1.6351471725762396e+00
+1.6319383618457717e+00
+1.6287299351442561e+00
+1.6255219031896579e+00
+1.6223142767123708e+00
+1.6191070660718327e+00
+1.6159002805880531e+00
+1.6126939294191540e+00
+1.6094880223102743e+00
+1.6062825699381380e+00
+1.6030775830719290e+00
+1.5998730724972197e+00
+1.5966690490156479e+00
+1.5934655233406769e+00
+1.5902625052379664e+00
+1.5870600039416773e+00
+1.5838580288889610e+00
+1.5806565905691339e+00
+1.5774556998187002e+00
+1.5742553674912103e+00
+1.5710556044704296e+00
+1.5678564216455768e+00
+1.5646578293288969e+00
+1.5614598368659767e+00
+1.5582624535546574e+00
+1.5550656895223511e+00
+1.5518695557185711e+00
+1.5486740631307101e+00
+1.5454792226874525e+00
+1.5422850452869081e+00
+1.5390915416558268e+00
+1.5358987215466711e+00
+1.5327065943871483e+00
+1.5295151699426388e+00
+1.5263244589831459e+00
+1.5231344724757272e+00
+1.5199452214136664e+00
+1.5167567168285916e+00
+1.5135689697337507e+00
+1.5103819903968836e+00
+1.5071957883156746e+00
+1.5040103730457832e+00
+1.5008257550836741e+00
+1.4976419455078767e+00
+1.4944589554115082e+00
+1.4912767958772135e+00
+1.4880954779901041e+00
+1.4849150125208059e+00
+1.4817354092236412e+00
+1.4785566776643269e+00
+1.4753788279359963e+00
+1.4722018710811227e+00
+1.4690258182506519e+00
+1.4658506805957747e+00
+1.4626764692672030e+00
+1.4595031953500421e+00
+1.4563308690768164e+00
+1.4531595001362509e+00
+1.4499890983765755e+00
+1.4468196746173971e+00
+1.4436512400453907e+00
+1.4404838058682934e+00
+1.4373173833391353e+00
+1.4341519837234475e+00
+1.4309876177848102e+00
+1.4278242953283584e+00
+1.4246620260845024e+00
+1.4215008204954498e+00
+1.4183406898004176e+00
+1.4151816452929120e+00
+1.4120236983115426e+00
+1.4088668602283458e+00
+1.4057111422573902e+00
+1.4025565545617911e+00
+1.3994031069009398e+00
+1.3962508093455457e+00
+1.3930996730314715e+00
+1.3899497093334803e+00
+1.3868009296431638e+00
+1.3836533453758189e+00
+1.3805069679356643e+00
+1.3773618080407837e+00
+1.3742178756060308e+00
+1.3710751805738455e+00
+1.3679337337413029e+00
+1.3647935465045045e+00
+1.3616546302926413e+00
+1.3585169966199302e+00
+1.3553806570410210e+00
+1.3522456228105968e+00
+1.3491119040643640e+00
+1.3459795106928265e+00
+1.3428484530977236e+00
+1.3397187427273254e+00
+1.3365903911662673e+00
+1.3334634099584524e+00
+1.3303378105960533e+00
+1.3272136045208671e+00
+1.3240908024098714e+00
+1.3209694143860564e+00
+1.3178494506951246e+00
+1.3147309224767212e+00
+1.3116138412563372e+00
+1.3084982185954857e+00
+1.3053840661606513e+00
+1.3022713956481966e+00
+1.2991602182778883e+00
+1.2960505442305053e+00
+1.2929423835778160e+00
+1.2898357471034723e+00
+1.2867306464923045e+00
+1.2836270934916356e+00
+1.2805250997890640e+00
+1.2774246770292514e+00
+1.2743258367422616e+00
+1.2712285895672579e+00
+1.2681329457517039e+00
+1.2650389157946027e+00
+1.2619465111848760e+00
+1.2588557436664196e+00
+1.2557666249834940e+00
+1.2526791668689510e+00
+1.2495933810480540e+00
+1.2465092786731931e+00
+1.2434268701359068e+00
+1.2403461658326840e+00
+1.2372671769384409e+00
+1.2341899152453659e+00
+1.2311143925703973e+00
+1.2280406207284560e+00
+1.2249686115387288e+00
+1.2218983765996394e+00
+1.2188299265519502e+00
+1.2157632717926732e+00
+1.2126984231391420e+00
+1.2096353923878711e+00
+1.2065741914832930e+00
+1.2035148323203662e+00
+1.2004573267221190e+00
+1.1974016864753854e+00
+1.1943479227152218e+00
+1.1912960460412099e+00
+1.1882460671396375e+00
+1.1851979974725213e+00
+1.1821518488835669e+00
+1.1791076332618449e+00
+1.1760653626525650e+00
+1.1730250491497973e+00
+1.1699867044302104e+00
+1.1669503391277385e+00
+1.1639159637381564e+00
+1.1608835893892346e+00
+1.1578532281137837e+00
+1.1548248920194406e+00
+1.1517985931478218e+00
+1.1487743434852244e+00
+1.1457521549331762e+00
+1.1427320386141491e+00
+1.1397140052594550e+00
+1.1366980657877030e+00
+1.1336842319665243e+00
+1.1306725158153013e+00
+1.1276629294104572e+00
+1.1246554849601733e+00
+1.1216501946907418e+00
+1.1186470702303912e+00
+1.1156461223058780e+00
+1.1126473616188941e+00
+1.1096507996658260e+00
+1.1066564486551704e+00
+1.1036643208215380e+00
+1.1006744283337453e+00
+1.0976867833302879e+00
+1.0947013977852089e+00
+1.0917182828412828e+00
+1.0887374493963811e+00
+1.0857589086730068e+00
+1.0827826727552317e+00
+1.0798087538788121e+00
+1.0768371642813057e+00
+1.0738679161976257e+00
+1.0709010218392558e+00
+1.0679364927769524e+00
+1.0649743399845697e+00
+1.0620145745067759e+00
+1.0590572082101941e+00
+1.0561022534204083e+00
+1.0531497224703177e+00
+1.0501996276663237e+00
+1.0472519813126859e+00
+1.0443067954261407e+00
+1.0413640811942309e+00
+1.0384238496728821e+00
+1.0354861123952022e+00
+1.0325508816673665e+00
+1.0296181698752760e+00
+1.0266879894100340e+00
+1.0237603526680734e+00
+1.0208352719785652e+00
+1.0179127589103729e+00
+1.0149928245969282e+00
+1.0120754803343230e+00
+1.0091607382777890e+00
+1.0062486108739785e+00
+1.0033391105876301e+00
+1.0004322499174827e+00
+9.9752804137022000e-01
+9.9462649697567762e-01
+9.9172762794541391e-01
+9.8883144544820911e-01
+9.8593796135189782e-01
+9.8304718823205295e-01
+9.8015913869688021e-01
+9.7727382527849327e-01
+9.7439126046698443e-01
+9.7151145662003902e-01
+9.6863442531516530e-01
+9.6576017786444046e-01
+9.6288872585908591e-01
+9.6002008173787801e-01
+9.5715425811092991e-01
+9.5429126760273841e-01
+9.5143112285583686e-01
+9.4857383649840776e-01
+9.4571942053771052e-01
+9.4286788632534468e-01
+9.4001924525955149e-01
+9.3717350953252410e-01
+9.3433069183907635e-01
+9.3149080488819402e-01
+9.2865386138006578e-01
+9.2581987401775601e-01
+9.2298885525517460e-01
+9.2016081671656180e-01
+9.1733576986882637e-01
+9.1451372658908991e-01
+9.1169469950784010e-01
+9.0887870134739701e-01
+9.0606574488245062e-01
+9.0325584294430861e-01
+9.0044900831023589e-01
+8.9764525298173448e-01
+8.9484458845454318e-01
+8.9204702636316757e-01
+8.8925257920939493e-01
+8.8646125983107416e-01
+8.8367308108342091e-01
+8.8088805585532537e-01
+8.7810619704667625e-01
+8.7532751711463475e-01
+8.7255202765035322e-01
+8.6977974017608350e-01
+8.6701066690234962e-01
+8.6424482082700194e-01
+8.6148221498995481e-01
+8.5872286231073436e-01
+8.5596677562957268e-01
+8.5321396768133850e-01
+8.5046445047791019e-01
+8.4771823574831184e-01
+8.4497533546047277e-01
+8.4223576241459552e-01
+8.3949952960346885e-01
+8.3676665000893458e-01
+8.3403713658083345e-01
+8.3131100225844223e-01
+8.2858825950104953e-01
+8.2586892019302749e-01
+8.2315299623970506e-01
+8.2044050017869274e-01
+8.1773144500117045e-01
+8.1502584372396769e-01
+8.1232370941788012e-01
+8.0962505518181849e-01
+8.0692989389252479e-01
+8.0423823757048174e-01
+8.0155009804511135e-01
+7.9886548755440268e-01
+7.9618441918993399e-01
+7.9350690615839048e-01
+7.9083296161611694e-01
+7.8816259865444538e-01
+7.8549583032573744e-01
+7.8283266906932247e-01
+7.8017312687096396e-01
+7.7751721581743327e-01
+7.7486494874447032e-01
+7.7221633881940466e-01
+7.6957139923361684e-01
+7.6693014323946918e-01
+7.6429258410970469e-01
+7.6165873475336432e-01
+7.5902860726520094e-01
+7.5640221365222438e-01
+7.5377956646362820e-01
+7.5116067894930538e-01
+7.4854556441429920e-01
+7.4593423616544685e-01
+7.4332670751314667e-01
+7.4072299167237321e-01
+7.3812310107878976e-01
+7.3552704781783529e-01
+7.3293484418841903e-01
+7.3034650334727003e-01
+7.2776203867829303e-01
+7.2518146355519875e-01
+7.2260479131555688e-01
+7.2003203528921078e-01
+7.1746320835274002e-01
+7.1489832276657495e-01
+7.1233739079462854e-01
+7.0978042534185226e-01
+7.0722743983287273e-01
+7.0467844771210131e-01
+7.0213346239867092e-01
+6.9959249730471573e-01
+6.9705556567670479e-01
+6.9452268001689366e-01
+6.9199385263457314e-01
+6.8946909617918184e-01
+6.8694842410871015e-01
+6.8443185000438311e-01
+6.8191938724809131e-01
+6.7941104893679838e-01
+6.7690684818195701e-01
+6.7440679857557939e-01
+6.7191091411587112e-01
+6.6941920805533828e-01
+6.6693168725393803e-01
+6.6444835539435965e-01
+6.6196921515045315e-01
+6.5949426474968720e-01
+6.5702350116055752e-01
+6.5455692148892120e-01
+6.5209452319914007e-01
+6.4963630380958337e-01
+6.4718226106168053e-01
+6.4473239302804197e-01
+6.4228669780729475e-01
+6.3984517359398996e-01
+6.3740781866607232e-01
+6.3497463121231323e-01
+6.3254560866075582e-01
+6.3012074804093365e-01
+6.2770004653609068e-01
+6.2528350210100658e-01
+6.2287111291398034e-01
+6.2046287714295545e-01
+6.1805879293892974e-01
+6.1565885843789026e-01
+6.1326307136942781e-01
+6.1087142884368539e-01
+6.0848392793830586e-01
+6.0610056625018993e-01
+6.0372134185051063e-01
+6.0134625282098597e-01
+5.9897529723059373e-01
+5.9660847313845822e-01
+5.9424577845872462e-01
+5.9188721041162906e-01
+5.8953276599766413e-01
+5.8718244246959117e-01
+5.8483623779044058e-01
+5.8249415003903449e-01
+5.8015617725500990e-01
+5.7782231741917733e-01
+5.7549256847718544e-01
+5.7316692786223733e-01
+5.7084539251886335e-01
+5.6852795943431034e-01
+5.6621462626640817e-01
+5.6390539104959370e-01
+5.6160025180480511e-01
+5.5929920648686293e-01
+5.5700225302454009e-01
+5.5470938909870626e-01
+5.5242061168556800e-01
+5.5013591763422964e-01
+5.4785530420621287e-01
+5.4557876935592542e-01
+5.4330631109340954e-01
+5.4103792732482436e-01
+5.3877361585312522e-01
+5.3651337442073055e-01
+5.3425720024863510e-01
+5.3200509024693188e-01
+5.2975704142455227e-01
+5.2751305138502058e-01
+5.2527311792966691e-01
+5.2303723888041276e-01
+5.2080541213419662e-01
+5.1857763559214476e-01
+5.1635390674797788e-01
+5.1413422239109607e-01
+5.1191857925632189e-01
+5.0970697462700443e-01
+5.0749940635432578e-01
+5.0529587230168393e-01
+5.0309637023982878e-01
+5.0090089787993519e-01
+4.9870945281788287e-01
+4.9652203202372913e-01
+4.9433863224009922e-01
+4.9215925042413278e-01
+4.8998388423058081e-01
+4.8781253144671144e-01
+4.8564518981929311e-01
+4.8348185702674240e-01
+4.8132253071786868e-01
+4.7916720809756591e-01
+4.7701588589261901e-01
+4.7486856084920914e-01
+4.7272523028565289e-01
+4.7058589188565925e-01
+4.6845054332706010e-01
+4.6631918224775887e-01
+4.6419180626668122e-01
+4.6206841281766675e-01
+4.5994899873447687e-01
+4.5783356072298798e-01
+4.5572209575774536e-01
+4.5361460132942955e-01
+4.5151107498209542e-01
+4.4941151429930482e-01
+4.4731591690980860e-01
+4.4522428039113576e-01
+4.4313660173247749e-01
+4.4105287752619876e-01
+4.3897310445351712e-01
+4.3689727984239374e-01
+4.3482540126894964e-01
+4.3275746628573680e-01
+4.3069347237717082e-01
+4.2863341700581259e-01
+4.2657729737861971e-01
+4.2452511020278022e-01
+4.2247685213107028e-01
+4.2043252014500992e-01
+4.1839211161226048e-01
+4.1635562392333209e-01
+4.1432305455462881e-01
+4.1229440104066972e-01
+4.1026966080988830e-01
+4.0824883061340800e-01
+4.0623190692176764e-01
+4.0421888637794118e-01
+4.0220976627728566e-01
+4.0020454405901051e-01
+3.9820321715139412e-01
+3.9620578296700193e-01
+3.9421223889861112e-01
+3.9222258192057891e-01
+3.9023680849815590e-01
+3.8825491509854854e-01
+3.8627689873024790e-01
+3.8430275679451487e-01
+3.8233248668517056e-01
+3.8036608571948188e-01
+3.7840355117831947e-01
+3.7644488019929190e-01
+3.7449006939048179e-01
+3.7253911522894295e-01
+3.7059201441337730e-01
+3.6864876413003589e-01
+3.6670936162412554e-01
+3.6477380417419925e-01
+3.6284208910299259e-01
+3.6091421369345889e-01
+3.5899017468550465e-01
+3.5706996840461730e-01
+3.5515359124320967e-01
+3.5324104020675628e-01
+3.5133231257045544e-01
+3.4942740559680080e-01
+3.4752631651164684e-01
+3.4562904252567067e-01
+3.4373558059269527e-01
+3.4184592709454659e-01
+3.3996007833748532e-01
+3.3807803099717409e-01
+3.3619978224135055e-01
+3.3432532926312730e-01
+3.3245466921083416e-01
+3.3058779919596853e-01
+3.2872471626397087e-01
+3.2686541700037758e-01
+3.2500989777256556e-01
+3.2315815504288703e-01
+3.2131018570167286e-01
+3.1946598674710858e-01
+3.1762555521511393e-01
+3.1578888823972251e-01
+3.1395598295595439e-01
+3.1212683615014974e-01
+3.1030144412927896e-01
+3.0847980318118146e-01
+3.0666190996426751e-01
+3.0484776144173803e-01
+3.0303735458803283e-01
+3.0123068644028889e-01
+2.9942775406284206e-01
+2.9762855438541391e-01
+2.9583308376482903e-01
+2.9404133839521340e-01
+2.9225331467015891e-01
+2.9046900948662735e-01
+2.8868841981264853e-01
+2.8691154262432766e-01
+2.8513837491228355e-01
+2.8336891363620009e-01
+2.8160315528586366e-01
+2.7984109594570583e-01
+2.7808273174989528e-01
+2.7632805942573635e-01
+2.7457707599898368e-01
+2.7282977846121953e-01
+2.7108616365807048e-01
+2.6934622838791183e-01
+2.6760996928184072e-01
+2.6587738254931242e-01
+2.6414846433189576e-01
+2.6242321106060579e-01
+2.6070161960498928e-01
+2.5898368686076434e-01
+2.5726940964127698e-01
+2.5555878468532250e-01
+2.5385180868428070e-01
+2.5214847797623624e-01
+2.5044878870829612e-01
+2.4875273710275314e-01
+2.4706031978270579e-01
+2.4537153348811550e-01
+2.4368637497446441e-01
+2.4200484105034517e-01
+2.4032692852285240e-01
+2.3865263388607780e-01
+2.3698195314731729e-01
+2.3531488228484873e-01
+2.3365141768004996e-01
+2.3199155609056482e-01
+2.3033529427891095e-01
+2.2868262896987590e-01
+2.2703355686440910e-01
+2.2538807455980006e-01
+2.2374617815344669e-01
+2.2210786357930204e-01
+2.2047312694744345e-01
+2.1884196487986610e-01
+2.1721437408265515e-01
+2.1559035122474132e-01
+2.1396989291845200e-01
+2.1235299575103067e-01
+2.1073965599935082e-01
+2.0912986963785507e-01
+2.0752363265983564e-01
+2.0592094143643155e-01
+2.0432179255464120e-01
+2.0272618259646388e-01
+2.0113410813128502e-01
+1.9954556571979323e-01
+1.9796055177547728e-01
+1.9637906228860300e-01
+1.9480109316829791e-01
+1.9322664053226279e-01
+1.9165570085902595e-01
+1.9008827065789641e-01
+1.8852434646749799e-01
+1.8696392485629892e-01
+1.8540700234337112e-01
+1.8385357496814092e-01
+1.8230363847752851e-01
+1.8075718870803553e-01
+1.7921422205393436e-01
+1.7767473509947887e-01
+1.7613872437864245e-01
+1.7460618628234162e-01
+1.7307711716664784e-01
+1.7155151321919235e-01
+1.7002937033298696e-01
+1.6851068437387165e-01
+1.6699545144463113e-01
+1.6548366789899618e-01
+1.6397533009962867e-01
+1.6247043443881473e-01
+1.6096897732507254e-01
+1.5947095509112014e-01
+1.5797636365374412e-01
+1.5648519877357878e-01
+1.5499745632026868e-01
+1.5351313253475027e-01
+1.5203222372821470e-01
+1.5055472622721350e-01
+1.4908063639252042e-01
+1.4760995057209161e-01
+1.4614266481297969e-01
+1.4467877483137281e-01
+1.4321827634711304e-01
+1.4176116539997949e-01
+1.4030743823770614e-01
+1.3885709111265737e-01
+1.3741012031695560e-01
+1.3596652215381944e-01
+1.3452629279478523e-01
+1.3308942797840087e-01
+1.3165592334697912e-01
+1.3022577472140173e-01
+1.2879897827573869e-01
+1.2737553021922057e-01
+1.2595542676963989e-01
+1.2453866415559822e-01
+1.2312523857185412e-01
+1.2171514585031620e-01
+1.2030838157197352e-01
+1.1890494136775209e-01
+1.1750482126286689e-01
+1.1610801743596019e-01
+1.1471452605789789e-01
+1.1332434328722131e-01
+1.1193746527329819e-01
+1.1055388797499509e-01
+1.0917360697195229e-01
+1.0779661779978850e-01
+1.0642291625061728e-01
+1.0505249842485985e-01
+1.0368536043461156e-01
+1.0232149838211042e-01
+1.0096090836066743e-01
+9.9603586401198055e-02
+9.8249528147890564e-02
+9.6898729079299695e-02
+9.5551184772619174e-02
+9.4206891195977346e-02
+9.2865844403913614e-02
+9.1528040444461389e-02
+9.0193475359247599e-02
+8.8862145176167626e-02
+8.7534045662619561e-02
+8.6209172262789888e-02
+8.4887520416761120e-02
+8.3569085883283739e-02
+8.2253864656840744e-02
+8.0941852730500641e-02
+7.9633046086486289e-02
+7.8327440698565912e-02
+7.7025032434907881e-02
+7.5725816768543328e-02
+7.4429789070992722e-02
+7.3136944874998014e-02
+7.1847280078607884e-02
+7.0560790622836975e-02
+6.9277472432567586e-02
+6.7997321413690387e-02
+6.6720333445261071e-02
+6.5446504105998157e-02
+6.4175828739765226e-02
+6.2908302723378232e-02
+6.1643921773856594e-02
+6.0382681759860446e-02
+5.9124578544502711e-02
+5.7869607985345461e-02
+5.6617765933001822e-02
+5.5369048078594309e-02
+5.4123449753143579e-02
+5.2880966236117620e-02
+5.1641593026789688e-02
+5.0405325924784909e-02
+4.9172160744315963e-02
+4.7942093282942931e-02
+4.6715119323483094e-02
+4.5491234600668548e-02
+4.4270434515371333e-02
+4.3052714305541480e-02
+4.1838069283909131e-02
+4.0626495113627634e-02
+3.9417987547502885e-02
+3.8212542327125253e-02
+3.7010155176341444e-02
+3.5810821806492629e-02
+3.4614537722639019e-02
+3.3421298141189465e-02
+3.2231098265620449e-02
+3.1043933558257006e-02
+2.9859799698797849e-02
+2.8678692367504300e-02
+2.7500607239518905e-02
+2.6325539984110753e-02
+2.5153486187613629e-02
+2.3984441084444478e-02
+2.2818399804758523e-02
+2.1655357604739252e-02
+2.0495310070169706e-02
+1.9338252832417090e-02
+1.8184181510131438e-02
+1.7033091706362004e-02
+1.5884979003199132e-02
+1.4739838725549846e-02
+1.3597665971306369e-02
+1.2458455858328568e-02
+1.1322203801760342e-02
+1.0188905368225937e-02
+9.0585561181989321e-03
+7.9311516013735907e-03
+6.8066873593573491e-03
+5.6851588074207388e-03
+4.5665610374896869e-03
+3.4508890858610439e-03
+2.3381381665694679e-03
+1.2283037704769535e-03
+1.2138140541193331e-04
+-9.8263343671578843e-04
+-2.0837452791399131e-03
+-3.1819586821812246e-03
+-4.2772784927035913e-03
+-5.3697097164578144e-03
+-6.4592573048255749e-03
+-7.5459259029477324e-03
+-8.6297200654562537e-03
+-9.7106443558692499e-03
+-1.0788703350654495e-02
+-1.1863901636544301e-02
+-1.2936243973323710e-02
+-1.4005735394050201e-02
+-1.5072380951941968e-02
+-1.6136185477752765e-02
+-1.7197153590084314e-02
+-1.8255289906439837e-02
+-1.9310599060674834e-02
+-2.0363085698797450e-02
+-2.1412754529018110e-02
+-2.2459610555859284e-02
+-2.3503658884905899e-02
+-2.4544904527752657e-02
+-2.5583352209937887e-02
+-2.6619006610963950e-02
+-2.7651872420565493e-02
+-2.8681954341118171e-02
+-2.9709257091194378e-02
+-3.0733785600221174e-02
+-3.1755545007494612e-02
+-3.2774540444132735e-02
+-3.3790776800136854e-02
+-3.4804258825542660e-02
+-3.5814991273492580e-02
+-3.6822978894781984e-02
+-3.7828226443847542e-02
+-3.8830738777478363e-02
+-3.9830521049683293e-02
+-4.0827578474591952e-02
+-4.1821916122213490e-02
+-4.2813538805904272e-02
+-4.3802451319700036e-02
+-4.4788658476044456e-02
+-4.5772165106223735e-02
+-4.6752976070163446e-02
+-4.7731096468887402e-02
+-4.8706531554980399e-02
+-4.9679286541911769e-02
+-5.0649366372566763e-02
+-5.1616775897583997e-02
+-5.2581519980550911e-02
+-5.3543603512129022e-02
+-5.4503031394986912e-02
+-5.5459808662623261e-02
+-5.6413940581252535e-02
+-5.7365432441401507e-02
+-5.8314289364431400e-02
+-5.9260516288351078e-02
+-6.0204118147673021e-02
+-6.1145099875218482e-02
+-6.2083466405088501e-02
+-6.3019222722333082e-02
+-6.3952374086531802e-02
+-6.4882925864171492e-02
+-6.5810883347964075e-02
+-6.6736251567774435e-02
+-6.7659035504076939e-02
+-6.8579240145400691e-02
+-6.9496870489583903e-02
+-7.0411931547546699e-02
+-7.1324428512606730e-02
+-7.2234366782610956e-02
+-7.3141751755007450e-02
+-7.4046588613867245e-02
+-7.4948882402101250e-02
+-7.5848638167326732e-02
+-7.6745860968739393e-02
+-7.7640555874131281e-02
+-7.8532728027670112e-02
+-7.9422382823614149e-02
+-8.0309525715407906e-02
+-8.1194162050933535e-02
+-8.2076296961630171e-02
+-8.2955935559232016e-02
+-8.3833082959761537e-02
+-8.4707744283112729e-02
+-8.5579924671557381e-02
+-8.6449629480629370e-02
+-8.7316864217370296e-02
+-8.8181634362890476e-02
+-8.9043945166074820e-02
+-8.9903801784833370e-02
+-9.0761209386426706e-02
+-9.1616173155662103e-02
+-9.2468698287183418e-02
+-9.3318790085475625e-02
+-9.4166454075587117e-02
+-9.5011695811672250e-02
+-9.5854520704539509e-02
+-9.6694933988150419e-02
+-9.7532940891951983e-02
+-9.8368546651660768e-02
+-9.9201756509373351e-02
+-1.0003257574584401e-01
+-1.0086100987242810e-01
+-1.0168706450305928e-01
+-1.0251074519736265e-01
+-1.0333205728525546e-01
+-1.0415100604664741e-01
+-1.0496759677165914e-01
+-1.0578183476474419e-01
+-1.0659372534182054e-01
+-1.0740327396595856e-01
+-1.0821048628593756e-01
+-1.0901536795654555e-01
+-1.0981792445456423e-01
+-1.1061816112281173e-01
+-1.1141608330764075e-01
+-1.1221169636486276e-01
+-1.1300500565821411e-01
+-1.1379601661408122e-01
+-1.1458473489072277e-01
+-1.1537116620952956e-01
+-1.1615531620287950e-01
+-1.1693719029276350e-01
+-1.1771679387813069e-01
+-1.1849413237011419e-01
+-1.1926921119383904e-01
+-1.2004203579242785e-01
+-1.2081261178483349e-01
+-1.2158094493102704e-01
+-1.2234704097566207e-01
+-1.2311090546905577e-01
+-1.2387254387433161e-01
+-1.2463196166115562e-01
+-1.2538916430749522e-01
+-1.2614415729873846e-01
+-1.2689694621250927e-01
+-1.2764753683561722e-01
+-1.2839593498825755e-01
+-1.2914214636959695e-01
+-1.2988617650849438e-01
+-1.3062803092785100e-01
+-1.3136771516297874e-01
+-1.3210523476061431e-01
+-1.3284059529692455e-01
+-1.3357380253901940e-01
+-1.3430486235074965e-01
+-1.3503378055895965e-01
+-1.3576056280022791e-01
+-1.3648521466337540e-01
+-1.3720774174263656e-01
+-1.3792814963576597e-01
+-1.3864644394905648e-01
+-1.3936263041140948e-01
+-1.4007671492580187e-01
+-1.4078870340668542e-01
+-1.4149860162360908e-01
+-1.4220641522208904e-01
+-1.4291214985065678e-01
+-1.4361581116964248e-01
+-1.4431740484867758e-01
+-1.4501693660339582e-01
+-1.4571441233834273e-01
+-1.4640983801760410e-01
+-1.4710321954399400e-01
+-1.4779456265057614e-01
+-1.4848387304887431e-01
+-1.4917115645349824e-01
+-1.4985641858031193e-01
+-1.5053966515918055e-01
+-1.5122090207465722e-01
+-1.5190013535101662e-01
+-1.5257737100439531e-01
+-1.5325261487835651e-01
+-1.5392587272774638e-01
+-1.5459715031565116e-01
+-1.5526645342366766e-01
+-1.5593378784378692e-01
+-1.5659915943672822e-01
+-1.5726257423798437e-01
+-1.5792403831661397e-01
+-1.5858355765365859e-01
+-1.5924113808795953e-01
+-1.5989678545174060e-01
+-1.6055050557780834e-01
+-1.6120230429994054e-01
+-1.6185218747608879e-01
+-1.6250016114000762e-01
+-1.6314623142622678e-01
+-1.6379040444138757e-01
+-1.6443268611613215e-01
+-1.6507308232966736e-01
+-1.6571159896797388e-01
+-1.6634824192400127e-01
+-1.6698301709883526e-01
+-1.6761593049699244e-01
+-1.6824698828816767e-01
+-1.6887619665770789e-01
+-1.6950356166710970e-01
+-1.7012908925716150e-01
+-1.7075278537026456e-01
+-1.7137465595750803e-01
+-1.7199470697783822e-01
+-1.7261294442877551e-01
+-1.7322937448508186e-01
+-1.7384400338518663e-01
+-1.7445683731671333e-01
+-1.7506788230257142e-01
+-1.7567714434074788e-01
+-1.7628462943959797e-01
+-1.7689034362044165e-01
+-1.7749429291668090e-01
+-1.7809648348092302e-01
+-1.7869692158688805e-01
+-1.7929561350733761e-01
+-1.7989256538333673e-01
+-1.8048778327890391e-01
+-1.8108127326287968e-01
+-1.8167304140671353e-01
+-1.8226309378716030e-01
+-1.8285143654049954e-01
+-1.8343807597403552e-01
+-1.8402301843289168e-01
+-1.8460627018472789e-01
+-1.8518783735356209e-01
+-1.8576772605486211e-01
+-1.8634594241795560e-01
+-1.8692249258645671e-01
+-1.8749738272246161e-01
+-1.8807061912333803e-01
+-1.8864220817441246e-01
+-1.8921215624363499e-01
+-1.8978046955505073e-01
+-1.9034715428437932e-01
+-1.9091221661654770e-01
+-1.9147566275158284e-01
+-1.9203749889860711e-01
+-1.9259773134276637e-01
+-1.9315636650498888e-01
+-1.9371341082358162e-01
+-1.9426887064437737e-01
+-1.9482275221037815e-01
+-1.9537506176508723e-01
+-1.9592580555188857e-01
+-1.9647498981637931e-01
+-1.9702262083957647e-01
+-1.9756870508749944e-01
+-1.9811324910120956e-01
+-1.9865625934802728e-01
+-1.9919774202611071e-01
+-1.9973770328321067e-01
+-2.0027614949535649e-01
+-2.0081308747626347e-01
+-2.0134852403865616e-01
+-2.0188246427169831e-01
+-2.0241491128025729e-01
+-2.0294586796839331e-01
+-2.0347533604343437e-01
+-2.0400331639133115e-01
+-2.0452980992919451e-01
+-2.0505481787176233e-01
+-2.0557834155419699e-01
+-2.0610038233122024e-01
+-2.0662094162072750e-01
+-2.0714002085615105e-01
+-2.0765762141834029e-01
+-2.0817374457897389e-01
+-2.0868839159842789e-01
+-2.0920156374062776e-01
+-2.0971326227332829e-01
+-2.1022348847408565e-01
+-2.1073224372414950e-01
+-2.1123952947968822e-01
+-2.1174534718427648e-01
+-2.1224969817111697e-01
+-2.1275258372847330e-01
+-2.1325400514351683e-01
+-2.1375396369398611e-01
+-2.1425246065739079e-01
+-2.1474949737244142e-01
+-2.1524507530530373e-01
+-2.1573919593818328e-01
+-2.1623186067555986e-01
+-2.1672307082419687e-01
+-2.1721282768643679e-01
+-2.1770113256270621e-01
+-2.1818798675254356e-01
+-2.1867339157482310e-01
+-2.1915734847468379e-01
+-2.1963985895381818e-01
+-2.2012092448319845e-01
+-2.2060054640521046e-01
+-2.2107872603225068e-01
+-2.2155546468303963e-01
+-2.2203076368771249e-01
+-2.2250462438159224e-01
+-2.2297704817202527e-01
+-2.2344803655952633e-01
+-2.2391759104663814e-01
+-2.2438571304141675e-01
+-2.2485240387884689e-01
+-2.2531766489559446e-01
+-2.2578149744193640e-01
+-2.2624390287554758e-01
+-2.2670488258118038e-01
+-2.2716443804843861e-01
+-2.2762257079549025e-01
+-2.2807928229754634e-01
+-2.2853457392722612e-01
+-2.2898844704454002e-01
+-2.2944090301315745e-01
+-2.2989194320094597e-01
+-2.3034156898347438e-01
+-2.3078978182594639e-01
+-2.3123658326672419e-01
+-2.3168197483536995e-01
+-2.3212595795913504e-01
+-2.3256853401749480e-01
+-2.3300970439130611e-01
+-2.3344947046158221e-01
+-2.3388783361109058e-01
+-2.3432479527029543e-01
+-2.3476035698219588e-01
+-2.3519452030709348e-01
+-2.3562728674263059e-01
+-2.3605865769678400e-01
+-2.3648863457236283e-01
+-2.3691721876796246e-01
+-2.3734441167894610e-01
+-2.3777021471614215e-01
+-2.3819462940559730e-01
+-2.3861765733204207e-01
+-2.3903930005582452e-01
+-2.3945955901664917e-01
+-2.3987843562158004e-01
+-2.4029593128618168e-01
+-2.4071204744428176e-01
+-2.4112678553539649e-01
+-2.4154014705447177e-01
+-2.4195213357724790e-01
+-2.4236274668381147e-01
+-2.4277198787794546e-01
+-2.4317985859644226e-01
+-2.4358636027657615e-01
+-2.4399149436388493e-01
+-2.4439526230924996e-01
+-2.4479766558601029e-01
+-2.4519870576608208e-01
+-2.4559838445220708e-01
+-2.4599670321305525e-01
+-2.4639366352313030e-01
+-2.4678926684328714e-01
+-2.4718351463530616e-01
+-2.4757640836122732e-01
+-2.4796794948896606e-01
+-2.4835813956542635e-01
+-2.4874698021024344e-01
+-2.4913447303798592e-01
+-2.4952061957264032e-01
+-2.4990542128985732e-01
+-2.5028887966814212e-01
+-2.5067099619416333e-01
+-2.5105177235866272e-01
+-2.5143120968575883e-01
+-2.5180930978837823e-01
+-2.5218607429591272e-01
+-2.5256150479347328e-01
+-2.5293560279367933e-01
+-2.5330836980422078e-01
+-2.5367980732718604e-01
+-2.5404991685939421e-01
+-2.5441869990877497e-01
+-2.5478615807641852e-01
+-2.5515229301734921e-01
+-2.5551710637141978e-01
+-2.5588059968628329e-01
+-2.5624277448098182e-01
+-2.5660363227647326e-01
+-2.5696317459521123e-01
+-2.5732140296234440e-01
+-2.5767831895397697e-01
+-2.5803392423012550e-01
+-2.5838822045788085e-01
+-2.5874120923826516e-01
+-2.5909289210641340e-01
+-2.5944327059759048e-01
+-2.5979234625868663e-01
+-2.6014012064437092e-01
+-2.6048659532550172e-01
+-2.6083177195168711e-01
+-2.6117565220091238e-01
+-2.6151823772479149e-01
+-2.6185953008995799e-01
+-2.6219953084877340e-01
+-2.6253824156303840e-01
+-2.6287566380944205e-01
+-2.6321179917006177e-01
+-2.6354664927672172e-01
+-2.6388021581285792e-01
+-2.6421250046083206e-01
+-2.6454350484339084e-01
+-2.6487323054721634e-01
+-2.6520167915908072e-01
+-2.6552885225919232e-01
+-2.6585475142681042e-01
+-2.6617937827140187e-01
+-2.6650273449403072e-01
+-2.6682482181533973e-01
+-2.6714564191342643e-01
+-2.6746519638686994e-01
+-2.6778348682796116e-01
+-2.6810051483747288e-01
+-2.6841628202518386e-01
+-2.6873079000888273e-01
+-2.6904404047243341e-01
+-2.6935603514316037e-01
+-2.6966677573836556e-01
+-2.6997626389907931e-01
+-2.7028450123913661e-01
+-2.7059148937778443e-01
+-2.7089722994745463e-01
+-2.7120172458531688e-01
+-2.7150497496041764e-01
+-2.7180698280056254e-01
+-2.7210774984053454e-01
+-2.7240727777066187e-01
+-2.7270556823081910e-01
+-2.7300262286081034e-01
+-2.7329844330967545e-01
+-2.7359303123338491e-01
+-2.7388638829873513e-01
+-2.7417851622909284e-01
+-2.7446941677135173e-01
+-2.7475909165810847e-01
+-2.7504754256609049e-01
+-2.7533477116149024e-01
+-2.7562077911062038e-01
+-2.7590556807787803e-01
+-2.7618913973081693e-01
+-2.7647149578518143e-01
+-2.7675263801300232e-01
+-2.7703256818704708e-01
+-2.7731128802205351e-01
+-2.7758879919266011e-01
+-2.7786510337613896e-01
+-2.7814020226087638e-01
+-2.7841409754109958e-01
+-2.7868679092820686e-01
+-2.7895828419075680e-01
+-2.7922857911198923e-01
+-2.7949767745173049e-01
+-2.7976558091871945e-01
+-2.8003229121714374e-01
+-2.8029781005011128e-01
+-2.8056213911891587e-01
+-2.8082528013099678e-01
+-2.8108723485448739e-01
+-2.8134800510256197e-01
+-2.8160759268095542e-01
+-2.8186599932268719e-01
+-2.8212322673085577e-01
+-2.8237927661728157e-01
+-2.8263415072165859e-01
+-2.8288785079212786e-01
+-2.8314037859338226e-01
+-2.8339173592348571e-01
+-2.8364192458612908e-01
+-2.8389094636137080e-01
+-2.8413880299846234e-01
+-2.8438549624625226e-01
+-2.8463102784927441e-01
+-2.8487539954928431e-01
+-2.8511861309794428e-01
+-2.8536067030709861e-01
+-2.8560157301679290e-01
+-2.8584132305466881e-01
+-2.8607992219099615e-01
+-2.8631737218321252e-01
+-2.8655367479249810e-01
+-2.8678883178576370e-01
+-2.8702284493331792e-01
+-2.8725571603748074e-01
+-2.8748744694247064e-01
+-2.8771803949491803e-01
+-2.8794749550317494e-01
+-2.8817581674558523e-01
+-2.8840300500313054e-01
+-2.8862906206944539e-01
+-2.8885398974525378e-01
+-2.8907778983967691e-01
+-2.8930046419015643e-01
+-2.8952201464322397e-01
+-2.8974244303763730e-01
+-2.8996175119065132e-01
+-2.9017994091809929e-01
+-2.9039701402990592e-01
+-2.9061297232694167e-01
+-2.9082781761380305e-01
+-2.9104155173707724e-01
+-2.9125417657855412e-01
+-2.9146569401779626e-01
+-2.9167610589191606e-01
+-2.9188541401837714e-01
+-2.9209362021767499e-01
+-2.9230072631691867e-01
+-2.9250673414667322e-01
+-2.9271164555504731e-01
+-2.9291546243044597e-01
+-2.9311818666884715e-01
+-2.9331982014514213e-01
+-2.9352036470270371e-01
+-2.9371982218434245e-01
+-2.9391819443301942e-01
+-2.9411548329212195e-01
+-2.9431169061182438e-01
+-2.9450681828465863e-01
+-2.9470086822589076e-01
+-2.9489384234428762e-01
+-2.9508574250945102e-01
+-2.9527657058115575e-01
+-2.9546632842200998e-01
+-2.9565501789849413e-01
+-2.9584264087987899e-01
+-2.9602919925623233e-01
+-2.9621469494789504e-01
+-2.9639912987869854e-01
+-2.9658250595433938e-01
+-2.9676482506439866e-01
+-2.9694608909782166e-01
+-2.9712629992596445e-01
+-2.9730545941181113e-01
+-2.9748356943665971e-01
+-2.9766063196322018e-01
+-2.9783664898051804e-01
+-2.9801162244727636e-01
+-2.9818555423598531e-01
+-2.9835844620675450e-01
+-2.9853030024242166e-01
+-2.9870111826036494e-01
+-2.9887090218373596e-01
+-2.9903965395295951e-01
+-2.9920737552481008e-01
+-2.9937406885621026e-01
+-2.9953973588115912e-01
+-2.9970437852185999e-01
+-2.9986799870250469e-01
+-3.0003059834921014e-01
+-3.0019217939021225e-01
+-3.0035274376715748e-01
+-3.0051229345579072e-01
+-3.0067083043936088e-01
+-3.0082835667846169e-01
+-3.0098487409505098e-01
+-3.0114038460997949e-01
+-3.0129489015751987e-01
+-3.0144839268512080e-01
+-3.0160089414660790e-01
+-3.0175239653572006e-01
+-3.0190290187033708e-01
+-3.0205241216072259e-01
+-3.0220092936499082e-01
+-3.0234845542527644e-01
+-3.0249499228348503e-01
+-3.0264054187657191e-01
+-3.0278510614290965e-01
+-3.0292868706837445e-01
+-3.0307128671868944e-01
+-3.0321290716614469e-01
+-3.0335355040627648e-01
+-3.0349321835635124e-01
+-3.0363191293785541e-01
+-3.0376963613531932e-01
+-3.0390638997238817e-01
+-3.0404217647550058e-01
+-3.0417699767361106e-01
+-3.0431085559799192e-01
+-3.0444375226184939e-01
+-3.0457568961732462e-01
+-3.0470666960688109e-01
+-3.0483669421749982e-01
+-3.0496576551407711e-01
+-3.0509388557019901e-01
+-3.0522105642563951e-01
+-3.0534728008412543e-01
+-3.0547255855071243e-01
+-3.0559689384381916e-01
+-3.0572028799112932e-01
+-3.0584274302261300e-01
+-3.0596426097028068e-01
+-3.0608484386828477e-01
+-3.0620449375020620e-01
+-3.0632321264276402e-01
+-3.0644100257315765e-01
+-3.0655786558499964e-01
+-3.0667380375064285e-01
+-3.0678881914643108e-01
+-3.0690291381938439e-01
+-3.0701608978383482e-01
+-3.0712834905800013e-01
+-3.0723969370445736e-01
+-3.0735012581582177e-01
+-3.0745964747868726e-01
+-3.0756826072757604e-01
+-3.0767596757837812e-01
+-3.0778277003996857e-01
+-3.0788867009210563e-01
+-3.0799366971006542e-01
+-3.0809777088065654e-01
+-3.0820097561115173e-01
+-3.0830328591275968e-01
+-3.0840470378907708e-01
+-3.0850523123459367e-01
+-3.0860487024557204e-01
+-3.0870362282379177e-01
+-3.0880149097549470e-01
+-3.0889847670932197e-01
+-3.0899458203748092e-01
+-3.0908980897488852e-01
+-3.0918415954341644e-01
+-3.0927763578436429e-01
+-3.0937023974492373e-01
+-3.0946197345447252e-01
+-3.0955283890388974e-01
+-3.0964283808222859e-01
+-3.0973197301361977e-01
+-3.0982024576392536e-01
+-3.0990765840181672e-01
+-3.0999421297522078e-01
+-3.1007991151777625e-01
+-3.1016475606252214e-01
+-3.1024874862836299e-01
+-3.1033189122949884e-01
+-3.1041418589370112e-01
+-3.1049563469406743e-01
+-3.1057623971593040e-01
+-3.1065600303315083e-01
+-3.1073492669275332e-01
+-3.1081301274035861e-01
+-3.1089026323004315e-01
+-3.1096668022593821e-01
+-3.1104226579446320e-01
+-3.1111702199916491e-01
+-3.1119095090197646e-01
+-3.1126405456991829e-01
+-3.1133633509410646e-01
+-3.1140779457743828e-01
+-3.1147843511479867e-01
+-3.1154825876294118e-01
+-3.1161726757086772e-01
+-3.1168546360245036e-01
+-3.1175284895203359e-01
+-3.1181942571957860e-01
+-3.1188519599370401e-01
+-3.1195016184756452e-01
+-3.1201432535808532e-01
+-3.1207768864753399e-01
+-3.1214025387403127e-01
+-3.1220202318885365e-01
+-3.1226299867023272e-01
+-3.1232318236404077e-01
+-3.1238257632786154e-01
+-3.1244118266191800e-01
+-3.1249900347909199e-01
+-3.1255604090726569e-01
+-3.1261229710634425e-01
+-3.1266777424190273e-01
+-3.1272247445000867e-01
+-3.1277639982578603e-01
+-3.1282955246351413e-01
+-3.1288193446161083e-01
+-3.1293354792225414e-01
+-3.1298439495569319e-01
+-3.1303447772145787e-01
+-3.1308379840382172e-01
+-3.1313235918123000e-01
+-3.1318016219897399e-01
+-3.1322720959487027e-01
+-3.1327350349504213e-01
+-3.1331904599415544e-01
+-3.1336383918493116e-01
+-3.1340788520800877e-01
+-3.1345118627114382e-01
+-3.1349374458692991e-01
+-3.1353556233054641e-01
+-3.1357664164578836e-01
+-3.1361698467692639e-01
+-3.1365659356540004e-01
+-3.1369547045228918e-01
+-3.1373361748867334e-01
+-3.1377103686368374e-01
+-3.1380773077878810e-01
+-3.1384370142818202e-01
+-3.1387895098425012e-01
+-3.1391348161756710e-01
+-3.1394729549052824e-01
+-3.1398039475240536e-01
+-3.1401278155604401e-01
+-3.1404445810637044e-01
+-3.1407542665456611e-01
+-3.1410568944786132e-01
+-3.1413524866787496e-01
+-3.1416410646293297e-01
+-3.1419226498998609e-01
+-3.1421972644067936e-01
+-3.1424649301851076e-01
+-3.1427256693970768e-01
+-3.1429795045079245e-01
+-3.1432264580423130e-01
+-3.1434665520432520e-01
+-3.1436998077987377e-01
+-3.1439262465996715e-01
+-3.1441458907223024e-01
+-3.1443587633516085e-01
+-3.1445648876211174e-01
+-3.1447642856900621e-01
+-3.1449569791954501e-01
+-3.1451429898554734e-01
+-3.1453223397383540e-01
+-3.1454950510364066e-01
+-3.1456611461379586e-01
+-3.1458206479388073e-01
+-3.1459735794338950e-01
+-3.1461199632073805e-01
+-3.1462598211689136e-01
+-3.1463931752023455e-01
+-3.1465200475579486e-01
+-3.1466404608383308e-01
+-3.1467544376949119e-01
+-3.1468620009390363e-01
+-3.1469631734824671e-01
+-3.1470579781376562e-01
+-3.1471464370991170e-01
+-3.1472285723736154e-01
+-3.1473044062468675e-01
+-3.1473739617777347e-01
+-3.1474372621783892e-01
+-3.1474943303402086e-01
+-3.1475451886010630e-01
+-3.1475898592849377e-01
+-3.1476283651968912e-01
+-3.1476607296228365e-01
+-3.1476869758259451e-01
+-3.1477071264196893e-01
+-3.1477212036397662e-01
+-3.1477292298686799e-01
+-3.1477312282322767e-01
+-3.1477272221251390e-01
+-3.1477172347975935e-01
+-3.1477012890145140e-01
+-3.1476794074668712e-01
+-3.1476516129723536e-01
+-3.1476179285548089e-01
+-3.1475783772848465e-01
+-3.1475329824204201e-01
+-3.1474817674137173e-01
+-3.1474247557012491e-01
+-3.1473619702409739e-01
+-3.1472934337019864e-01
+-3.1472191688339074e-01
+-3.1471391987782454e-01
+-3.1470535468307664e-01
+-3.1469622363510036e-01
+-3.1468652908547118e-01
+-3.1467627339045423e-01
+-3.1466545889339576e-01
+-3.1465408791222127e-01
+-3.1464216276395657e-01
+-3.1462968576549150e-01
+-3.1461665923338711e-01
+-3.1460308548872590e-01
+-3.1458896688415938e-01
+-3.1457430579352846e-01
+-3.1455910459136660e-01
+-3.1454336564352725e-01
+-3.1452709131394552e-01
+-3.1451028395536351e-01
+-3.1449294587801385e-01
+-3.1447507938516434e-01
+-3.1445668681278710e-01
+-3.1443777055740485e-01
+-3.1441833302363681e-01
+-3.1439837659970288e-01
+-3.1437790365499324e-01
+-3.1435691655928544e-01
+-3.1433541767678824e-01
+-3.1431340936864322e-01
+-3.1429089399654453e-01
+-3.1426787391490912e-01
+-3.1424435147658114e-01
+-3.1422032905478203e-01
+-3.1419580908898909e-01
+-3.1417079403465858e-01
+-3.1414528631463012e-01
+-3.1411928828451841e-01
+-3.1409280229440317e-01
+-3.1406583071487054e-01
+-3.1403837594029904e-01
+-3.1401044036955317e-01
+-3.1398202641816514e-01
+-3.1395313651403517e-01
+-3.1392377308265373e-01
+-3.1389393851967307e-01
+-3.1386363520973692e-01
+-3.1383286554605622e-01
+-3.1380163194784733e-01
+-3.1376993684197585e-01
+-3.1373778266031799e-01
+-3.1370517184286512e-01
+-3.1367210683181690e-01
+-3.1363859004788619e-01
+-3.1360462388490434e-01
+-3.1357021073938596e-01
+-3.1353535304269736e-01
+-3.1350005325235081e-01
+-3.1346431382716639e-01
+-3.1342813721827023e-01
+-3.1339152587470648e-01
+-3.1335448224095019e-01
+-3.1331700873778845e-01
+-3.1327910778197410e-01
+-3.1324078180651371e-01
+-3.1320203327730878e-01
+-3.1316286466643212e-01
+-3.1312327844731636e-01
+-3.1308327709453160e-01
+-3.1304286308265578e-01
+-3.1300203885768269e-01
+-3.1296080684423616e-01
+-3.1291916947434983e-01
+-3.1287712922584116e-01
+-3.1283468859827457e-01
+-3.1279185008920846e-01
+-3.1274861618113609e-01
+-3.1270498935431068e-01
+-3.1266097208428029e-01
+-3.1261656683316197e-01
+-3.1257177606332603e-01
+-3.1252660225101930e-01
+-3.1248104789029729e-01
+-3.1243511547888564e-01
+-3.1238880752357939e-01
+-3.1234212653884130e-01
+-3.1229507503714793e-01
+-3.1224765549969569e-01
+-3.1219987039412245e-01
+-3.1215172219792892e-01
+-3.1210321342398822e-01
+-3.1205434659612541e-01
+-3.1200512423923071e-01
+-3.1195554887776422e-01
+-3.1190562303760017e-01
+-3.1185534923048730e-01
+-3.1180472994768371e-01
+-3.1175376768210300e-01
+-3.1170246494915271e-01
+-3.1165082428329610e-01
+-3.1159884822265677e-01
+-3.1154653931572596e-01
+-3.1149390011717687e-01
+-3.1144093317416399e-01
+-3.1138764099285487e-01
+-3.1133402606959037e-01
+-3.1128009091881792e-01
+-3.1122583809689763e-01
+-3.1117127016836116e-01
+-3.1111638969693223e-01
+-3.1106119924419234e-01
+-3.1100570137217992e-01
+-3.1094989862074868e-01
+-3.1089379351081969e-01
+-3.1083738856852439e-01
+-3.1078068635490552e-01
+-3.1072368944993273e-01
+-3.1066640043507243e-01
+-3.1060882189025518e-01
+-3.1055095639646119e-01
+-3.1049280652499284e-01
+-3.1043437481852471e-01
+-3.1037566381723442e-01
+-3.1031667608185259e-01
+-3.1025741420311792e-01
+-3.1019788077664529e-01
+-3.1013807840811541e-01
+-3.1007800971250532e-01
+-3.1001767729867069e-01
+-3.0995708369983066e-01
+-3.0989623140971900e-01
+-3.0983512297089655e-01
+-3.0977376115862321e-01
+-3.0971214882012338e-01
+-3.0965028835488884e-01
+-3.0958818093896251e-01
+-3.0952582753823010e-01
+-3.0946322883183025e-01
+-3.0940038504600598e-01
+-3.0933729637293200e-01
+-3.0927396312035499e-01
+-3.0921038570476028e-01
+-3.0914656454421824e-01
+-3.0908250002802834e-01
+-3.0901819252959839e-01
+-3.0895364241765433e-01
+-3.0888885003623107e-01
+-3.0882381572171769e-01
+-3.0875853982148926e-01
+-3.0869302271359850e-01
+-3.0862726478188263e-01
+-3.0856126641300397e-01
+-3.0849502799802281e-01
+-3.0842854992736629e-01
+-3.0836183256081423e-01
+-3.0829487622811230e-01
+-3.0822768126197264e-01
+-3.0816024803498460e-01
+-3.0809257694313663e-01
+-3.0802466838172732e-01
+-3.0795652273906715e-01
+-3.0788814040137574e-01
+-3.0781952174485044e-01
+-3.0775066711500476e-01
+-3.0768157685215280e-01
+-3.0761225131423214e-01
+-3.0754269088919517e-01
+-3.0747289596841748e-01
+-3.0740286694645269e-01
+-3.0733260422109210e-01
+-3.0726210818716199e-01
+-3.0719137920246137e-01
+-3.0712041760241349e-01
+-3.0704922372969978e-01
+-3.0697779796820740e-01
+-3.0690614071653466e-01
+-3.0683425237405276e-01
+-3.0676213334166574e-01
+-3.0668978402064395e-01
+-3.0661720478972149e-01
+-3.0654439598692640e-01
+-3.0647135794768998e-01
+-3.0639809104205057e-01
+-3.0632459567685760e-01
+-3.0625087226058928e-01
+-3.0617692119605661e-01
+-3.0610274288261946e-01
+-3.0602833771366383e-01
+-3.0595370604559197e-01
+-3.0587884822144534e-01
+-3.0580376459610037e-01
+-3.0572845556248823e-01
+-3.0565292152167051e-01
+-3.0557716287929215e-01
+-3.0550118004923538e-01
+-3.0542497344531527e-01
+-3.0534854344475315e-01
+-3.0527189038414210e-01
+-3.0519501460222959e-01
+-3.0511791648554382e-01
+-3.0504059645235854e-01
+-3.0496305491959169e-01
+-3.0488529229014810e-01
+-3.0480730896178271e-01
+-3.0472910532534347e-01
+-3.0465068174707011e-01
+-3.0457203858830140e-01
+-3.0449317622273020e-01
+-3.0441409504784644e-01
+-3.0433479546451392e-01
+-3.0425527788247814e-01
+-3.0417554272169023e-01
+-3.0409559039958195e-01
+-3.0401542128983361e-01
+-3.0393503573604486e-01
+-3.0385443408933999e-01
+-3.0377361675213016e-01
+-3.0369258414768746e-01
+-3.0361133669727647e-01
+-3.0352987481369853e-01
+-3.0344819890802699e-01
+-3.0336630937329151e-01
+-3.0328420656529576e-01
+-3.0320189083657456e-01
+-3.0311936257185662e-01
+-3.0303662219457711e-01
+-3.0295367013024710e-01
+-3.0287050679666772e-01
+-3.0278713260620249e-01
+-3.0270354796687321e-01
+-3.0261975325545237e-01
+-3.0253574883577405e-01
+-3.0245153508007866e-01
+-3.0236711239152497e-01
+-3.0228248118089746e-01
+-3.0219764186649306e-01
+-3.0211259488218956e-01
+-3.0202734066316783e-01
+-3.0194187960729635e-01
+-3.0185621206550106e-01
+-3.0177033838918421e-01
+-3.0168425897519352e-01
+-3.0159797425456197e-01
+-3.0151148465856953e-01
+-3.0142479061188593e-01
+-3.0133789253649301e-01
+-3.0125079084535239e-01
+-3.0116348591464498e-01
+-3.0107597811179354e-01
+-3.0098826781990812e-01
+-3.0090035545662103e-01
+-3.0081224144466756e-01
+-3.0072392621127841e-01
+-3.0063541018944601e-01
+-3.0054669381028087e-01
+-3.0045777746487257e-01
+-3.0036866151309410e-01
+-3.0027934632120579e-01
+-3.0018983230818208e-01
+-3.0010011991744134e-01
+-3.0001020958923841e-01
+-2.9992010174891437e-01
+-2.9982979681817407e-01
+-2.9973929520450893e-01
+-2.9964859728179533e-01
+-2.9955770342009086e-01
+-2.9946661401844549e-01
+-2.9937532951532958e-01
+-2.9928385035203209e-01
+-2.9919217696401235e-01
+-2.9910030978205115e-01
+-2.9900824923258423e-01
+-2.9891599570571642e-01
+-2.9882354957428470e-01
+-2.9873091122095008e-01
+-2.9863808107042206e-01
+-2.9854505955912519e-01
+-2.9845184712464762e-01
+-2.9835844420684621e-01
+-2.9826485124572361e-01
+-2.9817106865627602e-01
+-2.9807709681777139e-01
+-2.9798293610885795e-01
+-2.9788858693961678e-01
+-2.9779404974688656e-01
+-2.9769932496892276e-01
+-2.9760441304596541e-01
+-2.9750931441944606e-01
+-2.9741402952231460e-01
+-2.9731855874742008e-01
+-2.9722290247647254e-01
+-2.9712706110701004e-01
+-2.9703103507635698e-01
+-2.9693482482838429e-01
+-2.9683843080593009e-01
+-2.9674185345011128e-01
+-2.9664509320077426e-01
+-2.9654815047041000e-01
+-2.9645102564733405e-01
+-2.9635371912277353e-01
+-2.9625623131858830e-01
+-2.9615856267287111e-01
+-2.9606071362693676e-01
+-2.9596268463537934e-01
+-2.9586447615700395e-01
+-2.9576608863107590e-01
+-2.9566752244410704e-01
+-2.9556877797464187e-01
+-2.9546985562783967e-01
+-2.9537075584983596e-01
+-2.9527147909085899e-01
+-2.9517202580594720e-01
+-2.9507239645460753e-01
+-2.9497259149125615e-01
+-2.9487261131782261e-01
+-2.9477245630767757e-01
+-2.9467212684664684e-01
+-2.9457162338316023e-01
+-2.9447094638550553e-01
+-2.9437009631703254e-01
+-2.9426907362657168e-01
+-2.9416787876045747e-01
+-2.9406651214505192e-01
+-2.9396497417425888e-01
+-2.9386326524098350e-01
+-2.9376138577343280e-01
+-2.9365933623376483e-01
+-2.9355711708491677e-01
+-2.9345472878057727e-01
+-2.9335217176932049e-01
+-2.9324944649358825e-01
+-2.9314655336224948e-01
+-2.9304349277341468e-01
+-2.9294026513940991e-01
+-2.9283687091343535e-01
+-2.9273331055644192e-01
+-2.9262958453025428e-01
+-2.9252569329789846e-01
+-2.9242163732129584e-01
+-2.9231741702642866e-01
+-2.9221303280327748e-01
+-2.9210848504540121e-01
+-2.9200377419711160e-01
+-2.9189890073312386e-01
+-2.9179386512621464e-01
+-2.9168866783443514e-01
+-2.9158330931102899e-01
+-2.9147778999939500e-01
+-2.9137211031203702e-01
+-2.9126627065608640e-01
+-2.9116027145892526e-01
+-2.9105411318324109e-01
+-2.9094779629555068e-01
+-2.9084132126022660e-01
+-2.9073468853938611e-01
+-2.9062789859253402e-01
+-2.9052095184775872e-01
+-2.9041384871374903e-01
+-2.9030658960596567e-01
+-2.9019917497916087e-01
+-2.9009160530246048e-01
+-2.8998388104519907e-01
+-2.8987600267645569e-01
+-2.8976797066535792e-01
+-2.8965978546021187e-01
+-2.8955144747082362e-01
+-2.8944295710430751e-01
+-2.8933431479818694e-01
+-2.8922552102303017e-01
+-2.8911657625168313e-01
+-2.8900748096022438e-01
+-2.8889823562696865e-01
+-2.8878884072256972e-01
+-2.8867929666886394e-01
+-2.8856960386953845e-01
+-2.8845976274368268e-01
+-2.8834977376141785e-01
+-2.8823963740385677e-01
+-2.8812935415005547e-01
+-2.8801892447477007e-01
+-2.8790834885163902e-01
+-2.8779762772617690e-01
+-2.8768676151197081e-01
+-2.8757575062422103e-01
+-2.8746459551576242e-01
+-2.8735329666501175e-01
+-2.8724185455172652e-01
+-2.8713026965907767e-01
+-2.8701854247181974e-01
+-2.8690667346088933e-01
+-2.8679466304758316e-01
+-2.8668251164271363e-01
+-2.8657021967956359e-01
+-2.8645778763599339e-01
+-2.8634521599556134e-01
+-2.8623250524380023e-01
+-2.8611965586850313e-01
+-2.8600666835471883e-01
+-2.8589354314516763e-01
+-2.8578028065281519e-01
+-2.8566688129773443e-01
+-2.8555334555000900e-01
+-2.8543967390054731e-01
+-2.8532586683931926e-01
+-2.8521192485153041e-01
+-2.8509784842146824e-01
+-2.8498363801454313e-01
+-2.8486929405632128e-01
+-2.8475481696851157e-01
+-2.8464020720187944e-01
+-2.8452546524287953e-01
+-2.8441059158072912e-01
+-2.8429558670782090e-01
+-2.8418045111898760e-01
+-2.8406518530249547e-01
+-2.8394978969751833e-01
+-2.8383426472228668e-01
+-2.8371861080881272e-01
+-2.8360282844176182e-01
+-2.8348691811881771e-01
+-2.8337088033577884e-01
+-2.8325471558386095e-01
+-2.8313842435329695e-01
+-2.8302200710757613e-01
+-2.8290546427576435e-01
+-2.8278879628739906e-01
+-2.8267200360811867e-01
+-2.8255508673132956e-01
+-2.8243804615242901e-01
+-2.8232088237389930e-01
+-2.8220359590163197e-01
+-2.8208618722712497e-01
+-2.8196865678222127e-01
+-2.8185100498400140e-01
+-2.8173323227541563e-01
+-2.8161533915798415e-01
+-2.8149732614150152e-01
+-2.8137919372809461e-01
+-2.8126094240949917e-01
+-2.8114257267542736e-01
+-2.8102408498972153e-01
+-2.8090547979562114e-01
+-2.8078675754023813e-01
+-2.8066791870311619e-01
+-2.8054896377925925e-01
+-2.8042989326578777e-01
+-2.8031070766718391e-01
+-2.8019140749010885e-01
+-2.8007199322166643e-01
+-2.7995246530177903e-01
+-2.7983282416442401e-01
+-2.7971307027337022e-01
+-2.7959320413379063e-01
+-2.7947322625431364e-01
+-2.7935313714429882e-01
+-2.7923293731378113e-01
+-2.7911262726674180e-01
+-2.7899220745443010e-01
+-2.7887167830235060e-01
+-2.7875104025119285e-01
+-2.7863029380900084e-01
+-2.7850943950285828e-01
+-2.7838847785294502e-01
+-2.7826740936161448e-01
+-2.7814623452834730e-01
+-2.7802495382927356e-01
+-2.7790356770640079e-01
+-2.7778207660156784e-01
+-2.7766048099665258e-01
+-2.7753878140834265e-01
+-2.7741697835448387e-01
+-2.7729507235001355e-01
+-2.7717306390856805e-01
+-2.7705095353360165e-01
+-2.7692874167957832e-01
+-2.7680642878693545e-01
+-2.7668401531572079e-01
+-2.7656150177660183e-01
+-2.7643888868871719e-01
+-2.7631617657096197e-01
+-2.7619336594165744e-01
+-2.7607045731735363e-01
+-2.7594745117472241e-01
+-2.7582434795439253e-01
+-2.7570114810177609e-01
+-2.7557785211522506e-01
+-2.7545446052165146e-01
+-2.7533097384686145e-01
+-2.7520739260836358e-01
+-2.7508371732137610e-01
+-2.7495994848667782e-01
+-2.7483608656495051e-01
+-2.7471213201074896e-01
+-2.7458808530208012e-01
+-2.7446394695383547e-01
+-2.7433971748471281e-01
+-2.7421539741776502e-01
+-2.7409098728017345e-01
+-2.7396648759490139e-01
+-2.7384189883940147e-01
+-2.7371722146581273e-01
+-2.7359245593547404e-01
+-2.7346760275707549e-01
+-2.7334266245475780e-01
+-2.7321763555316408e-01
+-2.7309252257762295e-01
+-2.7296732405359175e-01
+-2.7284204048434196e-01
+-2.7271667233628982e-01
+-2.7259122007390124e-01
+-2.7246568418821260e-01
+-2.7234006519637005e-01
+-2.7221436361806495e-01
+-2.7208857998434294e-01
+-2.7196271483304668e-01
+-2.7183676869257511e-01
+-2.7171074203816864e-01
+-2.7158463532745131e-01
+-2.7145844903367300e-01
+-2.7133218367620937e-01
+-2.7120583978340068e-01
+-2.7107941788840267e-01
+-2.7095291853237735e-01
+-2.7082634225580371e-01
+-2.7069968955557999e-01
+-2.7057296088398236e-01
+-2.7044615669658850e-01
+-2.7031927750316392e-01
+-2.7019232384664993e-01
+-2.7006529626981168e-01
+-2.6993819530991503e-01
+-2.6981102150254049e-01
+-2.6968377536788596e-01
+-2.6955645737709355e-01
+-2.6942906799227828e-01
+-2.6930160770235523e-01
+-2.6917407704411650e-01
+-2.6904647655964736e-01
+-2.6891880678999802e-01
+-2.6879106827508797e-01
+-2.6866326155129044e-01
+-2.6853538711133634e-01
+-2.6840744542033673e-01
+-2.6827943695190715e-01
+-2.6815136223120378e-01
+-2.6802322180260890e-01
+-2.6789501621112227e-01
+-2.6776674600276895e-01
+-2.6763841172384967e-01
+-2.6751001389434970e-01
+-2.6738155298455257e-01
+-2.6725302946087431e-01
+-2.6712444382650374e-01
+-2.6699579662546602e-01
+-2.6686708840433832e-01
+-2.6673831971066275e-01
+-2.6660949109275484e-01
+-2.6648060309156563e-01
+-2.6635165619994539e-01
+-2.6622265089242347e-01
+-2.6609358765705388e-01
+-2.6596446702774273e-01
+-2.6583528954859353e-01
+-2.6570605576806772e-01
+-2.6557676624278653e-01
+-2.6544742152934592e-01
+-2.6531802214442357e-01
+-2.6518856855839629e-01
+-2.6505906124340733e-01
+-2.6492950072352550e-01
+-2.6479988755884981e-01
+-2.6467022230884935e-01
+-2.6454050552197367e-01
+-2.6441073774246215e-01
+-2.6428091950406551e-01
+-2.6415105130172256e-01
+-2.6402113362201524e-01
+-2.6389116697015519e-01
+-2.6376115188909827e-01
+-2.6363108892701842e-01
+-2.6350097864118649e-01
+-2.6337082159977332e-01
+-2.6324061836778834e-01
+-2.6311036945374516e-01
+-2.6298007532551504e-01
+-2.6284973646001086e-01
+-2.6271935340076258e-01
+-2.6258892671961787e-01
+-2.6245845698460962e-01
+-2.6232794474784532e-01
+-2.6219739055787400e-01
+-2.6206679494795165e-01
+-2.6193615841821261e-01
+-2.6180548146547739e-01
+-2.6167476461024153e-01
+-2.6154400840269637e-01
+-2.6141321339591728e-01
+-2.6128238015248217e-01
+-2.6115150924221148e-01
+-2.6102060122812898e-01
+-2.6088965662028213e-01
+-2.6075867590555907e-01
+-2.6062765958291978e-01
+-2.6049660819859660e-01
+-2.6036552231087773e-01
+-2.6023440248812663e-01
+-2.6010324932072620e-01
+-2.5997206340023887e-01
+-2.5984084523294054e-01
+-2.5970959521313397e-01
+-2.5957831375214996e-01
+-2.5944700163575185e-01
+-2.5931565994327860e-01
+-2.5918428981970854e-01
+-2.5905289284580879e-01
+-2.5892147080378974e-01
+-2.5879002544129576e-01
+-2.5865855835382473e-01
+-2.5852707109827472e-01
+-2.5839556526525753e-01
+-2.5826404252262458e-01
+-2.5813250455017589e-01
+-2.5800095302585496e-01
+-2.5786938962463191e-01
+-2.5773781601978202e-01
+-2.5760623384357850e-01
+-2.5747464469501091e-01
+-2.5734305017924697e-01
+-2.5721145195122469e-01
+-2.5707985169045172e-01
+-2.5694825107898500e-01
+-2.5681665180537921e-01
+-2.5668505556074950e-01
+-2.5655346401338597e-01
+-2.5642187877414713e-01
+-2.5629030144696685e-01
+-2.5615873367170633e-01
+-2.5602717713895856e-01
+-2.5589563354415684e-01
+-2.5576410458158438e-01
+-2.5563259194472060e-01
+-2.5550109732227388e-01
+-2.5536962235434674e-01
+-2.5523816865715865e-01
+-2.5510673786070975e-01
+-2.5497533165485403e-01
+-2.5484395174737978e-01
+-2.5471259984390876e-01
+-2.5458127764268418e-01
+-2.5444998684132136e-01
+-2.5431872911401171e-01
+-2.5418750609955998e-01
+-2.5405631943660179e-01
+-2.5392517079599364e-01
+-2.5379406187731013e-01
+-2.5366299438365197e-01
+-2.5353197003175021e-01
+-2.5340099054605841e-01
+-2.5327005763905081e-01
+-2.5313917296098382e-01
+-2.5300833814431051e-01
+-2.5287755484330715e-01
+-2.5274682476869881e-01
+-2.5261614964154167e-01
+-2.5248553118521122e-01
+-2.5235497112602878e-01
+-2.5222447118968910e-01
+-2.5209403306379147e-01
+-2.5196365840080004e-01
+-2.5183334885714376e-01
+-2.5170310612984659e-01
+-2.5157293193872010e-01
+-2.5144282800707224e-01
+-2.5131279606995005e-01
+-2.5118283786687218e-01
+-2.5105295511940767e-01
+-2.5092314949679162e-01
+-2.5079342266051691e-01
+-2.5066377630040221e-01
+-2.5053421215137278e-01
+-2.5040473195346330e-01
+-2.5027533744641900e-01
+-2.5014603036974958e-01
+-2.5001681245964774e-01
+-2.4988768540944564e-01
+-2.4975865088842789e-01
+-2.4962971057709940e-01
+-2.4950086621190232e-01
+-2.4937211954845262e-01
+-2.4924347234045377e-01
+-2.4911492633369287e-01
+-2.4898648327316819e-01
+-2.4885814488154373e-01
+-2.4872991284299750e-01
+-2.4860178884064579e-01
+-2.4847377459626066e-01
+-2.4834587187041776e-01
+-2.4821808242635968e-01
+-2.4809040802682211e-01
+-2.4796285043471364e-01
+-2.4783541140377383e-01
+-2.4770809263170518e-01
+-2.4758089579767190e-01
+-2.4745382260354515e-01
+-2.4732687481857582e-01
+-2.4720005422575511e-01
+-2.4707336260103985e-01
+-2.4694680170709815e-01
+-2.4682037330512446e-01
+-2.4669407912813762e-01
+-2.4656792087962709e-01
+-2.4644190026662990e-01
+-2.4631601904011197e-01
+-2.4619027897885734e-01
+-2.4606468186306096e-01
+-2.4593922947309468e-01
+-2.4581392359014392e-01
+-2.4568876598044181e-01
+-2.4556375835957434e-01
+-2.4543890243416161e-01
+-2.4531419994036824e-01
+-2.4518965266770923e-01
+-2.4506526241215121e-01
+-2.4494103096192840e-01
+-2.4481696009673956e-01
+-2.4469305159458724e-01
+-2.4456930720673592e-01
+-2.4444572866746872e-01
+-2.4432231771683410e-01
+-2.4419907612612782e-01
+-2.4407600567915869e-01
+-2.4395310816520535e-01
+-2.4383038538912136e-01
+-2.4370783915973460e-01
+-2.4358547125978847e-01
+-2.4346328342089091e-01
+-2.4334127737105066e-01
+-2.4321945487417115e-01
+-2.4309781773477634e-01
+-2.4297636776070650e-01
+-2.4285510676103075e-01
+-2.4273403654603140e-01
+-2.4261315892018789e-01
+-2.4249247564441126e-01
+-2.4237198846310706e-01
+-2.4225169913412992e-01
+-2.4213160946008105e-01
+-2.4201172125434345e-01
+-2.4189203633149522e-01
+-2.4177255650732768e-01
+-2.4165328359788807e-01
+-2.4153421939099032e-01
+-2.4141536564080998e-01
+-2.4129672410395683e-01
+-2.4117829658190046e-01
+-2.4106008490816985e-01
+-2.4094209091551655e-01
+-2.4082431642028904e-01
+-2.4070676323275056e-01
+-2.4058943315912623e-01
+-2.4047232798764326e-01
+-2.4035544950329341e-01
+-2.4023879949931859e-01
+-2.4012237978497558e-01
+-2.4000619217307495e-01
+-2.3989023849580926e-01
+-2.3977452060901128e-01
+-2.3965904036727070e-01
+-2.3954379957281902e-01
+-2.3942879998959293e-01
+-2.3931404338853687e-01
+-2.3919953158985272e-01
+-2.3908526643567019e-01
+-2.3897124977090692e-01
+-2.3885748344758703e-01
+-2.3874396932022973e-01
+-2.3863070922055774e-01
+-2.3851770492903035e-01
+-2.3840495822123853e-01
+-2.3829247090928979e-01
+-2.3818024485192693e-01
+-2.3806828191152279e-01
+-2.3795658394354111e-01
+-2.3784515279840887e-01
+-2.3773399032284107e-01
+-2.3762309832953865e-01
+-2.3751247861647895e-01
+-2.3740213299260210e-01
+-2.3729206330825495e-01
+-2.3718227142518769e-01
+-2.3707275920706886e-01
+-2.3696352852043942e-01
+-2.3685458123254413e-01
+-2.3674591918218946e-01
+-2.3663754416966118e-01
+-2.3652945799641192e-01
+-2.3642166250969893e-01
+-2.3631415959370181e-01
+-2.3620695113240539e-01
+-2.3610003899231113e-01
+-2.3599342503229317e-01
+-2.3588711110680952e-01
+-2.3578109904790820e-01
+-2.3567539068254800e-01
+-2.3556998785208888e-01
+-2.3546489243072569e-01
+-2.3536010629844709e-01
+-2.3525563133590632e-01
+-2.3515146942421797e-01
+-2.3504762244389105e-01
+-2.3494409224735052e-01
+-2.3484088066376471e-01
+-2.3473798952707223e-01
+-2.3463542070848944e-01
+-2.3453317609819269e-01
+-2.3443125758769778e-01
+-2.3432966706987049e-01
+-2.3422840643876003e-01
+-2.3412747757379862e-01
+-2.3402688231611463e-01
+-2.3392662250237811e-01
+-2.3382669999428182e-01
+-2.3372711668946070e-01
+-2.3362787448940608e-01
+-2.3352897529562355e-01
+-2.3343042100978381e-01
+-2.3333221353084216e-01
+-2.3323435472540427e-01
+-2.3313684644398444e-01
+-2.3303969054544596e-01
+-2.3294288892426035e-01
+-2.3284644348615763e-01
+-2.3275035613983677e-01
+-2.3265462879986287e-01
+-2.3255926338231925e-01
+-2.3246426178077953e-01
+-2.3236962585400106e-01
+-2.3227535746042499e-01
+-2.3218145848980615e-01
+-2.3208793086040011e-01
+-2.3199477649253386e-01
+-2.3190199730686206e-01
+-2.3180959522475941e-01
+-2.3171757216115266e-01
+-2.3162592999468773e-01
+-2.3153467059368626e-01
+-2.3144379584113522e-01
+-2.3135330765819573e-01
+-2.3126320797347952e-01
+-2.3117349871698434e-01
+-2.3108418182021717e-01
+-2.3099525921467212e-01
+-2.3090673280769500e-01
+-2.3081860448387848e-01
+-2.3073087613041643e-01
+-2.3064354965880926e-01
+-2.3055662699470156e-01
+-2.3047011006809032e-01
+-2.3038400082582891e-01
+-2.3029830122097414e-01
+-2.3021301319033469e-01
+-2.3012813862195025e-01
+-2.3004367939645684e-01
+-2.2995963742040665e-01
+-2.2987601464246432e-01
+-2.2979281301606611e-01
+-2.2971003449038135e-01
+-2.2962768101039605e-01
+-2.2954575451989143e-01
+-2.2946425694186098e-01
+-2.2938319018760589e-01
+-2.2930255617219836e-01
+-2.2922235682693806e-01
+-2.2914259408936533e-01
+-2.2906326990759032e-01
+-2.2898438625910217e-01
+-2.2890594512743531e-01
+-2.2882794846394591e-01
+-2.2875039816360793e-01
+-2.2867329611846746e-01
+-2.2859664426125464e-01
+-2.2852044456641038e-01
+-2.2844469901058914e-01
+-2.2836940956287888e-01
+-2.2829457818820220e-01
+-2.2822020684725869e-01
+-2.2814629747171944e-01
+-2.2807285198376342e-01
+-2.2799987231786698e-01
+-2.2792736044475062e-01
+-2.2785531834314918e-01
+-2.2778374798991752e-01
+-2.2771265135758359e-01
+-2.2764203041857450e-01
+-2.2757188712840712e-01
+-2.2750222342443957e-01
+-2.2743304124646099e-01
+-2.2736434256088170e-01
+-2.2729612935149954e-01
+-2.2722840360290542e-01
+-2.2716116729704089e-01
+-2.2709442241560585e-01
+-2.2702817093476546e-01
+-2.2696241480978524e-01
+-2.2689715599264720e-01
+-2.2683239644732398e-01
+-2.2676813815932018e-01
+-2.2670438311764177e-01
+-2.2664113331484997e-01
+-2.2657839074733349e-01
+-2.2651615741057265e-01
+-2.2645443527435691e-01
+-2.2639322629178465e-01
+-2.2633253242233409e-01
+-2.2627235566143103e-01
+-2.2621269801910820e-01
+-2.2615356150327331e-01
+-2.2609494811151559e-01
+-2.2603685984004598e-01
+-2.2597929867761682e-01
+-2.2592226659721668e-01
+-2.2586576557150431e-01
+-2.2580979758926584e-01
+-2.2575436465782492e-01
+-2.2569946878695468e-01
+-2.2564511199152948e-01
+-2.2559129629031965e-01
+-2.2553802369799106e-01
+-2.2548529619530297e-01
+-2.2543311574997194e-01
+-2.2538148374316230e-01
+-2.2533039943146868e-01
+-2.2527986159045299e-01
+-2.2522986899185876e-01
+-2.2518042040068492e-01
+-2.2513151457968086e-01
+-2.2508315027353171e-01
+-2.2503532620528580e-01
+-2.2498804109791723e-01
+-2.2494129370359675e-01
+-2.2489508279530895e-01
+-2.2484940714300938e-01
+-2.2480426549844085e-01
+-2.2475965660504565e-01
+-2.2471557920336929e-01
+-2.2467203202599020e-01
+-2.2462901380281691e-01
+-2.2458652326655873e-01
+-2.2454455915712743e-01
+-2.2450312021473087e-01
+-2.2446220518856572e-01
+-2.2442181283943541e-01
+-2.2438194192565608e-01
+-2.2434259117171543e-01
+-2.2430375927635099e-01
+-2.2426544494158956e-01
+-2.2422764690445471e-01
+-2.2419036391685732e-01
+-2.2415359472699953e-01
+-2.2411733807112511e-01
+-2.2408159268169139e-01
+-2.2404635728320194e-01
+-2.2401163058364409e-01
+-2.2397741128816209e-01
+-2.2394369811335335e-01
+-2.2391048979120157e-01
+-2.2387778505369754e-01
+-2.2384558263069240e-01
+-2.2381388125013399e-01
+-2.2378267963688120e-01
+-2.2375197649925613e-01
+-2.2372177053737605e-01
+-2.2369206045385881e-01
+-2.2366284496525118e-01
+-2.2363412279096373e-01
+-2.2360589265039582e-01
+-2.2357815326431504e-01
+-2.2355090335252054e-01
+-2.2352414162173723e-01
+-2.2349786676116010e-01
+-2.2347207745879316e-01
+-2.2344677241895489e-01
+-2.2342195035913076e-01
+-2.2339760999554692e-01
+-2.2337375003823376e-01
+-2.2335036919369344e-01
+-2.2332746616391949e-01
+-2.2330503963477877e-01
+-2.2328308828698962e-01
+-2.2326161080843357e-01
+-2.2324060590605221e-01
+-2.2322007228865334e-01
+-2.2320000865842887e-01
+-2.2318041370856312e-01
+-2.2316128613037120e-01
+-2.2314262461038675e-01
+-2.2312442783090988e-01
+-2.2310669447392348e-01
+-2.2308942322743905e-01
+-2.2307261278198995e-01
+-2.2305626182763774e-01
+-2.2304036905589197e-01
+-2.2302493315792410e-01
+-2.2300995281916922e-01
+-2.2299542671199901e-01
+-2.2298135350593434e-01
+-2.2296773187460758e-01
+-2.2295456049829140e-01
+-2.2294183805716250e-01
+-2.2292956323639046e-01
+-2.2291773472546944e-01
+-2.2290635121011221e-01
+-2.2289541134878380e-01
+-2.2288491378510292e-01
+-2.2287485716937325e-01
+-2.2286524018867337e-01
+-2.2285606154038373e-01
+-2.2284731991106765e-01
+-2.2283901396002884e-01
+-2.2283114234123938e-01
+-2.2282370371137861e-01
+-2.2281669673191482e-01
+-2.2281012006386297e-01
+-2.2280397236898880e-01
+-2.2279825230967709e-01
+-2.2279295854750880e-01
+-2.2278808974469047e-01
+-2.2278364456330332e-01
+-2.2277962166353060e-01
+-2.2277601970015001e-01
+-2.2277283732551950e-01
+-2.2277007318892578e-01
+-2.2276772593293251e-01
+-2.2276579419824125e-01
+-2.2276427663643936e-01
+-2.2276317191740932e-01
+-2.2276247871076935e-01
+-2.2276219566355354e-01
+-2.2276232140095287e-01
+-2.2276285454827102e-01
+-2.2276379374984256e-01
+-2.2276513766047662e-01
+-2.2276688493267832e-01
+-2.2276903421049155e-01
+-2.2277158413447043e-01
+-2.2277453334160632e-01
+-2.2277788046045721e-01
+-2.2278162411728572e-01
+-2.2278576294526808e-01
+-2.2279029558999777e-01
+-2.2279522069701668e-01
+-2.2280053690355070e-01
+-2.2280624283846465e-01
+-2.2281233712897483e-01
+-2.2281881839829931e-01
+-2.2282568526684138e-01
+-2.2283293635587942e-01
+-2.2284057029645951e-01
+-2.2284858572231570e-01
+-2.2285698126383935e-01
+-2.2286575554328963e-01
+-2.2287490718053779e-01
+-2.2288443479577130e-01
+-2.2289433701053582e-01
+-2.2290461244539797e-01
+-2.2291525971536799e-01
+-2.2292627742968080e-01
+-2.2293766419727387e-01
+-2.2294941863688428e-01
+-2.2296153937297966e-01
+-2.2297402502736868e-01
+-2.2298687421077451e-01
+-2.2300008552924724e-01
+-2.2301365758807867e-01
+-2.2302758899246097e-01
+-2.2304187834676364e-01
+-2.2305652425769398e-01
+-2.2307152533714736e-01
+-2.2308688019642087e-01
+-2.2310258743959030e-01
+-2.2311864566293810e-01
+-2.2313505346165385e-01
+-2.2315180943338353e-01
+-2.2316891217700910e-01
+-2.2318636029107861e-01
+-2.2320415237720476e-01
+-2.2322228703751132e-01
+-2.2324076287062702e-01
+-2.2325957846584632e-01
+-2.2327873240969542e-01
+-2.2329822329079049e-01
+-2.2331804970273500e-01
+-2.2333821023872563e-01
+-2.2335870348948875e-01
+-2.2337952804308239e-01
+-2.2340068248648740e-01
+-2.2342216540633031e-01
+-2.2344397538866259e-01
+-2.2346611101738847e-01
+-2.2348857086822127e-01
+-2.2351135351299922e-01
+-2.2353445752660836e-01
+-2.2355788149740807e-01
+-2.2358162401589299e-01
+-2.2360568366673184e-01
+-2.2363005902393754e-01
+-2.2365474865923315e-01
+-2.2367975114029925e-01
+-2.2370506503021545e-01
+-2.2373068889199943e-01
+-2.2375662130344112e-01
+-2.2378286085249602e-01
+-2.2380940612293071e-01
+-2.2383625567456994e-01
+-2.2386340805671340e-01
+-2.2389086182281565e-01
+-2.2391861554471124e-01
+-2.2394666779766906e-01
+-2.2397501715126053e-01
+-2.2400366216424217e-01
+-2.2403260139310399e-01
+-2.2406183339368149e-01
+-2.2409135672124819e-01
+-2.2412116993056216e-01
+-2.2415127158238357e-01
+-2.2418166024163502e-01
+-2.2421233447038316e-01
+-2.2424329281589195e-01
+-2.2427453381842399e-01
+-2.2430605602065615e-01
+-2.2433785797778333e-01
+-2.2436993824723511e-01
+-2.2440229538136866e-01
+-2.2443492792265915e-01
+-2.2446783441148696e-01
+-2.2450101339193840e-01
+-2.2453446341317884e-01
+-2.2456818302330334e-01
+-2.2460217076288549e-01
+-2.2463642516646531e-01
+-2.2467094476845018e-01
+-2.2470572810999320e-01
+-2.2474077373472859e-01
+-2.2477608018317050e-01
+-2.2481164598624645e-01
+-2.2484746967167887e-01
+-2.2488354977076952e-01
+-2.2491988482437761e-01
+-2.2495647337357538e-01
+-2.2499331394890368e-01
+-2.2503040506711139e-01
+-2.2506774524384263e-01
+-2.2510533300712379e-01
+-2.2514316689471614e-01
+-2.2518124544233570e-01
+-2.2521956717435540e-01
+-2.2525813060923472e-01
+-2.2529693426449984e-01
+-2.2533597665724175e-01
+-2.2537525630367769e-01
+-2.2541477172192437e-01
+-2.2545452143611153e-01
+-2.2549450397023629e-01
+-2.2553471784138160e-01
+-2.2557516155736307e-01
+-2.2561583362467183e-01
+-2.2565673255450003e-01
+-2.2569785686180249e-01
+-2.2573920506047052e-01
+-2.2578077566195295e-01
+-2.2582256717596444e-01
+-2.2586457811071514e-01
+-2.2590680697132859e-01
+-2.2594925226131143e-01
+-2.2599191248329101e-01
+-2.2603478613926636e-01
+-2.2607787173028643e-01
+-2.2612116775795335e-01
+-2.2616467272515828e-01
+-2.2620838513371613e-01
+-2.2625230348043460e-01
+-2.2629642625762103e-01
+-2.2634075195675052e-01
+-2.2638527907113529e-01
+-2.2643000609452898e-01
+-2.2647493152125078e-01
+-2.2652005385208371e-01
+-2.2656537158896087e-01
+-2.2661088322539608e-01
+-2.2665658723451104e-01
+-2.2670248208547403e-01
+-2.2674856625972309e-01
+-2.2679483825793592e-01
+-2.2684129658071372e-01
+-2.2688793971313975e-01
+-2.2693476612610022e-01
+-2.2698177428999147e-01
+-2.2702896268371578e-01
+-2.2707632979027467e-01
+-2.2712387409171894e-01
+-2.2717159406926291e-01
+-2.2721948820313881e-01
+-2.2726755497033374e-01
+-2.2731579284074685e-01
+-2.2736420028222762e-01
+-2.2741277576315833e-01
+-2.2746151775338480e-01
+-2.2751042472210334e-01
+-2.2755949514106852e-01
+-2.2760872748440217e-01
+-2.2765812022426152e-01
+-2.2770767182149906e-01
+-2.2775738073015203e-01
+-2.2780724540547642e-01
+-2.2785726431374595e-01
+-2.2790743592407894e-01
+-2.2795775870291379e-01
+-2.2800823111093199e-01
+-2.2805885160689834e-01
+-2.2810961864625798e-01
+-2.2816053067964051e-01
+-2.2821158615651152e-01
+-2.2826278353063820e-01
+-2.2831412126001874e-01
+-2.2836559780133386e-01
+-2.2841721160510478e-01
+-2.2846896111780621e-01
+-2.2852084478543516e-01
+-2.2857286105623553e-01
+-2.2862500837851832e-01
+-2.2867728519923924e-01
+-2.2872968996337101e-01
+-2.2878222111466442e-01
+-2.2883487709569400e-01
+-2.2888765634776198e-01
+-2.2894055731118521e-01
+-2.2899357842721779e-01
+-2.2904671813810695e-01
+-2.2909997488423658e-01
+-2.2915334709504709e-01
+-2.2920683319287133e-01
+-2.2926043160257817e-01
+-2.2931414076891354e-01
+-2.2936795914297867e-01
+-2.2942188516713113e-01
+-2.2947591725837213e-01
+-2.2953005382797875e-01
+-2.2958429329609439e-01
+-2.2963863409971555e-01
+-2.2969307467637060e-01
+-2.2974761345451516e-01
+-2.2980224885295819e-01
+-2.2985697928937068e-01
+-2.2991180318417692e-01
+-2.2996671895918219e-01
+-2.3002172503531640e-01
+-2.3007681983323722e-01
+-2.3013200177284401e-01
+-2.3018726927116703e-01
+-2.3024262073816315e-01
+-2.3029805458153391e-01
+-2.3035356921172659e-01
+-2.3040916304528974e-01
+-2.3046483449841873e-01
+-2.3052058198337427e-01
+-2.3057640390814541e-01
+-2.3063229867979737e-01
+-2.3068826470788489e-01
+-2.3074430040327315e-01
+-2.3080040417471345e-01
+-2.3085657442291657e-01
+-2.3091280954483753e-01
+-2.3096910793729927e-01
+-2.3102546799926660e-01
+-2.3108188812936256e-01
+-2.3113836672705071e-01
+-2.3119490219445918e-01
+-2.3125149293294414e-01
+-2.3130813733781788e-01
+-2.3136483379753089e-01
+-2.3142158069992425e-01
+-2.3147837644165167e-01
+-2.3153521942517175e-01
+-2.3159210804982100e-01
+-2.3164904069924167e-01
+-2.3170601575009314e-01
+-2.3176303158091235e-01
+-2.3182008657987060e-01
+-2.3187717913651903e-01
+-2.3193430763973935e-01
+-2.3199147047813615e-01
+-2.3204866603915555e-01
+-2.3210589270213502e-01
+-2.3216314883680125e-01
+-2.3222043281199317e-01
+-2.3227774300475929e-01
+-2.3233507779780754e-01
+-2.3239243557221134e-01
+-2.3244981470285242e-01
+-2.3250721356138673e-01
+-2.3256463052011528e-01
+-2.3262206395675200e-01
+-2.3267951224946401e-01
+-2.3273697376814159e-01
+-2.3279444686609529e-01
+-2.3285192989398645e-01
+-2.3290942121659169e-01
+-2.3296691921680446e-01
+-2.3302442227665326e-01
+-2.3308192876175235e-01
+-2.3313943702506390e-01
+-2.3319694541891020e-01
+-2.3325445229963471e-01
+-2.3331195602477944e-01
+-2.3336945495202616e-01
+-2.3342694744269574e-01
+-2.3348443185822132e-01
+-2.3354190655624077e-01
+-2.3359936988716962e-01
+-2.3365682019959436e-01
+-2.3371425584341879e-01
+-2.3377167517061431e-01
+-2.3382907653223939e-01
+-2.3388645827705035e-01
+-2.3394381875176876e-01
+-2.3400115630272447e-01
+-2.3405846928041710e-01
+-2.3411575603671803e-01
+-2.3417301491850817e-01
+-2.3423024425506209e-01
+-2.3428744237031307e-01
+-2.3434460759730300e-01
+-2.3440173829186337e-01
+-2.3445883281189142e-01
+-2.3451588950040234e-01
+-2.3457290668035952e-01
+-2.3462988267296431e-01
+-2.3468681580939937e-01
+-2.3474370442884948e-01
+-2.3480054686925181e-01
+-2.3485734146367468e-01
+-2.3491408654229248e-01
+-2.3497078043370373e-01
+-2.3502742146318659e-01
+-2.3508400795435400e-01
+-2.3514053823114539e-01
+-2.3519701061982215e-01
+-2.3525342344605704e-01
+-2.3530977503194439e-01
+-2.3536606369490534e-01
+-2.3542228775141491e-01
+-2.3547844552359901e-01
+-2.3553453533826479e-01
+-2.3559055552019409e-01
+-2.3564650438317744e-01
+-2.3570238023493301e-01
+-2.3575818138337806e-01
+-2.3581390614129544e-01
+-2.3586955282212316e-01
+-2.3592511973937361e-01
+-2.3598060520838415e-01
+-2.3603600754377721e-01
+-2.3609132505222871e-01
+-2.3614655602906295e-01
+-2.3620169876839481e-01
+-2.3625675157616965e-01
+-2.3631171276876253e-01
+-2.3636658066073213e-01
+-2.3642135355501659e-01
+-2.3647602974792814e-01
+-2.3653060753460770e-01
+-2.3658508520879293e-01
+-2.3663946106307068e-01
+-2.3669373339121252e-01
+-2.3674790049193692e-01
+-2.3680196066389256e-01
+-2.3685591220329846e-01
+-2.3690975340317105e-01
+-2.3696348255516619e-01
+-2.3701709794727929e-01
+-2.3707059786403170e-01
+-2.3712398058973150e-01
+-2.3717724441639437e-01
+-2.3723038763981555e-01
+-2.3728340855197808e-01
+-2.3733630542955170e-01
+-2.3738907654366312e-01
+-2.3744172016871104e-01
+-2.3749423459020061e-01
+-2.3754661809466909e-01
+-2.3759886896448507e-01
+-2.3765098547589508e-01
+-2.3770296590369644e-01
+-2.3775480852296738e-01
+-2.3780651160902458e-01
+-2.3785807343621279e-01
+-2.3790949227802999e-01
+-2.3796076640704339e-01
+-2.3801189409301177e-01
+-2.3806287359528380e-01
+-2.3811370316907687e-01
+-2.3816438108265520e-01
+-2.3821490564473263e-01
+-2.3826527516958984e-01
+-2.3831548789258822e-01
+-2.3836554191603626e-01
+-2.3841543536164461e-01
+-2.3846516712715329e-01
+-2.3851473689287167e-01
+-2.3856414439556792e-01
+-2.3861338960483464e-01
+-2.3866247263000592e-01
+-2.3871139356910215e-01
+-2.3876015244609480e-01
+-2.3880874925938209e-01
+-2.3885718401950431e-01
+-2.3890545677440500e-01
+-2.3895356757914801e-01
+-2.3900151647740953e-01
+-2.3904930349266007e-01
+-2.3909692864655338e-01
+-2.3914439196567341e-01
+-2.3919169348178146e-01
+-2.3923883322715941e-01
+-2.3928581123649756e-01
+-2.3933262754602050e-01
+-2.3937928219165908e-01
+-2.3942577520715277e-01
+-2.3947210662549148e-01
+-2.3951827647921439e-01
+-2.3956428479925529e-01
+-2.3961013161628961e-01
+-2.3965581696219163e-01
+-2.3970134087099185e-01
+-2.3974670337700033e-01
+-2.3979190451418247e-01
+-2.3983694431611949e-01
+-2.3988182281646411e-01
+-2.3992654004923836e-01
+-2.3997109604872968e-01
+-2.4001549084925605e-01
+-2.4005972448494681e-01
+-2.4010379698990261e-01
+-2.4014770839804245e-01
+-2.4019145874250644e-01
+-2.4023504805631513e-01
+-2.4027847637151015e-01
+-2.4032174371818243e-01
+-2.4036485012649153e-01
+-2.4040779563350223e-01
+-2.4045058028414859e-01
+-2.4049320412304889e-01
+-2.4053566718467692e-01
+-2.4057796949661889e-01
+-2.4062011108701858e-01
+-2.4066209198811966e-01
+-2.4070391223383306e-01
+-2.4074557185905063e-01
+-2.4078707090195559e-01
+-2.4082840940149469e-01
+-2.4086958739374573e-01
+-2.4091060490893809e-01
+-2.4095146197689218e-01
+-2.4099215863503295e-01
+-2.4103269492981505e-01
+-2.4107307090721730e-01
+-2.4111328659903536e-01
+-2.4115334202701047e-01
+-2.4119323721487773e-01
+-2.4123297220097908e-01
+-2.4127254702975842e-01
+-2.4131196174328098e-01
+-2.4135121637449378e-01
+-2.4139031095429583e-01
+-2.4142924551697439e-01
+-2.4146802010386961e-01
+-2.4150663475718559e-01
+-2.4154508951602266e-01
+-2.4158338441561780e-01
+-2.4162151949082911e-01
+-2.4165949477372209e-01
+-2.4169731029431171e-01
+-2.4173496608424480e-01
+-2.4177246218674020e-01
+-2.4180979865007843e-01
+-2.4184697551863857e-01
+-2.4188399282129175e-01
+-2.4192085058320670e-01
+-2.4195754883539364e-01
+-2.4199408762162647e-01
+-2.4203046698730482e-01
+-2.4206668697270961e-01
+-2.4210274761148814e-01
+-2.4213864893711484e-01
+-2.4217439098619598e-01
+-2.4220997379777101e-01
+-2.4224539741121937e-01
+-2.4228066186755270e-01
+-2.4231576720856191e-01
+-2.4235071347368825e-01
+-2.4238550069253484e-01
+-2.4242012889226119e-01
+-2.4245459810565165e-01
+-2.4248890837833148e-01
+-2.4252305975771907e-01
+-2.4255705228849103e-01
+-2.4259088601160636e-01
+-2.4262456096737203e-01
+-2.4265807718888152e-01
+-2.4269143470343668e-01
+-2.4272463354008825e-01
+-2.4275767374254306e-01
+-2.4279055536149183e-01
+-2.4282327844475024e-01
+-2.4285584302738494e-01
+-2.4288824914110432e-01
+-2.4292049682035244e-01
+-2.4295258610605397e-01
+-2.4298451704009716e-01
+-2.4301628966213307e-01
+-2.4304790400864379e-01
+-2.4307936011621536e-01
+-2.4311065802626272e-01
+-2.4314179778426176e-01
+-2.4317277943530141e-01
+-2.4320360301970603e-01
+-2.4323426857547631e-01
+-2.4326477613934952e-01
+-2.4329512574222556e-01
+-2.4332531741343003e-01
+-2.4335535118998591e-01
+-2.4338522712815941e-01
+-2.4341494528702121e-01
+-2.4344450571349313e-01
+-2.4347390843667649e-01
+-2.4350315348456478e-01
+-2.4353224088979783e-01
+-2.4356117068908428e-01
+-2.4358994292055008e-01
+-2.4361855763301907e-01
+-2.4364701488088245e-01
+-2.4367531471553322e-01
+-2.4370345717373226e-01
+-2.4373144228798097e-01
+-2.4375927009166734e-01
+-2.4378694062040737e-01
+-2.4381445391036966e-01
+-2.4384181000560851e-01
+-2.4386900896218086e-01
+-2.4389605083644395e-01
+-2.4392293566955192e-01
+-2.4394966348881877e-01
+-2.4397623432243778e-01
+-2.4400264821088888e-01
+-2.4402890520131726e-01
+-2.4405500534058405e-01
+-2.4408094867354493e-01
+-2.4410673524448329e-01
+-2.4413236509611280e-01
+-2.4415783826670603e-01
+-2.4418315479385630e-01
+-2.4420831471668575e-01
+-2.4423331807671150e-01
+-2.4425816491587515e-01
+-2.4428285527929433e-01
+-2.4430738921510470e-01
+-2.4433176677124815e-01
+-2.4435598799201710e-01
+-2.4438005291967779e-01
+-2.4440396159527672e-01
+-2.4442771405337133e-01
+-2.4445131032647144e-01
+-2.4447475045389241e-01
+-2.4449803449443200e-01
+-2.4452116251024178e-01
+-2.4454413454914148e-01
+-2.4456695063509049e-01
+-2.4458961079062416e-01
+-2.4461211505579747e-01
+-2.4463446348799253e-01
+-2.4465665614436155e-01
+-2.4467869307142434e-01
+-2.4470057430947606e-01
+-2.4472229989921043e-01
+-2.4474386988362909e-01
+-2.4476528430655983e-01
+-2.4478654321080615e-01
+-2.4480764663594187e-01
+-2.4482859462104917e-01
+-2.4484938721033433e-01
+-2.4487002445683698e-01
+-2.4489050641416207e-01
+-2.4491083312670908e-01
+-2.4493100462938869e-01
+-2.4495102095776142e-01
+-2.4497088215858018e-01
+-2.4499058828549403e-01
+-2.4501013939095040e-01
+-2.4502953551962031e-01
+-2.4504877671346237e-01
+-2.4506786301366348e-01
+-2.4508679445883741e-01
+-2.4510557108719663e-01
+-2.4512419294206916e-01
+-2.4514266007598531e-01
+-2.4516097254232536e-01
+-2.4517913038970626e-01
+-2.4519713366162446e-01
+-2.4521498240163517e-01
+-2.4523267665619236e-01
+-2.4525021647363102e-01
+-2.4526760190104030e-01
+-2.4528483297751236e-01
+-2.4530190973921398e-01
+-2.4531883222742909e-01
+-2.4533560050024866e-01
+-2.4535221461920528e-01
+-2.4536867463572423e-01
+-2.4538498058207103e-01
+-2.4540113248889830e-01
+-2.4541713040000004e-01
+-2.4543297437386846e-01
+-2.4544866446876409e-01
+-2.4546420072987590e-01
+-2.4547958319368696e-01
+-2.4549481189856887e-01
+-2.4550988689545380e-01
+-2.4552480824019476e-01
+-2.4553957598574941e-01
+-2.4555419017481075e-01
+-2.4556865084793628e-01
+-2.4558295805052277e-01
+-2.4559711183744770e-01
+-2.4561111226444191e-01
+-2.4562495937738424e-01
+-2.4563865321065312e-01
+-2.4565219379896036e-01
+-2.4566558118902362e-01
+-2.4567881543594161e-01
+-2.4569189659519328e-01
+-2.4570482472324406e-01
+-2.4571759987700406e-01
+-2.4573022210863429e-01
+-2.4574269145282698e-01
+-2.4575500794040364e-01
+-2.4576717161023218e-01
+-2.4577918251769471e-01
+-2.4579104072024380e-01
+-2.4580274627437684e-01
+-2.4581429923541401e-01
+-2.4582569965756434e-01
+-2.4583694757990204e-01
+-2.4584804303053009e-01
+-2.4585898604148154e-01
+-2.4586977667348861e-01
+-2.4588041499951893e-01
+-2.4589090108579884e-01
+-2.4590123497245339e-01
+-2.4591141669347100e-01
+-2.4592144628937984e-01
+-2.4593132381471544e-01
+-2.4594104932569655e-01
+-2.4595062287132799e-01
+-2.4596004449145759e-01
+-2.4596931422635723e-01
+-2.4597843213026185e-01
+-2.4598739826799271e-01
+-2.4599621270230515e-01
+-2.4600487547845939e-01
+-2.4601338663398287e-01
+-2.4602174620884087e-01
+-2.4602995425269722e-01
+-2.4603801081770027e-01
+-2.4604591595802913e-01
+-2.4605366973234302e-01
+-2.4606127219978396e-01
+-2.4606872341177180e-01
+-2.4607602340950693e-01
+-2.4608317223380749e-01
+-2.4609016992955912e-01
+-2.4609701654487084e-01
+-2.4610371212932361e-01
+-2.4611025674270676e-01
+-2.4611665044958778e-01
+-2.4612289331048529e-01
+-2.4612898536859532e-01
+-2.4613492666263645e-01
+-2.4614071723512140e-01
+-2.4614635713740207e-01
+-2.4615184642226060e-01
+-2.4615718514702131e-01
+-2.4616237337523397e-01
+-2.4616741116986188e-01
+-2.4617229857556591e-01
+-2.4617703562196719e-01
+-2.4618162234147856e-01
+-2.4618605879234381e-01
+-2.4619034504537188e-01
+-2.4619448116836029e-01
+-2.4619846721524077e-01
+-2.4620230323617653e-01
+-2.4620598927772711e-01
+-2.4620952537749013e-01
+-2.4621291157202904e-01
+-2.4621614791112142e-01
+-2.4621923446348201e-01
+-2.4622217129876361e-01
+-2.4622495847612075e-01
+-2.4622759604572073e-01
+-2.4623008405692720e-01
+-2.4623242255423688e-01
+-2.4623461157971280e-01
+-2.4623665117820084e-01
+-2.4623854140723181e-01
+-2.4624028232804032e-01
+-2.4624187400189790e-01
+-2.4624331649005377e-01
+-2.4624460985361332e-01
+-2.4624575414269426e-01
+-2.4624674939093455e-01
+-2.4624759563163406e-01
+-2.4624829291629582e-01
+-2.4624884131268909e-01
+-2.4624924088851130e-01
+-2.4624949170508142e-01
+-2.4624959382037881e-01
+-2.4624954729027912e-01
+-2.4624935216036750e-01
+-2.4624900847317391e-01
+-2.4624851627454383e-01
+-2.4624787561914482e-01
+-2.4624708656323160e-01
+-2.4624614916675278e-01
+-2.4624506349538239e-01
+-2.4624382961464544e-01
+-2.4624244757564084e-01
+-2.4624091741604479e-01
+-2.4623923917453103e-01
+-2.4623741290359549e-01
+-2.4623543866339831e-01
+-2.4623331651558888e-01
+-2.4623104652866573e-01
+-2.4622862877333479e-01
+-2.4622606331102562e-01
+-2.4622335017688238e-01
+-2.4622048940171945e-01
+-2.4621748103158572e-01
+-2.4621432513730038e-01
+-2.4621102179157003e-01
+-2.4620757105717395e-01
+-2.4620397298726482e-01
+-2.4620022763434360e-01
+-2.4619633504776278e-01
+-2.4619229527508771e-01
+-2.4618810836545033e-01
+-2.4618377437615327e-01
+-2.4617929336725394e-01
+-2.4617466540086630e-01
+-2.4616989054502683e-01
+-2.4616496886876157e-01
+-2.4615990042872130e-01
+-2.4615468526047968e-01
+-2.4614932339830453e-01
+-2.4614381489268622e-01
+-2.4613815981051002e-01
+-2.4613235821948784e-01
+-2.4612641018770931e-01
+-2.4612031578352142e-01
+-2.4611407507119928e-01
+-2.4610768809193487e-01
+-2.4610115487895648e-01
+-2.4609447547383057e-01
+-2.4608764994379922e-01
+-2.4608067836108671e-01
+-2.4607356079577672e-01
+-2.4606629731409788e-01
+-2.4605888798130401e-01
+-2.4605133284640099e-01
+-2.4604363194127959e-01
+-2.4603578529988254e-01
+-2.4602779298771046e-01
+-2.4601965509009674e-01
+-2.4601137168781703e-01
+-2.4600294283275231e-01
+-2.4599436856633367e-01
+-2.4598564893416705e-01
+-2.4597678399528980e-01
+-2.4596777381149973e-01
+-2.4595861844369857e-01
+-2.4594931795106911e-01
+-2.4593987239274195e-01
+-2.4593028182988069e-01
+-2.4592054632587287e-01
+-2.4591066594363237e-01
+-2.4590064073837503e-01
+-2.4589047076030049e-01
+-2.4588015606092323e-01
+-2.4586969670005346e-01
+-2.4585909274069773e-01
+-2.4584834424594906e-01
+-2.4583745127900228e-01
+-2.4582641390309762e-01
+-2.4581523217766854e-01
+-2.4580390615472628e-01
+-2.4579243588564442e-01
+-2.4578082142638266e-01
+-2.4576906283813565e-01
+-2.4575716018292182e-01
+-2.4574511352874284e-01
+-2.4573292294770871e-01
+-2.4572058850926112e-01
+-2.4570811026468375e-01
+-2.4569548825807852e-01
+-2.4568272253660017e-01
+-2.4566981315817116e-01
+-2.4565676018322039e-01
+-2.4564356368061518e-01
+-2.4563022373618115e-01
+-2.4561674043632564e-01
+-2.4560311381810429e-01
+-2.4558934385974160e-01
+-2.4557543052883460e-01
+-2.4556137369695974e-01
+-2.4554717316732691e-01
+-2.4553282874594448e-01
+-2.4551834026821870e-01
+-2.4550370758174592e-01
+-2.4548893052388115e-01
+-2.4547400889380705e-01
+-2.4545894248182781e-01
+-2.4544373109192116e-01
+-2.4542837455699110e-01
+-2.4541287271349785e-01
+-2.4539722539596479e-01
+-2.4538143243652485e-01
+-2.4536549366600732e-01
+-2.4534940889969495e-01
+-2.4533317794131276e-01
+-2.4531680059658478e-01
+-2.4530027668793752e-01
+-2.4528360604502164e-01
+-2.4526678849779476e-01
+-2.4524982387749023e-01
+-2.4523271201555544e-01
+-2.4521545273369083e-01
+-2.4519804583220206e-01
+-2.4518049110890891e-01
+-2.4516278837849326e-01
+-2.4514493747749219e-01
+-2.4512693824336712e-01
+-2.4510879050642634e-01
+-2.4509049409142891e-01
+-2.4507204882104830e-01
+-2.4505345450381716e-01
+-2.4503471094179746e-01
+-2.4501581794208321e-01
+-2.4499677533277406e-01
+-2.4497758294729116e-01
+-2.4495824061626906e-01
+-2.4493874816400804e-01
+-2.4491910541371906e-01
+-2.4489931218254288e-01
+-2.4487936827945267e-01
+-2.4485927351304188e-01
+-2.4483902769616003e-01
+-2.4481863064507442e-01
+-2.4479808217853730e-01
+-2.4477738213465330e-01
+-2.4475653036068887e-01
+-2.4473552669428295e-01
+-2.4471437093165224e-01
+-2.4469306285786710e-01
+-2.4467160227106025e-01
+-2.4464998900094415e-01
+-2.4462822288180500e-01
+-2.4460630374649653e-01
+-2.4458423142588268e-01
+-2.4456200574955603e-01
+-2.4453962652884986e-01
+-2.4451709355973852e-01
+-2.4449440664006217e-01
+-2.4447156558775140e-01
+-2.4444857023067104e-01
+-2.4442542039718965e-01
+-2.4440211591785116e-01
+-2.4437865662374406e-01
+-2.4435504233725108e-01
+-2.4433127285892647e-01
+-2.4430734798610204e-01
+-2.4428326752795004e-01
+-2.4425903131105270e-01
+-2.4423463916328125e-01
+-2.4421009091173584e-01
+-2.4418538638283291e-01
+-2.4416052540117020e-01
+-2.4413550777609344e-01
+-2.4411033330900678e-01
+-2.4408500180423431e-01
+-2.4405951308050827e-01
+-2.4403386696076648e-01
+-2.4400806326902033e-01
+-2.4398210183221938e-01
+-2.4395598247755620e-01
+-2.4392970502170411e-01
+-2.4390326926527622e-01
+-2.4387667500813642e-01
+-2.4384992206343051e-01
+-2.4382301025642172e-01
+-2.4379593941286565e-01
+-2.4376870935948511e-01
+-2.4374131992349674e-01
+-2.4371377092766891e-01
+-2.4368606217295777e-01
+-2.4365819345352951e-01
+-2.4363016457191583e-01
+-2.4360197535387054e-01
+-2.4357362562903820e-01
+-2.4354511522536965e-01
+-2.4351644396815011e-01
+-2.4348761168169192e-01
+-2.4345861817604839e-01
+-2.4342946324770623e-01
+-2.4340014669403093e-01
+-2.4337066832689927e-01
+-2.4334102796635360e-01
+-2.4331122543436093e-01
+-2.4328126056269597e-01
+-2.4325113318625918e-01
+-2.4322084312893028e-01
+-2.4319039018287952e-01
+-2.4315977413473661e-01
+-2.4312899478708633e-01
+-2.4309805196913695e-01
+-2.4306694551228597e-01
+-2.4303567524168429e-01
+-2.4300424097629056e-01
+-2.4297264253375786e-01
+-2.4294087972162015e-01
+-2.4290895234141485e-01
+-2.4287686019661073e-01
+-2.4284460310197573e-01
+-2.4281218087606760e-01
+-2.4277959333981977e-01
+-2.4274684032147761e-01
+-2.4271392165045677e-01
+-2.4268083714315919e-01
+-2.4264758659342217e-01
+-2.4261416979328665e-01
+-2.4258058654773321e-01
+-2.4254683667510971e-01
+-2.4251291999518021e-01
+-2.4247883633707853e-01
+-2.4244458553567844e-01
+-2.4241016741946203e-01
+-2.4237558178011784e-01
+-2.4234082839620988e-01
+-2.4230590705847460e-01
+-2.4227081759644511e-01
+-2.4223555984720893e-01
+-2.4220013364196022e-01
+-2.4216453880125244e-01
+-2.4212877514383957e-01
+-2.4209284247218060e-01
+-2.4205674057120272e-01
+-2.4202046922757911e-01
+-2.4198402825897627e-01
+-2.4194741750292498e-01
+-2.4191063679403985e-01
+-2.4187368594773098e-01
+-2.4183656477222096e-01
+-2.4179927307432161e-01
+-2.4176181065637284e-01
+-2.4172417731978890e-01
+-2.4168637287272077e-01
+-2.4164839713614197e-01
+-2.4161024993227007e-01
+-2.4157193107967112e-01
+-2.4153344039282384e-01
+-2.4149477768534644e-01
+-2.4145594276372295e-01
+-2.4141693542963819e-01
+-2.4137775548557461e-01
+-2.4133840274000337e-01
+-2.4129887700368247e-01
+-2.4125917809172306e-01
+-2.4121930583453341e-01
+-2.4117926006567003e-01
+-2.4113904060195857e-01
+-2.4109864722720512e-01
+-2.4105807972191953e-01
+-2.4101733788687696e-01
+-2.4097642154655155e-01
+-2.4093533052680122e-01
+-2.4089406465471960e-01
+-2.4085262375824421e-01
+-2.4081100765997604e-01
+-2.4076921614735267e-01
+-2.4072724899344358e-01
+-2.4068510598387738e-01
+-2.4064278695046251e-01
+-2.4060029173540665e-01
+-2.4055762016866819e-01
+-2.4051477205496707e-01
+-2.4047174719581335e-01
+-2.4042854539185118e-01
+-2.4038516644268673e-01
+-2.4034161014851904e-01
+-2.4029787631948196e-01
+-2.4025396477292024e-01
+-2.4020987532685753e-01
+-2.4016560780330351e-01
+-2.4012116202592851e-01
+-2.4007653781086255e-01
+-2.4003173494557076e-01
+-2.3998675321068480e-01
+-2.3994159240135060e-01
+-2.3989625234413084e-01
+-2.3985073286940459e-01
+-2.3980503379932436e-01
+-2.3975915494561520e-01
+-2.3971309611853686e-01
+-2.3966685711763858e-01
+-2.3962043773432576e-01
+-2.3957383776221369e-01
+-2.3952705701309485e-01
+-2.3948009530681569e-01
+-2.3943295246266846e-01
+-2.3938562829776969e-01
+-2.3933812262860679e-01
+-2.3929043526390464e-01
+-2.3924256599496665e-01
+-2.3919451461094557e-01
+-2.3914628091328108e-01
+-2.3909786471969835e-01
+-2.3904926584903197e-01
+-2.3900048412085109e-01
+-2.3895151935529255e-01
+-2.3890237136957157e-01
+-2.3885303995866897e-01
+-2.3880352490717877e-01
+-2.3875382600455125e-01
+-2.3870394306114889e-01
+-2.3865387589278261e-01
+-2.3860362431680004e-01
+-2.3855318815426188e-01
+-2.3850256722643651e-01
+-2.3845176134234125e-01
+-2.3840077029411694e-01
+-2.3834959387315086e-01
+-2.3829823187992671e-01
+-2.3824668412241273e-01
+-2.3819495040956140e-01
+-2.3814303055698635e-01
+-2.3809092438350579e-01
+-2.3803863170424688e-01
+-2.3798615231819850e-01
+-2.3793348601985773e-01
+-2.3788063260606931e-01
+-2.3782759187958005e-01
+-2.3777436364418245e-01
+-2.3772094771414795e-01
+-2.3766734391885252e-01
+-2.3761355208713839e-01
+-2.3755957201849612e-01
+-2.3750540348719279e-01
+-2.3745104627018948e-01
+-2.3739650017514341e-01
+-2.3734176502526455e-01
+-2.3728684064305766e-01
+-2.3723172684742544e-01
+-2.3717642345616347e-01
+-2.3712093027695985e-01
+-2.3706524709153581e-01
+-2.3700937367766814e-01
+-2.3695330982719148e-01
+-2.3689705535306893e-01
+-2.3684061007044266e-01
+-2.3678397380392327e-01
+-2.3672714638659140e-01
+-2.3667012764665638e-01
+-2.3661291736613727e-01
+-2.3655551530252100e-01
+-2.3649792122422819e-01
+-2.3644013495410787e-01
+-2.3638215633141899e-01
+-2.3632398518607217e-01
+-2.3626562132282636e-01
+-2.3620706454211055e-01
+-2.3614831464004432e-01
+-2.3608937140604722e-01
+-2.3603023462948697e-01
+-2.3597090411194097e-01
+-2.3591137966637174e-01
+-2.3585166110663530e-01
+-2.3579174825148569e-01
+-2.3573164092236037e-01
+-2.3567133893324857e-01
+-2.3561084206039087e-01
+-2.3555015006802221e-01
+-2.3548926273731724e-01
+-2.3542817989748802e-01
+-2.3536690138590421e-01
+-2.3530542702454607e-01
+-2.3524375661031213e-01
+-2.3518188993776645e-01
+-2.3511982680237489e-01
+-2.3505756700047833e-01
+-2.3499511032882239e-01
+-2.3493245658849987e-01
+-2.3486960558308495e-01
+-2.3480655711853535e-01
+-2.3474331101365592e-01
+-2.3467986709146788e-01
+-2.3461622516408723e-01
+-2.3455238501148035e-01
+-2.3448834640779351e-01
+-2.3442410914009423e-01
+-2.3435967301751276e-01
+-2.3429503785152980e-01
+-2.3423020345969547e-01
+-2.3416516966570872e-01
+-2.3409993629062045e-01
+-2.3403450312501142e-01
+-2.3396886994106073e-01
+-2.3390303651553640e-01
+-2.3383700265269206e-01
+-2.3377076816629422e-01
+-2.3370433286993253e-01
+-2.3363769657675365e-01
+-2.3357085909966568e-01
+-2.3350382024247410e-01
+-2.3343657979285845e-01
+-2.3336913753702815e-01
+-2.3330149326770525e-01
+-2.3323364678449041e-01
+-2.3316559788866570e-01
+-2.3309734639739080e-01
+-2.3302889213778985e-01
+-2.3296023493011878e-01
+-2.3289137455365741e-01
+-2.3282231077271873e-01
+-2.3275304336269587e-01
+-2.3268357213521995e-01
+-2.3261389690921225e-01
+-2.3254401750346049e-01
+-2.3247393373655625e-01
+-2.3240364542613220e-01
+-2.3233315236550531e-01
+-2.3226245432125495e-01
+-2.3219155106110881e-01
+-2.3212044238365950e-01
+-2.3204912810772585e-01
+-2.3197760805188475e-01
+-2.3190588203135387e-01
+-2.3183394986003122e-01
+-2.3176181134292811e-01
+-2.3168946625498799e-01
+-2.3161691436482865e-01
+-2.3154415545658957e-01
+-2.3147118934455579e-01
+-2.3139801584634975e-01
+-2.3132463477775031e-01
+-2.3125104595243220e-01
+-2.3117724918189389e-01
+-2.3110324425235432e-01
+-2.3102903093271027e-01
+-2.3095460899587081e-01
+-2.3087997824338080e-01
+-2.3080513848815873e-01
+-2.3073008954396981e-01
+-2.3065483122765407e-01
+-2.3057936335658002e-01
+-2.3050368573264240e-01
+-2.3042779812649652e-01
+-2.3035170030554636e-01
+-2.3027539205637301e-01
+-2.3019887318848073e-01
+-2.3012214351324614e-01
+-2.3004520284984389e-01
+-2.2996805102299542e-01
+-2.2989068785038555e-01
+-2.2981311310130423e-01
+-2.2973532652481349e-01
+-2.2965732788487059e-01
+-2.2957911700161893e-01
+-2.2950069370822632e-01
+-2.2942205782777669e-01
+-2.2934320916210027e-01
+-2.2926414751001276e-01
+-2.2918487266128101e-01
+-2.2910538439442454e-01
+-2.2902568248804289e-01
+-2.2894576673287603e-01
+-2.2886563692867590e-01
+-2.2878529287777241e-01
+-2.2870473439982719e-01
+-2.2862396132202484e-01
+-2.2854297345960578e-01
+-2.2846177058104250e-01
+-2.2838035244336399e-01
+-2.2829871881965969e-01
+-2.2821686951859760e-01
+-2.2813480435357833e-01
+-2.2805252313906005e-01
+-2.2797002569089164e-01
+-2.2788731182302788e-01
+-2.2780438132017308e-01
+-2.2772123394433300e-01
+-2.2763786946126277e-01
+-2.2755428766997665e-01
+-2.2747048838460693e-01
+-2.2738647141989435e-01
+-2.2730223659295143e-01
+-2.2721778372138235e-01
+-2.2713311260436839e-01
+-2.2704822299864061e-01
+-2.2696311465559191e-01
+-2.2687778735690722e-01
+-2.2679224092527883e-01
+-2.2670647518557557e-01
+-2.2662048995163053e-01
+-2.2653428502834555e-01
+-2.2644786021713847e-01
+-2.2636121529428377e-01
+-2.2627435002404070e-01
+-2.2618726417864657e-01
+-2.2609995756530896e-01
+-2.2601243000059296e-01
+-2.2592468129659318e-01
+-2.2583671125469612e-01
+-2.2574851967446272e-01
+-2.2566010634668729e-01
+-2.2557147104982972e-01
+-2.2548261356203464e-01
+-2.2539353367319739e-01
+-2.2530423118310056e-01
+-2.2521470589272216e-01
+-2.2512495761092013e-01
+-2.2503498615044079e-01
+-2.2494479131681661e-01
+-2.2485437288307894e-01
+-2.2476373061305510e-01
+-2.2467286428288974e-01
+-2.2458177369995871e-01
+-2.2449045867643949e-01
+-2.2439891902449152e-01
+-2.2430715455627626e-01
+-2.2421516508222120e-01
+-2.2412295038184876e-01
+-2.2403051020754053e-01
+-2.2393784431546329e-01
+-2.2384495250386888e-01
+-2.2375183459284090e-01
+-2.2365849040002667e-01
+-2.2356491973085746e-01
+-2.2347112238708999e-01
+-2.2337709816257934e-01
+-2.2328284683041805e-01
+-2.2318836816045004e-01
+-2.2309366193460439e-01
+-2.2299872795338757e-01
+-2.2290356601919453e-01
+-2.2280817594171237e-01
+-2.2271255753729446e-01
+-2.2261671061819699e-01
+-2.2252063495686034e-01
+-2.2242433030409023e-01
+-2.2232779641985170e-01
+-2.2223103311104475e-01
+-2.2213404019907132e-01
+-2.2203681749850096e-01
+-2.2193936480509871e-01
+-2.2184168191125481e-01
+-2.2174376860311013e-01
+-2.2164562465685092e-01
+-2.2154724984836141e-01
+-2.2144864396745589e-01
+-2.2134980681722491e-01
+-2.2125073820096910e-01
+-2.2115143791941019e-01
+-2.2105190577178138e-01
+-2.2095214155430248e-01
+-2.2085214504785186e-01
+-2.2075191602827560e-01
+-2.2065145427448241e-01
+-2.2055075957440287e-01
+-2.2044983171771326e-01
+-2.2034867050741774e-01
+-2.2024727576881054e-01
+-2.2014564732733297e-01
+-2.2004378496473440e-01
+-2.1994168841935974e-01
+-2.1983935743277649e-01
+-2.1973679180001790e-01
+-2.1963399134768322e-01
+-2.1953095589961824e-01
+-2.1942768526259393e-01
+-2.1932417923752442e-01
+-2.1922043761476967e-01
+-2.1911646015284544e-01
+-2.1901224660441562e-01
+-2.1890779674150196e-01
+-2.1880311036990499e-01
+-2.1869818729889839e-01
+-2.1859302734113423e-01
+-2.1848763031276369e-01
+-2.1838199602616781e-01
+-2.1827612425127635e-01
+-2.1817001473181463e-01
+-2.1806366721895601e-01
+-2.1795708150927423e-01
+-2.1785025741547445e-01
+-2.1774319474936116e-01
+-2.1763589331994185e-01
+-2.1752835293544287e-01
+-2.1742057338676812e-01
+-2.1731255443338440e-01
+-2.1720429583215148e-01
+-2.1709579736097606e-01
+-2.1698705882047389e-01
+-2.1687808001284795e-01
+-2.1676886074626722e-01
+-2.1665940083271668e-01
+-2.1654970007750896e-01
+-2.1643975824565667e-01
+-2.1632957508709422e-01
+-2.1621915036271747e-01
+-2.1610848387018722e-01
+-2.1599757541477635e-01
+-2.1588642480448422e-01
+-2.1577503185253866e-01
+-2.1566339637168672e-01
+-2.1555151814556309e-01
+-2.1543939692508723e-01
+-2.1532703246178084e-01
+-2.1521442453682582e-01
+-2.1510157295127610e-01
+-2.1498847750786795e-01
+-2.1487513801799091e-01
+-2.1476155429637517e-01
+-2.1464772614472735e-01
+-2.1453365331945587e-01
+-2.1441933556717294e-01
+-2.1430477265292214e-01
+-2.1418996437836227e-01
+-2.1407491054945504e-01
+-2.1395961097354529e-01
+-2.1384406545960841e-01
+-2.1372827381410833e-01
+-2.1361223581031680e-01
+-2.1349595119826342e-01
+-2.1337941973295574e-01
+-2.1326264120616784e-01
+-2.1314561542464144e-01
+-2.1302834219388050e-01
+-2.1291082131485994e-01
+-2.1279305258738945e-01
+-2.1267503579855923e-01
+-2.1255677070919823e-01
+-2.1243825707739469e-01
+-2.1231949468117034e-01
+-2.1220048332289945e-01
+-2.1208122280627278e-01
+-2.1196171293347035e-01
+-2.1184195350555382e-01
+-2.1172194431917032e-01
+-2.1160168514065308e-01
+-2.1148117572334912e-01
+-2.1136041582897383e-01
+-2.1123940525174137e-01
+-2.1111814379361518e-01
+-2.1099663125888607e-01
+-2.1087486745695005e-01
+-2.1075285219704618e-01
+-2.1063058525966127e-01
+-2.1050806638871483e-01
+-2.1038529532819913e-01
+-2.1026227185910354e-01
+-2.1013899579053108e-01
+-2.1001546693143433e-01
+-2.0989168508484746e-01
+-2.0976765005113024e-01
+-2.0964336162344099e-01
+-2.0951881956624135e-01
+-2.0939402363676388e-01
+-2.0926897360117799e-01
+-2.0914366924596176e-01
+-2.0901811036057411e-01
+-2.0889229674459914e-01
+-2.0876622821107207e-01
+-2.0863990457159029e-01
+-2.0851332560153246e-01
+-2.0838649104755580e-01
+-2.0825940066010915e-01
+-2.0813205422564485e-01
+-2.0800445154737007e-01
+-2.0787659242867693e-01
+-2.0774847667353111e-01
+-2.0762010408594722e-01
+-2.0749147445356700e-01
+-2.0736258752541969e-01
+-2.0723344304543173e-01
+-2.0710404078216443e-01
+-2.0697438053827572e-01
+-2.0684446211899671e-01
+-2.0671428533166825e-01
+-2.0658384998536392e-01
+-2.0645315588325167e-01
+-2.0632220278037969e-01
+-2.0619099040830427e-01
+-2.0605951851137247e-01
+-2.0592778689145128e-01
+-2.0579579536622875e-01
+-2.0566354374706056e-01
+-2.0553103182972618e-01
+-2.0539825940727913e-01
+-2.0526522625742330e-01
+-2.0513193213576281e-01
+-2.0499837679712216e-01
+-2.0486456001435441e-01
+-2.0473048157582383e-01
+-2.0459614127262032e-01
+-2.0446153891535909e-01
+-2.0432667432456633e-01
+-2.0419154730663663e-01
+-2.0405615760232859e-01
+-2.0392050493339259e-01
+-2.0378458904656271e-01
+-2.0364840975333420e-01
+-2.0351196687529913e-01
+-2.0337526022361052e-01
+-2.0323828959375198e-01
+-2.0310105477846171e-01
+-2.0296355554383527e-01
+-2.0282579163205655e-01
+-2.0268776278849676e-01
+-2.0254946879571659e-01
+-2.0241090945601037e-01
+-2.0227208457302190e-01
+-2.0213299395628823e-01
+-2.0199363741706358e-01
+-2.0185401474644346e-01
+-2.0171412568107311e-01
+-2.0157396994889110e-01
+-2.0143354730819624e-01
+-2.0129285756494797e-01
+-2.0115190052909093e-01
+-2.0101067600790401e-01
+-2.0086918380617011e-01
+-2.0072742372389946e-01
+-2.0058539551694946e-01
+-2.0044309891664125e-01
+-2.0030053366417958e-01
+-2.0015769955284704e-01
+-2.0001459639243163e-01
+-1.9987122399037460e-01
+-1.9972758214755051e-01
+-1.9958367066330479e-01
+-1.9943948931424643e-01
+-1.9929503783983202e-01
+-1.9915031597747626e-01
+-1.9900532349688430e-01
+-1.9886006019921815e-01
+-1.9871452588727553e-01
+-1.9856872036770185e-01
+-1.9842264344934785e-01
+-1.9827629493127974e-01
+-1.9812967456034991e-01
+-1.9798278206598255e-01
+-1.9783561719353779e-01
+-1.9768817973585823e-01
+-1.9754046949456472e-01
+-1.9739248627640238e-01
+-1.9724422989690266e-01
+-1.9709570017028016e-01
+-1.9694689686040284e-01
+-1.9679781968002774e-01
+-1.9664846834592856e-01
+-1.9649884264289239e-01
+-1.9634894239678174e-01
+-1.9619876742907558e-01
+-1.9604831753367094e-01
+-1.9589759249480587e-01
+-1.9574659208896206e-01
+-1.9559531606870087e-01
+-1.9544376418200440e-01
+-1.9529193618759477e-01
+-1.9513983186339134e-01
+-1.9498745099082415e-01
+-1.9483479339180793e-01
+-1.9468185893108794e-01
+-1.9452864750967913e-01
+-1.9437515941409741e-01
+-1.9422139517397724e-01
+-1.9406735532431635e-01
+-1.9391304040771692e-01
+-1.9375845096977443e-01
+-1.9360358756306553e-01
+-1.9344845076210132e-01
+-1.9329304114585233e-01
+-1.9313735926451153e-01
+-1.9298140561445581e-01
+-1.9282518068773868e-01
+-1.9266868501141371e-01
+-1.9251191915108401e-01
+-1.9235488367507322e-01
+-1.9219757915686442e-01
+-1.9204000617345535e-01
+-1.9188216529219573e-01
+-1.9172405701859119e-01
+-1.9156568183472539e-01
+-1.9140704024458277e-01
+-1.9124813282625727e-01
+-1.9108896017379323e-01
+-1.9092952286719403e-01
+-1.9076982145885965e-01
+-1.9060985649787957e-01
+-1.9044962852043720e-01
+-1.9028913804784015e-01
+-1.9012838560258175e-01
+-1.8996737172894934e-01
+-1.8980609698628270e-01
+-1.8964456193742332e-01
+-1.8948276716419840e-01
+-1.8932071325623481e-01
+-1.8915840078457818e-01
+-1.8899583025286129e-01
+-1.8883300215010493e-01
+-1.8866991699484092e-01
+-1.8850657536512475e-01
+-1.8834297784654461e-01
+-1.8817912502563622e-01
+-1.8801501748999766e-01
+-1.8785065582348451e-01
+-1.8768604055474733e-01
+-1.8752117217305217e-01
+-1.8735605117662615e-01
+-1.8719067812895088e-01
+-1.8702505362098132e-01
+-1.8685917824261711e-01
+-1.8669305257847829e-01
+-1.8652667721208080e-01
+-1.8636005270378789e-01
+-1.8619317956452272e-01
+-1.8602605830011876e-01
+-1.8585868945000159e-01
+-1.8569107359543183e-01
+-1.8552321132073279e-01
+-1.8535510321206924e-01
+-1.8518674985706884e-01
+-1.8501815183707279e-01
+-1.8484930968592719e-01
+-1.8468022391690617e-01
+-1.8451089505377838e-01
+-1.8434132366096356e-01
+-1.8417151031317100e-01
+-1.8400145559501579e-01
+-1.8383116011262018e-01
+-1.8366062447406151e-01
+-1.8348984923935510e-01
+-1.8331883490590284e-01
+-1.8314758197128392e-01
+-1.8297609099532616e-01
+-1.8280436258631125e-01
+-1.8263239735086703e-01
+-1.8246019587122722e-01
+-1.8228775871867248e-01
+-1.8211508645922153e-01
+-1.8194217963638917e-01
+-1.8176903878817702e-01
+-1.8159566446284167e-01
+-1.8142205723194305e-01
+-1.8124821767090277e-01
+-1.8107414636749519e-01
+-1.8089984392611885e-01
+-1.8072531094975794e-01
+-1.8055054799438031e-01
+-1.8037555557793011e-01
+-1.8020033422311169e-01
+-1.8002488449703799e-01
+-1.7984920698819545e-01
+-1.7967330228960340e-01
+-1.7949717101213822e-01
+-1.7932081377166867e-01
+-1.7914423115517067e-01
+-1.7896742367919449e-01
+-1.7879039185086620e-01
+-1.7861313621338723e-01
+-1.7843565736082259e-01
+-1.7825795589202986e-01
+-1.7808003241693371e-01
+-1.7790188755485864e-01
+-1.7772352191685209e-01
+-1.7754493603964880e-01
+-1.7736613042308952e-01
+-1.7718710558514464e-01
+-1.7700786212606384e-01
+-1.7682840066961958e-01
+-1.7664872183191133e-01
+-1.7646882620905727e-01
+-1.7628871439391244e-01
+-1.7610838695633210e-01
+-1.7592784443210879e-01
+-1.7574708735631214e-01
+-1.7556611629601979e-01
+-1.7538493184651263e-01
+-1.7520353460610893e-01
+-1.7502192518881296e-01
+-1.7484010421696888e-01
+-1.7465807229795235e-01
+-1.7447582996636740e-01
+-1.7429337773550027e-01
+-1.7411071614585880e-01
+-1.7392784580954204e-01
+-1.7374476735051542e-01
+-1.7356148138431393e-01
+-1.7337798851332045e-01
+-1.7319428933743225e-01
+-1.7301038442356373e-01
+-1.7282627430841474e-01
+-1.7264195953263312e-01
+-1.7245744068147040e-01
+-1.7227271836458488e-01
+-1.7208779319265680e-01
+-1.7190266577885721e-01
+-1.7171733673735276e-01
+-1.7153180666556850e-01
+-1.7134607611390149e-01
+-1.7116014562523685e-01
+-1.7097401576283811e-01
+-1.7078768712245063e-01
+-1.7060116030407135e-01
+-1.7041443592953498e-01
+-1.7022751464155761e-01
+-1.7004039707557975e-01
+-1.6985308378432379e-01
+-1.6966557527370435e-01
+-1.6947787206658935e-01
+-1.6928997477600541e-01
+-1.6910188404457432e-01
+-1.6891360050867624e-01
+-1.6872512478583626e-01
+-1.6853645749007276e-01
+-1.6834759920639564e-01
+-1.6815855047105502e-01
+-1.6796931181808744e-01
+-1.6777988383081091e-01
+-1.6759026714161088e-01
+-1.6740046238398182e-01
+-1.6721047017776552e-01
+-1.6702029113486164e-01
+-1.6682992586041970e-01
+-1.6663937492160827e-01
+-1.6644863887286215e-01
+-1.6625771828177544e-01
+-1.6606661375531295e-01
+-1.6587532590825080e-01
+-1.6568385536228042e-01
+-1.6549220275090390e-01
+-1.6530036870728448e-01
+-1.6510835381948699e-01
+-1.6491615862877543e-01
+-1.6472378367928070e-01
+-1.6453122956744193e-01
+-1.6433849692215263e-01
+-1.6414558637361362e-01
+-1.6395249855512861e-01
+-1.6375923410133222e-01
+-1.6356579362799106e-01
+-1.6337217769002588e-01
+-1.6317838683082159e-01
+-1.6298442162267843e-01
+-1.6279028269032372e-01
+-1.6259597066459217e-01
+-1.6240148618264100e-01
+-1.6220682988843388e-01
+-1.6201200242108563e-01
+-1.6181700435588836e-01
+-1.6162183622710641e-01
+-1.6142649858084343e-01
+-1.6123099203735197e-01
+-1.6103531724482115e-01
+-1.6083947484734756e-01
+-1.6064346547437200e-01
+-1.6044728975238473e-01
+-1.6025094828841216e-01
+-1.6005444165214186e-01
+-1.5985777041019231e-01
+-1.5966093515335861e-01
+-1.5946393649963114e-01
+-1.5926677507066733e-01
+-1.5906945151169047e-01
+-1.5887196648388580e-01
+-1.5867432063639575e-01
+-1.5847651453814482e-01
+-1.5827854872687389e-01
+-1.5808042376124234e-01
+-1.5788214027253297e-01
+-1.5768369890816852e-01
+-1.5748510031595583e-01
+-1.5728634514411072e-01
+-1.5708743403986808e-01
+-1.5688836760875577e-01
+-1.5668914640727591e-01
+-1.5648977099300471e-01
+-1.5629024197050786e-01
+-1.5609055997739660e-01
+-1.5589072565426618e-01
+-1.5569073965511251e-01
+-1.5549060263962744e-01
+-1.5529031524749776e-01
+-1.5508987804407684e-01
+-1.5488929157812861e-01
+-1.5468855642929405e-01
+-1.5448767324095358e-01
+-1.5428664266477576e-01
+-1.5408546535448675e-01
+-1.5388414196625033e-01
+-1.5368267315257403e-01
+-1.5348105950895097e-01
+-1.5327930158928429e-01
+-1.5307739995582950e-01
+-1.5287535523423387e-01
+-1.5267316807746667e-01
+-1.5247083914053769e-01
+-1.5226836908488844e-01
+-1.5206575857361104e-01
+-1.5186300823863275e-01
+-1.5166011864389253e-01
+-1.5145709034579879e-01
+-1.5125392394213305e-01
+-1.5105062008335299e-01
+-1.5084717942391937e-01
+-1.5064360262231075e-01
+-1.5043989034015293e-01
+-1.5023604323108194e-01
+-1.5003206188703863e-01
+-1.4982794687254411e-01
+-1.4962369876819814e-01
+-1.4941931821894985e-01
+-1.4921480588620606e-01
+-1.4901016242938811e-01
+-1.4880538850296390e-01
+-1.4860048476027174e-01
+-1.4839545182418598e-01
+-1.4819029027696895e-01
+-1.4798500070077408e-01
+-1.4777958371578540e-01
+-1.4757403997246615e-01
+-1.4736837012387508e-01
+-1.4716257483442763e-01
+-1.4695665477403960e-01
+-1.4675061059701591e-01
+-1.4654444289044594e-01
+-1.4633815222399557e-01
+-1.4613173919328890e-01
+-1.4592520445502316e-01
+-1.4571854867504319e-01
+-1.4551177251949898e-01
+-1.4530487665482508e-01
+-1.4509786174485301e-01
+-1.4489072840433986e-01
+-1.4468347720746907e-01
+-1.4447610873491856e-01
+-1.4426862362822712e-01
+-1.4406102255883715e-01
+-1.4385330619836692e-01
+-1.4364547521709617e-01
+-1.4343753028512082e-01
+-1.4322947204682598e-01
+-1.4302130108236749e-01
+-1.4281301796324181e-01
+-1.4260462330396301e-01
+-1.4239611778106595e-01
+-1.4218750207572639e-01
+-1.4197877685997567e-01
+-1.4176994279800365e-01
+-1.4156100054869541e-01
+-1.4135195072492493e-01
+-1.4114279391625217e-01
+-1.4093353072356352e-01
+-1.4072416180006989e-01
+-1.4051468781441431e-01
+-1.4030510943686064e-01
+-1.4009542734130456e-01
+-1.3988564220194480e-01
+-1.3967575466119642e-01
+-1.3946576531340174e-01
+-1.3925567475129585e-01
+-1.3904548360772004e-01
+-1.3883519255161361e-01
+-1.3862480225440643e-01
+-1.3841431339572194e-01
+-1.3820372665971639e-01
+-1.3799304271680940e-01
+-1.3778226216893613e-01
+-1.3757138559746754e-01
+-1.3736041360940643e-01
+-1.3714934688076358e-01
+-1.3693818609939004e-01
+-1.3672693195058719e-01
+-1.3651558511544259e-01
+-1.3630414627257958e-01
+-1.3609261605134490e-01
+-1.3588099503493187e-01
+-1.3566928381204110e-01
+-1.3545748303857094e-01
+-1.3524559340794576e-01
+-1.3503361561335833e-01
+-1.3482155034328733e-01
+-1.3460939828492730e-01
+-1.3439716010112263e-01
+-1.3418483638492276e-01
+-1.3397242771789436e-01
+-1.3375993472169626e-01
+-1.3354735808352405e-01
+-1.3333469849696139e-01
+-1.3312195665561730e-01
+-1.3290913325313408e-01
+-1.3269622897711558e-01
+-1.3248324445100193e-01
+-1.3227018026112428e-01
+-1.3205703700719168e-01
+-1.3184381536174392e-01
+-1.3163051602185974e-01
+-1.3141713968357902e-01
+-1.3120368703908861e-01
+-1.3099015877972878e-01
+-1.3077655556331941e-01
+-1.3056287799008223e-01
+-1.3034912665684911e-01
+-1.3013530220759648e-01
+-1.2992140533426355e-01
+-1.2970743673146357e-01
+-1.2949339709611293e-01
+-1.2927928712666500e-01
+-1.2906510751048214e-01
+-1.2885085887078446e-01
+-1.2863654180859344e-01
+-1.2842215694445600e-01
+-1.2820770495913694e-01
+-1.2799318654540862e-01
+-1.2777860239938432e-01
+-1.2756395322286201e-01
+-1.2734923971674020e-01
+-1.2713446253591623e-01
+-1.2691962228649470e-01
+-1.2670471957710083e-01
+-1.2648975506834581e-01
+-1.2627472945381646e-01
+-1.2605964342972298e-01
+-1.2584449770298958e-01
+-1.2562929298468431e-01
+-1.2541402996331286e-01
+-1.2519870925293006e-01
+-1.2498333145301503e-01
+-1.2476789719862708e-01
+-1.2455240719087278e-01
+-1.2433686213828174e-01
+-1.2412126274665254e-01
+-1.2390560971872856e-01
+-1.2368990375291671e-01
+-1.2347414549393045e-01
+-1.2325833555120493e-01
+-1.2304247454413558e-01
+-1.2282656315614511e-01
+-1.2261060209538657e-01
+-1.2239459207086675e-01
+-1.2217853379347084e-01
+-1.2196242797449107e-01
+-1.2174627529169289e-01
+-1.2153007635725539e-01
+-1.2131383177776375e-01
+-1.2109754221077507e-01
+-1.2088120837248373e-01
+-1.2066483098180050e-01
+-1.2044841074696981e-01
+-1.2023194836901629e-01
+-1.2001544454168989e-01
+-1.1979889991037466e-01
+-1.1958231510127598e-01
+-1.1936569075478766e-01
+-1.1914902756151817e-01
+-1.1893232622364486e-01
+-1.1871558745089780e-01
+-1.1849881196799220e-01
+-1.1828200050024058e-01
+-1.1806515372288241e-01
+-1.1784827225100530e-01
+-1.1763135670049710e-01
+-1.1741440774225867e-01
+-1.1719742608671629e-01
+-1.1698041244760014e-01
+-1.1676336755333189e-01
+-1.1654629213870081e-01
+-1.1632918691493239e-01
+-1.1611205250363349e-01
+-1.1589488950583310e-01
+-1.1567769856275383e-01
+-1.1546048040062890e-01
+-1.1524323575657520e-01
+-1.1502596535742139e-01
+-1.1480866991703821e-01
+-1.1459135014541291e-01
+-1.1437400670424955e-01
+-1.1415664021925639e-01
+-1.1393925132386788e-01
+-1.1372184071146296e-01
+-1.1350440910187408e-01
+-1.1328695721782719e-01
+-1.1306948579195603e-01
+-1.1285199555943798e-01
+-1.1263448722039390e-01
+-1.1241696139670675e-01
+-1.1219941870137293e-01
+-1.1198185980127837e-01
+-1.1176428543345883e-01
+-1.1154669633915144e-01
+-1.1132909324699956e-01
+-1.1111147687591659e-01
+-1.1089384793768635e-01
+-1.1067620708979291e-01
+-1.1045855496503382e-01
+-1.1024089221222290e-01
+-1.1002321954587485e-01
+-1.0980553769772669e-01
+-1.0958784739878724e-01
+-1.0937014937789827e-01
+-1.0915244436300475e-01
+-1.0893473304368603e-01
+-1.0871701605726235e-01
+-1.0849929404087871e-01
+-1.0828156768498767e-01
+-1.0806383772338628e-01
+-1.0784610489109052e-01
+-1.0762836992041681e-01
+-1.0741063354257786e-01
+-1.0719289647457211e-01
+-1.0697515937068994e-01
+-1.0675742286855928e-01
+-1.0653968763161455e-01
+-1.0632195438544144e-01
+-1.0610422386524709e-01
+-1.0588649681020533e-01
+-1.0566877396495920e-01
+-1.0545105607130884e-01
+-1.0523334380917319e-01
+-1.0501563780615938e-01
+-1.0479793869811123e-01
+-1.0458024720165032e-01
+-1.0436256407394702e-01
+-1.0414489006787644e-01
+-1.0392722591415199e-01
+-1.0370957233740589e-01
+-1.0349193004313673e-01
+-1.0327429968775657e-01
+-1.0305668192096397e-01
+-1.0283907742911014e-01
+-1.0262148695253957e-01
+-1.0240391123618557e-01
+-1.0218635102368757e-01
+-1.0196880705758672e-01
+-1.0175128007411638e-01
+-1.0153377075132959e-01
+-1.0131627973706757e-01
+-1.0109880769144872e-01
+-1.0088135533313369e-01
+-1.0066392339845429e-01
+-1.0044651263166615e-01
+-1.0022912379746193e-01
+-1.0001175766328900e-01
+-9.9794414943343471e-02
+-9.9577096269581514e-02
+-9.9359802270702652e-02
+-9.9142533644750133e-02
+-9.8925291153519390e-02
+-9.8708075560565697e-02
+-9.8490887620839754e-02
+-9.8273728084768627e-02
+-9.8056597688989305e-02
+-9.7839497100067188e-02
+-9.7622426962983691e-02
+-9.7405387950134301e-02
+-9.7188380809553679e-02
+-9.6971406302521559e-02
+-9.6754465184884841e-02
+-9.6537558203537474e-02
+-9.6320686102761316e-02
+-9.6103849581869127e-02
+-9.5887049297124938e-02
+-9.5670285910397904e-02
+-9.5453560153118372e-02
+-9.5236872796438998e-02
+-9.5020224608154014e-02
+-9.4803616334513868e-02
+-9.4587048714956046e-02
+-9.4370522468394030e-02
+-9.4154038253376107e-02
+-9.3937596717777475e-02
+-9.3721198509018347e-02
+-9.3504844273548202e-02
+-9.3288534658638289e-02
+-9.3072270326461495e-02
+-9.2856051954061283e-02
+-9.2639880213403997e-02
+-9.2423755714079209e-02
+-9.2207679028762285e-02
+-9.1991650741759495e-02
+-9.1775671502801304e-02
+-9.1559741984191853e-02
+-9.1343862856807886e-02
+-9.1128034786469553e-02
+-9.0912258437968060e-02
+-9.0696534448869326e-02
+-9.0480863408870418e-02
+-9.0265245904563293e-02
+-9.0049682559271732e-02
+-8.9834174034501751e-02
+-8.9618720995153209e-02
+-8.9403324120944788e-02
+-8.9187984100895665e-02
+-8.8972701610526353e-02
+-8.8757477245152386e-02
+-8.8542311571558771e-02
+-8.8327205181535501e-02
+-8.8112158746212144e-02
+-8.7897172952702329e-02
+-8.7682248481987579e-02
+-8.7467386003584544e-02
+-8.7252586184636979e-02
+-8.7037849654425722e-02
+-8.6823177001181542e-02
+-8.6608568816246845e-02
+-8.6394025748339764e-02
+-8.6179548483357751e-02
+-8.5965137705827990e-02
+-8.5750794086623602e-02
+-8.5536518291693578e-02
+-8.5322310973638960e-02
+-8.5108172739729565e-02
+-8.4894104188195915e-02
+-8.4680105940909814e-02
+-8.4466178664568445e-02
+-8.4252323031611481e-02
+-8.4038539727257083e-02
+-8.3824829451110680e-02
+-8.3611192897897979e-02
+-8.3397630689176133e-02
+-8.3184143397288551e-02
+-8.2970731605933615e-02
+-8.2757395975532597e-02
+-8.2544137196778500e-02
+-8.2330955961143468e-02
+-8.2117852961782020e-02
+-8.1904828892202589e-02
+-8.1691884411069476e-02
+-8.1479020107350336e-02
+-8.1266236563508579e-02
+-8.1053534409767994e-02
+-8.0840914332501679e-02
+-8.0628377022145800e-02
+-8.0415923176616805e-02
+-8.0203553499183594e-02
+-7.9991268680822528e-02
+-7.9779069327787069e-02
+-7.9566956011741394e-02
+-7.9354929331156634e-02
+-7.9142989982685735e-02
+-7.8931138685670865e-02
+-7.8719376142891137e-02
+-7.8507703022317799e-02
+-7.8296119987278381e-02
+-7.8084627681893587e-02
+-7.7873226726662720e-02
+-7.7661917743314532e-02
+-7.7450701387341600e-02
+-7.7239578339054191e-02
+-7.7028549281492206e-02
+-7.6817614911051449e-02
+-7.6606775930038715e-02
+-7.6396033023360427e-02
+-7.6185386807901878e-02
+-7.5974837884517019e-02
+-7.5764386880250695e-02
+-7.5554034478749393e-02
+-7.5343781371542254e-02
+-7.5133628257216853e-02
+-7.4923575843294524e-02
+-7.4713624834024078e-02
+-7.4503775872548833e-02
+-7.4294029555409632e-02
+-7.4084386487835288e-02
+-7.3874847346310502e-02
+-7.3665412839441419e-02
+-7.3456083672349168e-02
+-7.3246860534494584e-02
+-7.3037744111547009e-02
+-7.2828735073084447e-02
+-7.2619834051738857e-02
+-7.2411041675869398e-02
+-7.2202358598206173e-02
+-7.1993785503855490e-02
+-7.1785323081259761e-02
+-7.1576972031776973e-02
+-7.1368733067112652e-02
+-7.1160606891575981e-02
+-7.0952594147608725e-02
+-7.0744695448812900e-02
+-7.0536911421280032e-02
+-7.0329242743806142e-02
+-7.0121690109388179e-02
+-6.9914254218158126e-02
+-6.9706935786762583e-02
+-6.9499735533540372e-02
+-6.9292654132555670e-02
+-6.9085692196250464e-02
+-6.8878850335926320e-02
+-6.8672129216077960e-02
+-6.8465529545391049e-02
+-6.8259052034289724e-02
+-6.8052697394272693e-02
+-6.7846466337528222e-02
+-6.7640359562586821e-02
+-6.7434377706228635e-02
+-6.7228521388356777e-02
+-6.7022791249715691e-02
+-6.6817187982407961e-02
+-6.6611712286842761e-02
+-6.6406364874008680e-02
+-6.6201146470075078e-02
+-6.5996057799346530e-02
+-6.5791099526312596e-02
+-6.5586272263774184e-02
+-6.5381576630911098e-02
+-6.5177013314644469e-02
+-6.4972583036687376e-02
+-6.4768286516767110e-02
+-6.4564124462893724e-02
+-6.4360097579857833e-02
+-6.4156206556272050e-02
+-6.3952452038212412e-02
+-6.3748834665600301e-02
+-6.3545355102566300e-02
+-6.3342014049659834e-02
+-6.3138812211222278e-02
+-6.2935750301180440e-02
+-6.2732829042131122e-02
+-6.2530049151783701e-02
+-6.2327411298074044e-02
+-6.2124916122496036e-02
+-6.1922564273706099e-02
+-6.1720356435466105e-02
+-6.1518293302468441e-02
+-6.1316375581389679e-02
+-6.1114604010957974e-02
+-6.0912979334848703e-02
+-6.0711502251750066e-02
+-6.0510173389294694e-02
+-6.0308993371640696e-02
+-6.0107962875149377e-02
+-5.9907082625226718e-02
+-5.9706353348797127e-02
+-5.9505775766501345e-02
+-5.9305350595617992e-02
+-5.9105078543906807e-02
+-5.8904960269273068e-02
+-5.8704996413914488e-02
+-5.8505187640360369e-02
+-5.8305534668516422e-02
+-5.8106038228606549e-02
+-5.7906699045077531e-02
+-5.7707517832675498e-02
+-5.7508495304180757e-02
+-5.7309632142880665e-02
+-5.7110929003206225e-02
+-5.6912386542480820e-02
+-5.6714005457085548e-02
+-5.6515786466253604e-02
+-5.6317730291274251e-02
+-5.6119837661607226e-02
+-5.5922109309644946e-02
+-5.5724545949038196e-02
+-5.5527148236935907e-02
+-5.5329916820590561e-02
+-5.5132852375971361e-02
+-5.4935955628088298e-02
+-5.4739227306959348e-02
+-5.4542668140547805e-02
+-5.4346278854715352e-02
+-5.4150060172065376e-02
+-5.3954012778390834e-02
+-5.3758137337253153e-02
+-5.3562434518137206e-02
+-5.3366905024390093e-02
+-5.3171549571424996e-02
+-5.2976368883051600e-02
+-5.2781363708593966e-02
+-5.2586534802161820e-02
+-5.2391882877534629e-02
+-5.2197408576058722e-02
+-5.2003112533911010e-02
+-5.1808995441669996e-02
+-5.1615058047704575e-02
+-5.1421301102454957e-02
+-5.1227725344976313e-02
+-5.1034331507230531e-02
+-5.0841120312898662e-02
+-5.0648092435773374e-02
+-5.0455248531536406e-02
+-5.0262589273395004e-02
+-5.0070115391336281e-02
+-4.9877827627190875e-02
+-4.9685726722900649e-02
+-4.9493813420336437e-02
+-4.9302088460229834e-02
+-4.9110552544220303e-02
+-4.8919206330626998e-02
+-4.8728050480040766e-02
+-4.8537085704370715e-02
+-4.8346312749532348e-02
+-4.8155732361995857e-02
+-4.7965345286287001e-02
+-4.7775152266381064e-02
+-4.7585154030332734e-02
+-4.7395351250853097e-02
+-4.7205744589245112e-02
+-4.7016334734110078e-02
+-4.6827122427033373e-02
+-4.6638108416002230e-02
+-4.6449293449297741e-02
+-4.6260678275490533e-02
+-4.6072263639691781e-02
+-4.5884050239254758e-02
+-4.5696038738722106e-02
+-4.5508229810790717e-02
+-4.5320624184127883e-02
+-4.5133222610063299e-02
+-4.4946025839989558e-02
+-4.4759034624474045e-02
+-4.4572249713974832e-02
+-4.4385671834233378e-02
+-4.4199301660300942e-02
+-4.4013139862431196e-02
+-4.3827187148051255e-02
+-4.3641444269233595e-02
+-4.3455911980850345e-02
+-4.3270591036060360e-02
+-4.3085482186882344e-02
+-4.2900586178314465e-02
+-4.2715903705510511e-02
+-4.2531435442859915e-02
+-4.2347182079341482e-02
+-4.2163144358377043e-02
+-4.1979323036449065e-02
+-4.1795718870118785e-02
+-4.1612332615751868e-02
+-4.1429165029032856e-02
+-4.1246216832365477e-02
+-4.1063488706360285e-02
+-4.0880981332271728e-02
+-4.0698695435006510e-02
+-4.0516631772240769e-02
+-4.0334791102843416e-02
+-4.0153174186639724e-02
+-3.9971781784055589e-02
+-3.9790614642439187e-02
+-3.9609673456538985e-02
+-3.9428958908440420e-02
+-3.9248471702616146e-02
+-3.9068212592990113e-02
+-3.8888182340468522e-02
+-3.8708381707750185e-02
+-3.8528811459777240e-02
+-3.8349472359055753e-02
+-3.8170365124297258e-02
+-3.7991490440088552e-02
+-3.7812848997136501e-02
+-3.7634441537666853e-02
+-3.7456268827719970e-02
+-3.7278331633650269e-02
+-3.7100630721589888e-02
+-3.6923166857769252e-02
+-3.6745940787327111e-02
+-3.6568953205930066e-02
+-3.6392204803217351e-02
+-3.6215696301281686e-02
+-3.6039428466310176e-02
+-3.5863402067884811e-02
+-3.5687617874863707e-02
+-3.5512076655576055e-02
+-3.5336779172829506e-02
+-3.5161726143254711e-02
+-3.4986918261490529e-02
+-3.4812356233852843e-02
+-3.4638040817004730e-02
+-3.4463972781505668e-02
+-3.4290152898704372e-02
+-3.4116581941406550e-02
+-3.3943260682281498e-02
+-3.3770189864242350e-02
+-3.3597370187816306e-02
+-3.3424802352843286e-02
+-3.3252487098960420e-02
+-3.3080425199603164e-02
+-3.2908617429610688e-02
+-3.2737064564326131e-02
+-3.2565767379506366e-02
+-3.2394726640519539e-02
+-3.2223943064289273e-02
+-3.2053417354205110e-02
+-3.1883150230007595e-02
+-3.1713142452582700e-02
+-3.1543394789910049e-02
+-3.1373908030533727e-02
+-3.1204682993292310e-02
+-3.1035720477289672e-02
+-3.0867020863972507e-02
+-3.0698584165663078e-02
+-3.0530410381506785e-02
+-3.0362499506781434e-02
+-3.0194851534714729e-02
+-3.0027466461495973e-02
+-2.9860344297750186e-02
+-2.9693485058338298e-02
+-2.9526888738614043e-02
+-2.9360555282092526e-02
+-2.9194484624170371e-02
+-2.9028676728617461e-02
+-2.8863131603062336e-02
+-2.8697849258810908e-02
+-2.8532829706505683e-02
+-2.8368072956174391e-02
+-2.8203579013148183e-02
+-2.8039347839418572e-02
+-2.7875379373269730e-02
+-2.7711673562200393e-02
+-2.7548230401379263e-02
+-2.7385049900832598e-02
+-2.7222132070466365e-02
+-2.7059476919923425e-02
+-2.6897084458392301e-02
+-2.6734954670422747e-02
+-2.6573087500907516e-02
+-2.6411482892605920e-02
+-2.6250140820910605e-02
+-2.6089061292531988e-02
+-2.5928244315650283e-02
+-2.5767689900912293e-02
+-2.5607398060350874e-02
+-2.5447368796875963e-02
+-2.5287602065586032e-02
+-2.5128097805893215e-02
+-2.4968855973191244e-02
+-2.4809876569662874e-02
+-2.4651159605934621e-02
+-2.4492705092608168e-02
+-2.4334513040275660e-02
+-2.4176583458047934e-02
+-2.4018916321947123e-02
+-2.3861511574903179e-02
+-2.3704369162211997e-02
+-2.3547489069575978e-02
+-2.3390871306717215e-02
+-2.3234515883785077e-02
+-2.3078422811741366e-02
+-2.2922592101787098e-02
+-2.2767023750322520e-02
+-2.2611717708639026e-02
+-2.2456673919647941e-02
+-2.2301892348936755e-02
+-2.2147373001920521e-02
+-2.1993115888066836e-02
+-2.1839121018435333e-02
+-2.1685388405746738e-02
+-2.1531918059014096e-02
+-2.1378709945924612e-02
+-2.1225764008483475e-02
+-2.1073080196269495e-02
+-2.0920658505277676e-02
+-2.0768498948129085e-02
+-2.0616601536873599e-02
+-2.0464966281765154e-02
+-2.0313593192444288e-02
+-2.0162482257092003e-02
+-2.0011633424646319e-02
+-1.9861046640947403e-02
+-1.9710721882891157e-02
+-1.9560659161104398e-02
+-1.9410858487753316e-02
+-1.9261319873678948e-02
+-1.9112043328847812e-02
+-1.8963028856411442e-02
+-1.8814276418446182e-02
+-1.8665785961555523e-02
+-1.8517557445044019e-02
+-1.8369590871070894e-02
+-1.8221886250731827e-02
+-1.8074443595363265e-02
+-1.7927262916803660e-02
+-1.7780344225893883e-02
+-1.7633687504003733e-02
+-1.7487292699159399e-02
+-1.7341159760569696e-02
+-1.7195288675075665e-02
+-1.7049679454917675e-02
+-1.6904332112563925e-02
+-1.6759246659130336e-02
+-1.6614423105172662e-02
+-1.6469861449561564e-02
+-1.6325561650228502e-02
+-1.6181523656206682e-02
+-1.6037747436144487e-02
+-1.5894232997914419e-02
+-1.5750980353980794e-02
+-1.5607989515974589e-02
+-1.5465260494552059e-02
+-1.5322793297743827e-02
+-1.5180587900370936e-02
+-1.5038644253845724e-02
+-1.4896962314765136e-02
+-1.4755542078166832e-02
+-1.4614383554864017e-02
+-1.4473486756046162e-02
+-1.4332851694231688e-02
+-1.4192478382095305e-02
+-1.4052366813988776e-02
+-1.3912516946110948e-02
+-1.3772928730579875e-02
+-1.3633602145383323e-02
+-1.3494537200320919e-02
+-1.3355733907126452e-02
+-1.3217192277828145e-02
+-1.3078912324658585e-02
+-1.2940894054514439e-02
+-1.2803137436919566e-02
+-1.2665642425291080e-02
+-1.2528408982883488e-02
+-1.2391437111387710e-02
+-1.2254726821742190e-02
+-1.2118278125761077e-02
+-1.1982091037219240e-02
+-1.1846165569439552e-02
+-1.1710501710390418e-02
+-1.1575099415572958e-02
+-1.1439958640468996e-02
+-1.1305079372686143e-02
+-1.1170461624412287e-02
+-1.1036105408436945e-02
+-1.0902010737659474e-02
+-1.0768177625004470e-02
+-1.0634606073842836e-02
+-1.0501296048995344e-02
+-1.0368247505544550e-02
+-1.0235460414879712e-02
+-1.0102934785611346e-02
+-9.9706706314547158e-03
+-9.8386679656025707e-03
+-9.7069268005644180e-03
+-9.5754471468898015e-03
+-9.4442289855272473e-03
+-9.3132722737929753e-03
+-9.1825769729119364e-03
+-9.0521430801824964e-03
+-8.9219706098216927e-03
+-8.7920595757724467e-03
+-8.6624099905369574e-03
+-8.5330218661545734e-03
+-8.4038952005858376e-03
+-8.2750299583350152e-03
+-8.1464260994379891e-03
+-8.0180836048858641e-03
+-7.8900024848691831e-03
+-7.7621827517804914e-03
+-7.6346244193557884e-03
+-7.5073275024411992e-03
+-7.3802920116299063e-03
+-7.2535179226078357e-03
+-7.1270051938981619e-03
+-7.0007537923561592e-03
+-6.8747637226887351e-03
+-6.7490350001003395e-03
+-6.6235676394594068e-03
+-6.4983616548591914e-03
+-6.3734170598259560e-03
+-6.2487338470016149e-03
+-6.1243119787326075e-03
+-6.0001514165025846e-03
+-5.8762521501390715e-03
+-5.7526141940298344e-03
+-5.6292375633088618e-03
+-5.5061222728456719e-03
+-5.3832683373537986e-03
+-5.2606757639900989e-03
+-5.1383445247957420e-03
+-5.0162745815535504e-03
+-4.8944659092473785e-03
+-4.7729185173574140e-03
+-4.6516324208754666e-03
+-4.5306076348537918e-03
+-4.4098441744575591e-03
+-4.2893420534716184e-03
+-4.1691012596023445e-03
+-4.0491217569951343e-03
+-3.9294035123470768e-03
+-3.8099465238628375e-03
+-3.6907508065888864e-03
+-3.5718163758118740e-03
+-3.4531432473741941e-03
+-3.3347314372407229e-03
+-3.2165809489365965e-03
+-3.0986917521478932e-03
+-2.9810638111004437e-03
+-2.8636971092351688e-03
+-2.7465916603691834e-03
+-2.6297474809453929e-03
+-2.5131645870526214e-03
+-2.3968429944440117e-03
+-2.2807827157067090e-03
+-2.1649837334163468e-03
+-2.0494460133539845e-03
+-1.9341695276916065e-03
+-1.8191542826239734e-03
+-1.7044002952101760e-03
+-1.5899075821445893e-03
+-1.4756761591412347e-03
+-1.3617060414679166e-03
+-1.2479972273808737e-03
+-1.1345496871425630e-03
+-1.0213633894266940e-03
+-9.0843832680871802e-04
+-7.9577451530669278e-04
+-6.8337197185382853e-04
+-5.7123071304126974e-04
+-4.5935075524394694e-04
+-3.4773210898710819e-04
+-2.3637475346659321e-04
+-1.2527865733870101e-04
+-1.4443799938706830e-05
+9.6129807340984092e-05
+2.0644214717705062e-04
+3.1649320212449482e-04
+4.2628295450071121e-04
+5.3581138760248003e-04
+6.4507850789025350e-04
+7.5408434549788337e-04
+8.6282892897222765e-04
+9.7131225774502172e-04
+1.0795343135493185e-03
+1.1874950780331316e-03
+1.2951945336004368e-03
+1.4026326629505257e-03
+1.5098094585412605e-03
+1.6167249432887053e-03
+1.7233791459282065e-03
+1.8297720793759853e-03
+1.9359037281240904e-03
+2.0417740737518897e-03
+2.1473830981759640e-03
+2.2527307836695083e-03
+2.3578171148393597e-03
+2.4626421022381478e-03
+2.5672057729087682e-03
+2.6715081491700721e-03
+2.7755492234496537e-03
+2.8793289772119177e-03
+2.9828473920185637e-03
+3.0861044497180706e-03
+3.1891001323825830e-03
+3.2918344363887754e-03
+3.3943073848654703e-03
+3.4965190031955974e-03
+3.5984692962285794e-03
+3.7001582460197721e-03
+3.8015858334801279e-03
+3.9027520396268120e-03
+4.0036568455601952e-03
+4.1043002370124339e-03
+4.2046822283825684e-03
+4.3048028451324744e-03
+4.4046621039952752e-03
+4.5042599914845941e-03
+4.6035964876604638e-03
+4.7026715730254460e-03
+4.8014852289115376e-03
+4.9000374373905763e-03
+4.9983281990701664e-03
+5.0963575359883355e-03
+5.1941254695294405e-03
+5.2916319968638586e-03
+5.3888770984556102e-03
+5.4858607546052346e-03
+5.5825829465124197e-03
+5.6790436557617261e-03
+5.7752428713731367e-03
+5.8711806090481124e-03
+5.9668568904481531e-03
+6.0622717242343853e-03
+6.1574250924586555e-03
+6.2523169740070304e-03
+6.3469473494131299e-03
+6.4413162011887721e-03
+6.5354235135059915e-03
+6.6292692909843904e-03
+6.7228535529795051e-03
+6.8161763155631522e-03
+6.9092375696583330e-03
+7.0020372956243471e-03
+7.0945754735604475e-03
+7.1868520826198785e-03
+7.2788671018318091e-03
+7.3706205226883471e-03
+7.4621123632319956e-03
+7.5533426444594478e-03
+7.6443113691828813e-03
+7.7350185173572367e-03
+7.8254640675809329e-03
+7.9156479993573083e-03
+8.0055702928780847e-03
+8.0952309317215664e-03
+8.1846299236281918e-03
+8.2737672870020033e-03
+8.3626430337279088e-03
+8.4512571495355890e-03
+8.5396096137110820e-03
+8.6277004058672169e-03
+8.7155295063007978e-03
+8.8030968958150279e-03
+8.8904025703569357e-03
+8.9774465456909144e-03
+9.0642288376237227e-03
+9.1507494413658463e-03
+9.2370083360211880e-03
+9.3230055005123231e-03
+9.4087409154184967e-03
+9.4942145621010107e-03
+9.5794264271936089e-03
+9.6643765190843143e-03
+9.7490648518096957e-03
+9.8334914304800194e-03
+9.9176562393287048e-03
+1.0001559259626832e-02
+1.0085200471561912e-02
+1.0168579853828925e-02
+1.0251697386228015e-02
+1.0334553067860529e-02
+1.0417146913577754e-02
+1.0499478935923240e-02
+1.0581549124910675e-02
+1.0663357459743870e-02
+1.0744903919738388e-02
+1.0826188484875886e-02
+1.0907211135372784e-02
+1.0987971860397745e-02
+1.1068470670888621e-02
+1.1148707580794366e-02
+1.1228682590318164e-02
+1.1308395680079106e-02
+1.1387846829254719e-02
+1.1467036017419713e-02
+1.1545963224491772e-02
+1.1624628432899908e-02
+1.1703031645920008e-02
+1.1781172877320263e-02
+1.1859052135758927e-02
+1.1936669406028538e-02
+1.2014024666143538e-02
+1.2091117895133330e-02
+1.2167949074562269e-02
+1.2244518186632379e-02
+1.2320825224732206e-02
+1.2396870198833190e-02
+1.2472653119445277e-02
+1.2548173981260973e-02
+1.2623432764966150e-02
+1.2698429450790171e-02
+1.2773164018934208e-02
+1.2847636449601678e-02
+1.2921846727406393e-02
+1.2995794857938742e-02
+1.3069480853079830e-02
+1.3142904716931874e-02
+1.3216066432756855e-02
+1.3288965980416767e-02
+1.3361603340275603e-02
+1.3433978493454835e-02
+1.3506091421921891e-02
+1.3577942122625492e-02
+1.3649530606347023e-02
+1.3720856882399178e-02
+1.3791920941052097e-02
+1.3862722762167337e-02
+1.3933262325842063e-02
+1.4003539613749252e-02
+1.4073554608088771e-02
+1.4143307297685752e-02
+1.4212797689799994e-02
+1.4282025794763994e-02
+1.4350991612184189e-02
+1.4419695124319719e-02
+1.4488136311920313e-02
+1.4556315156498285e-02
+1.4624231640300848e-02
+1.4691885747340913e-02
+1.4759277478517772e-02
+1.4826406844401036e-02
+1.4893273852032844e-02
+1.4959878489072459e-02
+1.5026220736844381e-02
+1.5092300576975706e-02
+1.5158117991920369e-02
+1.5223672964446065e-02
+1.5288965487503959e-02
+1.5353995571173814e-02
+1.5418763226559924e-02
+1.5483268449458829e-02
+1.5547511220323142e-02
+1.5611491519325926e-02
+1.5675209330405355e-02
+1.5738664639760057e-02
+1.5801857436378245e-02
+1.5864787724330441e-02
+1.5927455512897870e-02
+1.5989860805759617e-02
+1.6052003589327141e-02
+1.6113883846757746e-02
+1.6175501562103539e-02
+1.6236856720962069e-02
+1.6297949309563273e-02
+1.6358779325171841e-02
+1.6419346776576204e-02
+1.6479651671864399e-02
+1.6539694004928683e-02
+1.6599473760843215e-02
+1.6658990924857647e-02
+1.6718245483836144e-02
+1.6777237425249444e-02
+1.6835966740870286e-02
+1.6894433436184460e-02
+1.6952637519391123e-02
+1.7010578991936337e-02
+1.7068257842835600e-02
+1.7125674059810941e-02
+1.7182827630726219e-02
+1.7239718543596294e-02
+1.7296346787513347e-02
+1.7352712363714263e-02
+1.7408815281334672e-02
+1.7464655547531391e-02
+1.7520233156356171e-02
+1.7575548096950493e-02
+1.7630600358406537e-02
+1.7685389929589977e-02
+1.7739916799413523e-02
+1.7794180964222452e-02
+1.7848182434565357e-02
+1.7901921222277139e-02
+1.7955397328698487e-02
+1.8008610743261388e-02
+1.8061561454925164e-02
+1.8114249454345924e-02
+1.8166674733341097e-02
+1.8218837285862047e-02
+1.8270737119162186e-02
+1.8322374245764918e-02
+1.8373748674353606e-02
+1.8424860399915356e-02
+1.8475709414454138e-02
+1.8526295710068637e-02
+1.8576619279007511e-02
+1.8626680113887368e-02
+1.8676478217356133e-02
+1.8726013603910911e-02
+1.8775286287838568e-02
+1.8824296271084204e-02
+1.8873043546893429e-02
+1.8921528108631940e-02
+1.8969749951476492e-02
+1.9017709071374417e-02
+1.9065405467925831e-02
+1.9112839154101328e-02
+1.9160010145956557e-02
+1.9206918453302062e-02
+1.9253564072841938e-02
+1.9299946999740383e-02
+1.9346067231551949e-02
+1.9391924768766281e-02
+1.9437519612642527e-02
+1.9482851772152691e-02
+1.9527921261957886e-02
+1.9572728095714750e-02
+1.9617272278757630e-02
+1.9661553812859389e-02
+1.9705572699404497e-02
+1.9749328938203269e-02
+1.9792822528748970e-02
+1.9836053476681048e-02
+1.9879021801010567e-02
+1.9921727522347533e-02
+1.9964170653366177e-02
+2.0006351196536928e-02
+2.0048269153830810e-02
+2.0089924529191464e-02
+2.0131317328086373e-02
+2.0172447557350162e-02
+2.0213315233408295e-02
+2.0253920377035176e-02
+2.0294263006983369e-02
+2.0334343133554894e-02
+2.0374160764939267e-02
+2.0413715908703594e-02
+2.0453008570935086e-02
+2.0492038757757194e-02
+2.0530806483774262e-02
+2.0569311774926075e-02
+2.0607554657428223e-02
+2.0645535148573622e-02
+2.0683253258529127e-02
+2.0720708997396420e-02
+2.0757902376016633e-02
+2.0794833405604028e-02
+2.0831502100289428e-02
+2.0867908486455585e-02
+2.0904052593769942e-02
+2.0939934447473118e-02
+2.0975554062163941e-02
+2.1010911450978494e-02
+2.1046006629386230e-02
+2.1080839616093430e-02
+2.1115410430404252e-02
+2.1149719096927946e-02
+2.1183765644704713e-02
+2.1217550102370974e-02
+2.1251072493738438e-02
+2.1284332840272067e-02
+2.1317331163398307e-02
+2.1350067484267560e-02
+2.1382541824000047e-02
+2.1414754207421838e-02
+2.1446704668531821e-02
+2.1478393242705923e-02
+2.1509819961351349e-02
+2.1540984850074954e-02
+2.1571887934144680e-02
+2.1602529240129793e-02
+2.1632908795737118e-02
+2.1663026629541862e-02
+2.1692882776926218e-02
+2.1722477276797908e-02
+2.1751810167211137e-02
+2.1780881481874761e-02
+2.1809691253266095e-02
+2.1838239513389299e-02
+2.1866526292922860e-02
+2.1894551622497288e-02
+2.1922315539557469e-02
+2.1949818091858701e-02
+2.1977059327693761e-02
+2.2004039288038995e-02
+2.2030758007252880e-02
+2.2057215519932557e-02
+2.2083411864598550e-02
+2.2109347081903548e-02
+2.2135021213939975e-02
+2.2160434309537243e-02
+2.2185586419630733e-02
+2.2210477593665116e-02
+2.2235107876898669e-02
+2.2259477313930097e-02
+2.2283585949298287e-02
+2.2307433827411807e-02
+2.2331020993084705e-02
+2.2354347498685489e-02
+2.2377413403713051e-02
+2.2400218767324950e-02
+2.2422763642134875e-02
+2.2445048077119875e-02
+2.2467072122102309e-02
+2.2488835831204975e-02
+2.2510339259977565e-02
+2.2531582465827812e-02
+2.2552565511354653e-02
+2.2573288460112598e-02
+2.2593751374027256e-02
+2.2613954312289755e-02
+2.2633897333978158e-02
+2.2653580500061263e-02
+2.2673003873367660e-02
+2.2692167517313813e-02
+2.2711071499907007e-02
+2.2729715891867602e-02
+2.2748100763874457e-02
+2.2766226185884385e-02
+2.2784092227658946e-02
+2.2801698958720543e-02
+2.2819046447732336e-02
+2.2836134763309080e-02
+2.2852963978508407e-02
+2.2869534173990291e-02
+2.2885845431158115e-02
+2.2901897829629085e-02
+2.2917691447188863e-02
+2.2933226361679063e-02
+2.2948502651740997e-02
+2.2963520396533224e-02
+2.2978279676550774e-02
+2.2992780579476391e-02
+2.3007023195575037e-02
+2.3021007614434052e-02
+2.3034733923333418e-02
+2.3048202209176562e-02
+2.3061412559992771e-02
+2.3074365065772529e-02
+2.3087059816944845e-02
+2.3099496908211344e-02
+2.3111676438828742e-02
+2.3123598508304911e-02
+2.3135263215648884e-02
+2.3146670659582889e-02
+2.3157820939120787e-02
+2.3168714154631134e-02
+2.3179350407035750e-02
+2.3189729798982917e-02
+2.3199852438600260e-02
+2.3209718435213127e-02
+2.3219327898555058e-02
+2.3228680939048091e-02
+2.3237777667330459e-02
+2.3246618195844872e-02
+2.3255202639031077e-02
+2.3263531111678747e-02
+2.3271603730595745e-02
+2.3279420613960169e-02
+2.3286981880712640e-02
+2.3294287653931857e-02
+2.3301338058350791e-02
+2.3308133218985630e-02
+2.3314673261584540e-02
+2.3320958312144160e-02
+2.3326988498754433e-02
+2.3332763953516404e-02
+2.3338284809134337e-02
+2.3343551199946015e-02
+2.3348563262166947e-02
+2.3353321132335542e-02
+2.3357824948672504e-02
+2.3362074850593859e-02
+2.3366070978404360e-02
+2.3369813477537475e-02
+2.3373302495558284e-02
+2.3376538180270228e-02
+2.3379520680043828e-02
+2.3382250143474604e-02
+2.3384726721574975e-02
+2.3386950570195117e-02
+2.3388921845898768e-02
+2.3390640706234016e-02
+2.3392107309915467e-02
+2.3393321816122841e-02
+2.3394284388122851e-02
+2.3394995192162555e-02
+2.3395454395028756e-02
+2.3395662166130760e-02
+2.3395618676050528e-02
+2.3395324096233586e-02
+2.3394778601062340e-02
+2.3393982365711948e-02
+2.3392935567065794e-02
+2.3391638385528449e-02
+2.3390091002160465e-02
+2.3388293601726770e-02
+2.3386246373625380e-02
+2.3383949507608175e-02
+2.3381403192741408e-02
+2.3378607617605716e-02
+2.3375562971927159e-02
+2.3372269453088311e-02
+2.3368727261920460e-02
+2.3364936599957194e-02
+2.3360897671084482e-02
+2.3356610679873310e-02
+2.3352075832005489e-02
+2.3347293335486890e-02
+2.3342263398852800e-02
+2.3336986234813919e-02
+2.3331462061519804e-02
+2.3325691097732065e-02
+2.3319673564156138e-02
+2.3313409683051154e-02
+2.3306899677294830e-02
+2.3300143773294341e-02
+2.3293142199158897e-02
+2.3285895184274156e-02
+2.3278402962865655e-02
+2.3270665770533737e-02
+2.3262683845912280e-02
+2.3254457434534165e-02
+2.3245986783005570e-02
+2.3237272136508176e-02
+2.3228313738220881e-02
+2.3219111831827979e-02
+2.3209666669610662e-02
+2.3199978510904554e-02
+2.3190047615782659e-02
+2.3179874247549803e-02
+2.3169458671147683e-02
+2.3158801151765943e-02
+2.3147901955116273e-02
+2.3136761347175697e-02
+2.3125379597632199e-02
+2.3113756985018816e-02
+2.3101893789388022e-02
+2.3089790293733169e-02
+2.3077446785174045e-02
+2.3064863551316248e-02
+2.3052040880255368e-02
+2.3038979060528746e-02
+2.3025678381800654e-02
+2.3012139141976692e-02
+2.2998361643194347e-02
+2.2984346189002886e-02
+2.2970093088664118e-02
+2.2955602653197314e-02
+2.2940875193990962e-02
+2.2925911023107103e-02
+2.2910710452944232e-02
+2.2895273800589883e-02
+2.2879601390021490e-02
+2.2863693546287901e-02
+2.2847550601115086e-02
+2.2831172892177592e-02
+2.2814560757294777e-02
+2.2797714532329951e-02
+2.2780634552205286e-02
+2.2763321154211275e-02
+2.2745774686356409e-02
+2.2727995499998693e-02
+2.2709983949426783e-02
+2.2691740396447408e-02
+2.2673265204246090e-02
+2.2654558734548701e-02
+2.2635621346709101e-02
+2.2616453400557200e-02
+2.2597055266218181e-02
+2.2577427323357050e-02
+2.2557569952699977e-02
+2.2537483539953721e-02
+2.2517168473650921e-02
+2.2496625142344268e-02
+2.2475853933721437e-02
+2.2454855235344812e-02
+2.2433629439428806e-02
+2.2412176950842098e-02
+2.2390498176877716e-02
+2.2368593528453874e-02
+2.2346463422223094e-02
+2.2324108275479725e-02
+2.2301528504042913e-02
+2.2278724522317422e-02
+2.2255696746207178e-02
+2.2232445605236413e-02
+2.2208971536827184e-02
+2.2185274979681053e-02
+2.2161356377809985e-02
+2.2137216177126447e-02
+2.2112854823464000e-02
+2.2088272761978469e-02
+2.2063470437986885e-02
+2.2038448304477300e-02
+2.2013206827231634e-02
+2.1987746473650857e-02
+2.1962067715336483e-02
+2.1936171028108832e-02
+2.1910056888156025e-02
+2.1883725771398591e-02
+2.1857178153694395e-02
+2.1830414513809619e-02
+2.1803435345551212e-02
+2.1776241148073094e-02
+2.1748832422555542e-02
+2.1721209675863672e-02
+2.1693373416148836e-02
+2.1665324151166218e-02
+2.1637062387778343e-02
+2.1608588633446415e-02
+2.1579903407402456e-02
+2.1551007241188486e-02
+2.1521900667608798e-02
+2.1492584224499997e-02
+2.1463058452938170e-02
+2.1433323894233986e-02
+2.1403381089504445e-02
+2.1373230579969902e-02
+2.1342872911371040e-02
+2.1312308643390648e-02
+2.1281538338782342e-02
+2.1250562565743602e-02
+2.1219381902250888e-02
+2.1187996927445493e-02
+2.1156408216974676e-02
+2.1124616342648461e-02
+2.1092621877750684e-02
+2.1060425412307938e-02
+2.1028027547340754e-02
+2.0995428885272189e-02
+2.0962630034477205e-02
+2.0929631605762673e-02
+2.0896434209804499e-02
+2.0863038456118237e-02
+2.0829444954278086e-02
+2.0795654322098206e-02
+2.0761667192942326e-02
+2.0727484202394928e-02
+2.0693105991802456e-02
+2.0658533209019010e-02
+2.0623766502345969e-02
+2.0588806517890277e-02
+2.0553653900370214e-02
+2.0518309297489514e-02
+2.0482773374624466e-02
+2.0447046804326706e-02
+2.0411130261724988e-02
+2.0375024430173111e-02
+2.0338729995084025e-02
+2.0302247640602372e-02
+2.0265578047999264e-02
+2.0228721898878421e-02
+2.0191679887545430e-02
+2.0154452723292464e-02
+2.0117041117125527e-02
+2.0079445787355571e-02
+2.0041667457562105e-02
+2.0003706851207989e-02
+1.9965564688295030e-02
+1.9927241687595684e-02
+1.9888738573389911e-02
+1.9850056089445439e-02
+1.9811194984336013e-02
+1.9772156010974519e-02
+1.9732939930976315e-02
+1.9693547507262887e-02
+1.9653979499542441e-02
+1.9614236663471552e-02
+1.9574319756061723e-02
+1.9534229552520401e-02
+1.9493966841573611e-02
+1.9453532413544965e-02
+1.9412927065652095e-02
+1.9372151598303730e-02
+1.9331206811290184e-02
+1.9290093500876841e-02
+1.9248812462802849e-02
+1.9207364502283244e-02
+1.9165750444833436e-02
+1.9123971119100462e-02
+1.9082027358282145e-02
+1.9039920001321632e-02
+1.8997649887711694e-02
+1.8955217854442142e-02
+1.8912624736667959e-02
+1.8869871372539298e-02
+1.8826958620446903e-02
+1.8783887348142136e-02
+1.8740658425546296e-02
+1.8697272729999589e-02
+1.8653731141026173e-02
+1.8610034536962979e-02
+1.8566183792906275e-02
+1.8522179784150269e-02
+1.8478023398973923e-02
+1.8433715542936279e-02
+1.8389257123591803e-02
+1.8344649055208165e-02
+1.8299892257517734e-02
+1.8254987650226661e-02
+1.8209936148828581e-02
+1.8164738667051015e-02
+1.8119396123966621e-02
+1.8073909460141029e-02
+1.8028279622201424e-02
+1.7982507560526224e-02
+1.7936594233864019e-02
+1.7890540602488632e-02
+1.7844347623655808e-02
+1.7798016250225451e-02
+1.7751547436107070e-02
+1.7704942152170465e-02
+1.7658201383527774e-02
+1.7611326117163494e-02
+1.7564317348770175e-02
+1.7517176078564321e-02
+1.7469903305616759e-02
+1.7422500022162529e-02
+1.7374967218872616e-02
+1.7327305895528066e-02
+1.7279517074028340e-02
+1.7231601780150596e-02
+1.7183561044303068e-02
+1.7135395903434048e-02
+1.7087107395189260e-02
+1.7038696553113703e-02
+1.6990164407242464e-02
+1.6941511990165678e-02
+1.6892740354274963e-02
+1.6843850562391037e-02
+1.6794843679627833e-02
+1.6745720779703287e-02
+1.6696482939193572e-02
+1.6647131232050829e-02
+1.6597666724572656e-02
+1.6548090482456847e-02
+1.6498403585278688e-02
+1.6448607133467720e-02
+1.6398702229834621e-02
+1.6348689981186406e-02
+1.6298571498002158e-02
+1.6248347890834628e-02
+1.6198020265784818e-02
+1.6147589726788793e-02
+1.6097057382314765e-02
+1.6046424361321622e-02
+1.5995691799417375e-02
+1.5944860835492469e-02
+1.5893932616542188e-02
+1.5842908291285526e-02
+1.5791789004008051e-02
+1.5740575891662438e-02
+1.5689270091806280e-02
+1.5637872759024448e-02
+1.5586385064029221e-02
+1.5534808179155023e-02
+1.5483143281993676e-02
+1.5431391553318231e-02
+1.5379554172806639e-02
+1.5327632312146434e-02
+1.5275627140814237e-02
+1.5223539836525021e-02
+1.5171371599654924e-02
+1.5119123635083168e-02
+1.5066797150192171e-02
+1.5014393356156891e-02
+1.4961913464743114e-02
+1.4909358682630906e-02
+1.4856730211497511e-02
+1.4804029254983548e-02
+1.4751257034298162e-02
+1.4698414781167452e-02
+1.4645503729321342e-02
+1.4592525120258328e-02
+1.4539480198456165e-02
+1.4486370204796052e-02
+1.4433196368252847e-02
+1.4379959916153675e-02
+1.4326662087697986e-02
+1.4273304142192848e-02
+1.4219887341578247e-02
+1.4166412951697245e-02
+1.4112882242385215e-02
+1.4059296483193099e-02
+1.4005656933433596e-02
+1.3951964846375134e-02
+1.3898221479356602e-02
+1.3844428110817082e-02
+1.3790586027007338e-02
+1.3736696515917640e-02
+1.3682760869775445e-02
+1.3628780382027349e-02
+1.3574756340430320e-02
+1.3520690022033453e-02
+1.3466582703806632e-02
+1.3412435677406076e-02
+1.3358250250160426e-02
+1.3304027730891635e-02
+1.3249769431093603e-02
+1.3195476664171535e-02
+1.3141150741976807e-02
+1.3086792964114604e-02
+1.3032404626023012e-02
+1.2977987029637700e-02
+1.2923541497041004e-02
+1.2869069354925726e-02
+1.2814571931368091e-02
+1.2760050556538654e-02
+1.2705506560998453e-02
+1.2650941265881142e-02
+1.2596355981744575e-02
+1.2541752020564560e-02
+1.2487130712257521e-02
+1.2432493398866980e-02
+1.2377841423010676e-02
+1.2323176126535509e-02
+1.2268498851346210e-02
+1.2213810936266237e-02
+1.2159113708053853e-02
+1.2104408491369635e-02
+1.2049696618583055e-02
+1.1994979436656500e-02
+1.1940258294819836e-02
+1.1885534544512397e-02
+1.1830809539646154e-02
+1.1776084633666925e-02
+1.1721361165753268e-02
+1.1666640465363396e-02
+1.1611923864898885e-02
+1.1557212714305144e-02
+1.1502508370970747e-02
+1.1447812192296677e-02
+1.1393125534128737e-02
+1.1338449752364425e-02
+1.1283786196473017e-02
+1.1229136202119877e-02
+1.1174501104062087e-02
+1.1119882247074872e-02
+1.1065280987941940e-02
+1.1010698684607943e-02
+1.0956136694156635e-02
+1.0901596373209923e-02
+1.0847079076420579e-02
+1.0792586141536928e-02
+1.0738118899485546e-02
+1.0683678685694432e-02
+1.0629266851188521e-02
+1.0574884751124171e-02
+1.0520533739411381e-02
+1.0466215166625980e-02
+1.0411930383109093e-02
+1.0357680728650807e-02
+1.0303467529576282e-02
+1.0249292112536045e-02
+1.0195155814276609e-02
+1.0141059979297366e-02
+1.0087005952392808e-02
+1.0032995075632142e-02
+9.9790286901973221e-03
+9.9251081327464772e-03
+9.8712347202601428e-03
+9.8174097652667987e-03
+9.7636345861239898e-03
+9.7099105135594090e-03
+9.6562388803552064e-03
+9.6026210152505911e-03
+9.5490582414888454e-03
+9.4955518815332679e-03
+9.4421032440868899e-03
+9.3887136271552374e-03
+9.3353843298942633e-03
+9.2821166589335969e-03
+9.2289119246547584e-03
+9.1757714368806368e-03
+9.1226965012752258e-03
+9.0696884227898424e-03
+9.0167484976501639e-03
+8.9638780009040006e-03
+8.9110782051499537e-03
+8.8583503887803075e-03
+8.8056958379329094e-03
+8.7531158394768133e-03
+8.7006116753700243e-03
+8.6481846236444327e-03
+8.5958359599767713e-03
+8.5435669383327854e-03
+8.4913788024627030e-03
+8.4392727985160305e-03
+8.3872501816844112e-03
+8.3353122100020462e-03
+8.2834601377432746e-03
+8.2316952092085210e-03
+8.1800186673811233e-03
+8.1284317431129134e-03
+8.0769356496884093e-03
+8.0255315997320217e-03
+7.9742208102893883e-03
+7.9230045022554221e-03
+7.8718838958663599e-03
+7.8208602010433476e-03
+7.7699346227524495e-03
+7.7191083617854034e-03
+7.6683825981732120e-03
+7.6177585063444565e-03
+7.5672372612892117e-03
+7.5168200386752163e-03
+7.4665080146124338e-03
+7.4163023615978312e-03
+7.3662042465024499e-03
+7.3162148350372734e-03
+7.2663352718711867e-03
+7.2165666830014616e-03
+7.1669101945377968e-03
+7.1173669358672474e-03
+7.0679380383245581e-03
+7.0186246315604170e-03
+6.9694278352774473e-03
+6.9203487664940399e-03
+6.8713885322069191e-03
+6.8225482117696837e-03
+6.7738288803466115e-03
+6.7252316151195637e-03
+6.6767574961622165e-03
+6.6284076037167149e-03
+6.5801830086668154e-03
+6.5320847732504711e-03
+6.4841139570551588e-03
+6.4362715942127228e-03
+6.3885587050415580e-03
+6.3409763104197835e-03
+6.2935254331069872e-03
+6.2462070967348746e-03
+6.1990223200210819e-03
+6.1519721071364112e-03
+6.1050574598384708e-03
+6.0582793655009721e-03
+6.0116387879133861e-03
+5.9651366890097939e-03
+5.9187740299294416e-03
+5.8725517710567160e-03
+5.8264708717454660e-03
+5.7805322780531418e-03
+5.7347369285654405e-03
+5.6890857569027696e-03
+5.6435796692583130e-03
+5.5982195630226795e-03
+5.5530063347846289e-03
+5.5079408780920932e-03
+5.4630240861307366e-03
+5.4182568447210195e-03
+5.3736400269702410e-03
+5.3291745041273240e-03
+5.2848611257780825e-03
+5.2407007196939755e-03
+5.1966941127900360e-03
+5.1528421300698450e-03
+5.1091455955236450e-03
+5.0656053303397217e-03
+5.0222221387410679e-03
+4.9789968192948831e-03
+4.9359301614410531e-03
+4.8930229258869898e-03
+4.8502758680446702e-03
+4.8076897411888737e-03
+4.7652652945909934e-03
+4.7230032768843270e-03
+4.6809044245761230e-03
+4.6389694614367245e-03
+4.5971991085720990e-03
+4.5555940613936910e-03
+4.5141549993519894e-03
+4.4728826009448131e-03
+4.4317775392764009e-03
+4.3908404856662937e-03
+4.3500721060746187e-03
+4.3094730486088239e-03
+4.2690439578381804e-03
+4.2287854637634422e-03
+4.1886981693173052e-03
+4.1487826745583494e-03
+4.1090395753284647e-03
+4.0694694628379668e-03
+4.0300729268929504e-03
+3.9908505412064978e-03
+3.9518028690736324e-03
+3.9129304690831927e-03
+3.8742338710214801e-03
+3.8357135938970263e-03
+3.7973701546576816e-03
+3.7592040628935796e-03
+3.7212158267150267e-03
+3.6834059452893306e-03
+3.6457749003939513e-03
+3.6083231713100075e-03
+3.5710512175264279e-03
+3.5339594759583488e-03
+3.4970483818799534e-03
+3.4603183636676632e-03
+3.4237698450567994e-03
+3.3874032469451408e-03
+3.3512189717309149e-03
+3.3152174145731701e-03
+3.2793989624070683e-03
+3.2437639727499012e-03
+3.2083127966766141e-03
+3.1730457813010670e-03
+3.1379632656501791e-03
+3.1030655874902638e-03
+3.0683530720436794e-03
+3.0338260296174256e-03
+2.9994847679008251e-03
+2.9653295701630683e-03
+2.9313607023829049e-03
+2.8975784289677190e-03
+2.8639830056971516e-03
+2.8305746848250697e-03
+2.7973537133969668e-03
+2.7643203189475535e-03
+2.7314747244597789e-03
+2.6988171402844651e-03
+2.6663477501703225e-03
+2.6340667343789505e-03
+2.6019742670650063e-03
+2.5700705148144023e-03
+2.5383556426530969e-03
+2.5068297997105273e-03
+2.4754931233723597e-03
+2.4443457470568978e-03
+2.4133877777588464e-03
+2.3826193110386487e-03
+2.3520404398547235e-03
+2.3216512471762457e-03
+2.2914518135072415e-03
+2.2614422112694548e-03
+2.2316224951398557e-03
+2.2019927169888596e-03
+2.1725529115664988e-03
+2.1433030915426468e-03
+2.1142432675868568e-03
+2.0853734425397962e-03
+2.0566936132021775e-03
+2.0282037738265585e-03
+1.9999039009582185e-03
+1.9717939631053809e-03
+1.9438739222551304e-03
+1.9161437140665604e-03
+1.8886032674255821e-03
+1.8612525071649833e-03
+1.8340913488935902e-03
+1.8071197066119359e-03
+1.7803374830442946e-03
+1.7537445657755564e-03
+1.7273408400204850e-03
+1.7011261711790942e-03
+1.6751004087160262e-03
+1.6492634003874040e-03
+1.6236149846451248e-03
+1.5981549954892623e-03
+1.5728832626892950e-03
+1.5477995983390479e-03
+1.5229038096960712e-03
+1.4981956944504443e-03
+1.4736750274968932e-03
+1.4493415801551570e-03
+1.4251951178334704e-03
+1.4012353977028327e-03
+1.3774621754437692e-03
+1.3538751937268545e-03
+1.3304741843071703e-03
+1.3072588759072679e-03
+1.2842289758924967e-03
+1.2613841809961453e-03
+1.2387241857492340e-03
+1.2162486756691774e-03
+1.1939573336164386e-03
+1.1718498361079214e-03
+1.1499258439883141e-03
+1.1281850153035025e-03
+1.1066269956652045e-03
+1.0852514125895959e-03
+1.0640578916233708e-03
+1.0430460514516389e-03
+1.0222155047482056e-03
+1.0015658622433037e-03
+9.8109672085891020e-04
+9.6080767029444922e-04
+9.4069829576927378e-04
+9.2076816243064942e-04
+9.0101682937410361e-04
+8.8144385243585691e-04
+8.6204877924121617e-04
+8.4283115577192861e-04
+8.2379052016715742e-04
+8.0492639872467824e-04
+7.8623831581474261e-04
+7.6772578140451859e-04
+7.4938829234242926e-04
+7.3122534406401399e-04
+7.1323642524447832e-04
+6.9542102080500864e-04
+6.7777861280632139e-04
+6.6030867030579022e-04
+6.4301065817658979e-04
+6.2588403497484089e-04
+6.0892824234278983e-04
+5.9214271877353519e-04
+5.7552689886188209e-04
+5.5908021115733846e-04
+5.4280208302129079e-04
+5.2669193296655484e-04
+5.1074917110676972e-04
+4.9497320553728555e-04
+4.7936343021154744e-04
+4.6391923100426398e-04
+4.4863999228138084e-04
+4.3352509221788722e-04
+4.1857390679590084e-04
+4.0378580814688138e-04
+3.8916015786507425e-04
+3.7469631532317430e-04
+3.6039363226818684e-04
+3.4625144798977381e-04
+3.3226910016665465e-04
+3.1844592241196841e-04
+3.0478124432044220e-04
+2.9127439423167969e-04
+2.7792469202580079e-04
+2.6473145248868995e-04
+2.5169398781516402e-04
+2.3881159782309681e-04
+2.2608357793845417e-04
+2.1350922184364891e-04
+2.0108781861540861e-04
+1.8881865615856874e-04
+1.7670101794070882e-04
+1.6473417998203780e-04
+1.5291741696059208e-04
+1.4124999572169935e-04
+1.2973117506049665e-04
+1.1836021280367758e-04
+1.0713636335078216e-04
+9.6058878872996576e-05
+8.5127010026667715e-05
+7.4340000550751024e-05
+6.3697091518301791e-05
+5.3197520818292104e-05
+4.2840517030199249e-05
+3.2625306614178071e-05
+2.2551114381521539e-05
+1.2617162440744835e-05
+2.8226721624908358e-06
+-6.8331392544092035e-06
+-1.6351059059349235e-05
+-2.5731875611780244e-05
+-3.4976384061902071e-05
+-4.4085384027102072e-05
+-5.3059675830455457e-05
+-6.1900061864731803e-05
+-7.0607345511699651e-05
+-7.9182331796089872e-05
+-8.7625830355333756e-05
+-9.5938652086927697e-05
+-1.0412161111675769e-04
+-1.1217552734409277e-04
+-1.2010122164846794e-04
+-1.2789951586458665e-04
+-1.3557123285221873e-04
+-1.4311719608251297e-04
+-1.5053823201817261e-04
+-1.5783516923677539e-04
+-1.6500883739744529e-04
+-1.7206007084418252e-04
+-1.7898970595992933e-04
+-1.8579857950430949e-04
+-1.9248752863083038e-04
+-1.9905739087095161e-04
+-2.0550900501584225e-04
+-2.1184321198405330e-04
+-2.1806085333120519e-04
+-2.2416277299289506e-04
+-2.3014981761572376e-04
+-2.3602283429280629e-04
+-2.4178266980039444e-04
+-2.4743017080637001e-04
+-2.5296618445338950e-04
+-2.5839155902521551e-04
+-2.6370714348684194e-04
+-2.6891378762674780e-04
+-2.7401234325254219e-04
+-2.7900366291011189e-04
+-2.8388859879094943e-04
+-2.8866800196786316e-04
+-2.9334272369256831e-04
+-2.9791361538806599e-04
+-3.0238152860671922e-04
+-3.0674731527792932e-04
+-3.1101182802510392e-04
+-3.1517592007589005e-04
+-3.1924044469864519e-04
+-3.2320625322340501e-04
+-3.2707419636928781e-04
+-3.3084512487973548e-04
+-3.3451988857653172e-04
+-3.3809933733868370e-04
+-3.4158432103983136e-04
+-3.4497568912212847e-04
+-3.4827429123525421e-04
+-3.5148097540960247e-04
+-3.5459658753097818e-04
+-3.5762197356232312e-04
+-3.6055797801123722e-04
+-3.6340544437386330e-04
+-3.6616521621034314e-04
+-3.6883813551796872e-04
+-3.7142504380181492e-04
+-3.7392678197605060e-04
+-3.7634418753467006e-04
+-3.7867809738123743e-04
+-3.8092934744123725e-04
+-3.8309877099720711e-04
+-3.8518720123178210e-04
+-3.8719546979371181e-04
+-3.8912440619626431e-04
+-3.9097483990747065e-04
+-3.9274759719830951e-04
+-3.9444350189587487e-04
+-3.9606337761573278e-04
+-3.9760804458411649e-04
+-3.9907832164414641e-04
+-4.0047502700714491e-04
+-4.0179897516990097e-04
+-4.0305097990614040e-04
+-4.0423185330497243e-04
+-4.0534240303283507e-04
+-4.0638343635139833e-04
+-4.0735575800161604e-04
+-4.0826016913161396e-04
+-4.0909747070918390e-04
+-4.0986846016196103e-04
+-4.1057393207121872e-04
+-4.1121468062275924e-04
+-4.1179149517906935e-04
+-4.1230516293984420e-04
+-4.1275647018062731e-04
+-4.1314619806393123e-04
+-4.1347512658380481e-04
+-4.1374403382315485e-04
+-4.1395369269107859e-04
+-4.1410487552244615e-04
+-4.1419835144652803e-04
+-4.1423488485764113e-04
+-4.1421523981809952e-04
+-4.1414017603887035e-04
+-4.1401044955342154e-04
+-4.1382681588474703e-04
+-4.1359002490718480e-04
+-4.1330082379455651e-04
+-4.1295995862133809e-04
+-4.1256816937675712e-04
+-4.1212619451755150e-04
+-4.1163477031499937e-04
+-4.1109462693843533e-04
+-4.1050649377562210e-04
+-4.0987109648860792e-04
+-4.0918915502036928e-04
+-4.0846138885079818e-04
+-4.0768851260341503e-04
+-4.0687123660316496e-04
+-4.0601027059057571e-04
+-4.0510631812426675e-04
+-4.0416007963723830e-04
+-4.0317225425967612e-04
+-4.0214353386007219e-04
+-4.0107460831782121e-04
+-3.9996616520902162e-04
+-3.9881888543102803e-04
+-3.9763344894039212e-04
+-3.9641053184058728e-04
+-3.9515080407089345e-04
+-3.9385493499484578e-04
+-3.9252358823292985e-04
+-3.9115742208788862e-04
+-3.8975709422212692e-04
+-3.8832325591118275e-04
+-3.8685655503097537e-04
+-3.8535763815522963e-04
+-3.8382714436187840e-04
+-3.8226571054190614e-04
+-3.8067397090643646e-04
+-3.7905255164657722e-04
+-3.7740207770899624e-04
+-3.7572317021221933e-04
+-3.7401644388787716e-04
+-3.7228251284238860e-04
+-3.7052198552469084e-04
+-3.6873546491279595e-04
+-3.6692355321838978e-04
+-3.6508684507734310e-04
+-3.6322593087040724e-04
+-3.6134139973003780e-04
+-3.5943383338846586e-04
+-3.5750381129058046e-04
+-3.5555191033774026e-04
+-3.5357869947383455e-04
+-3.5158474631680724e-04
+-3.4957061402039784e-04
+-3.4753685800157676e-04
+-3.4548403289468281e-04
+-3.4341268793896916e-04
+-3.4132336692717461e-04
+-3.3921661292116606e-04
+-3.3709296175267575e-04
+-3.3495294499976959e-04
+-3.3279709277906272e-04
+-3.3062592639769399e-04
+-3.2843996425193956e-04
+-3.2623972241404946e-04
+-3.2402570934724216e-04
+-3.2179843217224361e-04
+-3.1955839387752094e-04
+-3.1730608997484859e-04
+-3.1504201513608333e-04
+-3.1276665773480062e-04
+-3.1048049951113484e-04
+-3.0818402146213830e-04
+-3.0587769788604472e-04
+-3.0356199895666320e-04
+-3.0123739353211357e-04
+-2.9890434222474221e-04
+-2.9656330277758226e-04
+-2.9421473026384299e-04
+-2.9185907071930498e-04
+-2.8949676846471269e-04
+-2.8712826409494236e-04
+-2.8475399116486037e-04
+-2.8237438241181771e-04
+-2.7998986487474492e-04
+-2.7760085933148490e-04
+-2.7520778572817124e-04
+-2.7281105618100513e-04
+-2.7041107774710863e-04
+-2.6800825631572681e-04
+-2.6560299029979636e-04
+-2.6319567537641325e-04
+-2.6078670485775560e-04
+-2.5837646367680452e-04
+-2.5596533508080222e-04
+-2.5355369809646595e-04
+-2.5114192346168979e-04
+-2.4873038092678432e-04
+-2.4631943515821691e-04
+-2.4390944499594214e-04
+-2.4150076852927059e-04
+-2.3909375683361779e-04
+-2.3668875624899516e-04
+-2.3428611179657436e-04
+-2.3188615982627436e-04
+-2.2948923332805600e-04
+-2.2709566326453820e-04
+-2.2470577308578241e-04
+-2.2231988464960553e-04
+-2.1993831610091731e-04
+-2.1756137797010732e-04
+-2.1518937980164761e-04
+-2.1282262540463492e-04
+-2.1046141173926736e-04
+-2.0810603500753022e-04
+-2.0575678525180507e-04
+-2.0341394817034202e-04
+-2.0107780832319326e-04
+-1.9874864253220290e-04
+-1.9642672447146676e-04
+-1.9411232556564432e-04
+-1.9180570860507547e-04
+-1.8950713443276326e-04
+-1.8721686071729323e-04
+-1.8493513832853177e-04
+-1.8266221721943143e-04
+-1.8039834234715086e-04
+-1.7814375244870791e-04
+-1.7589868546743137e-04
+-1.7366337242514376e-04
+-1.7143803923853616e-04
+-1.6922291083637297e-04
+-1.6701820542419527e-04
+-1.6482413833793889e-04
+-1.6264092300009538e-04
+-1.6046876516268420e-04
+-1.5830786875084251e-04
+-1.5615843420688992e-04
+-1.5402065421406139e-04
+-1.5189472037698080e-04
+-1.4978082006226451e-04
+-1.4767913513559882e-04
+-1.4558984675993670e-04
+-1.4351313007430124e-04
+-1.4144915558000654e-04
+-1.3939809271992158e-04
+-1.3736010347765320e-04
+-1.3533534648642743e-04
+-1.3332397878262407e-04
+-1.3132615074460492e-04
+-1.2934201107964643e-04
+-1.2737170555031285e-04
+-1.2541537307203521e-04
+-1.2347315153779555e-04
+-1.2154517422445572e-04
+-1.1963156816949319e-04
+-1.1773245969587520e-04
+-1.1584797004329977e-04
+-1.1397821636755148e-04
+-1.1212331492571972e-04
+-1.1028337549550174e-04
+-1.0845850480397560e-04
+-1.0664880789237604e-04
+-1.0485438251343904e-04
+-1.0307532448483983e-04
+-1.0131172718252869e-04
+-9.9563678060298388e-05
+-9.7831263643991532e-05
+-9.6114566548441348e-05
+-9.4413663880372339e-05
+-9.2728632040850047e-05
+-9.1059541995678817e-05
+-8.9406460153530491e-05
+-8.7769452145469387e-05
+-8.6148578140165600e-05
+-8.4543895611050390e-05
+-8.2955460626517392e-05
+-8.1383322947924753e-05
+-7.9827530570021193e-05
+-7.8288128954059799e-05
+-7.6765157164550472e-05
+-7.5258653225105833e-05
+-7.3768651925670676e-05
+-7.2295183312845302e-05
+-7.0838276812195265e-05
+-6.9397957239825762e-05
+-6.7974245381335012e-05
+-6.6567161240018178e-05
+-6.5176719113217772e-05
+-6.3802930347306325e-05
+-6.2445805132423625e-05
+-6.1105348312472145e-05
+-5.9781563151838302e-05
+-5.8474450826872825e-05
+-5.7184007022438695e-05
+-5.5910226470420676e-05
+-5.4653100598596307e-05
+-5.3412615789075286e-05
+-5.2188757797987801e-05
+-5.0981508589837656e-05
+-4.9790846672459779e-05
+-4.8616749894554930e-05
+-4.7459191272041697e-05
+-4.6318141203584747e-05
+-4.5193568948687492e-05
+-4.4085438312269064e-05
+-4.2993711400998250e-05
+-4.1918348626884300e-05
+-4.0859305767659005e-05
+-3.9816537751841489e-05
+-3.8789996785910550e-05
+-3.7779630750606244e-05
+-3.6785386940798732e-05
+-3.5807208881515333e-05
+-3.4845036516046571e-05
+-3.3898809215849934e-05
+-3.2968462380950084e-05
+-3.2053929159101486e-05
+-3.1155141769314877e-05
+-3.0272027861735709e-05
+-2.9404513585756726e-05
+-2.8552523462233988e-05
+-2.7715977379672778e-05
+-2.6894794339069907e-05
+-2.6088891153496555e-05
+-2.5298181021455669e-05
+-2.4522576631309487e-05
+-2.3761987582557384e-05
+-2.3016320417263700e-05
+-2.2285481141511430e-05
+-2.1569371938791879e-05
+-2.0867892725467953e-05
+-2.0180942670972643e-05
+-1.9508417220427315e-05
+-1.8850210527118675e-05
+-1.8206215441490282e-05
+-1.7576320973977939e-05
+-1.6960415351405969e-05
+-1.6358384767880536e-05
+-1.5770111925452772e-05
+-1.5195479034649065e-05
+-1.4634365853653383e-05
+-1.4086649613125853e-05
+-1.3552207099848780e-05
+-1.3030912014283332e-05
+-1.2522636141036257e-05
+-1.2027250591822050e-05
+-1.1544623038603326e-05
+-1.1074619897163055e-05
+-1.0617106569504384e-05
+-1.0171945376213485e-05
+-9.7389979681976302e-06
+-9.3181244012355417e-06
+-8.9091818891699081e-06
+-8.5120272131476094e-06
+-8.1265149828447929e-06
+-7.7524974788335485e-06
+-7.3898266064450109e-06
+-7.0383518790664343e-06
+-6.6979212552686496e-06
+-6.3683821666253947e-06
+-6.0495793418379129e-06
+-5.7413564655494692e-06
+-5.4435563639087427e-06
+-5.1560191725928264e-06
+-4.8785844083625059e-06
+-4.6110903895031676e-06
+-4.3533732273148143e-06
+-4.1052686727275049e-06
+-3.8666108350241565e-06
+-3.6372319931834258e-06
+-3.4169641083490105e-06
+-3.2056371689931169e-06
+-3.0030798222935879e-06
+-2.8091203163193779e-06
+-2.6235849014550599e-06
+-2.4462990083752318e-06
+-2.2770874384198812e-06
+-2.1157729893681903e-06
+-1.9621779611244402e-06
+-1.8161237245620679e-06
+-1.6774298870695324e-06
+-1.5459157497457275e-06
+-1.4213994632039765e-06
+-1.3036978477192718e-06
+-1.1926274774505043e-06
+-1.0880035496462307e-06
+-9.8964027929654700e-07
+-8.9735157894672669e-07
+-8.1094990429974009e-07
+-7.3024707370071657e-07
+-6.5505448221830944e-07
+-5.8518219133344766e-07
+-5.2043989628742116e-07
+-4.6063668928495653e-07
+-4.0558050083216389e-07
+-3.5507903000834884e-07
+-3.0893922573865466e-07
+-2.6696714139567722e-07
+-2.2896864937682697e-07
+-1.9474881116131358e-07
+-1.6411207752505978e-07
+-1.3686270167825232e-07
+-1.1280411493123746e-07
+-9.1739353662227625e-08
+-7.3471204545389396e-08
+-5.7801729067801123e-08
+-4.4532753870454007e-08
+-3.3465802409009446e-08
+-2.4401836934169916e-08
+-1.7141670674670606e-08
+-1.1485797010867341e-08
+-7.2343252810345534e-09
+-4.1872488071225797e-09
+-2.1442434255491452e-09
+-9.0472500515277045e-10
+-2.6802458507322774e-10
+-3.3392824293472323e-11
+0.0000000000000000e+00
+1.7442255841425768e-03
+3.5214469100102825e-03
+5.3315926415478544e-03
+7.1745914929967191e-03
+9.0503722288949925e-03
+1.0958863664077521e-02
+1.2899994663675800e-02
+1.4873694143117991e-02
+1.6879891068129038e-02
+1.8918514454730518e-02
+2.0989493369240685e-02
+2.3092756928274567e-02
+2.5228234298743803e-02
+2.7395854697856756e-02
+2.9595547393118447e-02
+3.1827241702330665e-02
+3.4090866993591880e-02
+3.6386352685297135e-02
+3.8713628246138374e-02
+4.1072623195104019e-02
+4.3463267101479311e-02
+4.5885489584846166e-02
+4.8339220315083205e-02
+5.0824389012365689e-02
+5.3340925447165573e-02
+5.5888759440251699e-02
+5.8467820862689257e-02
+6.1078039635840402e-02
+6.3719345731363813e-02
+6.6391669171215043e-02
+6.9094940027646171e-02
+7.1829088423206053e-02
+7.4594044530740367e-02
+7.7389738573391070e-02
+8.0216100824597306e-02
+8.3073061608094509e-02
+8.5960551297915105e-02
+8.8878500318388023e-02
+9.1826839144138930e-02
+9.4805498300090454e-02
+9.7814408361461408e-02
+1.0085349995376776e-01
+1.0392270375282167e-01
+1.0702195048473258e-01
+1.1015117092590616e-01
+1.1331029590304517e-01
+1.1649925629314872e-01
+1.1971798302351275e-01
+1.2296640707172993e-01
+1.2624445946568952e-01
+1.2955207128357740e-01
+1.3288917365387651e-01
+1.3625569775536608e-01
+1.3965157481712240e-01
+1.4307673611851801e-01
+1.4653111298922250e-01
+1.5001463680920193e-01
+1.5352723900871940e-01
+1.5706885106833446e-01
+1.6063940451890313e-01
+1.6423883094157848e-01
+1.6786706196781015e-01
+1.7152402927934429e-01
+1.7520966460822426e-01
+1.7892389973678943e-01
+1.8266666649767654e-01
+1.8643789677381845e-01
+1.9023752249844528e-01
+1.9406547565508298e-01
+1.9792168827755502e-01
+2.0180609244998132e-01
+2.0571862030677843e-01
+2.0965920403265975e-01
+2.1362777586263493e-01
+2.1762426808201071e-01
+2.2164861302639058e-01
+2.2570074308167445e-01
+2.2978059068405893e-01
+2.3388808832003782e-01
+2.3802316852640093e-01
+2.4218576389023536e-01
+2.4637580704892403e-01
+2.5059323069014749e-01
+2.5483796755188287e-01
+2.5910995042240337e-01
+2.6340911214027957e-01
+2.6773538559437809e-01
+2.7208870372386296e-01
+2.7646899951819415e-01
+2.8087620601712898e-01
+2.8531025631072110e-01
+2.8977108353932096e-01
+2.9425862089357568e-01
+2.9877280161442910e-01
+3.0331355899312196e-01
+3.0788082637119080e-01
+3.1247453714047013e-01
+3.1709462474309025e-01
+3.2174102267147847e-01
+3.2641366446835934e-01
+3.3111248372675262e-01
+3.3583741408997625e-01
+3.4058838925164397e-01
+3.4536534295566690e-01
+3.5016820899625212e-01
+3.5499692121790394e-01
+3.5985141351542310e-01
+3.6473161983390734e-01
+3.6963747416875087e-01
+3.7456891056564434e-01
+3.7952586312057557e-01
+3.8450826597982840e-01
+3.8951605333998446e-01
+3.9454915944792124e-01
+3.9960751860081306e-01
+4.0469106514613090e-01
+4.0979973348164267e-01
+4.1493345805541260e-01
+4.2009217336580190e-01
+4.2527581396146852e-01
+4.3048431444136731e-01
+4.3571760945474919e-01
+4.4097563370116216e-01
+4.4625832193045012e-01
+4.5156560894275527e-01
+4.5689742958851542e-01
+4.6225371876846522e-01
+4.6763441143363621e-01
+4.7303944258535613e-01
+4.7846874727524991e-01
+4.8392226060523902e-01
+4.8939991772754143e-01
+4.9490165384467216e-01
+5.0042740420944343e-01
+5.0597710412496288e-01
+5.1155068894463473e-01
+5.1714809407216145e-01
+5.2276925496154114e-01
+5.2841410711706882e-01
+5.3408258609333659e-01
+5.3977462749523231e-01
+5.4549016697794150e-01
+5.5122914024694558e-01
+5.5699148305802304e-01
+5.6277713121724926e-01
+5.6858602058099583e-01
+5.7441808705593211e-01
+5.8027326659902279e-01
+5.8615149521752907e-01
+5.9205270896901063e-01
+5.9797684396132222e-01
+6.0392383635261615e-01
+6.0989362235134148e-01
+6.1588613821624338e-01
+6.2190132025636369e-01
+6.2793910483104109e-01
+6.3399942834991141e-01
+6.4008222727290676e-01
+6.4618743811025603e-01
+6.5231499742248500e-01
+6.5846484182041554e-01
+6.6463690796516672e-01
+6.7083113256815441e-01
+6.7704745239109065e-01
+6.8328580424598451e-01
+6.8954612499514201e-01
+6.9582835155116551e-01
+7.0213242087695416e-01
+7.0845826998570360e-01
+7.1480583594090596e-01
+7.2117505585635133e-01
+7.2756586689612468e-01
+7.3397820627460897e-01
+7.4041201125648404e-01
+7.4686721915672494e-01
+7.5334376734060537e-01
+7.5984159322369349e-01
+7.6636063427185608e-01
+7.7290082800125570e-01
+7.7946211197835136e-01
+7.8604442381990069e-01
+7.9264770119295491e-01
+7.9927188181486419e-01
+8.0591690345327471e-01
+8.1258270392612897e-01
+8.1926922110166722e-01
+8.2597639289842506e-01
+8.3270415728523628e-01
+8.3945245228122989e-01
+8.4622121595583277e-01
+8.5301038642876736e-01
+8.5981990187005419e-01
+8.6664970050000900e-01
+8.7349972058924530e-01
+8.8036990045867269e-01
+8.8726017847949834e-01
+8.9417049307322449e-01
+9.0110078271165162e-01
+9.0805098591687605e-01
+9.1502104126129158e-01
+9.2201088736758752e-01
+9.2902046290875173e-01
+9.3604970660806652e-01
+9.4309855723911185e-01
+9.5016695362576531e-01
+9.5725483464219974e-01
+9.6436213921288527e-01
+9.7148880631258949e-01
+9.7863477496637519e-01
+9.8579998424960302e-01
+9.9298437328792954e-01
+1.0001878812573084e+00
+1.0074104473839902e+00
+1.0146520109445221e+00
+1.0219125112657470e+00
+1.0291918877248061e+00
+1.0364900797491368e+00
+1.0438070268164712e+00
+1.0511426684548413e+00
+1.0584969442425736e+00
+1.0658697938082926e+00
+1.0732611568309187e+00
+1.0806709730396682e+00
+1.0880991822140560e+00
+1.0955457241838922e+00
+1.1030105388292843e+00
+1.1104935660806363e+00
+1.1179947459186492e+00
+1.1255140183743209e+00
+1.1330513235289439e+00
+1.1406066015141105e+00
+1.1481797925117074e+00
+1.1557708367539183e+00
+1.1633796745232250e+00
+1.1710062461524051e+00
+1.1786504920245324e+00
+1.1863123525729777e+00
+1.1939917682814098e+00
+1.2016886796837913e+00
+1.2094030273643843e+00
+1.2171347519577467e+00
+1.2248837941487321e+00
+1.2326500946724925e+00
+1.2404335943144751e+00
+1.2482342339104247e+00
+1.2560519543463819e+00
+1.2638866965586852e+00
+1.2717384015339694e+00
+1.2796070103091650e+00
+1.2874924639715004e+00
+1.2953947036584998e+00
+1.3033136705579851e+00
+1.3112493059080745e+00
+1.3192015509971822e+00
+1.3271703471640197e+00
+1.3351556357975956e+00
+1.3431573583372141e+00
+1.3511754562724771e+00
+1.3592098711432823e+00
+1.3672605445398256e+00
+1.3753274181025974e+00
+1.3834104335223874e+00
+1.3915095325402789e+00
+1.3996246569476547e+00
+1.4077557485861927e+00
+1.4159027493478682e+00
+1.4240656011749528e+00
+1.4322442460600149e+00
+1.4404386260459201e+00
+1.4486486832258301e+00
+1.4568743597432026e+00
+1.4651155977917931e+00
+1.4733723396156544e+00
+1.4816445275091339e+00
+1.4899321038168778e+00
+1.4982350109338283e+00
+1.5065531913052232e+00
+1.5148865874265982e+00
+1.5232351418437848e+00
+1.5315987971529128e+00
+1.5399774960004073e+00
+1.5483711810829903e+00
+1.5567797951476807e+00
+1.5652032809917944e+00
+1.5736415814629428e+00
+1.5820946394590349e+00
+1.5905623979282768e+00
+1.5990447998691708e+00
+1.6075417883305163e+00
+1.6160533064114080e+00
+1.6245792972612394e+00
+1.6331197040796981e+00
+1.6416744701167714e+00
+1.6502435386727401e+00
+1.6588268530981847e+00
+1.6674243567939810e+00
+1.6760359932113011e+00
+1.6846617058516145e+00
+1.6933014382666867e+00
+1.7019551340585803e+00
+1.7106227368796552e+00
+1.7193041904325668e+00
+1.7279994384702695e+00
+1.7367084247960101e+00
+1.7454310932633366e+00
+1.7541673877760904e+00
+1.7629172522884120e+00
+1.7716806308047366e+00
+1.7804574673797986e+00
+1.7892477061186265e+00
+1.7980512911765467e+00
+1.8068681667591824e+00
+1.8156982771224524e+00
+1.8245415665725737e+00
+1.8333979794660606e+00
+1.8422674602097200e+00
+1.8511499532606603e+00
+1.8600454031262841e+00
+1.8689537543642907e+00
+1.8778749515826771e+00
+1.8868089394397363e+00
+1.8957556626440593e+00
+1.9047150659545307e+00
+1.9136870941803354e+00
+1.9226716921809519e+00
+1.9316688048661579e+00
+1.9406783771960265e+00
+1.9497003541809279e+00
+1.9587346808815289e+00
+1.9677813024087920e+00
+1.9768401639239788e+00
+1.9859112106386447e+00
+1.9949943878146437e+00
+2.0040896407641262e+00
+2.0131969148495390e+00
+2.0223161554836255e+00
+2.0314473081294264e+00
+2.0405903183002789e+00
+2.0497451315598152e+00
+2.0589116935219667e+00
+2.0680899498509606e+00
+2.0772798462613200e+00
+2.0864813285178663e+00
+2.0956943424357162e+00
+2.1049188338802822e+00
+2.1141547487672767e+00
+2.1234020330627059e+00
+2.1326606327828741e+00
+2.1419304939943817e+00
+2.1512115628141264e+00
+2.1605037854093019e+00
+2.1698071079973982e+00
+2.1791214768462037e+00
+2.1884468382738014e+00
+2.1977831386485733e+00
+2.2071303243891958e+00
+2.2164883419646437e+00
+2.2258571378941876e+00
+2.2352366587473949e+00
+2.2446268511441301e+00
+2.2540276617545540e+00
+2.2634390372991233e+00
+2.2728609245485942e+00
+2.2822932703240157e+00
+2.2917360214967375e+00
+2.3011891249884018e+00
+2.3106525277709511e+00
+2.3201261768666228e+00
+2.3296100193479510e+00
+2.3391040023377681e+00
+2.3486080730092000e+00
+2.3581221785856736e+00
+2.3676462663409081e+00
+2.3771802835989218e+00
+2.3867241777340298e+00
+2.3962778961708433e+00
+2.4058413863842705e+00
+2.4154145958995157e+00
+2.4249974722920813e+00
+2.4345899631877628e+00
+2.4441920162626576e+00
+2.4538035792431567e+00
+2.4634245999059470e+00
+2.4730550260780153e+00
+2.4826948056366414e+00
+2.4923438865094041e+00
+2.5020022166741787e+00
+2.5116697441591360e+00
+2.5213464170427451e+00
+2.5310321834537706e+00
+2.5407269915712751e+00
+2.5504307896246159e+00
+2.5601435258934484e+00
+2.5698651487077244e+00
+2.5795956064476924e+00
+2.5893348475438973e+00
+2.5990828204771810e+00
+2.6088394737786840e+00
+2.6186047560298391e+00
+2.6283786158623790e+00
+2.6381610019583315e+00
+2.6479518630500234e+00
+2.6577511479200759e+00
+2.6675588054014088e+00
+2.6773747843772360e+00
+2.6871990337810705e+00
+2.6970315025967211e+00
+2.7068721398582922e+00
+2.7167208946501873e+00
+2.7265777161071050e+00
+2.7364425534140411e+00
+2.7463153558062867e+00
+2.7561960725694319e+00
+2.7660846530393615e+00
+2.7759810466022588e+00
+2.7858852026946015e+00
+2.7957970708031672e+00
+2.8057166004650274e+00
+2.8156437412675501e+00
+2.8255784428484034e+00
+2.8355206548955478e+00
+2.8454703271472428e+00
+2.8554274093920449e+00
+2.8653918514688073e+00
+2.8753636032666776e+00
+2.8853426147251033e+00
+2.8953288358338263e+00
+2.9053222166328858e+00
+2.9153227072126180e+00
+2.9253302577136560e+00
+2.9353448183269286e+00
+2.9453663392936629e+00
+2.9553947709053809e+00
+2.9654300635039030e+00
+2.9754721674813438e+00
+2.9855210332801176e+00
+2.9955766113929330e+00
+3.0056388523627975e+00
+3.0157077067830134e+00
+3.0257831252971803e+00
+3.0358650585991955e+00
+3.0459534574332503e+00
+3.0560482725938365e+00
+3.0661494549257386e+00
+3.0762569553240406e+00
+3.0863707247341226e+00
+3.0964907141516598e+00
+3.1066168746226275e+00
+3.1167491572432935e+00
+3.1268875131602263e+00
+3.1370318935702883e+00
+3.1471822497206396e+00
+3.1573385329087373e+00
+3.1675006944823338e+00
+3.1776686858394796e+00
+3.1878424584285212e+00
+3.1980219637481029e+00
+3.2082071533471654e+00
+3.2183979788249433e+00
+3.2285943918309723e+00
+3.2387963440650811e+00
+3.2490037872773971e+00
+3.2592166732683445e+00
+3.2694349538886427e+00
+3.2796585810393095e+00
+3.2898875066716582e+00
+3.3001216827872999e+00
+3.3103610614381398e+00
+3.3206055947263833e+00
+3.3308552348045306e+00
+3.3411099338753796e+00
+3.3513696441920229e+00
+3.3616343180578516e+00
+3.3719039078265522e+00
+3.3821783659021096e+00
+3.3924576447388035e+00
+3.4027416968412130e+00
+3.4130304747642097e+00
+3.4233239311129662e+00
+3.4336220185429500e+00
+3.4439246897599238e+00
+3.4542318975199486e+00
+3.4645435946293821e+00
+3.4748597339448795e+00
+3.4851802683733908e+00
+3.4955051508721628e+00
+3.5058343344487422e+00
+3.5161677721609674e+00
+3.5265054171169772e+00
+3.5368472224752057e+00
+3.5471931414443838e+00
+3.5575431272835392e+00
+3.5678971333019969e+00
+3.5782551128593769e+00
+3.5886170193655977e+00
+3.5989828062808744e+00
+3.6093524271157169e+00
+3.6197258354309341e+00
+3.6301029848376309e+00
+3.6404838289972075e+00
+3.6508683216213620e+00
+3.6612564164720895e+00
+3.6716480673616800e+00
+3.6820432281527240e+00
+3.6924418527581051e+00
+3.7028438951410041e+00
+3.7132493093148997e+00
+3.7236580493435665e+00
+3.7340700693410755e+00
+3.7444853234717965e+00
+3.7549037659503930e+00
+3.7653253510418270e+00
+3.7757500330613576e+00
+3.7861777663745380e+00
+3.7966085053972209e+00
+3.8070422045955543e+00
+3.8174788184859834e+00
+3.8279183016352514e+00
+3.8383606086603943e+00
+3.8488056942287492e+00
+3.8592535130579457e+00
+3.8697040199159147e+00
+3.8801571696208801e+00
+3.8906129170413641e+00
+3.9010712170961854e+00
+3.9115320247544592e+00
+3.9219952950355981e+00
+3.9324609830093089e+00
+3.9429290437955995e+00
+3.9533994325647694e+00
+3.9638721045374190e+00
+3.9743470149844442e+00
+3.9848241192270364e+00
+3.9953033726366840e+00
+4.0057847306351722e+00
+4.0162681486945848e+00
+4.0267535823372995e+00
+4.0372409871359922e+00
+4.0477303187136364e+00
+4.0582215327434987e+00
+4.0687145849491468e+00
+4.0792094311044416e+00
+4.0897060270335430e+00
+4.1002043286109071e+00
+4.1107042917612855e+00
+4.1212058724597282e+00
+4.1317090267315812e+00
+4.1422137106524861e+00
+4.1527198803483820e+00
+4.1632274919955048e+00
+4.1737365018203887e+00
+4.1842468660998620e+00
+4.1947585411610513e+00
+4.2052714833813782e+00
+4.2157856491885619e+00
+4.2263009950606198e+00
+4.2368174775258645e+00
+4.2473350531629039e+00
+4.2578536786006467e+00
+4.2683733105182942e+00
+4.2788939056453463e+00
+4.2894154207615980e+00
+4.2999378126971433e+00
+4.3104610383323729e+00
+4.3209850545979709e+00
+4.3315098184749230e+00
+4.3420352869945065e+00
+4.3525614172382996e+00
+4.3630881663381738e+00
+4.3736154914762997e+00
+4.3841433498851439e+00
+4.3946716988474686e+00
+4.4052004956963353e+00
+4.4157296978150997e+00
+4.4262592626374158e+00
+4.4367891476472314e+00
+4.4473193103787949e+00
+4.4578497084166502e+00
+4.4683802993956361e+00
+4.4789110410008890e+00
+4.4894418909678437e+00
+4.4999728070822309e+00
+4.5105037471800751e+00
+4.5210346691477001e+00
+4.5315655309217275e+00
+4.5420962904890727e+00
+4.5526269058869513e+00
+4.5631573352028711e+00
+4.5736875365746421e+00
+4.5842174681903645e+00
+4.5947470882884405e+00
+4.6052763551575673e+00
+4.6158052271367387e+00
+4.6263336626152451e+00
+4.6368616200326729e+00
+4.6473890578789057e+00
+4.6579159346941248e+00
+4.6684422090688082e+00
+4.6789678396437280e+00
+4.6894927851099553e+00
+4.7000170042088580e+00
+4.7105404557321000e+00
+4.7210630985216415e+00
+4.7315848914697405e+00
+4.7421057935189497e+00
+4.7526257636621221e+00
+4.7631447609424029e+00
+4.7736627444532376e+00
+4.7841796733383664e+00
+4.7946955067918271e+00
+4.8052102040579543e+00
+4.8157237244313782e+00
+4.8262360272570257e+00
+4.8367470719301231e+00
+4.8472568178961906e+00
+4.8577652246510450e+00
+4.8682722517408008e+00
+4.8787778587618709e+00
+4.8892820053609611e+00
+4.8997846512350769e+00
+4.9102857561315174e+00
+4.9207852798478839e+00
+4.9312831822320691e+00
+4.9417794231822629e+00
+4.9522739626469559e+00
+4.9627667606249304e+00
+4.9732577771652693e+00
+4.9837469723673502e+00
+4.9942343063808483e+00
+5.0047197394057328e+00
+5.0152032316922730e+00
+5.0256847435410350e+00
+5.0361642353028797e+00
+5.0466416673789629e+00
+5.0571170002207424e+00
+5.0675901943299682e+00
+5.0780612102586895e+00
+5.0885300086092506e+00
+5.0989965500342933e+00
+5.1094607952367559e+00
+5.1199227049698726e+00
+5.1303822400371768e+00
+5.1408393612924952e+00
+5.1512940296399545e+00
+5.1617462060339747e+00
+5.1721958514792767e+00
+5.1826429270308729e+00
+5.1930873937940776e+00
+5.2035292129244972e+00
+5.2139683456280395e+00
+5.2244047531609032e+00
+5.2348383968295886e+00
+5.2452692379908923e+00
+5.2556972380519049e+00
+5.2661223584700156e+00
+5.2765445607529085e+00
+5.2869638064585676e+00
+5.2973800571952703e+00
+5.3077932746215932e+00
+5.3182034204464079e+00
+5.3286104564288834e+00
+5.3390143443784845e+00
+5.3494150461549745e+00
+5.3598125236684124e+00
+5.3702067388791530e+00
+5.3805976537978495e+00
+5.3909852304854500e+00
+5.4013694310532019e+00
+5.4117502176626449e+00
+5.4221275525256205e+00
+5.4325013979042645e+00
+5.4428717161110081e+00
+5.4532384695085803e+00
+5.4636016205100075e+00
+5.4739611315786147e+00
+5.4843169652280173e+00
+5.4946690840221333e+00
+5.5050174505751750e+00
+5.5153620275516513e+00
+5.5257027776663685e+00
+5.5360396636844298e+00
+5.5463726484212348e+00
+5.5567016947424790e+00
+5.5670267655641554e+00
+5.5773478238525529e+00
+5.5876648326242595e+00
+5.5979777549461565e+00
+5.6082865539354234e+00
+5.6185911927595376e+00
+5.6288916346362718e+00
+5.6391878428336941e+00
+5.6494797806701733e+00
+5.6597674115143706e+00
+5.6700506987852473e+00
+5.6803296059520578e+00
+5.6906040965343578e+00
+5.7008741341019951e+00
+5.7111396822751175e+00
+5.7214007047241671e+00
+5.7316571651698842e+00
+5.7419090273833051e+00
+5.7521562551857652e+00
+5.7623988124488914e+00
+5.7726366630946133e+00
+5.7828697710951511e+00
+5.7930981004730269e+00
+5.8033216153010585e+00
+5.8135402797023570e+00
+5.8237540578503326e+00
+5.8339629139686950e+00
+5.8441668123314443e+00
+5.8543657172628834e+00
+5.8645595931376073e+00
+5.8747484043805107e+00
+5.8849321154667837e+00
+5.8951106909219133e+00
+5.9052840953216830e+00
+5.9154522932921729e+00
+5.9256152495097618e+00
+5.9357729287011214e+00
+5.9459252956432227e+00
+5.9560723151633335e+00
+5.9662139521390172e+00
+5.9763501714981340e+00
+5.9864809382188424e+00
+5.9966062173295942e+00
+6.0067259739091430e+00
+6.0168401730865329e+00
+6.0269487800411108e+00
+6.0370517600025151e+00
+6.0471490782506852e+00
+6.0572407001158535e+00
+6.0673265909785501e+00
+6.0774067162696062e+00
+6.0874810414701424e+00
+6.0975495321115805e+00
+6.1076121537756398e+00
+6.1176688720943320e+00
+6.1277196527499687e+00
+6.1377644614751592e+00
+6.1478032640528069e+00
+6.1578360263161116e+00
+6.1678627141485718e+00
+6.1778832934839825e+00
+6.1878977303064344e+00
+6.1979059906503160e+00
+6.2079080406003095e+00
+6.2179038462913994e+00
+6.2278933739088602e+00
+6.2378765896882697e+00
+6.2478534599154969e+00
+6.2578239509267108e+00
+6.2677880291083756e+00
+6.2777456608972528e+00
+6.2876968127803998e+00
+6.2976414512951724e+00
+6.3075795430292212e+00
+6.3175110546204971e+00
+6.3274359527572397e+00
+6.3373542041779940e+00
+6.3472657756715982e+00
+6.3571706340771863e+00
+6.3670687462841897e+00
+6.3769600792323375e+00
+6.3868445999116537e+00
+6.3967222753624604e+00
+6.4065930726753768e+00
+6.4164569589913167e+00
+6.4263139015014934e+00
+6.4361638674474131e+00
+6.4460068241208832e+00
+6.4558427388640043e+00
+6.4656715790691743e+00
+6.4754933121790899e+00
+6.4853079056867422e+00
+6.4951153271354194e+00
+6.5049155441187070e+00
+6.5147085242804881e+00
+6.5244942353149398e+00
+6.5342726449665394e+00
+6.5440437210300564e+00
+6.5538074313505623e+00
+6.5635637438234209e+00
+6.5733126263942943e+00
+6.5830540470591421e+00
+6.5927879738642181e+00
+6.6025143749060771e+00
+6.6122332183315660e+00
+6.6219444723378320e+00
+6.6316481051723164e+00
+6.6413440851327579e+00
+6.6510323805671927e+00
+6.6607129598739538e+00
+6.6703857915016682e+00
+6.6800508439492647e+00
+6.6897080857659645e+00
+6.6993574855512845e+00
+6.7089990119550436e+00
+6.7186326336773536e+00
+6.7282583194686216e+00
+6.7378760381295564e+00
+6.7474857585111589e+00
+6.7570874495147288e+00
+6.7666810800918640e+00
+6.7762666192444536e+00
+6.7858440360246899e+00
+6.7954132995350580e+00
+6.8049743789283408e+00
+6.8145272434076167e+00
+6.8240718622262628e+00
+6.8336082046879536e+00
+6.8431362401466549e+00
+6.8526559380066372e+00
+6.8621672677224588e+00
+6.8716701987989843e+00
+6.8811647007913663e+00
+6.8906507433050592e+00
+6.9001282959958123e+00
+6.9095973285696735e+00
+6.9190578107829834e+00
+6.9285097124423833e+00
+6.9379530034048109e+00
+6.9473876535774961e+00
+6.9568136329179717e+00
+6.9662309114340628e+00
+6.9756394591838928e+00
+6.9850392462758828e+00
+6.9944302428687477e+00
+7.0038124191715019e+00
+7.0131857454434554e+00
+7.0225501919942150e+00
+7.0319057291836842e+00
+7.0412523274220611e+00
+7.0505899571698452e+00
+7.0599185889378298e+00
+7.0692381932871040e+00
+7.0785487408290546e+00
+7.0878502022253649e+00
+7.0971425481880166e+00
+7.1064257494792855e+00
+7.1156997769117458e+00
+7.1249646013482684e+00
+7.1342201937020180e+00
+7.1434665249364606e+00
+7.1527035660653571e+00
+7.1619312881527630e+00
+7.1711496623130317e+00
+7.1803586597108149e+00
+7.1895582515610608e+00
+7.1987484091290117e+00
+7.2079291037302076e+00
+7.2171003067304866e+00
+7.2262619895459839e+00
+7.2354141236431282e+00
+7.2445566805386488e+00
+7.2536896317995678e+00
+7.2628129490432070e+00
+7.2719266039371835e+00
+7.2810305681994123e+00
+7.2901248135981032e+00
+7.2992093119517643e+00
+7.3082840351291987e+00
+7.3173489550495088e+00
+7.3264040436820910e+00
+7.3354492730466410e+00
+7.3444846152131475e+00
+7.3535100423019015e+00
+7.3625255264834850e+00
+7.3715310399787795e+00
+7.3805265550589629e+00
+7.3895120440455093e+00
+7.3984874793101909e+00
+7.4074528332750740e+00
+7.4164080784125241e+00
+7.4253531872452019e+00
+7.4342881323460661e+00
+7.4432128863383715e+00
+7.4521274218956677e+00
+7.4610317117418044e+00
+7.4699257286509253e+00
+7.4788094454474736e+00
+7.4876828350061846e+00
+7.4965458702520946e+00
+7.5053985241605350e+00
+7.5142407697571354e+00
+7.5230725801178178e+00
+7.5318939283688042e+00
+7.5407047876866153e+00
+7.5495051312980630e+00
+7.5582949324802602e+00
+7.5670741645606165e+00
+7.5758428009168348e+00
+7.5846008149769188e+00
+7.5933481802191656e+00
+7.6020848701721695e+00
+7.6108108584148253e+00
+7.6195261185763181e+00
+7.6282306243361351e+00
+7.6369243494240573e+00
+7.6456072676201634e+00
+7.6542793527548287e+00
+7.6629405787087252e+00
+7.6715909194128216e+00
+7.6802303488483838e+00
+7.6888588410469731e+00
+7.6974763700904481e+00
+7.7060829101109647e+00
+7.7146784352909750e+00
+7.7232629198632274e+00
+7.7318363381107664e+00
+7.7403986643669365e+00
+7.7489498730153752e+00
+7.7574899384900178e+00
+7.7660188352750970e+00
+7.7745365379051430e+00
+7.7830430209649784e+00
+7.7915382590897293e+00
+7.8000222269648116e+00
+7.8084948993259422e+00
+7.8169562509591346e+00
+7.8254062567006963e+00
+7.8338448914372325e+00
+7.8422721301056493e+00
+7.8506879476931424e+00
+7.8590923192372086e+00
+7.8674852198256398e+00
+7.8758666245965276e+00
+7.8842365087382555e+00
+7.8925948474895078e+00
+7.9009416161392627e+00
+7.9092767900267971e+00
+7.9176003445416834e+00
+7.9259122551237908e+00
+7.9342124972632861e+00
+7.9425010465006318e+00
+7.9507778784265861e+00
+7.9590429686822084e+00
+7.9672962929588476e+00
+7.9755378269981554e+00
+7.9837675465920785e+00
+7.9919854275828612e+00
+8.0001914458630381e+00
+8.0083855773754511e+00
+8.0165677981132308e+00
+8.0247380841198073e+00
+8.0328964114889043e+00
+8.0410427563645488e+00
+8.0491770949410615e+00
+8.0572994034630554e+00
+8.0654096582254446e+00
+8.0735078355734409e+00
+8.0815939119025479e+00
+8.0896678636585690e+00
+8.0977296673376102e+00
+8.1057792994860591e+00
+8.1138167367006169e+00
+8.1218419556282697e+00
+8.1298549329663050e+00
+8.1378556454623041e+00
+8.1458440699141512e+00
+8.1538201831700210e+00
+8.1617839621283874e+00
+8.1697353837380202e+00
+8.1776744249979885e+00
+8.1856010629576517e+00
+8.1935152747166722e+00
+8.2014170374250099e+00
+8.2093063282829135e+00
+8.2171831245409361e+00
+8.2250474034999250e+00
+8.2328991425110232e+00
+8.2407383189756711e+00
+8.2485649103456069e+00
+8.2563788941228626e+00
+8.2641802478597715e+00
+8.2719689491589588e+00
+8.2797449756733474e+00
+8.2875083051061615e+00
+8.2952589152109137e+00
+8.3029967837914231e+00
+8.3107218887017975e+00
+8.3184342078464439e+00
+8.3261337191800671e+00
+8.3338204007076673e+00
+8.3414942304845425e+00
+8.3491551866162883e+00
+8.3568032472587941e+00
+8.3644383906182487e+00
+8.3720605949511349e+00
+8.3796698385642330e+00
+8.3872660998146209e+00
+8.3948493571096758e+00
+8.4024195889070654e+00
+8.4099767737147602e+00
+8.4175208900910228e+00
+8.4250519166444118e+00
+8.4325698320337903e+00
+8.4400746149683101e+00
+8.4475662442074224e+00
+8.4550446985608758e+00
+8.4625099568887148e+00
+8.4699619981012795e+00
+8.4774008011592077e+00
+8.4848263450734365e+00
+8.4922386089051933e+00
+8.4996375717660104e+00
+8.5070232128177121e+00
+8.5143955112724168e+00
+8.5217544463925439e+00
+8.5290999974908086e+00
+8.5364321439302220e+00
+8.5437508651240925e+00
+8.5510561405360264e+00
+8.5583479496799235e+00
+8.5656262721199816e+00
+8.5728910874706976e+00
+8.5801423753968624e+00
+8.5873801156135627e+00
+8.5946042878861864e+00
+8.6018148720304133e+00
+8.6090118479122228e+00
+8.6161951954478901e+00
+8.6233648946039860e+00
+8.6305209253973807e+00
+8.6376632678952365e+00
+8.6447919022150170e+00
+8.6519068085244815e+00
+8.6590079670416849e+00
+8.6660953580349780e+00
+8.6731689618230128e+00
+8.6802287587747298e+00
+8.6872747293093742e+00
+8.6943068538964852e+00
+8.7013251130558977e+00
+8.7083294873577408e+00
+8.7153199574224480e+00
+8.7222965039207416e+00
+8.7292591075736450e+00
+8.7362077491524772e+00
+8.7431424094788532e+00
+8.7500630694246873e+00
+8.7569697099121857e+00
+8.7638623119138543e+00
+8.7707408564524982e+00
+8.7776053246012147e+00
+8.7844556974833985e+00
+8.7912919562727438e+00
+8.7981140821932389e+00
+8.8049220565191710e+00
+8.8117158605751200e+00
+8.8184954757359684e+00
+8.8252608834268891e+00
+8.8320120651233562e+00
+8.8387490023511397e+00
+8.8454716766863033e+00
+8.8521800697552138e+00
+8.8588741632345265e+00
+8.8655539388511979e+00
+8.8722193783824821e+00
+8.8788704636559288e+00
+8.8855071765493836e+00
+8.8921294989909896e+00
+8.8987374129591856e+00
+8.9053309004827081e+00
+8.9119099436405911e+00
+8.9184745245621642e+00
+8.9250246254270511e+00
+8.9315602284651785e+00
+8.9380813159567634e+00
+8.9445878702323238e+00
+8.9510798736726738e+00
+8.9575573087089193e+00
+8.9640201578224694e+00
+8.9704684035450271e+00
+8.9769020284585910e+00
+8.9833210151954610e+00
+8.9897253464382256e+00
+8.9961150049197780e+00
+9.0024899734233053e+00
+9.0088502347822885e+00
+9.0151957718805082e+00
+9.0215265676520424e+00
+9.0278426050812648e+00
+9.0341438672028431e+00
+9.0404303371017463e+00
+9.0467019979132370e+00
+9.0529588328228758e+00
+9.0592008250665188e+00
+9.0654279579303196e+00
+9.0716402147507313e+00
+9.0778375789144956e+00
+9.0840200338586605e+00
+9.0901875630705646e+00
+9.0963401500878458e+00
+9.1024777784984359e+00
+9.1086004319405678e+00
+9.1147080941027667e+00
+9.1208007487238589e+00
+9.1268783795929629e+00
+9.1329409705494946e+00
+9.1389885054831712e+00
+9.1450209683340002e+00
+9.1510383430922921e+00
+9.1570406137986495e+00
+9.1630277645439708e+00
+9.1689997794694555e+00
+9.1749566427665972e+00
+9.1808983386771885e+00
+9.1868248514933128e+00
+9.1927361655573598e+00
+9.1986322652620043e+00
+9.2045131350502274e+00
+9.2103787594153044e+00
+9.2162291229008027e+00
+9.2220642101005925e+00
+9.2278840056588365e+00
+9.2336884942699964e+00
+9.2394776606788280e+00
+9.2452514896803919e+00
+9.2510099661200300e+00
+9.2567530748933979e+00
+9.2624808009464363e+00
+9.2681931292753870e+00
+9.2738900449267891e+00
+9.2795715329974744e+00
+9.2852375786345753e+00
+9.2908881670355221e+00
+9.2965232834480354e+00
+9.3021429131701385e+00
+9.3077470415501509e+00
+9.3133356539866838e+00
+9.3189087359286518e+00
+9.3244662728752630e+00
+9.3300082503760198e+00
+9.3355346540307238e+00
+9.3410454694894760e+00
+9.3465406824526678e+00
+9.3520202786709952e+00
+9.3574842439454393e+00
+9.3629325641272931e+00
+9.3683652251181311e+00
+9.3737822128698376e+00
+9.3791835133845840e+00
+9.3845691127148427e+00
+9.3899389969633820e+00
+9.3952931522832692e+00
+9.4006315648778624e+00
+9.4059542210008225e+00
+9.4112611069561041e+00
+9.4165522090979596e+00
+9.4218275138309373e+00
+9.4270870076098792e+00
+9.4323306769399320e+00
+9.4375585083765348e+00
+9.4427704885254187e+00
+9.4479666040426178e+00
+9.4531468416344602e+00
+9.4583111880575732e+00
+9.4634596301188765e+00
+9.4685921546755907e+00
+9.4737087486352287e+00
+9.4788093989556064e+00
+9.4838940926448299e+00
+9.4889628167613065e+00
+9.4940155584137358e+00
+9.4990523047611202e+00
+9.5040730430127542e+00
+9.5090777604282284e+00
+9.5140664443174341e+00
+9.5190390820405533e+00
+9.5239956610080743e+00
+9.5289361686807723e+00
+9.5338605925697220e+00
+9.5387689202362989e+00
+9.5436611392921726e+00
+9.5485372373993052e+00
+9.5533972022699629e+00
+9.5582410216667029e+00
+9.5630686834023830e+00
+9.5678801753401519e+00
+9.5726754853934644e+00
+9.5774546015260622e+00
+9.5822175117519919e+00
+9.5869642041355903e+00
+9.5916946667914935e+00
+9.5964088878846336e+00
+9.6011068556302437e+00
+9.6057885582938454e+00
+9.6104539841912651e+00
+9.6151031216886214e+00
+9.6197359592023304e+00
+9.6243524851991040e+00
+9.6289526881959535e+00
+9.6335365567601841e+00
+9.6381040795094002e+00
+9.6426552451114986e+00
+9.6471900422846808e+00
+9.6517084597974367e+00
+9.6562104864685541e+00
+9.6606961111671232e+00
+9.6651653228125287e+00
+9.6696181103744436e+00
+9.6740544628728511e+00
+9.6784743693780211e+00
+9.6828778190105247e+00
+9.6872648009412270e+00
+9.6916353043912942e+00
+9.6959893186321864e+00
+9.7003268329856560e+00
+9.7046478368237601e+00
+9.7089523195688496e+00
+9.7132402706935697e+00
+9.7175116797208645e+00
+9.7217665362239707e+00
+9.7260048298264312e+00
+9.7302265502020759e+00
+9.7344316870750376e+00
+9.7386202302197393e+00
+9.7427921694609072e+00
+9.7469474946735630e+00
+9.7510861957830226e+00
+9.7552082627648975e+00
+9.7593136856451022e+00
+9.7634024544998397e+00
+9.7674745594556178e+00
+9.7715299906892366e+00
+9.7755687384277898e+00
+9.7795907929486727e+00
+9.7835961445795796e+00
+9.7875847836984917e+00
+9.7915567007336985e+00
+9.7955118861637782e+00
+9.7994503305176082e+00
+9.8033720243743634e+00
+9.8072769583635147e+00
+9.8111651231648285e+00
+9.8150365095083689e+00
+9.8188911081744976e+00
+9.8227289099938702e+00
+9.8265499058474450e+00
+9.8303540866664694e+00
+9.8341414434324932e+00
+9.8379119671773587e+00
+9.8416656489832075e+00
+9.8454024799824804e+00
+9.8491224513579070e+00
+9.8528255543425214e+00
+9.8565117802196500e+00
+9.8601811203229186e+00
+9.8638335660362468e+00
+9.8674691087938555e+00
+9.8710877400802559e+00
+9.8746894514302603e+00
+9.8782742344289751e+00
+9.8818420807118095e+00
+9.8853929819644613e+00
+9.8889269299229294e+00
+9.8924439163735087e+00
+9.8959439331527896e+00
+9.8994269721476620e+00
+9.9028930252953078e+00
+9.9063420845832120e+00
+9.9097741420491516e+00
+9.9131891897811997e+00
+9.9165872199177301e+00
+9.9199682246474090e+00
+9.9233321962092038e+00
+9.9266791268923740e+00
+9.9300090090364801e+00
+9.9333218350313768e+00
+9.9366175973172126e+00
+9.9398962883844391e+00
+9.9431579007738033e+00
+9.9464024270763414e+00
+9.9496298599333954e+00
+9.9528401920366019e+00
+9.9560334161278892e+00
+9.9592095249994870e+00
+9.9623685114939224e+00
+9.9655103685040167e+00
+9.9686350889728867e+00
+9.9717426658939505e+00
+9.9748330923109201e+00
+9.9779063613178014e+00
+9.9809624660589016e+00
+9.9840013997288217e+00
+9.9870231555724622e+00
+9.9900277268850193e+00
+9.9930151070119813e+00
+9.9959852893491412e+00
+9.9989382673425826e+00
+1.0001874034488688e+01
+1.0004792584334139e+01
+1.0007693910475908e+01
+1.0010578006561266e+01
+1.0013444866287786e+01
+1.0016294483403332e+01
+1.0019126851706067e+01
+1.0021941965044450e+01
+1.0024739817317236e+01
+1.0027520402473479e+01
+1.0030283714512526e+01
+1.0033029747484026e+01
+1.0035758495487920e+01
+1.0038469952674447e+01
+1.0041164113244143e+01
+1.0043840971447841e+01
+1.0046500521586671e+01
+1.0049142758012056e+01
+1.0051767675125724e+01
+1.0054375267379690e+01
+1.0056965529276274e+01
+1.0059538455368084e+01
+1.0062094040258035e+01
+1.0064632278599330e+01
+1.0067153165095471e+01
+1.0069656694500260e+01
+1.0072142861617793e+01
+1.0074611661302461e+01
+1.0077063088458958e+01
+1.0079497138042266e+01
+1.0081913805057669e+01
+1.0084313084560748e+01
+1.0086694971657378e+01
+1.0089059461503734e+01
+1.0091406549306285e+01
+1.0093736230321797e+01
+1.0096048499857336e+01
+1.0098343353270257e+01
+1.0100620785968221e+01
+1.0102880793409179e+01
+1.0105123371101381e+01
+1.0107348514603377e+01
+1.0109556219524007e+01
+1.0111746481522413e+01
+1.0113919296308028e+01
+1.0116074659640589e+01
+1.0118212567330128e+01
+1.0120333015236968e+01
+1.0122435999271733e+01
+1.0124521515395346e+01
+1.0126589559619022e+01
+1.0128640128004273e+01
+1.0130673216662913e+01
+1.0132688821757046e+01
+1.0134686939499078e+01
+1.0136667566151708e+01
+1.0138630698027935e+01
+1.0140576331491049e+01
+1.0142504462954644e+01
+1.0144415088882607e+01
+1.0146308205789120e+01
+1.0148183810238665e+01
+1.0150041898846018e+01
+1.0151882468276254e+01
+1.0153705515244745e+01
+1.0155511036517154e+01
+1.0157299028909449e+01
+1.0159069489287891e+01
+1.0160822414569035e+01
+1.0162557801719737e+01
+1.0164275647757146e+01
+1.0165975949748711e+01
+1.0167658704812178e+01
+1.0169323910115581e+01
+1.0170971562877266e+01
+1.0172601660365864e+01
+1.0174214199900304e+01
+1.0175809178849814e+01
+1.0177386594633921e+01
+1.0178946444722444e+01
+1.0180488726635502e+01
+1.0182013437943509e+01
+1.0183520576267178e+01
+1.0185010139277511e+01
+1.0186482124695820e+01
+1.0187936530293699e+01
+1.0189373353893053e+01
+1.0190792593366071e+01
+1.0192194246635248e+01
+1.0193578311673370e+01
+1.0194944786503523e+01
+1.0196293669199086e+01
+1.0197624957883738e+01
+1.0198938650731455e+01
+1.0200234745966510e+01
+1.0201513241863466e+01
+1.0202774136747193e+01
+1.0204017428992849e+01
+1.0205243117025894e+01
+1.0206451199322084e+01
+1.0207641674407469e+01
+1.0208814540858397e+01
+1.0209969797301513e+01
+1.0211107442413759e+01
+1.0212227474922374e+01
+1.0213329893604893e+01
+1.0214414697289147e+01
+1.0215481884853265e+01
+1.0216531455225674e+01
+1.0217563407385091e+01
+1.0218577740360539e+01
+1.0219574453231333e+01
+1.0220553545127084e+01
+1.0221515015227698e+01
+1.0222458862763384e+01
+1.0223385087014643e+01
+1.0224293687312274e+01
+1.0225184663037371e+01
+1.0226058013621326e+01
+1.0226913738545830e+01
+1.0227751837342867e+01
+1.0228572309594719e+01
+1.0229375154933965e+01
+1.0230160373043484e+01
+1.0230927963656441e+01
+1.0231677926556312e+01
+1.0232410261576860e+01
+1.0233124968602144e+01
+1.0233822047566528e+01
+1.0234501498454666e+01
+1.0235163321301510e+01
+1.0235807516192310e+01
+1.0236434083262612e+01
+1.0237043022698256e+01
+1.0237634334735382e+01
+1.0238208019660428e+01
+1.0238764077810126e+01
+1.0239302509571504e+01
+1.0239823315381887e+01
+1.0240326495728903e+01
+1.0240812051150465e+01
+1.0241279982234792e+01
+1.0241730289620397e+01
+1.0242162973996090e+01
+1.0242578036100973e+01
+1.0242975476724453e+01
+1.0243355296706229e+01
+1.0243717496936297e+01
+1.0244062078354947e+01
+1.0244389041952772e+01
+1.0244698388770658e+01
+1.0244990119899786e+01
+1.0245264236481638e+01
+1.0245520739707988e+01
+1.0245759630820913e+01
+1.0245980911112778e+01
+1.0246184581926252e+01
+1.0246370644654297e+01
+1.0246539100740176e+01
+1.0246689951677439e+01
+1.0246823199009945e+01
+1.0246938844331844e+01
+1.0247036889287580e+01
+1.0247117335571895e+01
+1.0247180184929832e+01
+1.0247225439156727e+01
+1.0247253100098215e+01
+1.0247263169650221e+01
+1.0247255649758976e+01
+1.0247230542421002e+01
+1.0247187849683122e+01
+1.0247127573642448e+01
+1.0247049716446398e+01
+1.0246954280292677e+01
+1.0246841267429298e+01
+1.0246710680154559e+01
+1.0246562520817065e+01
+1.0246396791815711e+01
+1.0246213495599690e+01
+1.0246012634668492e+01
+1.0245794211571907e+01
+1.0245558228910017e+01
+1.0245304689333201e+01
+1.0245033595542139e+01
+1.0244744950287803e+01
+1.0244438756371464e+01
+1.0244115016644688e+01
+1.0243773734009341e+01
+1.0243414911417583e+01
+1.0243038551871871e+01
+1.0242644658424959e+01
+1.0242233234179897e+01
+1.0241804282290035e+01
+1.0241357805959014e+01
+1.0240893808440777e+01
+1.0240412293039560e+01
+1.0239913263109898e+01
+1.0239396722056620e+01
+1.0238862673334857e+01
+1.0238311120450030e+01
+1.0237742066957862e+01
+1.0237155516464373e+01
+1.0236551472625870e+01
+1.0235929939148971e+01
+1.0235290919790579e+01
+1.0234634418357901e+01
+1.0233960438708438e+01
+1.0233268984749989e+01
+1.0232560060440646e+01
+1.0231833669788800e+01
+1.0231089816853141e+01
+1.0230328505742653e+01
+1.0229549740616616e+01
+1.0228753525684608e+01
+1.0227939865206505e+01
+1.0227108763492478e+01
+1.0226260224902994e+01
+1.0225394253848819e+01
+1.0224510854791015e+01
+1.0223610032240940e+01
+1.0222691790760244e+01
+1.0221756134960884e+01
+1.0220803069505109e+01
+1.0219832599105459e+01
+1.0218844728524777e+01
+1.0217839462576205e+01
+1.0216816806123173e+01
+1.0215776764079417e+01
+1.0214719341408962e+01
+1.0213644543126135e+01
+1.0212552374295557e+01
+1.0211442840032147e+01
+1.0210315945501119e+01
+1.0209171695917984e+01
+1.0208010096548556e+01
+1.0206831152708931e+01
+1.0205634869765520e+01
+1.0204421253135015e+01
+1.0203190308284416e+01
+1.0201942040731014e+01
+1.0200676456042396e+01
+1.0199393559836446e+01
+1.0198093357781350e+01
+1.0196775855595584e+01
+1.0195441059047925e+01
+1.0194088973957443e+01
+1.0192719606193510e+01
+1.0191332961675789e+01
+1.0189929046374242e+01
+1.0188507866309131e+01
+1.0187069427551009e+01
+1.0185613736220729e+01
+1.0184140798489437e+01
+1.0182650620578585e+01
+1.0181143208759911e+01
+1.0179618569355455e+01
+1.0178076708737551e+01
+1.0176517633328835e+01
+1.0174941349602234e+01
+1.0173347864080974e+01
+1.0171737183338578e+01
+1.0170109313998864e+01
+1.0168464262735950e+01
+1.0166802036274248e+01
+1.0165122641388466e+01
+1.0163426084903611e+01
+1.0161712373694986e+01
+1.0159981514688189e+01
+1.0158233514859118e+01
+1.0156468381233964e+01
+1.0154686120889217e+01
+1.0152886740951663e+01
+1.0151070248598387e+01
+1.0149236651056766e+01
+1.0147385955604477e+01
+1.0145518169569494e+01
+1.0143633300330084e+01
+1.0141731355314816e+01
+1.0139812342002550e+01
+1.0137876267922451e+01
+1.0135923140653970e+01
+1.0133952967826861e+01
+1.0131965757121179e+01
+1.0129961516267265e+01
+1.0127940253045763e+01
+1.0125901975287611e+01
+1.0123846690874052e+01
+1.0121774407736613e+01
+1.0119685133857127e+01
+1.0117578877267720e+01
+1.0115455646050815e+01
+1.0113315448339135e+01
+1.0111158292315691e+01
+1.0108984186213798e+01
+1.0106793138317071e+01
+1.0104585156959413e+01
+1.0102360250525026e+01
+1.0100118427448413e+01
+1.0097859696214371e+01
+1.0095584065357990e+01
+1.0093291543464664e+01
+1.0090982139170078e+01
+1.0088655861160218e+01
+1.0086312718171362e+01
+1.0083952718990087e+01
+1.0081575872453268e+01
+1.0079182187448076e+01
+1.0076771672911978e+01
+1.0074344337845035e+01
+1.0071900191338765e+01
+1.0069439242533806e+01
+1.0066961499498326e+01
+1.0064466968206011e+01
+1.0061955654489582e+01
+1.0059427565887505e+01
+1.0056882711863537e+01
+1.0054321102026282e+01
+1.0051742745954613e+01
+1.0049147653223748e+01
+1.0046535833114881e+01
+1.0043907292771246e+01
+1.0041262038522259e+01
+1.0038600077361263e+01
+1.0035921418513050e+01
+1.0033226071731766e+01
+1.0030514046942830e+01
+1.0027785354363303e+01
+1.0025040004233933e+01
+1.0022278005084521e+01
+1.0019499363417619e+01
+1.0016704085829218e+01
+1.0013892181192135e+01
+1.0011063659997529e+01
+1.0008218532786074e+01
+1.0005356809920450e+01
+1.0002478501719880e+01
+9.9995836179378159e+00
+9.9966721661124893e+00
+9.9937441533120754e+00
+9.9907995877191862e+00
+9.9878384797928845e+00
+9.9848608403207315e+00
+9.9818666801381628e+00
+9.9788560101278048e+00
+9.9758288410717260e+00
+9.9727851817005835e+00
+9.9697250392499477e+00
+9.9666484213230788e+00
+9.9635553381082431e+00
+9.9604458009332149e+00
+9.9573198211363110e+00
+9.9541774099342089e+00
+9.9510185785472558e+00
+9.9478433372326105e+00
+9.9446516940911742e+00
+9.9414436570153910e+00
+9.9382192353784546e+00
+9.9349784404386341e+00
+9.9317212836382875e+00
+9.9284477766778654e+00
+9.9251579314673943e+00
+9.9218517596214788e+00
+9.9185292702111383e+00
+9.9151904711880086e+00
+9.9118353711913780e+00
+9.9084639815374622e+00
+9.9050763142572578e+00
+9.9016723814807275e+00
+9.8982521954981433e+00
+9.8948157686230438e+00
+9.8913631114453544e+00
+9.8878942322363912e+00
+9.8844091392933695e+00
+9.8809078433001591e+00
+9.8773903568553258e+00
+9.8738566926452815e+00
+9.8703068632894038e+00
+9.8667408814026576e+00
+9.8631587589873106e+00
+9.8595605052841968e+00
+9.8559461288366190e+00
+9.8523156394177498e+00
+9.8486690496698035e+00
+9.8450063726936996e+00
+9.8413276215386176e+00
+9.8376328091615548e+00
+9.8339219484367870e+00
+9.8301950502226365e+00
+9.8264521237077886e+00
+9.8226931783660572e+00
+9.8189182261349899e+00
+9.8151272801860117e+00
+9.8113203537834135e+00
+9.8074974603936074e+00
+9.8036586135731714e+00
+9.7998038258348572e+00
+9.7959331070186284e+00
+9.7920464666229474e+00
+9.7881439157900036e+00
+9.7842254680287617e+00
+9.7802911370805887e+00
+9.7763409367370127e+00
+9.7723748808398483e+00
+9.7683929829891500e+00
+9.7643952543077859e+00
+9.7603817046700581e+00
+9.7563523445657694e+00
+9.7523071872510521e+00
+9.7482462468237774e+00
+9.7441695374686503e+00
+9.7400770735144793e+00
+9.7359688693268023e+00
+9.7318449376727827e+00
+9.7277052888745263e+00
+9.7235499332009301e+00
+9.7193788831189920e+00
+9.7151921530863774e+00
+9.7109897576859279e+00
+9.7067717115947048e+00
+9.7025380295639891e+00
+9.6982887258177559e+00
+9.6940238118020758e+00
+9.6897432981454248e+00
+9.6854471964985276e+00
+9.6811355212253041e+00
+9.6768082871903562e+00
+9.6724655093844607e+00
+9.6681072029681534e+00
+9.6637333830597836e+00
+9.6593440626891240e+00
+9.6549392529220857e+00
+9.6505189650447036e+00
+9.6460832128490104e+00
+9.6416320115486531e+00
+9.6371653764668821e+00
+9.6326833232033984e+00
+9.6281858674801981e+00
+9.6236730240175401e+00
+9.6191448045848116e+00
+9.6146012204846460e+00
+9.6100422845871165e+00
+9.6054680123163827e+00
+9.6008784193863370e+00
+9.5962735216919466e+00
+9.5916533353068214e+00
+9.5870178761001146e+00
+9.5823671573424267e+00
+9.5777011908072058e+00
+9.5730199887915663e+00
+9.5683235663320776e+00
+9.5636119394165693e+00
+9.5588851241763066e+00
+9.5541431370682908e+00
+9.5493859946322708e+00
+9.5446137118793448e+00
+9.5398263011577491e+00
+9.5350237746758193e+00
+9.5302061467097019e+00
+9.5253734336485483e+00
+9.5205256520384296e+00
+9.5156628186179226e+00
+9.5107849502628028e+00
+9.5058920633636124e+00
+9.5009841713258254e+00
+9.4960612865348715e+00
+9.4911234223856624e+00
+9.4861705953456337e+00
+9.4812028225221692e+00
+9.4762201210845980e+00
+9.4712225082726516e+00
+9.4662100012942147e+00
+9.4611826152177834e+00
+9.4561403628297160e+00
+9.4510832570845924e+00
+9.4460113136997084e+00
+9.4409245501638868e+00
+9.4358229840467303e+00
+9.4307066329822522e+00
+9.4255755146603803e+00
+9.4204296458522805e+00
+9.4152690402031993e+00
+9.4100937107670024e+00
+9.4049036722384489e+00
+9.3996989423475661e+00
+9.3944795391968619e+00
+9.3892454807658066e+00
+9.3839967848916608e+00
+9.3787334692480222e+00
+9.3734555491036939e+00
+9.3681630381499481e+00
+9.3628559505613040e+00
+9.3575343034836589e+00
+9.3521981152363107e+00
+9.3468474041815206e+00
+9.3414821886964141e+00
+9.3361024871897023e+00
+9.3307083166722844e+00
+9.3252996913751893e+00
+9.3198766253134853e+00
+9.3144391346359061e+00
+9.3089872379523246e+00
+9.3035209540539636e+00
+9.2980403017344475e+00
+9.2925452998049014e+00
+9.2870359666673430e+00
+9.2815123177703835e+00
+9.2759743673996606e+00
+9.2704221307820038e+00
+9.2648556264359367e+00
+9.2592748736591766e+00
+9.2536798917064260e+00
+9.2480706996909614e+00
+9.2424473166932959e+00
+9.2368097598635437e+00
+9.2311580440150234e+00
+9.2254921840611903e+00
+9.2198121976658705e+00
+9.2141181044867455e+00
+9.2084099242393851e+00
+9.2026876764417356e+00
+9.1969513805580636e+00
+9.1912010553479657e+00
+9.1854367167742961e+00
+9.1796583801797418e+00
+9.1738660622193589e+00
+9.1680597822991370e+00
+9.1622395602235898e+00
+9.1564054158980568e+00
+9.1505573693414703e+00
+9.1446954404574416e+00
+9.1388196467526157e+00
+9.1329300039454164e+00
+9.1270265281307115e+00
+9.1211092381851593e+00
+9.1151781542368902e+00
+9.1092332965449341e+00
+9.1032746857156237e+00
+9.0973023424730517e+00
+9.0913162861279915e+00
+9.0853165327791956e+00
+9.0793030981799809e+00
+9.0732760002136228e+00
+9.0672352595390553e+00
+9.0611808970452490e+00
+9.0551129335944296e+00
+9.0490313900390529e+00
+9.0429362868849275e+00
+9.0368276416784514e+00
+9.0307054706280230e+00
+9.0245697907791644e+00
+9.0184206225494723e+00
+9.0122579872682156e+00
+9.0060819062639919e+00
+8.9998924007952841e+00
+8.9936894921092616e+00
+8.9874731995427855e+00
+8.9812435398074530e+00
+8.9750005296241113e+00
+8.9687441883584746e+00
+8.9624745375422208e+00
+8.9561915988331471e+00
+8.9498953940475143e+00
+8.9435859451045339e+00
+8.9372632731590311e+00
+8.9309273958692188e+00
+8.9245783299771091e+00
+8.9182160936781134e+00
+8.9118407086490254e+00
+8.9054521971272429e+00
+8.8990505812651683e+00
+8.8926358830724261e+00
+8.8862081244573705e+00
+8.8797673249877285e+00
+8.8733135022482852e+00
+8.8668466741361289e+00
+8.8603668614145494e+00
+8.8538740863100358e+00
+8.8473683711460307e+00
+8.8408497384587061e+00
+8.8343182108786102e+00
+8.8277738098387921e+00
+8.8212165536428664e+00
+8.8146464601729217e+00
+8.8080635491937720e+00
+8.8014678432430884e+00
+8.7948593651293194e+00
+8.7882381377059069e+00
+8.7816041838719823e+00
+8.7749575262489543e+00
+8.7682981845908969e+00
+8.7616261771691644e+00
+8.7549415229441649e+00
+8.7482442440783359e+00
+8.7415343637257301e+00
+8.7348119051314157e+00
+8.7280768916975209e+00
+8.7213293468631043e+00
+8.7145692922234801e+00
+8.7077967464938233e+00
+8.7010117283085844e+00
+8.6942142589079179e+00
+8.6874043619410788e+00
+8.6805820611759792e+00
+8.6737473802369855e+00
+8.6669003426929550e+00
+8.6600409715669748e+00
+8.6531692869477865e+00
+8.6462853080361448e+00
+8.6393890551251307e+00
+8.6324805514813541e+00
+8.6255598209300821e+00
+8.6186268875185394e+00
+8.6116817756209283e+00
+8.6047245095641713e+00
+8.5977551110753225e+00
+8.5907735993821284e+00
+8.5837799939705821e+00
+8.5767743175332374e+00
+8.5697565946157237e+00
+8.5627268498100282e+00
+8.5556851076222884e+00
+8.5486313925638946e+00
+8.5415657281134187e+00
+8.5344881346356480e+00
+8.5273986319862853e+00
+8.5202972417531928e+00
+8.5131839884119493e+00
+8.5060588967653530e+00
+8.4989219917653820e+00
+8.4917732985134204e+00
+8.4846128418658413e+00
+8.4774406435894107e+00
+8.4702567236261164e+00
+8.4630611025784628e+00
+8.4558538046474343e+00
+8.4486348553027675e+00
+8.4414042800082196e+00
+8.4341621040996255e+00
+8.4269083529100133e+00
+8.4196430501213122e+00
+8.4123662164766042e+00
+8.4050778725563529e+00
+8.3977780414214038e+00
+8.3904667487213906e+00
+8.3831440202601470e+00
+8.3758098817166591e+00
+8.3684643587115186e+00
+8.3611074763884030e+00
+8.3537392568949205e+00
+8.3463597213289553e+00
+8.3389688918182561e+00
+8.3315667937032956e+00
+8.3241534530073977e+00
+8.3167288958189598e+00
+8.3092931483031016e+00
+8.3018462365935513e+00
+8.2943881845883016e+00
+8.2869190137478252e+00
+8.2794387456934704e+00
+8.2719474049440560e+00
+8.2644450179157083e+00
+8.2569316111057045e+00
+8.2494072110557806e+00
+8.2418718443561403e+00
+8.2343255366674946e+00
+8.2267683104100850e+00
+8.2192001873712304e+00
+8.2116211909405195e+00
+8.2040313475368549e+00
+8.1964306839715135e+00
+8.1888192272696418e+00
+8.1811970046920592e+00
+8.1735640433012069e+00
+8.1659203669908695e+00
+8.1582659975242464e+00
+8.1506009572433218e+00
+8.1429252722306096e+00
+8.1352389700719936e+00
+8.1275420783092915e+00
+8.1198346241866943e+00
+8.1121166349118248e+00
+8.1043881363023473e+00
+8.0966491513470409e+00
+8.0888997028020331e+00
+8.0811398155842742e+00
+8.0733695171564950e+00
+8.0655888351801472e+00
+8.0577977974221930e+00
+8.0499964317391246e+00
+8.0421847655389342e+00
+8.0343628229221178e+00
+8.0265306266516507e+00
+8.0186882005099065e+00
+8.0108355719447424e+00
+8.0029727692877195e+00
+7.9950998208137873e+00
+7.9872167546235380e+00
+7.9793235987776487e+00
+7.9714203792309490e+00
+7.9635071193333520e+00
+7.9555838425236542e+00
+7.9476505752199902e+00
+7.9397073460456165e+00
+7.9317541837079251e+00
+7.9237911168452042e+00
+7.9158181740951283e+00
+7.9078353832310579e+00
+7.8998427685390578e+00
+7.8918403535017179e+00
+7.8838281632400111e+00
+7.8758062264011768e+00
+7.8677745721385870e+00
+7.8597332295353608e+00
+7.8516822275698335e+00
+7.8436215950758807e+00
+7.8355513581883605e+00
+7.8274715409819349e+00
+7.8193821679523623e+00
+7.8112832668527519e+00
+7.8031748669300871e+00
+7.7950569975372508e+00
+7.7869296882726005e+00
+7.7787929688285429e+00
+7.7706468673912452e+00
+7.7624914086464800e+00
+7.7543266168838514e+00
+7.7461525186715958e+00
+7.7379691436124718e+00
+7.7297765215677945e+00
+7.7215746824400950e+00
+7.7133636561751588e+00
+7.7051434723343091e+00
+7.6969141571299913e+00
+7.6886757352212092e+00
+7.6804282321535267e+00
+7.6721716771474844e+00
+7.6639061004374751e+00
+7.6556315323107702e+00
+7.6473480031096219e+00
+7.6390555431802829e+00
+7.6307541807339874e+00
+7.6224439409843088e+00
+7.6141248491350595e+00
+7.6057969333752826e+00
+7.5974602243899279e+00
+7.5891147529666529e+00
+7.5807605497536263e+00
+7.5723976453564195e+00
+7.5640260696637185e+00
+7.5556458491963223e+00
+7.5472570095703242e+00
+7.5388595777714116e+00
+7.5304535841386500e+00
+7.5220390595700541e+00
+7.5136160351244730e+00
+7.5051845420714383e+00
+7.4967446115848135e+00
+7.4882962720121951e+00
+7.4798395492522269e+00
+7.4713744695430586e+00
+7.4629010624656100e+00
+7.4544193593412746e+00
+7.4459293915821467e+00
+7.4374311907722106e+00
+7.4289247885792937e+00
+7.4204102153708424e+00
+7.4118874980400768e+00
+7.4033566629898440e+00
+7.3948177385949849e+00
+7.3862707561991847e+00
+7.3777157474494519e+00
+7.3691527442235527e+00
+7.3605817786129908e+00
+7.3520028823991161e+00
+7.3434160840589913e+00
+7.3348214103178062e+00
+7.3262188886408071e+00
+7.3176085500438175e+00
+7.3089904266643053e+00
+7.3003645507311150e+00
+7.2917309546334117e+00
+7.2830896707974473e+00
+7.2744407296356206e+00
+7.2657841583458289e+00
+7.2571199840203633e+00
+7.2484482367095762e+00
+7.2397689492566597e+00
+7.2310821546175799e+00
+7.2223878853598338e+00
+7.2136861738558080e+00
+7.2049770519105545e+00
+7.1962605482175475e+00
+7.1875366905022977e+00
+7.1788055077100630e+00
+7.1700670321955426e+00
+7.1613212969605966e+00
+7.1525683350853901e+00
+7.1438081797460349e+00
+7.1350408640546901e+00
+7.1262664185214595e+00
+7.1174848710997054e+00
+7.1086962499837227e+00
+7.0999005865540559e+00
+7.0910979140730310e+00
+7.0822882659345350e+00
+7.0734716758949334e+00
+7.0646481778657630e+00
+7.0558178044541506e+00
+7.0469805842614983e+00
+7.0381365452026836e+00
+7.0292857173661654e+00
+7.0204281345527502e+00
+7.0115638309655184e+00
+7.0026928406016316e+00
+6.9938151972461000e+00
+6.9849309344436632e+00
+6.9760400827871445e+00
+6.9671426710867284e+00
+6.9582387287723080e+00
+6.9493282887357726e+00
+6.9404113851191820e+00
+6.9314880521431199e+00
+6.9225583241612991e+00
+6.9136222355751045e+00
+6.9046798190320997e+00
+6.8957311039885649e+00
+6.8867761196993955e+00
+6.8778148978981051e+00
+6.8688474729603781e+00
+6.8598738794533984e+00
+6.8508941521622404e+00
+6.8419083260292561e+00
+6.8329164354227592e+00
+6.8239185110359664e+00
+6.8149145822355797e+00
+6.8059046795678171e+00
+6.7968888373650884e+00
+6.7878670907755332e+00
+6.7788394749204910e+00
+6.7698060248261172e+00
+6.7607667754707563e+00
+6.7517217595727645e+00
+6.7426710073319489e+00
+6.7336145490973358e+00
+6.7245524181655147e+00
+6.7154846498047149e+00
+6.7064112793905188e+00
+6.6973323424876128e+00
+6.6882478747649428e+00
+6.6791579108541841e+00
+6.6700624816928782e+00
+6.6609616174713784e+00
+6.6518553502167084e+00
+6.6427437155129976e+00
+6.6336267493981831e+00
+6.6245044878400190e+00
+6.6153769667167968e+00
+6.6062442217121893e+00
+6.5971062855237630e+00
+6.5879631887967145e+00
+6.5788149627341523e+00
+6.5696616422415532e+00
+6.5605032637469565e+00
+6.5513398636667812e+00
+6.5421714782268845e+00
+6.5329981436391149e+00
+6.5238198946428101e+00
+6.5146367629129740e+00
+6.5054487798521308e+00
+6.4962559790631165e+00
+6.4870583967968081e+00
+6.4778560695199818e+00
+6.4686490338925777e+00
+6.4594373267281018e+00
+6.4502209844010681e+00
+6.4410000399452043e+00
+6.4317745250102787e+00
+6.4225444721926905e+00
+6.4133099175711612e+00
+6.4040708980862906e+00
+6.3948274507841303e+00
+6.3855796128782041e+00
+6.3763274215828005e+00
+6.3670709118021227e+00
+6.3578101155203059e+00
+6.3485450647843482e+00
+6.3392757947087910e+00
+6.3300023427270551e+00
+6.3207247463744505e+00
+6.3114430432059025e+00
+6.3021572708135540e+00
+6.2928674659298007e+00
+6.2835736617283686e+00
+6.2742758905397968e+00
+6.2649741862930224e+00
+6.2556685864348749e+00
+6.2463591289284617e+00
+6.2370458516281362e+00
+6.2277287922296525e+00
+6.2184079882992149e+00
+6.2090834749082191e+00
+6.1997552851818751e+00
+6.1904234526246098e+00
+6.1810880137572246e+00
+6.1717490065169702e+00
+6.1624064689804872e+00
+6.1530604396142285e+00
+6.1437109570180084e+00
+6.1343580582900383e+00
+6.1250017769553802e+00
+6.1156421461153876e+00
+6.1062792010714473e+00
+6.0969129801176916e+00
+6.0875435218242666e+00
+6.0781708650333481e+00
+6.0687950488187736e+00
+6.0594161118485159e+00
+6.0500340891310023e+00
+6.0406490139346616e+00
+6.0312609204458036e+00
+6.0218698467624101e+00
+6.0124758320846663e+00
+6.0030789155735489e+00
+5.9936791362204165e+00
+5.9842765329947802e+00
+5.9748711430113541e+00
+5.9654630007195459e+00
+5.9560521405471425e+00
+5.9466385994661515e+00
+5.9372224166223662e+00
+5.9278036312890636e+00
+5.9183822828688797e+00
+5.9089584108547566e+00
+5.8995320540594820e+00
+5.8901032480056976e+00
+5.8806720273097355e+00
+5.8712384279039131e+00
+5.8618024890151412e+00
+5.8523642504299076e+00
+5.8429237519246060e+00
+5.8334810332359099e+00
+5.8240361340122506e+00
+5.8145890914981901e+00
+5.8051399408098838e+00
+5.7956887173719602e+00
+5.7862354596927119e+00
+5.7767802079235882e+00
+5.7673230022532147e+00
+5.7578638827883291e+00
+5.7484028896445576e+00
+5.7389400618617854e+00
+5.7294754355223354e+00
+5.7200090462842796e+00
+5.7105409315672020e+00
+5.7010711314978089e+00
+5.6915996864864500e+00
+5.6821266370937611e+00
+5.6726520240231881e+00
+5.6631758877044982e+00
+5.6536982655382788e+00
+5.6442191932834627e+00
+5.6347387073882889e+00
+5.6252568476832270e+00
+5.6157736550939559e+00
+5.6062891706308910e+00
+5.5968034354492335e+00
+5.5873164907430066e+00
+5.5778283758490055e+00
+5.5683391270698595e+00
+5.5588487805868381e+00
+5.5493573751274052e+00
+5.5398649518746774e+00
+5.5303715521817391e+00
+5.5208772176695184e+00
+5.5113819901341481e+00
+5.5018859106907350e+00
+5.4923890166373726e+00
+5.4828913440472302e+00
+5.4733929303972495e+00
+5.4638938171962836e+00
+5.4543940467245182e+00
+5.4448936609749783e+00
+5.4353927014208256e+00
+5.4258912094431686e+00
+5.4163892244580989e+00
+5.4068867839080967e+00
+5.3973839254329796e+00
+5.3878806892583233e+00
+5.3783771171739776e+00
+5.3688732510931843e+00
+5.3593691332727138e+00
+5.3498648061203085e+00
+5.3403603110191984e+00
+5.3308556861067968e+00
+5.3213509689528715e+00
+5.3118461987156849e+00
+5.3023414173175327e+00
+5.2928366670181566e+00
+5.2833319904190388e+00
+5.2738274304769357e+00
+5.2643230299235091e+00
+5.2548188283230166e+00
+5.2453148632819468e+00
+5.2358111730290053e+00
+5.2263077993808551e+00
+5.2168047854789297e+00
+5.2073021744285857e+00
+5.1978000091011261e+00
+5.1882983323461040e+00
+5.1787971855637700e+00
+5.1692966074495512e+00
+5.1597966365250612e+00
+5.1502973134624899e+00
+5.1407986812749913e+00
+5.1313007831561412e+00
+5.1218036625212955e+00
+5.1123073629477549e+00
+5.1028119275260391e+00
+5.0933173961086320e+00
+5.0838238073538440e+00
+5.0743312009012076e+00
+5.0648396195998542e+00
+5.0553491070140772e+00
+5.0458597068962261e+00
+5.0363714633131540e+00
+5.0268844203299023e+00
+5.0173986196498293e+00
+5.0079141002862020e+00
+4.9984309013811528e+00
+4.9889490650329664e+00
+4.9794686353601483e+00
+4.9699896565613395e+00
+4.9605121728360304e+00
+4.9510362284145977e+00
+4.9415618666502414e+00
+4.9320891276753116e+00
+4.9226180509570314e+00
+4.9131486775702617e+00
+4.9036810517678910e+00
+4.8942152182219703e+00
+4.8847512215194566e+00
+4.8752891061372230e+00
+4.8658289163942214e+00
+4.8563706940374534e+00
+4.8469144790082170e+00
+4.8374603117237944e+00
+4.8280082358229137e+00
+4.8185582963031619e+00
+4.8091105381955765e+00
+4.7996650065029929e+00
+4.7902217462513583e+00
+4.7807808010397563e+00
+4.7713422114264628e+00
+4.7619060176874859e+00
+4.7524722623060454e+00
+4.7430409904788178e+00
+4.7336122476204476e+00
+4.7241860792410186e+00
+4.7147625309343111e+00
+4.7053416478552723e+00
+4.6959234717413070e+00
+4.6865080428790318e+00
+4.6770954025742295e+00
+4.6676855959857750e+00
+4.6582786692438720e+00
+4.6488746683822075e+00
+4.6394736391626719e+00
+4.6300756273004415e+00
+4.6206806764960895e+00
+4.6112888278451480e+00
+4.6019001224977290e+00
+4.5925146044224077e+00
+4.5831323197651370e+00
+4.5737533147730147e+00
+4.5643776357152230e+00
+4.5550053288986891e+00
+4.5456364398536211e+00
+4.5362710107993411e+00
+4.5269090831518017e+00
+4.5175506997963497e+00
+4.5081959069220527e+00
+4.4988447512165450e+00
+4.4894972792414984e+00
+4.4801535373724581e+00
+4.4708135718747926e+00
+4.4614774267843735e+00
+4.4521451443598661e+00
+4.4428167671933538e+00
+4.4334923405929860e+00
+4.4241719111735307e+00
+4.4148555256950530e+00
+4.4055432313423033e+00
+4.3962350754456105e+00
+4.3869311039473349e+00
+4.3776313594029022e+00
+4.3683358839542112e+00
+4.3590447218746622e+00
+4.3497579203994823e+00
+4.3404755270198363e+00
+4.3311975890905856e+00
+4.3219241538610822e+00
+4.3126552683018238e+00
+4.3033909767608671e+00
+4.2941313223166953e+00
+4.2848763486910366e+00
+4.2756261023710085e+00
+4.2663806306520611e+00
+4.2571399810678221e+00
+4.2479042016723740e+00
+4.2386733406015127e+00
+4.2294474439369409e+00
+4.2202265547443503e+00
+4.2110107160481132e+00
+4.2017999737683951e+00
+4.1925943763516234e+00
+4.1833939723154510e+00
+4.1741988096879261e+00
+4.1650089362694178e+00
+4.1558243993144508e+00
+4.1466452433481278e+00
+4.1374715121295367e+00
+4.1283032506249553e+00
+4.1191405068876072e+00
+4.1099833295083332e+00
+4.1008317669739114e+00
+4.0916858675867624e+00
+4.0825456795767110e+00
+4.0734112492320911e+00
+4.0642826210847742e+00
+4.0551598399009210e+00
+4.0460429528333020e+00
+4.0369320083395044e+00
+4.0278270550075082e+00
+4.0187281418125362e+00
+4.0096353178819264e+00
+4.0005486312640057e+00
+3.9914681269674954e+00
+3.9823938495477647e+00
+3.9733258452552551e+00
+3.9642641630015354e+00
+3.9552088519843100e+00
+3.9461599615523713e+00
+3.9371175412000587e+00
+3.9280816401652494e+00
+3.9190523047343402e+00
+3.9100295795574747e+00
+3.9010135099738261e+00
+3.8920041447928231e+00
+3.8830015339731547e+00
+3.8740057273772108e+00
+3.8650167744954493e+00
+3.8560347247735232e+00
+3.8470596263055001e+00
+3.8380915249186116e+00
+3.8291304663540440e+00
+3.8201764983362079e+00
+3.8112296705432596e+00
+3.8022900328053044e+00
+3.7933576352251679e+00
+3.7844325280862057e+00
+3.7755147611441298e+00
+3.7666043810705365e+00
+3.7577014335281924e+00
+3.7488059652546686e+00
+3.7399180261276190e+00
+3.7310376666515186e+00
+3.7221649373728058e+00
+3.7132998888737903e+00
+3.7044425716931109e+00
+3.6955930341957131e+00
+3.6867513225147706e+00
+3.6779174829686228e+00
+3.6690915645684083e+00
+3.6602736179890312e+00
+3.6514636940321585e+00
+3.6426618438543406e+00
+3.6338681187696134e+00
+3.6250825690446087e+00
+3.6163052415469319e+00
+3.6075361825307075e+00
+3.5987754399607610e+00
+3.5900230648476632e+00
+3.5812791085625824e+00
+3.5725436224538409e+00
+3.5638166578418442e+00
+3.5550982658679842e+00
+3.5463884951518851e+00
+3.5376873927223165e+00
+3.5289950061060011e+00
+3.5203113857389812e+00
+3.5116365831621277e+00
+3.5029706499788600e+00
+3.4943136378782538e+00
+3.4856655985939300e+00
+3.4770265825241791e+00
+3.4683966375137634e+00
+3.4597758112300419e+00
+3.4511641532266344e+00
+3.4425617151536541e+00
+3.4339685488294336e+00
+3.4253847062600373e+00
+3.4168102395931137e+00
+3.4082452005860602e+00
+3.3996896382810777e+00
+3.3911436006988662e+00
+3.3826071366678536e+00
+3.3740802977038169e+00
+3.3655631359414460e+00
+3.3570557037004916e+00
+3.3485580536160038e+00
+3.3400702383385448e+00
+3.3315923085665640e+00
+3.3231243127241630e+00
+3.3146662993263578e+00
+3.3062183192046528e+00
+3.2977804248110338e+00
+3.2893526687417931e+00
+3.2809351040585075e+00
+3.2725277840408467e+00
+3.2641307610947417e+00
+3.2557440843333887e+00
+3.2473678021689603e+00
+3.2390019644811598e+00
+3.2306466241126204e+00
+3.2223018343141336e+00
+3.2139676484295210e+00
+3.2056441199046231e+00
+3.1973313020449412e+00
+3.1890292455703912e+00
+3.1807379993444993e+00
+3.1724576126793012e+00
+3.1641881380224368e+00
+3.1559296291751360e+00
+3.1476821399178760e+00
+3.1394457237943203e+00
+3.1312204343232408e+00
+3.1230063238772492e+00
+3.1148034423179842e+00
+3.1066118392739019e+00
+3.0984315663343485e+00
+3.0902626775498043e+00
+3.0821052271412523e+00
+3.0739592688938964e+00
+3.0658248562767545e+00
+3.0577020425553467e+00
+3.0495908792748847e+00
+3.0414914172457816e+00
+3.0334037076092955e+00
+3.0253278027020625e+00
+3.0172637552026256e+00
+3.0092116198598347e+00
+3.0011714559966292e+00
+2.9931433232006510e+00
+2.9851272649438587e+00
+2.9771233035003273e+00
+2.9691314588883255e+00
+2.9611517385932391e+00
+2.9531841402496801e+00
+2.9452286616629642e+00
+2.9372853042164322e+00
+2.9293540709284529e+00
+2.9214349640023896e+00
+2.9135279823067504e+00
+2.9056331238169655e+00
+2.8977503874519948e+00
+2.8898797743895241e+00
+2.8820212861065246e+00
+2.8741749242742300e+00
+2.8663406908421822e+00
+2.8585185876151220e+00
+2.8507086141475932e+00
+2.8429107681452095e+00
+2.8351250475197376e+00
+2.8273514525396859e+00
+2.8195899845934167e+00
+2.8118406450422233e+00
+2.8041034352065930e+00
+2.7963783563694458e+00
+2.7886654088724558e+00
+2.7809645908020744e+00
+2.7732758999012068e+00
+2.7655993351831447e+00
+2.7579348974919577e+00
+2.7502825877881643e+00
+2.7426424071112603e+00
+2.7350143565633549e+00
+2.7273984369360713e+00
+2.7197946466075540e+00
+2.7122029827208469e+00
+2.7046234429550902e+00
+2.6970560276241407e+00
+2.6895007377725122e+00
+2.6819575742897461e+00
+2.6744265377189524e+00
+2.6669076284992346e+00
+2.6594008458726095e+00
+2.6519061873143563e+00
+2.6444236502020515e+00
+2.6369532333856744e+00
+2.6294949370207261e+00
+2.6220487613092534e+00
+2.6146147067163015e+00
+2.6071927738299689e+00
+2.5997829626980069e+00
+2.5923852708892299e+00
+2.5849996952037553e+00
+2.5776262332198208e+00
+2.5702648846630649e+00
+2.5629156495889238e+00
+2.5555785281276937e+00
+2.5482535205441259e+00
+2.5409406269923767e+00
+2.5336398457361646e+00
+2.5263511732847070e+00
+2.5190746062658986e+00
+2.5118101433550630e+00
+2.5045577843375173e+00
+2.4973175290055449e+00
+2.4900893772598574e+00
+2.4828733290119200e+00
+2.4756693833197572e+00
+2.4684775369084369e+00
+2.4612977860838328e+00
+2.4541301283000405e+00
+2.4469745628950430e+00
+2.4398310893496591e+00
+2.4326997071318033e+00
+2.4255804156957992e+00
+2.4184732142778032e+00
+2.4113781002303440e+00
+2.4042950698097907e+00
+2.3972241195827113e+00
+2.3901652479821061e+00
+2.3831184540332595e+00
+2.3760837367722316e+00
+2.3690610953296796e+00
+2.3620505288135951e+00
+2.3550520352997260e+00
+2.3480656111415841e+00
+2.3410912525418541e+00
+2.3341289567983337e+00
+2.3271787223110132e+00
+2.3202405475499837e+00
+2.3133144315180028e+00
+2.3064003735236898e+00
+2.2994983723681188e+00
+2.2926084241584812e+00
+2.2857305240484984e+00
+2.2788646679772637e+00
+2.2720108543790336e+00
+2.2651690821382378e+00
+2.2583393500091322e+00
+2.2515216565411551e+00
+2.2447160001727839e+00
+2.2379223777953876e+00
+2.2311407846798352e+00
+2.2243712161578069e+00
+2.2176136694476858e+00
+2.2108681429335473e+00
+2.2041346349759912e+00
+2.1974131438511315e+00
+2.1907036677833518e+00
+2.1840062043283335e+00
+2.1773207489623765e+00
+2.1706472967245838e+00
+2.1639858436512491e+00
+2.1573363876463705e+00
+2.1506989267822147e+00
+2.1440734590113575e+00
+2.1374599821586457e+00
+2.1308584938677839e+00
+2.1242689900646852e+00
+2.1176914655433552e+00
+2.1111259153902560e+00
+2.1045723367851412e+00
+2.0980307276783816e+00
+2.0915010858765526e+00
+2.0849834087735459e+00
+2.0784776936432197e+00
+2.0719839369453878e+00
+2.0655021336058206e+00
+2.0590322783862760e+00
+2.0525743672670758e+00
+2.0461283976208993e+00
+2.0396943668552234e+00
+2.0332722722261369e+00
+2.0268621108762268e+00
+2.0204638796610572e+00
+2.0140775737836525e+00
+2.0077031877713760e+00
+2.0013407165588566e+00
+1.9949901566198400e+00
+1.9886515047430362e+00
+1.9823247578378320e+00
+1.9760099130896116e+00
+1.9697069676455727e+00
+1.9634159172702379e+00
+1.9571367560939450e+00
+1.9508694782318940e+00
+1.9446140792786799e+00
+1.9383705558671502e+00
+1.9321389046573811e+00
+1.9259191225316263e+00
+1.9197112064448454e+00
+1.9135151526921774e+00
+1.9073309552107367e+00
+1.9011586073692526e+00
+1.8949981035943180e+00
+1.8888494405725595e+00
+1.8827126152357965e+00
+1.8765876241040715e+00
+1.8704744631959949e+00
+1.8643731283866036e+00
+1.8582836143801706e+00
+1.8522059150066621e+00
+1.8461400242415567e+00
+1.8400859374546910e+00
+1.8340436505998694e+00
+1.8280131596856228e+00
+1.8219944610200598e+00
+1.8159875509542498e+00
+1.8099924248281509e+00
+1.8040090758049852e+00
+1.7980374967660735e+00
+1.7920776820449984e+00
+1.7861296278575940e+00
+1.7801933304840085e+00
+1.7742687857325763e+00
+1.7683559890406049e+00
+1.7624549356120789e+00
+1.7565656191927270e+00
+1.7506880328488292e+00
+1.7448221700616529e+00
+1.7389680261293736e+00
+1.7331255967878236e+00
+1.7272948776451813e+00
+1.7214758640597132e+00
+1.7156685513024843e+00
+1.7098729336228529e+00
+1.7040890039092969e+00
+1.6983167550063685e+00
+1.6925561810886036e+00
+1.6868072773914411e+00
+1.6810700391522324e+00
+1.6753444616092357e+00
+1.6696305399836648e+00
+1.6639282690358668e+00
+1.6582376416657447e+00
+1.6525586502518244e+00
+1.6468912878661190e+00
+1.6412355492931583e+00
+1.6355914295396770e+00
+1.6299589235607614e+00
+1.6243380262524367e+00
+1.6187287323947859e+00
+1.6131310353623665e+00
+1.6075449273478899e+00
+1.6019704006705913e+00
+1.5964074492549472e+00
+1.5908560678008912e+00
+1.5853162509768248e+00
+1.5797879933998431e+00
+1.5742712896469939e+00
+1.5687661335861003e+00
+1.5632725173586359e+00
+1.5577904328291252e+00
+1.5523198728568495e+00
+1.5468608317704982e+00
+1.5414133039824069e+00
+1.5359772838346337e+00
+1.5305527656037015e+00
+1.5251397433517240e+00
+1.5197382095392649e+00
+1.5143481557834053e+00
+1.5089695740251414e+00
+1.5036024578945546e+00
+1.4982468014937091e+00
+1.4929025988840066e+00
+1.4875698440739311e+00
+1.4822485310187106e+00
+1.4769386526805361e+00
+1.4716402005270057e+00
+1.4663531659336695e+00
+1.4610775415425563e+00
+1.4558133211434150e+00
+1.4505604985306402e+00
+1.4453190674198355e+00
+1.4400890214688156e+00
+1.4348703539696546e+00
+1.4296630565449362e+00
+1.4244671202793977e+00
+1.4192825368220643e+00
+1.4141092994339235e+00
+1.4089474016216026e+00
+1.4037968368241014e+00
+1.3986575983925609e+00
+1.3935296795837810e+00
+1.3884130724513637e+00
+1.3833077679076640e+00
+1.3782137569337995e+00
+1.3731310319164345e+00
+1.3680595860174360e+00
+1.3629994123745788e+00
+1.3579505040936779e+00
+1.3529128542471107e+00
+1.3478864553259720e+00
+1.3428712982150148e+00
+1.3378673734940665e+00
+1.3328746725448966e+00
+1.3278931881019820e+00
+1.3229229129975832e+00
+1.3179638400523914e+00
+1.3130159620752380e+00
+1.3080792717018221e+00
+1.3031537600941490e+00
+1.2982394175347565e+00
+1.2933362345573942e+00
+1.2884442032779067e+00
+1.2835633163237821e+00
+1.2786935662561225e+00
+1.2738349455019335e+00
+1.2689874464268200e+00
+1.2641510606179824e+00
+1.2593257783414111e+00
+1.2545115897424794e+00
+1.2497084859780605e+00
+1.2449164592460720e+00
+1.2401355017594302e+00
+1.2353656056917119e+00
+1.2306067631794502e+00
+1.2258589660723265e+00
+1.2211222047451622e+00
+1.2163964690283564e+00
+1.2116817491793652e+00
+1.2069780368806653e+00
+1.2022853240675822e+00
+1.1976036026414454e+00
+1.1929328644691264e+00
+1.1882731013443160e+00
+1.1836243039942149e+00
+1.1789864620058315e+00
+1.1743595649894902e+00
+1.1697436038228120e+00
+1.1651385701804000e+00
+1.1605444557088331e+00
+1.1559612519732083e+00
+1.1513889504872938e+00
+1.1468275423016177e+00
+1.1422770170155405e+00
+1.1377373639072070e+00
+1.1332085729270198e+00
+1.1286906353237760e+00
+1.1241835424586621e+00
+1.1196872856183298e+00
+1.1152018560101100e+00
+1.1107272447091601e+00
+1.1062634415902952e+00
+1.1018104357168719e+00
+1.0973682163189540e+00
+1.0929367739519824e+00
+1.0885160996637566e+00
+1.0841061844601221e+00
+1.0797070192801801e+00
+1.0753185950173114e+00
+1.0709409018981855e+00
+1.0665739288706790e+00
+1.0622176647311081e+00
+1.0578720991469297e+00
+1.0535372228049444e+00
+1.0492130264158954e+00
+1.0448995006355024e+00
+1.0405966360710222e+00
+1.0363044231039733e+00
+1.0320228508180054e+00
+1.0277519077497654e+00
+1.0234915827633480e+00
+1.0192418660099782e+00
+1.0150027479063430e+00
+1.0107742188268376e+00
+1.0065562690943275e+00
+1.0023488889707330e+00
+9.9815206784477462e-01
+9.9396579405371077e-01
+9.8979005591673697e-01
+9.8562484279640727e-01
+9.8147014480150752e-01
+9.7732595202304573e-01
+9.7319225450749647e-01
+9.6906904226311652e-01
+9.6495630492966611e-01
+9.6085403084096743e-01
+9.5676220799624168e-01
+9.5268082491067629e-01
+9.4860987124830232e-01
+9.4454933679270869e-01
+9.4049921130412006e-01
+9.3645948452208516e-01
+9.3243014608190045e-01
+9.2841118454779270e-01
+9.2440258766654682e-01
+9.2040434329364673e-01
+9.1641644044322434e-01
+9.1243886862355872e-01
+9.0847161731278114e-01
+9.0451467595985180e-01
+9.0056803397878538e-01
+8.9663168021912254e-01
+8.9270560230612173e-01
+8.8878978768661321e-01
+8.8488422454689175e-01
+8.8098890205857949e-01
+8.7710380942805710e-01
+8.7322893581196803e-01
+8.6936427032064900e-01
+8.6550980188059834e-01
+8.6166551823655047e-01
+8.5783140656706491e-01
+8.5400745431238390e-01
+8.5019365013243187e-01
+8.4638998298058798e-01
+8.4259644174760828e-01
+8.3881301522255003e-01
+8.3503969213535323e-01
+8.3127646049178561e-01
+8.2752330731598811e-01
+8.2378021958486436e-01
+8.2004718518294617e-01
+8.1632419273322809e-01
+8.1261123084050013e-01
+8.0890828801674286e-01
+8.0521535271163869e-01
+8.0153241309287149e-01
+7.9785945620809851e-01
+7.9419646877361538e-01
+7.9054343790084969e-01
+7.8690035172227923e-01
+7.8326719849557502e-01
+7.7964396645870260e-01
+7.7603064383596865e-01
+7.7242721876950371e-01
+7.6883367848797390e-01
+7.6525000943387755e-01
+7.6167619811159115e-01
+7.5811223202563749e-01
+7.5455809916891448e-01
+7.5101378750297676e-01
+7.4747928494812876e-01
+7.4395457938784482e-01
+7.4043965825568392e-01
+7.3693450788405523e-01
+7.3343911441297482e-01
+7.2995346459002908e-01
+7.2647754608734760e-01
+7.2301134661834587e-01
+7.1955485380239881e-01
+7.1610805517140474e-01
+7.1267093812091498e-01
+7.0924348911138702e-01
+7.0582569409320739e-01
+7.0241753918839678e-01
+6.9901901150267076e-01
+6.9563009841388579e-01
+6.9225078725655131e-01
+6.8888106530551640e-01
+6.8552091978843432e-01
+6.8217033734855426e-01
+6.7882930373824701e-01
+6.7549780463745890e-01
+6.7217582644179774e-01
+6.6886335620896620e-01
+6.6556038098935910e-01
+6.6226688780118381e-01
+6.5898286362974667e-01
+6.5570829522602192e-01
+6.5244316829419180e-01
+6.4918746818454309e-01
+6.4594118057269256e-01
+6.4270429211327018e-01
+6.3947678960317367e-01
+6.3625865977562635e-01
+6.3304988928151140e-01
+6.2985046470231720e-01
+6.2666037191273916e-01
+6.2347959610241532e-01
+6.2030812248238110e-01
+6.1714593706196075e-01
+6.1399302629487285e-01
+6.1084937660638405e-01
+6.0771497438630406e-01
+6.0458980598980938e-01
+6.0147385742563664e-01
+5.9836711374931550e-01
+5.9526955981925533e-01
+5.9218118094922434e-01
+5.8910196324921615e-01
+5.8603189287518176e-01
+5.8297095593803949e-01
+5.7991913850358279e-01
+5.7687642652669679e-01
+5.7384280512179520e-01
+5.7081825888493820e-01
+5.6780277253306366e-01
+5.6479633165431242e-01
+5.6179892211579274e-01
+5.5881052974926293e-01
+5.5583114034709002e-01
+5.5286073966150495e-01
+5.4989931295282624e-01
+5.4694684463770826e-01
+5.4400331903984656e-01
+5.4106872108121951e-01
+5.3814303631418337e-01
+5.3522625028728033e-01
+5.3231834849965975e-01
+5.2941931640687823e-01
+5.2652913928467748e-01
+5.2364780152414170e-01
+5.2077528717357757e-01
+5.1791158051833452e-01
+5.1505666668937167e-01
+5.1221053096070046e-01
+5.0937315856037468e-01
+5.0654453466026428e-01
+5.0372464437419628e-01
+5.0091347219187543e-01
+4.9811100192296509e-01
+4.9531721737371553e-01
+4.9253210308084011e-01
+4.8975564404609223e-01
+4.8698782523683998e-01
+4.8422863153087969e-01
+4.8147804775094960e-01
+4.7873605844933931e-01
+4.7600264734485848e-01
+4.7327779795569297e-01
+4.7056149416224169e-01
+4.6785372057573349e-01
+4.6515446185983617e-01
+4.6246370262626996e-01
+4.5978142743226630e-01
+4.5710762074597577e-01
+4.5444226632626733e-01
+4.5178534743781668e-01
+4.4913684742429311e-01
+4.4649675038744774e-01
+4.4386504070897526e-01
+4.4124170272584334e-01
+4.3862672069999126e-01
+4.3602007884773991e-01
+4.3342176100149815e-01
+4.3083175025558351e-01
+4.2825002960073411e-01
+4.2567658250762264e-01
+4.2311139302416462e-01
+4.2055444519946839e-01
+4.1800572304327105e-01
+4.1546521052751112e-01
+4.1293289147746531e-01
+4.1040874892266782e-01
+4.0789276554202702e-01
+4.0538492419666761e-01
+4.0288520852485032e-01
+4.0039360231910648e-01
+3.9791008931889266e-01
+3.9543465318947651e-01
+3.9296727754342758e-01
+3.9050794548310969e-01
+3.8805663948689972e-01
+3.8561334200686942e-01
+3.8317803610334250e-01
+3.8075070527802557e-01
+3.7833133299940302e-01
+3.7591990262774910e-01
+3.7351639745713183e-01
+3.7112080058188207e-01
+3.6873309441749269e-01
+3.6635326118891431e-01
+3.6398128336990004e-01
+3.6161714402295159e-01
+3.5926082625989975e-01
+3.5691231318352140e-01
+3.5457158789481763e-01
+3.5223863342266187e-01
+3.4991343215785042e-01
+3.4759596599075188e-01
+3.4528621685763761e-01
+3.4298416735728460e-01
+3.4068980037005531e-01
+3.3840309873902574e-01
+3.3612404525343526e-01
+3.3385262266225840e-01
+3.3158881339409302e-01
+3.2933259918610353e-01
+3.2708396165859832e-01
+3.2484288282418011e-01
+3.2260934523573864e-01
+3.2038333145126591e-01
+3.1816482397389645e-01
+3.1595380525597955e-01
+3.1375025763651532e-01
+3.1155416280002690e-01
+3.0936550210254571e-01
+3.0718425702461949e-01
+3.0501040970340521e-01
+3.0284394242682577e-01
+3.0068483743309948e-01
+2.9853307688873604e-01
+2.9638864291252315e-01
+2.9425151721214793e-01
+2.9212168093214491e-01
+2.8999911517225613e-01
+2.8788380150768089e-01
+2.8577572190669781e-01
+2.8367485831564532e-01
+2.8158119263788245e-01
+2.7949470673829901e-01
+2.7741538230432727e-01
+2.7534320034564919e-01
+2.7327814165705583e-01
+2.7122018724768732e-01
+2.6916931871815991e-01
+2.6712551773159376e-01
+2.6508876591661334e-01
+2.6305904486713960e-01
+2.6103633611610672e-01
+2.5902062067275472e-01
+2.5701187908431866e-01
+2.5501009191524532e-01
+2.5301524027821198e-01
+2.5102730555268238e-01
+2.4904626908416075e-01
+2.4707211217273448e-01
+2.4510481608062928e-01
+2.4314436180722004e-01
+2.4119072971691710e-01
+2.3924390004802995e-01
+2.3730385337129392e-01
+2.3537057078323007e-01
+2.3344403338996200e-01
+2.3152422219595778e-01
+2.2961111811006737e-01
+2.2770470195538214e-01
+2.2580495406641091e-01
+2.2391185449790052e-01
+2.2202538337395877e-01
+2.2014552131127990e-01
+2.1827224905475734e-01
+2.1640554732122741e-01
+2.1454539680995366e-01
+2.1269177818391788e-01
+2.1084467175014970e-01
+2.0900405726933338e-01
+2.0716991444319807e-01
+2.0534222339379821e-01
+2.0352096464027836e-01
+2.0170611867776356e-01
+1.9989766589969626e-01
+1.9809558662732216e-01
+1.9629986105320399e-01
+1.9451046884842477e-01
+1.9272738949210025e-01
+1.9095060260677846e-01
+1.8918008829392191e-01
+1.8741582671251020e-01
+1.8565779798320092e-01
+1.8390598218555818e-01
+1.8216035934774721e-01
+1.8042090909044928e-01
+1.7868761063103508e-01
+1.7696044318111284e-01
+1.7523938637912598e-01
+1.7352442010032565e-01
+1.7181552418774820e-01
+1.7011267844194833e-01
+1.6841586262640537e-01
+1.6672505630524218e-01
+1.6504023851059746e-01
+1.6336138814947296e-01
+1.6168848435478744e-01
+1.6002150667657783e-01
+1.5836043467567384e-01
+1.5670524787912216e-01
+1.5505592578019711e-01
+1.5341244779418176e-01
+1.5177479282621886e-01
+1.5014293945498536e-01
+1.4851686634454994e-01
+1.4689655283545955e-01
+1.4528197848581167e-01
+1.4367312242274821e-01
+1.4206996248506407e-01
+1.4047247622205131e-01
+1.3888064049482979e-01
+1.3729443094940472e-01
+1.3571382308714527e-01
+1.3413879283294014e-01
+1.3256931656920456e-01
+1.3100537066079918e-01
+1.2944693138376037e-01
+1.2789397494378477e-01
+1.2634647743633864e-01
+1.2480441448710831e-01
+1.2326776152354961e-01
+1.2173649407212542e-01
+1.2021058807605897e-01
+1.1869001953481824e-01
+1.1717476440596612e-01
+1.1566479860123201e-01
+1.1416009798333857e-01
+1.1266063807759645e-01
+1.1116639403630788e-01
+1.0967734098727228e-01
+1.0819345440248239e-01
+1.0671470997115587e-01
+1.0524108334738970e-01
+1.0377255013354601e-01
+1.0230908588894620e-01
+1.0085066601410493e-01
+9.9397265451657377e-02
+9.7948859016675466e-02
+9.6505421685918746e-02
+9.5066928792054459e-02
+9.3633355676122049e-02
+9.2204677638148047e-02
+9.0780869936563868e-02
+8.9361907764802059e-02
+8.7947765927231900e-02
+8.6538418945815071e-02
+8.5133841361042628e-02
+8.3734008083124811e-02
+8.2338894150015246e-02
+8.0948474559014008e-02
+7.9562724256758324e-02
+7.8181618148181767e-02
+7.6805130921109577e-02
+7.5433236856106242e-02
+7.4065910157777470e-02
+7.2703125252148462e-02
+7.1344856842465762e-02
+6.9991079613184279e-02
+6.8641768208287504e-02
+6.7296897232095212e-02
+6.5956441197168966e-02
+6.4620374202303224e-02
+6.3288670148677270e-02
+6.1961303003178952e-02
+6.0638247092623866e-02
+5.9319476800883994e-02
+5.8004966468506260e-02
+5.6694690386029901e-02
+5.5388622798394217e-02
+5.4086737677052195e-02
+5.2789008657166493e-02
+5.1495409337726672e-02
+5.0205913587991577e-02
+4.8920495472550563e-02
+4.7639129023420539e-02
+4.6361788229367457e-02
+4.5088447039080451e-02
+4.3819079271617996e-02
+4.2553658340808341e-02
+4.1292157531370104e-02
+4.0034550245786588e-02
+3.8780810198995617e-02
+3.7530911116071784e-02
+3.6284826681851567e-02
+3.5042530540070886e-02
+3.3803996278045499e-02
+3.2569197156852601e-02
+3.1338106172209015e-02
+3.0110696319947314e-02
+2.8886940899395249e-02
+2.7666813330486626e-02
+2.6450286994317597e-02
+2.5237335225409118e-02
+2.4027931317842647e-02
+2.2822048387520062e-02
+2.1619659182301774e-02
+2.0420736369288654e-02
+1.9225252787969441e-02
+1.8033181529366300e-02
+1.6844495667647581e-02
+1.5659168234372498e-02
+1.4477172219388906e-02
+1.3298480535811041e-02
+1.2123065743402545e-02
+1.0950900211031718e-02
+9.7819563463826774e-03
+8.6162068613856568e-03
+7.4536245241804315e-03
+6.2941820627489516e-03
+5.1378521611204798e-03
+3.9846074608477812e-03
+2.8344203727205374e-03
+1.6872629928322076e-03
+5.4310737238985152e-04
+-5.9807421755724650e-04
+-1.7363093229935064e-03
+-2.8716255209812174e-03
+-4.0040504314931566e-03
+-5.1336117147779197e-03
+-6.2603371385847100e-03
+-7.3842548300370719e-03
+-8.5053930465244301e-03
+-9.6237799607503342e-03
+-1.0739443467728158e-02
+-1.1852411450152697e-02
+-1.2962711831465518e-02
+-1.4070372577429824e-02
+-1.5175421704459843e-02
+-1.6277887505936211e-02
+-1.7377798526621684e-02
+-1.8475183324544949e-02
+-1.9570070205278477e-02
+-2.0662487358669972e-02
+-2.1752463011915274e-02
+-2.2840025435380523e-02
+-2.3925202938888144e-02
+-2.5008023981672810e-02
+-2.6088517361384778e-02
+-2.7166711960953362e-02
+-2.8242636529233936e-02
+-2.9316319584557809e-02
+-3.0387789659663735e-02
+-3.1457075326246448e-02
+-3.2524205194861315e-02
+-3.3589207943194338e-02
+-3.4652112565963483e-02
+-3.5712948249931285e-02
+-3.6771744159916117e-02
+-3.7828529186454678e-02
+-3.8883332159170191e-02
+-3.9936181950113149e-02
+-4.0987107482677886e-02
+-4.2036137722541396e-02
+-4.3083301829240694e-02
+-4.4128629254201454e-02
+-4.5172149500247678e-02
+-4.6213891890951639e-02
+-4.7253885577215875e-02
+-4.8292159739495945e-02
+-4.9328743601708143e-02
+-5.0363666428744513e-02
+-5.1396957576486615e-02
+-5.2428646721831507e-02
+-5.3458763673310164e-02
+-5.4487338180619307e-02
+-5.5514399745559224e-02
+-5.6539977855201470e-02
+-5.7564102035785394e-02
+-5.8586801853816026e-02
+-5.9608106922390360e-02
+-6.0628047096392870e-02
+-6.1646652474622775e-02
+-6.2663953179299375e-02
+-6.3679979119363211e-02
+-6.4694760090556760e-02
+-6.5708325923886951e-02
+-6.6720706486393638e-02
+-6.7731931682219387e-02
+-6.8742031544975435e-02
+-6.9751036429557128e-02
+-7.0758976781813421e-02
+-7.1765882941188353e-02
+-7.2771785029168992e-02
+-7.3776713178681980e-02
+-7.4780697560782594e-02
+-7.5783768384682829e-02
+-7.6785955919318236e-02
+-7.7787290718209154e-02
+-7.8787803527554767e-02
+-7.9787525086139247e-02
+-8.0786485890558313e-02
+-8.1784716373514241e-02
+-8.2782247006830761e-02
+-8.3779108305317304e-02
+-8.4775330823811820e-02
+-8.5770945290730261e-02
+-8.6765982723582394e-02
+-8.7760474198121746e-02
+-8.8754450637398521e-02
+-8.9747942793240276e-02
+-9.0740981444308477e-02
+-9.1733597405391221e-02
+-9.2725821527913560e-02
+-9.3717684745403193e-02
+-9.4709218302510778e-02
+-9.5700453585631007e-02
+-9.6691421936825062e-02
+-9.7682154456137829e-02
+-9.8672682222044408e-02
+-9.9663036352324180e-02
+-1.0065324800564525e-01
+-1.0164334838486011e-01
+-1.0263336891387272e-01
+-1.0362334126390468e-01
+-1.0461329713716563e-01
+-1.0560326804156030e-01
+-1.0659328536437786e-01
+-1.0758338052759227e-01
+-1.0857358499157065e-01
+-1.0956393025460484e-01
+-1.1055444792947021e-01
+-1.1154516993968337e-01
+-1.1253612830647002e-01
+-1.1352735496354693e-01
+-1.1451888162941143e-01
+-1.1551074002971606e-01
+-1.1650296192532685e-01
+-1.1749557911186471e-01
+-1.1848862343999809e-01
+-1.1948212703237870e-01
+-1.2047612221614971e-01
+-1.2147064132052608e-01
+-1.2246571644439574e-01
+-1.2346137961292909e-01
+-1.2445766288814593e-01
+-1.2545459836819792e-01
+-1.2645221818925725e-01
+-1.2745055465037980e-01
+-1.2844964035217021e-01
+-1.2944950796152943e-01
+-1.3045019000292871e-01
+-1.3145171881479628e-01
+-1.3245412675932605e-01
+-1.3345744623758748e-01
+-1.3446170968919779e-01
+-1.3546694962870745e-01
+-1.3647319887425083e-01
+-1.3748049039740101e-01
+-1.3848885713712381e-01
+-1.3949833179255536e-01
+-1.4050894703271707e-01
+-1.4152073556151790e-01
+-1.4253373011448303e-01
+-1.4354796346864471e-01
+-1.4456346861956726e-01
+-1.4558027883455707e-01
+-1.4659842741896617e-01
+-1.4761794748213081e-01
+-1.4863887199033973e-01
+-1.4966123394358224e-01
+-1.5068506638533116e-01
+-1.5171040239933653e-01
+-1.5273727517501334e-01
+-1.5376571821796367e-01
+-1.5479576514257334e-01
+-1.5582744948575500e-01
+-1.5686080455656753e-01
+-1.5789586366440059e-01
+-1.5893266015251817e-01
+-1.5997122739675551e-01
+-1.6101159882468885e-01
+-1.6205380813385128e-01
+-1.6309788924676083e-01
+-1.6414387609496994e-01
+-1.6519180237678538e-01
+-1.6624170169957500e-01
+-1.6729360770667337e-01
+-1.6834755407531646e-01
+-1.6940357451973267e-01
+-1.7046170291009219e-01
+-1.7152197343891243e-01
+-1.7258442037493191e-01
+-1.7364907784969616e-01
+-1.7471597978632217e-01
+-1.7578516012703199e-01
+-1.7685665285097005e-01
+-1.7793049197431107e-01
+-1.7900671158405579e-01
+-1.8008534608113519e-01
+-1.8116643004134725e-01
+-1.8224999801356723e-01
+-1.8333608428763257e-01
+-1.8442472310754601e-01
+-1.8551594875431227e-01
+-1.8660979554504414e-01
+-1.8770629783758278e-01
+-1.8880549020148527e-01
+-1.8990740749923149e-01
+-1.9101208463901378e-01
+-1.9211955633523028e-01
+-1.9322985713727867e-01
+-1.9434302162517716e-01
+-1.9545908441527740e-01
+-1.9657808016087136e-01
+-1.9770004361812002e-01
+-1.9882500988892224e-01
+-1.9995301420376677e-01
+-2.0108409171671324e-01
+-2.0221827731829725e-01
+-2.0335560588770821e-01
+-2.0449611234284468e-01
+-2.0563983164090610e-01
+-2.0678679878813844e-01
+-2.0793704904970445e-01
+-2.0909061793035286e-01
+-2.1024754095744372e-01
+-2.1140785348531990e-01
+-2.1257159079208832e-01
+-2.1373878813109384e-01
+-2.1490948048966105e-01
+-2.1608370279934447e-01
+-2.1726149054012986e-01
+-2.1844288063803319e-01
+-2.1962791026065343e-01
+-2.2081661414435202e-01
+-2.2200902312388987e-01
+-2.2320516634447674e-01
+-2.2440504421349922e-01
+-2.2560862981058297e-01
+-2.2681589540437863e-01
+-2.2802681618660356e-01
+-2.2924136898609090e-01
+-2.3045953040073944e-01
+-2.3168127585490170e-01
+-2.3290658037198292e-01
+-2.3413541902931356e-01
+-2.3536776711938029e-01
+-2.3660359994949318e-01
+-2.3784289291540431e-01
+-2.3908562158056254e-01
+-2.4033176148846294e-01
+-2.4158128796783904e-01
+-2.4283417613433736e-01
+-2.4409040105954852e-01
+-2.4534993772924685e-01
+-2.4661276106589025e-01
+-2.4787884602810784e-01
+-2.4914816791207101e-01
+-2.5042070210819489e-01
+-2.5169642386066232e-01
+-2.5297530803308366e-01
+-2.5425732939233769e-01
+-2.5554246267684633e-01
+-2.5683068259846736e-01
+-2.5812196384800157e-01
+-2.5941628131675337e-01
+-2.6071361010405525e-01
+-2.6201392526609230e-01
+-2.6331720157130956e-01
+-2.6462341359935720e-01
+-2.6593253588135624e-01
+-2.6724454283012655e-01
+-2.6855940879647949e-01
+-2.6987710823857336e-01
+-2.7119761602171338e-01
+-2.7252090706507170e-01
+-2.7384695605893666e-01
+-2.7517573730344469e-01
+-2.7650722502967279e-01
+-2.7784139343332720e-01
+-2.7917821667441534e-01
+-2.8051766890994939e-01
+-2.8185972459166642e-01
+-2.8320435834937796e-01
+-2.8455154472617716e-01
+-2.8590125787622273e-01
+-2.8725347178965399e-01
+-2.8860816042476101e-01
+-2.8996529770682661e-01
+-2.9132485753131343e-01
+-2.9268681394133678e-01
+-2.9405114128705556e-01
+-2.9541781391695193e-01
+-2.9678680589888479e-01
+-2.9815809098979518e-01
+-2.9953164290051859e-01
+-3.0090743530751635e-01
+-3.0228544185397910e-01
+-3.0366563621052223e-01
+-3.0504799238561542e-01
+-3.0643248450050570e-01
+-3.0781908653320023e-01
+-3.0920777203810301e-01
+-3.1059851445347009e-01
+-3.1199128720112468e-01
+-3.1338606370073124e-01
+-3.1478281735175540e-01
+-3.1618152175229358e-01
+-3.1758215073770979e-01
+-3.1898467810450232e-01
+-3.2038907731365129e-01
+-3.2179532158273239e-01
+-3.2320338409568994e-01
+-3.2461323801686254e-01
+-3.2602485648421559e-01
+-3.2743821270181978e-01
+-3.2885328019643817e-01
+-3.3027003254369786e-01
+-3.3168844312490880e-01
+-3.3310848495273948e-01
+-3.3453013096697537e-01
+-3.3595335407106897e-01
+-3.3737812713098708e-01
+-3.3880442300493985e-01
+-3.4023221484541721e-01
+-3.4166147601063179e-01
+-3.4309217977729495e-01
+-3.4452429899884002e-01
+-3.4595780633078593e-01
+-3.4739267441101862e-01
+-3.4882887590001294e-01
+-3.5026638344080674e-01
+-3.5170516978420280e-01
+-3.5314520794918308e-01
+-3.5458647095747431e-01
+-3.5602893159322579e-01
+-3.5747256234730918e-01
+-3.5891733566012740e-01
+-3.6036322390348541e-01
+-3.6181019938966208e-01
+-3.6325823445482774e-01
+-3.6470730181172817e-01
+-3.6615737432372503e-01
+-3.6760842471872590e-01
+-3.6906042527024852e-01
+-3.7051334811484293e-01
+-3.7196716536367147e-01
+-3.7342184910962917e-01
+-3.7487737142257882e-01
+-3.7633370459450749e-01
+-3.7779082122121410e-01
+-3.7924869386813603e-01
+-3.8070729471402226e-01
+-3.8216659562548277e-01
+-3.8362656843932191e-01
+-3.8508718503013784e-01
+-3.8654841727351619e-01
+-3.8801023709005222e-01
+-3.8947261668759930e-01
+-3.9093552832641032e-01
+-3.9239894409920156e-01
+-3.9386283574529524e-01
+-3.9532717492637987e-01
+-3.9679193326215417e-01
+-3.9825708232616847e-01
+-3.9972259367743218e-01
+-4.0118843913579744e-01
+-4.0265459073063459e-01
+-4.0412102042973413e-01
+-4.0558769985992482e-01
+-4.0705460046650727e-01
+-4.0852169364275237e-01
+-4.0998895066268354e-01
+-4.1145634274550263e-01
+-4.1292384126768977e-01
+-4.1439141803874885e-01
+-4.1585904490246944e-01
+-4.1732669340417833e-01
+-4.1879433467340288e-01
+-4.2026193978117615e-01
+-4.2172947980945086e-01
+-4.2319692584517149e-01
+-4.2466424898081517e-01
+-4.2613142058000036e-01
+-4.2759841212889149e-01
+-4.2906519501502716e-01
+-4.3053174027536495e-01
+-4.3199801882368849e-01
+-4.3346400152445569e-01
+-4.3492965916389803e-01
+-4.3639496249378329e-01
+-4.3785988245919183e-01
+-4.3932439031050574e-01
+-4.4078845728061772e-01
+-4.4225205429482295e-01
+-4.4371515199991940e-01
+-4.4517772100130903e-01
+-4.4663973185837169e-01
+-4.4810115509150722e-01
+-4.4956196127099202e-01
+-4.5102212132808273e-01
+-4.5248160628166256e-01
+-4.5394038697471684e-01
+-4.5539843382739376e-01
+-4.5685571716353451e-01
+-4.5831220728277561e-01
+-4.5976787446441147e-01
+-4.6122268897228758e-01
+-4.6267662133688792e-01
+-4.6412964233527626e-01
+-4.6558172268471776e-01
+-4.6703283269228935e-01
+-4.6848294242430888e-01
+-4.6993202192327560e-01
+-4.7138004124865901e-01
+-4.7282697044425182e-01
+-4.7427277963321623e-01
+-4.7571743921922954e-01
+-4.7716091962758550e-01
+-4.7860319108912908e-01
+-4.8004422353679016e-01
+-4.8148398684562305e-01
+-4.8292245080869850e-01
+-4.8435958513854277e-01
+-4.8579535955220859e-01
+-4.8722974411333769e-01
+-4.8866270907280929e-01
+-4.9009422458484125e-01
+-4.9152426040631464e-01
+-4.9295278614158777e-01
+-4.9437977134129096e-01
+-4.9580518545811458e-01
+-4.9722899790457215e-01
+-4.9865117831345868e-01
+-5.0007169671425933e-01
+-5.0149052313259801e-01
+-5.0290762720989490e-01
+-5.0432297819891725e-01
+-5.0573654531604584e-01
+-5.0714829785898141e-01
+-5.0855820516211958e-01
+-5.0996623657317808e-01
+-5.1137236165107058e-01
+-5.1277655000810174e-01
+-5.1417877114006660e-01
+-5.1557899424580611e-01
+-5.1697718844156082e-01
+-5.1837332278272907e-01
+-5.1976736624068087e-01
+-5.2115928776100506e-01
+-5.2254905652969030e-01
+-5.2393664198807766e-01
+-5.2532201353206087e-01
+-5.2670514020586878e-01
+-5.2808599082117480e-01
+-5.2946453415671801e-01
+-5.3084073896732231e-01
+-5.3221457397940941e-01
+-5.3358600799585421e-01
+-5.3495501013703051e-01
+-5.3632154956159483e-01
+-5.3768559522640802e-01
+-5.3904711574023945e-01
+-5.4040607964606069e-01
+-5.4176245544483548e-01
+-5.4311621159442602e-01
+-5.4446731654865366e-01
+-5.4581573905812775e-01
+-5.4716144805756006e-01
+-5.4850441239352998e-01
+-5.4984460050373185e-01
+-5.5118198065101531e-01
+-5.5251652108033533e-01
+-5.5384819005124963e-01
+-5.5517695580321891e-01
+-5.5650278668843867e-01
+-5.5782565130628825e-01
+-5.5914551825004122e-01
+-5.6046235586350890e-01
+-5.6177613220914702e-01
+-5.6308681530651161e-01
+-5.6439437316719321e-01
+-5.6569877378754230e-01
+-5.6699998517402161e-01
+-5.6829797556600625e-01
+-5.6959271327723604e-01
+-5.7088416651917528e-01
+-5.7217230321624590e-01
+-5.7345709120470301e-01
+-5.7473849825775336e-01
+-5.7601649205276018e-01
+-5.7729104023589106e-01
+-5.7856211067010510e-01
+-5.7982967148320896e-01
+-5.8109369076789608e-01
+-5.8235413629320643e-01
+-5.8361097558851560e-01
+-5.8486417615025577e-01
+-5.8611370546117680e-01
+-5.8735953098025195e-01
+-5.8860162021424745e-01
+-5.8983994093301595e-01
+-5.9107446094360738e-01
+-5.9230514788875144e-01
+-5.9353196909809602e-01
+-5.9475489183478203e-01
+-5.9597388334100898e-01
+-5.9718891084048986e-01
+-5.9839994154389742e-01
+-5.9960694287423677e-01
+-6.0080988240453004e-01
+-6.0200872763615743e-01
+-6.0320344571526130e-01
+-6.0439400361575846e-01
+-6.0558036829836681e-01
+-6.0676250676488219e-01
+-6.0794038600430633e-01
+-6.0911397307797754e-01
+-6.1028323524418304e-01
+-6.1144813975630641e-01
+-6.1260865365390416e-01
+-6.1376474370828660e-01
+-6.1491637664705434e-01
+-6.1606351921353342e-01
+-6.1720613815627723e-01
+-6.1834420022003378e-01
+-6.1947767231544304e-01
+-6.2060652141199801e-01
+-6.2173071439362848e-01
+-6.2285021788616501e-01
+-6.2396499842619579e-01
+-6.2507502251439129e-01
+-6.2618025660901022e-01
+-6.2728066713930419e-01
+-6.2837622065517329e-01
+-6.2946688388052230e-01
+-6.3055262351191788e-01
+-6.3163340603431450e-01
+-6.3270919775578371e-01
+-6.3377996494265076e-01
+-6.3484567377767931e-01
+-6.3590629038761892e-01
+-6.3696178095744249e-01
+-6.3801211202584496e-01
+-6.3905725020361503e-01
+-6.4009716181891929e-01
+-6.4113181256121010e-01
+-6.4216116801461998e-01
+-6.4318519447272027e-01
+-6.4420385924185941e-01
+-6.4521712948741305e-01
+-6.4622496908493077e-01
+-6.4722733913447406e-01
+-6.4822420328359598e-01
+-6.4921554738914500e-01
+-6.5020136834612663e-01
+-6.5118166612058659e-01
+-6.5215645417143342e-01
+-6.5312574977592164e-01
+-6.5408956912609073e-01
+-6.5504792564085113e-01
+-6.5600083233046858e-01
+-6.5694830254497283e-01
+-6.5789035012507224e-01
+-6.5882698896014857e-01
+-6.5975823280727430e-01
+-6.6068409530975380e-01
+-6.6160459015636208e-01
+-6.6251973132699116e-01
+-6.6342953296198892e-01
+-6.6433400916724683e-01
+-6.6523317380733693e-01
+-6.6612704068893447e-01
+-6.6701562364419276e-01
+-6.6789893654132670e-01
+-6.6877699327241991e-01
+-6.6964980786656680e-01
+-6.7051739455269321e-01
+-6.7137976758614837e-01
+-6.7223694107968612e-01
+-6.7308892901729900e-01
+-6.7393574539690571e-01
+-6.7477740423821264e-01
+-6.7561391958146721e-01
+-6.7644530553038540e-01
+-6.7727157642807234e-01
+-6.7809274670505515e-01
+-6.7890883072578445e-01
+-6.7971984263792140e-01
+-6.8052579656817336e-01
+-6.8132670668696460e-01
+-6.8212258722321195e-01
+-6.8291345243425650e-01
+-6.8369931671860584e-01
+-6.8448019461019882e-01
+-6.8525610064999476e-01
+-6.8602704923258206e-01
+-6.8679305467802654e-01
+-6.8755413132469945e-01
+-6.8831029353156115e-01
+-6.8906155567720440e-01
+-6.8980793222597081e-01
+-6.9054943785408252e-01
+-6.9128608729021623e-01
+-6.9201789517093781e-01
+-6.9274487596624545e-01
+-6.9346704414836391e-01
+-6.9418441422586086e-01
+-6.9489700074352645e-01
+-6.9560481828107523e-01
+-6.9630788159322354e-01
+-6.9700620554594328e-01
+-6.9769980499161177e-01
+-6.9838869461541542e-01
+-6.9907288905831921e-01
+-6.9975240299261732e-01
+-7.0042725114695426e-01
+-7.0109744827672926e-01
+-7.0176300920721213e-01
+-7.0242394887110815e-01
+-7.0308028222614882e-01
+-7.0373202417396963e-01
+-7.0437918955749479e-01
+-7.0502179323488556e-01
+-7.0565985008022825e-01
+-7.0629337498475742e-01
+-7.0692238288220810e-01
+-7.0754688885969153e-01
+-7.0816690807132565e-01
+-7.0878245563975639e-01
+-7.0939354654562814e-01
+-7.1000019575699869e-01
+-7.1060241828040749e-01
+-7.1120022917672143e-01
+-7.1179364353256469e-01
+-7.1238267653031406e-01
+-7.1296734345408719e-01
+-7.1354765960141953e-01
+-7.1412364017397667e-01
+-7.1469530031863582e-01
+-7.1526265520439991e-01
+-7.1582572004490819e-01
+-7.1638451008244064e-01
+-7.1693904060479086e-01
+-7.1748932700650347e-01
+-7.1803538471908490e-01
+-7.1857722914199273e-01
+-7.1911487559662912e-01
+-7.1964833941309436e-01
+-7.2017763595268447e-01
+-7.2070278060938398e-01
+-7.2122378880357219e-01
+-7.2174067605478931e-01
+-7.2225345795540041e-01
+-7.2276215010138023e-01
+-7.2326676800267342e-01
+-7.2376732714735770e-01
+-7.2426384304444480e-01
+-7.2475633122871774e-01
+-7.2524480725587703e-01
+-7.2572928674537274e-01
+-7.2620978542415160e-01
+-7.2668631904689907e-01
+-7.2715890332841826e-01
+-7.2762755393352674e-01
+-7.2809228654243707e-01
+-7.2855311685686819e-01
+-7.2901006059933282e-01
+-7.2946313351825376e-01
+-7.2991235142593214e-01
+-7.3035773017209316e-01
+-7.3079928562378171e-01
+-7.3123703366015014e-01
+-7.3167099017773196e-01
+-7.3210117106144701e-01
+-7.3252759215167729e-01
+-7.3295026930218854e-01
+-7.3336921845920455e-01
+-7.3378445567755701e-01
+-7.3419599703093774e-01
+-7.3460385853201904e-01
+-7.3500805615418374e-01
+-7.3540860589250434e-01
+-7.3580552378833408e-01
+-7.3619882591375385e-01
+-7.3658852837071531e-01
+-7.3697464732115914e-01
+-7.3735719895585095e-01
+-7.3773619945644608e-01
+-7.3811166496258662e-01
+-7.3848361162583265e-01
+-7.3885205564508438e-01
+-7.3921701327424638e-01
+-7.3957850078807452e-01
+-7.3993653447087127e-01
+-7.4029113061879748e-01
+-7.4064230554869681e-01
+-7.4099007560898045e-01
+-7.4133445717277169e-01
+-7.4167546661903450e-01
+-7.4201312029221833e-01
+-7.4234743454257968e-01
+-7.4267842577189380e-01
+-7.4300611047424137e-01
+-7.4333050517230570e-01
+-7.4365162638144355e-01
+-7.4396949060103934e-01
+-7.4428411434577413e-01
+-7.4459551412682701e-01
+-7.4490370645657966e-01
+-7.4520870787537496e-01
+-7.4551053501473119e-01
+-7.4580920455892274e-01
+-7.4610473320095394e-01
+-7.4639713760804771e-01
+-7.4668643445471483e-01
+-7.4697264041754818e-01
+-7.4725577215195804e-01
+-7.4753584632782577e-01
+-7.4781287968671906e-01
+-7.4808688906197029e-01
+-7.4835789130899133e-01
+-7.4862590326139966e-01
+-7.4889094173816184e-01
+-7.4915302357620550e-01
+-7.4941216563007118e-01
+-7.4966838477270581e-01
+-7.4992169790143892e-01
+-7.5017212195582550e-01
+-7.5041967390092479e-01
+-7.5066437070631908e-01
+-7.5090622932455320e-01
+-7.5114526672267079e-01
+-7.5138149992876668e-01
+-7.5161494605045964e-01
+-7.5184562221479201e-01
+-7.5207354548799465e-01
+-7.5229873288663784e-01
+-7.5252120145507717e-01
+-7.5274096835043380e-01
+-7.5295805079662770e-01
+-7.5317246602346632e-01
+-7.5338423121647136e-01
+-7.5359336356199580e-01
+-7.5379988027478351e-01
+-7.5400379861261058e-01
+-7.5420513585601379e-01
+-7.5440390929248502e-01
+-7.5460013621032751e-01
+-7.5479383391732824e-01
+-7.5498501977546917e-01
+-7.5517371119731580e-01
+-7.5535992560933995e-01
+-7.5554368039922104e-01
+-7.5572499294300866e-01
+-7.5590388064905700e-01
+-7.5608036101016418e-01
+-7.5625445155807758e-01
+-7.5642616982273458e-01
+-7.5659553329642415e-01
+-7.5676255948140747e-01
+-7.5692726591966575e-01
+-7.5708967020457141e-01
+-7.5724978995072023e-01
+-7.5740764277605432e-01
+-7.5756324630289762e-01
+-7.5771661817429370e-01
+-7.5786777607269584e-01
+-7.5801673771095845e-01
+-7.5816352081825600e-01
+-7.5830814312772132e-01
+-7.5845062238682981e-01
+-7.5859097636242578e-01
+-7.5872922284108835e-01
+-7.5886537962869616e-01
+-7.5899946455230283e-01
+-7.5913149546140679e-01
+-7.5926149022469114e-01
+-7.5938946672354868e-01
+-7.5951544285225170e-01
+-7.5963943652614752e-01
+-7.5976146570158287e-01
+-7.5988154836671928e-01
+-7.5999970252216453e-01
+-7.6011594615083755e-01
+-7.6023029724256552e-01
+-7.6034277381917903e-01
+-7.6045339395977729e-01
+-7.6056217576937479e-01
+-7.6066913734834329e-01
+-7.6077429677558617e-01
+-7.6087767214735191e-01
+-7.6097928163021766e-01
+-7.6107914346184435e-01
+-7.6117727589346318e-01
+-7.6127369711069492e-01
+-7.6136842526711135e-01
+-7.6146147855137014e-01
+-7.6155287526477988e-01
+-7.6164263376040486e-01
+-7.6173077238936848e-01
+-7.6181730945620463e-01
+-7.6190226327208277e-01
+-7.6198565218578684e-01
+-7.6206749459812340e-01
+-7.6214780893159284e-01
+-7.6222661360539556e-01
+-7.6230392703414096e-01
+-7.6237976765377791e-01
+-7.6245415395683358e-01
+-7.6252710447858529e-01
+-7.6259863776678993e-01
+-7.6266877234665642e-01
+-7.6273752674734441e-01
+-7.6280491952501361e-01
+-7.6287096928056863e-01
+-7.6293569463925759e-01
+-7.6299911424262190e-01
+-7.6306124674601483e-01
+-7.6312211082343107e-01
+-7.6318172516936766e-01
+-7.6324010849895774e-01
+-7.6329727954516458e-01
+-7.6335325704315482e-01
+-7.6340805973611092e-01
+-7.6346170639368971e-01
+-7.6351421585113566e-01
+-7.6356560698060172e-01
+-7.6361589865172974e-01
+-7.6366510967922152e-01
+-7.6371325888146557e-01
+-7.6376036513569157e-01
+-7.6380644741531822e-01
+-7.6385152472072215e-01
+-7.6389561603863287e-01
+-7.6393874033726072e-01
+-7.6398091660025724e-01
+-7.6402216380961252e-01
+-7.6406250095219852e-01
+-7.6410194704392620e-01
+-7.6414052118594800e-01
+-7.6417824252499444e-01
+-7.6421513021873788e-01
+-7.6425120341424657e-01
+-7.6428648127099552e-01
+-7.6432098294917994e-01
+-7.6435472759076739e-01
+-7.6438773435352780e-01
+-7.6442002245305529e-01
+-7.6445161117037319e-01
+-7.6448251980730841e-01
+-7.6451276766984200e-01
+-7.6454237407239900e-01
+-7.6457135834387013e-01
+-7.6459973980173102e-01
+-7.6462753776984060e-01
+-7.6465477160618134e-01
+-7.6468146074413290e-01
+-7.6470762464928876e-01
+-7.6473328278127073e-01
+-7.6475845456559477e-01
+-7.6478315944155562e-01
+-7.6480741691780885e-01
+-7.6483124658477630e-01
+-7.6485466803856950e-01
+-7.6487770064568583e-01
+-7.6490036360635072e-01
+-7.6492267629842825e-01
+-7.6494465928885136e-01
+-7.6496633367522404e-01
+-7.6498771940037169e-01
+-7.6500883180605406e-01
+-7.6502968505425406e-01
+-7.6505028079828119e-01
+-7.6507059300543812e-01
+-7.6509059195460216e-01
+-7.6511024961007812e-01
+-7.6512954013540446e-01
+-7.6514843777653030e-01
+-7.6516691612566390e-01
+-7.6518494826152617e-01
+-7.6520250725809846e-01
+-7.6521956641844668e-01
+-7.6523609913637458e-01
+-7.6525207875461865e-01
+-7.6526747848235877e-01
+-7.6528227147549832e-01
+-7.6529643087334132e-01
+-7.6530992981030854e-01
+-7.6532274139845113e-01
+-7.6533483873384101e-01
+-7.6534619489994771e-01
+-7.6535678295646148e-01
+-7.6536657595015900e-01
+-7.6537554691251597e-01
+-7.6538366884079301e-01
+-7.6539091463492126e-01
+-7.6539725713504936e-01
+-7.6540266917659316e-01
+-7.6540712366017827e-01
+-7.6541059348539564e-01
+-7.6541305151119698e-01
+-7.6541447053433098e-01
+-7.6541482332025090e-01
+-7.6541408259130017e-01
+-7.6541222101944140e-01
+-7.6540921125124872e-01
+-7.6540502594249293e-01
+-7.6539963775272690e-01
+-7.6539301931821135e-01
+-7.6538514326024287e-01
+-7.6537598217989367e-01
+-7.6536550863377750e-01
+-7.6535369506687301e-01
+-7.6534051387436941e-01
+-7.6532593747065003e-01
+-7.6530993835773431e-01
+-7.6529248902905722e-01
+-7.6527356191224405e-01
+-7.6525312935000078e-01
+-7.6523116365382982e-01
+-7.6520763709241446e-01
+-7.6518252189370417e-01
+-7.6515579026756675e-01
+-7.6512741446855792e-01
+-7.6509736676228290e-01
+-7.6506561937718376e-01
+-7.6503214445910583e-01
+-7.6499691411148019e-01
+-7.6495990041760353e-01
+-7.6492107544948973e-01
+-7.6488041125597206e-01
+-7.6483787985955332e-01
+-7.6479345325595471e-01
+-7.6474710341675889e-01
+-7.6469880231688625e-01
+-7.6464852193219002e-01
+-7.6459623420446221e-01
+-7.6454191096088464e-01
+-7.6448552395469993e-01
+-7.6442704493334901e-01
+-7.6436644571948509e-01
+-7.6430369814157684e-01
+-7.6423877400011009e-01
+-7.6417164506304558e-01
+-7.6410228307074246e-01
+-7.6403065967613459e-01
+-7.6395674640740063e-01
+-7.6388051476328300e-01
+-7.6380193632440829e-01
+-7.6372098274845845e-01
+-7.6363762566648319e-01
+-7.6355183663194337e-01
+-7.6346358714327278e-01
+-7.6337284866358968e-01
+-7.6327959258094258e-01
+-7.6318379024174321e-01
+-7.6308541299010724e-01
+-7.6298443221204060e-01
+-7.6288081928031803e-01
+-7.6277454554896007e-01
+-7.6266558235772985e-01
+-7.6255390101849352e-01
+-7.6243947273745061e-01
+-7.6232226861552255e-01
+-7.6220225973544331e-01
+-7.6207941726656236e-01
+-7.6195371241911103e-01
+-7.6182511637088268e-01
+-7.6169360023104915e-01
+-7.6155913506859962e-01
+-7.6142169191428277e-01
+-7.6128124173465073e-01
+-7.6113775546353346e-01
+-7.6099120401909792e-01
+-7.6084155831119304e-01
+-7.6068878922856742e-01
+-7.6053286770011364e-01
+-7.6037376469729534e-01
+-7.6021145115435718e-01
+-7.6004589781598086e-01
+-7.5987707529999660e-01
+-7.5970495422516537e-01
+-7.5952950534592201e-01
+-7.5935069944875511e-01
+-7.5916850728649576e-01
+-7.5898289956009757e-01
+-7.5879384693933560e-01
+-7.5860132002084479e-01
+-7.5840528928897677e-01
+-7.5820572519556939e-01
+-7.5800259822671789e-01
+-7.5779587890759248e-01
+-7.5758553774285686e-01
+-7.5737154523189942e-01
+-7.5715387186166316e-01
+-7.5693248807441271e-01
+-7.5670736416947137e-01
+-7.5647847037675808e-01
+-7.5624577693290906e-01
+-7.5600925415688813e-01
+-7.5576887236478629e-01
+-7.5552460186393078e-01
+-7.5527641296790593e-01
+-7.5502427596404842e-01
+-7.5476816098805810e-01
+-7.5450803800809862e-01
+-7.5424387697214723e-01
+-7.5397564796244554e-01
+-7.5370332114310290e-01
+-7.5342686664809055e-01
+-7.5314625454330575e-01
+-7.5286145485253797e-01
+-7.5257243754639869e-01
+-7.5227917247334486e-01
+-7.5198162943561286e-01
+-7.5167977826662347e-01
+-7.5137358888689709e-01
+-7.5106303120405249e-01
+-7.5074807507684427e-01
+-7.5042869031110049e-01
+-7.5010484668146860e-01
+-7.4977651388308597e-01
+-7.4944366154773545e-01
+-7.4910625928816532e-01
+-7.4876427674018120e-01
+-7.4841768353394444e-01
+-7.4806644930210142e-01
+-7.4771054375399504e-01
+-7.4734993659624327e-01
+-7.4698459739788126e-01
+-7.4661449546988801e-01
+-7.4623960007302315e-01
+-7.4585988058959152e-01
+-7.4547530655624905e-01
+-7.4508584749237938e-01
+-7.4469147285279524e-01
+-7.4429215203828658e-01
+-7.4388785440697947e-01
+-7.4347854917552259e-01
+-7.4306420548543040e-01
+-7.4264479248509985e-01
+-7.4222027942273627e-01
+-7.4179063555121350e-01
+-7.4135583010877981e-01
+-7.4091583233166647e-01
+-7.4047061143105153e-01
+-7.4002013649189280e-01
+-7.3956437644525319e-01
+-7.3910330019497061e-01
+-7.3863687671802603e-01
+-7.3816507504103113e-01
+-7.3768786417545595e-01
+-7.3720521316938137e-01
+-7.3671709107321914e-01
+-7.3622346685755002e-01
+-7.3572430924788024e-01
+-7.3521958688920430e-01
+-7.3470926847711437e-01
+-7.3419332285421401e-01
+-7.3367171886171845e-01
+-7.3314442532808899e-01
+-7.3261141107319061e-01
+-7.3207264488256973e-01
+-7.3152809535833996e-01
+-7.3097773095171248e-01
+-7.3042152010884909e-01
+-7.2985943143658660e-01
+-7.2929143360327009e-01
+-7.2871749524584817e-01
+-7.2813758494845315e-01
+-7.2755167126232578e-01
+-7.2695972264464326e-01
+-7.2636170736467787e-01
+-7.2575759364511805e-01
+-7.2514734979737761e-01
+-7.2453094426562725e-01
+-7.2390834548098548e-01
+-7.2327952186146105e-01
+-7.2264444180983689e-01
+-7.2200307367702143e-01
+-7.2135538556990719e-01
+-7.2070134546316056e-01
+-7.2004092135397979e-01
+-7.1937408143040382e-01
+-7.1870079391488051e-01
+-7.1802102701313375e-01
+-7.1733474892695914e-01
+-7.1664192783327552e-01
+-7.1594253174569022e-01
+-7.1523652845324825e-01
+-7.1452388571334802e-01
+-7.1380457142787368e-01
+-7.1307855361980943e-01
+-7.1234580029199113e-01
+-7.1160627942572197e-01
+-7.1085995897888477e-01
+-7.1010680683731620e-01
+-7.0934679064492168e-01
+-7.0857987795742794e-01
+-7.0780603638446971e-01
+-7.0702523371613135e-01
+-7.0623743775013714e-01
+-7.0544261626745275e-01
+-7.0464073703665209e-01
+-7.0383176779200496e-01
+-7.0301567605140591e-01
+-7.0219242913568947e-01
+-7.0136199435828861e-01
+-7.0052433922794588e-01
+-6.9967943134548150e-01
+-6.9882723829326854e-01
+-6.9796772765674475e-01
+-6.9710086700446916e-01
+-6.9622662377686106e-01
+-6.9534496511041244e-01
+-6.9445585807153110e-01
+-6.9355926984418192e-01
+-6.9265516781164294e-01
+-6.9174351935304135e-01
+-6.9082429185417094e-01
+-6.8989745270546332e-01
+-6.8896296923924427e-01
+-6.8802080843816760e-01
+-6.8707093707912414e-01
+-6.8611332198721542e-01
+-6.8514793034932320e-01
+-6.8417472945018287e-01
+-6.8319368651377044e-01
+-6.8220476863798429e-01
+-6.8120794287599074e-01
+-6.8020317614437431e-01
+-6.7919043515217192e-01
+-6.7816968657327159e-01
+-6.7714089721827897e-01
+-6.7610403403061603e-01
+-6.7505906394111426e-01
+-6.7400595391814544e-01
+-6.7294467094122490e-01
+-6.7187518189471596e-01
+-6.7079745326128770e-01
+-6.6971145137259414e-01
+-6.6861714266249217e-01
+-6.6751449391954720e-01
+-6.6640347197693639e-01
+-6.6528404361753124e-01
+-6.6415617555615336e-01
+-6.6301983446846291e-01
+-6.6187498677698797e-01
+-6.6072159864726254e-01
+-6.5955963623743430e-01
+-6.5838906598647429e-01
+-6.5720985449330305e-01
+-6.5602196833344661e-01
+-6.5482537405345387e-01
+-6.5362003817321901e-01
+-6.5240592707314982e-01
+-6.5118300675315699e-01
+-6.4995124312052077e-01
+-6.4871060223313348e-01
+-6.4746105043783087e-01
+-6.4620255408969951e-01
+-6.4493507954666196e-01
+-6.4365859317115737e-01
+-6.4237306126835436e-01
+-6.4107844974108186e-01
+-6.3977472422860759e-01
+-6.3846185041450876e-01
+-6.3713979439241109e-01
+-6.3580852238974883e-01
+-6.3446800059294806e-01
+-6.3311819511109557e-01
+-6.3175907201567361e-01
+-6.3039059717662582e-01
+-6.2901273611040776e-01
+-6.2762545428009786e-01
+-6.2622871734924412e-01
+-6.2482249120544420e-01
+-6.2340674174141009e-01
+-6.2198143503511272e-01
+-6.2054653727797671e-01
+-6.1910201446061786e-01
+-6.1764783144494662e-01
+-6.1618395264488468e-01
+-6.1471034322324081e-01
+-6.1322697096795309e-01
+-6.1173380417815071e-01
+-6.1023080740617863e-01
+-6.0871793794016538e-01
+-6.0719515322741335e-01
+-6.0566244139980263e-01
+-6.0411982590137769e-01
+-6.0256733364452186e-01
+-6.0100501046810051e-01
+-5.9943291522847419e-01
+-5.9785110630572569e-01
+-5.9625963700818385e-01
+-5.9465855864562789e-01
+-5.9304792282768060e-01
+-5.9142778212431379e-01
+-5.8979818936165174e-01
+-5.8815919748979972e-01
+-5.8651085965644456e-01
+-5.8485322908124471e-01
+-5.8318635908974370e-01
+-5.8151030312394048e-01
+-5.7982511464807218e-01
+-5.7813084671666681e-01
+-5.7642755210563423e-01
+-5.7471528371436575e-01
+-5.7299409503114818e-01
+-5.7126403982149065e-01
+-5.6952517190418994e-01
+-5.6777754514952483e-01
+-5.6602121347884193e-01
+-5.6425623061008079e-01
+-5.6248264977024631e-01
+-5.6070052417944449e-01
+-5.5890990747582636e-01
+-5.5711085380697567e-01
+-5.5530341740363842e-01
+-5.5348765257128796e-01
+-5.5166361368460548e-01
+-5.4983135509140324e-01
+-5.4799093061591764e-01
+-5.4614239388259733e-01
+-5.4428579871762350e-01
+-5.4242119959219171e-01
+-5.4054865117601025e-01
+-5.3866820818612560e-01
+-5.3677992538012864e-01
+-5.3488385755778878e-01
+-5.3298005921785696e-01
+-5.3106858445095706e-01
+-5.2914948739996237e-01
+-5.2722282273050136e-01
+-5.2528864552683419e-01
+-5.2334701093392388e-01
+-5.2139797413571098e-01
+-5.1944159036266835e-01
+-5.1747791476322680e-01
+-5.1550700198209709e-01
+-5.1352890657367622e-01
+-5.1154368336442102e-01
+-5.0955138774262776e-01
+-5.0755207522232759e-01
+-5.0554580141217187e-01
+-5.0353262203037497e-01
+-5.0151259282102179e-01
+-4.9948576907697662e-01
+-4.9745220573484139e-01
+-4.9541195783866193e-01
+-4.9336508101863563e-01
+-4.9131163121271687e-01
+-4.8925166443652179e-01
+-4.8718523685892895e-01
+-4.8511240472799527e-01
+-4.8303322404754745e-01
+-4.8094775015404434e-01
+-4.7885603833835449e-01
+-4.7675814438085268e-01
+-4.7465412473329976e-01
+-4.7254403594457711e-01
+-4.7042793456955423e-01
+-4.6830587717633276e-01
+-4.6617792031414523e-01
+-4.6404411999382111e-01
+-4.6190453198343795e-01
+-4.5975921224997418e-01
+-4.5760821748835939e-01
+-4.5545160463776851e-01
+-4.5328943067948690e-01
+-4.5112175262021603e-01
+-4.4894862750817843e-01
+-4.4677011206958323e-01
+-4.4458626253006972e-01
+-4.4239713515034490e-01
+-4.4020278674988800e-01
+-4.3800327464690764e-01
+-4.3579865623048480e-01
+-4.3358898896645004e-01
+-4.3137433038600814e-01
+-4.2915473792625425e-01
+-4.2693026837706405e-01
+-4.2470097837309428e-01
+-4.2246692484817028e-01
+-4.2022816544369901e-01
+-4.1798475796149331e-01
+-4.1573676026679274e-01
+-4.1348423029392195e-01
+-4.1122722600558353e-01
+-4.0896580490353418e-01
+-4.0670002407043626e-01
+-4.0442994069009580e-01
+-4.0215561261836225e-01
+-3.9987709810111111e-01
+-3.9759445543781113e-01
+-3.9530774296721627e-01
+-3.9301701907645437e-01
+-3.9072234196842448e-01
+-3.8842376924058553e-01
+-3.8612135843498235e-01
+-3.8381516752012895e-01
+-3.8150525511786276e-01
+-3.7919167995635522e-01
+-3.7687450080064266e-01
+-3.7455377645331578e-01
+-3.7222956571040122e-01
+-3.6990192684176848e-01
+-3.6757091784073842e-01
+-3.6523659686720045e-01
+-3.6289902275211294e-01
+-3.6055825458095647e-01
+-3.5821435151769626e-01
+-3.5586737285321840e-01
+-3.5351737793936883e-01
+-3.5116442577843576e-01
+-3.4880857475124727e-01
+-3.4644988325067477e-01
+-3.4408841027573550e-01
+-3.4172421543012099e-01
+-3.3935735838573988e-01
+-3.3698789877790436e-01
+-3.3461589624173682e-01
+-3.3224141036248850e-01
+-3.2986450021780672e-01
+-3.2748522474640573e-01
+-3.2510364312413148e-01
+-3.2271981514253217e-01
+-3.2033380075329870e-01
+-3.1794566001070651e-01
+-3.1555545310881045e-01
+-3.1316324028203485e-01
+-3.1076908129117009e-01
+-3.0837303540271688e-01
+-3.0597516196570035e-01
+-3.0357552099503243e-01
+-3.0117417293789256e-01
+-2.9877117830288297e-01
+-2.9636659766797080e-01
+-2.9396049166987787e-01
+-2.9155292077367029e-01
+-2.8914394478115896e-01
+-2.8673362340761333e-01
+-2.8432201677648294e-01
+-2.8190918571317092e-01
+-2.7949519116494326e-01
+-2.7708009412877654e-01
+-2.7466395565108853e-01
+-2.7224683677839484e-01
+-2.6982879799761050e-01
+-2.6740989945283256e-01
+-2.6499020144861163e-01
+-2.6256976503747642e-01
+-2.6014865158507933e-01
+-2.5772692250951024e-01
+-2.5530463927854535e-01
+-2.5288186340922308e-01
+-2.5045865613147356e-01
+-2.4803507808029243e-01
+-2.4561118988671252e-01
+-2.4318705271174462e-01
+-2.4076272830775178e-01
+-2.3833827850915279e-01
+-2.3591376520715970e-01
+-2.3348925034852733e-01
+-2.3106479582423664e-01
+-2.2864046288677678e-01
+-2.2621631257022118e-01
+-2.2379240616217483e-01
+-2.2136880571000095e-01
+-2.1894557346864296e-01
+-2.1652277174894488e-01
+-2.1410046292056309e-01
+-2.1167870939167116e-01
+-2.0925757314885793e-01
+-2.0683711567364374e-01
+-2.0441739851380786e-01
+-2.0199848387122632e-01
+-1.9958043442282372e-01
+-1.9716331290600553e-01
+-1.9474718210301517e-01
+-1.9233210484572116e-01
+-1.8991814382741948e-01
+-1.8750536109141183e-01
+-1.8509381857405977e-01
+-1.8268357858173373e-01
+-1.8027470413365623e-01
+-1.7786725838406978e-01
+-1.7546130453589487e-01
+-1.7305690583976402e-01
+-1.7065412555759588e-01
+-1.6825302643054968e-01
+-1.6585367083247640e-01
+-1.6345612127443546e-01
+-1.6106044098465150e-01
+-1.5866669352889579e-01
+-1.5627494252729141e-01
+-1.5388525165413550e-01
+-1.5149768463536295e-01
+-1.4911230494785987e-01
+-1.4672917546566791e-01
+-1.4434835904069684e-01
+-1.4196991901303743e-01
+-1.3959391933190726e-01
+-1.3722042403579068e-01
+-1.3484949721790368e-01
+-1.3248120302577276e-01
+-1.3011560557100807e-01
+-1.2775276836181285e-01
+-1.2539275466485131e-01
+-1.2303562796905430e-01
+-1.2068145250766867e-01
+-1.1833029274121676e-01
+-1.1598221318085239e-01
+-1.1363727838541626e-01
+-1.1129555295583227e-01
+-1.0895710112997441e-01
+-1.0662198664478596e-01
+-1.0429027328560905e-01
+-1.0196202543407087e-01
+-9.9637307957016072e-02
+-9.7316185785326692e-02
+-9.4998723896231665e-02
+-9.2684987316812822e-02
+-9.0375040968766931e-02
+-8.8068949157070087e-02
+-8.5766776062915440e-02
+-8.3468586191173255e-02
+-8.1174444743253665e-02
+-7.8884417066785492e-02
+-7.6598568559360633e-02
+-7.4316964667377639e-02
+-7.2039670858731766e-02
+-6.9766752132419771e-02
+-6.7498273107508444e-02
+-6.5234298518486916e-02
+-6.2974893776610780e-02
+-6.0720124651194224e-02
+-5.8470056962791089e-02
+-5.6224756568137094e-02
+-5.3984289371563493e-02
+-5.1748721081566765e-02
+-4.9518116842259291e-02
+-4.7292541763408739e-02
+-4.5072061383806969e-02
+-4.2856741839848916e-02
+-4.0646649363011780e-02
+-3.8441850230133016e-02
+-3.6242410764436760e-02
+-3.4048397274465896e-02
+-3.1859875540989714e-02
+-2.9676911100643688e-02
+-2.7499569676388461e-02
+-2.5327917678573560e-02
+-2.3162021754802357e-02
+-2.1001948601524895e-02
+-1.8847764957472663e-02
+-1.6699537606335049e-02
+-1.4557333035797522e-02
+-1.2421217259864907e-02
+-1.0291256325680119e-02
+-8.1675168035735997e-03
+-6.0500657403484651e-03
+-3.9389702495670866e-03
+-1.8342974861610790e-03
+2.6388534818688693e-04
+2.3555111209433923e-03
+4.4405132417686798e-03
+6.5188252488044239e-03
+8.5903804104360652e-03
+1.0655111351601243e-02
+1.2712950545128613e-02
+1.4763830417990067e-02
+1.6807683355352095e-02
+1.8844441711435855e-02
+2.0874038218544871e-02
+2.2896405960639528e-02
+2.4911477929795523e-02
+2.6919186535671543e-02
+2.8919463840119512e-02
+3.0912241852235307e-02
+3.2897452545250387e-02
+3.4875027845153485e-02
+3.6844899816855882e-02
+3.8807001017847710e-02
+4.0761264045330273e-02
+4.2707621143345302e-02
+4.4646004009509896e-02
+4.6576344243128398e-02
+4.8498573399778810e-02
+5.0412622991112127e-02
+5.2318424522970947e-02
+5.4215909920986599e-02
+5.6105011332943461e-02
+5.7985660766172384e-02
+5.9857789683899210e-02
+6.1721329332297507e-02
+6.3576210842822639e-02
+6.5422365110163777e-02
+6.7259722950268733e-02
+6.9088215793301613e-02
+7.0907776159697011e-02
+7.2718336528134156e-02
+7.4519826892567767e-02
+7.6312174715551559e-02
+7.8095308212903530e-02
+7.9869165388743196e-02
+8.1633690167966622e-02
+8.3388836185541063e-02
+8.5134611502361832e-02
+8.6871043242422188e-02
+8.8598156445736140e-02
+9.0315969530164561e-02
+9.2024499651366859e-02
+9.3723764833004208e-02
+9.5413784635439911e-02
+9.7094578798333706e-02
+9.8766167096010549e-02
+1.0042856933826175e-01
+1.0208180533004896e-01
+1.0372589458967116e-01
+1.0536085646185279e-01
+1.0698671030684997e-01
+1.0860347549021970e-01
+1.1021117139299003e-01
+1.1180981755539371e-01
+1.1339943398964759e-01
+1.1498004081951219e-01
+1.1655165796920382e-01
+1.1811430497149962e-01
+1.1966800133561610e-01
+1.2121276660024878e-01
+1.2274862033444504e-01
+1.2427558215988840e-01
+1.2579367208940032e-01
+1.2730291040140415e-01
+1.2880331733097700e-01
+1.3029491270340587e-01
+1.3177771619999898e-01
+1.3325174753110233e-01
+1.3471702645602796e-01
+1.3617357276283776e-01
+1.3762140644564944e-01
+1.3906054787996691e-01
+1.4049101749570109e-01
+1.4191283547693809e-01
+1.4332602172094064e-01
+1.4473059612961120e-01
+1.4612657863119080e-01
+1.4751398917869660e-01
+1.4889284780438089e-01
+1.5026317493916325e-01
+1.5162499118693112e-01
+1.5297831706306872e-01
+1.5432317270734636e-01
+1.5565957819189161e-01
+1.5698755361926214e-01
+1.5830711913188475e-01
+1.5961829490290613e-01
+1.6092110136049678e-01
+1.6221555923500247e-01
+1.6350168927254091e-01
+1.6477951193603901e-01
+1.6604904749117433e-01
+1.6731031622232434e-01
+1.6856333844986937e-01
+1.6980813452168750e-01
+1.7104472489600547e-01
+1.7227313038721970e-01
+1.7349337190925918e-01
+1.7470547024764110e-01
+1.7590944589024826e-01
+1.7710531930568907e-01
+1.7829311099113629e-01
+1.7947284147415055e-01
+1.8064453132235195e-01
+1.8180820138457410e-01
+1.8296387272556877e-01
+1.8411156639380441e-01
+1.8525130315162133e-01
+1.8638310364783947e-01
+1.8750698855491418e-01
+1.8862297857793306e-01
+1.8973109444674197e-01
+1.9083135704056015e-01
+1.9192378754448206e-01
+1.9300840719880116e-01
+1.9408523707710629e-01
+1.9515429802870576e-01
+1.9621561090809139e-01
+1.9726919659640832e-01
+1.9831507600029311e-01
+1.9935327008358134e-01
+2.0038380010236231e-01
+2.0140668745848159e-01
+2.0242195350542572e-01
+2.0342961932583550e-01
+2.0442970594819493e-01
+2.0542223442915250e-01
+2.0640722586252230e-01
+2.0738470136934797e-01
+2.0835468224801545e-01
+2.0931719003054663e-01
+2.1027224627305879e-01
+2.1121987234581677e-01
+2.1216008947195500e-01
+2.1309291889170701e-01
+2.1401838187147348e-01
+2.1493649970133108e-01
+2.1584729375051781e-01
+2.1675078566018491e-01
+2.1764699716068581e-01
+2.1853594990312089e-01
+2.1941766531503687e-01
+2.2029216480908950e-01
+2.2115946982884341e-01
+2.2201960185276448e-01
+2.2287258239162924e-01
+2.2371843314914255e-01
+2.2455717599581981e-01
+2.2538883280395441e-01
+2.2621342526175289e-01
+2.2703097497597868e-01
+2.2784150357339220e-01
+2.2864503269925907e-01
+2.2944158401962347e-01
+2.3023117930747178e-01
+2.3101384057457952e-01
+2.3178958988590961e-01
+2.3255844919820640e-01
+2.3332044029770740e-01
+2.3407558497726605e-01
+2.3482390506405137e-01
+2.3556542241804157e-01
+2.3630015894097678e-01
+2.3702813673285023e-01
+2.3774937800761106e-01
+2.3846390495885791e-01
+2.3917173959770074e-01
+2.3987290389593821e-01
+2.4056741985373103e-01
+2.4125530951118271e-01
+2.4193659493449959e-01
+2.4261129830828010e-01
+2.4327944198817436e-01
+2.4394104835727390e-01
+2.4459613968203625e-01
+2.4524473812326664e-01
+2.4588686585961522e-01
+2.4652254510202820e-01
+2.4715179808880836e-01
+2.4777464711229769e-01
+2.4839111464912392e-01
+2.4900122324822219e-01
+2.4960499542051648e-01
+2.5020245353255177e-01
+2.5079361994375698e-01
+2.5137851703991765e-01
+2.5195716723618805e-01
+2.5252959297498234e-01
+2.5309581682924615e-01
+2.5365586149801017e-01
+2.5420974969241483e-01
+2.5475750401006869e-01
+2.5529914699312656e-01
+2.5583470120592905e-01
+2.5636418924291376e-01
+2.5688763372282458e-01
+2.5740505733005448e-01
+2.5791648289925007e-01
+2.5842193330899976e-01
+2.5892143138797852e-01
+2.5941499986637467e-01
+2.5990266148468749e-01
+2.6038443901289043e-01
+2.6086035525042739e-01
+2.6133043302842468e-01
+2.6179469530253313e-01
+2.6225316511118346e-01
+2.6270586549285291e-01
+2.6315281938456137e-01
+2.6359404970268491e-01
+2.6402957938953120e-01
+2.6445943142268241e-01
+2.6488362880438993e-01
+2.6530219460906462e-01
+2.6571515202143042e-01
+2.6612252425371785e-01
+2.6652433446479074e-01
+2.6692060575703558e-01
+2.6731136125146249e-01
+2.6769662409954093e-01
+2.6807641747978006e-01
+2.6845076460732037e-01
+2.6881968880599771e-01
+2.6918321345243662e-01
+2.6954136191495454e-01
+2.6989415748782875e-01
+2.7024162346779523e-01
+2.7058378317796811e-01
+2.7092065997193038e-01
+2.7125227722774065e-01
+2.7157865839993034e-01
+2.7189982702419457e-01
+2.7221580665437545e-01
+2.7252662079132517e-01
+2.7283229290917926e-01
+2.7313284650494013e-01
+2.7342830511056565e-01
+2.7371869228454415e-01
+2.7400403162450837e-01
+2.7428434680874114e-01
+2.7455966154915473e-01
+2.7482999954867499e-01
+2.7509538447347620e-01
+2.7535584000471613e-01
+2.7561138984711647e-01
+2.7586205772923827e-01
+2.7610786740508825e-01
+2.7634884269777105e-01
+2.7658500748402265e-01
+2.7681638565381095e-01
+2.7704300106191160e-01
+2.7726487756231644e-01
+2.7748203903350799e-01
+2.7769450938625129e-01
+2.7790231255528219e-01
+2.7810547251370743e-01
+2.7830401328980436e-01
+2.7849795893653750e-01
+2.7868733350253511e-01
+2.7887216102747359e-01
+2.7905246557069929e-01
+2.7922827121231375e-01
+2.7939960205338499e-01
+2.7956648222223468e-01
+2.7972893590745618e-01
+2.7988698733507839e-01
+2.8004066074131212e-01
+2.8018998034199272e-01
+2.8033497036483129e-01
+2.8047565506375899e-01
+2.8061205872407463e-01
+2.8074420565415448e-01
+2.8087212019628605e-01
+2.8099582672950535e-01
+2.8111534965389912e-01
+2.8123071337174960e-01
+2.8134194229266757e-01
+2.8144906084829940e-01
+2.8155209349799831e-01
+2.8165106472527396e-01
+2.8174599903790359e-01
+2.8183692097585039e-01
+2.8192385510311735e-01
+2.8200682599880667e-01
+2.8208585824959265e-01
+2.8216097646197652e-01
+2.8223220527058912e-01
+2.8229956934005329e-01
+2.8236309335653514e-01
+2.8242280202024006e-01
+2.8247872004716207e-01
+2.8253087217583961e-01
+2.8257928317523934e-01
+2.8262397783983179e-01
+2.8266498098473364e-01
+2.8270231744305718e-01
+2.8273601206850746e-01
+2.8276608973355133e-01
+2.8279257532594260e-01
+2.8281549375419224e-01
+2.8283486995383400e-01
+2.8285072888927837e-01
+2.8286309554691313e-01
+2.8287199493420390e-01
+2.8287745207977760e-01
+2.8287949203286539e-01
+2.8287813985736238e-01
+2.8287342063544541e-01
+2.8286535947102359e-01
+2.8285398149062974e-01
+2.8283931184260541e-01
+2.8282137570361332e-01
+2.8280019828806546e-01
+2.8277580483384845e-01
+2.8274822058257609e-01
+2.8271747077263620e-01
+2.8268358066305055e-01
+2.8264657555097655e-01
+2.8260648076889572e-01
+2.8256332167186193e-01
+2.8251712364184017e-01
+2.8246791208494754e-01
+2.8241571242228758e-01
+2.8236055006741939e-01
+2.8230245044733210e-01
+2.8224143902011756e-01
+2.8217754128931022e-01
+2.8211078278368257e-01
+2.8204118905770303e-01
+2.8196878569342948e-01
+2.8189359829322991e-01
+2.8181565245096651e-01
+2.8173497375600604e-01
+2.8165158782223998e-01
+2.8156552031893506e-01
+2.8147679695420502e-01
+2.8138544345806954e-01
+2.8129148558328776e-01
+2.8119494910445464e-01
+2.8109585980514307e-01
+2.8099424345783441e-01
+2.8089012585126821e-01
+2.8078353279694990e-01
+2.8067449012981877e-01
+2.8056302371223346e-01
+2.8044915953939203e-01
+2.8033292372850693e-01
+2.8021434236537368e-01
+2.8009344104122674e-01
+2.7997024509260648e-01
+2.7984478027111337e-01
+2.7971707428940484e-01
+2.7958715546825663e-01
+2.7945504779706115e-01
+2.7932076342838241e-01
+2.7918431248432585e-01
+2.7904570245387611e-01
+2.7890493666654853e-01
+2.7876201813303825e-01
+2.7861695078337245e-01
+2.7846973941263276e-01
+2.7832038882414667e-01
+2.7816890353885776e-01
+2.7801528792200747e-01
+2.7785954634708365e-01
+2.7770168322075067e-01
+2.7754170296329100e-01
+2.7737961000971656e-01
+2.7721540882886803e-01
+2.7704910389935455e-01
+2.7688069971318335e-01
+2.7671020078154568e-01
+2.7653761161906570e-01
+2.7636293669167655e-01
+2.7618618041766940e-01
+2.7600734722369191e-01
+2.7582644160330844e-01
+2.7564346809093032e-01
+2.7545843122511088e-01
+2.7527133554473332e-01
+2.7508218559173614e-01
+2.7489098589107558e-01
+2.7469774090817689e-01
+2.7450245510139903e-01
+2.7430513296802816e-01
+2.7410577906906469e-01
+2.7390439797594701e-01
+2.7370099426814359e-01
+2.7349557253322937e-01
+2.7328813735680318e-01
+2.7307869325809936e-01
+2.7286724471771734e-01
+2.7265379623446795e-01
+2.7243835239316222e-01
+2.7222091781167757e-01
+2.7200149711020100e-01
+2.7178009490655403e-01
+2.7155671582128443e-01
+2.7133136444274852e-01
+2.7110404529807447e-01
+2.7087476291393092e-01
+2.7064352187267421e-01
+2.7041032681564969e-01
+2.7017518239191796e-01
+2.6993809326201385e-01
+2.6969906409538225e-01
+2.6945809955142858e-01
+2.6921520420760081e-01
+2.6897038261401368e-01
+2.6872363935039628e-01
+2.6847497908373052e-01
+2.6822440650240392e-01
+2.6797192630138739e-01
+2.6771754318408625e-01
+2.6746126185662283e-01
+2.6720308696873923e-01
+2.6694302310716167e-01
+2.6668107486577314e-01
+2.6641724691853347e-01
+2.6615154399388874e-01
+2.6588397082528642e-01
+2.6561453214845021e-01
+2.6534323270272181e-01
+2.6507007720698622e-01
+2.6479507029904825e-01
+2.6451821660308034e-01
+2.6423952078808033e-01
+2.6395898760646447e-01
+2.6367662182438262e-01
+2.6339242821668768e-01
+2.6310641156759579e-01
+2.6281857665944813e-01
+2.6252892819473561e-01
+2.6223747082220800e-01
+2.6194420920827766e-01
+2.6164914811830986e-01
+2.6135229236012780e-01
+2.6105364674686327e-01
+2.6075321609877716e-01
+2.6045100524087278e-01
+2.6014701895549092e-01
+2.5984126193326723e-01
+2.5953373885951031e-01
+2.5922445449080006e-01
+2.5891341366866999e-01
+2.5860062124388344e-01
+2.5828608207139986e-01
+2.5796980101045103e-01
+2.5765178291047924e-01
+2.5733203252741355e-01
+2.5701055458037730e-01
+2.5668735381940622e-01
+2.5636243509963746e-01
+2.5603580330441994e-01
+2.5570746332473682e-01
+2.5537742006279324e-01
+2.5504567842414305e-01
+2.5471224324716968e-01
+2.5437711928479434e-01
+2.5404031129457011e-01
+2.5370182412438907e-01
+2.5336166269101562e-01
+2.5301983191874067e-01
+2.5267633674718121e-01
+2.5233118212520189e-01
+2.5198437297518261e-01
+2.5163591410142760e-01
+2.5128581028255137e-01
+2.5093406635098131e-01
+2.5058068725371191e-01
+2.5022567795716733e-01
+2.4986904343585853e-01
+2.4951078867349807e-01
+2.4915091865180961e-01
+2.4878943825314914e-01
+2.4842635228312554e-01
+2.4806166556584880e-01
+2.4769538305392250e-01
+2.4732750976142454e-01
+2.4695805070534452e-01
+2.4658701089940208e-01
+2.4621439535959191e-01
+2.4584020905714715e-01
+2.4546445685310986e-01
+2.4508714359828693e-01
+2.4470827422152064e-01
+2.4432785375651603e-01
+2.4394588724883906e-01
+2.4356237975147113e-01
+2.4317733632426561e-01
+2.4279076201686242e-01
+2.4240266176522524e-01
+2.4201304045297944e-01
+2.4162190299522623e-01
+2.4122925443098658e-01
+2.4083509983622739e-01
+2.4043944429625685e-01
+2.4004229291271542e-01
+2.3964365079176908e-01
+2.3924352296114845e-01
+2.3884191433514795e-01
+2.3843882982965264e-01
+2.3803427447365227e-01
+2.3762825339288063e-01
+2.3722077171949024e-01
+2.3681183458175903e-01
+2.3640144710825023e-01
+2.3598961440486252e-01
+2.3557634145837358e-01
+2.3516163322483635e-01
+2.3474549471218911e-01
+2.3432793105384939e-01
+2.3390894740677759e-01
+2.3348854893699850e-01
+2.3306674082181805e-01
+2.3264352823778964e-01
+2.3221891625821450e-01
+2.3179290986549142e-01
+2.3136551405729952e-01
+2.3093673396219647e-01
+2.3050657477944059e-01
+2.3007504171339910e-01
+2.2964213997314772e-01
+2.2920787477222213e-01
+2.2877225127908415e-01
+2.2833527453459157e-01
+2.2789694956342155e-01
+2.2745728146793245e-01
+2.2701627546825753e-01
+2.2657393679895249e-01
+2.2613027070377170e-01
+2.2568528243530239e-01
+2.2523897723712846e-01
+2.2479136022939630e-01
+2.2434243646668997e-01
+2.2389221103491316e-01
+2.2344068916326165e-01
+2.2298787612884244e-01
+2.2253377721327541e-01
+2.2207839770270951e-01
+2.2162174288662759e-01
+2.2116381798171353e-01
+2.2070462808446112e-01
+2.2024417828929740e-01
+2.1978247380011026e-01
+2.1931951992618565e-01
+2.1885532198563074e-01
+2.1838988530363898e-01
+2.1792321521137395e-01
+2.1745531701598336e-01
+2.1698619587905116e-01
+2.1651585691739619e-01
+2.1604430530463978e-01
+2.1557154637211701e-01
+2.1509758548339597e-01
+2.1462242800055506e-01
+2.1414607928009899e-01
+2.1366854467775956e-01
+2.1318982945502341e-01
+2.1270993877896116e-01
+2.1222887782855485e-01
+2.1174665191138969e-01
+2.1126326641349036e-01
+2.1077872672746145e-01
+2.1029303825655385e-01
+2.0980620641059092e-01
+2.0931823655319645e-01
+2.0882913389742117e-01
+2.0833890363204285e-01
+2.0784755103006025e-01
+2.0735508150914170e-01
+2.0686150050562577e-01
+2.0636681345975771e-01
+2.0587102581566394e-01
+2.0537414300955806e-01
+2.0487617034540745e-01
+2.0437711304659423e-01
+2.0387697636602650e-01
+2.0337576571444199e-01
+2.0287348656217657e-01
+2.0237014438440201e-01
+2.0186574466166668e-01
+2.0136029287839660e-01
+2.0085379444562002e-01
+2.0034625463606093e-01
+1.9983767871554148e-01
+1.9932807206279329e-01
+1.9881744017897821e-01
+1.9830578857560449e-01
+1.9779312276783753e-01
+1.9727944827479105e-01
+1.9676477059485725e-01
+1.9624909507760069e-01
+1.9573242701929627e-01
+1.9521477176722454e-01
+1.9469613483013157e-01
+1.9417652175418118e-01
+1.9365593809230200e-01
+1.9313438940627056e-01
+1.9261188125894654e-01
+1.9208841910418040e-01
+1.9156400827167164e-01
+1.9103865409984469e-01
+1.9051236207203534e-01
+1.8998513777104670e-01
+1.8945698678635603e-01
+1.8892791471446208e-01
+1.8839792715734782e-01
+1.8786702967384780e-01
+1.8733522765961633e-01
+1.8680252647835702e-01
+1.8626893157491689e-01
+1.8573444855204699e-01
+1.8519908303524960e-01
+1.8466284065510449e-01
+1.8412572704737545e-01
+1.8358774784170254e-01
+1.8304890853209765e-01
+1.8250921451817970e-01
+1.8196867122568364e-01
+1.8142728424498503e-01
+1.8088505923688783e-01
+1.8034200186771718e-01
+1.7979811781134203e-01
+1.7925341274634696e-01
+1.7870789227926182e-01
+1.7816156186126852e-01
+1.7761442693096949e-01
+1.7706649303874228e-01
+1.7651776587156370e-01
+1.7596825112927422e-01
+1.7541795451973077e-01
+1.7486688175787438e-01
+1.7431503854017116e-01
+1.7376243040503517e-01
+1.7320906282528201e-01
+1.7265494132028170e-01
+1.7210007157818774e-01
+1.7154445933137430e-01
+1.7098811031994410e-01
+1.7043103029556039e-01
+1.6987322501241370e-01
+1.6931470011973704e-01
+1.6875546113082859e-01
+1.6819551356352172e-01
+1.6763486307998662e-01
+1.6707351545409674e-01
+1.6651147646623748e-01
+1.6594875189602276e-01
+1.6538534752518649e-01
+1.6482126910006853e-01
+1.6425652220980871e-01
+1.6369111240720335e-01
+1.6312504531638214e-01
+1.6255832671864043e-01
+1.6199096242107533e-01
+1.6142295824111810e-01
+1.6085432000850799e-01
+1.6028505354899455e-01
+1.5971516454992152e-01
+1.5914465858889068e-01
+1.5857354126576145e-01
+1.5800181834985907e-01
+1.5742949569259956e-01
+1.5685657915046128e-01
+1.5628307458492183e-01
+1.5570898786184242e-01
+1.5513432478037348e-01
+1.5455909097438106e-01
+1.5398329205962999e-01
+1.5340693376287673e-01
+1.5283002196393933e-01
+1.5225256255797895e-01
+1.5167456144189390e-01
+1.5109602451477977e-01
+1.5051695766023174e-01
+1.4993736660246287e-01
+1.4935725698954641e-01
+1.4877663451433959e-01
+1.4819550505699866e-01
+1.4761387455309505e-01
+1.4703174893822901e-01
+1.4644913414134805e-01
+1.4586603609226503e-01
+1.4528246062826272e-01
+1.4469841345006806e-01
+1.4411390025914489e-01
+1.4352892689685059e-01
+1.4294349932657383e-01
+1.4235762351915199e-01
+1.4177130544172875e-01
+1.4118455106173505e-01
+1.4059736631589201e-01
+1.4000975698101373e-01
+1.3942172879039166e-01
+1.3883328754427973e-01
+1.3824443921072091e-01
+1.3765518978858710e-01
+1.3706554528398476e-01
+1.3647551171167191e-01
+1.3588509508416535e-01
+1.3529430128173883e-01
+1.3470313606544163e-01
+1.3411160521410351e-01
+1.3351971467471199e-01
+1.3292747048646764e-01
+1.3233487869397931e-01
+1.3174194534675035e-01
+1.3114867649880277e-01
+1.3055507814365017e-01
+1.2996115610182921e-01
+1.2936691616980106e-01
+1.2877236424960697e-01
+1.2817750640774789e-01
+1.2758234872902430e-01
+1.2698689729597903e-01
+1.2639115818928354e-01
+1.2579513747829638e-01
+1.2519884108689833e-01
+1.2460227485946801e-01
+1.2400544467549832e-01
+1.2340835658198335e-01
+1.2281101668267790e-01
+1.2221343109048198e-01
+1.2161560593603184e-01
+1.2101754735541059e-01
+1.2041926138923240e-01
+1.1982075391769594e-01
+1.1922203081580875e-01
+1.1862309809427167e-01
+1.1802396189716939e-01
+1.1742462837860670e-01
+1.1682510369829099e-01
+1.1622539402107085e-01
+1.1562550548337229e-01
+1.1502544404843359e-01
+1.1442521562422157e-01
+1.1382482618272675e-01
+1.1322428187912362e-01
+1.1262358890632244e-01
+1.1202275345844084e-01
+1.1142178172843212e-01
+1.1082067990817356e-01
+1.1021945407407167e-01
+1.0961811018422167e-01
+1.0901665420917975e-01
+1.0841509227135929e-01
+1.0781343058746055e-01
+1.0721167538161881e-01
+1.0660983289193394e-01
+1.0600790936430698e-01
+1.0540591098950801e-01
+1.0480384377586538e-01
+1.0420171370052701e-01
+1.0359952683921513e-01
+1.0299728944132527e-01
+1.0239500777822096e-01
+1.0179268812132269e-01
+1.0119033674181191e-01
+1.0058795990175659e-01
+9.9985563715419293e-02
+9.9383154204668561e-02
+9.8780737423498702e-02
+9.8178319604841316e-02
+9.7575907050345523e-02
+9.6973506065843360e-02
+9.6371122960312888e-02
+9.5768764046126831e-02
+9.5166435552430789e-02
+9.4564143548350757e-02
+9.3961894093782944e-02
+9.3359693380497641e-02
+9.2757547746367602e-02
+9.2155463540232865e-02
+9.1553447104373437e-02
+9.0951504778230621e-02
+9.0349642879455072e-02
+8.9747867566947997e-02
+8.9146184941096565e-02
+8.8544601157311456e-02
+8.7943122550349195e-02
+8.7341755497032728e-02
+8.6740506376545859e-02
+8.6139381568390114e-02
+8.5538387452321243e-02
+8.4937530298579214e-02
+8.4336816249841018e-02
+8.3736251457253996e-02
+8.3135842223694412e-02
+8.2535594958343839e-02
+8.1935516076700007e-02
+8.1335611997412960e-02
+8.0735889143082037e-02
+8.0136353891690715e-02
+7.9537012448543845e-02
+7.8937870983902036e-02
+7.8338935753868688e-02
+7.7740213185638632e-02
+7.7141709731229260e-02
+7.6543431846078230e-02
+7.5945385988821237e-02
+7.5347578611855870e-02
+7.4750016027474789e-02
+7.4152704448152154e-02
+7.3555650112010915e-02
+7.2958859424472680e-02
+7.2362338864080764e-02
+7.1766094916865503e-02
+7.1170134083784434e-02
+7.0574462872285540e-02
+6.9979087711514218e-02
+6.9384014858171389e-02
+6.8789250553767847e-02
+6.8194801162025809e-02
+6.7600673199316341e-02
+6.7006873195790573e-02
+6.6413407684118617e-02
+6.5820283199979429e-02
+6.5227506259343815e-02
+6.4635083207522384e-02
+6.4043020317007315e-02
+6.3451323917475724e-02
+6.2860000553985149e-02
+6.2269056828105955e-02
+6.1678499288443676e-02
+6.1088334359743264e-02
+6.0498568459000424e-02
+5.9909208215456179e-02
+5.9320260535326047e-02
+5.8731732233741687e-02
+5.8143628375869942e-02
+5.7555952656103138e-02
+5.6968708420485216e-02
+5.6381896622719058e-02
+5.5795517114203157e-02
+5.5209569826043678e-02
+5.4624055046268785e-02
+5.4038973155722668e-02
+5.3454324546879858e-02
+5.2870109639335590e-02
+5.2286328857221856e-02
+5.1702982652137040e-02
+5.1120071513208395e-02
+5.0537595923043216e-02
+4.9955556211806952e-02
+4.9373952585135127e-02
+4.8792785266331018e-02
+4.8212054650456755e-02
+4.7631761215302645e-02
+4.7051905437958619e-02
+4.6472487789847833e-02
+4.5893508740710479e-02
+4.5314968693460307e-02
+4.4736867887740520e-02
+4.4159206540754205e-02
+4.3581984970200743e-02
+4.3005203637059994e-02
+4.2428863013346640e-02
+4.1852963571035399e-02
+4.1277505782080094e-02
+4.0702490099637632e-02
+4.0127916817308464e-02
+3.9553786148412491e-02
+3.8980098343793360e-02
+3.8406853828954694e-02
+3.7834053079345988e-02
+3.7261696568945790e-02
+3.6689784767825646e-02
+3.6118318143724855e-02
+3.5547297068436554e-02
+3.4976721771109893e-02
+3.4406592476133840e-02
+3.3836909536782221e-02
+3.3267673420681439e-02
+3.2698884599297498e-02
+3.2130543542347983e-02
+3.1562650718672890e-02
+3.0995206562953247e-02
+3.0428211345820806e-02
+2.9861665288842106e-02
+2.9295568673824528e-02
+2.8729921943719483e-02
+2.8164725568163858e-02
+2.7599980016334878e-02
+2.7035685756649937e-02
+2.6471843251451785e-02
+2.5908452841267037e-02
+2.5345514753993229e-02
+2.4783029228922431e-02
+2.4220996652912642e-02
+2.3659417493767189e-02
+2.3098292220153541e-02
+2.2537621300575020e-02
+2.1977405203469712e-02
+2.1417644340352159e-02
+2.0858338963380459e-02
+2.0299489298304104e-02
+1.9741095658737173e-02
+1.9183158500420891e-02
+1.8625678292078555e-02
+1.8068655501911012e-02
+1.7512090597618806e-02
+1.6955984032451295e-02
+1.6400336115745040e-02
+1.5845147074438841e-02
+1.5290417164771135e-02
+1.4736146803027584e-02
+1.4182336458140873e-02
+1.3628986598552179e-02
+1.3076097691008539e-02
+1.2523670200921501e-02
+1.1971704510409523e-02
+1.1420200861016918e-02
+1.0869159485640592e-02
+1.0318580731738603e-02
+9.7684650617829993e-03
+9.2188129433448274e-03
+8.6696248439728993e-03
+8.1209012312363268e-03
+7.5726425444178607e-03
+7.0248490658448050e-03
+6.4775210238031738e-03
+5.9306586980157070e-03
+5.3842625262815686e-03
+4.8383329766572333e-03
+4.2928705165247360e-03
+3.7478756120151646e-03
+3.2033487247853597e-03
+2.6592902062971468e-03
+2.1157002927319822e-03
+1.5725792271519220e-03
+1.0299273898201435e-03
+4.8774524652315929e-04
+-5.3966735763890635e-05
+-5.9520809106531876e-04
+-1.1359783537288814e-03
+-1.6762771060976787e-03
+-2.2161040848925088e-03
+-2.7554590570669168e-03
+-3.2943417126505576e-03
+-3.8327516002442724e-03
+-4.3706882532293257e-03
+-4.9081512056447516e-03
+-5.4451399922539993e-03
+-5.9816541590691158e-03
+-6.5176933845127842e-03
+-7.0532574331025680e-03
+-7.5883460462621262e-03
+-8.1229588152018344e-03
+-8.6570952744343972e-03
+-9.1907549583460074e-03
+-9.7239374014383238e-03
+-1.0256642138808881e-02
+-1.0788868778964658e-02
+-1.1320617071332181e-02
+-1.1851886777798038e-02
+-1.2382677556315242e-02
+-1.2912988946764502e-02
+-1.3442820482719154e-02
+-1.3972171699581403e-02
+-1.4501042133967764e-02
+-1.5029431345161319e-02
+-1.5557339037956889e-02
+-1.6084764974610880e-02
+-1.6611708874705873e-02
+-1.7138170306555508e-02
+-1.7664148805069071e-02
+-1.8189643905634469e-02
+-1.8714655144679238e-02
+-1.9239182061782493e-02
+-1.9763224294890330e-02
+-2.0286781598407518e-02
+-2.0809853724020864e-02
+-2.1332440297824797e-02
+-2.1854540857107110e-02
+-2.2376154937339791e-02
+-2.2897282074795664e-02
+-2.3417921806032492e-02
+-2.3938073707835530e-02
+-2.4457737505995447e-02
+-2.4976912960389862e-02
+-2.5495599764017732e-02
+-2.6013797469811455e-02
+-2.6531505613072187e-02
+-2.7048723730113518e-02
+-2.7565451358516714e-02
+-2.8081688044479650e-02
+-2.8597433454821703e-02
+-2.9112687345286024e-02
+-2.9627449453888413e-02
+-3.0141719378084658e-02
+-3.0655496654621566e-02
+-3.1168780820219875e-02
+-3.1681571412651537e-02
+-3.2193867970208387e-02
+-3.2705670093765661e-02
+-3.3216977521169012e-02
+-3.3727790006048482e-02
+-3.4238107211464974e-02
+-3.4747928683994650e-02
+-3.5257253962278023e-02
+-3.5766082581833725e-02
+-3.6274414075762915e-02
+-3.6782247996446887e-02
+-3.7289584040762616e-02
+-3.7796421970822315e-02
+-3.8302761511355442e-02
+-3.8808602233566768e-02
+-3.9313943669591893e-02
+-3.9818785352794289e-02
+-4.0323126819448690e-02
+-4.0826967608361818e-02
+-4.1330307349750510e-02
+-4.1833145796387118e-02
+-4.2335482702000091e-02
+-4.2837317698230515e-02
+-4.3338650318920119e-02
+-4.3839480096033952e-02
+-4.4339806568853120e-02
+-4.4839629280069411e-02
+-4.5338947804550084e-02
+-4.5837761854482205e-02
+-4.6336071178502421e-02
+-4.6833875469518865e-02
+-4.7331174287138927e-02
+-4.7827967171413265e-02
+-4.8324253662285488e-02
+-4.8820033299579534e-02
+-4.9315305629581752e-02
+-4.9810070309315051e-02
+-5.0304327088255538e-02
+-5.0798075702345742e-02
+-5.1291315752031420e-02
+-5.1784046770973029e-02
+-5.2276268294058639e-02
+-5.2767979864025080e-02
+-5.3259181025889613e-02
+-5.3749871377278102e-02
+-5.4240050647436672e-02
+-5.4729718584263606e-02
+-5.5218874852397307e-02
+-5.5707518995125695e-02
+-5.6195650546455762e-02
+-5.6683269047005450e-02
+-5.7170374043135241e-02
+-5.7656965095191449e-02
+-5.8143041883942786e-02
+-5.8628604152146657e-02
+-5.9113651614527307e-02
+-5.9598183851769279e-02
+-6.0082200405261597e-02
+-6.0565700816649207e-02
+-6.1048684628378029e-02
+-6.1531151384284125e-02
+-6.2013100703237581e-02
+-6.2494532318163452e-02
+-6.2975445966410679e-02
+-6.3455841285025807e-02
+-6.3935717820107499e-02
+-6.4415075114130166e-02
+-6.4893912707050444e-02
+-6.5372230137437592e-02
+-6.5850026971993034e-02
+-6.6327302916080230e-02
+-6.6804057717581869e-02
+-6.7280291074722678e-02
+-6.7756002549660799e-02
+-6.8231191681427217e-02
+-6.8705858009019655e-02
+-6.9180001071426744e-02
+-6.9653620412595749e-02
+-7.0126715680898150e-02
+-7.0599286623372379e-02
+-7.1071332977368118e-02
+-7.1542854348613599e-02
+-7.2013850268985144e-02
+-7.2484320271781200e-02
+-7.2954263902163682e-02
+-7.3423680709107764e-02
+-7.3892570285153711e-02
+-7.4360932347787956e-02
+-7.4828766635797350e-02
+-7.5296072817243681e-02
+-7.5762850443204882e-02
+-7.6229099053832919e-02
+-7.6694818191554118e-02
+-7.7160007401033112e-02
+-7.7624666238186465e-02
+-7.8088794373509129e-02
+-7.8552391544587222e-02
+-7.9015457466262914e-02
+-7.9477991725465505e-02
+-7.9939993866007503e-02
+-8.0401463431269332e-02
+-8.0862399963574166e-02
+-8.1322803005808866e-02
+-8.1782672167594633e-02
+-8.2242007173743109e-02
+-8.2700807756856523e-02
+-8.3159073561165267e-02
+-8.3616804140232912e-02
+-8.4073999042538913e-02
+-8.4530657806784495e-02
+-8.4986779965668446e-02
+-8.5442365076712934e-02
+-8.5897412839247803e-02
+-8.6351923002627395e-02
+-8.6805895270288355e-02
+-8.7259329201027899e-02
+-8.7712224325333696e-02
+-8.8164580182325855e-02
+-8.8616396326732710e-02
+-8.9067672317857949e-02
+-8.9518407792844715e-02
+-8.9968602472054626e-02
+-9.0418256071196135e-02
+-9.0867368205875515e-02
+-9.1315938427894219e-02
+-9.1763966286902865e-02
+-9.2211451326166385e-02
+-9.2658393086556670e-02
+-9.3104791148326912e-02
+-9.3550645221586223e-02
+-9.3995955042592935e-02
+-9.4440720284365787e-02
+-9.4884940500988363e-02
+-9.5328615233483474e-02
+-9.5771744026408423e-02
+-9.6214326428266148e-02
+-9.6656361996054319e-02
+-9.7097850387747056e-02
+-9.7538791328443689e-02
+-9.7979184526210322e-02
+-9.8419029574631278e-02
+-9.8858326023032822e-02
+-9.9297073420182749e-02
+-9.9735271313409299e-02
+-1.0017291925012295e-01
+-1.0061001683359447e-01
+-1.0104656377681026e-01
+-1.0148255980297977e-01
+-1.0191800455627077e-01
+-1.0235289758908364e-01
+-1.0278723844858528e-01
+-1.0322102668150124e-01
+-1.0365426183423038e-01
+-1.0408694347114629e-01
+-1.0451907127525174e-01
+-1.0495064497751706e-01
+-1.0538166427407131e-01
+-1.0581212873437641e-01
+-1.0624203789922297e-01
+-1.0667139131145413e-01
+-1.0710018851819600e-01
+-1.0752842906946061e-01
+-1.0795611259566158e-01
+-1.0838323882449874e-01
+-1.0880980748146139e-01
+-1.0923581818193266e-01
+-1.0966127046170597e-01
+-1.1008616385743718e-01
+-1.1051049792438787e-01
+-1.1093427222565017e-01
+-1.1135748635004168e-01
+-1.1178013998398692e-01
+-1.1220223283682645e-01
+-1.1262376457364151e-01
+-1.1304473476465569e-01
+-1.1346514296762528e-01
+-1.1388498873391366e-01
+-1.1430427160683859e-01
+-1.1472299113607765e-01
+-1.1514114697168686e-01
+-1.1555873883936166e-01
+-1.1597576645045699e-01
+-1.1639222939830363e-01
+-1.1680812722404735e-01
+-1.1722345947066964e-01
+-1.1763822568957411e-01
+-1.1805242543443328e-01
+-1.1846605830670914e-01
+-1.1887912401492508e-01
+-1.1929162228031875e-01
+-1.1970355274965480e-01
+-1.2011491497179805e-01
+-1.2052570848930423e-01
+-1.2093593285096564e-01
+-1.2134558761045926e-01
+-1.2175467233528985e-01
+-1.2216318669809621e-01
+-1.2257113042009488e-01
+-1.2297850319416445e-01
+-1.2338530459379890e-01
+-1.2379153416134951e-01
+-1.2419719144278352e-01
+-1.2460227599262329e-01
+-1.2500678736801571e-01
+-1.2541072518987870e-01
+-1.2581408916652959e-01
+-1.2621687900742945e-01
+-1.2661909433639512e-01
+-1.2702073470712302e-01
+-1.2742179967082601e-01
+-1.2782228877573448e-01
+-1.2822220156860573e-01
+-1.2862153762282438e-01
+-1.2902029662842546e-01
+-1.2941847830720846e-01
+-1.2981608233487960e-01
+-1.3021310827426336e-01
+-1.3060955567124483e-01
+-1.3100542407466836e-01
+-1.3140071303763412e-01
+-1.3179542211819076e-01
+-1.3218955095638577e-01
+-1.3258309926223302e-01
+-1.3297606673636403e-01
+-1.3336845298052785e-01
+-1.3376025754660195e-01
+-1.3415147998607205e-01
+-1.3454211985059336e-01
+-1.3493217669192012e-01
+-1.3532165010285094e-01
+-1.3571053978135522e-01
+-1.3609884544085643e-01
+-1.3648656673149875e-01
+-1.3687370320913816e-01
+-1.3726025442204579e-01
+-1.3764621992123818e-01
+-1.3803159926016612e-01
+-1.3841639200307509e-01
+-1.3880059781039755e-01
+-1.3918421639321737e-01
+-1.3956724744116217e-01
+-1.3994969053838147e-01
+-1.4033154523732583e-01
+-1.4071281108997619e-01
+-1.4109348764717491e-01
+-1.4147357446049968e-01
+-1.4185307114032447e-01
+-1.4223197738840551e-01
+-1.4261029291063929e-01
+-1.4298801733694833e-01
+-1.4336515022685406e-01
+-1.4374169113649762e-01
+-1.4411763961564189e-01
+-1.4449299521051526e-01
+-1.4486775748923333e-01
+-1.4524192613070655e-01
+-1.4561550084867139e-01
+-1.4598848131850403e-01
+-1.4636086710790563e-01
+-1.4673265776582714e-01
+-1.4710385284312785e-01
+-1.4747445189379862e-01
+-1.4784445447560507e-01
+-1.4821386022272939e-01
+-1.4858266884314097e-01
+-1.4895088003799473e-01
+-1.4931849341032349e-01
+-1.4968550850684684e-01
+-1.5005192487523980e-01
+-1.5041774207203462e-01
+-1.5078295965667113e-01
+-1.5114757722101085e-01
+-1.5151159445219725e-01
+-1.5187501105409781e-01
+-1.5223782667677718e-01
+-1.5260004087929455e-01
+-1.5296165321208158e-01
+-1.5332266323041915e-01
+-1.5368307049446783e-01
+-1.5404287457222945e-01
+-1.5440207511241283e-01
+-1.5476067181205289e-01
+-1.5511866435265051e-01
+-1.5547605232571007e-01
+-1.5583283529164979e-01
+-1.5618901280824704e-01
+-1.5654458442536368e-01
+-1.5689954969190489e-01
+-1.5725390821008142e-01
+-1.5760765967621601e-01
+-1.5796080379342395e-01
+-1.5831334019372406e-01
+-1.5866526843459269e-01
+-1.5901658807008151e-01
+-1.5936729865586613e-01
+-1.5971739974861476e-01
+-1.6006689092108231e-01
+-1.6041577183992461e-01
+-1.6076404220572943e-01
+-1.6111170168828232e-01
+-1.6145874985792225e-01
+-1.6180518626501239e-01
+-1.6215101046544700e-01
+-1.6249622202536007e-01
+-1.6284082051391610e-01
+-1.6318480555368087e-01
+-1.6352817682556592e-01
+-1.6387093400791355e-01
+-1.6421307671373309e-01
+-1.6455460451345358e-01
+-1.6489551697454496e-01
+-1.6523581365106921e-01
+-1.6557549409198538e-01
+-1.6591455787537673e-01
+-1.6625300467780629e-01
+-1.6659083419624351e-01
+-1.6692804608374426e-01
+-1.6726463990887830e-01
+-1.6760061523057987e-01
+-1.6793597160776727e-01
+-1.6827070859934834e-01
+-1.6860482577011715e-01
+-1.6893832275891554e-01
+-1.6927119925490813e-01
+-1.6960345493532913e-01
+-1.6993508939442983e-01
+-1.7026610219360444e-01
+-1.7059649289348300e-01
+-1.7092626105241421e-01
+-1.7125540622850338e-01
+-1.7158392802142142e-01
+-1.7191182611437791e-01
+-1.7223910019869870e-01
+-1.7256574990492526e-01
+-1.7289177479147705e-01
+-1.7321717441293111e-01
+-1.7354194832905928e-01
+-1.7386609610329876e-01
+-1.7418961731102084e-01
+-1.7451251160793579e-01
+-1.7483477868301159e-01
+-1.7515641820196357e-01
+-1.7547742974380004e-01
+-1.7579781286739582e-01
+-1.7611756713210158e-01
+-1.7643669209832710e-01
+-1.7675518732812195e-01
+-1.7707305243760255e-01
+-1.7739028710975085e-01
+-1.7770689102690057e-01
+-1.7802286380367449e-01
+-1.7833820500466288e-01
+-1.7865291419257884e-01
+-1.7896699092541893e-01
+-1.7928043475910729e-01
+-1.7959324527281295e-01
+-1.7990542213627639e-01
+-1.8021696504106915e-01
+-1.8052787363918732e-01
+-1.8083814749582180e-01
+-1.8114778616479260e-01
+-1.8145678920700181e-01
+-1.8176515619249686e-01
+-1.8207288669564961e-01
+-1.8237998034710595e-01
+-1.8268643682085331e-01
+-1.8299225578298375e-01
+-1.8329743683219102e-01
+-1.8360197953666119e-01
+-1.8390588346346121e-01
+-1.8420914817585340e-01
+-1.8451177323622192e-01
+-1.8481375823798338e-01
+-1.8511510284573621e-01
+-1.8541580673303409e-01
+-1.8571586953194089e-01
+-1.8601529081877299e-01
+-1.8631407016538690e-01
+-1.8661220713556750e-01
+-1.8690970128660964e-01
+-1.8720655218546586e-01
+-1.8750275947676734e-01
+-1.8779832284187167e-01
+-1.8809324194405114e-01
+-1.8838751636826156e-01
+-1.8868114567850133e-01
+-1.8897412943872363e-01
+-1.8926646721284437e-01
+-1.8955815856567798e-01
+-1.8984920310580489e-01
+-1.9013960050312503e-01
+-1.9042935042889747e-01
+-1.9071845249938063e-01
+-1.9100690628480851e-01
+-1.9129471135356549e-01
+-1.9158186727077595e-01
+-1.9186837359992912e-01
+-1.9215422992065662e-01
+-1.9243943588516249e-01
+-1.9272399116592059e-01
+-1.9300789540926214e-01
+-1.9329114819597173e-01
+-1.9357374909661029e-01
+-1.9385569767734798e-01
+-1.9413699349796371e-01
+-1.9441763612103408e-01
+-1.9469762517000161e-01
+-1.9497696032138440e-01
+-1.9525564124565398e-01
+-1.9553366754490567e-01
+-1.9581103878594888e-01
+-1.9608775453446922e-01
+-1.9636381435242306e-01
+-1.9663921780069274e-01
+-1.9691396446891923e-01
+-1.9718805402222878e-01
+-1.9746148613723197e-01
+-1.9773426044745648e-01
+-1.9800637652080100e-01
+-1.9827783391978548e-01
+-1.9854863221031130e-01
+-1.9881877096134826e-01
+-1.9908824974863915e-01
+-1.9935706820952626e-01
+-1.9962522601453148e-01
+-1.9989272282007117e-01
+-2.0015955821137740e-01
+-2.0042573175175413e-01
+-2.0069124300681143e-01
+-2.0095609154859137e-01
+-2.0122027695071901e-01
+-2.0148379882048684e-01
+-2.0174665681869630e-01
+-2.0200885060851076e-01
+-2.0227037980284485e-01
+-2.0253124396702829e-01
+-2.0279144266544483e-01
+-2.0305097547184958e-01
+-2.0330984196524832e-01
+-2.0356804173417140e-01
+-2.0382557441625895e-01
+-2.0408243966496672e-01
+-2.0433863711662456e-01
+-2.0459416635833047e-01
+-2.0484902696829976e-01
+-2.0510321851995542e-01
+-2.0535674057880454e-01
+-2.0560959271173523e-01
+-2.0586177453424567e-01
+-2.0611328570980109e-01
+-2.0636412589839367e-01
+-2.0661429470345755e-01
+-2.0686379169522659e-01
+-2.0711261644312143e-01
+-2.0736076851463428e-01
+-2.0760824747659007e-01
+-2.0785505291769885e-01
+-2.0810118449259818e-01
+-2.0834664186786145e-01
+-2.0859142467538969e-01
+-2.0883553248711051e-01
+-2.0907896486906052e-01
+-2.0932172138989716e-01
+-2.0956380162097418e-01
+-2.0980520513872644e-01
+-2.1004593157369555e-01
+-2.1028598058955142e-01
+-2.1052535183921289e-01
+-2.1076404491159936e-01
+-2.1100205937297870e-01
+-2.1123939479128853e-01
+-2.1147605073991110e-01
+-2.1171202679354403e-01
+-2.1194732255312770e-01
+-2.1218193766700214e-01
+-2.1241587178716903e-01
+-2.1264912453122306e-01
+-2.1288169547989336e-01
+-2.1311358421151128e-01
+-2.1334479029802669e-01
+-2.1357531330729748e-01
+-2.1380515281688661e-01
+-2.1403430846298924e-01
+-2.1426277990349818e-01
+-2.1449056677895381e-01
+-2.1471766867246778e-01
+-2.1494408515529131e-01
+-2.1516981579951622e-01
+-2.1539486017885692e-01
+-2.1561921786844171e-01
+-2.1584288847928773e-01
+-2.1606587166248653e-01
+-2.1628816706770615e-01
+-2.1650977430168103e-01
+-2.1673069294253419e-01
+-2.1695092256657003e-01
+-2.1717046274213381e-01
+-2.1738931303446168e-01
+-2.1760747302723543e-01
+-2.1782494236809496e-01
+-2.1804172071828290e-01
+-2.1825780770988723e-01
+-2.1847320291761738e-01
+-2.1868790590955622e-01
+-2.1890191625707392e-01
+-2.1911523353537285e-01
+-2.1932785732321364e-01
+-2.1953978724283826e-01
+-2.1975102294669496e-01
+-2.1996156408018347e-01
+-2.2017141023815395e-01
+-2.2038056099495637e-01
+-2.2058901592419580e-01
+-2.2079677459709518e-01
+-2.2100383658447717e-01
+-2.2121020148302756e-01
+-2.2141586894263157e-01
+-2.2162083861860313e-01
+-2.2182511012881528e-01
+-2.2202868304573997e-01
+-2.2223155693934740e-01
+-2.2243373138320438e-01
+-2.2263520595347155e-01
+-2.2283598023319812e-01
+-2.2303605385300890e-01
+-2.2323542646368727e-01
+-2.2343409770179351e-01
+-2.2363206714951320e-01
+-2.2382933437610389e-01
+-2.2402589895544092e-01
+-2.2422176047136610e-01
+-2.2441691850959927e-01
+-2.2461137267839468e-01
+-2.2480512261449417e-01
+-2.2499816795433264e-01
+-2.2519050830338300e-01
+-2.2538214324372938e-01
+-2.2557307235596083e-01
+-2.2576329521418440e-01
+-2.2595281138961210e-01
+-2.2614162046679542e-01
+-2.2632972208363941e-01
+-2.2651711589124329e-01
+-2.2670380151800737e-01
+-2.2688977854138281e-01
+-2.2707504653197053e-01
+-2.2725960506532900e-01
+-2.2744345372356123e-01
+-2.2762659209116187e-01
+-2.2780901978318663e-01
+-2.2799073643874698e-01
+-2.2817174169246535e-01
+-2.2835203513955263e-01
+-2.2853161635695526e-01
+-2.2871048492211646e-01
+-2.2888864041509341e-01
+-2.2906608241666127e-01
+-2.2924281052423981e-01
+-2.2941882437434633e-01
+-2.2959412360847548e-01
+-2.2976870784059159e-01
+-2.2994257664685133e-01
+-2.3011572960093502e-01
+-2.3028816628147811e-01
+-2.3045988627117500e-01
+-2.3063088915710789e-01
+-2.3080117456105090e-01
+-2.3097074212155802e-01
+-2.3113959146815891e-01
+-2.3130772219035475e-01
+-2.3147513386665661e-01
+-2.3164182607543204e-01
+-2.3180779839475177e-01
+-2.3197305040313312e-01
+-2.3213758170461812e-01
+-2.3230139193981111e-01
+-2.3246448074993986e-01
+-2.3262684773758505e-01
+-2.3278849247227457e-01
+-2.3294941452423790e-01
+-2.3310961347903073e-01
+-2.3326908892993828e-01
+-2.3342784047501169e-01
+-2.3358586773402981e-01
+-2.3374317033297998e-01
+-2.3389974788720319e-01
+-2.3405559998472905e-01
+-2.3421072620923952e-01
+-2.3436512614441271e-01
+-2.3451879937393738e-01
+-2.3467174548270109e-01
+-2.3482396407870479e-01
+-2.3497545479054563e-01
+-2.3512621724448238e-01
+-2.3527625103939698e-01
+-2.3542555575971133e-01
+-2.3557413098903437e-01
+-2.3572197630781092e-01
+-2.3586909129553155e-01
+-2.3601547554539573e-01
+-2.3616112868747849e-01
+-2.3630605035761282e-01
+-2.3645024016939301e-01
+-2.3659369770178346e-01
+-2.3673642253096083e-01
+-2.3687841423797798e-01
+-2.3701967240841407e-01
+-2.3716019663092255e-01
+-2.3729998652187051e-01
+-2.3743904171288935e-01
+-2.3757736182908396e-01
+-2.3771494646177799e-01
+-2.3785179519162156e-01
+-2.3798790759995986e-01
+-2.3812328327016782e-01
+-2.3825792178616886e-01
+-2.3839182274700649e-01
+-2.3852498577630651e-01
+-2.3865741049910633e-01
+-2.3878909652238811e-01
+-2.3892004343566023e-01
+-2.3905025082718881e-01
+-2.3917971828023235e-01
+-2.3930844537515508e-01
+-2.3943643169742429e-01
+-2.3956367685990382e-01
+-2.3969018048449756e-01
+-2.3981594219094518e-01
+-2.3994096159261882e-01
+-2.4006523830107324e-01
+-2.4018877187848450e-01
+-2.4031156180334967e-01
+-2.4043360757079085e-01
+-2.4055490925467610e-01
+-2.4067546751249019e-01
+-2.4079528304252026e-01
+-2.4091435669608549e-01
+-2.4103268941665212e-01
+-2.4115028214150153e-01
+-2.4126713576285264e-01
+-2.4138325115785317e-01
+-2.4149862921659190e-01
+-2.4161327086747614e-01
+-2.4172717704674695e-01
+-2.4184034867547113e-01
+-2.4195278664725114e-01
+-2.4206449185377144e-01
+-2.4217546519221592e-01
+-2.4228570756550755e-01
+-2.4239521987871460e-01
+-2.4250400305020639e-01
+-2.4261205800697871e-01
+-2.4271938567516121e-01
+-2.4282598697123761e-01
+-2.4293186280870344e-01
+-2.4303701409835909e-01
+-2.4314144174055163e-01
+-2.4324514663428859e-01
+-2.4334812969372951e-01
+-2.4345039186034703e-01
+-2.4355193407856957e-01
+-2.4365275727421024e-01
+-2.4375286235262278e-01
+-2.4385225021982526e-01
+-2.4395092179398009e-01
+-2.4404887800145572e-01
+-2.4414611976948652e-01
+-2.4424264802575388e-01
+-2.4433846369860232e-01
+-2.4443356771773253e-01
+-2.4452796101553970e-01
+-2.4462164452555907e-01
+-2.4471461917532633e-01
+-2.4480688588007285e-01
+-2.4489844555480314e-01
+-2.4498929912944326e-01
+-2.4507944755083444e-01
+-2.4516889176679788e-01
+-2.4525763271718370e-01
+-2.4534567133666690e-01
+-2.4543300855901434e-01
+-2.4551964530856168e-01
+-2.4560558250637790e-01
+-2.4569082108155321e-01
+-2.4577536198966707e-01
+-2.4585920619271964e-01
+-2.4594235464279007e-01
+-2.4602480827116585e-01
+-2.4610656800743652e-01
+-2.4618763478532210e-01
+-2.4626800954330583e-01
+-2.4634769322167979e-01
+-2.4642668677198151e-01
+-2.4650499115396654e-01
+-2.4658260732647891e-01
+-2.4665953623649298e-01
+-2.4673577882652226e-01
+-2.4681133603921035e-01
+-2.4688620881559925e-01
+-2.4696039809701162e-01
+-2.4703390483343277e-01
+-2.4710672999219782e-01
+-2.4717887454323051e-01
+-2.4725033944655986e-01
+-2.4732112564976014e-01
+-2.4739123410061389e-01
+-2.4746066575111594e-01
+-2.4752942155658544e-01
+-2.4759750247349641e-01
+-2.4766490946127109e-01
+-2.4773164348106047e-01
+-2.4779770549588401e-01
+-2.4786309647372795e-01
+-2.4792781738436032e-01
+-2.4799186919197042e-01
+-2.4805525284753110e-01
+-2.4811796930127486e-01
+-2.4818001951711724e-01
+-2.4824140447641879e-01
+-2.4830212516145189e-01
+-2.4836218254036752e-01
+-2.4842157757059696e-01
+-2.4848031121142078e-01
+-2.4853838443308793e-01
+-2.4859579821125519e-01
+-2.4865255352230634e-01
+-2.4870865134304318e-01
+-2.4876409265095184e-01
+-2.4881887842058434e-01
+-2.4887300961871903e-01
+-2.4892648721191984e-01
+-2.4897931217574684e-01
+-2.4903148549760040e-01
+-2.4908300816579901e-01
+-2.4913388115890756e-01
+-2.4918410544779768e-01
+-2.4923368200543625e-01
+-2.4928261181776748e-01
+-2.4933089587730495e-01
+-2.4937853517444153e-01
+-2.4942553068770537e-01
+-2.4947188339303780e-01
+-2.4951759427124542e-01
+-2.4956266431371529e-01
+-2.4960709451397070e-01
+-2.4965088586167383e-01
+-2.4969403934074444e-01
+-2.4973655593575900e-01
+-2.4977843663814164e-01
+-2.4981968244518746e-01
+-2.4986029435443868e-01
+-2.4990027335836529e-01
+-2.4993962044732682e-01
+-2.4997833661326976e-01
+-2.5001642285259756e-01
+-2.5005388016353464e-01
+-2.5009070954419388e-01
+-2.5012691199120496e-01
+-2.5016248850164324e-01
+-2.5019744007360417e-01
+-2.5023176770630834e-01
+-2.5026547239998659e-01
+-2.5029855515913257e-01
+-2.5033101699206589e-01
+-2.5036285890717491e-01
+-2.5039408190637918e-01
+-2.5042468698863662e-01
+-2.5045467515512543e-01
+-2.5048404741470032e-01
+-2.5051280477903354e-01
+-2.5054094825850204e-01
+-2.5056847885878059e-01
+-2.5059539758552735e-01
+-2.5062170544999696e-01
+-2.5064740347157016e-01
+-2.5067249267059144e-01
+-2.5069697405936314e-01
+-2.5072084864293409e-01
+-2.5074411742793101e-01
+-2.5076678143174669e-01
+-2.5078884167795318e-01
+-2.5081029918992276e-01
+-2.5083115498663333e-01
+-2.5085141008625500e-01
+-2.5087106550667937e-01
+-2.5089012226364221e-01
+-2.5090858137323424e-01
+-2.5092644385656993e-01
+-2.5094371074229471e-01
+-2.5096038306030982e-01
+-2.5097646183832140e-01
+-2.5099194810199282e-01
+-2.5100684287725394e-01
+-2.5102114718677865e-01
+-2.5103486205175163e-01
+-2.5104798849570448e-01
+-2.5106052755116087e-01
+-2.5107248025409018e-01
+-2.5108384764113723e-01
+-2.5109463074938876e-01
+-2.5110483061657485e-01
+-2.5111444827463669e-01
+-2.5112348474537155e-01
+-2.5113194105088182e-01
+-2.5113981822643217e-01
+-2.5114711732031292e-01
+-2.5115383938139602e-01
+-2.5115998545174190e-01
+-2.5116555656973250e-01
+-2.5117055377388603e-01
+-2.5117497810024642e-01
+-2.5117883058454510e-01
+-2.5118211226563475e-01
+-2.5118482419018801e-01
+-2.5118696740697244e-01
+-2.5118854296381016e-01
+-2.5118955190629927e-01
+-2.5118999528055419e-01
+-2.5118987413402993e-01
+-2.5118918951553887e-01
+-2.5118794247442738e-01
+-2.5118613405771989e-01
+-2.5118376531132186e-01
+-2.5118083728352253e-01
+-2.5117735103264699e-01
+-2.5117330762109225e-01
+-2.5116870810894526e-01
+-2.5116355354725406e-01
+-2.5115784498592225e-01
+-2.5115158347562622e-01
+-2.5114477006780056e-01
+-2.5113740581513083e-01
+-2.5112949178322969e-01
+-2.5112102905153250e-01
+-2.5111201869860861e-01
+-2.5110246177723361e-01
+-2.5109235932395330e-01
+-2.5108171238012555e-01
+-2.5107052201371893e-01
+-2.5105878930307768e-01
+-2.5104651532622607e-01
+-2.5103370115822099e-01
+-2.5102034787406569e-01
+-2.5100645654129039e-01
+-2.5099202821260003e-01
+-2.5097706394020991e-01
+-2.5096156479013332e-01
+-2.5094553184372975e-01
+-2.5092896618344579e-01
+-2.5091186888666100e-01
+-2.5089424102763624e-01
+-2.5087608368058872e-01
+-2.5085739791569733e-01
+-2.5083818480205766e-01
+-2.5081844541169457e-01
+-2.5079818082485489e-01
+-2.5077739212419808e-01
+-2.5075608039396807e-01
+-2.5073424672075734e-01
+-2.5071189219186929e-01
+-2.5068901788708653e-01
+-2.5066562487728888e-01
+-2.5064171423427284e-01
+-2.5061728703934671e-01
+-2.5059234438068345e-01
+-2.5056688734864979e-01
+-2.5054091704283077e-01
+-2.5051443456703254e-01
+-2.5048744101798442e-01
+-2.5045993746452438e-01
+-2.5043192496983568e-01
+-2.5040340460995492e-01
+-2.5037437748657132e-01
+-2.5034484470525969e-01
+-2.5031480737302575e-01
+-2.5028426659844161e-01
+-2.5025322348917822e-01
+-2.5022167912969567e-01
+-2.5018963458781790e-01
+-2.5015709093617672e-01
+-2.5012404927890619e-01
+-2.5009051073398220e-01
+-2.5005647641780876e-01
+-2.5002194743834666e-01
+-2.4998692490211441e-01
+-2.4995140990932377e-01
+-2.4991540354569144e-01
+-2.4987890689604392e-01
+-2.4984192105731751e-01
+-2.4980444714157810e-01
+-2.4976648626307202e-01
+-2.4972803954353867e-01
+-2.4968910811058478e-01
+-2.4964969308831045e-01
+-2.4960979556917642e-01
+-2.4956941663202853e-01
+-2.4952855736418197e-01
+-2.4948721888473274e-01
+-2.4944540232131937e-01
+-2.4940310880241542e-01
+-2.4936033945736732e-01
+-2.4931709541587932e-01
+-2.4927337779007533e-01
+-2.4922918766861049e-01
+-2.4918452614097714e-01
+-2.4913939432411006e-01
+-2.4909379335676432e-01
+-2.4904772437782974e-01
+-2.4900118851744199e-01
+-2.4895418690210291e-01
+-2.4890672065576416e-01
+-2.4885879088924365e-01
+-2.4881039871052157e-01
+-2.4876154523426097e-01
+-2.4871223158977784e-01
+-2.4866245890927133e-01
+-2.4861222832992441e-01
+-2.4856154099547886e-01
+-2.4851039804967265e-01
+-2.4845880061672679e-01
+-2.4840674980495309e-01
+-2.4835424672513096e-01
+-2.4830129250647259e-01
+-2.4824788828753913e-01
+-2.4819403521045377e-01
+-2.4813973443003060e-01
+-2.4808498710511645e-01
+-2.4802979438172923e-01
+-2.4797415737315329e-01
+-2.4791807718868086e-01
+-2.4786155495248857e-01
+-2.4780459180977429e-01
+-2.4774718890858091e-01
+-2.4768934740627432e-01
+-2.4763106846832636e-01
+-2.4757235325731067e-01
+-2.4751320290297216e-01
+-2.4745361851881389e-01
+-2.4739360122514381e-01
+-2.4733315217142576e-01
+-2.4727227251609268e-01
+-2.4721096342064766e-01
+-2.4714922605322703e-01
+-2.4708706158332411e-01
+-2.4702447116074638e-01
+-2.4696145590544027e-01
+-2.4689801693707061e-01
+-2.4683415540352832e-01
+-2.4676987247800039e-01
+-2.4670516933463035e-01
+-2.4664004714196949e-01
+-2.4657450706598991e-01
+-2.4650855026888319e-01
+-2.4644217789164724e-01
+-2.4637539106944625e-01
+-2.4630819094588421e-01
+-2.4624057868596574e-01
+-2.4617255545903305e-01
+-2.4610412244166902e-01
+-2.4603528082130818e-01
+-2.4596603178546633e-01
+-2.4589637649001292e-01
+-2.4582631606141661e-01
+-2.4575585162954855e-01
+-2.4568498436087133e-01
+-2.4561371544241326e-01
+-2.4554204606220481e-01
+-2.4546997740901624e-01
+-2.4539751067238863e-01
+-2.4532464702935408e-01
+-2.4525138762022591e-01
+-2.4517773357986927e-01
+-2.4510368606681088e-01
+-2.4502924627761571e-01
+-2.4495441541260746e-01
+-2.4487919466263439e-01
+-2.4480358520937920e-01
+-2.4472758823351648e-01
+-2.4465120490251888e-01
+-2.4457443637658352e-01
+-2.4449728381979469e-01
+-2.4441974841402841e-01
+-2.4434183134759116e-01
+-2.4426353381425150e-01
+-2.4418485702232065e-01
+-2.4410580218311470e-01
+-2.4402637048324807e-01
+-2.4394656306680396e-01
+-2.4386638107597042e-01
+-2.4378582568975901e-01
+-2.4370489812438939e-01
+-2.4362359959734745e-01
+-2.4354193131466723e-01
+-2.4345989447581545e-01
+-2.4337749027667593e-01
+-2.4329471989002738e-01
+-2.4321158448115215e-01
+-2.4312808522604773e-01
+-2.4304422333221723e-01
+-2.4296000001385701e-01
+-2.4287541648366393e-01
+-2.4279047395105183e-01
+-2.4270517362506738e-01
+-2.4261951669655285e-01
+-2.4253350433713664e-01
+-2.4244713772064461e-01
+-2.4236041804819200e-01
+-2.4227334653831714e-01
+-2.4218592441111464e-01
+-2.4209815289037082e-01
+-2.4201003320172479e-01
+-2.4192156655895483e-01
+-2.4183275413562316e-01
+-2.4174359709800916e-01
+-2.4165409663596438e-01
+-2.4156425398230580e-01
+-2.4147407037488455e-01
+-2.4138354704299569e-01
+-2.4129268520646593e-01
+-2.4120148608383232e-01
+-2.4110995087586212e-01
+-2.4101808077196313e-01
+-2.4092587696538956e-01
+-2.4083334067030981e-01
+-2.4074047310933580e-01
+-2.4064727551126328e-01
+-2.4055374912389943e-01
+-2.4045989519950597e-01
+-2.4036571496535566e-01
+-2.4027120959967380e-01
+-2.4017638027685181e-01
+-2.4008122820414235e-01
+-2.3998575462626623e-01
+-2.3988996079065897e-01
+-2.3979384794429118e-01
+-2.3969741733407374e-01
+-2.3960067020158329e-01
+-2.3950360774962043e-01
+-2.3940623116603904e-01
+-2.3930854165144741e-01
+-2.3921054044997050e-01
+-2.3911222881600730e-01
+-2.3901360800116458e-01
+-2.3891467925058746e-01
+-2.3881544380882355e-01
+-2.3871590290417735e-01
+-2.3861605774544120e-01
+-2.3851590954262630e-01
+-2.3841545952814688e-01
+-2.3831470895059464e-01
+-2.3821365906083886e-01
+-2.3811231111831654e-01
+-2.3801066638650115e-01
+-2.3790872611841621e-01
+-2.3780649152587510e-01
+-2.3770396381179562e-01
+-2.3760114419809056e-01
+-2.3749803394585897e-01
+-2.3739463432181288e-01
+-2.3729094659137961e-01
+-2.3718697201819472e-01
+-2.3708271186451821e-01
+-2.3697816736479130e-01
+-2.3687333973301247e-01
+-2.3676823018845464e-01
+-2.3666283998683871e-01
+-2.3655717040018953e-01
+-2.3645122270091801e-01
+-2.3634499816033785e-01
+-2.3623849805002728e-01
+-2.3613172362657239e-01
+-2.3602467611255801e-01
+-2.3591735672739028e-01
+-2.3580976671749818e-01
+-2.3570190736406590e-01
+-2.3559377995087805e-01
+-2.3548538575547287e-01
+-2.3537672605073937e-01
+-2.3526780210649784e-01
+-2.3515861516535172e-01
+-2.3504916645796128e-01
+-2.3493945722399837e-01
+-2.3482948873790674e-01
+-2.3471926228364282e-01
+-2.3460877914710596e-01
+-2.3449804061761520e-01
+-2.3438704798503199e-01
+-2.3427580251310731e-01
+-2.3416430543007091e-01
+-2.3405255796473609e-01
+-2.3394056138481734e-01
+-2.3382831698955475e-01
+-2.3371582607915289e-01
+-2.3360308994890344e-01
+-2.3349010989219049e-01
+-2.3337688719423172e-01
+-2.3326342310255765e-01
+-2.3314971885519908e-01
+-2.3303577570690451e-01
+-2.3292159495158266e-01
+-2.3280717788958966e-01
+-2.3269252582125746e-01
+-2.3257764004655351e-01
+-2.3246252186463001e-01
+-2.3234717254912043e-01
+-2.3223159335233642e-01
+-2.3211578553006529e-01
+-2.3199975036700776e-01
+-2.3188348916261603e-01
+-2.3176700321958418e-01
+-2.3165029385193037e-01
+-2.3153336237739991e-01
+-2.3141621009593000e-01
+-2.3129883826137032e-01
+-2.3118124812158219e-01
+-2.3106344095103748e-01
+-2.3094541806288643e-01
+-2.3082718077411948e-01
+-2.3070873040270576e-01
+-2.3059006826757278e-01
+-2.3047119568374264e-01
+-2.3035211392563329e-01
+-2.3023282424699623e-01
+-2.3011332791231146e-01
+-2.2999362623471714e-01
+-2.2987372054227820e-01
+-2.2975361216129755e-01
+-2.2963330241209626e-01
+-2.2951279261435789e-01
+-2.2939208406878409e-01
+-2.2927117804660449e-01
+-2.2915007581872843e-01
+-2.2902877868538155e-01
+-2.2890728797361956e-01
+-2.2878560501239920e-01
+-2.2866373113274491e-01
+-2.2854166766717326e-01
+-2.2841941594038881e-01
+-2.2829697723513701e-01
+-2.2817435282174783e-01
+-2.2805154398686700e-01
+-2.2792855206077967e-01
+-2.2780537838192580e-01
+-2.2768202429103357e-01
+-2.2755849113199758e-01
+-2.2743478024783839e-01
+-2.2731089294241869e-01
+-2.2718683048239277e-01
+-2.2706259413942123e-01
+-2.2693818524196313e-01
+-2.2681360515091400e-01
+-2.2668885522446672e-01
+-2.2656393680145431e-01
+-2.2643885121497434e-01
+-2.2631359978950225e-01
+-2.2618818382311112e-01
+-2.2606260461001970e-01
+-2.2593686346281619e-01
+-2.2581096172415344e-01
+-2.2568490074052633e-01
+-2.2555868186520844e-01
+-2.2543230645820009e-01
+-2.2530577587625486e-01
+-2.2517909143245099e-01
+-2.2505225441444140e-01
+-2.2492526611874508e-01
+-2.2479812788862685e-01
+-2.2467084108374991e-01
+-2.2454340706517112e-01
+-2.2441582719647499e-01
+-2.2428810284210415e-01
+-2.2416023534399532e-01
+-2.2403222600438091e-01
+-2.2390407612341306e-01
+-2.2377578703099302e-01
+-2.2364736008772221e-01
+-2.2351879665678229e-01
+-2.2339009810644958e-01
+-2.2326126580844807e-01
+-2.2313230112773169e-01
+-2.2300320538642524e-01
+-2.2287397989194530e-01
+-2.2274462596536762e-01
+-2.2261514496939852e-01
+-2.2248553827563819e-01
+-2.2235580725838919e-01
+-2.2222595329619257e-01
+-2.2209597776749768e-01
+-2.2196588201814679e-01
+-2.2183566735882759e-01
+-2.2170533510287324e-01
+-2.2157488660642966e-01
+-2.2144432325340282e-01
+-2.2131364642799017e-01
+-2.2118285750939157e-01
+-2.2105195787545664e-01
+-2.2092094889507777e-01
+-2.2078983190555379e-01
+-2.2065860823837732e-01
+-2.2052727923868506e-01
+-2.2039584627674388e-01
+-2.2026431072680286e-01
+-2.2013267397724570e-01
+-2.2000093743220966e-01
+-2.1986910249342215e-01
+-2.1973717051427288e-01
+-2.1960514281606258e-01
+-2.1947302072730226e-01
+-2.1934080562170036e-01
+-2.1920849889104976e-01
+-2.1907610193038515e-01
+-2.1894361614386418e-01
+-2.1881104293806883e-01
+-2.1867838369460163e-01
+-2.1854563974487978e-01
+-2.1841281241628413e-01
+-2.1827990307321921e-01
+-2.1814691312322870e-01
+-2.1801384397671436e-01
+-2.1788069704023946e-01
+-2.1774747371793535e-01
+-2.1761417540766476e-01
+-2.1748080346157048e-01
+-2.1734735921364393e-01
+-2.1721384401402236e-01
+-2.1708025926985455e-01
+-2.1694660640188135e-01
+-2.1681288682702821e-01
+-2.1667910195346587e-01
+-2.1654525318824938e-01
+-2.1641134191405220e-01
+-2.1627736948367407e-01
+-2.1614333725118715e-01
+-2.1600924660372581e-01
+-2.1587509895270157e-01
+-2.1574089571221375e-01
+-2.1560663830654758e-01
+-2.1547232816479669e-01
+-2.1533796670263608e-01
+-2.1520355528208149e-01
+-2.1506909525303894e-01
+-2.1493458798753828e-01
+-2.1480003490444644e-01
+-2.1466543742946770e-01
+-2.1453079699026087e-01
+-2.1439611501674605e-01
+-2.1426139293707055e-01
+-2.1412663214093647e-01
+-2.1399183398907168e-01
+-2.1385699984845191e-01
+-2.1372213113234384e-01
+-2.1358722927507001e-01
+-2.1345229571176874e-01
+-2.1331733187801574e-01
+-2.1318233921002153e-01
+-2.1304731912521996e-01
+-2.1291227299767737e-01
+-2.1277720219685256e-01
+-2.1264210811966430e-01
+-2.1250699219911720e-01
+-2.1237185587189897e-01
+-2.1223670058245928e-01
+-2.1210152778155736e-01
+-2.1196633891431191e-01
+-2.1183113537566645e-01
+-2.1169591853764175e-01
+-2.1156068978459930e-01
+-2.1142545055081441e-01
+-2.1129020228427414e-01
+-2.1115494643427912e-01
+-2.1101968445211455e-01
+-2.1088441778943237e-01
+-2.1074914787100335e-01
+-2.1061387608420457e-01
+-2.1047860381631514e-01
+-2.1034333248708525e-01
+-2.1020806354316934e-01
+-2.1007279843422749e-01
+-2.0993753862220993e-01
+-2.0980228557546382e-01
+-2.0966704075008397e-01
+-2.0953180554521733e-01
+-2.0939658134495420e-01
+-2.0926136955446742e-01
+-2.0912617162977126e-01
+-2.0899098903528351e-01
+-2.0885582323687760e-01
+-2.0872067570216099e-01
+-2.0858554789751776e-01
+-2.0845044125264084e-01
+-2.0831535716581787e-01
+-2.0818029703964419e-01
+-2.0804526231660775e-01
+-2.0791025445984965e-01
+-2.0777527493642958e-01
+-2.0764032522783940e-01
+-2.0750540682027019e-01
+-2.0737052117619481e-01
+-2.0723566969560825e-01
+-2.0710085376989251e-01
+-2.0696607482814763e-01
+-2.0683133435566126e-01
+-2.0669663384261169e-01
+-2.0656197477076901e-01
+-2.0642735861446265e-01
+-2.0629278684443045e-01
+-2.0615826089510531e-01
+-2.0602378218204226e-01
+-2.0588935212985454e-01
+-2.0575497220490355e-01
+-2.0562064388675255e-01
+-2.0548636865938510e-01
+-2.0535214801731880e-01
+-2.0521798345700323e-01
+-2.0508387644407433e-01
+-2.0494982839549802e-01
+-2.0481584072667641e-01
+-2.0468191489373744e-01
+-2.0454805239085402e-01
+-2.0441425471444821e-01
+-2.0428052336181021e-01
+-2.0414685983107825e-01
+-2.0401326561061889e-01
+-2.0387974213578389e-01
+-2.0374629082568058e-01
+-2.0361291312116903e-01
+-2.0347961052316291e-01
+-2.0334638454367582e-01
+-2.0321323668786717e-01
+-2.0308016844918789e-01
+-2.0294718131955450e-01
+-2.0281427676556985e-01
+-2.0268145622925227e-01
+-2.0254872115607453e-01
+-2.0241607302961009e-01
+-2.0228351335578798e-01
+-2.0215104364168765e-01
+-2.0201866539557684e-01
+-2.0188638012665466e-01
+-2.0175418933033121e-01
+-2.0162209445962070e-01
+-2.0149009696066883e-01
+-2.0135819830329985e-01
+-2.0122639999710579e-01
+-2.0109470355627029e-01
+-2.0096311049526497e-01
+-2.0083162232884233e-01
+-2.0070024056911173e-01
+-2.0056896669249788e-01
+-2.0043780215422730e-01
+-2.0030674841785409e-01
+-2.0017580699160478e-01
+-2.0004497939977098e-01
+-1.9991426716530972e-01
+-1.9978367180526946e-01
+-1.9965319483602462e-01
+-1.9952283775750751e-01
+-1.9939260203979756e-01
+-1.9926248915167649e-01
+-1.9913250058975501e-01
+-1.9900263787997305e-01
+-1.9887290255051396e-01
+-1.9874329613105962e-01
+-1.9861382015253923e-01
+-1.9848447613965781e-01
+-1.9835526557652419e-01
+-1.9822618993297708e-01
+-1.9809725069206752e-01
+-1.9796844937803609e-01
+-1.9783978752415690e-01
+-1.9771126666838124e-01
+-1.9758288835663473e-01
+-1.9745465413503407e-01
+-1.9732656551176928e-01
+-1.9719862395323412e-01
+-1.9707083092869976e-01
+-1.9694318795908922e-01
+-1.9681569659949374e-01
+-1.9668835840431684e-01
+-1.9656117491585709e-01
+-1.9643414767230810e-01
+-1.9630727820354396e-01
+-1.9618056800920891e-01
+-1.9605401858326368e-01
+-1.9592763143407163e-01
+-1.9580140809714988e-01
+-1.9567535011224349e-01
+-1.9554945903173260e-01
+-1.9542373642235908e-01
+-1.9529818384845263e-01
+-1.9517280282495900e-01
+-1.9504759483328551e-01
+-1.9492256136321440e-01
+-1.9479770395881058e-01
+-1.9467302418626822e-01
+-1.9454852361119157e-01
+-1.9442420379476247e-01
+-1.9430006629767657e-01
+-1.9417611266162521e-01
+-1.9405234438901470e-01
+-1.9392876297916367e-01
+-1.9380536996324532e-01
+-1.9368216691032802e-01
+-1.9355915539200660e-01
+-1.9343633697435825e-01
+-1.9331371321975921e-01
+-1.9319128568650645e-01
+-1.9306905590102683e-01
+-1.9294702537692573e-01
+-1.9282519563904865e-01
+-1.9270356825225035e-01
+-1.9258214479135868e-01
+-1.9246092683136634e-01
+-1.9233991594669639e-01
+-1.9221911371165540e-01
+-1.9209852167439806e-01
+-1.9197814135032176e-01
+-1.9185797425646040e-01
+-1.9173802195251319e-01
+-1.9161828603012465e-01
+-1.9149876808011065e-01
+-1.9137946967695169e-01
+-1.9126039238846948e-01
+-1.9114153778217524e-01
+-1.9102290742210395e-01
+-1.9090450287189520e-01
+-1.9078632566421172e-01
+-1.9066837726232794e-01
+-1.9055065909452551e-01
+-1.9043317156863895e-01
+-1.9031591376820253e-01
+-1.9019888469030877e-01
+-1.9008208336821439e-01
+-1.8996550886308392e-01
+-1.8984916023844167e-01
+-1.8973303657380439e-01
+-1.8961713695566290e-01
+-1.8950146047200372e-01
+-1.8938600621857862e-01
+-1.8927077329264103e-01
+-1.8915576077288709e-01
+-1.8904096769591516e-01
+-1.8892639309251208e-01
+-1.8881203601948435e-01
+-1.8869789556904534e-01
+-1.8858397083493900e-01
+-1.8847026090299959e-01
+-1.8835676485255926e-01
+-1.8824348175937441e-01
+-1.8813041067617697e-01
+-1.8801755064442807e-01
+-1.8790490071091123e-01
+-1.8779245994757804e-01
+-1.8768022743274987e-01
+-1.8756820224773177e-01
+-1.8745638348183793e-01
+-1.8734477022450863e-01
+-1.8723336153744560e-01
+-1.8712215644346472e-01
+-1.8701115396406062e-01
+-1.8690035315734285e-01
+-1.8678975311217361e-01
+-1.8667935291676435e-01
+-1.8656915164987217e-01
+-1.8645914838526609e-01
+-1.8634934219023944e-01
+-1.8623973210498515e-01
+-1.8613031716164516e-01
+-1.8602109640068529e-01
+-1.8591206888448925e-01
+-1.8580323367856186e-01
+-1.8569458985827006e-01
+-1.8558613651375228e-01
+-1.8547787273350552e-01
+-1.8536979756304078e-01
+-1.8526191001006026e-01
+-1.8515420908614127e-01
+-1.8504669385274172e-01
+-1.8493936339695860e-01
+-1.8483221680219808e-01
+-1.8472525313541216e-01
+-1.8461847145826610e-01
+-1.8451187082268156e-01
+-1.8440545025578309e-01
+-1.8429920878048239e-01
+-1.8419314543825288e-01
+-1.8408725929934863e-01
+-1.8398154943573117e-01
+-1.8387601491455849e-01
+-1.8377065479854560e-01
+-1.8366546814688084e-01
+-1.8356045399207049e-01
+-1.8345561135188010e-01
+-1.8335093924988419e-01
+-1.8324643674156110e-01
+-1.8314210289189020e-01
+-1.8303793676626939e-01
+-1.8293393743224184e-01
+-1.8283010395695018e-01
+-1.8272643538725500e-01
+-1.8262293073791100e-01
+-1.8251958902132270e-01
+-1.8241640927188307e-01
+-1.8231339054492057e-01
+-1.8221053189685874e-01
+-1.8210783239145159e-01
+-1.8200529109635974e-01
+-1.8190290707079756e-01
+-1.8180067933205482e-01
+-1.8169860688341768e-01
+-1.8159668874113818e-01
+-1.8149492396014225e-01
+-1.8139331160185668e-01
+-1.8129185072759740e-01
+-1.8119054039887098e-01
+-1.8108937967529687e-01
+-1.8098836758420539e-01
+-1.8088750312084681e-01
+-1.8078678528276060e-01
+-1.8068621311069841e-01
+-1.8058578567071340e-01
+-1.8048550202653907e-01
+-1.8038536122987608e-01
+-1.8028536232795331e-01
+-1.8018550435819569e-01
+-1.8008578632947247e-01
+-1.7998620724499131e-01
+-1.7988676612463839e-01
+-1.7978746201778181e-01
+-1.7968829397628713e-01
+-1.7958926105260448e-01
+-1.7949036229980886e-01
+-1.7939159676721098e-01
+-1.7929296346793955e-01
+-1.7919446139259215e-01
+-1.7909608953877204e-01
+-1.7899784694895263e-01
+-1.7889973268122789e-01
+-1.7880174578911329e-01
+-1.7870388531273296e-01
+-1.7860615028900195e-01
+-1.7850853974430747e-01
+-1.7841105268636381e-01
+-1.7831368812092807e-01
+-1.7821644506745823e-01
+-1.7811932256023613e-01
+-1.7802231963449486e-01
+-1.7792543533362110e-01
+-1.7782866870604552e-01
+-1.7773201879379832e-01
+-1.7763548460258710e-01
+-1.7753906512421219e-01
+-1.7744275935941581e-01
+-1.7734656634013013e-01
+-1.7725048510434399e-01
+-1.7715451469213397e-01
+-1.7705865414804262e-01
+-1.7696290251572294e-01
+-1.7686725881268678e-01
+-1.7677172202713212e-01
+-1.7667629114747987e-01
+-1.7658096519020747e-01
+-1.7648574319042520e-01
+-1.7639062418411594e-01
+-1.7629560721352960e-01
+-1.7620069132302155e-01
+-1.7610587554332938e-01
+-1.7601115885906765e-01
+-1.7591654024451331e-01
+-1.7582201869562025e-01
+-1.7572759325187973e-01
+-1.7563326295722415e-01
+-1.7553902684896741e-01
+-1.7544488395676516e-01
+-1.7535083330748921e-01
+-1.7525687390379288e-01
+-1.7516300473121552e-01
+-1.7506922477847359e-01
+-1.7497553306095623e-01
+-1.7488192860460519e-01
+-1.7478841043725266e-01
+-1.7469497759500738e-01
+-1.7460162911532742e-01
+-1.7450836401752140e-01
+-1.7441518128392092e-01
+-1.7432207989232118e-01
+-1.7422905883892822e-01
+-1.7413611714255225e-01
+-1.7404325382372079e-01
+-1.7395046791443614e-01
+-1.7385775845491966e-01
+-1.7376512447870859e-01
+-1.7367256497452122e-01
+-1.7358007891161392e-01
+-1.7348766526817350e-01
+-1.7339532305853742e-01
+-1.7330305130529744e-01
+-1.7321084903424011e-01
+-1.7311871527870923e-01
+-1.7302664907176654e-01
+-1.7293464941661971e-01
+-1.7284271527864112e-01
+-1.7275084562263246e-01
+-1.7265903944843644e-01
+-1.7256729578240360e-01
+-1.7247561365054323e-01
+-1.7238399207489352e-01
+-1.7229243007541359e-01
+-1.7220092666409315e-01
+-1.7210948082260732e-01
+-1.7201809152464456e-01
+-1.7192675775652477e-01
+-1.7183547853385073e-01
+-1.7174425287569473e-01
+-1.7165307979757097e-01
+-1.7156195831045498e-01
+-1.7147088742343780e-01
+-1.7137986612860023e-01
+-1.7128889340442371e-01
+-1.7119796823110389e-01
+-1.7110708960872051e-01
+-1.7101625654632727e-01
+-1.7092546805423220e-01
+-1.7083472314958972e-01
+-1.7074402085090057e-01
+-1.7065336016199867e-01
+-1.7056274005280689e-01
+-1.7047215948830438e-01
+-1.7038161745297700e-01
+-1.7029111295850341e-01
+-1.7020064501801480e-01
+-1.7011021264362650e-01
+-1.7001981484651885e-01
+-1.6992945063371906e-01
+-1.6983911898247692e-01
+-1.6974881885523968e-01
+-1.6965854922202944e-01
+-1.6956830908871764e-01
+-1.6947809747066514e-01
+-1.6938791337966613e-01
+-1.6929775581950565e-01
+-1.6920762379201859e-01
+-1.6911751628534824e-01
+-1.6902743226814462e-01
+-1.6893737070810722e-01
+-1.6884733059182308e-01
+-1.6875731092206214e-01
+-1.6866731070188906e-01
+-1.6857732893639682e-01
+-1.6848736463144040e-01
+-1.6839741678626793e-01
+-1.6830748437147619e-01
+-1.6821756634898929e-01
+-1.6812766169109702e-01
+-1.6803776939779863e-01
+-1.6794788847305889e-01
+-1.6785801792079086e-01
+-1.6776815674510612e-01
+-1.6767830394832453e-01
+-1.6758845850735926e-01
+-1.6749861937627106e-01
+-1.6740878551107610e-01
+-1.6731895589723267e-01
+-1.6722912953558658e-01
+-1.6713930542802441e-01
+-1.6704948258288860e-01
+-1.6695966001007526e-01
+-1.6686983670293354e-01
+-1.6678001161096803e-01
+-1.6669018367628644e-01
+-1.6660035186676392e-01
+-1.6651051519100693e-01
+-1.6642067266012270e-01
+-1.6633082327316259e-01
+-1.6624096601787072e-01
+-1.6615109987916765e-01
+-1.6606122382368699e-01
+-1.6597133680766493e-01
+-1.6588143779265124e-01
+-1.6579152577012732e-01
+-1.6570159974071064e-01
+-1.6561165870237662e-01
+-1.6552170164660168e-01
+-1.6543172756308727e-01
+-1.6534173542840302e-01
+-1.6525172419798739e-01
+-1.6516169282574591e-01
+-1.6507164028551402e-01
+-1.6498156557052981e-01
+-1.6489146767429705e-01
+-1.6480134558961451e-01
+-1.6471119830864323e-01
+-1.6462102481792787e-01
+-1.6453082407636327e-01
+-1.6444059503327230e-01
+-1.6435033664725127e-01
+-1.6426004790552837e-01
+-1.6416972780015765e-01
+-1.6407937532157305e-01
+-1.6398898945782722e-01
+-1.6389856919560364e-01
+-1.6380811350581045e-01
+-1.6371762134334883e-01
+-1.6362709166314174e-01
+-1.6353652343309952e-01
+-1.6344591562876179e-01
+-1.6335526722931282e-01
+-1.6326457723627857e-01
+-1.6317384465861623e-01
+-1.6308306848638479e-01
+-1.6299224765203668e-01
+-1.6290138107673680e-01
+-1.6281046771066709e-01
+-1.6271950655614484e-01
+-1.6262849661984477e-01
+-1.6253743689398958e-01
+-1.6244632635554451e-01
+-1.6235516397856989e-01
+-1.6226394871796068e-01
+-1.6217267951632314e-01
+-1.6208135532105158e-01
+-1.6198997511156440e-01
+-1.6189853787862241e-01
+-1.6180704261080378e-01
+-1.6171548829073579e-01
+-1.6162387389927252e-01
+-1.6153219840280761e-01
+-1.6144046074131255e-01
+-1.6134865985232738e-01
+-1.6125679469894949e-01
+-1.6116486427250643e-01
+-1.6107286756462230e-01
+-1.6098080355863381e-01
+-1.6088867123224376e-01
+-1.6079646955821389e-01
+-1.6070419748210499e-01
+-1.6061185393874600e-01
+-1.6051943787326667e-01
+-1.6042694826734782e-01
+-1.6033438411001238e-01
+-1.6024174438696245e-01
+-1.6014902807795406e-01
+-1.6005623416090131e-01
+-1.5996336159272473e-01
+-1.5987040930630908e-01
+-1.5977737623520941e-01
+-1.5968426134432873e-01
+-1.5959106361989825e-01
+-1.5949778204737533e-01
+-1.5940441560733837e-01
+-1.5931096327809524e-01
+-1.5921742402954264e-01
+-1.5912379680290584e-01
+-1.5903008053265877e-01
+-1.5893627416471864e-01
+-1.5884237666877912e-01
+-1.5874838701722530e-01
+-1.5865430419123616e-01
+-1.5856012718262311e-01
+-1.5846585498029117e-01
+-1.5837148653186389e-01
+-1.5827702075528793e-01
+-1.5818245657398325e-01
+-1.5808779295631514e-01
+-1.5799302888912151e-01
+-1.5789816335702320e-01
+-1.5780319533754009e-01
+-1.5770812380604501e-01
+-1.5761294772432094e-01
+-1.5751766602595788e-01
+-1.5742227764105352e-01
+-1.5732678151988866e-01
+-1.5723117663806305e-01
+-1.5713546197228012e-01
+-1.5703963649884434e-01
+-1.5694369919362841e-01
+-1.5684764902761433e-01
+-1.5675148493993685e-01
+-1.5665520585550513e-01
+-1.5655881070847338e-01
+-1.5646229847116699e-01
+-1.5636566812488115e-01
+-1.5626891864896089e-01
+-1.5617204901907070e-01
+-1.5607505820938736e-01
+-1.5597794517262062e-01
+-1.5588070883372088e-01
+-1.5578334811716732e-01
+-1.5568586197574280e-01
+-1.5558824938410762e-01
+-1.5549050931712316e-01
+-1.5539264075017054e-01
+-1.5529464265858325e-01
+-1.5519651400954956e-01
+-1.5509825373833286e-01
+-1.5499986077161898e-01
+-1.5490133404791304e-01
+-1.5480267253379160e-01
+-1.5470387519941842e-01
+-1.5460494101785782e-01
+-1.5450586896629379e-01
+-1.5440665801999787e-01
+-1.5430730712589538e-01
+-1.5420781520784710e-01
+-1.5410818119216393e-01
+-1.5400840403357696e-01
+-1.5390848270010457e-01
+-1.5380841616080665e-01
+-1.5370820339061236e-01
+-1.5360784336561775e-01
+-1.5350733504932176e-01
+-1.5340667737548014e-01
+-1.5330586927321507e-01
+-1.5320490968238637e-01
+-1.5310379755825501e-01
+-1.5300253185785859e-01
+-1.5290111155668970e-01
+-1.5279953564574161e-01
+-1.5269780310980566e-01
+-1.5259591288132385e-01
+-1.5249386386636518e-01
+-1.5239165498143992e-01
+-1.5228928519315241e-01
+-1.5218675348190705e-01
+-1.5208405882503578e-01
+-1.5198120019287786e-01
+-1.5187817655389355e-01
+-1.5177498685752705e-01
+-1.5167163002544198e-01
+-1.5156810497811252e-01
+-1.5146441066385347e-01
+-1.5136054605541222e-01
+-1.5125651012577895e-01
+-1.5115230184660786e-01
+-1.5104792018861063e-01
+-1.5094336411503398e-01
+-1.5083863255562047e-01
+-1.5073372442981881e-01
+-1.5062863866903681e-01
+-1.5052337423724604e-01
+-1.5041793010336416e-01
+-1.5031230523862932e-01
+-1.5020649861812238e-01
+-1.5010050921539583e-01
+-1.4999433597607220e-01
+-1.4988797782012109e-01
+-1.4978143366915567e-01
+-1.4967470247318193e-01
+-1.4956778319740532e-01
+-1.4946067480853956e-01
+-1.4935337628207770e-01
+-1.4924588659587160e-01
+-1.4913820471209768e-01
+-1.4903032955038437e-01
+-1.4892226002295991e-01
+-1.4881399506502074e-01
+-1.4870553364891395e-01
+-1.4859687474978586e-01
+-1.4848801734051409e-01
+-1.4837896039178586e-01
+-1.4826970287068555e-01
+-1.4816024371406905e-01
+-1.4805058184140898e-01
+-1.4794071617750504e-01
+-1.4783064567825943e-01
+-1.4772036930935992e-01
+-1.4760988603881955e-01
+-1.4749919484235030e-01
+-1.4738829469636497e-01
+-1.4727718455630406e-01
+-1.4716586334286555e-01
+-1.4705432997402321e-01
+-1.4694258339149030e-01
+-1.4683062256061352e-01
+-1.4671844644800391e-01
+-1.4660605402734300e-01
+-1.4649344427629543e-01
+-1.4638061616465911e-01
+-1.4626756862102047e-01
+-1.4615430055957054e-01
+-1.4604081090765383e-01
+-1.4592709863370576e-01
+-1.4581316271350889e-01
+-1.4569900212036688e-01
+-1.4558461582362872e-01
+-1.4547000279079558e-01
+-1.4535516196433781e-01
+-1.4524009226077614e-01
+-1.4512479259843461e-01
+-1.4500926193361213e-01
+-1.4489349924588127e-01
+-1.4477750351328852e-01
+-1.4466127370543228e-01
+-1.4454480878856904e-01
+-1.4442810771959691e-01
+-1.4431116942673089e-01
+-1.4419399283222609e-01
+-1.4407657687275269e-01
+-1.4395892051167464e-01
+-1.4384102271518193e-01
+-1.4372288246062939e-01
+-1.4360449873748246e-01
+-1.4348587053072848e-01
+-1.4336699677127596e-01
+-1.4324787635498770e-01
+-1.4312850818773559e-01
+-1.4300889124202598e-01
+-1.4288902451496457e-01
+-1.4276890699590708e-01
+-1.4264853764934035e-01
+-1.4252791543407989e-01
+-1.4240703929760848e-01
+-1.4228590816630454e-01
+-1.4216452096459767e-01
+-1.4204287664156257e-01
+-1.4192097417410326e-01
+-1.4179881253976753e-01
+-1.4167639071097074e-01
+-1.4155370765651634e-01
+-1.4143076234108232e-01
+-1.4130755370617440e-01
+-1.4118408068392541e-01
+-1.4106034221162944e-01
+-1.4093633724597152e-01
+-1.4081206474756344e-01
+-1.4068752368705364e-01
+-1.4056271305551654e-01
+-1.4043763184480193e-01
+-1.4031227900835472e-01
+-1.4018665345461664e-01
+-1.4006075409257732e-01
+-1.3993457987776911e-01
+-1.3980812979820789e-01
+-1.3968140284097594e-01
+-1.3955439798511757e-01
+-1.3942711420610179e-01
+-1.3929955046996570e-01
+-1.3917170570951212e-01
+-1.3904357884962604e-01
+-1.3891516882812738e-01
+-1.3878647461022486e-01
+-1.3865749516452172e-01
+-1.3852822947332960e-01
+-1.3839867653584131e-01
+-1.3826883534798545e-01
+-1.3813870485189131e-01
+-1.3800828395022605e-01
+-1.3787757155301328e-01
+-1.3774656663118615e-01
+-1.3761526818146416e-01
+-1.3748367519712162e-01
+-1.3735178665915498e-01
+-1.3721960154516916e-01
+-1.3708711881758245e-01
+-1.3695433740644958e-01
+-1.3682125623772967e-01
+-1.3668787425850068e-01
+-1.3655419044291159e-01
+-1.3642020376741387e-01
+-1.3628591322260139e-01
+-1.3615131780973336e-01
+-1.3601641652195379e-01
+-1.3588120829350231e-01
+-1.3574569203199227e-01
+-1.3560986665959920e-01
+-1.3547373115920050e-01
+-1.3533728452859392e-01
+-1.3520052576230870e-01
+-1.3506345384805804e-01
+-1.3492606777157454e-01
+-1.3478836649211473e-01
+-1.3465034893389619e-01
+-1.3451201402080493e-01
+-1.3437336071637129e-01
+-1.3423438801551868e-01
+-1.3409509491277680e-01
+-1.3395548039596153e-01
+-1.3381554344950028e-01
+-1.3367528304985668e-01
+-1.3353469814144744e-01
+-1.3339378765991089e-01
+-1.3325255055302496e-01
+-1.3311098579800434e-01
+-1.3296909237614576e-01
+-1.3282686927831075e-01
+-1.3268431550879753e-01
+-1.3254143006995844e-01
+-1.3239821192172149e-01
+-1.3225465998880720e-01
+-1.3211077319999398e-01
+-1.3196655052929798e-01
+-1.3182199097258993e-01
+-1.3167709352644663e-01
+-1.3153185719148250e-01
+-1.3138628096904584e-01
+-1.3124036384109708e-01
+-1.3109410474223795e-01
+-1.3094750260001098e-01
+-1.3080055636980653e-01
+-1.3065326504747324e-01
+-1.3050562763176898e-01
+-1.3035764312411813e-01
+-1.3020931052818335e-01
+-1.3006062884230812e-01
+-1.2991159702177316e-01
+-1.2976221399965479e-01
+-1.2961247871826576e-01
+-1.2946239016539954e-01
+-1.2931194734172352e-01
+-1.2916114924950337e-01
+-1.2900999489586662e-01
+-1.2885848328783683e-01
+-1.2870661340401077e-01
+-1.2855438418038004e-01
+-1.2840179455112746e-01
+-1.2824884349130714e-01
+-1.2809553001267829e-01
+-1.2794185312732484e-01
+-1.2778781184188628e-01
+-1.2763340515989183e-01
+-1.2747863207611757e-01
+-1.2732349154457512e-01
+-1.2716798250657477e-01
+-1.2701210391931342e-01
+-1.2685585478390954e-01
+-1.2669923410854786e-01
+-1.2654224090492616e-01
+-1.2638487419051894e-01
+-1.2622713298089405e-01
+-1.2606901624997030e-01
+-1.2591052293261046e-01
+-1.2575165196769031e-01
+-1.2559240235084695e-01
+-1.2543277310908604e-01
+-1.2527276326695050e-01
+-1.2511237183644475e-01
+-1.2495159782526150e-01
+-1.2479044022673098e-01
+-1.2462889799422702e-01
+-1.2446697007410785e-01
+-1.2430465544156495e-01
+-1.2414195311936570e-01
+-1.2397886213404828e-01
+-1.2381538150628858e-01
+-1.2365151025102805e-01
+-1.2348724737888364e-01
+-1.2332259186299872e-01
+-1.2315754265457132e-01
+-1.2299209871380047e-01
+-1.2282625905259259e-01
+-1.2266002269981760e-01
+-1.2249338868240686e-01
+-1.2232635602234138e-01
+-1.2215892374005649e-01
+-1.2199109083358720e-01
+-1.2182285626295643e-01
+-1.2165421898554792e-01
+-1.2148517799398006e-01
+-1.2131573231672979e-01
+-1.2114588098356414e-01
+-1.2097562302480588e-01
+-1.2080495747094602e-01
+-1.2063388334427841e-01
+-1.2046239962291977e-01
+-1.2029050526925883e-01
+-1.2011819925843885e-01
+-1.1994548060634433e-01
+-1.1977234833654425e-01
+-1.1959880148336288e-01
+-1.1942483910066357e-01
+-1.1925046024189138e-01
+-1.1907566390708960e-01
+-1.1890044903970864e-01
+-1.1872481458623881e-01
+-1.1854875956287607e-01
+-1.1837228302970582e-01
+-1.1819538404368773e-01
+-1.1801806164121627e-01
+-1.1784031485089261e-01
+-1.1766214269086933e-01
+-1.1748354414620570e-01
+-1.1730451819504209e-01
+-1.1712506383349715e-01
+-1.1694518009158425e-01
+-1.1676486600320199e-01
+-1.1658412061728801e-01
+-1.1640294299943911e-01
+-1.1622133221046503e-01
+-1.1603928724779083e-01
+-1.1585680706691431e-01
+-1.1567389063377984e-01
+-1.1549053698601709e-01
+-1.1530674518844630e-01
+-1.1512251430314316e-01
+-1.1493784338358255e-01
+-1.1475273148089113e-01
+-1.1456717762261440e-01
+-1.1438118079079485e-01
+-1.1419473996311878e-01
+-1.1400785415522270e-01
+-1.1382052242650223e-01
+-1.1363274383849498e-01
+-1.1344451745363900e-01
+-1.1325584233486570e-01
+-1.1306671753679372e-01
+-1.1287714206199914e-01
+-1.1268711489195246e-01
+-1.1249663502253597e-01
+-1.1230570150261678e-01
+-1.1211431339266614e-01
+-1.1192246976013091e-01
+-1.1173016968705002e-01
+-1.1153741225545295e-01
+-1.1134419649995163e-01
+-1.1115052139834319e-01
+-1.1095638592924115e-01
+-1.1076178913259564e-01
+-1.1056673009220283e-01
+-1.1037120789107024e-01
+-1.1017522160248228e-01
+-1.0997877029542145e-01
+-1.0978185302700272e-01
+-1.0958446881089336e-01
+-1.0938661665034555e-01
+-1.0918829556742672e-01
+-1.0898950462463734e-01
+-1.0879024288974037e-01
+-1.0859050944585059e-01
+-1.0839030339537875e-01
+-1.0818962383711481e-01
+-1.0798846980532112e-01
+-1.0778684028593895e-01
+-1.0758473427332005e-01
+-1.0738215083330976e-01
+-1.0717908906285066e-01
+-1.0697554805809974e-01
+-1.0677152691270395e-01
+-1.0656702471928955e-01
+-1.0636204054588586e-01
+-1.0615657340640275e-01
+-1.0595062230802507e-01
+-1.0574418629336473e-01
+-1.0553726445133867e-01
+-1.0532985587443654e-01
+-1.0512195966720519e-01
+-1.0491357494350124e-01
+-1.0470470080795041e-01
+-1.0449533629577386e-01
+-1.0428548041019385e-01
+-1.0407513217212794e-01
+-1.0386429067756774e-01
+-1.0365295504159748e-01
+-1.0344112437530693e-01
+-1.0322879778100125e-01
+-1.0301597435875277e-01
+-1.0280265317934117e-01
+-1.0258883327387720e-01
+-1.0237451367306243e-01
+-1.0215969345263987e-01
+-1.0194437172484982e-01
+-1.0172854760324415e-01
+-1.0151222020588262e-01
+-1.0129538865279342e-01
+-1.0107805205006479e-01
+-1.0086020944456049e-01
+-1.0064185986689332e-01
+-1.0042300237003472e-01
+-1.0020363606176677e-01
+-9.9983760057954965e-02
+-9.9763373485698206e-02
+-9.9542475488159407e-02
+-9.9321065205780087e-02
+-9.9099141715984454e-02
+-9.8876704042814068e-02
+-9.8653751217197092e-02
+-9.8430282344868350e-02
+-9.8206296568769127e-02
+-9.7981793030587669e-02
+-9.7756770866286979e-02
+-9.7531229209901302e-02
+-9.7305167172876156e-02
+-9.7078583809885238e-02
+-9.6851478167139030e-02
+-9.6623849329374650e-02
+-9.6395696438428838e-02
+-9.6167018640534618e-02
+-9.5937815083743036e-02
+-9.5708084917667843e-02
+-9.5477827284543001e-02
+-9.5247041263426008e-02
+-9.5015725900218118e-02
+-9.4783880256710001e-02
+-9.4551503473179671e-02
+-9.4318594713007006e-02
+-9.4085153138590519e-02
+-9.3851177910263553e-02
+-9.3616668187072788e-02
+-9.3381623088301821e-02
+-9.3146041672156080e-02
+-9.2909922994268521e-02
+-9.2673266169179161e-02
+-9.2436070365532988e-02
+-9.2198334754079431e-02
+-9.1960058509081594e-02
+-9.1721240806569390e-02
+-9.1481880807061239e-02
+-9.1241977594798462e-02
+-9.1001530230032837e-02
+-9.0760537802188540e-02
+-9.0518999482444087e-02
+-9.0276914455755253e-02
+-9.0034281904008598e-02
+-8.9791101004352072e-02
+-8.9547370930756154e-02
+-8.9303090804596030e-02
+-8.9058259696866232e-02
+-8.8812876688127956e-02
+-8.8566940976220698e-02
+-8.8320451825566290e-02
+-8.8073408451897733e-02
+-8.7825809812991776e-02
+-8.7577654782445918e-02
+-8.7328942603524543e-02
+-8.7079673595853127e-02
+-8.6829848289087228e-02
+-8.6579468345087326e-02
+-8.6328537323753243e-02
+-8.6077058956084501e-02
+-8.5825036703271171e-02
+-8.5572473757273684e-02
+-8.5319373302874937e-02
+-8.5065738556252338e-02
+-8.4811572752913844e-02
+-8.4556879139326344e-02
+-8.4301661013220217e-02
+-8.4045921691006123e-02
+-8.3789664494842306e-02
+-8.3532892760766281e-02
+-8.3275609828397296e-02
+-8.3017818998354059e-02
+-8.2759523501698823e-02
+-8.2500726566386406e-02
+-8.2241431480752289e-02
+-8.1981641595847518e-02
+-8.1721360267859852e-02
+-8.1460590860629803e-02
+-8.1199336743410525e-02
+-8.0937601273423823e-02
+-8.0675387729719189e-02
+-8.0412699364471568e-02
+-8.0149539457501529e-02
+-7.9885911373229104e-02
+-7.9621818494385058e-02
+-7.9357264210740602e-02
+-7.9092251923461435e-02
+-7.8826785034226812e-02
+-7.8560866885461378e-02
+-7.8294500755239971e-02
+-7.8027689927065144e-02
+-7.7760437767838961e-02
+-7.7492747698972034e-02
+-7.7224623143515331e-02
+-7.6956067520100910e-02
+-7.6687084246813711e-02
+-7.6417676723194203e-02
+-7.6147848282615935e-02
+-7.5877602246318274e-02
+-7.5606941972688288e-02
+-7.5335870889374046e-02
+-7.5064392433729102e-02
+-7.4792510054851588e-02
+-7.4520227214870130e-02
+-7.4247547372372560e-02
+-7.3974473914525288e-02
+-7.3701010180936832e-02
+-7.3427159525013427e-02
+-7.3152925384531678e-02
+-7.2878311231433499e-02
+-7.2603320541723207e-02
+-7.2327956800886037e-02
+-7.2052223497612325e-02
+-7.1776124085878010e-02
+-7.1499661948756357e-02
+-7.1222840464101864e-02
+-7.0945663063011130e-02
+-7.0668133238919253e-02
+-7.0390254491387777e-02
+-7.0112030333042780e-02
+-6.9833464286227498e-02
+-6.9554559862981452e-02
+-6.9275320495082782e-02
+-6.8995749582426436e-02
+-6.8715850550385815e-02
+-6.8435626913648670e-02
+-6.8155082208810003e-02
+-6.7874219975433608e-02
+-6.7593043757303226e-02
+-6.7311557098830646e-02
+-6.7029763495422889e-02
+-6.6747666381984136e-02
+-6.6465269196642099e-02
+-6.6182575452598466e-02
+-6.5899588718538599e-02
+-6.5616312566467216e-02
+-6.5332750572101209e-02
+-6.5048906313789484e-02
+-6.4764783349084656e-02
+-6.4480385150233202e-02
+-6.4195715170514561e-02
+-6.3910776909266401e-02
+-6.3625573963861995e-02
+-6.3340109945906872e-02
+-6.3054388460366678e-02
+-6.2768413103210907e-02
+-6.2482187467896279e-02
+-6.2195715096062226e-02
+-6.1908999490195349e-02
+-6.1622044163530787e-02
+-6.1334852705057820e-02
+-6.1047428738735803e-02
+-6.0759775892603320e-02
+-6.0471897804977547e-02
+-6.0183798117991148e-02
+-5.9895480440522224e-02
+-5.9606948303576504e-02
+-5.9318205230267769e-02
+-5.9029254800208063e-02
+-5.8740100667692675e-02
+-5.8450746493989354e-02
+-5.8161195943439610e-02
+-5.7871452683207716e-02
+-5.7581520373072299e-02
+-5.7291402602675012e-02
+-5.7001102929746986e-02
+-5.6710624933603050e-02
+-5.6419972279989405e-02
+-5.6129148658891279e-02
+-5.5838157764126095e-02
+-5.5547003296070541e-02
+-5.5255688956508960e-02
+-5.4964218397919089e-02
+-5.4672595203573288e-02
+-5.4380822957862660e-02
+-5.4088905323578358e-02
+-5.3796846028880074e-02
+-5.3504648804596565e-02
+-5.3212317374309558e-02
+-5.2919855458999875e-02
+-5.2627266766268471e-02
+-5.2334554938071008e-02
+-5.2041723599535503e-02
+-5.1748776407212690e-02
+-5.1455717093022997e-02
+-5.1162549402108487e-02
+-5.0869277088740950e-02
+-5.0575903919580306e-02
+-5.0282433660181730e-02
+-4.9988870009876410e-02
+-4.9695216610972127e-02
+-4.9401477115517442e-02
+-4.9107655262546367e-02
+-4.8813754836481205e-02
+-4.8519779624369229e-02
+-4.8225733417003154e-02
+-4.7931620007529131e-02
+-4.7637443160100899e-02
+-4.7343206560545525e-02
+-4.7048913884556072e-02
+-4.6754568859966428e-02
+-4.6460175292432175e-02
+-4.6165736995961319e-02
+-4.5871257789739849e-02
+-4.5576741497806030e-02
+-4.5282191937739885e-02
+-4.4987612852178012e-02
+-4.4693007944594486e-02
+-4.4398380938209532e-02
+-4.4103735647471665e-02
+-4.3809075915945996e-02
+-4.3514405590277243e-02
+-4.3219728522223846e-02
+-4.2925048565238308e-02
+-4.2630369528483016e-02
+-4.2335695150266903e-02
+-4.2041029167598040e-02
+-4.1746375386395917e-02
+-4.1451737677411463e-02
+-4.1157119915868678e-02
+-4.0862525980276725e-02
+-4.0567959751814313e-02
+-4.0273425097662935e-02
+-3.9978925805461384e-02
+-3.9684465638730487e-02
+-3.9390048393272994e-02
+-3.9095677953425272e-02
+-3.8801358220758440e-02
+-3.8507093100561503e-02
+-3.8212886503011509e-02
+-3.7918742337707839e-02
+-3.7624664455202503e-02
+-3.7330656648301992e-02
+-3.7036722716980462e-02
+-3.6742866542268451e-02
+-3.6449092053144526e-02
+-3.6155403181472312e-02
+-3.5861803863224732e-02
+-3.5568298036998125e-02
+-3.5274889615888469e-02
+-3.4981582433209181e-02
+-3.4688380309550133e-02
+-3.4395287112929211e-02
+-3.4102306791369150e-02
+-3.3809443302540439e-02
+-3.3516700607498180e-02
+-3.3224082670711190e-02
+-3.2931593451901803e-02
+-3.2639236840661383e-02
+-3.2347016684739854e-02
+-3.2054936848136664e-02
+-3.1763001281357686e-02
+-3.1471213966453034e-02
+-3.1179578888528403e-02
+-3.0888100038066295e-02
+-3.0596781407677340e-02
+-3.0305626949568676e-02
+-3.0014640542129396e-02
+-2.9723826060146938e-02
+-2.9433187441858411e-02
+-2.9142728692806451e-02
+-2.8852453823641728e-02
+-2.8562366847235742e-02
+-2.8272471778570916e-02
+-2.7982772621135455e-02
+-2.7693273300903397e-02
+-2.7403977716612453e-02
+-2.7114889794728640e-02
+-2.6826013548330436e-02
+-2.6537353009714479e-02
+-2.6248912213906211e-02
+-2.5960695199358598e-02
+-2.5672706004588031e-02
+-2.5384948613683855e-02
+-2.5097426950263110e-02
+-2.4810144942733214e-02
+-2.4523106595255292e-02
+-2.4236315962682033e-02
+-2.3949777102545762e-02
+-2.3663494073606565e-02
+-2.3377470936280655e-02
+-2.3091711729383794e-02
+-2.2806220413014007e-02
+-2.2521000932208469e-02
+-2.2236057273519714e-02
+-2.1951393502706838e-02
+-2.1667013696384522e-02
+-2.1382921933169010e-02
+-2.1099122293689210e-02
+-2.0815618855137639e-02
+-2.0532415628310902e-02
+-2.0249516578851212e-02
+-1.9966925685539622e-02
+-1.9684647008679383e-02
+-1.9402684642457025e-02
+-1.9121042683185801e-02
+-1.8839725229504500e-02
+-1.8558736381813896e-02
+-1.8278080205189520e-02
+-1.7997760690732889e-02
+-1.7717781823829975e-02
+-1.7438147645652980e-02
+-1.7158862264079908e-02
+-1.6879929792616207e-02
+-1.6601354344742907e-02
+-1.6323140034467280e-02
+-1.6045290966740091e-02
+-1.5767811173248637e-02
+-1.5490704656005582e-02
+-1.5213975439583895e-02
+-1.4937627628758851e-02
+-1.4661665348660900e-02
+-1.4386092726345083e-02
+-1.4110913890784886e-02
+-1.3836132971451328e-02
+-1.3561754048395680e-02
+-1.3287781139241308e-02
+-1.3014218263896456e-02
+-1.2741069508439824e-02
+-1.2468339008985665e-02
+-1.2196030904567407e-02
+-1.1924149334917915e-02
+-1.1652698441158462e-02
+-1.1381682345870616e-02
+-1.1111105092746045e-02
+-1.0840970707570879e-02
+-1.0571283251067962e-02
+-1.0302046859386240e-02
+-1.0033265680465208e-02
+-9.7649438624534679e-03
+-9.4970855531828786e-03
+-9.2296948980618038e-03
+-8.9627759803391077e-03
+-8.6963328351499329e-03
+-8.4303695075639631e-03
+-8.1648901158341298e-03
+-7.8998988128332840e-03
+-7.6353997525885359e-03
+-7.3713970871672353e-03
+-7.1078949694250368e-03
+-6.8448975217469607e-03
+-6.5824087931229880e-03
+-6.3204328247646992e-03
+-6.0589737044142791e-03
+-5.7980355825094079e-03
+-5.5376226154974003e-03
+-5.2777389575255716e-03
+-5.0183887612257061e-03
+-4.7595761719659282e-03
+-4.5013052645140076e-03
+-4.2435800807514648e-03
+-3.9864046804648509e-03
+-3.7297831959291262e-03
+-3.4737197804679161e-03
+-3.2182185871793682e-03
+-2.9632837658856797e-03
+-2.7089194665826486e-03
+-2.4551297954404096e-03
+-2.2019187956037580e-03
+-1.9492905101813705e-03
+-1.6972490372267111e-03
+-1.4457985216759150e-03
+-1.1949431110859384e-03
+-9.4468694904428362e-04
+-6.9503417809336522e-04
+-4.4598892569858444e-04
+-1.9755524407704482e-04
+5.0262834583990114e-05
+2.9746125114168753e-04
+5.4403588072023947e-04
+7.8998258664593804e-04
+1.0352972348127384e-03
+1.2799756958203957e-03
+1.5240138420674427e-03
+1.7674076024782033e-03
+2.0101529557219893e-03
+2.2522458739192459e-03
+2.4936822696931347e-03
+2.7344580236545843e-03
+2.9745690161121353e-03
+3.2140111342294489e-03
+3.4527802659587883e-03
+3.6908723253537595e-03
+3.9282832990174942e-03
+4.1650091834118316e-03
+4.4010459394762938e-03
+4.6363894742802499e-03
+4.8710356889961268e-03
+5.1049804909343880e-03
+5.3382197929132376e-03
+5.5707495134634747e-03
+5.8025656373758405e-03
+6.0336641848181445e-03
+6.2640411633518404e-03
+6.4936925226863861e-03
+6.7226141932090790e-03
+6.9508021073950467e-03
+7.1782522068124192e-03
+7.4049604337132740e-03
+7.6309227697052831e-03
+7.8561352608980482e-03
+8.0805939557566011e-03
+8.3042948607872247e-03
+8.5272339421538241e-03
+8.7494071639667541e-03
+8.9708105013962224e-03
+9.1914399351466936e-03
+9.4112914582965678e-03
+9.6303611361021092e-03
+9.8486450562537374e-03
+1.0066139287415328e-02
+1.0282839846055982e-02
+1.0498742737846479e-02
+1.0713843975544824e-02
+1.0928139585027729e-02
+1.1141625594116064e-02
+1.1354298081330129e-02
+1.1566153175895199e-02
+1.1777187003741788e-02
+1.1987395648805816e-02
+1.2196775169333129e-02
+1.2405321624609045e-02
+1.2613031089264058e-02
+1.2819899642063485e-02
+1.3025923383702193e-02
+1.3231098485391918e-02
+1.3435421130153410e-02
+1.3638887478233582e-02
+1.3841493651205640e-02
+1.4043235765734888e-02
+1.4244109950157943e-02
+1.4444112345046320e-02
+1.4643239095693841e-02
+1.4841486409312297e-02
+1.5038850530924359e-02
+1.5235327698323170e-02
+1.5430914111917757e-02
+1.5625605957634882e-02
+1.5819399425777564e-02
+1.6012290724373161e-02
+1.6204276064036707e-02
+1.6395351690631357e-02
+1.6585513915916478e-02
+1.6774759056398920e-02
+1.6963083403966336e-02
+1.7150483223909298e-02
+1.7336954780317049e-02
+1.7522494355228097e-02
+1.7707098241736274e-02
+1.7890762743435110e-02
+1.8073484234564480e-02
+1.8255259114925190e-02
+1.8436083774148220e-02
+1.8615954571265168e-02
+1.8794867857764672e-02
+1.8972819995897259e-02
+1.9149807369917005e-02
+1.9325826366899244e-02
+1.9500873422432684e-02
+1.9674945027209040e-02
+1.9848037671787142e-02
+2.0020147824541853e-02
+2.0191271938372633e-02
+2.0361406468649763e-02
+2.0530547896364462e-02
+2.0698692711666918e-02
+2.0865837424512219e-02
+2.1031978618130821e-02
+2.1197112890638182e-02
+2.1361236829317867e-02
+2.1524347001276187e-02
+2.1686439970619743e-02
+2.1847512321578784e-02
+2.2007560662377041e-02
+2.2166581605862119e-02
+2.2324571823834769e-02
+2.2481528029201392e-02
+2.2637446932785969e-02
+2.2792325233423033e-02
+2.2946159624197174e-02
+2.3098946805236695e-02
+2.3250683506407042e-02
+2.3401366463580899e-02
+2.3550992445915749e-02
+2.3699558293452848e-02
+2.3847060853758130e-02
+2.3993496966689343e-02
+2.4138863462932175e-02
+2.4283157173620083e-02
+2.4426374959979721e-02
+2.4568513704988797e-02
+2.4709570300927838e-02
+2.4849541709731242e-02
+2.4988424922566383e-02
+2.5126216929178401e-02
+2.5262914716924108e-02
+2.5398515271728501e-02
+2.5533015595161739e-02
+2.5666412724343658e-02
+2.5798703701294650e-02
+2.5929885614940047e-02
+2.6059955614633118e-02
+2.6188910852807095e-02
+2.6316748483906024e-02
+2.6443465663641301e-02
+2.6569059552127988e-02
+2.6693527349092940e-02
+2.6816866271442568e-02
+2.6939073554028588e-02
+2.7060146507448393e-02
+2.7180082460684249e-02
+2.7298878745957503e-02
+2.7416532704235531e-02
+2.7533041677472544e-02
+2.7648403035264762e-02
+2.7762614184477327e-02
+2.7875672537523367e-02
+2.7987575567603697e-02
+2.8098320796223028e-02
+2.8207905747263264e-02
+2.8316327959099333e-02
+2.8423584976400587e-02
+2.8529674354784099e-02
+2.8634593699298026e-02
+2.8738340627533748e-02
+2.8840912788287695e-02
+2.8942307905927604e-02
+2.9042523715357857e-02
+2.9141557963390293e-02
+2.9239408413755767e-02
+2.9336072833224199e-02
+2.9431549031191957e-02
+2.9525834852366473e-02
+2.9618928150765226e-02
+2.9710826853741729e-02
+2.9801528924245039e-02
+2.9891032331269933e-02
+2.9979335072234103e-02
+3.0066435151989302e-02
+3.0152330597668725e-02
+3.0237019492983935e-02
+3.0320499930630313e-02
+3.0402770049008175e-02
+3.0483828053175951e-02
+3.0563672154443926e-02
+3.0642300592433416e-02
+3.0719711631221173e-02
+3.0795903541671298e-02
+3.0870874650898699e-02
+3.0944623314568039e-02
+3.1017147905814522e-02
+3.1088446880312579e-02
+3.1158518717471929e-02
+3.1227361911735693e-02
+3.1294974997518613e-02
+3.1361356515956625e-02
+3.1426505047126976e-02
+3.1490419230301409e-02
+3.1553097712447339e-02
+3.1614539201048314e-02
+3.1674742458210926e-02
+3.1733706252847403e-02
+3.1791429400986004e-02
+3.1847910743711877e-02
+3.1903149136565244e-02
+3.1957143505992935e-02
+3.2009892799953824e-02
+3.2061395996013056e-02
+3.2111652152919883e-02
+3.2160660343450567e-02
+3.2208419672494111e-02
+3.2254929295773400e-02
+3.2300188376043461e-02
+3.2344196132063990e-02
+3.2386951835300409e-02
+3.2428454767132756e-02
+3.2468704285754900e-02
+3.2507699792241641e-02
+3.2545440700496725e-02
+3.2581926488196612e-02
+3.2617156653446611e-02
+3.2651130722697659e-02
+3.2683848303308512e-02
+3.2715309017633420e-02
+3.2745512532994424e-02
+3.2774458590760162e-02
+3.2802146941729816e-02
+3.2828577390977373e-02
+3.2853749796813519e-02
+3.2877664027233175e-02
+3.2900320024709002e-02
+3.2921717775224235e-02
+3.2941857281624319e-02
+3.2960738633804498e-02
+3.2978361951045983e-02
+3.2994727379236706e-02
+3.3009835143175750e-02
+3.3023685483173915e-02
+3.3036278686225572e-02
+3.3047615119327800e-02
+3.3057695160322274e-02
+3.3066519249837556e-02
+3.3074087892664548e-02
+3.3080401604078200e-02
+3.3085460976712659e-02
+3.3089266650467727e-02
+3.3091819282572266e-02
+3.3093119622131295e-02
+3.3093168450896847e-02
+3.3091966579338883e-02
+3.3089514906476235e-02
+3.3085814349632280e-02
+3.3080865874236386e-02
+3.3074670531502037e-02
+3.3067229384823295e-02
+3.3058543565893883e-02
+3.3048614279100177e-02
+3.3037442739842264e-02
+3.3025030241022532e-02
+3.3011378125040847e-02
+3.2996487752743435e-02
+3.2980360585746778e-02
+3.2962998123290267e-02
+3.2944401895701025e-02
+3.2924573532996437e-02
+3.2903514686788177e-02
+3.2881227053738353e-02
+3.2857712414015215e-02
+3.2832972560487325e-02
+3.2807009359720987e-02
+3.2779824759956035e-02
+3.2751420722128645e-02
+3.2721799297226017e-02
+3.2690962596255202e-02
+3.2658912746371012e-02
+3.2625651962616874e-02
+3.2591182494619723e-02
+3.2555506626310113e-02
+3.2518626756214981e-02
+3.2480545308908239e-02
+3.2441264760256237e-02
+3.2400787685144476e-02
+3.2359116673127089e-02
+3.2316254374506581e-02
+3.2272203509619998e-02
+3.2226966811940851e-02
+3.2180547116576946e-02
+3.2132947329287918e-02
+3.2084170374716690e-02
+3.2034219283556473e-02
+3.1983097130154819e-02
+3.1930807015100184e-02
+3.1877352128852177e-02
+3.1822735683795032e-02
+3.1766960950250306e-02
+3.1710031315099405e-02
+3.1651950183164100e-02
+3.1592721032249034e-02
+3.1532347427756478e-02
+3.1470832947412673e-02
+3.1408181243510129e-02
+3.1344396022559007e-02
+3.1279481011850997e-02
+3.1213440062507543e-02
+3.1146277078932201e-02
+3.1077995996843653e-02
+3.1008600863976037e-02
+3.0938095756309222e-02
+3.0866484789777347e-02
+3.0793772163202181e-02
+3.0719962090200663e-02
+3.0645058868701214e-02
+3.0569066901992722e-02
+3.0491990608443528e-02
+3.0413834499378165e-02
+3.0334603156465779e-02
+3.0254301176248867e-02
+3.0172933236538194e-02
+3.0090504052235061e-02
+3.0007018373909452e-02
+2.9922481085748073e-02
+2.9836897107077185e-02
+2.9750271406608124e-02
+2.9662609060144500e-02
+2.9573915161404195e-02
+2.9484194855699603e-02
+2.9393453355113553e-02
+2.9301695885620645e-02
+2.9208927782449434e-02
+2.9115154466892942e-02
+2.9020381378562735e-02
+2.8924614061843591e-02
+2.8827858110804763e-02
+2.8730119140334104e-02
+2.8631402842007353e-02
+2.8531714929593742e-02
+2.8431061174879205e-02
+2.8329447481140461e-02
+2.8226879774266748e-02
+2.8123364044932452e-02
+2.8018906371180270e-02
+2.7913512843553701e-02
+2.7807189612002844e-02
+2.7699942875483229e-02
+2.7591778852532972e-02
+2.7482703886622509e-02
+2.7372724382889339e-02
+2.7261846773092874e-02
+2.7150077592787106e-02
+2.7037423408159938e-02
+2.6923890813610629e-02
+2.6809486467714638e-02
+2.6694217042958115e-02
+2.6578089290446617e-02
+2.6461110071802459e-02
+2.6343286264433496e-02
+2.6224624823651739e-02
+2.6105132771492477e-02
+2.5984817141339222e-02
+2.5863685020128771e-02
+2.5741743523393347e-02
+2.5618999797737539e-02
+2.5495461118498316e-02
+2.5371134800314391e-02
+2.5246028194708680e-02
+2.5120148741789996e-02
+2.4993503899098043e-02
+2.4866101154611575e-02
+2.4737948039748599e-02
+2.4609052097618923e-02
+2.4479420965488521e-02
+2.4349062364446828e-02
+2.4217984030279052e-02
+2.4086193775710966e-02
+2.3953699455594241e-02
+2.3820508936510984e-02
+2.3686630125375672e-02
+2.3552070943875746e-02
+2.3416839358196394e-02
+2.3280943446935751e-02
+2.3144391311113066e-02
+2.3007191095132124e-02
+2.2869351008433358e-02
+2.2730879270517725e-02
+2.2591784123015188e-02
+2.2452073828283885e-02
+2.2311756663231597e-02
+2.2170841002532426e-02
+2.2029335276187438e-02
+2.1887247930417367e-02
+2.1744587474198430e-02
+2.1601362438934981e-02
+2.1457581364439243e-02
+2.1313252806756462e-02
+2.1168385328829548e-02
+2.1022987547640398e-02
+2.0877068164932365e-02
+2.0730635895512561e-02
+2.0583699493315497e-02
+2.0436267750070222e-02
+2.0288349462782747e-02
+2.0139953430388133e-02
+1.9991088454696531e-02
+1.9841763356904123e-02
+1.9691987042740045e-02
+1.9541768448493427e-02
+1.9391116525810236e-02
+1.9240040263123873e-02
+1.9088548658888590e-02
+1.8936650707028622e-02
+1.8784355390952287e-02
+1.8631671698940932e-02
+1.8478608671541608e-02
+1.8325175401680313e-02
+1.8171380990170131e-02
+1.8017234558160438e-02
+1.7862745240648337e-02
+1.7707922171171907e-02
+1.7552774455201803e-02
+1.7397311191357897e-02
+1.7241541499337293e-02
+1.7085474554662038e-02
+1.6929119546968005e-02
+1.6772485670644148e-02
+1.6615582125193731e-02
+1.6458418113091199e-02
+1.6301002806478740e-02
+1.6143345345627360e-02
+1.5985454876105094e-02
+1.5827340578139993e-02
+1.5669011655136556e-02
+1.5510477312386365e-02
+1.5351746743988724e-02
+1.5192829142734909e-02
+1.5033733684487245e-02
+1.4874469481432227e-02
+1.4715045636472347e-02
+1.4555471265650006e-02
+1.4395755505603364e-02
+1.4235907498070098e-02
+1.4075936365453763e-02
+1.3915851208742235e-02
+1.3755661125338131e-02
+1.3595375140777756e-02
+1.3435002235408167e-02
+1.3274551392962082e-02
+1.3114031601816366e-02
+1.2953451854673269e-02
+1.2792821132232235e-02
+1.2632148365078439e-02
+1.2471442476076762e-02
+1.2310712341300331e-02
+1.2149966743430034e-02
+1.1989214457688279e-02
+1.1828464249314460e-02
+1.1667724871685452e-02
+1.1507005076318310e-02
+1.1346313556483861e-02
+1.1185658967307444e-02
+1.1025049947975039e-02
+1.0864495019411821e-02
+1.0704002658299358e-02
+1.0543581333475983e-02
+1.0383239476783573e-02
+1.0222985514598481e-02
+1.0062827833634368e-02
+9.9027747374062468e-03
+9.7428345198335466e-03
+9.5830153828267775e-03
+9.4233254188595284e-03
+9.2637727136109359e-03
+9.1043653044151317e-03
+8.9451111955530342e-03
+8.7860183781118539e-03
+8.6270947388445915e-03
+8.4683481236015636e-03
+8.3097863355040495e-03
+8.1514170107961966e-03
+7.9932477496653526e-03
+7.8352861248209872e-03
+7.6775396477929934e-03
+7.5200158221323454e-03
+7.3627220414488621e-03
+7.2056655631368401e-03
+7.0488536375753917e-03
+6.8922934946196862e-03
+6.7359923498806866e-03
+6.5799573286775314e-03
+6.4241949014108030e-03
+6.2687112578463265e-03
+6.1135134565099307e-03
+5.9586119158904537e-03
+5.8040178746186924e-03
+5.6497431984314462e-03
+5.4958011165015920e-03
+5.3422050346242991e-03
+5.1889680393579296e-03
+5.0361028056589542e-03
+4.8836219832140296e-03
+4.7315381738593154e-03
+4.5798639440410667e-03
+4.4286118330015539e-03
+4.2777941491047343e-03
+4.1274230997330333e-03
+3.9775108646694715e-03
+3.8280694969141374e-03
+3.6791110209962083e-03
+3.5306473866899691e-03
+3.3826903662009795e-03
+3.2352517081430071e-03
+3.0883430216378945e-03
+2.9419757273286512e-03
+2.7961612295321547e-03
+2.6509108121424564e-03
+2.5062356637551809e-03
+2.3621469503914854e-03
+2.2186556492886349e-03
+2.0757726513857436e-03
+1.9335087929292615e-03
+1.7918746637931497e-03
+1.6508807915205240e-03
+1.5105376384654029e-03
+1.3708555049007215e-03
+1.2318446684741612e-03
+1.0935152797263987e-03
+9.5587731003493625e-04
+8.1894070938805935e-04
+6.8271522615599971e-04
+5.4721044136774315e-04
+4.1243591378097017e-04
+2.7840103117012085e-04
+1.4511509930476146e-04
+1.2587375212242703e-05
+-1.1917311319434464e-04
+-2.5015739932575539e-04
+-3.8035661821971467e-04
+-5.0976216448132133e-04
+-6.3836547164538410e-04
+-7.6615808627137976e-04
+-8.9313172107117176e-04
+-1.0192781088707830e-03
+-1.1445891662157548e-03
+-1.2690569687868181e-03
+-1.3926736238874776e-03
+-1.5154314929417924e-03
+-1.6373230663249050e-03
+-1.7583408773752288e-03
+-1.8784776674894475e-03
+-1.9977262368581715e-03
+-2.1160794761126657e-03
+-2.2335305170721577e-03
+-2.3500725307841518e-03
+-2.4656988460368995e-03
+-2.5804030324777455e-03
+-2.6941786859241037e-03
+-2.8070195655138792e-03
+-2.9189195779846262e-03
+-3.0298726583915716e-03
+-3.1398729726241840e-03
+-3.2489148092622907e-03
+-3.3569925137070062e-03
+-3.4641007139475715e-03
+-3.5702341231044414e-03
+-3.6753875328290357e-03
+-3.7795559532059959e-03
+-3.8827344317921542e-03
+-3.9849181561846369e-03
+-4.0861025368166765e-03
+-4.1862830122832402e-03
+-4.2854552307948855e-03
+-4.3836150382061826e-03
+-4.4807583077387863e-03
+-4.5768811166102073e-03
+-4.6719796555815306e-03
+-4.7660501649563767e-03
+-4.8590891401078381e-03
+-4.9510931574341657e-03
+-5.0420588888279785e-03
+-5.1319832818433955e-03
+-5.2208633337333353e-03
+-5.3086961626945374e-03
+-5.3954790873765451e-03
+-5.4812094525706701e-03
+-5.5658847877221324e-03
+-5.6495028037816704e-03
+-5.7320612425072297e-03
+-5.8135580894231416e-03
+-5.8939914722355140e-03
+-5.9733595612866969e-03
+-6.0516607505578567e-03
+-6.1288935089217605e-03
+-6.2050563872652143e-03
+-6.2801481830452362e-03
+-6.3541677410915969e-03
+-6.4271140430688638e-03
+-6.4989863066249685e-03
+-6.5697837792140189e-03
+-6.6395058673074754e-03
+-6.7081521402696685e-03
+-6.7757221943796457e-03
+-6.8422158365952310e-03
+-6.9076330024053986e-03
+-6.9719736736131837e-03
+-7.0352380835910127e-03
+-7.0974265545011685e-03
+-7.1585394764504392e-03
+-7.2185774517718355e-03
+-7.2775411259378246e-03
+-7.3354312616036223e-03
+-7.3922488317516351e-03
+-7.4479948382843225e-03
+-7.5026704498424492e-03
+-7.5562770129996119e-03
+-7.6088158994298471e-03
+-7.6602886605243855e-03
+-7.7106969623422714e-03
+-7.7600425094463722e-03
+-7.8083272201763540e-03
+-7.8555530923375954e-03
+-7.9017221930464902e-03
+-7.9468368144546605e-03
+-7.9908992967276972e-03
+-8.0339120747022156e-03
+-8.0758777598446407e-03
+-8.1167989892487573e-03
+-8.1566785408495896e-03
+-8.1955193490850457e-03
+-8.2333243724894613e-03
+-8.2700967463637184e-03
+-8.3058397238517205e-03
+-8.3405565899812573e-03
+-8.3742508075061294e-03
+-8.4069259087967002e-03
+-8.4385854819217475e-03
+-8.4692333020921721e-03
+-8.4988731869683545e-03
+-8.5275090444652396e-03
+-8.5551449575962737e-03
+-8.5817850350674262e-03
+-8.6074334969282133e-03
+-8.6320946919687495e-03
+-8.6557729892850332e-03
+-8.6784729024429585e-03
+-8.7001990456677496e-03
+-8.7209560618273455e-03
+-8.7407487565779561e-03
+-8.7595820026462306e-03
+-8.7774607164053681e-03
+-8.7943899651130655e-03
+-8.8103748524256727e-03
+-8.8254205525211682e-03
+-8.8395323813950360e-03
+-8.8527156774503308e-03
+-8.8649758754221295e-03
+-8.8763185258845505e-03
+-8.8867491968465644e-03
+-8.8962735682451902e-03
+-8.9048974015379905e-03
+-8.9126264805641786e-03
+-8.9194667155228363e-03
+-8.9254240715533565e-03
+-8.9305045494334490e-03
+-8.9347142763504372e-03
+-8.9380594118911340e-03
+-8.9405461676405548e-03
+-8.9421808631037387e-03
+-8.9429698362169172e-03
+-8.9429194982443005e-03
+-8.9420363520023357e-03
+-8.9403269145186173e-03
+-8.9377977857770866e-03
+-8.9344556289363344e-03
+-8.9303071243986652e-03
+-8.9253590476142796e-03
+-8.9196182177368032e-03
+-8.9130914792984184e-03
+-8.9057857674458007e-03
+-8.8977080423931990e-03
+-8.8888653006958633e-03
+-8.8792646161465205e-03
+-8.8689130770181982e-03
+-8.8578178213549342e-03
+-8.8459860514913790e-03
+-8.8334249808671543e-03
+-8.8201418821607057e-03
+-8.8061440752338904e-03
+-8.7914388911272540e-03
+-8.7760337148273786e-03
+-8.7599359580366205e-03
+-8.7431530502361538e-03
+-8.7256924835776000e-03
+-8.7075617691451997e-03
+-8.6887684402889281e-03
+-8.6693200777645286e-03
+-8.6492242725685273e-03
+-8.6284886406420916e-03
+-8.6071208307685488e-03
+-8.5851284992138673e-03
+-8.5625193361563139e-03
+-8.5393010601388913e-03
+-8.5154813972738493e-03
+-8.4910681037577932e-03
+-8.4660689521251636e-03
+-8.4404917215562102e-03
+-8.4143442079075738e-03
+-8.3876342142041489e-03
+-8.3603695557693571e-03
+-8.3325580728297339e-03
+-8.3042076125022461e-03
+-8.2753260309772515e-03
+-8.2459211958602046e-03
+-8.2160009786460351e-03
+-8.1855732492043167e-03
+-8.1546458765508409e-03
+-8.1232267337313820e-03
+-8.0913237023560770e-03
+-8.0589446701269558e-03
+-8.0260975267838468e-03
+-7.9927901584777115e-03
+-7.9590304528673432e-03
+-7.9248262908160668e-03
+-7.8901855302444725e-03
+-7.8551160283846268e-03
+-7.8196256418202031e-03
+-7.7837222244334543e-03
+-7.7474136320424573e-03
+-7.7107077031632800e-03
+-7.6736122613489709e-03
+-7.6361351288856969e-03
+-7.5982840944370409e-03
+-7.5600669306622546e-03
+-7.5214914083347340e-03
+-7.4825652766616095e-03
+-7.4432962808110613e-03
+-7.4036921546718438e-03
+-7.3637605961139538e-03
+-7.3235092994201317e-03
+-7.2829459307487679e-03
+-7.2420781107165886e-03
+-7.2009134576983096e-03
+-7.1594595642616608e-03
+-7.1177239993537485e-03
+-7.0757143291637270e-03
+-7.0334380748453863e-03
+-6.9909027343610791e-03
+-6.9481157945208696e-03
+-6.9050846737798216e-03
+-6.8618167713886350e-03
+-6.8183194728410577e-03
+-6.7746001191647566e-03
+-6.7306660458326430e-03
+-6.6865245543730519e-03
+-6.6421828893512532e-03
+-6.5976482903054162e-03
+-6.5529279400482641e-03
+-6.5080289668196399e-03
+-6.4629584940700431e-03
+-6.4177235924966153e-03
+-6.3723313039259965e-03
+-6.3267886585766592e-03
+-6.2811026138898610e-03
+-6.2352801054199212e-03
+-6.1893280399227040e-03
+-6.1432532338105824e-03
+-6.0970624890219717e-03
+-6.0507625732001405e-03
+-6.0043601939977365e-03
+-5.9578620533088118e-03
+-5.9112747939875582e-03
+-5.8646049995623633e-03
+-5.8178592450179633e-03
+-5.7710440164752911e-03
+-5.7241657480909857e-03
+-5.6772308621033272e-03
+-5.6302457058026063e-03
+-5.5832166024851922e-03
+-5.5361498476532208e-03
+-5.4890516457557666e-03
+-5.4419281853971095e-03
+-5.3947856012814838e-03
+-5.3476299310539713e-03
+-5.3004672024700300e-03
+-5.2533033857481348e-03
+-5.2061443907509518e-03
+-5.1589961190039585e-03
+-5.1118643860255299e-03
+-5.0647549546572173e-03
+-5.0176735697246063e-03
+-4.9706258638804535e-03
+-4.9236174308919479e-03
+-4.8766538387115289e-03
+-4.8297405669854012e-03
+-4.7828830790414504e-03
+-4.7360867879874717e-03
+-4.6893570125491110e-03
+-4.6426990603015313e-03
+-4.5961181574913617e-03
+-4.5496194414383151e-03
+-4.5032080400995997e-03
+-4.4568890013399563e-03
+-4.4106673216895631e-03
+-4.3645479813208413e-03
+-4.3185358548826144e-03
+-4.2726357785051756e-03
+-4.2268525534883963e-03
+-4.1811908589914730e-03
+-4.1356553496730390e-03
+-4.0902506349980786e-03
+-4.0449812357761985e-03
+-3.9998516619187720e-03
+-3.9548663491227728e-03
+-3.9100296484549978e-03
+-3.8653458995808535e-03
+-3.8208193368281804e-03
+-3.7764541236426272e-03
+-3.7322544086470324e-03
+-3.6882242444354302e-03
+-3.6443676467287889e-03
+-3.6006886004799499e-03
+-3.5571909778868691e-03
+-3.5138786271350915e-03
+-3.4707553393962184e-03
+-3.4278247898290263e-03
+-3.3850906390251127e-03
+-3.3425564819362431e-03
+-3.3002258354638703e-03
+-3.2581022061474872e-03
+-3.2161890059632351e-03
+-3.1744895804097493e-03
+-3.1330072569446866e-03
+-3.0917452428102770e-03
+-3.0507066963824290e-03
+-3.0098947495618596e-03
+-2.9693124331424204e-03
+-2.9289627551977644e-03
+-2.8888486740538451e-03
+-2.8489730424077816e-03
+-2.8093386984191977e-03
+-2.7699484010008865e-03
+-2.7308048109417294e-03
+-2.6919105780833287e-03
+-2.6532682699619229e-03
+-2.6148803936844110e-03
+-2.5767494407359028e-03
+-2.5388777955874043e-03
+-2.5012677970441093e-03
+-2.4639217531432136e-03
+-2.4268418503520651e-03
+-2.3900302461083798e-03
+-2.3534890554147109e-03
+-2.3172202993004859e-03
+-2.2812259852659977e-03
+-2.2455080523643535e-03
+-2.2100683513262150e-03
+-2.1749087212958938e-03
+-2.1400309053175395e-03
+-2.1054365727002241e-03
+-2.0711273790916555e-03
+-2.0371048880900755e-03
+-2.0033706220702560e-03
+-1.9699260772440942e-03
+-1.9367726422492477e-03
+-1.9039116785702578e-03
+-1.8713445002353430e-03
+-1.8390723119738857e-03
+-1.8070963023110330e-03
+-1.7754176018096898e-03
+-1.7440372631170142e-03
+-1.7129563285846086e-03
+-1.6821757579351107e-03
+-1.6516964447321027e-03
+-1.6215192677499974e-03
+-1.5916450020509666e-03
+-1.5620743738994703e-03
+-1.5328080878405691e-03
+-1.5038467560731434e-03
+-1.4751909661877348e-03
+-1.4468412658705245e-03
+-1.4187981070466057e-03
+-1.3910619263770921e-03
+-1.3636330974316725e-03
+-1.3365119054877563e-03
+-1.3096986252325131e-03
+-1.2831934620895706e-03
+-1.2569965636238184e-03
+-1.2311080648736859e-03
+-1.2055280119486755e-03
+-1.1802564070924637e-03
+-1.1552932297382748e-03
+-1.1306383587807484e-03
+-1.1062916448382799e-03
+-1.0822529056421061e-03
+-1.0585218768040165e-03
+-1.0350982801354785e-03
+-1.0119817847925739e-03
+-9.8917198322415688e-04
+-9.6666845758380088e-04
+-9.4447071681383744e-04
+-9.2257820607980119e-04
+-9.0099035964947758e-04
+-8.7970653761388652e-04
+-8.5872606170291316e-04
+-8.3804823484817030e-04
+-8.1767227450315087e-04
+-7.9759737272374980e-04
+-7.7782268809333845e-04
+-7.5834729222177166e-04
+-7.3917024153487233e-04
+-7.2029054942365344e-04
+-7.0170716407154561e-04
+-6.8341902462881949e-04
+-6.6542500941271700e-04
+-6.4772394149500328e-04
+-6.3031463321615159e-04
+-6.1319582117245217e-04
+-5.9636620095184965e-04
+-5.7982445288050301e-04
+-5.6356918648100380e-04
+-5.4759898903595497e-04
+-5.3191242058822142e-04
+-5.1650796771346235e-04
+-5.0138410328178277e-04
+-4.8653925781552920e-04
+-4.7197179507896893e-04
+-4.5768006989382160e-04
+-4.4366238778189410e-04
+-4.2991700760926758e-04
+-4.1644217929342640e-04
+-4.0323609043556492e-04
+-3.9029689328948176e-04
+-3.7762272554573199e-04
+-3.6521165519422748e-04
+-3.5306172717284115e-04
+-3.4117096484276679e-04
+-3.2953733137356447e-04
+-3.1815877798857886e-04
+-3.0703322178931073e-04
+-2.9615852402000510e-04
+-2.8553253776987428e-04
+-2.7515306961608838e-04
+-2.6501788029525356e-04
+-2.5512472287400899e-04
+-2.4547130068711641e-04
+-2.3605528750328554e-04
+-2.2687434543848233e-04
+-2.1792608006232432e-04
+-2.0920807715614446e-04
+-2.0071790294349176e-04
+-1.9245306712118397e-04
+-1.8441106759808023e-04
+-1.7658937574308972e-04
+-1.6898541791071384e-04
+-1.6159661348053858e-04
+-1.5442034516055221e-04
+-1.4745395804054495e-04
+-1.4069479036086534e-04
+-1.3414013586334782e-04
+-1.2778726061768894e-04
+-1.2163342157544341e-04
+-1.1567583170637730e-04
+-1.0991168764748233e-04
+-1.0433817098803467e-04
+-9.8952418702732530e-05
+-9.3751557764600962e-05
+-8.8732692528708550e-05
+-8.3892887608987126e-05
+-7.9229201285364878e-05
+-7.4738664302144504e-05
+-7.0418278036942444e-05
+-6.6265038341769704e-05
+-6.2275907385962316e-05
+-5.8447825371633715e-05
+-5.4777724934499461e-05
+-5.1262502245080267e-05
+-4.7899039134664093e-05
+-4.4684206430246033e-05
+-4.1614841907691544e-05
+-3.8687775297123563e-05
+-3.5899819902256592e-05
+-3.3247759350097506e-05
+-3.0728372024512583e-05
+-2.8338414978903974e-05
+-2.6074621650147782e-05
+-2.3933721059003609e-05
+-2.1912418742810296e-05
+-2.0007404134557294e-05
+-1.8215361139227390e-05
+-1.6532948310405439e-05
+-1.4956813501144403e-05
+-1.3483596534028705e-05
+-1.2109913157340471e-05
+-1.0832372690422310e-05
+-9.6475736983018798e-06
+-8.5520950457401352e-06
+-7.5425115888648853e-06
+-6.6153846131358558e-06
+-5.7672598801767038e-06
+-4.9946797983422195e-06
+-4.2941716316835594e-06
+-3.6622516758370852e-06
+-3.0954325932095644e-06
+-2.5902128376793476e-06
+-2.1430842088286991e-06
+-1.7505332739897717e-06
+-1.4090317015454586e-06
+-1.1150465919865497e-06
+-8.6504189066087342e-07
+-6.5547668091511599e-07
+-4.8280752238816738e-07
+-3.4347009567604269e-07
+-2.3387512628583005e-07
+-1.5043514994989458e-07
+-8.9626163608550934e-08
+-4.7969643543145942e-08
+-2.1942905325560451e-08
+-7.7193383343397677e-09
+-1.3427963762055147e-09
+7.4598404166285332e-10
+5.9316544827478737e-10
+-1.1685583115828512e-10
+-2.9390962393645889e-10
+-1.2266921699438544e-10
+5.2491280162045018e-11
+7.4167746193366475e-11
+2.0927912104681796e-11
+-1.7992858268506726e-11
+-1.7865765691970135e-11
+-2.6009362007518909e-12
+5.4563625040805153e-12
+4.0916849699106209e-12
+-5.6140506333023047e-15
+-1.5340663910668308e-12
+-8.8152999596371867e-13
+1.5131639084723864e-13
+4.0771424696428105e-13
+1.7468610652379399e-13
+-7.0609610238724061e-14
+-1.0326882312405729e-13
+-3.0251103778071491e-14
+2.4537502474698764e-14
+2.4970531877355791e-14
+3.9153528508219137e-15
+-7.4971558094344645e-15
+-5.7436747257620417e-15
+-6.3216502198638194e-17
+2.1186984759320346e-15
+1.2442828494311530e-15
+-1.9469192744538061e-16
+-5.6541109084216951e-16
+-2.4855419196751933e-16
+9.4824243224419640e-17
+1.4374554509183673e-16
+4.3655069070544265e-17
+-3.3436251029948709e-17
+-3.4889457449265000e-17
+-5.8597849837104150e-18
+1.0296208669734416e-17
+8.0595654106779427e-18
+1.8749266185261807e-19
+-2.9250682782124320e-18
+-1.7554146223743261e-18
+2.4861783324235004e-19
+7.8385757848766653e-19
+3.5337663074266114e-19
+-1.2711500858808250e-19
+-2.0002788950476422e-19
+-6.2900351065757808e-20
+4.5524619221079565e-20
+4.8733030879288051e-20
+8.7256722245140536e-21
+-1.4133104644275231e-20
+-1.1304976386886155e-20
+-4.0023245491651289e-22
+4.0368436921144520e-21
+2.4752799228992104e-21
+-3.1462745321691909e-22
+-1.0863611799877389e-21
+-5.0202472387123537e-22
+1.7006955256787622e-22
+2.7826393356656981e-22
+9.0497822119319491e-23
+-6.1929729672659047e-23
+-6.8048147588102463e-23
+-1.2935617497242033e-23
+1.9389704545219597e-23
+1.5851419488986935e-23
+7.5188526164951640e-25
+-5.5690698444823780e-24
+-3.4886528976253470e-24
+3.9380906558709606e-25
+1.5051310026309036e-24
+7.1268083151794322e-25
+-2.2705695253925930e-25
+-3.8698533775190113e-25
+-1.3002660054153763e-25
+8.4169402326818932e-26
+9.4988965907506819e-26
+1.9101352046220568e-26
+-2.6587103368469091e-26
+-2.2218221762583839e-26
+-1.3188167425059106e-27
+7.6799043435725347e-27
+4.9145891361317834e-27
+-4.8619436753518339e-28
+-2.0846590214289652e-27
+-1.0110178072840261e-27
+3.0243814424945260e-28
+5.3802575580575911e-28
+1.8658168129953513e-28
+-1.1428549337894740e-28
+-1.3255501249278539e-28
+-2.8107273655176366e-29
+3.6435725370254233e-29
+3.1131117899162646e-29
+2.2158935959037806e-30
+-1.0586636542219976e-29
+-6.9201764549009641e-30
+5.8978022737608336e-31
+2.8863958944961887e-30
+1.4332761498513354e-30
+-4.0181670387700636e-31
+-7.4779321657448448e-31
+-2.6741073015092293e-31
+1.5501971298209362e-31
+1.8492087036995074e-31
+4.1228996376683331e-32
+-4.9903695798994509e-32
+-4.3604178667693260e-32
+-3.6150595278928985e-33
+1.4587613289208984e-32
+9.7398335443967065e-33
+-6.9889798256680869e-34
+-3.9951706263858803e-33
+-2.0305700926195445e-33
+5.3234699897187300e-34
+1.0390360069890411e-33
+3.8281913422935754e-34
+-2.1004545907858345e-34
+-2.5789473745644995e-34
+-6.0303856182664282e-35
+6.8309014825627331e-35
+6.1053597219258643e-35
+5.7721095342129067e-36
+-2.0092382224887601e-35
+-1.3702396126480756e-35
+8.0157444404770919e-37
+5.5280325983447134e-36
+2.8749609632573550e-36
+-7.0307698557660890e-37
+-1.4432773696108732e-36
+-5.4744239803219739e-37
+2.8427773443643540e-37
+3.5955692903753376e-37
+8.7975721855308448e-38
+-9.3444046877087238e-38
+-8.5456557001699818e-38
+-9.0660212239220398e-39
+2.7662758969684063e-38
+1.9268851691275873e-38
+-8.7551121030497867e-40
+-7.6464660594409953e-39
+-4.0680201665035630e-39
+9.2530868988589896e-40
+2.0041848411569329e-39
+7.8205241023363861e-40
+-3.8427741888525429e-40
+-5.0114323166985818e-40
+-1.2804154387872173e-40
+1.2774496976231966e-40
+1.1957317146953837e-40
+1.4056519802443147e-41
+-3.8068918855471234e-41
+-2.7085237791911799e-41
+8.8174999603585463e-43
+1.0573137899252490e-41
+5.7527997690926510e-42
+-1.2129873113570298e-42
+-2.7822422022363747e-42
+-1.1161195530578207e-42
+5.1877800430559423e-43
+6.9827230814656058e-43
+1.8594806264437603e-43
+-1.7451928063939494e-43
+-1.6725448001768182e-43
+-2.1566596720962323e-44
+5.2366389769822020e-44
+3.8056808647690629e-44
+-7.5483993382171463e-46
+-1.4614931466964275e-44
+-8.1306921895394231e-45
+1.5830056006349405e-45
+3.8611843885710660e-45
+1.5914098013204296e-45
+-6.9938327322654282e-46
+-9.7265329304362885e-46
+-2.6950270232436038e-46
+2.3825172220258877e-46
+2.3387203602515873e-46
+3.2802843979249805e-47
+-7.2000715455498081e-47
+-5.3451273262887043e-47
+3.8820296521158790e-49
+2.0194729975889849e-47
+1.1485170115840413e-47
+-2.0553049102825594e-48
+-5.3568923843339589e-48
+-2.2670813226087977e-48
+9.4146338514100923e-49
+1.3544461911377394e-48
+3.8987774444159032e-49
+-3.2501933785173430e-49
+-3.2691751286220036e-49
+-4.9530420965937348e-50
+9.8950072601416769e-50
+7.5043359386365422e-50
+3.8825239115931504e-52
+-2.7894933174489799e-50
+-1.6214941573657507e-50
+2.6527062961579446e-51
+7.4297155030247697e-51
+3.2269008767970591e-51
+-1.2653019557143010e-51
+-1.8855382514846698e-51
+-5.6304532009239657e-52
+4.4304593281230661e-52
+4.5683414119334402e-52
+7.4322798048655253e-53
+-1.3592068349166206e-52
+-1.0531729843046225e-52
+-1.8417261838773212e-54
+3.8517213222132661e-53
+2.2880584655825616e-53
+-3.4000227593112656e-54
+-1.0301425298625466e-53
+-4.5893626738214821e-54
+1.6975943558599920e-54
+2.6240982320931322e-54
+8.1182550294775034e-55
+-6.0344363249481906e-55
+-6.3817522404428427e-55
+-1.1092384223211025e-55
+1.8661178388827077e-55
+1.4774844966730963e-55
+4.3855587064819725e-57
+-5.3164869585026759e-56
+-3.2270133191141991e-56
+4.3219328302767824e-57
+1.4278622344579630e-56
+6.5220003960683125e-57
+-2.2733258627603655e-57
+-3.6508661576119199e-57
+-1.1687739395695907e-57
+8.2121490025969047e-58
+8.9121974996239899e-58
+1.6477152891960344e-58
+-2.5607569832534484e-58
+-2.0719723533846167e-58
+-8.6532326899967259e-60
+7.3355407175311148e-59
+4.5490589159552594e-59
+-5.4391718340633989e-60
+-1.9785130865967431e-59
+-9.2616189641753310e-60
+3.0381074206761728e-60
+5.0778747446029332e-60
+1.6802975831258430e-60
+-1.1165826032500296e-60
+-1.2442108625574617e-60
+-2.4374290143100610e-61
+3.5121021333200648e-61
+2.9046037960993601e-61
+1.5608417354156861e-62
+-1.0117485920936519e-61
+-6.4096479795592394e-62
+6.7614367212149047e-63
+2.7406518636671308e-62
+1.3142630808646402e-62
+-4.0511550190561490e-63
+-7.0605619575278858e-63
+-2.4125146000193056e-63
+1.5167566698295704e-63
+1.7364718045545629e-63
+3.5922903622845997e-64
+-4.8142423160910892e-64
+-4.0703697798215618e-64
+-2.6704479888370617e-65
+1.3949019378690437e-64
+9.0270448734856124e-65
+-8.2750546294255928e-66
+-3.7951482917510537e-65
+-1.8637070071369570e-65
+5.3888643952252786e-66
+9.8144838751119146e-66
+3.4595026491216557e-66
+-2.0583088853866335e-66
+-2.4227475391379064e-66
+-5.2768313022367366e-67
+6.5953950511374777e-67
+5.7019895519052206e-67
+4.4120614579538306e-68
+-1.9223915768738831e-67
+-1.2707501446565726e-67
+9.9234945699991941e-69
+5.2536721855016223e-68
+2.6411072945553069e-68
+-7.1490143019292634e-69
+-1.3638463936952565e-68
+-4.9550279192517765e-69
+2.7902989765685379e-69
+3.3792152480064713e-69
+7.7281630674662695e-70
+-9.0302078095024258e-70
+-7.9848758060269819e-70
+-7.1109794032104794e-71
+2.6482683904498138e-70
+1.7880582087579741e-70
+-1.1575316684098834e-71
+-7.2703429257820742e-71
+-3.7403897976043553e-71
+9.4558675531054149e-72
+1.8946714903325083e-71
+7.0892086638510280e-72
+-3.7783890600163656e-72
+-4.7118425515867046e-72
+-1.1287536341072546e-72
+1.2356330461966042e-72
+1.1177915534743709e-72
+1.1249973135727525e-73
+-3.6467069931988956e-73
+-2.5148732777713688e-73
+1.2972800445537456e-74
+1.0057770295599106e-73
+5.2939345969600072e-74
+-1.2465693459829037e-74
+-2.6313117812961452e-74
+-1.0131935629202439e-74
+5.1103360872287519e-75
+6.5680235481631766e-75
+1.6445626867177549e-75
+-1.6896781396509038e-75
+-1.5642478217092273e-75
+-1.7542772239486269e-76
+5.0194282935748853e-76
+3.5356325366394051e-76
+-1.3654088474240235e-77
+-1.3909208656399063e-76
+-7.4882812553130240e-77
+1.6372315908444236e-77
+3.6532485076403620e-77
+1.4466106707524256e-77
+-6.9031397138483092e-78
+-9.1526741643355719e-78
+-2.3906613191883052e-78
+2.3090374406336316e-78
+2.1882933055678475e-78
+2.7041475659180906e-79
+-6.9058333463348515e-79
+-4.9686425409618676e-79
+1.2831310035702488e-80
+1.9228925137169484e-79
+1.0586079463363221e-79
+-2.1412773206999377e-80
+-5.0705492476168675e-80
+-2.0634752179464726e-80
+9.3123309575270491e-81
+1.2750591779432167e-80
+3.4679965848395021e-81
+-3.1532536200747122e-81
+-3.0602867147215143e-81
+-4.1290392070498218e-82
+9.4969088487416759e-82
+6.9796438740048476e-82
+-9.2023550944369733e-84
+-2.6573953823566029e-82
+-1.4956996746653053e-82
+2.7870851737810667e-83
+7.0355635492881297e-83
+2.9407179635163177e-83
+-1.2544250170519317e-83
+-1.7757557000246729e-83
+-5.0211745858766187e-84
+4.3030144413609513e-84
+4.2783481847167752e-84
+6.2550124458297542e-85
+-1.3054121634107728e-84
+-9.8006895536810270e-85
+6.7155234280327765e-88
+3.6711697279597559e-85
+2.1121228502893672e-85
+-3.6076092832524287e-86
+-9.7590858514061509e-86
+-4.1872660097997071e-86
+1.6871761518453371e-86
+2.4723317643985044e-86
+7.2570000616240040e-87
+-5.8675877275268970e-87
+-5.9792996368689479e-87
+-9.4123053739460034e-88
+1.7935152565943916e-87
+1.3756574676204677e-87
+1.6074574741321264e-89
+-5.0698769061465798e-88
+-2.9810252176604602e-88
+4.6396745897868876e-89
+1.3532742010896901e-88
+5.9573037646308278e-89
+-2.2654287526699498e-89
+-3.4411240648848473e-89
+-1.0470956486066812e-89
+7.9947432026971285e-90
+8.3538325492607862e-90
+1.4081760587104244e-90
+-2.4629144158899745e-90
+-1.9301848049803743e-90
+-4.6199988672614898e-92
+6.9989223618337290e-91
+4.2052260502492637e-91
+-5.9218011193800516e-92
+-1.8759783461860494e-91
+-8.4688630644909453e-92
+3.0363892744747317e-92
+4.7881215454557492e-92
+1.5084981800831733e-92
+-1.0884007532328252e-92
+-1.1667638295546918e-92
+-2.0962073738501711e-93
+3.3804469578925675e-93
+2.7072280708218800e-93
+9.7650442239010798e-95
+-9.6583680559630061e-94
+-5.9292284277942298e-94
+7.4895440633474221e-95
+2.5997591544737206e-94
+1.2030108534622381e-94
+-4.0617790026819537e-95
+-6.6604127939472310e-95
+-2.1700711018067770e-95
+1.4804559896481626e-95
+1.6290870342744488e-95
+3.1066977833709784e-96
+-4.6373612342582623e-96
+-3.7956844738161964e-96
+-1.8254643157144323e-97
+1.3323310939669743e-96
+8.3559769828040071e-97
+-9.3674548637709850e-98
+-3.6016491140332640e-97
+-1.7076484049533087e-97
+5.4218479094484229e-98
+9.2620557065639831e-98
+3.1175328469103231e-98
+-2.0118954720339550e-98
+-2.2738957848824106e-98
+-4.5863405087136710e-99
+6.3581847384125936e-99
+5.3198415027393036e-99
+3.1925192689305829e-100
+-1.8371808194938954e-99
+-1.1770393645058075e-99
+1.1554608964765532e-100
+4.9880558930638709e-100
+2.4222727826505762e-100
+-7.2204636345681576e-101
+-1.2876113768800112e-100
+-4.4729519085841071e-101
+2.7314585816638229e-101
+3.1729406650280565e-101
+6.7470698877358206e-102
+-8.7127059479218575e-102
+-7.4533693241766019e-102
+-5.3536922680796770e-103
+2.5323302595543221e-102
+1.6572432275591827e-102
+-1.3999965761947938e-103
+-6.9059016324702365e-103
+-3.4336302276763760e-103
+9.5911464463583532e-104
+1.7895055744778565e-103
+6.4099372469102533e-104
+-3.7045935133476265e-104
+-4.4260929389172510e-104
+-9.8947300691385479e-105
+1.1932195255043528e-104
+1.0438868853378674e-104
+8.7216421207379352e-106
+-3.4891037717330379e-105
+-2.3323151168903104e-105
+1.6563823276606848e-106
+9.5580207800383042e-106
+4.8641012142535515e-106
+-1.2704053367631383e-106
+-2.4862853540451704e-106
+-9.1752302400052492e-107
+5.0190088594123548e-107
+6.1722973523989307e-107
+1.4469718972866517e-107
+-1.6331522979470448e-107
+-1.4615195157536087e-107
+-1.3910767176407661e-108
+4.8053744613724689e-108
+3.2809344081669737e-108
+-1.8955156438935407e-109
+-1.3224289822336431e-108
+-6.8861943661625961e-109
+1.6774327037419412e-109
+3.4533386673535625e-109
+1.3119368841076254e-109
+-6.7919661329413887e-110
+-8.6048000549316115e-110
+-2.1105367372291466e-110
+2.2338935303368632e-110
+2.0455392823129634e-110
+2.1830839752846959e-111
+-6.6154138303152134e-111
+-4.6134213073296440e-111
+2.0632025330526239e-112
+1.8290713979683578e-111
+9.7429774662331689e-112
+-2.2070827317757777e-112
+-4.7950934410694425e-112
+-1.8739773895835210e-112
+9.1800000731793956e-113
+1.1992344701508411e-112
+3.0711655985984595e-113
+-3.0536209226214009e-113
+-2.8619639522231201e-113
+-3.3824164283655152e-114
+9.1033001737324785e-114
+6.4843643752431509e-114
+-2.0651347193451137e-115
+-2.5289590350212304e-114
+-1.3776868664748955e-114
+2.8924365996379776e-115
+6.6561517167658920e-115
+2.6741868032121945e-115
+-1.2391537081382270e-115
+-1.6708486415382500e-115
+-4.4593623000063281e-116
+4.1713248255625679e-116
+4.0029181600689925e-116
+5.1865810444928415e-117
+-1.2521216902188303e-116
+-9.1103145098522717e-117
+1.7435087228479789e-118
+3.4954547015913925e-117
+1.9469868829653326e-117
+-3.7735394128951611e-118
+-9.2367225696736933e-118
+-3.8125709486199338e-118
+1.6703246739732832e-118
+2.3272306347355331e-118
+6.4620882762561514e-119
+-5.6941258631658249e-119
+-5.5968903468771571e-119
+-7.8850162897359839e-120
+1.7214552977087048e-119
+1.2794582877104343e-119
+-8.4108156334835686e-122
+-4.8296195585818914e-120
+-2.7500196125805692e-120
+4.8976749371197481e-121
+1.2813869617154015e-120
+5.4307560472834779e-121
+-2.2481608059233535e-121
+-3.2405034862111561e-121
+-9.3469983344500232e-122
+7.7670969855543733e-122
+7.8230332047029276e-122
+1.1900785343497812e-122
+-2.3655993192295146e-122
+-1.7961747142401425e-122
+-1.0519996549985686e-124
+6.6706472468817550e-123
+3.8821993467579195e-123
+-6.3186652081154222e-124
+-1.7770867345746546e-123
+-7.7292015600143346e-124
+3.0210407383406631e-124
+4.5108293012820916e-124
+1.3496649404182187e-124
+-1.0586570991234266e-124
+-1.0931116655925005e-124
+-1.7851075379732830e-125
+3.2491925820562831e-125
+2.5205949606532578e-125
+4.5780634622291675e-127
+-9.2101413920043852e-126
+-5.4776604807656597e-126
+8.0948595526035932e-127
+2.4637853404663882e-126
+1.0991556669976311e-126
+-4.0525640599396461e-127
+-6.2772651178148329e-127
+-1.9457336598288972e-127
+1.4417879967914476e-127
+1.5269186115587468e-127
+2.6633435844287467e-128
+-4.4605983599297026e-128
+-3.5358519912739316e-128
+-1.0731808308159085e-129
+1.2711708530407204e-128
+7.7249014481337541e-129
+-1.0284148907623285e-129
+-3.4147735957514625e-129
+-1.5618796851249481e-129
+5.4260790887278777e-130
+8.7328475704502523e-130
+2.8008728906949728e-130
+-1.9619026617599731e-130
+-2.1322085709015701e-130
+-3.9550582028707791e-131
+6.1205111517961606e-131
+4.9581995564377316e-131
+2.1036207262095060e-132
+-1.7537947408178207e-131
+-1.0888775710146968e-131
+1.2934039111380807e-132
+4.7313341963773394e-132
+2.2177475934997656e-132
+-7.2502890678959456e-133
+-1.2145418068136370e-132
+-4.0261984337566853e-133
+2.6672614763106781e-133
+2.9765162042111763e-133
+5.8490607400146041e-134
+-8.3936398354479665e-134
+-6.9501582330471725e-134
+-3.7804418707224969e-135
+2.4187318850618574e-134
+1.5341164681761414e-134
+-1.6064995139671193e-135
+-6.5534146645237144e-135
+-3.1467895952768970e-135
+9.6661191659475077e-136
+1.6886486854205173e-135
+5.7799468103254230e-136
+-3.6228118018823484e-136
+-4.1538646693947371e-136
+-8.6183040420468302e-137
+1.1504670096580318e-136
+9.7389038728078451e-137
+6.4528234054159726e-138
+-3.3344651858496596e-137
+-2.1604046751598139e-137
+1.9641252239446448e-138
+9.0742881585365976e-138
+4.4619542380808799e-138
+-1.2855362862699261e-138
+-2.3471305871474094e-138
+-8.2873514060880329e-139
+4.9157856877830059e-139
+5.7951154856531881e-139
+1.2656777063422137e-139
+-1.5759818181656504e-139
+-1.3641813882550796e-139
+-1.0643967717396380e-140
+4.5950621522813206e-140
+3.0409972112807397e-140
+-2.3521959299462211e-141
+-1.2560757882071275e-140
+-6.3225771179628310e-141
+1.7050797098590443e-141
+3.2614139693324490e-141
+1.1868603001200711e-141
+-6.6632075831903602e-142
+-8.0823845339159308e-142
+-1.8532560628666544e-142
+2.1575991069286886e-142
+1.9102149324065842e-142
+1.7133939431117531e-143
+-6.3296487605072596e-143
+-4.2786339324429384e-143
+2.7385411294912339e-144
+1.7381079781349186e-143
+8.9533816320330452e-144
+-2.2547666904669824e-144
+-4.5304788623854899e-144
+-1.6978577601636732e-144
+9.0217411477270812e-145
+1.1268992527483629e-144
+2.7063009866990378e-145
+-2.9520528169977714e-145
+-2.6738920547362507e-145
+-2.7081349876511870e-146
+8.7153615037833710e-146
+6.0173592629418185e-146
+-3.0607109791766940e-147
+-2.4043269705630915e-146
+-1.2671051374042925e-146
+2.9717159155781319e-147
+6.2914733700773128e-147
+2.4263235473465239e-147
+-1.2200597137030150e-147
+-1.5707196996651250e-147
+-3.9422674018846840e-148
+4.0364663322836242e-148
+3.7416108314200074e-148
+4.2198192456615693e-149
+-1.1995138014453024e-148
+-8.4591010017398699e-149
+3.2067399394668328e-150
+3.3247821436565147e-149
+1.7921677081345660e-149
+-3.9019868075092691e-150
+-8.7343394366142987e-150
+-3.4638846272604685e-150
+1.6478711062984686e-150
+2.1886786370039770e-150
+5.7297964743977686e-151
+-5.5155565507183404e-151
+-5.2339251045434520e-151
+-6.5005606230462799e-152
+1.6501925582902448e-151
+1.1886754742204113e-151
+-2.9862518363547264e-153
+-4.5960484111812418e-152
+-2.5333513145573212e-152
+5.1017360024947712e-153
+1.2122039493581428e-152
+4.9404331203276617e-153
+-2.2226983262566682e-153
+-3.0488446866353967e-153
+-8.3105833771584902e-154
+7.5314249355138089e-154
+7.3190349327255716e-154
+9.9206965670135836e-155
+-2.2691802883514705e-154
+-1.6696691457753446e-154
+2.0857803949199390e-156
+6.3516538698512681e-155
+3.5796637627598676e-155
+-6.6412767995857916e-156
+-1.6838462040039741e-155
+-7.0595257949730624e-156
+3.0178765537588075e-156
+4.3279988882190072e-156
+1.2590723551250597e-156
+-1.1671327696307787e-156
+-1.3477990047817893e-156
+-2.6978074567096771e-157
+1.0154943111442793e-156
+1.4561776627748636e-156
+0.0000000000000000e+00
+2.4020925444447019e+00
+4.7971654282170562e+00
+7.1852292732969767e+00
+9.5662946943137275e+00
+1.1940372298545922e+01
+1.4307472685921534e+01
+1.6667606449017878e+01
+1.9020784173061617e+01
+2.1367016435928779e+01
+2.3706313808144746e+01
+2.6038686852884222e+01
+2.8364146125971285e+01
+3.0682702175879374e+01
+3.2994365543731256e+01
+3.5299146763299056e+01
+3.7597056361004263e+01
+3.9888104855917703e+01
+4.2172302759759560e+01
+4.4449660576899369e+01
+4.6720188804355999e+01
+4.8983897931797699e+01
+5.1240798441542061e+01
+5.3490900808556006e+01
+5.5734215500455832e+01
+5.7970752977507203e+01
+6.0200523692625062e+01
+6.2423538091373786e+01
+6.4639806611967074e+01
+6.6849339685267950e+01
+6.9052147734788804e+01
+7.1248241176691423e+01
+7.3437630419786871e+01
+7.5620325865535605e+01
+7.7796337908047434e+01
+7.9965676934081529e+01
+8.2128353323046326e+01
+8.4284377446999770e+01
+8.6433759670649010e+01
+8.8576510351350606e+01
+9.0712639839110508e+01
+9.2842158476583919e+01
+9.4965076599075488e+01
+9.7081404534539175e+01
+9.9191152603578274e+01
+1.0129433111944547e+02
+1.0339095038804278e+02
+1.0548102070792157e+02
+1.0756455237028251e+02
+1.0964155565897576e+02
+1.1171204085050064e+02
+1.1377601821400602e+02
+1.1583349801128998e+02
+1.1788449049679998e+02
+1.1992900591763285e+02
+1.2196705451353480e+02
+1.2399864651690136e+02
+1.2602379215277733e+02
+1.2804250163885703e+02
+1.3005478518548401e+02
+1.3206065299565120e+02
+1.3406011526500086e+02
+1.3605318218182472e+02
+1.3803986392706366e+02
+1.4002017067430805e+02
+1.4199411258979760e+02
+1.4396169983242135e+02
+1.4592294255371766e+02
+1.4787785089787431e+02
+1.4982643500172838e+02
+1.5176870499476630e+02
+1.5370467099912389e+02
+1.5563434312958628e+02
+1.5755773149358802e+02
+1.5947484619121289e+02
+1.6138569731519414e+02
+1.6329029495091427e+02
+1.6518864917640525e+02
+1.6708077006234828e+02
+1.6896666767207401e+02
+1.7084635206156241e+02
+1.7271983327944270e+02
+1.7458712136699364e+02
+1.7644822635814319e+02
+1.7830315827946876e+02
+1.8015192715019697e+02
+1.8199454298220397e+02
+1.8383101578001515e+02
+1.8566135554080532e+02
+1.8748557225439848e+02
+1.8930367590326821e+02
+1.9111567646253735e+02
+1.9292158389997797e+02
+1.9472140817601164e+02
+1.9651515924370929e+02
+1.9830284704879105e+02
+2.0008448152962652e+02
+2.0186007261723475e+02
+2.0362963023528388e+02
+2.0539316430009160e+02
+2.0715068472062484e+02
+2.0890220139849998e+02
+2.1064772422798274e+02
+2.1238726309598803e+02
+2.1412082788208039e+02
+2.1584842845847351e+02
+2.1757007469003040e+02
+2.1928577643426357e+02
+2.2099554354133485e+02
+2.2269938585405529e+02
+2.2439731320788547e+02
+2.2608933543093519e+02
+2.2777546234396368e+02
+2.2945570376037944e+02
+2.3113006948624036e+02
+2.3279856932025373e+02
+2.3446121305377622e+02
+2.3611801047081363e+02
+2.3776897134802138e+02
+2.3941410545470410e+02
+2.4105342255281573e+02
+2.4268693239695978e+02
+2.4431464473438885e+02
+2.4593656930500504e+02
+2.4755271584135963e+02
+2.4916309406865358e+02
+2.5076771370473691e+02
+2.5236658446010907e+02
+2.5395971603791889e+02
+2.5554711813396455e+02
+2.5712880043669361e+02
+2.5870477262720283e+02
+2.6027504437923858e+02
+2.6183962535919630e+02
+2.6339852522612097e+02
+2.6495175363170682e+02
+2.6649932022029765e+02
+2.6804123462888623e+02
+2.6957750648711493e+02
+2.7110814541727552e+02
+2.7263316103430896e+02
+2.7415256294580570e+02
+2.7566636075200535e+02
+2.7717456404579718e+02
+2.7867718241271939e+02
+2.8017422543096001e+02
+2.8166570267135603e+02
+2.8315162369739397e+02
+2.8463199806520970e+02
+2.8610683532358837e+02
+2.8757614501396455e+02
+2.8903993667042209e+02
+2.9049821981969433e+02
+2.9195100398116381e+02
+2.9339829866686244e+02
+2.9484011338147155e+02
+2.9627645762232186e+02
+2.9770734087939337e+02
+2.9913277263531529e+02
+3.0055276236536645e+02
+3.0196731953747491e+02
+3.0337645361221797e+02
+3.0478017404282247e+02
+3.0617849027516456e+02
+3.0757141174776962e+02
+3.0895894789181244e+02
+3.1034110813111732e+02
+3.1171790188215766e+02
+3.1308933855405627e+02
+3.1445542754858559e+02
+3.1581617826016702e+02
+3.1717160007587154e+02
+3.1852170237541930e+02
+3.1986649453118008e+02
+3.2120598590817281e+02
+3.2254018586406573e+02
+3.2386910374917659e+02
+3.2519274890647245e+02
+3.2651113067156962e+02
+3.2782425837273382e+02
+3.2913214133088024e+02
+3.3043478885957325e+02
+3.3173221026502659e+02
+3.3302441484610330e+02
+3.3431141189431622e+02
+3.3559321069382685e+02
+3.3686982052144640e+02
+3.3814125064663557e+02
+3.3940751033150423e+02
+3.4066860883081159e+02
+3.4192455539196601e+02
+3.4317535925502591e+02
+3.4442102965269822e+02
+3.4566157581033968e+02
+3.4689700694595626e+02
+3.4812733227020340e+02
+3.4935256098638581e+02
+3.5057270229045741e+02
+3.5178776537102158e+02
+3.5299775940933137e+02
+3.5420269357928851e+02
+3.5540257704744465e+02
+3.5659741897300063e+02
+3.5778722850780656e+02
+3.5897201479636192e+02
+3.6015178697581553e+02
+3.6132655417596584e+02
+3.6249632551925998e+02
+3.6366111012079534e+02
+3.6482091708831791e+02
+3.6597575552222344e+02
+3.6712563451555678e+02
+3.6827056315401228e+02
+3.6941055051593372e+02
+3.7054560567231391e+02
+3.7167573768679540e+02
+3.7280095561566992e+02
+3.7392126850787849e+02
+3.7503668540501138e+02
+3.7614721534130865e+02
+3.7725286734365937e+02
+3.7835365043160192e+02
+3.7944957361732418e+02
+3.8054064590566333e+02
+3.8162687629410590e+02
+3.8270827377278772e+02
+3.8378484732449408e+02
+3.8485660592465956e+02
+3.8592355854136821e+02
+3.8698571413535308e+02
+3.8804308165999709e+02
+3.8909567006133210e+02
+3.9014348827803934e+02
+3.9118654524144972e+02
+3.9222484987554310e+02
+3.9325841109694898e+02
+3.9428723781494614e+02
+3.9531133893146261e+02
+3.9633072334107595e+02
+3.9734539993101276e+02
+3.9835537758114936e+02
+3.9936066516401127e+02
+4.0036127154477327e+02
+4.0135720558125951e+02
+4.0234847612394367e+02
+4.0333509201594853e+02
+4.0431706209304662e+02
+4.0529439518365922e+02
+4.0626710010885756e+02
+4.0723518568236176e+02
+4.0819866071054162e+02
+4.0915753399241612e+02
+4.1011181431965355e+02
+4.1106151047657175e+02
+4.1200663124013778e+02
+4.1294718537996795e+02
+4.1388318165832811e+02
+4.1481462883013330e+02
+4.1574153564294824e+02
+4.1666391083698647e+02
+4.1758176314511138e+02
+4.1849510129283533e+02
+4.1940393399832033e+02
+4.2030826997237762e+02
+4.2120811791846768e+02
+4.2210348653270051e+02
+4.2299438450383542e+02
+4.2388082051328092e+02
+4.2476280323509530e+02
+4.2564034133598551e+02
+4.2651344347530841e+02
+4.2738211830507009e+02
+4.2824637446992602e+02
+4.2910622060718066e+02
+4.2996166534678844e+02
+4.3081271731135251e+02
+4.3165938511612592e+02
+4.3250167736901062e+02
+4.3333960267055824e+02
+4.3417316961396961e+02
+4.3500238678509487e+02
+4.3582726276243363e+02
+4.3664780611713485e+02
+4.3746402541299670e+02
+4.3827592920646674e+02
+4.3908352604664202e+02
+4.3988682447526884e+02
+4.4068583302674290e+02
+4.4148056022810914e+02
+4.4227101459906197e+02
+4.4305720465194509e+02
+4.4383913889175159e+02
+4.4461682581612376e+02
+4.4539027391535365e+02
+4.4615949167238205e+02
+4.4692448756279964e+02
+4.4768527005484617e+02
+4.4844184760941096e+02
+4.4919422868003227e+02
+4.4994242171289812e+02
+4.5068643514684584e+02
+4.5142627741336179e+02
+4.5216195693658210e+02
+4.5289348213329185e+02
+4.5362086141292605e+02
+4.5434410317756812e+02
+4.5506321582195187e+02
+4.5577820773345974e+02
+4.5648908729212394e+02
+4.5719586287062566e+02
+4.5789854283429588e+02
+4.5859713554111448e+02
+4.5929164934171092e+02
+4.5998209257936418e+02
+4.6066847359000224e+02
+4.6135080070220255e+02
+4.6202908223719209e+02
+4.6270332650884700e+02
+4.6337354182369290e+02
+4.6403973648090465e+02
+4.6470191877230650e+02
+4.6536009698237200e+02
+4.6601427938822422e+02
+4.6666447425963520e+02
+4.6731068985902698e+02
+4.6795293444147029e+02
+4.6859121625468561e+02
+4.6922554353904269e+02
+4.6985592452756043e+02
+4.7048236744590736e+02
+4.7110488051240122e+02
+4.7172347193800925e+02
+4.7233814992634768e+02
+4.7294892267368249e+02
+4.7355579836892878e+02
+4.7415878519365117e+02
+4.7475789132206336e+02
+4.7535312492102872e+02
+4.7594449415005988e+02
+4.7653200716131846e+02
+4.7711567209961612e+02
+4.7769549710241324e+02
+4.7827149029981996e+02
+4.7884365981459536e+02
+4.7941201376214838e+02
+4.7997656025053703e+02
+4.8053730738046846e+02
+4.8109426324529966e+02
+4.8164743593103663e+02
+4.8219683351633478e+02
+4.8274246407249888e+02
+4.8328433566348315e+02
+4.8382245634589111e+02
+4.8435683416897552e+02
+4.8488747717463855e+02
+4.8541439339743192e+02
+4.8593759086455628e+02
+4.8645707759586202e+02
+4.8697286160384874e+02
+4.8748495089366531e+02
+4.8799335346311011e+02
+4.8849807730263080e+02
+4.8899913039532430e+02
+4.8949652071693714e+02
+4.8999025623586488e+02
+4.9048034491315246e+02
+4.9096679470249461e+02
+4.9144961355023491e+02
+4.9192880939536627e+02
+4.9240439016953167e+02
+4.9287636379702241e+02
+4.9334473819477989e+02
+4.9380952127239448e+02
+4.9427072093210649e+02
+4.9472834506880457e+02
+4.9518240157002754e+02
+4.9563289831596336e+02
+4.9607984317944943e+02
+4.9652324402597191e+02
+4.9696310871366722e+02
+4.9739944509332059e+02
+4.9783226100836657e+02
+4.9826156429488918e+02
+4.9868736278162197e+02
+4.9910966428994766e+02
+4.9952847663389826e+02
+4.9994380762015504e+02
+5.0035566504804916e+02
+5.0076405670956041e+02
+5.0116899038931837e+02
+5.0157047386460198e+02
+5.0196851490533936e+02
+5.0236312127410804e+02
+5.0275430072613489e+02
+5.0314206100929630e+02
+5.0352640986411774e+02
+5.0390735502377413e+02
+5.0428490421408981e+02
+5.0465906515353856e+02
+5.0502984555324315e+02
+5.0539725311697600e+02
+5.0576129554115892e+02
+5.0612198051486286e+02
+5.0647931571980820e+02
+5.0683330883036484e+02
+5.0718396751355175e+02
+5.0753129942903746e+02
+5.0787531222913975e+02
+5.0821601355882581e+02
+5.0855341105571210e+02
+5.0888751235006453e+02
+5.0921832506479819e+02
+5.0954585681547786e+02
+5.0987011521031735e+02
+5.1019110785017983e+02
+5.1050884232857811e+02
+5.1082332623167417e+02
+5.1113456713827907e+02
+5.1144257261985371e+02
+5.1174735024050801e+02
+5.1204890755700137e+02
+5.1234725211874252e+02
+5.1264239146778971e+02
+5.1293433313885009e+02
+5.1322308465928052e+02
+5.1350865354908717e+02
+5.1379104732092560e+02
+5.1407027348010058e+02
+5.1434633952456613e+02
+5.1461925294492619e+02
+5.1488902122443312e+02
+5.1515565183898957e+02
+5.1541915225714706e+02
+5.1567952994010648e+02
+5.1593679234171793e+02
+5.1619094690848135e+02
+5.1644200107954566e+02
+5.1668996228670915e+02
+5.1693483795441955e+02
+5.1717663549977374e+02
+5.1741536233251838e+02
+5.1765102585504917e+02
+5.1788363346241101e+02
+5.1811319254229863e+02
+5.1833971047505565e+02
+5.1856319463367538e+02
+5.1878365238380013e+02
+5.1900109108372192e+02
+5.1921551808438187e+02
+5.1942694072937059e+02
+5.1963536635492801e+02
+5.1984080228994321e+02
+5.2004325585595495e+02
+5.2024273436715146e+02
+5.2043924513036961e+02
+5.2063279544509624e+02
+5.2082339260346737e+02
+5.2101104389026852e+02
+5.2119575658293422e+02
+5.2137753795154856e+02
+5.2155639525884510e+02
+5.2173233576020641e+02
+5.2190536670366487e+02
+5.2207549532990163e+02
+5.2224272887224777e+02
+5.2240707455668337e+02
+5.2256853960183810e+02
+5.2272713121899073e+02
+5.2288285661206953e+02
+5.2303572297765209e+02
+5.2318573750496512e+02
+5.2333290737588538e+02
+5.2347723976493808e+02
+5.2361874183929831e+02
+5.2375742075879054e+02
+5.2389328367588848e+02
+5.2402633773571506e+02
+5.2415659007604256e+02
+5.2428404782729308e+02
+5.2440871811253726e+02
+5.2453060804749612e+02
+5.2464972474053889e+02
+5.2476607529268517e+02
+5.2487966679760314e+02
+5.2499050634161074e+02
+5.2509860100367530e+02
+5.2520395785541325e+02
+5.2530658396109050e+02
+5.2540648637762240e+02
+5.2550367215457345e+02
+5.2559814833415771e+02
+5.2568992195123849e+02
+5.2577900003332843e+02
+5.2586538960058942e+02
+5.2594909766583294e+02
+5.2603013123451990e+02
+5.2610849730476014e+02
+5.2618420286731293e+02
+5.2625725490558727e+02
+5.2632766039564149e+02
+5.2639542630618257e+02
+5.2646055959856756e+02
+5.2652306722680282e+02
+5.2658295613754365e+02
+5.2664023327009488e+02
+5.2669490555641096e+02
+5.2674697992109543e+02
+5.2679646328140109e+02
+5.2684336254723019e+02
+5.2688768462113467e+02
+5.2692943639831503e+02
+5.2696862476662204e+02
+5.2700525660655535e+02
+5.2703933879126373e+02
+5.2707087818654577e+02
+5.2709988165084917e+02
+5.2712635603527110e+02
+5.2715030818355774e+02
+5.2717174493210518e+02
+5.2719067310995854e+02
+5.2720709953881226e+02
+5.2722103103301004e+02
+5.2723247439954514e+02
+5.2724143643806042e+02
+5.2724792394084739e+02
+5.2725194369284748e+02
+5.2725350247165136e+02
+5.2725260704749883e+02
+5.2724926418327937e+02
+5.2724348063453135e+02
+5.2723526314944297e+02
+5.2722461846885176e+02
+5.2721155332624414e+02
+5.2719607444775659e+02
+5.2717818855217399e+02
+5.2715790235093129e+02
+5.2713522254811289e+02
+5.2711015584045185e+02
+5.2708270891733139e+02
+5.2705288846078315e+02
+5.2702070114548928e+02
+5.2698615363878025e+02
+5.2694925260063644e+02
+5.2691000468368713e+02
+5.2686841653321164e+02
+5.2682449478713829e+02
+5.2677824607604430e+02
+5.2672967702315691e+02
+5.2667879424435239e+02
+5.2662560434815657e+02
+5.2657011393574430e+02
+5.2651232960094001e+02
+5.2645225793021746e+02
+5.2638990550269978e+02
+5.2632527889015932e+02
+5.2625838465701793e+02
+5.2618922936034676e+02
+5.2611781954986634e+02
+5.2604416176794643e+02
+5.2596826254960627e+02
+5.2589012842251418e+02
+5.2580976590698856e+02
+5.2572718151599622e+02
+5.2564238175515402e+02
+5.2555537312272770e+02
+5.2546616210963282e+02
+5.2537475519943382e+02
+5.2528115886834462e+02
+5.2518537958522882e+02
+5.2508742381159925e+02
+5.2498729800161743e+02
+5.2488500860209524e+02
+5.2478056205249334e+02
+5.2467396478492196e+02
+5.2456522322414014e+02
+5.2445434378755704e+02
+5.2434133288523083e+02
+5.2422619691986893e+02
+5.2410894228682810e+02
+5.2398957537411479e+02
+5.2386810256238459e+02
+5.2374453022494220e+02
+5.2361886472774199e+02
+5.2349111242938761e+02
+5.2336127968113203e+02
+5.2322937282687758e+02
+5.2309539820317593e+02
+5.2295936213922823e+02
+5.2282127095688463e+02
+5.2268113097064497e+02
+5.2253894848765822e+02
+5.2239472980772314e+02
+5.2224848122328729e+02
+5.2210020901944779e+02
+5.2194991947395124e+02
+5.2179761885719336e+02
+5.2164331343221932e+02
+5.2148700945472388e+02
+5.2132871317305069e+02
+5.2116843082819310e+02
+5.2100616865379379e+02
+5.2084193287614460e+02
+5.2067572971418679e+02
+5.2050756537951111e+02
+5.2033744607635765e+02
+5.2016537800161552e+02
+5.1999136734482352e+02
+5.1981542028816978e+02
+5.1963754300649168e+02
+5.1945774166727585e+02
+5.1927602243065849e+02
+5.1909239144942524e+02
+5.1890685486901054e+02
+5.1871941882749888e+02
+5.1853008945562374e+02
+5.1833887287676782e+02
+5.1814577520696321e+02
+5.1795080255489188e+02
+5.1775396102188461e+02
+5.1755525670192139e+02
+5.1735469568163228e+02
+5.1715228404029585e+02
+5.1694802784984074e+02
+5.1674193317484446e+02
+5.1653400607253411e+02
+5.1632425259278591e+02
+5.1611267877812577e+02
+5.1589929066372849e+02
+5.1568409427741904e+02
+5.1546709563967067e+02
+5.1524830076360672e+02
+5.1502771565499972e+02
+5.1480534631227158e+02
+5.1458119872649331e+02
+5.1435527888138540e+02
+5.1412759275331791e+02
+5.1389814631131014e+02
+5.1366694551703029e+02
+5.1343399632479679e+02
+5.1319930468157668e+02
+5.1296287652698663e+02
+5.1272471779329260e+02
+5.1248483440541008e+02
+5.1224323228090361e+02
+5.1199991732998717e+02
+5.1175489545552455e+02
+5.1150817255302820e+02
+5.1125975451066023e+02
+5.1100964720923213e+02
+5.1075785652220475e+02
+5.1050438831568812e+02
+5.1024924844844202e+02
+5.0999244277187501e+02
+5.0973397713004550e+02
+5.0947385735966094e+02
+5.0921208929007832e+02
+5.0894867874330390e+02
+5.0868363153399326e+02
+5.0841695346945124e+02
+5.0814865034963242e+02
+5.0787872796714038e+02
+5.0760719210722806e+02
+5.0733404854779781e+02
+5.0705930305940154e+02
+5.0678296140524020e+02
+5.0650502934116412e+02
+5.0622551261567332e+02
+5.0594441696991680e+02
+5.0566174813769294e+02
+5.0537751184544970e+02
+5.0509171381228424e+02
+5.0480435974994305e+02
+5.0451545536282208e+02
+5.0422500634796660e+02
+5.0393301839507103e+02
+5.0363949718647933e+02
+5.0334444839718503e+02
+5.0304787769483056e+02
+5.0274979073970786e+02
+5.0245019318475858e+02
+5.0214909067557312e+02
+5.0184648885039167e+02
+5.0154239334010344e+02
+5.0123680976824750e+02
+5.0092974375101176e+02
+5.0062120089723351e+02
+5.0031118680839973e+02
+4.9999970707864668e+02
+4.9968676729475976e+02
+4.9937237303617371e+02
+4.9905652987497297e+02
+4.9873924337589085e+02
+4.9842051909631039e+02
+4.9810036258626388e+02
+4.9777877938843289e+02
+4.9745577503814837e+02
+4.9713135506339069e+02
+4.9680552498478949e+02
+4.9647829031562372e+02
+4.9614965656182187e+02
+4.9581962922196141e+02
+4.9548821378726973e+02
+4.9515541574162313e+02
+4.9482124056154731e+02
+4.9448569371621750e+02
+4.9414878066745808e+02
+4.9381050686974305e+02
+4.9347087777019527e+02
+4.9312989880858760e+02
+4.9278757541734177e+02
+4.9244391302152894e+02
+4.9209891703886996e+02
+4.9175259287973444e+02
+4.9140494594714181e+02
+4.9105598163676063e+02
+4.9070570533690915e+02
+4.9035412242855438e+02
+4.9000123828531321e+02
+4.8964705827345165e+02
+4.8929158775188506e+02
+4.8893483207217810e+02
+4.8857679657854499e+02
+4.8821748660784925e+02
+4.8785690748960349e+02
+4.8749506454596980e+02
+4.8713196309176010e+02
+4.8676760843443486e+02
+4.8640200587410425e+02
+4.8603516070352799e+02
+4.8566707820811507e+02
+4.8529776366592358e+02
+4.8492722234766109e+02
+4.8455545951668483e+02
+4.8418248042900075e+02
+4.8380829033326472e+02
+4.8343289447078172e+02
+4.8305629807550616e+02
+4.8267850637404177e+02
+4.8229952458564145e+02
+4.8191935792220772e+02
+4.8153801158829248e+02
+4.8115549078109655e+02
+4.8077180069047063e+02
+4.8038694649891454e+02
+4.8000093338157745e+02
+4.7961376650625760e+02
+4.7922545103340332e+02
+4.7883599211611153e+02
+4.7844539490012892e+02
+4.7805366452385124e+02
+4.7766080611832405e+02
+4.7726682480724196e+02
+4.7687172570694867e+02
+4.7647551392643783e+02
+4.7607819456735194e+02
+4.7567977272398309e+02
+4.7528025348327259e+02
+4.7487964192481138e+02
+4.7447794312083943e+02
+4.7407516213624604e+02
+4.7367130402857026e+02
+4.7326637384800011e+02
+4.7286037663737307e+02
+4.7245331743217599e+02
+4.7204520126054513e+02
+4.7163603314326593e+02
+4.7122581809377346e+02
+4.7081456111815174e+02
+4.7040226721513466e+02
+4.6998894137610489e+02
+4.6957458858509483e+02
+4.6915921381878638e+02
+4.6874282204651013e+02
+4.6832541823024667e+02
+4.6790700732462579e+02
+4.6748759427692642e+02
+4.6706718402707696e+02
+4.6664578150765522e+02
+4.6622339164388825e+02
+4.6580001935365260e+02
+4.6537566954747416e+02
+4.6495034712852799e+02
+4.6452405699263863e+02
+4.6409680402827979e+02
+4.6366859311657498e+02
+4.6323942913129662e+02
+4.6280931693886669e+02
+4.6237826139835636e+02
+4.6194626736148626e+02
+4.6151333967262667e+02
+4.6107948316879657e+02
+4.6064470267966470e+02
+4.6020900302754922e+02
+4.5977238902741760e+02
+4.5933486548688620e+02
+4.5889643720622132e+02
+4.5845710897833840e+02
+4.5801688558880238e+02
+4.5757577181582718e+02
+4.5713377243027634e+02
+4.5669089219566274e+02
+4.5624713586814858e+02
+4.5580250819654549e+02
+4.5535701392231414e+02
+4.5491065777956493e+02
+4.5446344449505744e+02
+4.5401537878820056e+02
+4.5356646537105263e+02
+4.5311670894832150e+02
+4.5266611421736377e+02
+4.5221468586818605e+02
+4.5176242858344415e+02
+4.5130934703844281e+02
+4.5085544590113676e+02
+4.5040072983212951e+02
+4.4994520348467427e+02
+4.4948887150467351e+02
+4.4903173853067904e+02
+4.4857380919389215e+02
+4.4811508811816299e+02
+4.4765557991999185e+02
+4.4719528920852758e+02
+4.4673422058556912e+02
+4.4627237864556412e+02
+4.4580976797560993e+02
+4.4534639315545331e+02
+4.4488225875748992e+02
+4.4441736934676538e+02
+4.4395172948097417e+02
+4.4348534371046043e+02
+4.4301821657821756e+02
+4.4255035261988826e+02
+4.4208175636376438e+02
+4.4161243233078773e+02
+4.4114238503454897e+02
+4.4067161898128819e+02
+4.4020013866989484e+02
+4.3972794859190782e+02
+4.3925505323151532e+02
+4.3878145706555483e+02
+4.3830716456351320e+02
+4.3783218018752683e+02
+4.3735650839238116e+02
+4.3688015362551124e+02
+4.3640312032700137e+02
+4.3592541292958515e+02
+4.3544703585864545e+02
+4.3496799353221490e+02
+4.3448829036097504e+02
+4.3400793074825691e+02
+4.3352691909004096e+02
+4.3304525977495689e+02
+4.3256295718428396e+02
+4.3208001569195039e+02
+4.3159643966453410e+02
+4.3111223346126235e+02
+4.3062740143401146e+02
+4.3014194792730757e+02
+4.2965587727832553e+02
+4.2916919381689019e+02
+4.2868190186547531e+02
+4.2819400573920433e+02
+4.2770550974584961e+02
+4.2721641818583333e+02
+4.2672673535222685e+02
+4.2623646553075059e+02
+4.2574561299977478e+02
+4.2525418203031876e+02
+4.2476217688605107e+02
+4.2426960182329015e+02
+4.2377646109100311e+02
+4.2328275893080695e+02
+4.2278849957696752e+02
+4.2229368725640063e+02
+4.2179832618867096e+02
+4.2130242058599265e+02
+4.2080597465322927e+02
+4.2030899258789378e+02
+4.1981147858014839e+02
+4.1931343681280458e+02
+4.1881487146132338e+02
+4.1831578669381503e+02
+4.1781618667103919e+02
+4.1731607554640493e+02
+4.1681545746597055e+02
+4.1631433656844365e+02
+4.1581271698518151e+02
+4.1531060284019031e+02
+4.1480799825012593e+02
+4.1430490732429348e+02
+4.1380133416464713e+02
+4.1329728286579109e+02
+4.1279275751497829e+02
+4.1228776219211124e+02
+4.1178230096974187e+02
+4.1127637791307143e+02
+4.1076999707995020e+02
+4.1026316252087850e+02
+4.0975587827900534e+02
+4.0924814839012924e+02
+4.0873997688269844e+02
+4.0823136777781014e+02
+4.0772232508921093e+02
+4.0721285282329694e+02
+4.0670295497911360e+02
+4.0619263554835527e+02
+4.0568189851536641e+02
+4.0517074785714033e+02
+4.0465918754331972e+02
+4.0414722153619687e+02
+4.0363485379071312e+02
+4.0312208825445936e+02
+4.0260892886767567e+02
+4.0209537956325158e+02
+4.0158144426672624e+02
+4.0106712689628762e+02
+4.0055243136277335e+02
+4.0003736156967034e+02
+3.9952192141311508e+02
+3.9900611478189302e+02
+3.9848994555743917e+02
+3.9797341761383791e+02
+3.9745653481782279e+02
+3.9693930102877709e+02
+3.9642172009873309e+02
+3.9590379587237254e+02
+3.9538553218702657e+02
+3.9486693287267536e+02
+3.9434800175194931e+02
+3.9382874264012690e+02
+3.9330915934513706e+02
+3.9278925566755754e+02
+3.9226903540061556e+02
+3.9174850233018748e+02
+3.9122766023479949e+02
+3.9070651288562664e+02
+3.9018506404649378e+02
+3.8966331747387454e+02
+3.8914127691689248e+02
+3.8861894611732021e+02
+3.8809632880957969e+02
+3.8757342872074230e+02
+3.8705024957052888e+02
+3.8652679507130927e+02
+3.8600306892810312e+02
+3.8547907483857892e+02
+3.8495481649305515e+02
+3.8443029757449892e+02
+3.8390552175852747e+02
+3.8338049271340657e+02
+3.8285521410005191e+02
+3.8232968957202843e+02
+3.8180392277555035e+02
+3.8127791734948113e+02
+3.8075167692533381e+02
+3.8022520512727056e+02
+3.7969850557210316e+02
+3.7917158186929242e+02
+3.7864443762094896e+02
+3.7811707642183211e+02
+3.7758950185935129e+02
+3.7706171751356442e+02
+3.7653372695717979e+02
+3.7600553375555398e+02
+3.7547714146669387e+02
+3.7494855364125488e+02
+3.7441977382254237e+02
+3.7389080554651082e+02
+3.7336165234176411e+02
+3.7283231772955537e+02
+3.7230280522378700e+02
+3.7177311833101118e+02
+3.7124326055042911e+02
+3.7071323537389128e+02
+3.7018304628589777e+02
+3.6965269676359770e+02
+3.6912219027678992e+02
+3.6859153028792235e+02
+3.6806072025209221e+02
+3.6752976361704651e+02
+3.6699866382318123e+02
+3.6646742430354163e+02
+3.6593604848382273e+02
+3.6540453978236832e+02
+3.6487290161017211e+02
+3.6434113737087682e+02
+3.6380925046077471e+02
+3.6327724426880729e+02
+3.6274512217656530e+02
+3.6221288755828908e+02
+3.6168054378086811e+02
+3.6114809420384148e+02
+3.6061554217939732e+02
+3.6008289105237327e+02
+3.5955014416025648e+02
+3.5901730483318300e+02
+3.5848437639393876e+02
+3.5795136215795867e+02
+3.5741826543332718e+02
+3.5688508952077791e+02
+3.5635183771369407e+02
+3.5581851329810809e+02
+3.5528511955270170e+02
+3.5475165974880611e+02
+3.5421813715040173e+02
+3.5368455501411847e+02
+3.5315091658923552e+02
+3.5261722511768141e+02
+3.5208348383403404e+02
+3.5154969596552058e+02
+3.5101586473201775e+02
+3.5048199334605152e+02
+3.4994808501279709e+02
+3.4941414293007921e+02
+3.4888017028837174e+02
+3.4834617027079821e+02
+3.4781214605313113e+02
+3.4727810080379288e+02
+3.4674403768385446e+02
+3.4620995984703688e+02
+3.4567587043971025e+02
+3.4514177260089400e+02
+3.4460766946225692e+02
+3.4407356414811716e+02
+3.4353945977544237e+02
+3.4300535945384928e+02
+3.4247126628560409e+02
+3.4193718336562250e+02
+3.4140311378146936e+02
+3.4086906061335890e+02
+3.4033502693415477e+02
+3.3980101580937009e+02
+3.3926703029716691e+02
+3.3873307344835712e+02
+3.3819914830640181e+02
+3.3766525790741105e+02
+3.3713140528014497e+02
+3.3659759344601230e+02
+3.3606382541907169e+02
+3.3553010420603084e+02
+3.3499643280624696e+02
+3.3446281421172642e+02
+3.3392925140712515e+02
+3.3339574736974839e+02
+3.3286230506955047e+02
+3.3232892746913552e+02
+3.3179561752375668e+02
+3.3126237818131654e+02
+3.3072921238236700e+02
+3.3019612306010953e+02
+3.2966311314039461e+02
+3.2913018554172231e+02
+3.2859734317524192e+02
+3.2806458894475219e+02
+3.2753192574670129e+02
+3.2699935647018646e+02
+3.2646688399695444e+02
+3.2593451120140151e+02
+3.2540224095057295e+02
+3.2487007610416367e+02
+3.2433801951451778e+02
+3.2380607402662895e+02
+3.2327424247813980e+02
+3.2274252769934270e+02
+3.2221093251317910e+02
+3.2167945973524013e+02
+3.2114811217376581e+02
+3.2061689262964597e+02
+3.2008580389641946e+02
+3.1955484876027458e+02
+3.1902403000004909e+02
+3.1849335038722990e+02
+3.1796281268595351e+02
+3.1743241965300564e+02
+3.1690217403782134e+02
+3.1637207858248502e+02
+3.1584213602173043e+02
+3.1531234908294084e+02
+3.1478272048614861e+02
+3.1425325294403552e+02
+3.1372394916193298e+02
+3.1319481183782131e+02
+3.1266584366233047e+02
+3.1213704731873975e+02
+3.1160842548297768e+02
+3.1107998082362218e+02
+3.1055171600190067e+02
+3.1002363367168965e+02
+3.0949573647951519e+02
+3.0896802706455264e+02
+3.0844050805862662e+02
+3.0791318208621129e+02
+3.0738605176443002e+02
+3.0685911970305557e+02
+3.0633238850450994e+02
+3.0580586076386470e+02
+3.0527953906884062e+02
+3.0475342599980786e+02
+3.0422752412978588e+02
+3.0370183602444365e+02
+3.0317636424209923e+02
+3.0265111133372034e+02
+3.0212607984292384e+02
+3.0160127230597590e+02
+3.0107669125179228e+02
+3.0055233920193785e+02
+3.0002821867062698e+02
+2.9950433216472328e+02
+2.9898068218373982e+02
+2.9845727121983896e+02
+2.9793410175783242e+02
+2.9741117627518128e+02
+2.9688849724199594e+02
+2.9636606712103622e+02
+2.9584388836771120e+02
+2.9532196343007945e+02
+2.9480029474884867e+02
+2.9427888475737609e+02
+2.9375773588166834e+02
+2.9323685054038117e+02
+2.9271623114481991e+02
+2.9219588009893909e+02
+2.9167579979934266e+02
+2.9115599263528389e+02
+2.9063646098866548e+02
+2.9011720723403931e+02
+2.8959823373860689e+02
+2.8907954286221883e+02
+2.8856113695737514e+02
+2.8804301836922519e+02
+2.8752518943556782e+02
+2.8700765248685104e+02
+2.8649040984617250e+02
+2.8597346382927878e+02
+2.8545681674456608e+02
+2.8494047089307986e+02
+2.8442442856851517e+02
+2.8390869205721600e+02
+2.8339326363817605e+02
+2.8287814558303813e+02
+2.8236334015609458e+02
+2.8184884961428702e+02
+2.8133467620720631e+02
+2.8082082217709279e+02
+2.8030728975883619e+02
+2.7979408117997554e+02
+2.7928119866069915e+02
+2.7876864441384470e+02
+2.7825642064489932e+02
+2.7774452955199945e+02
+2.7723297332593086e+02
+2.7672175415012862e+02
+2.7621087420067727e+02
+2.7570033564631052e+02
+2.7519014064841167e+02
+2.7468029136101319e+02
+2.7417078993079696e+02
+2.7366163849709420e+02
+2.7315283919188556e+02
+2.7264439413980097e+02
+2.7213630545811964e+02
+2.7162857525677020e+02
+2.7112120563833071e+02
+2.7061419869802847e+02
+2.7010755652374007e+02
+2.6960128119599176e+02
+2.6909537478795880e+02
+2.6858983936546599e+02
+2.6808467698698740e+02
+2.6757988970364647e+02
+2.6707547955921598e+02
+2.6657144859011805e+02
+2.6606779882542435e+02
+2.6556453228685552e+02
+2.6506165098878182e+02
+2.6455915693822288e+02
+2.6405705213484754e+02
+2.6355533857097407e+02
+2.6305401823157007e+02
+2.6255309309425246e+02
+2.6205256512928770e+02
+2.6155243629959119e+02
+2.6105270856072821e+02
+2.6055338386091296e+02
+2.6005446414100925e+02
+2.5955595133453005e+02
+2.5905784736763786e+02
+2.5856015415914436e+02
+2.5806287362051080e+02
+2.5756600765584750e+02
+2.5706955816191436e+02
+2.5657352702812057e+02
+2.5607791613652461e+02
+2.5558272736183437e+02
+2.5508796257140708e+02
+2.5459362362524931e+02
+2.5409971237601704e+02
+2.5360623066901545e+02
+2.5311318034219929e+02
+2.5262056322617238e+02
+2.5212838114418821e+02
+2.5163663591214942e+02
+2.5114532933860801e+02
+2.5065446322476538e+02
+2.5016403936447230e+02
+2.4967405954422884e+02
+2.4918452554318444e+02
+2.4869543913313791e+02
+2.4820680207853732e+02
+2.4771861613648031e+02
+2.4723088305671354e+02
+2.4674360458163335e+02
+2.4625678244628523e+02
+2.4577041837836410e+02
+2.4528451409821420e+02
+2.4479907131882916e+02
+2.4431409174585187e+02
+2.4382957707757470e+02
+2.4334552900493927e+02
+2.4286194921153660e+02
+2.4237883937360706e+02
+2.4189620116004028e+02
+2.4141403623237539e+02
+2.4093234624480084e+02
+2.4045113284415433e+02
+2.3997039766992305e+02
+2.3949014235424335e+02
+2.3901036852190111e+02
+2.3853107779033152e+02
+2.3805227176961904e+02
+2.3757395206249757e+02
+2.3709612026435036e+02
+2.3661877796320999e+02
+2.3614192673975825e+02
+2.3566556816732663e+02
+2.3518970381189555e+02
+2.3471433523209512e+02
+2.3423946397920466e+02
+2.3376509159715280e+02
+2.3329121962251759e+02
+2.3281784958452641e+02
+2.3234498300505604e+02
+2.3187262139863245e+02
+2.3140076627243124e+02
+2.3092941912627708e+02
+2.3045858145264410e+02
+2.2998825473665585e+02
+2.2951844045608516e+02
+2.2904914008135421e+02
+2.2858035507553453e+02
+2.2811208689434707e+02
+2.2764433698616205e+02
+2.2717710679199897e+02
+2.2671039774552690e+02
+2.2624421127306414e+02
+2.2577854879357830e+02
+2.2531341171868635e+02
+2.2484880145265464e+02
+2.2438471939239898e+02
+2.2392116692748436e+02
+2.2345814544012524e+02
+2.2299565630518526e+02
+2.2253370089017764e+02
+2.2207228055526474e+02
+2.2161139665325851e+02
+2.2115105052961999e+02
+2.2069124352245976e+02
+2.2023197696253766e+02
+2.1977325217326290e+02
+2.1931507047069402e+02
+2.1885743316353904e+02
+2.1840034155315522e+02
+2.1794379693354907e+02
+2.1748780059137661e+02
+2.1703235380594322e+02
+2.1657745784920348e+02
+2.1612311398576159e+02
+2.1566932347287070e+02
+2.1521608756043372e+02
+2.1476340749100260e+02
+2.1431128449977891e+02
+2.1385971981461333e+02
+2.1340871465600600e+02
+2.1295827023710643e+02
+2.1250838776371350e+02
+2.1205906843427533e+02
+2.1161031343988950e+02
+2.1116212396430288e+02
+2.1071450118391164e+02
+2.1026744626776153e+02
+2.0982096037754738e+02
+2.0937504466761351e+02
+2.0892970028495355e+02
+2.0848492836921062e+02
+2.0804073005267688e+02
+2.0759710646029419e+02
+2.0715405870965350e+02
+2.0671158791099521e+02
+2.0626969516720916e+02
+2.0582838157383438e+02
+2.0538764821905937e+02
+2.0494749618372191e+02
+2.0450792654130916e+02
+2.0406894035795767e+02
+2.0363053869245326e+02
+2.0319272259623111e+02
+2.0275549311337585e+02
+2.0231885128062137e+02
+2.0188279812735095e+02
+2.0144733467559720e+02
+2.0101246194004210e+02
+2.0057818092801688e+02
+2.0014449263950237e+02
+1.9971139806712844e+02
+1.9927889819617459e+02
+1.9884699400456947e+02
+1.9841568646289116e+02
+1.9798497653436709e+02
+1.9755486517487407e+02
+1.9712535333293823e+02
+1.9669644194973498e+02
+1.9626813195908923e+02
+1.9584042428747512e+02
+1.9541331985401621e+02
+1.9498681957048538e+02
+1.9456092434130485e+02
+1.9413563506354626e+02
+1.9371095262693044e+02
+1.9328687791382782e+02
+1.9286341179925796e+02
+1.9244055515088985e+02
+1.9201830882904184e+02
+1.9159667368668164e+02
+1.9117565056942635e+02
+1.9075524031554224e+02
+1.9033544375594519e+02
+1.8991626171420023e+02
+1.8949769500652178e+02
+1.8907974444177376e+02
+1.8866241082146919e+02
+1.8824569493977069e+02
+1.8782959758349003e+02
+1.8741411953208848e+02
+1.8699926155767656e+02
+1.8658502442501421e+02
+1.8617140889151065e+02
+1.8575841570722451e+02
+1.8534604561486378e+02
+1.8493429934978576e+02
+1.8452317763999710e+02
+1.8411268120615381e+02
+1.8370281076156130e+02
+1.8329356701217429e+02
+1.8288495065659683e+02
+1.8247696238608236e+02
+1.8206960288453362e+02
+1.8166287282850277e+02
+1.8125677288719126e+02
+1.8085130372244996e+02
+1.8044646598877898e+02
+1.8004226033332793e+02
+1.7963868739589557e+02
+1.7923574780893028e+02
+1.7883344219752956e+02
+1.7843177117944037e+02
+1.7803073536505900e+02
+1.7763033535743105e+02
+1.7723057175225159e+02
+1.7683144513786482e+02
+1.7643295609526459e+02
+1.7603510519809382e+02
+1.7563789301264498e+02
+1.7524132009785978e+02
+1.7484538700532929e+02
+1.7445009427929404e+02
+1.7405544245664376e+02
+1.7366143206691760e+02
+1.7326806363230412e+02
+1.7287533766764108e+02
+1.7248325468041577e+02
+1.7209181517076473e+02
+1.7170101963147383e+02
+1.7131086854797832e+02
+1.7092136239836287e+02
+1.7053250165336135e+02
+1.7014428677635718e+02
+1.6975671822338296e+02
+1.6936979644312066e+02
+1.6898352187690173e+02
+1.6859789495870686e+02
+1.6821291611516605e+02
+1.6782858576555881e+02
+1.6744490432181388e+02
+1.6706187218850937e+02
+1.6667948976287278e+02
+1.6629775743478086e+02
+1.6591667558675985e+02
+1.6553624459398529e+02
+1.6515646482428201e+02
+1.6477733663812421e+02
+1.6439886038863557e+02
+1.6402103642158895e+02
+1.6364386507540664e+02
+1.6326734668116029e+02
+1.6289148156257087e+02
+1.6251627003600873e+02
+1.6214171241049351e+02
+1.6176780898769431e+02
+1.6139456006192947e+02
+1.6102196592016676e+02
+1.6065002684202329e+02
+1.6027874309976548e+02
+1.5990811495830908e+02
+1.5953814267521929e+02
+1.5916882650071062e+02
+1.5880016667764687e+02
+1.5843216344154126e+02
+1.5806481702055635e+02
+1.5769812763550402e+02
+1.5733209549984554e+02
+1.5696672081969149e+02
+1.5660200379380188e+02
+1.5623794461358594e+02
+1.5587454346310238e+02
+1.5551180051905922e+02
+1.5514971595081374e+02
+1.5478828992037276e+02
+1.5442752258239227e+02
+1.5406741408417773e+02
+1.5370796456568385e+02
+1.5334917415951477e+02
+1.5299104299092397e+02
+1.5263357117781425e+02
+1.5227675883073780e+02
+1.5192060605289615e+02
+1.5156511294014012e+02
+1.5121027958097000e+02
+1.5085610605653531e+02
+1.5050259244063500e+02
+1.5014973879971734e+02
+1.4979754519287999e+02
+1.4944601167186988e+02
+1.4909513828108336e+02
+1.4874492505756606e+02
+1.4839537203101315e+02
+1.4804647922376893e+02
+1.4769824665082712e+02
+1.4735067431983083e+02
+1.4700376223107253e+02
+1.4665751037749394e+02
+1.4631191874468624e+02
+1.4596698731088992e+02
+1.4562271604699481e+02
+1.4527910491654012e+02
+1.4493615387571441e+02
+1.4459386287335556e+02
+1.4425223185095078e+02
+1.4391126074263673e+02
+1.4357094947519934e+02
+1.4323129796807387e+02
+1.4289230613334504e+02
+1.4255397387574686e+02
+1.4221630109266260e+02
+1.4187928767412501e+02
+1.4154293350281620e+02
+1.4120723845406752e+02
+1.4087220239585972e+02
+1.4053782518882295e+02
+1.4020410668623666e+02
+1.3987104673402968e+02
+1.3953864517078011e+02
+1.3920690182771554e+02
+1.3887581652871285e+02
+1.3854538909029819e+02
+1.3821561932164713e+02
+1.3788650702458466e+02
+1.3755805199358502e+02
+1.3723025401577183e+02
+1.3690311287091802e+02
+1.3657662833144599e+02
+1.3625080016242742e+02
+1.3592562812158329e+02
+1.3560111195928397e+02
+1.3527725141854924e+02
+1.3495404623504814e+02
+1.3463149613709916e+02
+1.3430960084567002e+02
+1.3398836007437791e+02
+1.3366777352948930e+02
+1.3334784090991997e+02
+1.3302856190723523e+02
+1.3270993620564951e+02
+1.3239196348202674e+02
+1.3207464340588018e+02
+1.3175797563937240e+02
+1.3144195983731538e+02
+1.3112659564717043e+02
+1.3081188270904809e+02
+1.3049782065570849e+02
+1.3018440911256093e+02
+1.2987164769766409e+02
+1.2955953602172602e+02
+1.2924807368810417e+02
+1.2893726029280526e+02
+1.2862709542448542e+02
+1.2831757866445011e+02
+1.2800870958665408e+02
+1.2770048775770157e+02
+1.2739291273684607e+02
+1.2708598407599041e+02
+1.2677970131968682e+02
+1.2647406400513690e+02
+1.2616907166219153e+02
+1.2586472381335099e+02
+1.2556101997376490e+02
+1.2525795965123221e+02
+1.2495554234620127e+02
+1.2465376755176976e+02
+1.2435263475368467e+02
+1.2405214343034240e+02
+1.2375229305278864e+02
+1.2345308308471851e+02
+1.2315451298247643e+02
+1.2285658219505618e+02
+1.2255929016410089e+02
+1.2226263632390304e+02
+1.2196662010140446e+02
+1.2167124091619635e+02
+1.2137649818051923e+02
+1.2108239129926299e+02
+1.2078891966996689e+02
+1.2049608268281948e+02
+1.2020387972065875e+02
+1.1991231015897195e+02
+1.1962137336589575e+02
+1.1933106870221613e+02
+1.1904139552136844e+02
+1.1875235316943733e+02
+1.1846394098515697e+02
+1.1817615829991067e+02
+1.1788900443773122e+02
+1.1760247871530068e+02
+1.1731658044195053e+02
+1.1703130891966158e+02
+1.1674666344306398e+02
+1.1646264329943723e+02
+1.1617924776871020e+02
+1.1589647612346108e+02
+1.1561432762891748e+02
+1.1533280154295625e+02
+1.1505189711610369e+02
+1.1477161359153540e+02
+1.1449195020507635e+02
+1.1421290618520085e+02
+1.1393448075303260e+02
+1.1365667312234459e+02
+1.1337948249955919e+02
+1.1310290808374815e+02
+1.1282694906663251e+02
+1.1255160463258269e+02
+1.1227687395861851e+02
+1.1200275621440906e+02
+1.1172925056227285e+02
+1.1145635615717768e+02
+1.1118407214674072e+02
+1.1091239767122855e+02
+1.1064133186355700e+02
+1.1037087384929133e+02
+1.1010102274664615e+02
+1.0983177766648534e+02
+1.0956313771232224e+02
+1.0929510198031947e+02
+1.0902766955928902e+02
+1.0876083953069224e+02
+1.0849461096863979e+02
+1.0822898293989175e+02
+1.0796395450385751e+02
+1.0769952471259580e+02
+1.0743569261081474e+02
+1.0717245723587178e+02
+1.0690981761777368e+02
+1.0664777277917665e+02
+1.0638632173538613e+02
+1.0612546349435705e+02
+1.0586519705669355e+02
+1.0560552141564921e+02
+1.0534643555712692e+02
+1.0508793845967898e+02
+1.0483002909450695e+02
+1.0457270642546185e+02
+1.0431596940904394e+02
+1.0405981699440287e+02
+1.0380424812333773e+02
+1.0354926173029685e+02
+1.0329485674237795e+02
+1.0304103207932806e+02
+1.0278778665354366e+02
+1.0253511937007049e+02
+1.0228302912660367e+02
+1.0203151481348952e+02
+1.0178057532388345e+02
+1.0153020957761271e+02
+1.0128041649404591e+02
+1.0103119494891885e+02
+1.0078254374119624e+02
+1.0053446165745186e+02
+1.0028694756073993e+02
+1.0004000040167645e+02
+9.9793619129506908e+01
+9.9547802693843352e+01
+9.9302550042268933e+01
+9.9057860105779454e+01
+9.8813731746756275e+01
+9.8570163796240962e+01
+9.8327155108851926e+01
+9.8084704640336668e+01
+9.7842811363328224e+01
+9.7601474251358709e+01
+9.7360692286559740e+01
+9.7120464444759079e+01
+9.6880789652693920e+01
+9.6641666780415989e+01
+9.6403094694712337e+01
+9.6165072341804745e+01
+9.5927598721884380e+01
+9.5690672832697516e+01
+9.5454293684984634e+01
+9.5218460290956941e+01
+9.4983171637915973e+01
+9.4748426639009921e+01
+9.4514224185393942e+01
+9.4280563208204683e+01
+9.4047442729258591e+01
+9.3814861776381619e+01
+9.3582819381776218e+01
+9.3351314584496819e+01
+9.3120346414215518e+01
+9.2889913841010980e+01
+9.2660015789454306e+01
+9.2430651190430879e+01
+9.2201819065373201e+01
+9.1973518471052571e+01
+9.1745748462233777e+01
+9.1518508103123992e+01
+9.1291796455374552e+01
+9.1065612546568886e+01
+9.0839955337391601e+01
+9.0614823775853793e+01
+9.0390216866601662e+01
+9.0166133688633280e+01
+8.9942573320961429e+01
+8.9719534848557913e+01
+8.9497017359551236e+01
+8.9275019928290448e+01
+8.9053541563775482e+01
+8.8832581242238135e+01
+8.8612137957369370e+01
+8.8392210792882025e+01
+8.8172798850885215e+01
+8.7953901234280821e+01
+8.7735517055255556e+01
+8.7517645421343886e+01
+8.7300285395988226e+01
+8.7083435985705194e+01
+8.6867096192194381e+01
+8.6651265085969229e+01
+8.6435941791298504e+01
+8.6221125430172847e+01
+8.6006815132673267e+01
+8.5793010029682463e+01
+8.5579709232229249e+01
+8.5366911785296779e+01
+8.5154616712188897e+01
+8.4942823067395537e+01
+8.4731529987665084e+01
+8.4520736617131760e+01
+8.4310442101515790e+01
+8.4100645590912436e+01
+8.3891346227935529e+01
+8.3682543103985211e+01
+8.3474235266909801e+01
+8.3266421767906181e+01
+8.3059101736012892e+01
+8.2852274335696109e+01
+8.2645938729001671e+01
+8.2440094084496721e+01
+8.2234739568647129e+01
+8.2029874320217317e+01
+8.1825497416997479e+01
+8.1621607923770526e+01
+8.1418204950057884e+01
+8.1215287672804280e+01
+8.1012855269961833e+01
+8.0810906924060049e+01
+8.0609441820905445e+01
+8.0408459135105076e+01
+8.0207957981737380e+01
+8.0007937442761246e+01
+7.9808396613480397e+01
+7.9609334672197875e+01
+7.9410750817789861e+01
+7.9212644246742045e+01
+7.9015014157454246e+01
+7.8817859743842106e+01
+7.8621180164161885e+01
+7.8424974525303469e+01
+7.8229241928353687e+01
+7.8033981532064871e+01
+7.7839192546804583e+01
+7.7644874181011559e+01
+7.7451025647290265e+01
+7.7257646158184713e+01
+7.7064734910031333e+01
+7.6872291038840814e+01
+7.6680313658705387e+01
+7.6488801907978043e+01
+7.6297754999899453e+01
+7.6107172156396913e+01
+7.5917052599617477e+01
+7.5727395554846751e+01
+7.5538200241310491e+01
+7.5349465833027452e+01
+7.5161191461164549e+01
+7.4973376257988988e+01
+7.4786019423341713e+01
+7.4599120192714366e+01
+7.4412677798660482e+01
+7.4226691475848597e+01
+7.4041160456419561e+01
+7.3856083950053332e+01
+7.3671461111067288e+01
+7.3487291080556560e+01
+7.3303573035240859e+01
+7.3120306213632148e+01
+7.2937489856127115e+01
+7.2755123205232564e+01
+7.2573205505439248e+01
+7.2391735992397599e+01
+7.2210713851051764e+01
+7.2030138234816661e+01
+7.1850008305487123e+01
+7.1670323292507845e+01
+7.1491082444997119e+01
+7.1312285010788614e+01
+7.1133930242745976e+01
+7.0956017390695109e+01
+7.0778545672711289e+01
+7.0601514255530461e+01
+7.0424922298883018e+01
+7.0248769010977227e+01
+7.0073053649683928e+01
+6.9897775471372370e+01
+6.9722933732837902e+01
+6.9548527689424361e+01
+6.9374556583636419e+01
+6.9201019605542058e+01
+6.9027915923884549e+01
+6.8855244725099396e+01
+6.8683005260622821e+01
+6.8511196791139554e+01
+6.8339818576928948e+01
+6.8168869880946602e+01
+6.7998349961214998e+01
+6.7828258035788465e+01
+6.7658593280427056e+01
+6.7489354870066265e+01
+6.7320542036998262e+01
+6.7152154048369425e+01
+6.6984190168683540e+01
+6.6816649663800149e+01
+6.6649531797428310e+01
+6.6482835813940667e+01
+6.6316560903880173e+01
+6.6150706243644350e+01
+6.5985271038524360e+01
+6.5820254551668498e+01
+6.5655656049064149e+01
+6.5491474797101773e+01
+6.5327710063071478e+01
+6.5164361106982469e+01
+6.5001427143368858e+01
+6.4838907355230148e+01
+6.4676800930712872e+01
+6.4515107115249080e+01
+6.4353825173794093e+01
+6.4192954369932480e+01
+6.4032493972216031e+01
+6.3872443246920128e+01
+6.3712801433342811e+01
+6.3553567721901928e+01
+6.3394741295042635e+01
+6.3236321372508918e+01
+6.3078307217833213e+01
+6.2920698093776629e+01
+6.2763493266078633e+01
+6.2606692001312908e+01
+6.2450293555085068e+01
+6.2294297132510252e+01
+6.2138701915951593e+01
+6.1983507100522559e+01
+6.1828711938043476e+01
+6.1674315690080149e+01
+6.1520317617753975e+01
+6.1366716985338186e+01
+6.1213513053134982e+01
+6.1060705046267017e+01
+6.0908292148256223e+01
+6.0756273540080279e+01
+6.0604648448966344e+01
+6.0453416134351549e+01
+6.0302575853616503e+01
+6.0152126867094523e+01
+6.0002068434152257e+01
+5.9852399797175735e+01
+5.9703120145036074e+01
+5.9554228651114933e+01
+5.9405724512559445e+01
+5.9257606981679459e+01
+5.9109875314606860e+01
+5.8962528764841906e+01
+5.8815566583543671e+01
+5.8668988015628770e+01
+5.8522792265311516e+01
+5.8376978505289699e+01
+5.8231545911619776e+01
+5.8086493713771311e+01
+5.7941821162617558e+01
+5.7797527505567977e+01
+5.7653611986873521e+01
+5.7510073847127366e+01
+5.7366912305535770e+01
+5.7224126538214655e+01
+5.7081715712968979e+01
+5.6939679026478672e+01
+5.6798015714409892e+01
+5.6656725012005801e+01
+5.6515806156547818e+01
+5.6375258386116819e+01
+5.6235080929629071e+01
+5.6095272969545654e+01
+5.5955833664926473e+01
+5.5816762183614998e+01
+5.5678057742237819e+01
+5.5539719567384033e+01
+5.5401746884669819e+01
+5.5264138922264493e+01
+5.5126894904984255e+01
+5.4990014027103832e+01
+5.4853495442538225e+01
+5.4717338301405384e+01
+5.4581541792093127e+01
+5.4446105133532058e+01
+5.4311027542296898e+01
+5.4176308233233904e+01
+5.4041946418502761e+01
+5.3907941297076128e+01
+5.3774292022539250e+01
+5.3640997733511711e+01
+5.3508057585517797e+01
+5.3375470780564520e+01
+5.3243236524610239e+01
+5.3111354021341072e+01
+5.2979822472705884e+01
+5.2848641075316280e+01
+5.2717808988467141e+01
+5.2587325339189356e+01
+5.2457189255578292e+01
+5.2327399909586980e+01
+5.2197956493422367e+01
+5.2068858196800541e+01
+5.1940104209750409e+01
+5.1811693719850020e+01
+5.1683625894052092e+01
+5.1555899852183465e+01
+5.1428514704181936e+01
+5.1301469586529500e+01
+5.1174763676838964e+01
+5.1048396152744203e+01
+5.0922366186304700e+01
+5.0796672944245110e+01
+5.0671315586158677e+01
+5.0546293236294673e+01
+5.0421604998676138e+01
+5.0297249982094804e+01
+5.0173227332395356e+01
+5.0049536204059692e+01
+4.9926175751006191e+01
+4.9803145131405792e+01
+4.9680443500827586e+01
+4.9558069985675502e+01
+4.9436023669117276e+01
+4.9314303629246496e+01
+4.9192908978483942e+01
+4.9071838860672308e+01
+4.8951092417388246e+01
+4.8830668785424344e+01
+4.8710567097404578e+01
+4.8590786475060334e+01
+4.8471325999304483e+01
+4.8352184735866764e+01
+4.8233361761661300e+01
+4.8114856191148576e+01
+4.7996667142497159e+01
+4.7878793733045683e+01
+4.7761235080886955e+01
+4.7643990299614806e+01
+4.7527058467812765e+01
+4.7410438630253019e+01
+4.7294129831222762e+01
+4.7178131153675579e+01
+4.7062441701191972e+01
+4.6947060575776732e+01
+4.6831986884091563e+01
+4.6717219732057011e+01
+4.6602758212481326e+01
+4.6488601386329698e+01
+4.6374748306336492e+01
+4.6261198049798118e+01
+4.6147949737713262e+01
+4.6035002492563137e+01
+4.5922355439572236e+01
+4.5810007706722892e+01
+4.5697958416717491e+01
+4.5586206665138874e+01
+4.5474751530059216e+01
+4.5363592095054720e+01
+4.5252727490200741e+01
+4.5142156859440021e+01
+4.5031879346209195e+01
+4.4921894098901440e+01
+4.4812200264145702e+01
+4.4702796972365640e+01
+4.4593683327908622e+01
+4.4484858430936150e+01
+4.4376321412198912e+01
+4.4268071434539635e+01
+4.4160107660174454e+01
+4.4052429257236732e+01
+4.3945035396383105e+01
+4.3837925240782106e+01
+4.3731097924393829e+01
+4.3624552568678020e+01
+4.3518288306376832e+01
+4.3412304313328583e+01
+4.3306599771637806e+01
+4.3201173865651569e+01
+4.3096025786323864e+01
+4.2991154722001468e+01
+4.2886559840158135e+01
+4.2782240285814225e+01
+4.2678195203379104e+01
+4.2574423774029157e+01
+4.2470925201769397e+01
+4.2367698689550231e+01
+4.2264743446007998e+01
+4.2162058680123685e+01
+4.2059643590614179e+01
+4.1957497348493838e+01
+4.1855619116835861e+01
+4.1754008078017463e+01
+4.1652663454060104e+01
+4.1551584469070093e+01
+4.1450770347417468e+01
+4.1350220314147293e+01
+4.1249933590546746e+01
+4.1149909380846097e+01
+4.1050146876816640e+01
+4.0950645272417930e+01
+4.0851403792057035e+01
+4.0752421670461587e+01
+4.0653698144773408e+01
+4.0555232467414612e+01
+4.0457023891962081e+01
+4.0359071654752633e+01
+4.0261374960345016e+01
+4.0163933008078871e+01
+4.0066745026300069e+01
+3.9969810278133572e+01
+3.9873128026496765e+01
+3.9776697535264972e+01
+3.9680518068217538e+01
+3.9584588883799789e+01
+3.9488909219273332e+01
+3.9393478301604041e+01
+3.9298295365518527e+01
+3.9203359681647875e+01
+3.9108670526955478e+01
+3.9014227180660654e+01
+3.8920028929479855e+01
+3.8826075058365809e+01
+3.8732364832897403e+01
+3.8638897495382004e+01
+3.8545672286843171e+01
+3.8452688481889865e+01
+3.8359945379180552e+01
+3.8267442276560523e+01
+3.8175178476810466e+01
+3.8083153283438548e+01
+3.7991365991330987e+01
+3.7899815869023158e+01
+3.7808502176859896e+01
+3.7717424189972625e+01
+3.7626581218732824e+01
+3.7535972576234315e+01
+3.7445597579479937e+01
+3.7355455551170664e+01
+3.7265545810834887e+01
+3.7175867655935612e+01
+3.7086420366444614e+01
+3.6997203224537294e+01
+3.6908215547276725e+01
+3.6819456666144340e+01
+3.6730925912507011e+01
+3.6642622624054418e+01
+3.6554546138318244e+01
+3.6466695781197394e+01
+3.6379070855015605e+01
+3.6291670657344667e+01
+3.6204494506434109e+01
+3.6117541748995144e+01
+3.6030811732110507e+01
+3.5944303808339271e+01
+3.5858017334170967e+01
+3.5771951661084749e+01
+3.5686106115279905e+01
+3.5600480009847544e+01
+3.5515072665101151e+01
+3.5429883439794288e+01
+3.5344911701295636e+01
+3.5260156816727225e+01
+3.5175618155641367e+01
+3.5091295085840095e+01
+3.5007186961399917e+01
+3.4923293118111445e+01
+3.4839612890035838e+01
+3.4756145637404565e+01
+3.4672890741901050e+01
+3.4589847584539882e+01
+3.4507015550232708e+01
+3.4424394024738717e+01
+3.4341982387470125e+01
+3.4259779996718315e+01
+3.4177786203373294e+01
+3.4096000368938974e+01
+3.4014421884596764e+01
+3.3933050144451883e+01
+3.3851884546677262e+01
+3.3770924496294413e+01
+3.3690169396034051e+01
+3.3609618629275580e+01
+3.3529271562318542e+01
+3.3449127562644222e+01
+3.3369186028293925e+01
+3.3289446372024976e+01
+3.3209908006205332e+01
+3.3130570348052736e+01
+3.3051432814791646e+01
+3.2972494814443387e+01
+3.2893755734192105e+01
+3.2815214956505145e+01
+3.2736871880705280e+01
+3.2658725932717068e+01
+3.2580776539228729e+01
+3.2503023131062015e+01
+3.2425465142598689e+01
+3.2348102004338720e+01
+3.2270933125030453e+01
+3.2193957900851892e+01
+3.2117175733368775e+01
+3.2040586058717267e+01
+3.1964188322318275e+01
+3.1887981968693644e+01
+3.1811966443122365e+01
+3.1736141189337644e+01
+3.1660505640802150e+01
+3.1585059215814677e+01
+3.1509801330676062e+01
+3.1434731421923981e+01
+3.1359848945079385e+01
+3.1285153355397107e+01
+3.1210644113418120e+01
+3.1136320681852890e+01
+3.1062182517874859e+01
+3.0988229057378909e+01
+3.0914459728197848e+01
+3.0840873967318764e+01
+3.0767471241317342e+01
+3.0694251020645478e+01
+3.0621212779031968e+01
+3.0548355996750455e+01
+3.0475680152291002e+01
+3.0403184703988437e+01
+3.0330869090337071e+01
+3.0258732750627221e+01
+3.0186775156457969e+01
+3.0114995797592051e+01
+3.0043394162796439e+01
+2.9971969741552215e+01
+2.9900722022458563e+01
+2.9829650486517231e+01
+2.9758754595349970e+01
+2.9688033805763027e+01
+2.9617487589172239e+01
+2.9547115443390371e+01
+2.9476916867541497e+01
+2.9406891363602423e+01
+2.9337038436511179e+01
+2.9267357588014427e+01
+2.9197848299162171e+01
+2.9128510037734138e+01
+2.9059342276152726e+01
+2.8990344521906042e+01
+2.8921516293784428e+01
+2.8852857108213179e+01
+2.8784366477534942e+01
+2.8716043911955914e+01
+2.8647888914425675e+01
+2.8579900976122865e+01
+2.8512079586235902e+01
+2.8444424250089000e+01
+2.8376934490333458e+01
+2.8309609829691560e+01
+2.8242449797321843e+01
+2.8175453925920085e+01
+2.8108621743116647e+01
+2.8041952753485500e+01
+2.7975446452116849e+01
+2.7909102342848470e+01
+2.7842919961891333e+01
+2.7776898850910264e+01
+2.7711038550591365e+01
+2.7645338601087275e+01
+2.7579798540809200e+01
+2.7514417896578138e+01
+2.7449196182494191e+01
+2.7384132912476218e+01
+2.7319227622148592e+01
+2.7254479861039869e+01
+2.7189889178772074e+01
+2.7125455131436180e+01
+2.7061177276736561e+01
+2.6997055164705490e+01
+2.6933088322441126e+01
+2.6869276271065583e+01
+2.6805618544997955e+01
+2.6742114706117647e+01
+2.6678764318337471e+01
+2.6615566946832892e+01
+2.6552522158464289e+01
+2.6489629517797088e+01
+2.6426888574237577e+01
+2.6364298866266726e+01
+2.6301859934571109e+01
+2.6239571343494621e+01
+2.6177432666100934e+01
+2.6115443476050395e+01
+2.6053603352603350e+01
+2.5991911875187025e+01
+2.5930368613817510e+01
+2.5868973120667807e+01
+2.5807724945053064e+01
+2.5746623652828873e+01
+2.5685668830110249e+01
+2.5624860063187583e+01
+2.5564196939819780e+01
+2.5503679048460533e+01
+2.5443305974276818e+01
+2.5383077287179081e+01
+2.5322992549869682e+01
+2.5263051330919780e+01
+2.5203253224905644e+01
+2.5143597831576933e+01
+2.5084084749378043e+01
+2.5024713575408235e+01
+2.4965483905304119e+01
+2.4906395326838734e+01
+2.4847447418218398e+01
+2.4788639757121800e+01
+2.4729971938616412e+01
+2.4671443570535761e+01
+2.4613054260462619e+01
+2.4554803619416685e+01
+2.4496691259248252e+01
+2.4438716786580173e+01
+2.4380879790904224e+01
+2.4323179856569020e+01
+2.4265616577846934e+01
+2.4208189572727239e+01
+2.4150898461420265e+01
+2.4093742864690959e+01
+2.4036722404403559e+01
+2.3979836700690633e+01
+2.3923085361757202e+01
+2.3866467986195993e+01
+2.3809984173898414e+01
+2.3753633544449546e+01
+2.3697415725877761e+01
+2.3641330346509513e+01
+2.3585377039364946e+01
+2.3529555437813521e+01
+2.3473865168481684e+01
+2.3418305843786992e+01
+2.3362877073375902e+01
+2.3307578477289898e+01
+2.3252409690216833e+01
+2.3197370347434845e+01
+2.3142460092673986e+01
+2.3087678576367797e+01
+2.3033025445102499e+01
+2.2978500320488948e+01
+2.2924102811513041e+01
+2.2869832534318153e+01
+2.2815689140469676e+01
+2.2761672290390610e+01
+2.2707781639941313e+01
+2.2654016835385320e+01
+2.2600377520569030e+01
+2.2546863335706337e+01
+2.2493473916298129e+01
+2.2440208897207796e+01
+2.2387067925149847e+01
+2.2334050656772078e+01
+2.2281156748889011e+01
+2.2228385864654207e+01
+2.2175737669892328e+01
+2.2123211825289360e+01
+2.2070807971628042e+01
+2.2018525743258024e+01
+2.1966364784424766e+01
+2.1914324766325361e+01
+2.1862405363520534e+01
+2.1810606248419290e+01
+2.1758927090723859e+01
+2.1707367558518939e+01
+2.1655927310195192e+01
+2.1604605995423235e+01
+2.1553403264902400e+01
+2.1502318789122782e+01
+2.1451352248497390e+01
+2.1400503322843736e+01
+2.1349771692399500e+01
+2.1299157036833265e+01
+2.1248659030767673e+01
+2.1198277336987278e+01
+2.1148011615659726e+01
+2.1097861536791484e+01
+2.1047826786195266e+01
+2.0997907050375993e+01
+2.0948102019102627e+01
+2.0898411385091638e+01
+2.0848834838621482e+01
+2.0799372053624303e+01
+2.0750022694624686e+01
+2.0700786430432373e+01
+2.0651662955804760e+01
+2.0602651973002523e+01
+2.0553753181787712e+01
+2.0504966276575555e+01
+2.0456290950050491e+01
+2.0407726891544495e+01
+2.0359273785542328e+01
+2.0310931315709457e+01
+2.0262699175004695e+01
+2.0214577065310223e+01
+2.0166564688575967e+01
+2.0118661751533821e+01
+2.0070867963272509e+01
+2.0023183029385642e+01
+1.9975606640629902e+01
+1.9928138482274825e+01
+1.9880778246069507e+01
+1.9833525644516588e+01
+1.9786380393192946e+01
+1.9739342207344173e+01
+1.9692410802251885e+01
+1.9645585892076898e+01
+1.9598867182174754e+01
+1.9552254369061838e+01
+1.9505747149597852e+01
+1.9459345236328918e+01
+1.9413048350828561e+01
+1.9366856214812788e+01
+1.9320768553877762e+01
+1.9274785094406713e+01
+1.9228905557090172e+01
+1.9183129646879905e+01
+1.9137457065146290e+01
+1.9091887523395773e+01
+1.9046420751637839e+01
+1.9001056481080393e+01
+1.8955794443367850e+01
+1.8910634370639130e+01
+1.8865575993423327e+01
+1.8820619031889617e+01
+1.8775763199436859e+01
+1.8731008211409424e+01
+1.8686353798991657e+01
+1.8641799698565531e+01
+1.8597345647197404e+01
+1.8552991385878954e+01
+1.8508736655699678e+01
+1.8464581190591602e+01
+1.8420524711990179e+01
+1.8376566939782723e+01
+1.8332707606997143e+01
+1.8288946461062178e+01
+1.8245283249273125e+01
+1.8201717716565057e+01
+1.8158249606070846e+01
+1.8114878659271884e+01
+1.8071604611593735e+01
+1.8028427195693745e+01
+1.7985346147490080e+01
+1.7942361215729928e+01
+1.7899472151290738e+01
+1.7856678707044729e+01
+1.7813980640374275e+01
+1.7771377708156383e+01
+1.7728869655803511e+01
+1.7686456215802526e+01
+1.7644137120759073e+01
+1.7601912121719309e+01
+1.7559780982000113e+01
+1.7517743464547845e+01
+1.7475799332215381e+01
+1.7433948347387890e+01
+1.7392190268217529e+01
+1.7350524839723313e+01
+1.7308951803519790e+01
+1.7267470909679215e+01
+1.7226081925961033e+01
+1.7184784621611076e+01
+1.7143578764812602e+01
+1.7102464122618127e+01
+1.7061440460888129e+01
+1.7020507538549200e+01
+1.6979665109417621e+01
+1.6938912928324822e+01
+1.6898250761634035e+01
+1.6857678380066851e+01
+1.6817195555407295e+01
+1.6776802065141833e+01
+1.6736497687530569e+01
+1.6696282194804482e+01
+1.6656155347303713e+01
+1.6616116903531481e+01
+1.6576166630376356e+01
+1.6536304305235113e+01
+1.6496529705960796e+01
+1.6456842615714194e+01
+1.6417242821399938e+01
+1.6377730107121614e+01
+1.6338304240336694e+01
+1.6298964980933189e+01
+1.6259712093893036e+01
+1.6220545366006522e+01
+1.6181464588865289e+01
+1.6142469552030807e+01
+1.6103560041367391e+01
+1.6064735841626842e+01
+1.6025996734106883e+01
+1.5987342495844612e+01
+1.5948772903476494e+01
+1.5910287740165986e+01
+1.5871886793947596e+01
+1.5833569853464855e+01
+1.5795336714854525e+01
+1.5757187177303175e+01
+1.5719121035989382e+01
+1.5681138071573868e+01
+1.5643238060585338e+01
+1.5605420785807583e+01
+1.5567686045135497e+01
+1.5530033638092194e+01
+1.5492463365259699e+01
+1.5454975028841528e+01
+1.5417568430029684e+01
+1.5380243360247498e+01
+1.5342999602971403e+01
+1.5305836942823227e+01
+1.5268755179202625e+01
+1.5231754118170681e+01
+1.5194833565932802e+01
+1.5157993331002837e+01
+1.5121233222076505e+01
+1.5084553042446835e+01
+1.5047952583286992e+01
+1.5011431633686694e+01
+1.4974989991217035e+01
+1.4938627465538259e+01
+1.4902343866883227e+01
+1.4866139008182797e+01
+1.4830012704529542e+01
+1.4793964769247115e+01
+1.4757995004372459e+01
+1.4722103206091241e+01
+1.4686289173195266e+01
+1.4650552718286137e+01
+1.4614893657433067e+01
+1.4579311807376076e+01
+1.4543806987343054e+01
+1.4508379016373825e+01
+1.4473027706967322e+01
+1.4437752862336735e+01
+1.4402554285057887e+01
+1.4367431788184335e+01
+1.4332385193818164e+01
+1.4297414324067230e+01
+1.4262519002352036e+01
+1.4227699052516101e+01
+1.4192954295918106e+01
+1.4158284544153387e+01
+1.4123689605587320e+01
+1.4089169293166444e+01
+1.4054723432688958e+01
+1.4020351851617848e+01
+1.3986054377915048e+01
+1.3951830840564337e+01
+1.3917681067827120e+01
+1.3883604880758201e+01
+1.3849602093828606e+01
+1.3815672522070948e+01
+1.3781815991948822e+01
+1.3748032335836951e+01
+1.3714321386119993e+01
+1.3680682976860135e+01
+1.3647116942290978e+01
+1.3613623112854397e+01
+1.3580201309465195e+01
+1.3546851351116894e+01
+1.3513573063686554e+01
+1.3480366284257762e+01
+1.3447230850520683e+01
+1.3414166600717524e+01
+1.3381173373586080e+01
+1.3348251006655413e+01
+1.3315399329512768e+01
+1.3282618167075503e+01
+1.3249907346091470e+01
+1.3217266705030688e+01
+1.3184696085815325e+01
+1.3152195330689105e+01
+1.3119764283675780e+01
+1.3087402788672062e+01
+1.3055110684329811e+01
+1.3022887800929771e+01
+1.2990733967943930e+01
+1.2958649023517369e+01
+1.2926632814329180e+01
+1.2894685187167060e+01
+1.2862805990198385e+01
+1.2830995072213609e+01
+1.2799252279897303e+01
+1.2767577450433112e+01
+1.2735970417500758e+01
+1.2704431018630109e+01
+1.2672959103836309e+01
+1.2641554525117755e+01
+1.2610217134603856e+01
+1.2578946784965083e+01
+1.2547743328290972e+01
+1.2516606610346136e+01
+1.2485536470416397e+01
+1.2454532748061700e+01
+1.2423595293173713e+01
+1.2392723961788487e+01
+1.2361918609876572e+01
+1.2331179094479753e+01
+1.2300505272745122e+01
+1.2269896998783537e+01
+1.2239354118063359e+01
+1.2208876474070767e+01
+1.2178463915684921e+01
+1.2148116301844517e+01
+1.2117833492229686e+01
+1.2087615347610118e+01
+1.2057461729948827e+01
+1.2027372500197664e+01
+1.1997347511099024e+01
+1.1967386610010577e+01
+1.1937489645838136e+01
+1.1907656479300046e+01
+1.1877886975221859e+01
+1.1848180998272477e+01
+1.1818538413490836e+01
+1.1788959085643230e+01
+1.1759442875358847e+01
+1.1729989635839408e+01
+1.1700599219380214e+01
+1.1671271485736648e+01
+1.1642006303022363e+01
+1.1612803539498298e+01
+1.1583663063955242e+01
+1.1554584745407544e+01
+1.1525568451311431e+01
+1.1496614041321244e+01
+1.1467721371833340e+01
+1.1438890302019376e+01
+1.1410120701626218e+01
+1.1381412442390413e+01
+1.1352765396431050e+01
+1.1324179436978653e+01
+1.1295654436889166e+01
+1.1267190263286253e+01
+1.1238786776698628e+01
+1.1210443837639883e+01
+1.1182161315490944e+01
+1.1153939085665698e+01
+1.1125777023607544e+01
+1.1097675006141682e+01
+1.1069632910436868e+01
+1.1041650610947265e+01
+1.1013727973247523e+01
+1.0985864860647846e+01
+1.0958061141301968e+01
+1.0930316693689418e+01
+1.0902631397262660e+01
+1.0875005131715820e+01
+1.0847437777109354e+01
+1.0819929212744432e+01
+1.0792479311427076e+01
+1.0765087941168026e+01
+1.0737754970929219e+01
+1.0710480279093575e+01
+1.0683263747824805e+01
+1.0656105259440444e+01
+1.0629004697744820e+01
+1.0601961946615370e+01
+1.0574976886065221e+01
+1.0548049388220539e+01
+1.0521179324063645e+01
+1.0494366570941970e+01
+1.0467611014322038e+01
+1.0440912539950364e+01
+1.0414271034318222e+01
+1.0387686384396474e+01
+1.0361158475827366e+01
+1.0334687186528704e+01
+1.0308272390812318e+01
+1.0281913965310164e+01
+1.0255611796966035e+01
+1.0229365775042689e+01
+1.0203175788776209e+01
+1.0177041727743338e+01
+1.0150963481183679e+01
+1.0124940933829476e+01
+1.0098973964590474e+01
+1.0073062452159249e+01
+1.0047206282477367e+01
+1.0021405347111370e+01
+9.9956595376420374e+00
+9.9699687466373135e+00
+9.9443328669526849e+00
+9.9187517894268158e+00
+9.8932253974718023e+00
+9.8677535723374454e+00
+9.8423361988189537e+00
+9.8169731704455643e+00
+9.7916643817493600e+00
+9.7664097278113413e+00
+9.7412091045779778e+00
+9.7160624074279411e+00
+9.6909695257134558e+00
+9.6659303437956030e+00
+9.6409447466637683e+00
+9.6160126277183213e+00
+9.5911338842619607e+00
+9.5663084136941787e+00
+9.5415361147245914e+00
+9.5168168861972742e+00
+9.4921506236857436e+00
+9.4675372151895552e+00
+9.4429765474245837e+00
+9.4184685125026935e+00
+9.3940130103766712e+00
+9.3696099413726781e+00
+9.3452592062234530e+00
+9.3209607059663799e+00
+9.2967143406274175e+00
+9.2725200036525290e+00
+9.2483775850218333e+00
+9.2242869763692958e+00
+9.2002480781000191e+00
+9.1762607929284616e+00
+9.1523250236867870e+00
+9.1284406739477646e+00
+9.1046076470931609e+00
+9.0808258423494141e+00
+9.0570951528911863e+00
+9.0334154714950632e+00
+9.0097866974911707e+00
+8.9862087360062564e+00
+8.9626814922025311e+00
+8.9392048718540416e+00
+8.9157787809276741e+00
+8.8924031236889984e+00
+8.8690777972482753e+00
+8.8458026963737968e+00
+8.8225777189972625e+00
+8.7994027720044112e+00
+8.7762777635401346e+00
+8.7532026014535074e+00
+8.7301771932816106e+00
+8.7072014460807310e+00
+8.6842752624203357e+00
+8.6613985406918328e+00
+8.6385711796265152e+00
+8.6157930848935216e+00
+8.5930641658556848e+00
+8.5703843319041955e+00
+8.5477534934232047e+00
+8.5251715609287668e+00
+8.5026384423241854e+00
+8.4801540386566412e+00
+8.4577182496253958e+00
+8.4353309793758449e+00
+8.4129921394269882e+00
+8.3907016417522176e+00
+8.3684593983449886e+00
+8.3462653212094366e+00
+8.3241193215956670e+00
+8.3020213054120315e+00
+8.2799711753902567e+00
+8.2579688354105123e+00
+8.2360141967442093e+00
+8.2141071729298485e+00
+8.1922476775432660e+00
+8.1704356247455419e+00
+8.1486709285622432e+00
+8.1269534996486215e+00
+8.1052832431328099e+00
+8.0836600636188720e+00
+8.0620838711026686e+00
+8.0405545810071821e+00
+8.0190721088276842e+00
+7.9976363705081699e+00
+7.9762472821647004e+00
+7.9549047585920629e+00
+7.9336087083186460e+00
+7.9123590375471373e+00
+7.8911556548348933e+00
+7.8699984765070594e+00
+7.8488874201862497e+00
+7.8278224033806412e+00
+7.8068033435766244e+00
+7.7858301578965721e+00
+7.7649027594616618e+00
+7.7440210572093378e+00
+7.7231849602106326e+00
+7.7023943835830346e+00
+7.6816492461325208e+00
+7.6609494666271321e+00
+7.6402949643811677e+00
+7.6196856587591109e+00
+7.5991214671140375e+00
+7.5786023008317622e+00
+7.5581280699434688e+00
+7.5376986879514289e+00
+7.5173140749529166e+00
+7.4969741515653352e+00
+7.4766788385097005e+00
+7.4564280566410490e+00
+7.4362217262126027e+00
+7.4160597625984055e+00
+7.3959420779122160e+00
+7.3758685850667751e+00
+7.3558392033811995e+00
+7.3358538544577234e+00
+7.3159124600041903e+00
+7.2960149425933611e+00
+7.2761612247833867e+00
+7.2563512260946403e+00
+7.2365848604092768e+00
+7.2168620409336928e+00
+7.1971826855965917e+00
+7.1775467177346437e+00
+7.1579540608115382e+00
+7.1384046385434221e+00
+7.1188983747493015e+00
+7.0994351921641448e+00
+7.0800150076850006e+00
+7.0606377357638248e+00
+7.0413032926797969e+00
+7.0220116017665486e+00
+7.0027625877538835e+00
+6.9835561754857389e+00
+6.9643922902475230e+00
+6.9452708570691053e+00
+6.9261917968145852e+00
+6.9071550254451131e+00
+6.8881604588976462e+00
+6.8692080190958063e+00
+6.8502976321439011e+00
+6.8314292240728900e+00
+6.8126027209778464e+00
+6.7938180488598805e+00
+6.7750751320626454e+00
+6.7563738893419290e+00
+6.7377142380114696e+00
+6.7190960982454735e+00
+6.7005193964554648e+00
+6.6819840596651270e+00
+6.6634900148287866e+00
+6.6450371888628013e+00
+6.6266255081907186e+00
+6.6082548948012914e+00
+6.5899252673521849e+00
+6.5716365451193690e+00
+6.5533886535765298e+00
+6.5351815207649446e+00
+6.5170150746245392e+00
+6.4988892432303427e+00
+6.4808039545293674e+00
+6.4627591340503638e+00
+6.4447547022579323e+00
+6.4267905788695687e+00
+6.4088666873814795e+00
+6.3909829562193039e+00
+6.3731393139780677e+00
+6.3553356894518807e+00
+6.3375720115436129e+00
+6.3198482083245917e+00
+6.3021642028564937e+00
+6.2845199158242275e+00
+6.2669152692515055e+00
+6.2493501912883618e+00
+6.2318246115027645e+00
+6.2143384593839599e+00
+6.1968916644872243e+00
+6.1794841561433831e+00
+6.1621158605700357e+00
+6.1447866998684368e+00
+6.1274965959636285e+00
+6.1102454753417117e+00
+6.0930332681124852e+00
+6.0758599043488868e+00
+6.0587253142787194e+00
+6.0416294281043585e+00
+6.0245721747130245e+00
+6.0075534779821345e+00
+5.9905732603152106e+00
+5.9736314463423250e+00
+5.9567279663009991e+00
+5.9398627510945827e+00
+5.9230357315141049e+00
+5.9062468382670446e+00
+5.8894960016762132e+00
+5.8727831483448973e+00
+5.8561082017331305e+00
+5.8394710856273564e+00
+5.8228717286682672e+00
+5.8063100618001888e+00
+5.7897860160277590e+00
+5.7732995231802855e+00
+5.7568505151827809e+00
+5.7404389216343068e+00
+5.7240646665788031e+00
+5.7077276731165565e+00
+5.6914278679394465e+00
+5.6751651830714565e+00
+5.6589395507753766e+00
+5.6427509027857585e+00
+5.6265991703537104e+00
+5.6104842841260538e+00
+5.5944061709526975e+00
+5.5783647556356000e+00
+5.5623599638305903e+00
+5.5463917259675313e+00
+5.5304599737525200e+00
+5.5145646389732148e+00
+5.4987056539162715e+00
+5.4828829507554300e+00
+5.4670964588072879e+00
+5.4513461031296480e+00
+5.4356318084691031e+00
+5.4199535035735167e+00
+5.4043111208105836e+00
+5.3887045925286294e+00
+5.3731338510526392e+00
+5.3575988286152372e+00
+5.3420994563729014e+00
+5.3266356608563434e+00
+5.3112073670508391e+00
+5.2958145017487697e+00
+5.2804569970168789e+00
+5.2651347856744497e+00
+5.2498478002626303e+00
+5.2345959729811087e+00
+5.2193792357016058e+00
+5.2041975171673558e+00
+5.1890507431497426e+00
+5.1739388395921013e+00
+5.1588617367251084e+00
+5.1438193671146006e+00
+5.1288116632201213e+00
+5.1138385575120120e+00
+5.0988999823485370e+00
+5.0839958685685698e+00
+5.0691261429643335e+00
+5.0542907314933752e+00
+5.0394895622484697e+00
+5.0247225669759965e+00
+5.0099896776471802e+00
+4.9952908268167953e+00
+4.9806259476132428e+00
+4.9659949726130819e+00
+4.9513978299518984e+00
+4.9368344450881994e+00
+4.9223047441913925e+00
+4.9078086582325495e+00
+4.8933461196934056e+00
+4.8789170610373622e+00
+4.8645214149995670e+00
+4.8501591142050335e+00
+4.8358300888450705e+00
+4.8215342650233630e+00
+4.8072715684168514e+00
+4.7930419277873488e+00
+4.7788452750733850e+00
+4.7646815422768496e+00
+4.7505506620439455e+00
+4.7364525673524689e+00
+4.7223871901819026e+00
+4.7083544575496274e+00
+4.6943542946096679e+00
+4.6803866279356683e+00
+4.6664513889467605e+00
+4.6525485098848147e+00
+4.6386779229431880e+00
+4.6248395603573353e+00
+4.6110333541119592e+00
+4.5972592331316777e+00
+4.5835171230741762e+00
+4.5698069496127580e+00
+4.5561286421063878e+00
+4.5424821322090825e+00
+4.5288673515648785e+00
+4.5152842323176507e+00
+4.5017327066957558e+00
+4.4882127053463678e+00
+4.4747241540638738e+00
+4.4612669775326594e+00
+4.4478411027678737e+00
+4.4344464613235193e+00
+4.4210829851092868e+00
+4.4077506057126383e+00
+4.3944492543796834e+00
+4.3811788619063456e+00
+4.3679393555077635e+00
+4.3547306599589559e+00
+4.3415527005732493e+00
+4.3284054071768052e+00
+4.3152887112460894e+00
+4.3022025440540279e+00
+4.2891468365411738e+00
+4.2761215194386368e+00
+4.2631265214773411e+00
+4.2501617676062358e+00
+4.2372271822823180e+00
+4.2243226927027422e+00
+4.2114482292792861e+00
+4.1986037224768697e+00
+4.1857891028604977e+00
+4.1730043010171896e+00
+4.1602492468305767e+00
+4.1475238663947112e+00
+4.1348280841723835e+00
+4.1221618256950885e+00
+4.1095250208107590e+00
+4.0969176002300092e+00
+4.0843394951542464e+00
+4.0717906379552895e+00
+4.0592709609304869e+00
+4.0467803933642728e+00
+4.0343188609205392e+00
+4.0218862892506957e+00
+4.0094826086943556e+00
+3.9971077529450163e+00
+3.9847616555728318e+00
+3.9724442496304122e+00
+3.9601554678654791e+00
+3.9478952421391527e+00
+3.9356635013626677e+00
+3.9234601736398584e+00
+3.9112851888580882e+00
+3.8991384809095524e+00
+3.8870199840925865e+00
+3.8749296331042196e+00
+3.8628673631835020e+00
+3.8508331092614210e+00
+3.8388268031026027e+00
+3.8268483740442663e+00
+3.8148977518797347e+00
+3.8029748710808198e+00
+3.7910796681118257e+00
+3.7792120792753807e+00
+3.7673720406122442e+00
+3.7555594879873757e+00
+3.7437743561028665e+00
+3.7320165772278728e+00
+3.7202860832330291e+00
+3.7085828081857750e+00
+3.6969066890929567e+00
+3.6852576630796579e+00
+3.6736356678550894e+00
+3.6620406415591091e+00
+3.6504725218161855e+00
+3.6389312430929905e+00
+3.6274167383184381e+00
+3.6159289412770956e+00
+3.6044677898124147e+00
+3.5930332227294044e+00
+3.5816251790428639e+00
+3.5702435984399798e+00
+3.5588884205444549e+00
+3.5475595828155186e+00
+3.5362570197902534e+00
+3.5249806658793963e+00
+3.5137304588881726e+00
+3.5025063393828075e+00
+3.4913082479217028e+00
+3.4801361252331886e+00
+3.4689899120608119e+00
+3.4578695483597972e+00
+3.4467749710670565e+00
+3.4357061162000750e+00
+3.4246629213260595e+00
+3.4136453280086791e+00
+3.4026532783057046e+00
+3.3916867141832721e+00
+3.3807455775310036e+00
+3.3698298100142083e+00
+3.3589393513855685e+00
+3.3480741397435643e+00
+3.3372341133811636e+00
+3.3264192136431361e+00
+3.3156293833538619e+00
+3.3048645654360209e+00
+3.2941247036534214e+00
+3.2834097419213237e+00
+3.2727196228709516e+00
+3.2620542860315744e+00
+3.2514136703743319e+00
+3.2407977169210516e+00
+3.2302063698176249e+00
+3.2196395733826790e+00
+3.2090972723556970e+00
+3.1985794118381392e+00
+3.1880859365488003e+00
+3.1776167885784465e+00
+3.1671719085728931e+00
+3.1567512377968643e+00
+3.1463547210288785e+00
+3.1359823040221051e+00
+3.1256339325966285e+00
+3.1153095529492965e+00
+3.1050091112171172e+00
+3.0947325518917457e+00
+3.0844798169684600e+00
+3.0742508482676705e+00
+3.0640455905578423e+00
+3.0538639913366588e+00
+3.0437059980794734e+00
+3.0335715579958080e+00
+3.0234606180975803e+00
+3.0133731249169307e+00
+3.0033090230289812e+00
+2.9932682563128075e+00
+2.9832507694917370e+00
+2.9732565098742265e+00
+2.9632854251354783e+00
+2.9533374634495662e+00
+2.9434125738705945e+00
+2.9335107053437732e+00
+2.9236318047672283e+00
+2.9137758170545762e+00
+2.9039426872078029e+00
+2.8941323629054758e+00
+2.8843447933180810e+00
+2.8745799276985702e+00
+2.8648377161042844e+00
+2.8551181087855007e+00
+2.8454210549319519e+00
+2.8357465008215916e+00
+2.8260943921324699e+00
+2.8164646763362104e+00
+2.8068573040212890e+00
+2.7972722259997180e+00
+2.7877093933837638e+00
+2.7781687575893166e+00
+2.7686502696997359e+00
+2.7591538781005647e+00
+2.7496795295152214e+00
+2.7402271712257531e+00
+2.7307967542398668e+00
+2.7213882307859780e+00
+2.7120015530396584e+00
+2.7026366732229374e+00
+2.6932935434714800e+00
+2.6839721147001616e+00
+2.6746723357440234e+00
+2.6653941552117772e+00
+2.6561375236596674e+00
+2.6469023936954659e+00
+2.6376887180117246e+00
+2.6284964501320198e+00
+2.6193255440630407e+00
+2.6101759531866944e+00
+2.6010476276632652e+00
+2.5919405164206823e+00
+2.5828545695359733e+00
+2.5737897410328134e+00
+2.5647459856504478e+00
+2.5557232578735976e+00
+2.5467215117991220e+00
+2.5377407013481519e+00
+2.5287807790683767e+00
+2.5198416960131493e+00
+2.5109234032877241e+00
+2.5020258545363725e+00
+2.4931490050276608e+00
+2.4842928100395181e+00
+2.4754572252138445e+00
+2.4666422062718234e+00
+2.4578477080629417e+00
+2.4490736827120929e+00
+2.4403200817048902e+00
+2.4315868581046778e+00
+2.4228739681066829e+00
+2.4141813681879229e+00
+2.4055090149550966e+00
+2.3968568651758315e+00
+2.3882248753694442e+00
+2.3796129998334550e+00
+2.3710211913220123e+00
+2.3624494029671972e+00
+2.3538975910373483e+00
+2.3453657129892869e+00
+2.3368537263105056e+00
+2.3283615888150062e+00
+2.3198892583106545e+00
+2.3114366912844462e+00
+2.3030038416558845e+00
+2.2945906630297412e+00
+2.2861971113530748e+00
+2.2778231453752791e+00
+2.2694687239031452e+00
+2.2611338053452399e+00
+2.2528183478019304e+00
+2.2445223090517987e+00
+2.2362456452353308e+00
+2.2279883117606936e+00
+2.2197502647151257e+00
+2.2115314629637028e+00
+2.2033318659509611e+00
+2.1951514330592778e+00
+2.1869901236345379e+00
+2.1788478969046223e+00
+2.1707247106555094e+00
+2.1626205209071512e+00
+2.1545352836946052e+00
+2.1464689579039886e+00
+2.1384215045101933e+00
+2.1303928843626432e+00
+2.1223830575605902e+00
+2.1143919838306311e+00
+2.1064196225032030e+00
+2.0984659316129823e+00
+2.0905308688189366e+00
+2.0826143926702381e+00
+2.0747164637744917e+00
+2.0668370429528675e+00
+2.0589760913691277e+00
+2.0511335706532479e+00
+2.0433094422688316e+00
+2.0355036657688621e+00
+2.0277161992127097e+00
+2.0199470008942764e+00
+2.0121960316831498e+00
+2.0044632535725064e+00
+1.9967486285942286e+00
+1.9890521191588415e+00
+1.9813736877111583e+00
+1.9737132956775547e+00
+1.9660709022479981e+00
+1.9584464662730292e+00
+1.9508399483853902e+00
+1.9432513116454531e+00
+1.9356805192129591e+00
+1.9281275341722477e+00
+1.9205923195319539e+00
+1.9130748380044569e+00
+1.9055750504987892e+00
+1.8980929170277208e+00
+1.8906283981291130e+00
+1.8831814568742780e+00
+1.8757520569578814e+00
+1.8683401621926969e+00
+1.8609457367806572e+00
+1.8535687448888334e+00
+1.8462091492891146e+00
+1.8388669108255977e+00
+1.8315419902527978e+00
+1.8242343504188003e+00
+1.8169439559148852e+00
+1.8096707713524747e+00
+1.8024147615808082e+00
+1.7951758915299796e+00
+1.7879541256207272e+00
+1.7807494262360892e+00
+1.7735617551346827e+00
+1.7663910749096938e+00
+1.7592373503653094e+00
+1.7521005465948862e+00
+1.7449806290715570e+00
+1.7378775638574995e+00
+1.7307913168938520e+00
+1.7237218521781483e+00
+1.7166691320003054e+00
+1.7096331188247811e+00
+1.7026137777006609e+00
+1.6956110749787310e+00
+1.6886249769882316e+00
+1.6816554501613927e+00
+1.6747024609103991e+00
+1.6677659748678979e+00
+1.6608459557317636e+00
+1.6539423668495798e+00
+1.6470551729079668e+00
+1.6401843406751389e+00
+1.6333298370479763e+00
+1.6264916291679921e+00
+1.6196696843934151e+00
+1.6128639698110478e+00
+1.6060744504659497e+00
+1.5993010902687548e+00
+1.5925438536243073e+00
+1.5858027077104664e+00
+1.5790776205138903e+00
+1.5723685599294861e+00
+1.5656754937148345e+00
+1.5589983895355819e+00
+1.5523372141155052e+00
+1.5456919327185219e+00
+1.5390625104958395e+00
+1.5324489142110702e+00
+1.5258511121544567e+00
+1.5192690726428892e+00
+1.5127027642091262e+00
+1.5061521554793940e+00
+1.4996172146797961e+00
+1.4930979082236335e+00
+1.4865942018938678e+00
+1.4801060621858930e+00
+1.4736334577731391e+00
+1.4671763576686905e+00
+1.4607347309949612e+00
+1.4543085470977255e+00
+1.4478977752296796e+00
+1.4415023832924421e+00
+1.4351223378509532e+00
+1.4287576055503199e+00
+1.4224081550252403e+00
+1.4160739560543816e+00
+1.4097549784039642e+00
+1.4034511919627175e+00
+1.3971625666198411e+00
+1.3908890716738791e+00
+1.3846306747668700e+00
+1.3783873431913987e+00
+1.3721590452960521e+00
+1.3659457513061475e+00
+1.3597474315867146e+00
+1.3535640566166141e+00
+1.3473955969938169e+00
+1.3412420231329931e+00
+1.3351033039603686e+00
+1.3289794074649881e+00
+1.3228703019333279e+00
+1.3167759577163074e+00
+1.3106963458579011e+00
+1.3046314374111871e+00
+1.2985812035820747e+00
+1.2925456155511919e+00
+1.2865246436438436e+00
+1.2805182566859525e+00
+1.2745264233469911e+00
+1.2685491137031437e+00
+1.2625862993453356e+00
+1.2566379519017448e+00
+1.2507040431433991e+00
+1.2447845449121899e+00
+1.2388794287380562e+00
+1.2329886645548875e+00
+1.2271122216673624e+00
+1.2212500699416744e+00
+1.2154021812425322e+00
+1.2095685278036103e+00
+1.2037490819048697e+00
+1.1979438159634332e+00
+1.1921527023257694e+00
+1.1863757122527574e+00
+1.1806128157974511e+00
+1.1748639830320540e+00
+1.1691291856512944e+00
+1.1634083964144379e+00
+1.1577015880947004e+00
+1.1520087337150806e+00
+1.1463298063622125e+00
+1.1406647785960367e+00
+1.1350136212838509e+00
+1.1293763048892682e+00
+1.1237528007944531e+00
+1.1181430822478486e+00
+1.1125471226724573e+00
+1.1069648955479379e+00
+1.1013963744288544e+00
+1.0958415327269404e+00
+1.0903003425506552e+00
+1.0847727750844645e+00
+1.0792588017243494e+00
+1.0737583956930288e+00
+1.0682715309234467e+00
+1.0627981813558944e+00
+1.0573383210870306e+00
+1.0518919242044529e+00
+1.0464589640714885e+00
+1.0410394126152018e+00
+1.0356332415754750e+00
+1.0302404238974170e+00
+1.0248609340020840e+00
+1.0194947463597168e+00
+1.0141418355030052e+00
+1.0088021759960297e+00
+1.0034757421652751e+00
+9.9816250697630604e-01
+9.9286244278646385e-01
+9.8757552238321233e-01
+9.8230172034963081e-01
+9.7704101165859703e-01
+9.7179337129985910e-01
+9.6655877435686266e-01
+9.6133719585841737e-01
+9.5612860991821857e-01
+9.5093298950445737e-01
+9.4575030756523271e-01
+9.4058053848441181e-01
+9.3542365772020608e-01
+9.3027964073153724e-01
+9.2514846308738297e-01
+9.2003010037860666e-01
+9.1492452780571398e-01
+9.0983171915409289e-01
+9.0475164782109574e-01
+8.9968428789559762e-01
+8.9462961508468564e-01
+8.8958760527834579e-01
+8.8455823445342852e-01
+8.7954147871668420e-01
+8.7453731406802149e-01
+8.6954571534971026e-01
+8.6456665648052644e-01
+8.5960011152902349e-01
+8.5464605622931145e-01
+8.4970446706293357e-01
+8.4477532046766779e-01
+8.3985859282809638e-01
+8.3495426047893406e-01
+8.3006229927402797e-01
+8.2518268399990014e-01
+8.2031538926848568e-01
+8.1546039053115305e-01
+8.1061766441241412e-01
+8.0578718759347023e-01
+8.0096893693921734e-01
+7.9616288945750124e-01
+7.9136902196531866e-01
+7.8658731001168281e-01
+7.8181772850666531e-01
+7.7706025268757239e-01
+7.7231485940677602e-01
+7.6758152592755324e-01
+7.6286022952372545e-01
+7.5815094755999468e-01
+7.5345365736244163e-01
+7.4876833549368049e-01
+7.4409495744042986e-01
+7.3943349863272012e-01
+7.3478393567692912e-01
+7.3014624618100032e-01
+7.2552040776644022e-01
+7.2090639821156044e-01
+7.1630419535265477e-01
+7.1171377670206781e-01
+7.0713511843326715e-01
+7.0256819630354250e-01
+6.9801298664998324e-01
+6.9346946737209725e-01
+6.8893761658178265e-01
+6.8441741238861886e-01
+6.7990883291985971e-01
+6.7541185621990529e-01
+6.7092645943625484e-01
+6.6645261891081975e-01
+6.6199031106762507e-01
+6.5753951366323282e-01
+6.5310020513882050e-01
+6.4867236392124883e-01
+6.4425596849662714e-01
+6.3985099733919537e-01
+6.3545742849810238e-01
+6.3107523894928919e-01
+6.2670440546636019e-01
+6.2234490554305855e-01
+6.1799671782096832e-01
+6.1365982101228123e-01
+6.0933419396205524e-01
+6.0501981563615337e-01
+6.0071666485282582e-01
+5.9642471931814300e-01
+5.9214395610526283e-01
+5.8787435252886333e-01
+5.8361588733172498e-01
+5.7936853968028723e-01
+5.7513228874407551e-01
+5.7090711377361725e-01
+5.6669299399194251e-01
+5.6248990798362908e-01
+5.5829783331928939e-01
+5.5411674748770934e-01
+5.4994662900535163e-01
+5.4578745738397072e-01
+5.4163921214514110e-01
+5.3750187283760009e-01
+5.3337541900914842e-01
+5.2925982997423748e-01
+5.2515508397388555e-01
+5.2106115886691140e-01
+5.1697803293185207e-01
+5.1290568576519580e-01
+5.0884409717462686e-01
+5.0479324700748052e-01
+5.0075311520529553e-01
+4.9672368165031616e-01
+4.9270492539407434e-01
+4.8869682464913333e-01
+4.8469935766964767e-01
+4.8071250390733955e-01
+4.7673624351872057e-01
+4.7277055664953821e-01
+4.6881542350166155e-01
+4.6487082427170046e-01
+4.6093673878921998e-01
+4.5701314582869040e-01
+4.5310002393749549e-01
+4.4919735230463720e-01
+4.4530511128640449e-01
+4.4142328132709885e-01
+4.3755184287477222e-01
+4.3369077638337872e-01
+4.2984006219962700e-01
+4.2599967982402620e-01
+4.2216960821204758e-01
+4.1834982647900121e-01
+4.1454031490805382e-01
+4.1074105418286577e-01
+4.0695202499243066e-01
+4.0317320812223284e-01
+3.9940458434376452e-01
+3.9564613391890380e-01
+3.9189783619763102e-01
+3.8815967042745891e-01
+3.8443161663247982e-01
+3.8071365569241089e-01
+3.7700576851056578e-01
+3.7330793611854435e-01
+3.6962013961963686e-01
+3.6594235992650043e-01
+3.6227457695106768e-01
+3.5861677020236105e-01
+3.5496891950658410e-01
+3.5133100585624338e-01
+3.4770301046368030e-01
+3.4408491457005597e-01
+3.4047669950475729e-01
+3.3687834655434751e-01
+3.3328983631683762e-01
+3.2971114860807083e-01
+3.2614226325023288e-01
+3.2258316107667101e-01
+3.1903382359970867e-01
+3.1549423232154855e-01
+3.1196436877744421e-01
+3.0844421449517717e-01
+3.0493375071565515e-01
+3.0143295774748091e-01
+2.9794181566833589e-01
+2.9446030505285481e-01
+2.9098840751426902e-01
+2.8752610476261109e-01
+2.8407337852734194e-01
+2.8063021056751464e-01
+2.7719658255828095e-01
+2.7377247542210609e-01
+2.7035786953584989e-01
+2.6695274538881208e-01
+2.6355708450957138e-01
+2.6017086883916951e-01
+2.5679408031046180e-01
+2.5342670091062375e-01
+2.5006871261181013e-01
+2.4672009695982283e-01
+2.4338083463867360e-01
+2.4005090621439445e-01
+2.3673029296338777e-01
+2.3341897705237905e-01
+2.3011694067376945e-01
+2.2682416599694136e-01
+2.2354063516582542e-01
+2.2026633018627170e-01
+2.1700123227730814e-01
+2.1374532229699220e-01
+2.1049858133796942e-01
+2.0726099151240812e-01
+2.0403253515730321e-01
+2.0081319461436950e-01
+1.9760295227414376e-01
+1.9440179049272527e-01
+1.9120969108119815e-01
+1.8802663515471132e-01
+1.8485260380640042e-01
+1.8168757892697682e-01
+1.7853154301675486e-01
+1.7538447857702255e-01
+1.7224636819630251e-01
+1.6911719448567455e-01
+1.6599693981521163e-01
+1.6288558566386130e-01
+1.5978311325993308e-01
+1.5668950423018421e-01
+1.5360474116090697e-01
+1.5052880674759464e-01
+1.4746168371307725e-01
+1.4440335482785696e-01
+1.4135380279655699e-01
+1.3831300964157733e-01
+1.3528095682917995e-01
+1.3225762589861717e-01
+1.2924299930460340e-01
+1.2623705992033135e-01
+1.2323979060925480e-01
+1.2025117428163770e-01
+1.1727119383712020e-01
+1.1429983183629591e-01
+1.1133707006658287e-01
+1.0838289018660992e-01
+1.0543727438703181e-01
+1.0250020561957784e-01
+9.9571666870360648e-02
+9.6651641181714820e-02
+9.3740111638442147e-02
+9.0837061208582093e-02
+8.7942472088982496e-02
+8.5056326078399497e-02
+8.2178605161814716e-02
+7.9309292283479146e-02
+7.6448370636280030e-02
+7.3595823389802584e-02
+7.0751633699649999e-02
+6.7915784687124559e-02
+6.5088259068698473e-02
+6.2269038980939641e-02
+5.9458106519773443e-02
+5.6655444365700011e-02
+5.3861035707419222e-02
+5.1074863739432728e-02
+4.8296911774790945e-02
+4.5527163173997409e-02
+4.2765601110105883e-02
+4.0012207975862732e-02
+3.7266965913325401e-02
+3.4529857370258224e-02
+3.1800865648738193e-02
+2.9079974165996114e-02
+2.6367166324274122e-02
+2.3662425518049385e-02
+2.0965735090429323e-02
+1.8277077875780010e-02
+1.5596436241663557e-02
+1.2923792590426308e-02
+1.0259130037890002e-02
+7.6024320726664095e-03
+4.9536821746072740e-03
+2.3128638725399679e-03
+-3.2003930936151209e-04
+-2.9450441074044798e-03
+-5.5621679262559832e-03
+-8.1714283023581712e-03
+-1.0772842373706813e-02
+-1.3366426625324061e-02
+-1.5952197504891300e-02
+-1.8530171394606578e-02
+-2.1100364615763020e-02
+-2.3662793579655231e-02
+-2.6217475366596840e-02
+-2.8764427447128236e-02
+-3.1303667159498352e-02
+-3.3835211012484913e-02
+-3.6359075264967372e-02
+-3.8875276210057895e-02
+-4.1383830188282067e-02
+-4.3884753575148865e-02
+-4.6378063060371059e-02
+-4.8863775838262770e-02
+-5.1341909153904325e-02
+-5.3812479769701660e-02
+-5.6275503970032267e-02
+-5.8730998038035741e-02
+-6.1178978213164238e-02
+-6.3619460720257939e-02
+-6.6052461913278432e-02
+-6.8477998732244430e-02
+-7.0896088334245433e-02
+-7.3306747690566748e-02
+-7.5709993154079100e-02
+-7.8105840982168065e-02
+-8.0494307372241697e-02
+-8.2875408397736466e-02
+-8.5249160164058910e-02
+-8.7615579298834151e-02
+-8.9974682968012976e-02
+-9.2326488323650632e-02
+-9.4671011836345603e-02
+-9.7008269568019639e-02
+-9.9338277598392602e-02
+-1.0166105202034138e-01
+-1.0397660894852760e-01
+-1.0628496470293673e-01
+-1.0858613619610512e-01
+-1.1088014047581390e-01
+-1.1316699427014222e-01
+-1.1544671370550350e-01
+-1.1771931486631618e-01
+-1.1998481381011623e-01
+-1.2224322656352944e-01
+-1.2449456922103604e-01
+-1.2673885841670127e-01
+-1.2897611114030513e-01
+-1.3120634429548250e-01
+-1.3342957410086065e-01
+-1.3564581653678490e-01
+-1.3785508761353418e-01
+-1.4005740338221814e-01
+-1.4225277992501842e-01
+-1.4444123358081032e-01
+-1.4662278115104924e-01
+-1.4879743949798993e-01
+-1.5096522510187510e-01
+-1.5312615401145127e-01
+-1.5528024227036374e-01
+-1.5742750586738871e-01
+-1.5956796076305382e-01
+-1.6170162302809546e-01
+-1.6382850929899986e-01
+-1.6594863644837976e-01
+-1.6806202117205329e-01
+-1.7016867948443840e-01
+-1.7226862727146752e-01
+-1.7436188039749323e-01
+-1.7644845465959200e-01
+-1.7852836587889176e-01
+-1.8060163020432241e-01
+-1.8266826416354737e-01
+-1.8472828428443988e-01
+-1.8678170653066009e-01
+-1.8882854647981087e-01
+-1.9086881971060238e-01
+-1.9290254172564630e-01
+-1.9492972801113667e-01
+-1.9695039420879493e-01
+-1.9896455646252736e-01
+-2.0097223104791778e-01
+-2.0297343393799436e-01
+-2.0496818045450618e-01
+-2.0695648585871032e-01
+-2.0893836539649124e-01
+-2.1091383428977978e-01
+-2.1288290780675750e-01
+-2.1484560158533686e-01
+-2.1680193153904531e-01
+-2.1875191352269543e-01
+-2.2069556279579805e-01
+-2.2263289437818623e-01
+-2.2456392328016148e-01
+-2.2648866441280560e-01
+-2.2840713268241164e-01
+-2.3031934321525013e-01
+-2.3222531158484816e-01
+-2.3412505343233833e-01
+-2.3601858399784981e-01
+-2.3790591800617628e-01
+-2.3978707016678610e-01
+-2.4166205515853365e-01
+-2.4353088764260264e-01
+-2.4539358235199865e-01
+-2.4725015440813530e-01
+-2.4910061911824172e-01
+-2.5094499166655143e-01
+-2.5278328667118843e-01
+-2.5461551862524556e-01
+-2.5644170197784200e-01
+-2.5826185105071503e-01
+-2.6007598017447831e-01
+-2.6188410398666845e-01
+-2.6368623752357806e-01
+-2.6548239583706718e-01
+-2.6727259348468962e-01
+-2.6905684463793889e-01
+-2.7083516346909686e-01
+-2.7260756409455367e-01
+-2.7437406061642211e-01
+-2.7613466724941238e-01
+-2.7788939861179518e-01
+-2.7963826944346709e-01
+-2.8138129427505415e-01
+-2.8311848711367960e-01
+-2.8484986190778888e-01
+-2.8657543254615842e-01
+-2.8829521282712572e-01
+-2.9000921658265921e-01
+-2.9171745800515619e-01
+-2.9341995158781559e-01
+-2.9511671178078769e-01
+-2.9680775246110841e-01
+-2.9849308723826357e-01
+-3.0017272973323500e-01
+-3.0184669355461607e-01
+-3.0351499232314716e-01
+-3.0517763981281992e-01
+-3.0683465014454059e-01
+-3.0848603750300302e-01
+-3.1013181575418192e-01
+-3.1177199829645447e-01
+-3.1340659850908376e-01
+-3.1503562975893601e-01
+-3.1665910540512709e-01
+-3.1827703886047776e-01
+-3.1988944385012219e-01
+-3.2149633426797086e-01
+-3.2309772391535246e-01
+-3.2469362608513319e-01
+-3.2628405393780252e-01
+-3.2786902061610151e-01
+-3.2944853918535738e-01
+-3.3102262271921717e-01
+-3.3259128452190262e-01
+-3.3415453823333902e-01
+-3.3571239751722526e-01
+-3.3726487562874280e-01
+-3.3881198545960201e-01
+-3.4035373990182727e-01
+-3.4189015181462890e-01
+-3.4342123404901531e-01
+-3.4494699953994473e-01
+-3.4646746155494340e-01
+-3.4798263347571340e-01
+-3.4949252851872448e-01
+-3.5099715942079990e-01
+-3.5249653885391657e-01
+-3.5399067945859441e-01
+-3.5547959381534822e-01
+-3.5696329452985814e-01
+-3.5844179449056013e-01
+-3.5991510685087674e-01
+-3.6138324474073558e-01
+-3.6284622081104406e-01
+-3.6430404745613654e-01
+-3.6575673707557654e-01
+-3.6720430203383614e-01
+-3.6864675469715069e-01
+-3.7008410756436944e-01
+-3.7151637347471556e-01
+-3.7294356533875317e-01
+-3.7436569580397450e-01
+-3.7578277707670227e-01
+-3.7719482133741644e-01
+-3.7860184074387637e-01
+-3.8000384743227961e-01
+-3.8140085358269249e-01
+-3.8279287166705289e-01
+-3.8417991433371285e-01
+-3.8556199415481374e-01
+-3.8693912320540930e-01
+-3.8831131340762914e-01
+-3.8967857669771933e-01
+-3.9104092501901128e-01
+-3.9239837033236880e-01
+-3.9375092474548778e-01
+-3.9509860060339780e-01
+-3.9644141027690477e-01
+-3.9777936583114437e-01
+-3.9911247902150931e-01
+-4.0044076160105874e-01
+-4.0176422528376293e-01
+-4.0308288176697110e-01
+-4.0439674281137927e-01
+-4.0570582045439546e-01
+-4.0701012684111687e-01
+-4.0830967398703893e-01
+-4.0960447346877732e-01
+-4.1089453679203936e-01
+-4.1217987547393531e-01
+-4.1346050103855447e-01
+-4.1473642503115787e-01
+-4.1600765914386523e-01
+-4.1727421522280239e-01
+-4.1853610510962991e-01
+-4.1979334034531574e-01
+-4.2104593228807413e-01
+-4.2229389229169767e-01
+-4.2353723162041879e-01
+-4.2477596151650238e-01
+-4.2601009332042067e-01
+-4.2723963865403841e-01
+-4.2846460920776003e-01
+-4.2968501648434382e-01
+-4.3090087162413254e-01
+-4.3211218574089610e-01
+-4.3331896991344648e-01
+-4.3452123518053432e-01
+-4.3571899261354030e-01
+-4.3691225352869933e-01
+-4.3810102940852325e-01
+-4.3928533168441097e-01
+-4.4046517137077756e-01
+-4.4164055933323204e-01
+-4.4281150644900613e-01
+-4.4397802359762290e-01
+-4.4514012167235484e-01
+-4.4629781166607363e-01
+-4.4745110474951338e-01
+-4.4860001212018852e-01
+-4.4974454475615899e-01
+-4.5088471338170388e-01
+-4.5202052871845294e-01
+-4.5315200145904422e-01
+-4.5427914228121918e-01
+-4.5540196190041543e-01
+-4.5652047119458455e-01
+-4.5763468111590805e-01
+-4.5874460255033711e-01
+-4.5985024610683417e-01
+-4.6095162234432119e-01
+-4.6204874179025879e-01
+-4.6314161489282524e-01
+-4.6423025210811791e-01
+-4.6531466404037042e-01
+-4.6639486146772952e-01
+-4.6747085517106018e-01
+-4.6854265565198455e-01
+-4.6961027321731585e-01
+-4.7067371817738535e-01
+-4.7173300081035524e-01
+-4.7278813138966774e-01
+-4.7383912025167874e-01
+-4.7488597792724868e-01
+-4.7592871500332745e-01
+-4.7696734192859314e-01
+-4.7800186884287121e-01
+-4.7903230585907242e-01
+-4.8005866308793754e-01
+-4.8108095063393891e-01
+-4.8209917862185858e-01
+-4.8311335729101612e-01
+-4.8412349696966328e-01
+-4.8512960796838778e-01
+-4.8613170036816189e-01
+-4.8712978415806429e-01
+-4.8812386930972085e-01
+-4.8911396568630983e-01
+-4.9010008313559617e-01
+-4.9108223160587977e-01
+-4.9206042125023414e-01
+-4.9303466225685605e-01
+-4.9400496464415733e-01
+-4.9497133820605582e-01
+-4.9593379272909033e-01
+-4.9689233793069215e-01
+-4.9784698347785244e-01
+-4.9879773907528985e-01
+-4.9974461463377207e-01
+-5.0068762016558188e-01
+-5.0162676561135988e-01
+-5.0256206057188524e-01
+-5.0349351457090818e-01
+-5.0442113715707249e-01
+-5.0534493791866297e-01
+-5.0626492646186561e-01
+-5.0718111243201947e-01
+-5.0809350552259147e-01
+-5.0900211543476515e-01
+-5.0990695174774991e-01
+-5.1080802394481017e-01
+-5.1170534149987401e-01
+-5.1259891374469768e-01
+-5.1348874995031790e-01
+-5.1437485945685812e-01
+-5.1525725186015259e-01
+-5.1613593683424963e-01
+-5.1701092391729986e-01
+-5.1788222230052816e-01
+-5.1874984113554157e-01
+-5.1961378961320104e-01
+-5.2047407697438264e-01
+-5.2133071247748120e-01
+-5.2218370542298320e-01
+-5.2303306514888481e-01
+-5.2387880098642026e-01
+-5.2472092210801813e-01
+-5.2555943761362922e-01
+-5.2639435659533507e-01
+-5.2722568806748138e-01
+-5.2805344103171148e-01
+-5.2887762455038756e-01
+-5.2969824781975683e-01
+-5.3051532006487012e-01
+-5.3132885037552857e-01
+-5.3213884763672403e-01
+-5.3294532072688305e-01
+-5.3374827850611861e-01
+-5.3454772981999332e-01
+-5.3534368353858697e-01
+-5.3613614865883497e-01
+-5.3692513424957355e-01
+-5.3771064933177004e-01
+-5.3849270265046556e-01
+-5.3927130287772429e-01
+-5.4004645870849621e-01
+-5.4081817887826433e-01
+-5.4158647213941769e-01
+-5.4235134726224632e-01
+-5.4311281303798387e-01
+-5.4387087826519831e-01
+-5.4462555164446991e-01
+-5.4537684178780110e-01
+-5.4612475730612375e-01
+-5.4686930673572220e-01
+-5.4761049857784183e-01
+-5.4834834136548860e-01
+-5.4908284374473815e-01
+-5.4981401440486033e-01
+-5.5054186197756716e-01
+-5.5126639491443175e-01
+-5.5198762164507498e-01
+-5.5270555055887050e-01
+-5.5342018997386111e-01
+-5.5413154821742650e-01
+-5.5483963373877832e-01
+-5.5554445510377748e-01
+-5.5624602087243058e-01
+-5.5694433940355659e-01
+-5.5763941894710400e-01
+-5.5833126774675179e-01
+-5.5901989397270790e-01
+-5.5970530577899513e-01
+-5.6038751138236376e-01
+-5.6106651915970185e-01
+-5.6174233752441505e-01
+-5.6241497477746116e-01
+-5.6308443902457850e-01
+-5.6375073836065825e-01
+-5.6441388083681354e-01
+-5.6507387446076185e-01
+-5.6573072726197127e-01
+-5.6638444741586980e-01
+-5.6703504318867082e-01
+-5.6768252280968057e-01
+-5.6832689425075156e-01
+-5.6896816540338990e-01
+-5.6960634417333156e-01
+-5.7024143848767139e-01
+-5.7087345628645114e-01
+-5.7150240553065723e-01
+-5.7212829420970013e-01
+-5.7275113032219616e-01
+-5.7337092179397486e-01
+-5.7398767647517401e-01
+-5.7460140221488043e-01
+-5.7521210678816725e-01
+-5.7581979792855886e-01
+-5.7642448339179841e-01
+-5.7702617101549780e-01
+-5.7762486867324514e-01
+-5.7822058419992073e-01
+-5.7881332528436980e-01
+-5.7940309959460201e-01
+-5.7998991478041173e-01
+-5.8057377845000557e-01
+-5.8115469821871568e-01
+-5.8173268177269022e-01
+-5.8230773687362181e-01
+-5.8287987127935847e-01
+-5.8344909255574195e-01
+-5.8401540814882635e-01
+-5.8457882551811480e-01
+-5.8513935216626256e-01
+-5.8569699561836508e-01
+-5.8625176340237195e-01
+-5.8680366303207121e-01
+-5.8735270202617229e-01
+-5.8789888789663114e-01
+-5.8844222813353242e-01
+-5.8898273022800451e-01
+-5.8952040152536755e-01
+-5.9005524920588459e-01
+-5.9058728046772824e-01
+-5.9111650273273131e-01
+-5.9164292357597259e-01
+-5.9216655053685874e-01
+-5.9268739085893452e-01
+-5.9320545167628713e-01
+-5.9372074014850307e-01
+-5.9423326350108219e-01
+-5.9474302898148623e-01
+-5.9525004385162894e-01
+-5.9575431539254342e-01
+-5.9625585089286448e-01
+-5.9675465755119805e-01
+-5.9725074245908860e-01
+-5.9774411270909322e-01
+-5.9823477537925429e-01
+-5.9872273754030747e-01
+-5.9920800627287940e-01
+-5.9969058867234804e-01
+-6.0017049184569782e-01
+-6.0064772289076329e-01
+-6.0112228884691221e-01
+-6.0159419674705195e-01
+-6.0206345358348679e-01
+-6.0253006625455752e-01
+-6.0299404165635584e-01
+-6.0345538673996857e-01
+-6.0391410852156535e-01
+-6.0437021402200608e-01
+-6.0482371016157310e-01
+-6.0527460378970355e-01
+-6.0572290175266830e-01
+-6.0616861083297868e-01
+-6.0661173779109734e-01
+-6.0705228941897116e-01
+-6.0749027260418498e-01
+-6.0792569426374088e-01
+-6.0835856125395760e-01
+-6.0878888028944811e-01
+-6.0921665807311953e-01
+-6.0964190128251161e-01
+-6.1006461656050104e-01
+-6.1048481055981096e-01
+-6.1090248999893082e-01
+-6.1131766164845158e-01
+-6.1173033227143159e-01
+-6.1214050851145085e-01
+-6.1254819696362861e-01
+-6.1295340421313671e-01
+-6.1335613678015333e-01
+-6.1375640117510410e-01
+-6.1415420394913245e-01
+-6.1454955173458781e-01
+-6.1494245118000690e-01
+-6.1533290884382918e-01
+-6.1572093116224214e-01
+-6.1610652457052351e-01
+-6.1648969550698485e-01
+-6.1687045041409172e-01
+-6.1724879574438463e-01
+-6.1762473797253781e-01
+-6.1799828358804421e-01
+-6.1836943905698916e-01
+-6.1873821071972335e-01
+-6.1910460488961372e-01
+-6.1946862789319135e-01
+-6.1983028607686075e-01
+-6.2018958579638483e-01
+-6.2054653339017629e-01
+-6.2090113516951895e-01
+-6.2125339744760510e-01
+-6.2160332648427485e-01
+-6.2195092849672884e-01
+-6.2229620970869381e-01
+-6.2263917635172383e-01
+-6.2297983466532558e-01
+-6.2331819088589735e-01
+-6.2365425120857643e-01
+-6.2398802182285118e-01
+-6.2431950890383037e-01
+-6.2464871857936033e-01
+-6.2497565697611990e-01
+-6.2530033019332021e-01
+-6.2562274428710907e-01
+-6.2594290531897168e-01
+-6.2626081938431399e-01
+-6.2657649260882697e-01
+-6.2688993111399527e-01
+-6.2720114091943513e-01
+-6.2751012799674510e-01
+-6.2781689832103516e-01
+-6.2812145785779183e-01
+-6.2842381257518121e-01
+-6.2872396845399336e-01
+-6.2902193149549379e-01
+-6.2931770770967510e-01
+-6.2961130305929003e-01
+-6.2990272343225384e-01
+-6.3019197471443200e-01
+-6.3047906274584020e-01
+-6.3076399332614841e-01
+-6.3104677226735029e-01
+-6.3132740544828803e-01
+-6.3160589878683293e-01
+-6.3188225818195909e-01
+-6.3215648941050528e-01
+-6.3242859821741582e-01
+-6.3269859034831033e-01
+-6.3296647153816044e-01
+-6.3323224752649132e-01
+-6.3349592407536282e-01
+-6.3375750697800137e-01
+-6.3401700203196976e-01
+-6.3427441493834680e-01
+-6.3452975130851641e-01
+-6.3478301675969295e-01
+-6.3503421693904794e-01
+-6.3528335751355969e-01
+-6.3553044414843496e-01
+-6.3577548246979976e-01
+-6.3601847809621448e-01
+-6.3625943663946927e-01
+-6.3649836367919799e-01
+-6.3673526479478337e-01
+-6.3697014554356601e-01
+-6.3720301144237945e-01
+-6.3743386801021928e-01
+-6.3766272076367869e-01
+-6.3788957521719425e-01
+-6.3811443689011982e-01
+-6.3833731129207527e-01
+-6.3855820392996554e-01
+-6.3877712029669231e-01
+-6.3899406578094398e-01
+-6.3920904574128468e-01
+-6.3942206556287229e-01
+-6.3963313069646821e-01
+-6.3984224660967071e-01
+-6.4004941871095256e-01
+-6.4025465230311029e-01
+-6.4045795268695194e-01
+-6.4065932522447677e-01
+-6.4085877533967972e-01
+-6.4105630845152650e-01
+-6.4125192983410961e-01
+-6.4144564467663057e-01
+-6.4163745818909401e-01
+-6.4182737567515924e-01
+-6.4201540247540978e-01
+-6.4220154389801276e-01
+-6.4238580513645371e-01
+-6.4256819136746324e-01
+-6.4274870779261661e-01
+-6.4292735965266945e-01
+-6.4310415219556261e-01
+-6.4327909060704858e-01
+-6.4345218000674964e-01
+-6.4362342551813612e-01
+-6.4379283228166495e-01
+-6.4396040545086031e-01
+-6.4412615017176988e-01
+-6.4429007151462836e-01
+-6.4445217452602277e-01
+-6.4461246427382290e-01
+-6.4477094588111772e-01
+-6.4492762448669294e-01
+-6.4508250517761201e-01
+-6.4523559293939214e-01
+-6.4538689275230943e-01
+-6.4553640961118264e-01
+-6.4568414852622669e-01
+-6.4583011451199912e-01
+-6.4597431256165505e-01
+-6.4611674765639104e-01
+-6.4625742477336467e-01
+-6.4639634883495733e-01
+-6.4653352474639281e-01
+-6.4666895742138075e-01
+-6.4680265178814367e-01
+-6.4693461278242215e-01
+-6.4706484530515362e-01
+-6.4719335418405943e-01
+-6.4732014424438300e-01
+-6.4744522033719265e-01
+-6.4756858734232703e-01
+-6.4769025014191262e-01
+-6.4781021356164747e-01
+-6.4792848239040823e-01
+-6.4804506142178764e-01
+-6.4815995545316107e-01
+-6.4827316928693679e-01
+-6.4838470771120904e-01
+-6.4849457544787992e-01
+-6.4860277720860537e-01
+-6.4870931771764206e-01
+-6.4881420171886450e-01
+-6.4891743396198098e-01
+-6.4901901914982041e-01
+-6.4911896192798613e-01
+-6.4921726694551907e-01
+-6.4931393887682243e-01
+-6.4940898241604939e-01
+-6.4950240225549782e-01
+-6.4959420303959048e-01
+-6.4968438939603512e-01
+-6.4977296594576683e-01
+-6.4985993726923463e-01
+-6.4994530794158256e-01
+-6.5002908252922664e-01
+-6.5011126557391097e-01
+-6.5019186161974551e-01
+-6.5027087524127525e-01
+-6.5034831104963731e-01
+-6.5042417365505201e-01
+-6.5049846755338547e-01
+-6.5057119715667167e-01
+-6.5064236689296018e-01
+-6.5071198128736329e-01
+-6.5078004491045582e-01
+-6.5084656230277993e-01
+-6.5091153787029621e-01
+-6.5097497599004917e-01
+-6.5103688106683733e-01
+-6.5109725756044456e-01
+-6.5115610994129414e-01
+-6.5121344263204295e-01
+-6.5126925999165663e-01
+-6.5132356638026856e-01
+-6.5137636617137240e-01
+-6.5142766375001171e-01
+-6.5147746350084235e-01
+-6.5152576977000776e-01
+-6.5157258688889674e-01
+-6.5161791918957956e-01
+-6.5166177099120215e-01
+-6.5170414661330811e-01
+-6.5174505035339825e-01
+-6.5178448645123643e-01
+-6.5182245914334147e-01
+-6.5185897269428572e-01
+-6.5189403140485624e-01
+-6.5192763957926647e-01
+-6.5195980146389765e-01
+-6.5199052125926482e-01
+-6.5201980316939034e-01
+-6.5204765140300813e-01
+-6.5207407017371544e-01
+-6.5209906368176829e-01
+-6.5212263605327836e-01
+-6.5214479139805459e-01
+-6.5216553386885612e-01
+-6.5218486771535256e-01
+-6.5220279720328378e-01
+-6.5221932648242331e-01
+-6.5223445953666126e-01
+-6.5224820034738518e-01
+-6.5226055299801078e-01
+-6.5227152165880875e-01
+-6.5228111049884174e-01
+-6.5228932361950565e-01
+-6.5229616509089794e-01
+-6.5230163896710647e-01
+-6.5230574921406559e-01
+-6.5230849977625693e-01
+-6.5230989465183142e-01
+-6.5230993796753234e-01
+-6.5230863387209026e-01
+-6.5230598640816895e-01
+-6.5230199945991141e-01
+-6.5229667690605775e-01
+-6.5229002268683134e-01
+-6.5228204079708596e-01
+-6.5227273523228468e-01
+-6.5226210994175204e-01
+-6.5225016885301557e-01
+-6.5223691589826016e-01
+-6.5222235501561743e-01
+-6.5220649014815713e-01
+-6.5218932521062978e-01
+-6.5217086403528535e-01
+-6.5215111044476648e-01
+-6.5213006827411790e-01
+-6.5210774137503646e-01
+-6.5208413360623840e-01
+-6.5205924886039068e-01
+-6.5203309106165419e-01
+-6.5200566412339500e-01
+-6.5197697181174952e-01
+-6.5194701781484832e-01
+-6.5191580584168074e-01
+-6.5188333969197065e-01
+-6.5184962319666151e-01
+-6.5181466018355261e-01
+-6.5177845446387028e-01
+-6.5174100984846994e-01
+-6.5170233007559164e-01
+-6.5166241876447550e-01
+-6.5162127953205329e-01
+-6.5157891609603125e-01
+-6.5153533227055116e-01
+-6.5149053186692274e-01
+-6.5144451859403874e-01
+-6.5139729610454600e-01
+-6.5134886804783265e-01
+-6.5129923804207479e-01
+-6.5124840969811970e-01
+-6.5119638664360979e-01
+-6.5114317254698106e-01
+-6.5108877108724383e-01
+-6.5103318593019666e-01
+-6.5097642071671857e-01
+-6.5091847908610112e-01
+-6.5085936461362259e-01
+-6.5079908081087745e-01
+-6.5073763119751771e-01
+-6.5067501936902838e-01
+-6.5061124896746603e-01
+-6.5054632362277787e-01
+-6.5048024687695427e-01
+-6.5041302224466246e-01
+-6.5034465323089585e-01
+-6.5027514330316905e-01
+-6.5020449592553897e-01
+-6.5013271460089228e-01
+-6.5005980289689780e-01
+-6.4998576438890654e-01
+-6.4991060259558475e-01
+-6.4983432097666916e-01
+-6.4975692298815901e-01
+-6.4967841203781285e-01
+-6.4959879150507716e-01
+-6.4951806478561180e-01
+-6.4943623535271278e-01
+-6.4935330670990876e-01
+-6.4926928233687375e-01
+-6.4918416562868153e-01
+-6.4909795996666941e-01
+-6.4901066873297120e-01
+-6.4892229530802570e-01
+-6.4883284307429734e-01
+-6.4874231538590676e-01
+-6.4865071556604104e-01
+-6.4855804694442287e-01
+-6.4846431290670492e-01
+-6.4836951687593247e-01
+-6.4827366225631133e-01
+-6.4817675231562633e-01
+-6.4807879027300719e-01
+-6.4797977936777251e-01
+-6.4787972289832252e-01
+-6.4777862417846321e-01
+-6.4767648654467203e-01
+-6.4757331337316737e-01
+-6.4746910804300872e-01
+-6.4736387379467697e-01
+-6.4725761371214674e-01
+-6.4715033088749330e-01
+-6.4704202857764648e-01
+-6.4693271015151688e-01
+-6.4682237895630146e-01
+-6.4671103816885922e-01
+-6.4659869090162336e-01
+-6.4648534029683791e-01
+-6.4637098959269568e-01
+-6.4625564205069974e-01
+-6.4613930087631821e-01
+-6.4602196916022603e-01
+-6.4590364998498506e-01
+-6.4578434651094274e-01
+-6.4566406198911941e-01
+-6.4554279966800643e-01
+-6.4542056265525116e-01
+-6.4529735396083543e-01
+-6.4517317660983320e-01
+-6.4504803372265540e-01
+-6.4492192846074614e-01
+-6.4479486398302888e-01
+-6.4466684342949399e-01
+-6.4453786993803386e-01
+-6.4440794658241796e-01
+-6.4427707629975017e-01
+-6.4414526201557365e-01
+-6.4401250674583321e-01
+-6.4387881361629440e-01
+-6.4374418575971948e-01
+-6.4360862627198057e-01
+-6.4347213822291249e-01
+-6.4333472466685426e-01
+-6.4319638853410688e-01
+-6.4305713270377707e-01
+-6.4291696008073274e-01
+-6.4277587366045319e-01
+-6.4263387646274650e-01
+-6.4249097152517043e-01
+-6.4234716191987640e-01
+-6.4220245072276250e-01
+-6.4205684087577763e-01
+-6.4191033514923224e-01
+-6.4176293631562265e-01
+-6.4161464730438356e-01
+-6.4146547116525365e-01
+-6.4131541093661926e-01
+-6.4116446953061457e-01
+-6.4101264980468586e-01
+-6.4085995462288869e-01
+-6.4070638686750658e-01
+-6.4055194942769289e-01
+-6.4039664518007544e-01
+-6.4024047696894604e-01
+-6.4008344763757541e-01
+-6.3992556006330015e-01
+-6.3976681716769690e-01
+-6.3960722187007257e-01
+-6.3944677696340990e-01
+-6.3928548514101846e-01
+-6.3912334911244384e-01
+-6.3896037171502840e-01
+-6.3879655584746242e-01
+-6.3863190439927253e-01
+-6.3846642020988142e-01
+-6.3830010610757792e-01
+-6.3813296487684934e-01
+-6.3796499919433047e-01
+-6.3779621172479573e-01
+-6.3762660519295056e-01
+-6.3745618240539126e-01
+-6.3728494617553877e-01
+-6.3711289928670312e-01
+-6.3694004449779140e-01
+-6.3676638456151036e-01
+-6.3659192216549354e-01
+-6.3641665996708818e-01
+-6.3624060062781684e-01
+-6.3606374681886479e-01
+-6.3588610121624900e-01
+-6.3570766652844846e-01
+-6.3552844554006560e-01
+-6.3534844104792998e-01
+-6.3516765575872725e-01
+-6.3498609224765235e-01
+-6.3480375308354597e-01
+-6.3462064086206871e-01
+-6.3443675820239376e-01
+-6.3425210773465834e-01
+-6.3406669215613576e-01
+-6.3388051419973668e-01
+-6.3369357656723269e-01
+-6.3350588180419565e-01
+-6.3331743241289662e-01
+-6.3312823092847936e-01
+-6.3293827996697938e-01
+-6.3274758215944815e-01
+-6.3255614012622630e-01
+-6.3236395647011534e-01
+-6.3217103379169259e-01
+-6.3197737463127357e-01
+-6.3178298147528400e-01
+-6.3158785681714646e-01
+-6.3139200321058075e-01
+-6.3119542324267386e-01
+-6.3099811949813200e-01
+-6.3080009453815966e-01
+-6.3060135091863601e-01
+-6.3040189115997503e-01
+-6.3020171768188649e-01
+-6.3000083289021203e-01
+-6.2979923924945858e-01
+-6.2959693931481897e-01
+-6.2939393564992940e-01
+-6.2919023078139236e-01
+-6.2898582720129259e-01
+-6.2878072739475044e-01
+-6.2857493377162543e-01
+-6.2836844870106667e-01
+-6.2816127456328352e-01
+-6.2795341378706071e-01
+-6.2774486881840419e-01
+-6.2753564212414026e-01
+-6.2732573622544541e-01
+-6.2711515365403869e-01
+-6.2690389686092374e-01
+-6.2669196816318395e-01
+-6.2647936986809427e-01
+-6.2626610429411211e-01
+-6.2605217377066580e-01
+-6.2583758064440642e-01
+-6.2562232741009949e-01
+-6.2540641664952379e-01
+-6.2518985089032286e-01
+-6.2497263235319156e-01
+-6.2475476315805079e-01
+-6.2453624550221398e-01
+-6.2431708180870116e-01
+-6.2409727454378205e-01
+-6.2387682613461881e-01
+-6.2365573893971915e-01
+-6.2343401530986942e-01
+-6.2321165752273811e-01
+-6.2298866778159423e-01
+-6.2276504829579338e-01
+-6.2254080135412115e-01
+-6.2231592929437984e-01
+-6.2209043446089107e-01
+-6.2186431921986440e-01
+-6.2163758594669938e-01
+-6.2141023695040176e-01
+-6.2118227432826612e-01
+-6.2095370013950257e-01
+-6.2072451655783278e-01
+-6.2049472595960153e-01
+-6.2026433074143239e-01
+-6.2003333322954468e-01
+-6.1980173567540819e-01
+-6.1956954032079836e-01
+-6.1933674931629157e-01
+-6.1910336475567740e-01
+-6.1886938875240516e-01
+-6.1863482353079802e-01
+-6.1839967135715546e-01
+-6.1816393449583107e-01
+-6.1792761519944428e-01
+-6.1769071571932133e-01
+-6.1745323823351073e-01
+-6.1721518478162207e-01
+-6.1697655739383617e-01
+-6.1673735820809739e-01
+-6.1649758948112587e-01
+-6.1625725347172622e-01
+-6.1601635236685837e-01
+-6.1577488830690597e-01
+-6.1553286342404634e-01
+-6.1529027979368345e-01
+-6.1504713947079781e-01
+-6.1480344452694158e-01
+-6.1455919708539375e-01
+-6.1431439928231280e-01
+-6.1406905327457195e-01
+-6.1382316125729508e-01
+-6.1357672542736930e-01
+-6.1332974784635563e-01
+-6.1308223041977117e-01
+-6.1283417505943361e-01
+-6.1258558384491868e-01
+-6.1233645897170885e-01
+-6.1208680262573600e-01
+-6.1183661690424185e-01
+-6.1158590387021816e-01
+-6.1133466556812321e-01
+-6.1108290397107934e-01
+-6.1083062103794161e-01
+-6.1057781875302453e-01
+-6.1032449915032427e-01
+-6.1007066427268275e-01
+-6.0981631619880905e-01
+-6.0956145705001641e-01
+-6.0930608893932170e-01
+-6.0905021380993540e-01
+-6.0879383348397598e-01
+-6.0853694980802064e-01
+-6.0827956480346035e-01
+-6.0802168056604899e-01
+-6.0776329917438299e-01
+-6.0750442263605120e-01
+-6.0724505294325737e-01
+-6.0698519204966916e-01
+-6.0672484182498043e-01
+-6.0646400413151680e-01
+-6.0620268089530482e-01
+-6.0594087412152031e-01
+-6.0567858581896150e-01
+-6.0541581795252697e-01
+-6.0515257245481824e-01
+-6.0488885125615022e-01
+-6.0462465626451056e-01
+-6.0435998937916813e-01
+-6.0409485249254913e-01
+-6.0382924746484368e-01
+-6.0356317614989119e-01
+-6.0329664044497400e-01
+-6.0302964234148193e-01
+-6.0276218384274149e-01
+-6.0249426686062446e-01
+-6.0222589318727948e-01
+-6.0195706461124132e-01
+-6.0168778296501191e-01
+-6.0141805011571925e-01
+-6.0114786793721742e-01
+-6.0087723833572804e-01
+-6.0060616323329064e-01
+-6.0033464452238661e-01
+-6.0006268396741858e-01
+-5.9979028330115558e-01
+-5.9951744429288112e-01
+-5.9924416879427955e-01
+-5.9897045867078347e-01
+-5.9869631581362037e-01
+-5.9842174214839883e-01
+-5.9814673959305698e-01
+-5.9787130987549364e-01
+-5.9759545456971097e-01
+-5.9731917527817779e-01
+-5.9704247385490161e-01
+-5.9676535227510108e-01
+-5.9648781247849836e-01
+-5.9620985624176570e-01
+-5.9593148529868889e-01
+-5.9565270137696358e-01
+-5.9537350618714524e-01
+-5.9509390143917229e-01
+-5.9481388886959208e-01
+-5.9453347025193926e-01
+-5.9425264736411609e-01
+-5.9397142198560049e-01
+-5.9368979589746529e-01
+-5.9340777087225227e-01
+-5.9312534859844823e-01
+-5.9284253072336279e-01
+-5.9255931890974123e-01
+-5.9227571488619024e-01
+-5.9199172040116343e-01
+-5.9170733719961233e-01
+-5.9142256701505247e-01
+-5.9113741157993560e-01
+-5.9085187259308469e-01
+-5.9056595170289428e-01
+-5.9027965055524667e-01
+-5.8999297079944280e-01
+-5.8970591408798234e-01
+-5.8941848208548975e-01
+-5.8913067655092055e-01
+-5.8884249929323518e-01
+-5.8855395207085093e-01
+-5.8826503639337402e-01
+-5.8797575369761923e-01
+-5.8768610550665623e-01
+-5.8739609357009959e-01
+-5.8710571967511338e-01
+-5.8681498555293354e-01
+-5.8652389284778617e-01
+-5.8623244319493750e-01
+-5.8594063817262432e-01
+-5.8564847930682340e-01
+-5.8535596813301116e-01
+-5.8506310628175529e-01
+-5.8476989543611402e-01
+-5.8447633726630088e-01
+-5.8418243336962605e-01
+-5.8388818532171571e-01
+-5.8359359469574601e-01
+-5.8329866305549238e-01
+-5.8300339196443318e-01
+-5.8270778299492088e-01
+-5.8241183773267335e-01
+-5.8211555776630874e-01
+-5.8181894469336626e-01
+-5.8152200011998834e-01
+-5.8122472564445093e-01
+-5.8092712277169722e-01
+-5.8062919295420945e-01
+-5.8033093766367660e-01
+-5.8003235846983048e-01
+-5.7973345697536638e-01
+-5.7943423477725320e-01
+-5.7913469345294533e-01
+-5.7883483457673779e-01
+-5.7853465966292472e-01
+-5.7823417012429168e-01
+-5.7793336736884759e-01
+-5.7763225289104581e-01
+-5.7733082827155846e-01
+-5.7702909509288181e-01
+-5.7672705490477527e-01
+-5.7642470923815203e-01
+-5.7612205960348117e-01
+-5.7581910739410558e-01
+-5.7551585396421345e-01
+-5.7521230071757556e-01
+-5.7490844920643791e-01
+-5.7460430101204463e-01
+-5.7429985769073166e-01
+-5.7399512075420778e-01
+-5.7369009170655794e-01
+-5.7338477194576065e-01
+-5.7307916275947235e-01
+-5.7277326544592444e-01
+-5.7246708146470926e-01
+-5.7216061237581617e-01
+-5.7185385973343661e-01
+-5.7154682504314447e-01
+-5.7123950979397786e-01
+-5.7093191543374355e-01
+-5.7062404327590954e-01
+-5.7031589460877252e-01
+-5.7000747078071456e-01
+-5.6969877324879925e-01
+-5.6938980348238766e-01
+-5.6908056294034537e-01
+-5.6877105307006359e-01
+-5.6846127531197177e-01
+-5.6815123101914433e-01
+-5.6784092148867582e-01
+-5.6753034803496494e-01
+-5.6721951207699917e-01
+-5.6690841507372913e-01
+-5.6659705847015651e-01
+-5.6628544366139888e-01
+-5.6597357203290122e-01
+-5.6566144494328918e-01
+-5.6534906369897053e-01
+-5.6503642960186251e-01
+-5.6472354396468327e-01
+-5.6441040811219045e-01
+-5.6409702337878265e-01
+-5.6378339119710064e-01
+-5.6346951306636772e-01
+-5.6315539044874074e-01
+-5.6284102455593588e-01
+-5.6252641650218405e-01
+-5.6221156746829060e-01
+-5.6189647886648575e-01
+-5.6158115216036775e-01
+-5.6126558878032706e-01
+-5.6094979008940626e-01
+-5.6063375744067578e-01
+-5.6031749209236548e-01
+-5.6000099519097080e-01
+-5.5968426788856462e-01
+-5.5936731148217333e-01
+-5.5905012737096871e-01
+-5.5873271694917814e-01
+-5.5841508155708619e-01
+-5.5809722251355764e-01
+-5.5777914111088744e-01
+-5.5746083854101580e-01
+-5.5714231597389563e-01
+-5.5682357461824161e-01
+-5.5650461576221943e-01
+-5.5618544070562015e-01
+-5.5586605077460227e-01
+-5.5554644732738290e-01
+-5.5522663171409892e-01
+-5.5490660513137524e-01
+-5.5458636866370203e-01
+-5.5426592341725023e-01
+-5.5394527066287647e-01
+-5.5362441174266519e-01
+-5.5330334798334646e-01
+-5.5298208064823318e-01
+-5.5266061098603692e-01
+-5.5233894021487184e-01
+-5.5201706948514317e-01
+-5.5169499993971916e-01
+-5.5137273274049747e-01
+-5.5105026907340993e-01
+-5.5072761013388449e-01
+-5.5040475722132021e-01
+-5.5008171171474984e-01
+-5.4975847496175845e-01
+-5.4943504805560883e-01
+-5.4911143197610890e-01
+-5.4878762775230705e-01
+-5.4846363661153275e-01
+-5.4813945983187529e-01
+-5.4781509867988032e-01
+-5.4749055439450567e-01
+-5.4716582820986792e-01
+-5.4684092128132977e-01
+-5.4651583465904741e-01
+-5.4619056939253841e-01
+-5.4586512662372533e-01
+-5.4553950756825786e-01
+-5.4521371344494496e-01
+-5.4488774547454510e-01
+-5.4456160487927974e-01
+-5.4423529284167083e-01
+-5.4390881037295158e-01
+-5.4358215843994950e-01
+-5.4325533809018545e-01
+-5.4292835056153699e-01
+-5.4260119711940735e-01
+-5.4227387898523405e-01
+-5.4194639731901484e-01
+-5.4161875327192144e-01
+-5.4129094790891275e-01
+-5.4096298222359951e-01
+-5.4063485721763338e-01
+-5.4030657397030324e-01
+-5.3997813359934721e-01
+-5.3964953724873688e-01
+-5.3932078617445667e-01
+-5.3899188166398027e-01
+-5.3866282488420858e-01
+-5.3833361670123780e-01
+-5.3800425793905837e-01
+-5.3767474958134820e-01
+-5.3734509284259091e-01
+-5.3701528895311235e-01
+-5.3668533908798755e-01
+-5.3635524437466808e-01
+-5.3602500592468538e-01
+-5.3569462471902618e-01
+-5.3536410167235293e-01
+-5.3503343773219969e-01
+-5.3470263399875395e-01
+-5.3437169161720299e-01
+-5.3404061172329265e-01
+-5.3370939542673934e-01
+-5.3337804383234033e-01
+-5.3304655796127987e-01
+-5.3271493870808928e-01
+-5.3238318696481912e-01
+-5.3205130376518162e-01
+-5.3171929027057363e-01
+-5.3138714763755102e-01
+-5.3105487692988429e-01
+-5.3072247916223114e-01
+-5.3038995534048938e-01
+-5.3005730642690285e-01
+-5.2972453337099068e-01
+-5.2939163714417581e-01
+-5.2905861877607596e-01
+-5.2872547930708769e-01
+-5.2839221979659345e-01
+-5.2805884133337788e-01
+-5.2772534500271462e-01
+-5.2739173174901222e-01
+-5.2705800238450651e-01
+-5.2672415773927861e-01
+-5.2639019885811611e-01
+-5.2605612690580161e-01
+-5.2572194301878461e-01
+-5.2538764817808781e-01
+-5.2505324331564041e-01
+-5.2471872935016706e-01
+-5.2438410716152928e-01
+-5.2404937762444304e-01
+-5.2371454169478993e-01
+-5.2337960046129128e-01
+-5.2304455502178793e-01
+-5.2270940638630259e-01
+-5.2237415547898081e-01
+-5.2203880321731133e-01
+-5.2170335048129080e-01
+-5.2136779812940559e-01
+-5.2103214704362388e-01
+-5.2069639823048997e-01
+-5.2036055273871529e-01
+-5.2002461159359570e-01
+-5.1968857574896399e-01
+-5.1935244614569009e-01
+-5.1901622369931899e-01
+-5.1867990928147634e-01
+-5.1834350376001259e-01
+-5.1800700800167343e-01
+-5.1767042287206566e-01
+-5.1733374925169617e-01
+-5.1699698817479489e-01
+-5.1666014076918532e-01
+-5.1632320811018895e-01
+-5.1598619096589360e-01
+-5.1564908999723591e-01
+-5.1531190594779019e-01
+-5.1497463981817482e-01
+-5.1463729265898928e-01
+-5.1429986546223450e-01
+-5.1396235911447474e-01
+-5.1362477449032828e-01
+-5.1328711242347713e-01
+-5.1294937370408766e-01
+-5.1261155913115641e-01
+-5.1227366962149634e-01
+-5.1193570616675887e-01
+-5.1159766974478749e-01
+-5.1125956124106187e-01
+-5.1092138150763644e-01
+-5.1058313138875988e-01
+-5.1024481170186264e-01
+-5.0990642325958024e-01
+-5.0956796689432315e-01
+-5.0922944347488086e-01
+-5.0889085387553123e-01
+-5.0855219899662651e-01
+-5.0821347976730180e-01
+-5.0787469710929756e-01
+-5.0753585183047989e-01
+-5.0719694466373699e-01
+-5.0685797635894059e-01
+-5.0651894777688133e-01
+-5.0617985982129765e-01
+-5.0584071338371150e-01
+-5.0550150931184845e-01
+-5.0516224844438906e-01
+-5.0482293159928560e-01
+-5.0448355955348800e-01
+-5.0414413308106387e-01
+-5.0380465299696364e-01
+-5.0346512016319500e-01
+-5.0312553544294525e-01
+-5.0278589967410703e-01
+-5.0244621367735143e-01
+-5.0210647826655996e-01
+-5.0176669421023168e-01
+-5.0142686225899347e-01
+-5.0108698317977396e-01
+-5.0074705779675965e-01
+-5.0040708694741665e-01
+-5.0006707146321883e-01
+-4.9972701216279497e-01
+-4.9938690986266537e-01
+-4.9904676534455450e-01
+-4.9870657934824758e-01
+-4.9836635261233786e-01
+-4.9802608588653691e-01
+-4.9768577992869356e-01
+-4.9734543551310278e-01
+-4.9700505352243707e-01
+-4.9666463488523699e-01
+-4.9632418046629262e-01
+-4.9598369088800426e-01
+-4.9564316671658393e-01
+-4.9530260860688630e-01
+-4.9496201740185231e-01
+-4.9462139396793137e-01
+-4.9428073913215553e-01
+-4.9394005367202370e-01
+-4.9359933835904374e-01
+-4.9325859391671095e-01
+-4.9291782103271387e-01
+-4.9257702039801854e-01
+-4.9223619273048669e-01
+-4.9189533876007080e-01
+-4.9155445924544389e-01
+-4.9121355505685504e-01
+-4.9087262709204871e-01
+-4.9053167614254350e-01
+-4.9019070276295518e-01
+-4.8984970747912249e-01
+-4.8950869092804444e-01
+-4.8916765389173728e-01
+-4.8882659716414734e-01
+-4.8848552156484432e-01
+-4.8814442793352142e-01
+-4.8780331708700658e-01
+-4.8746218966081195e-01
+-4.8712104620752039e-01
+-4.8677988731277039e-01
+-4.8643871369956604e-01
+-4.8609752612687079e-01
+-4.8575632536575930e-01
+-4.8541511221473094e-01
+-4.8507388747393243e-01
+-4.8473265182617192e-01
+-4.8439140579435869e-01
+-4.8405014990015266e-01
+-4.8370888482616364e-01
+-4.8336761138598527e-01
+-4.8302633038955700e-01
+-4.8268504258343398e-01
+-4.8234374868406532e-01
+-4.8200244938593795e-01
+-4.8166114528744824e-01
+-4.8131983696131542e-01
+-4.8097852500987487e-01
+-4.8063721010687038e-01
+-4.8029589293796043e-01
+-4.7995457423132737e-01
+-4.7961325477529337e-01
+-4.7927193535462465e-01
+-4.7893061660467823e-01
+-4.7858929903423614e-01
+-4.7824798316521427e-01
+-4.7790666966123657e-01
+-4.7756535925710408e-01
+-4.7722405268041268e-01
+-4.7688275062179364e-01
+-4.7654145376165280e-01
+-4.7620016275831362e-01
+-4.7585887821327066e-01
+-4.7551760071952442e-01
+-4.7517633087398520e-01
+-4.7483506927916119e-01
+-4.7449381654396044e-01
+-4.7415257338124506e-01
+-4.7381134059575924e-01
+-4.7347011896802732e-01
+-4.7312890903175975e-01
+-4.7278771119177521e-01
+-4.7244652590019209e-01
+-4.7210535383919516e-01
+-4.7176419575981715e-01
+-4.7142305239546062e-01
+-4.7108192443176400e-01
+-4.7074081254552796e-01
+-4.7039971733293384e-01
+-4.7005863926551678e-01
+-4.6971757880971982e-01
+-4.6937653653764316e-01
+-4.6903551311867470e-01
+-4.6869450922793593e-01
+-4.6835352555669968e-01
+-4.6801256280526704e-01
+-4.6767162164377057e-01
+-4.6733070258911114e-01
+-4.6698980611061536e-01
+-4.6664893271738356e-01
+-4.6630808302874183e-01
+-4.6596725768315095e-01
+-4.6562645730413221e-01
+-4.6528568249090635e-01
+-4.6494493384086061e-01
+-4.6460421195207041e-01
+-4.6426351742328736e-01
+-4.6392285084739610e-01
+-4.6358221275588052e-01
+-4.6324160364537742e-01
+-4.6290102404009476e-01
+-4.6256047460978295e-01
+-4.6221995607204391e-01
+-4.6187946908367183e-01
+-4.6153901412329645e-01
+-4.6119859163812693e-01
+-4.6085820212318807e-01
+-4.6051784615362418e-01
+-4.6017752431343195e-01
+-4.5983723720662567e-01
+-4.5949698545722800e-01
+-4.5915676968308011e-01
+-4.5881659042495715e-01
+-4.5847644817793970e-01
+-4.5813634343762932e-01
+-4.5779627670450374e-01
+-4.5745624848093941e-01
+-4.5711625932225075e-01
+-4.5677630994466134e-01
+-4.5643640109348838e-01
+-4.5609653335306066e-01
+-4.5575670702521803e-01
+-4.5541692239125608e-01
+-4.5507717992786512e-01
+-4.5473748031523625e-01
+-4.5439782423728697e-01
+-4.5405821231008431e-01
+-4.5371864510774540e-01
+-4.5337912318128659e-01
+-4.5303964695016108e-01
+-4.5270021678679995e-01
+-4.5236083312191305e-01
+-4.5202149657226715e-01
+-4.5168220779141477e-01
+-4.5134296737019924e-01
+-4.5100377578441414e-01
+-4.5066463349882646e-01
+-4.5032554100541233e-01
+-4.4998649882565384e-01
+-4.4964750747833115e-01
+-4.4930856743032249e-01
+-4.4896967911500846e-01
+-4.4863084299419820e-01
+-4.4829205970442737e-01
+-4.4795332994806525e-01
+-4.4761465433409364e-01
+-4.4727603315724379e-01
+-4.4693746664792761e-01
+-4.4659895518838821e-01
+-4.4626049945074625e-01
+-4.4592210013591199e-01
+-4.4558375782280174e-01
+-4.4524547295230887e-01
+-4.4490724595887532e-01
+-4.4456907728621003e-01
+-4.4423096738435780e-01
+-4.4389291670320113e-01
+-4.4355492568951915e-01
+-4.4321699478902493e-01
+-4.4287912448921679e-01
+-4.4254131542367020e-01
+-4.4220356825728974e-01
+-4.4186588351759559e-01
+-4.4152826145771046e-01
+-4.4119070230403562e-01
+-4.4085320646436665e-01
+-4.4051577456026592e-01
+-4.4017840721644941e-01
+-4.3984110493366568e-01
+-4.3950386812548847e-01
+-4.3916669720869528e-01
+-4.3882959263246313e-01
+-4.3849255485942618e-01
+-4.3815558434962393e-01
+-4.3781868155271242e-01
+-4.3748184691624659e-01
+-4.3714508090362625e-01
+-4.3680838401099542e-01
+-4.3647175673748279e-01
+-4.3613519953598551e-01
+-4.3579871280255228e-01
+-4.3546229693004113e-01
+-4.3512595231297557e-01
+-4.3478967934715518e-01
+-4.3445347844846050e-01
+-4.3411735017274128e-01
+-4.3378129513617891e-01
+-4.3344531389196062e-01
+-4.3310940674827630e-01
+-4.3277357395472299e-01
+-4.3243781583999424e-01
+-4.3210213290485350e-01
+-4.3176652567192098e-01
+-4.3143099462552464e-01
+-4.3109554020088858e-01
+-4.3076016282737800e-01
+-4.3042486289216125e-01
+-4.3008964075016826e-01
+-4.2975449676569866e-01
+-4.2941943137743666e-01
+-4.2908444505760707e-01
+-4.2874953827607337e-01
+-4.2841471149171684e-01
+-4.2807996516066044e-01
+-4.2774529970092356e-01
+-4.2741071544352499e-01
+-4.2707621270864660e-01
+-4.2674179186111372e-01
+-4.2640745332527979e-01
+-4.2607319753236811e-01
+-4.2573902495364518e-01
+-4.2540493609236280e-01
+-4.2507093143387020e-01
+-4.2473701131527475e-01
+-4.2440317600417238e-01
+-4.2406942579290718e-01
+-4.2373576108017807e-01
+-4.2340218229309057e-01
+-4.2306868987442969e-01
+-4.2273528430397367e-01
+-4.2240196606519864e-01
+-4.2206873555499896e-01
+-4.2173559304971564e-01
+-4.2140253882270778e-01
+-4.2106957324561628e-01
+-4.2073669677180270e-01
+-4.2040390985145154e-01
+-4.2007121288668103e-01
+-4.1973860625613596e-01
+-4.1940609033091675e-01
+-4.1907366544867669e-01
+-4.1874133193793633e-01
+-4.1840909014987793e-01
+-4.1807694049184990e-01
+-4.1774488337982446e-01
+-4.1741291922306628e-01
+-4.1708104842101534e-01
+-4.1674927136955858e-01
+-4.1641758841154464e-01
+-4.1608599984389799e-01
+-4.1575450596702146e-01
+-4.1542310712364694e-01
+-4.1509180367826398e-01
+-4.1476059601083620e-01
+-4.1442948457206064e-01
+-4.1409846983329407e-01
+-4.1376755220782263e-01
+-4.1343673195739761e-01
+-4.1310600932031377e-01
+-4.1277538458095442e-01
+-4.1244485809338349e-01
+-4.1211443022044458e-01
+-4.1178410137971799e-01
+-4.1145387203821626e-01
+-4.1112374264525259e-01
+-4.1079371347080373e-01
+-4.1046378468895811e-01
+-4.1013395651100137e-01
+-4.0980422933450050e-01
+-4.0947460361400673e-01
+-4.0914507977571801e-01
+-4.0881565816816895e-01
+-4.0848633912653487e-01
+-4.0815712296211915e-01
+-4.0782800994848029e-01
+-4.0749900035861730e-01
+-4.0717009452092323e-01
+-4.0684129281590825e-01
+-4.0651259562475545e-01
+-4.0618400331421939e-01
+-4.0585551624306987e-01
+-4.0552713475685742e-01
+-4.0519885913311288e-01
+-4.0487068962768535e-01
+-4.0454262651540318e-01
+-4.0421467012508655e-01
+-4.0388682079544108e-01
+-4.0355907888027354e-01
+-4.0323144475815242e-01
+-4.0290391880651621e-01
+-4.0257650132328965e-01
+-4.0224919252845726e-01
+-4.0192199264906081e-01
+-4.0159490201651760e-01
+-4.0126792102313302e-01
+-4.0094105005006797e-01
+-4.0061428941363120e-01
+-4.0028763940846895e-01
+-3.9996110031945692e-01
+-3.9963467240213651e-01
+-3.9930835590710084e-01
+-3.9898215112056068e-01
+-3.9865605838984325e-01
+-3.9833007806810677e-01
+-3.9800421050092244e-01
+-3.9767845602610902e-01
+-3.9735281497434832e-01
+-3.9702728760219730e-01
+-3.9670187412116498e-01
+-3.9637657475239452e-01
+-3.9605138977485094e-01
+-3.9572631948786652e-01
+-3.9540136421677047e-01
+-3.9507652436788027e-01
+-3.9475180036231233e-01
+-3.9442719251563246e-01
+-3.9410270095405986e-01
+-3.9377832578892835e-01
+-3.9345406725619353e-01
+-3.9312992572445232e-01
+-3.9280590156585560e-01
+-3.9248199511829629e-01
+-3.9215820669798401e-01
+-3.9183453660777384e-01
+-3.9151098507278853e-01
+-3.9118755228962698e-01
+-3.9086423847646817e-01
+-3.9054104392226874e-01
+-3.9021796893065519e-01
+-3.8989501381711544e-01
+-3.8957217891923318e-01
+-3.8924946457445175e-01
+-3.8892687104538243e-01
+-3.8860439851162770e-01
+-3.8828204715354631e-01
+-3.8795981721232214e-01
+-3.8763770896941058e-01
+-3.8731572271531811e-01
+-3.8699385879196641e-01
+-3.8667211756112863e-01
+-3.8635049933661741e-01
+-3.8602900426706488e-01
+-3.8570763246622614e-01
+-3.8538638411826703e-01
+-3.8506525954495169e-01
+-3.8474425908342313e-01
+-3.8442338305102230e-01
+-3.8410263174218268e-01
+-3.8378200544421909e-01
+-3.8346150436882115e-01
+-3.8314112867550154e-01
+-3.8282087853849145e-01
+-3.8250075423507235e-01
+-3.8218075608403396e-01
+-3.8186088438933657e-01
+-3.8154113940085377e-01
+-3.8122152135631515e-01
+-3.8090203048948790e-01
+-3.8058266702599258e-01
+-3.8026343119021661e-01
+-3.7994432319728033e-01
+-3.7962534325113217e-01
+-3.7930649156190815e-01
+-3.7898776843206633e-01
+-3.7866917423052626e-01
+-3.7835070930066489e-01
+-3.7803237379931270e-01
+-3.7771416780481343e-01
+-3.7739609143555886e-01
+-3.7707814496223258e-01
+-3.7676032869147019e-01
+-3.7644264292303620e-01
+-3.7612508794192040e-01
+-3.7580766402971005e-01
+-3.7549037141095554e-01
+-3.7517321023858408e-01
+-3.7485618066314563e-01
+-3.7453928286641697e-01
+-3.7422251705360371e-01
+-3.7390588344323494e-01
+-3.7358938234584710e-01
+-3.7327301411251274e-01
+-3.7295677904677604e-01
+-3.7264067726306876e-01
+-3.7232470882931085e-01
+-3.7200887387530235e-01
+-3.7169317266879737e-01
+-3.7137760549628512e-01
+-3.7106217264527891e-01
+-3.7074687440460247e-01
+-3.7043171105522882e-01
+-3.7011668275534576e-01
+-3.6980178956712328e-01
+-3.6948703156954915e-01
+-3.6917240898942300e-01
+-3.6885792212153057e-01
+-3.6854357125596543e-01
+-3.6822935666156065e-01
+-3.6791527860148643e-01
+-3.6760133728482020e-01
+-3.6728753279455650e-01
+-3.6697386519791592e-01
+-3.6666033465747983e-01
+-3.6634694146593050e-01
+-3.6603368592309765e-01
+-3.6572056829155353e-01
+-3.6540758880351665e-01
+-3.6509474767997918e-01
+-3.6478204505878847e-01
+-3.6446948103783733e-01
+-3.6415705573142737e-01
+-3.6384476932647775e-01
+-3.6353262202975090e-01
+-3.6322061407580541e-01
+-3.6290874576684501e-01
+-3.6259701741311423e-01
+-3.6228542922150275e-01
+-3.6197398125187052e-01
+-3.6166267355832121e-01
+-3.6135150629126178e-01
+-3.6104047968290548e-01
+-3.6072959396913873e-01
+-3.6041884939454677e-01
+-3.6010824620811105e-01
+-3.5979778463641410e-01
+-3.5948746480352711e-01
+-3.5917728680434696e-01
+-3.5886725076175385e-01
+-3.5855735687000029e-01
+-3.5824760533473943e-01
+-3.5793799637110763e-01
+-3.5762853020828933e-01
+-3.5731920707334047e-01
+-3.5701002713171365e-01
+-3.5670099049432491e-01
+-3.5639209727433374e-01
+-3.5608334762186039e-01
+-3.5577474170639101e-01
+-3.5546627971135375e-01
+-3.5515796188601279e-01
+-3.5484978849926391e-01
+-3.5454175977405183e-01
+-3.5423387581069804e-01
+-3.5392613668975836e-01
+-3.5361854252101099e-01
+-3.5331109345946349e-01
+-3.5300378966627555e-01
+-3.5269663134807105e-01
+-3.5238961875341884e-01
+-3.5208275212128093e-01
+-3.5177603158536341e-01
+-3.5146945722176715e-01
+-3.5116302912207453e-01
+-3.5085674745871770e-01
+-3.5055061242943958e-01
+-3.5024462422983860e-01
+-3.4993878304946147e-01
+-3.4963308907635632e-01
+-3.4932754246735653e-01
+-3.4902214332892723e-01
+-3.4871689176414822e-01
+-3.4841178790231964e-01
+-3.4810683189794678e-01
+-3.4780202391160170e-01
+-3.4749736415385729e-01
+-3.4719285286385959e-01
+-3.4688849025484797e-01
+-3.4658427640175571e-01
+-3.4628021133415338e-01
+-3.4597629512305078e-01
+-3.4567252796077036e-01
+-3.4536891006146803e-01
+-3.4506544162223518e-01
+-3.4476212281141505e-01
+-3.4445895379289448e-01
+-3.4415593469139938e-01
+-3.4385306559242662e-01
+-3.4355034658416872e-01
+-3.4324777780139210e-01
+-3.4294535940661425e-01
+-3.4264309157010875e-01
+-3.4234097450293605e-01
+-3.4203900843015900e-01
+-3.4173719352546506e-01
+-3.4143552980524888e-01
+-3.4113401725675474e-01
+-3.4083265594702528e-01
+-3.4053144608336511e-01
+-3.4023038788648857e-01
+-3.3992948155618613e-01
+-3.3962872727040544e-01
+-3.3932812519824107e-01
+-3.3902767542214640e-01
+-3.3872737797067298e-01
+-3.3842723289038562e-01
+-3.3812724033740926e-01
+-3.3782740050725685e-01
+-3.3752771358541156e-01
+-3.3722817972499602e-01
+-3.3692879907243894e-01
+-3.3662957175283126e-01
+-3.3633049785215485e-01
+-3.3603157745248713e-01
+-3.3573281064480748e-01
+-3.3543419752978304e-01
+-3.3513573821489751e-01
+-3.3483743288215428e-01
+-3.3453928176190195e-01
+-3.3424128505971684e-01
+-3.3394344282523608e-01
+-3.3364575504936161e-01
+-3.3334822176020862e-01
+-3.3305084311151201e-01
+-3.3275361928332065e-01
+-3.3245655045186862e-01
+-3.3215963678607746e-01
+-3.3186287845155826e-01
+-3.3156627554150253e-01
+-3.3126982806702043e-01
+-3.3097353604216895e-01
+-3.3067739957360365e-01
+-3.3038141883061406e-01
+-3.3008559398268666e-01
+-3.2978992519299760e-01
+-3.2949441262223628e-01
+-3.2919905640200525e-01
+-3.2890385656156396e-01
+-3.2860881310792844e-01
+-3.2831392609507409e-01
+-3.2801919567096222e-01
+-3.2772462199470526e-01
+-3.2743020522467609e-01
+-3.2713594551837460e-01
+-3.2684184302661168e-01
+-3.2654789781293059e-01
+-3.2625410987928760e-01
+-3.2596047924131755e-01
+-3.2566700601582910e-01
+-3.2537369036128549e-01
+-3.2508053243371243e-01
+-3.2478753237967389e-01
+-3.2449469034328093e-01
+-3.2420200642700248e-01
+-3.2390948064636754e-01
+-3.2361711300767326e-01
+-3.2332490357781923e-01
+-3.2303285249833241e-01
+-3.2274095991512991e-01
+-3.2244922597150177e-01
+-3.2215765080880221e-01
+-3.2186623455548380e-01
+-3.2157497724933798e-01
+-3.2128387888905335e-01
+-3.2099293949833324e-01
+-3.2070215919857253e-01
+-3.2041153813475065e-01
+-3.2012107644754373e-01
+-3.1983077426825363e-01
+-3.1954063172553671e-01
+-3.1925064889558408e-01
+-3.1896082578727930e-01
+-3.1867116240928489e-01
+-3.1838165883401465e-01
+-3.1809231518275094e-01
+-3.1780313157999834e-01
+-3.1751410816513237e-01
+-3.1722524508421529e-01
+-3.1693654245565184e-01
+-3.1664800028558709e-01
+-3.1635961855180206e-01
+-3.1607139727680872e-01
+-3.1578333658530489e-01
+-3.1549543661598428e-01
+-3.1520769750079614e-01
+-3.1492011936267483e-01
+-3.1463270231940521e-01
+-3.1434544641762024e-01
+-3.1405835164706775e-01
+-3.1377141800703018e-01
+-3.1348464558451966e-01
+-3.1319803450780093e-01
+-3.1291158490284748e-01
+-3.1262529688494878e-01
+-3.1233917056642302e-01
+-3.1205320602870701e-01
+-3.1176740327965424e-01
+-3.1148176231719066e-01
+-3.1119628318059106e-01
+-3.1091096596683032e-01
+-3.1062581077815121e-01
+-3.1034081773416627e-01
+-3.1005598696895276e-01
+-3.0977131860456941e-01
+-3.0948681266071965e-01
+-3.0920246910673510e-01
+-3.0891828793342158e-01
+-3.0863426922936688e-01
+-3.0835041311038014e-01
+-3.0806671969299065e-01
+-3.0778318909557117e-01
+-3.0749982143559912e-01
+-3.0721661677212186e-01
+-3.0693357507925484e-01
+-3.0665069632831787e-01
+-3.0636798056293940e-01
+-3.0608542788951182e-01
+-3.0580303841711581e-01
+-3.0552081226036504e-01
+-3.0523874953669838e-01
+-3.0495685034203440e-01
+-3.0467511467168051e-01
+-3.0439354249153239e-01
+-3.0411213380185248e-01
+-3.0383088869280012e-01
+-3.0354980726895814e-01
+-3.0326888963396070e-01
+-3.0298813589002371e-01
+-3.0270754613579526e-01
+-3.0242712040401837e-01
+-3.0214685866780161e-01
+-3.0186676090639464e-01
+-3.0158682717586022e-01
+-3.0130705757340959e-01
+-3.0102745219718818e-01
+-3.0074801114817856e-01
+-3.0046873452815359e-01
+-3.0018962240626346e-01
+-2.9991067476266314e-01
+-2.9963189156307507e-01
+-2.9935327281936119e-01
+-2.9907481861642721e-01
+-2.9879652904579684e-01
+-2.9851840420331738e-01
+-2.9824044418890966e-01
+-2.9796264909360681e-01
+-2.9768501892156091e-01
+-2.9740755362824717e-01
+-2.9713025318633574e-01
+-2.9685311766029027e-01
+-2.9657614714397673e-01
+-2.9629934173154487e-01
+-2.9602270151800308e-01
+-2.9574622659774602e-01
+-2.9546991701316749e-01
+-2.9519377272090636e-01
+-2.9491779367261467e-01
+-2.9464197989019586e-01
+-2.9436633146456814e-01
+-2.9409084848914846e-01
+-2.9381553105366087e-01
+-2.9354037924565152e-01
+-2.9326539313538680e-01
+-2.9299057270024748e-01
+-2.9271591788633750e-01
+-2.9244142867131651e-01
+-2.9216710512766125e-01
+-2.9189294734543092e-01
+-2.9161895541154470e-01
+-2.9134512940755153e-01
+-2.9107146941187495e-01
+-2.9079797544187841e-01
+-2.9052464745242085e-01
+-2.9025148540183476e-01
+-2.8997848931768055e-01
+-2.8970565926967762e-01
+-2.8943299533069811e-01
+-2.8916049758836471e-01
+-2.8888816613544449e-01
+-2.8861600103214169e-01
+-2.8834400223666118e-01
+-2.8807216968763766e-01
+-2.8780050336882590e-01
+-2.8752900334516679e-01
+-2.8725766969012828e-01
+-2.8698650248006968e-01
+-2.8671550179443811e-01
+-2.8644466770597460e-01
+-2.8617400020988182e-01
+-2.8590349925201547e-01
+-2.8563316479053491e-01
+-2.8536299686218047e-01
+-2.8509299553258305e-01
+-2.8482316087013487e-01
+-2.8455349295229798e-01
+-2.8428399185789721e-01
+-2.8401465761736688e-01
+-2.8374549017043543e-01
+-2.8347648944910353e-01
+-2.8320765545237381e-01
+-2.8293898825374131e-01
+-2.8267048792978139e-01
+-2.8240215454794432e-01
+-2.8213398816960755e-01
+-2.8186598884414960e-01
+-2.8159815654705866e-01
+-2.8133049122526393e-01
+-2.8106299284581526e-01
+-2.8079566144559209e-01
+-2.8052849707648547e-01
+-2.8026149979744497e-01
+-2.7999466968131331e-01
+-2.7972800680029691e-01
+-2.7946151115973611e-01
+-2.7919518268752980e-01
+-2.7892902131363412e-01
+-2.7866302705143497e-01
+-2.7839719997199069e-01
+-2.7813154014607361e-01
+-2.7786604763536099e-01
+-2.7760072249782175e-01
+-2.7733556476696120e-01
+-2.7707057438823512e-01
+-2.7680575128739721e-01
+-2.7654109543043026e-01
+-2.7627660686577349e-01
+-2.7601228565200098e-01
+-2.7574813185146380e-01
+-2.7548414553108613e-01
+-2.7522032675184560e-01
+-2.7495667549101721e-01
+-2.7469319166547679e-01
+-2.7442987520376849e-01
+-2.7416672612504106e-01
+-2.7390374448659949e-01
+-2.7364093034736064e-01
+-2.7337828377202106e-01
+-2.7311580482632930e-01
+-2.7285349352916310e-01
+-2.7259134979930810e-01
+-2.7232937354438502e-01
+-2.7206756473947280e-01
+-2.7180592344456639e-01
+-2.7154444972433900e-01
+-2.7128314363381262e-01
+-2.7102200522073605e-01
+-2.7076103452134953e-01
+-2.7050023149020935e-01
+-2.7023959604577552e-01
+-2.6997912812828462e-01
+-2.6971882776544914e-01
+-2.6945869500661629e-01
+-2.6919872990274518e-01
+-2.6893893250848466e-01
+-2.6867930287739239e-01
+-2.6841984100222038e-01
+-2.6816054679600232e-01
+-2.6790142017127272e-01
+-2.6764246111814494e-01
+-2.6738366968750815e-01
+-2.6712504593138603e-01
+-2.6686658989851564e-01
+-2.6660830163608018e-01
+-2.6635018116940129e-01
+-2.6609222843316521e-01
+-2.6583444333851552e-01
+-2.6557682583245590e-01
+-2.6531937594593880e-01
+-2.6506209372185097e-01
+-2.6480497920492796e-01
+-2.6454803244246028e-01
+-2.6429125347724963e-01
+-2.6403464227664003e-01
+-2.6377819874631098e-01
+-2.6352192280120046e-01
+-2.6326581444622754e-01
+-2.6300987372958878e-01
+-2.6275410069774746e-01
+-2.6249849538864428e-01
+-2.6224305783774055e-01
+-2.6198778804774081e-01
+-2.6173268594149601e-01
+-2.6147775143079444e-01
+-2.6122298447727177e-01
+-2.6096838511368475e-01
+-2.6071395337806574e-01
+-2.6045968930675129e-01
+-2.6020559293462203e-01
+-2.5995166428724081e-01
+-2.5969790331235659e-01
+-2.5944430991850537e-01
+-2.5919088403236107e-01
+-2.5893762566547673e-01
+-2.5868453485358806e-01
+-2.5843161163123796e-01
+-2.5817885603004148e-01
+-2.5792626808022201e-01
+-2.5767384776569474e-01
+-2.5742159500158945e-01
+-2.5716950970059466e-01
+-2.5691759183683222e-01
+-2.5666584143891696e-01
+-2.5641425853693378e-01
+-2.5616284315787902e-01
+-2.5591159532708596e-01
+-2.5566051505419352e-01
+-2.5540960227399268e-01
+-2.5515885689879869e-01
+-2.5490827886728851e-01
+-2.5465786818886871e-01
+-2.5440762488464203e-01
+-2.5415754898070592e-01
+-2.5390764051094883e-01
+-2.5365789950646050e-01
+-2.5340832593023027e-01
+-2.5315891968227311e-01
+-2.5290968066845226e-01
+-2.5266060887323849e-01
+-2.5241170432416388e-01
+-2.5216296704870800e-01
+-2.5191439707219926e-01
+-2.5166599441919452e-01
+-2.5141775908395797e-01
+-2.5116969097618513e-01
+-2.5092178999150555e-01
+-2.5067405607585452e-01
+-2.5042648925661842e-01
+-2.5017908956803131e-01
+-2.4993185703363535e-01
+-2.4968479166666857e-01
+-2.4943789347310169e-01
+-2.4919116239173195e-01
+-2.4894459832283966e-01
+-2.4869820118149530e-01
+-2.4845197096391100e-01
+-2.4820590769290360e-01
+-2.4796001139064605e-01
+-2.4771428207754351e-01
+-2.4746871977303761e-01
+-2.4722332445304801e-01
+-2.4697809602013174e-01
+-2.4673303437219743e-01
+-2.4648813946640263e-01
+-2.4624341131938826e-01
+-2.4599884994997248e-01
+-2.4575445537331703e-01
+-2.4551022760236296e-01
+-2.4526616663677539e-01
+-2.4502227240330215e-01
+-2.4477854480349909e-01
+-2.4453498376154789e-01
+-2.4429158927144315e-01
+-2.4404836134052252e-01
+-2.4380529998328693e-01
+-2.4356240522692030e-01
+-2.4331967709692331e-01
+-2.4307711554635950e-01
+-2.4283472045251872e-01
+-2.4259249169720554e-01
+-2.4235042925359832e-01
+-2.4210853315178249e-01
+-2.4186680341956335e-01
+-2.4162524006686453e-01
+-2.4138384309709762e-01
+-2.4114261249127455e-01
+-2.4090154815868389e-01
+-2.4066064999446854e-01
+-2.4041991793018069e-01
+-2.4017935196442555e-01
+-2.3993895210312866e-01
+-2.3969871835781481e-01
+-2.3945865074612049e-01
+-2.3921874927940484e-01
+-2.3897901389260265e-01
+-2.3873944447091072e-01
+-2.3850004091184107e-01
+-2.3826080319408774e-01
+-2.3802173132690241e-01
+-2.3778282531916417e-01
+-2.3754408517852585e-01
+-2.3730551091197924e-01
+-2.3706710248825419e-01
+-2.3682885980275623e-01
+-2.3659078274439449e-01
+-2.3635287125914586e-01
+-2.3611512535783627e-01
+-2.3587754505395425e-01
+-2.3564013035144277e-01
+-2.3540288124774167e-01
+-2.3516579772891497e-01
+-2.3492887970945048e-01
+-2.3469212707548739e-01
+-2.3445553973708777e-01
+-2.3421911768941567e-01
+-2.3398286094628060e-01
+-2.3374676951508849e-01
+-2.3351084339050202e-01
+-2.3327508256411189e-01
+-2.3303948698091087e-01
+-2.3280405653074923e-01
+-2.3256879110540329e-01
+-2.3233369066613718e-01
+-2.3209875522331111e-01
+-2.3186398478583251e-01
+-2.3162937934636421e-01
+-2.3139493889080215e-01
+-2.3116066338973124e-01
+-2.3092655275746707e-01
+-2.3069260689534674e-01
+-2.3045882572956786e-01
+-2.3022520923854278e-01
+-2.2999175740747996e-01
+-2.2975847023293638e-01
+-2.2952534772549524e-01
+-2.2929238989090850e-01
+-2.2905959665614586e-01
+-2.2882696789006110e-01
+-2.2859450347380553e-01
+-2.2836220338624644e-01
+-2.2813006764837887e-01
+-2.2789809627281307e-01
+-2.2766628923922885e-01
+-2.2743464651912479e-01
+-2.2720316806200236e-01
+-2.2697185376938750e-01
+-2.2674070353741912e-01
+-2.2650971730383745e-01
+-2.2627889505992643e-01
+-2.2604823680036371e-01
+-2.2581774251919581e-01
+-2.2558741220996181e-01
+-2.2535724585701108e-01
+-2.2512724337699402e-01
+-2.2489740465592226e-01
+-2.2466772959590675e-01
+-2.2443821816564968e-01
+-2.2420887035070775e-01
+-2.2397968613873268e-01
+-2.2375066552229914e-01
+-2.2352180849357015e-01
+-2.2329311500241888e-01
+-2.2306458494206538e-01
+-2.2283621820457469e-01
+-2.2260801472896907e-01
+-2.2237997449185845e-01
+-2.2215209747297515e-01
+-2.2192438366897452e-01
+-2.2169683308444380e-01
+-2.2146944570355559e-01
+-2.2124222142354363e-01
+-2.2101516011844499e-01
+-2.2078826169136515e-01
+-2.2056152611514021e-01
+-2.2033495337287368e-01
+-2.2010854345491904e-01
+-2.1988229636180256e-01
+-2.1965621209054945e-01
+-2.1943029056739599e-01
+-2.1920453165945400e-01
+-2.1897893524172762e-01
+-2.1875350127055299e-01
+-2.1852822974228250e-01
+-2.1830312065217589e-01
+-2.1807817398968096e-01
+-2.1785338974246946e-01
+-2.1762876786760127e-01
+-2.1740430824576140e-01
+-2.1718001074667101e-01
+-2.1695587528713708e-01
+-2.1673190185265925e-01
+-2.1650809043405683e-01
+-2.1628444102183142e-01
+-2.1606095360619529e-01
+-2.1583762816865812e-01
+-2.1561446461589023e-01
+-2.1539146281596913e-01
+-2.1516862265357795e-01
+-2.1494594409339199e-01
+-2.1472342712343592e-01
+-2.1450107173111857e-01
+-2.1427887790238914e-01
+-2.1405684562212648e-01
+-2.1383497483243616e-01
+-2.1361326541047976e-01
+-2.1339171723069258e-01
+-2.1317033022296822e-01
+-2.1294910436747289e-01
+-2.1272803964657930e-01
+-2.1250713604702381e-01
+-2.1228639355784229e-01
+-2.1206581215160325e-01
+-2.1184539172018374e-01
+-2.1162513213061820e-01
+-2.1140503327731364e-01
+-2.1118509512992881e-01
+-2.1096531767081153e-01
+-2.1074570088325748e-01
+-2.1052624475212367e-01
+-2.1030694925950164e-01
+-2.1008781432890147e-01
+-2.0986883982847382e-01
+-2.0965002563147953e-01
+-2.0943137168304321e-01
+-2.0921287796854943e-01
+-2.0899454447238225e-01
+-2.0877637117187681e-01
+-2.0855835804200717e-01
+-2.0834050503491985e-01
+-2.0812281203755312e-01
+-2.0790527892558641e-01
+-2.0768790560951880e-01
+-2.0747069205753635e-01
+-2.0725363824344900e-01
+-2.0703674414795264e-01
+-2.0682000975852105e-01
+-2.0660343505540715e-01
+-2.0638701994302766e-01
+-2.0617076428133455e-01
+-2.0595466794418360e-01
+-2.0573873088449163e-01
+-2.0552295308172988e-01
+-2.0530733451603420e-01
+-2.0509187516967606e-01
+-2.0487657502475828e-01
+-2.0466143402356207e-01
+-2.0444645203973461e-01
+-2.0423162894200333e-01
+-2.0401696464798427e-01
+-2.0380245912545519e-01
+-2.0358811234525084e-01
+-2.0337392428758835e-01
+-2.0315989493837786e-01
+-2.0294602426854705e-01
+-2.0273231216392118e-01
+-2.0251875848021247e-01
+-2.0230536310041178e-01
+-2.0209212599374382e-01
+-2.0187904714618096e-01
+-2.0166612653692353e-01
+-2.0145336413305304e-01
+-2.0124075989864482e-01
+-2.0102831375501468e-01
+-2.0081602557777395e-01
+-2.0060389524507785e-01
+-2.0039192269133060e-01
+-2.0018010788673796e-01
+-1.9996845080216025e-01
+-1.9975695140943742e-01
+-1.9954560968070040e-01
+-1.9933442556668451e-01
+-1.9912339894790629e-01
+-1.9891252969065107e-01
+-1.9870181769759865e-01
+-1.9849126293999994e-01
+-1.9828086539629361e-01
+-1.9807062503661471e-01
+-1.9786054182185936e-01
+-1.9765061570847145e-01
+-1.9744084660603869e-01
+-1.9723123439295301e-01
+-1.9702177895524850e-01
+-1.9681248023117667e-01
+-1.9660333817908948e-01
+-1.9639435276201200e-01
+-1.9618552395922059e-01
+-1.9597685175309518e-01
+-1.9576833608512068e-01
+-1.9555997681659884e-01
+-1.9535177380126925e-01
+-1.9514372695160034e-01
+-1.9493583624826819e-01
+-1.9472810167451993e-01
+-1.9452052319860397e-01
+-1.9431310077833949e-01
+-1.9410583436260218e-01
+-1.9389872384342885e-01
+-1.9369176908978789e-01
+-1.9348496998849429e-01
+-1.9327832649159940e-01
+-1.9307183856583451e-01
+-1.9286550618015680e-01
+-1.9265932930819687e-01
+-1.9245330792250687e-01
+-1.9224744194351440e-01
+-1.9204173122860624e-01
+-1.9183617563622024e-01
+-1.9163077509262963e-01
+-1.9142552957310208e-01
+-1.9122043905280151e-01
+-1.9101550349922025e-01
+-1.9081072287654757e-01
+-1.9060609713000509e-01
+-1.9040162613322167e-01
+-1.9019730974292592e-01
+-1.8999314785166627e-01
+-1.8978914042892428e-01
+-1.8958528745371359e-01
+-1.8938158889355089e-01
+-1.8917804470148045e-01
+-1.8897465482662140e-01
+-1.8877141917605794e-01
+-1.8856833762516403e-01
+-1.8836541005540317e-01
+-1.8816263639914516e-01
+-1.8796001661118950e-01
+-1.8775755064962182e-01
+-1.8755523848552699e-01
+-1.8735308009298951e-01
+-1.8715107541213177e-01
+-1.8694922430716676e-01
+-1.8674752663305247e-01
+-1.8654598229268976e-01
+-1.8634459125204930e-01
+-1.8614335348084626e-01
+-1.8594226894177807e-01
+-1.8574133759200742e-01
+-1.8554055938134348e-01
+-1.8533993420519757e-01
+-1.8513946193377093e-01
+-1.8493914245110626e-01
+-1.8473897570003703e-01
+-1.8453896163863945e-01
+-1.8433910022599884e-01
+-1.8413939142370572e-01
+-1.8393983519274171e-01
+-1.8374043145548319e-01
+-1.8354118008144962e-01
+-1.8334208093907997e-01
+-1.8314313394422210e-01
+-1.8294433905151367e-01
+-1.8274569621763845e-01
+-1.8254720540731242e-01
+-1.8234886658907620e-01
+-1.8215067971408352e-01
+-1.8195264465771441e-01
+-1.8175476127461182e-01
+-1.8155702944906868e-01
+-1.8135944913819618e-01
+-1.8116202030984313e-01
+-1.8096474292644962e-01
+-1.8076761694277146e-01
+-1.8057064231018827e-01
+-1.8037381893284454e-01
+-1.8017714667456020e-01
+-1.7998062540525173e-01
+-1.7978425505870158e-01
+-1.7958803560083389e-01
+-1.7939196699490820e-01
+-1.7919604919120097e-01
+-1.7900028213615071e-01
+-1.7880466575879256e-01
+-1.7860919994378538e-01
+-1.7841388456909177e-01
+-1.7821871953606827e-01
+-1.7802370478099822e-01
+-1.7782884024405934e-01
+-1.7763412588705088e-01
+-1.7743956169098704e-01
+-1.7724514762774587e-01
+-1.7705088358224808e-01
+-1.7685676939355516e-01
+-1.7666280491873221e-01
+-1.7646899010404316e-01
+-1.7627532492244627e-01
+-1.7608180934117695e-01
+-1.7588844331228395e-01
+-1.7569522678469413e-01
+-1.7550215967616334e-01
+-1.7530924185607985e-01
+-1.7511647319175452e-01
+-1.7492385359547138e-01
+-1.7473138302117838e-01
+-1.7453906142429679e-01
+-1.7434688876017596e-01
+-1.7415486498407853e-01
+-1.7396299003908078e-01
+-1.7377126380724070e-01
+-1.7357968615134048e-01
+-1.7338825695541280e-01
+-1.7319697616339205e-01
+-1.7300584372955172e-01
+-1.7281485960856788e-01
+-1.7262402375583427e-01
+-1.7243333612471623e-01
+-1.7224279662531641e-01
+-1.7205240512595857e-01
+-1.7186216149777397e-01
+-1.7167206565816659e-01
+-1.7148211755103632e-01
+-1.7129231712304752e-01
+-1.7110266433429458e-01
+-1.7091315914921029e-01
+-1.7072380150751662e-01
+-1.7053459127657383e-01
+-1.7034552831087632e-01
+-1.7015661250176239e-01
+-1.6996784380298874e-01
+-1.6977922217403019e-01
+-1.6959074756925480e-01
+-1.6940241993789287e-01
+-1.6921423922404491e-01
+-1.6902620532120594e-01
+-1.6883831809251243e-01
+-1.6865057741162923e-01
+-1.6846298321366221e-01
+-1.6827553545484678e-01
+-1.6808823408947712e-01
+-1.6790107906602827e-01
+-1.6771407033146016e-01
+-1.6752720780520841e-01
+-1.6734049135822052e-01
+-1.6715392085794173e-01
+-1.6696749621137966e-01
+-1.6678121736702867e-01
+-1.6659508427524714e-01
+-1.6640909688634170e-01
+-1.6622325515054756e-01
+-1.6603755900832290e-01
+-1.6585200834366876e-01
+-1.6566660302009623e-01
+-1.6548134291927485e-01
+-1.6529622798181121e-01
+-1.6511125816005956e-01
+-1.6492643340499469e-01
+-1.6474175366513677e-01
+-1.6455721888720765e-01
+-1.6437282897881395e-01
+-1.6418858380483844e-01
+-1.6400448323224598e-01
+-1.6382052717964815e-01
+-1.6363671559926812e-01
+-1.6345304844363762e-01
+-1.6326952566417427e-01
+-1.6308614721180764e-01
+-1.6290291301853696e-01
+-1.6271982295271439e-01
+-1.6253687686942325e-01
+-1.6235407465575516e-01
+-1.6217141626051240e-01
+-1.6198890163933433e-01
+-1.6180653074546539e-01
+-1.6162430352943730e-01
+-1.6144221993736327e-01
+-1.6126027986316990e-01
+-1.6107848316527296e-01
+-1.6089682971058070e-01
+-1.6071531942578410e-01
+-1.6053395226115988e-01
+-1.6035272816730714e-01
+-1.6017164709601861e-01
+-1.5999070899906642e-01
+-1.5980991379999371e-01
+-1.5962926136574865e-01
+-1.5944875155753199e-01
+-1.5926838427353487e-01
+-1.5908815945586438e-01
+-1.5890807704953666e-01
+-1.5872813700555533e-01
+-1.5854833927913770e-01
+-1.5836868381614100e-01
+-1.5818917049917638e-01
+-1.5800979918459188e-01
+-1.5783056974572715e-01
+-1.5765148211968416e-01
+-1.5747253625825203e-01
+-1.5729373211097594e-01
+-1.5711506962280289e-01
+-1.5693654873704554e-01
+-1.5675816936334527e-01
+-1.5657993136973361e-01
+-1.5640183462452423e-01
+-1.5622387903814006e-01
+-1.5604606455208342e-01
+-1.5586839110978140e-01
+-1.5569085866379354e-01
+-1.5551346717057582e-01
+-1.5533621656845800e-01
+-1.5515910672550948e-01
+-1.5498213749275028e-01
+-1.5480530875013443e-01
+-1.5462862044124812e-01
+-1.5445207251796589e-01
+-1.5427566492969316e-01
+-1.5409939762268096e-01
+-1.5392327054000265e-01
+-1.5374728358163181e-01
+-1.5357143661431566e-01
+-1.5339572951004032e-01
+-1.5322016218725049e-01
+-1.5304473458534398e-01
+-1.5286944664603430e-01
+-1.5269429832038067e-01
+-1.5251928956163505e-01
+-1.5234442029515702e-01
+-1.5216969038251202e-01
+-1.5199509967726951e-01
+-1.5182064807645343e-01
+-1.5164633553552267e-01
+-1.5147216201305097e-01
+-1.5129812745313964e-01
+-1.5112423178825093e-01
+-1.5095047494543962e-01
+-1.5077685681258321e-01
+-1.5060337725896361e-01
+-1.5043003616487277e-01
+-1.5025683345862390e-01
+-1.5008376908129137e-01
+-1.4991084297664420e-01
+-1.4973805509505250e-01
+-1.4956540538696397e-01
+-1.4939289376536444e-01
+-1.4922052009080905e-01
+-1.4904828422256089e-01
+-1.4887618606676434e-01
+-1.4870422556877103e-01
+-1.4853240267501586e-01
+-1.4836071733161951e-01
+-1.4818916948449684e-01
+-1.4801775906765574e-01
+-1.4784648596209199e-01
+-1.4767535003388957e-01
+-1.4750435116556015e-01
+-1.4733348928101314e-01
+-1.4716276431069661e-01
+-1.4699217619789948e-01
+-1.4682172490471421e-01
+-1.4665141039137694e-01
+-1.4648123255872128e-01
+-1.4631119125576350e-01
+-1.4614128633698156e-01
+-1.4597151772079500e-01
+-1.4580188535855282e-01
+-1.4563238920057303e-01
+-1.4546302919139181e-01
+-1.4529380527373700e-01
+-1.4512471736995414e-01
+-1.4495576534911378e-01
+-1.4478694907210257e-01
+-1.4461826843216055e-01
+-1.4444972337188280e-01
+-1.4428131383782430e-01
+-1.4411303977462506e-01
+-1.4394490112517591e-01
+-1.4377689782668959e-01
+-1.4360902976555431e-01
+-1.4344129680071876e-01
+-1.4327369880286595e-01
+-1.4310623570242495e-01
+-1.4293890744813434e-01
+-1.4277171398669899e-01
+-1.4260465525939683e-01
+-1.4243773120604536e-01
+-1.4227094173726015e-01
+-1.4210428671732647e-01
+-1.4193776600843505e-01
+-1.4177137951774579e-01
+-1.4160512719499668e-01
+-1.4143900899035688e-01
+-1.4127302484273022e-01
+-1.4110717468464168e-01
+-1.4094145844075326e-01
+-1.4077587599586946e-01
+-1.4061042722186759e-01
+-1.4044511200591955e-01
+-1.4027993027941962e-01
+-1.4011488198158309e-01
+-1.3994996705251203e-01
+-1.3978518543384369e-01
+-1.3962053706555147e-01
+-1.3945602184895600e-01
+-1.3929163964723468e-01
+-1.3912739032667562e-01
+-1.3896327380332626e-01
+-1.3879929002238747e-01
+-1.3863543892887636e-01
+-1.3847172046522463e-01
+-1.3830813457291419e-01
+-1.3814468117563686e-01
+-1.3798136014377183e-01
+-1.3781817133795338e-01
+-1.3765511464821201e-01
+-1.3749219001552387e-01
+-1.3732939738583053e-01
+-1.3716673670471990e-01
+-1.3700420791741919e-01
+-1.3684181096390063e-01
+-1.3667954572829613e-01
+-1.3651741206049331e-01
+-1.3635540982250974e-01
+-1.3619353894895653e-01
+-1.3603179940004578e-01
+-1.3587019112851398e-01
+-1.3570871406363344e-01
+-1.3554736812982074e-01
+-1.3538615323639233e-01
+-1.3522506926549699e-01
+-1.3506411609723701e-01
+-1.3490329363574813e-01
+-1.3474260181092645e-01
+-1.3458204055435283e-01
+-1.3442160980346737e-01
+-1.3426130949941725e-01
+-1.3410113957533323e-01
+-1.3394109991654260e-01
+-1.3378119039059813e-01
+-1.3362141088075288e-01
+-1.3346176132251736e-01
+-1.3330224166204488e-01
+-1.3314285183984673e-01
+-1.3298359178588498e-01
+-1.3282446142800017e-01
+-1.3266546066958562e-01
+-1.3250658938675211e-01
+-1.3234784745695258e-01
+-1.3218923479278949e-01
+-1.3203075133024550e-01
+-1.3187239700644837e-01
+-1.3171417176356620e-01
+-1.3155607554565960e-01
+-1.3139810828052301e-01
+-1.3124026983988873e-01
+-1.3108256008346916e-01
+-1.3092497889761359e-01
+-1.3076752622122517e-01
+-1.3061020199918688e-01
+-1.3045300617413533e-01
+-1.3029593868610881e-01
+-1.3013899947151555e-01
+-1.2998218842299031e-01
+-1.2982550540271656e-01
+-1.2966895028050759e-01
+-1.2951252298133820e-01
+-1.2935622345247305e-01
+-1.2920005163856732e-01
+-1.2904400747482100e-01
+-1.2888809089408734e-01
+-1.2873230181013223e-01
+-1.2857664009759914e-01
+-1.2842110562708897e-01
+-1.2826569829878562e-01
+-1.2811041804877321e-01
+-1.2795526481546290e-01
+-1.2780023854073974e-01
+-1.2764533916897919e-01
+-1.2749056663671349e-01
+-1.2733592082625333e-01
+-1.2718140159685620e-01
+-1.2702700882236528e-01
+-1.2687274243280239e-01
+-1.2671860237146176e-01
+-1.2656458858040223e-01
+-1.2641070099913534e-01
+-1.2625693956595518e-01
+-1.2610330418963706e-01
+-1.2594979474167617e-01
+-1.2579641109359418e-01
+-1.2564315315373326e-01
+-1.2549002085821565e-01
+-1.2533701414393025e-01
+-1.2518413294895883e-01
+-1.2503137721185900e-01
+-1.2487874685998336e-01
+-1.2472624177629041e-01
+-1.2457386183265449e-01
+-1.2442160691803567e-01
+-1.2426947695990545e-01
+-1.2411747189103678e-01
+-1.2396559164977482e-01
+-1.2381383618183645e-01
+-1.2366220543042181e-01
+-1.2351069929323170e-01
+-1.2335931763212221e-01
+-1.2320806031458610e-01
+-1.2305692725968549e-01
+-1.2290591841030543e-01
+-1.2275503370924698e-01
+-1.2260427309870538e-01
+-1.2245363652056930e-01
+-1.2230312389482871e-01
+-1.2215273509022187e-01
+-1.2200246996875240e-01
+-1.2185232842434784e-01
+-1.2170231039482911e-01
+-1.2155241582120975e-01
+-1.2140264464597299e-01
+-1.2125299681279175e-01
+-1.2110347225897630e-01
+-1.2095407087080001e-01
+-1.2080479250977814e-01
+-1.2065563704998095e-01
+-1.2050660442168057e-01
+-1.2035769457046544e-01
+-1.2020890743779911e-01
+-1.2006024295515237e-01
+-1.1991170105204638e-01
+-1.1976328164020258e-01
+-1.1961498460589907e-01
+-1.1946680983431708e-01
+-1.1931875722774563e-01
+-1.1917082670308718e-01
+-1.1902301818072551e-01
+-1.1887533160741040e-01
+-1.1872776694317419e-01
+-1.1858032413226786e-01
+-1.1843300304622874e-01
+-1.1828580353567278e-01
+-1.1813872547688560e-01
+-1.1799176881226453e-01
+-1.1784493349445310e-01
+-1.1769821946840077e-01
+-1.1755162666760960e-01
+-1.1740515502276774e-01
+-1.1725880443072294e-01
+-1.1711257475815155e-01
+-1.1696646587619539e-01
+-1.1682047770652415e-01
+-1.1667461019742699e-01
+-1.1652886329467457e-01
+-1.1638323693106460e-01
+-1.1623773103540344e-01
+-1.1609234552435803e-01
+-1.1594708028216136e-01
+-1.1580193518785233e-01
+-1.1565691013854129e-01
+-1.1551200505955106e-01
+-1.1536721987910312e-01
+-1.1522255453634997e-01
+-1.1507800898058927e-01
+-1.1493358315603318e-01
+-1.1478927695584649e-01
+-1.1464509024501356e-01
+-1.1450102289764452e-01
+-1.1435707483600968e-01
+-1.1421324599750200e-01
+-1.1406953632030493e-01
+-1.1392594574497140e-01
+-1.1378247421204100e-01
+-1.1363912163782236e-01
+-1.1349588789931829e-01
+-1.1335277287107273e-01
+-1.1320977645477209e-01
+-1.1306689857836623e-01
+-1.1292413917200851e-01
+-1.1278149817794020e-01
+-1.1263897554531768e-01
+-1.1249657121281707e-01
+-1.1235428506344618e-01
+-1.1221211696175121e-01
+-1.1207006678925138e-01
+-1.1192813447771560e-01
+-1.1178631996802323e-01
+-1.1164462319978016e-01
+-1.1150304411049448e-01
+-1.1136158263608117e-01
+-1.1122023868182723e-01
+-1.1107901212213468e-01
+-1.1093790283348152e-01
+-1.1079691072978116e-01
+-1.1065603574737248e-01
+-1.1051527782326535e-01
+-1.1037463689691135e-01
+-1.1023411290854195e-01
+-1.1009370578346234e-01
+-1.0995341540114700e-01
+-1.0981324163242778e-01
+-1.0967318437127489e-01
+-1.0953324355268436e-01
+-1.0939341911574883e-01
+-1.0925371099896350e-01
+-1.0911411914020018e-01
+-1.0897464347381999e-01
+-1.0883528389619375e-01
+-1.0869604027986259e-01
+-1.0855691250472944e-01
+-1.0841790049644479e-01
+-1.0827900419716971e-01
+-1.0814022354643672e-01
+-1.0800155847540491e-01
+-1.0786300891333359e-01
+-1.0772457477531883e-01
+-1.0758625595038582e-01
+-1.0744805232527005e-01
+-1.0730996380373911e-01
+-1.0717199030822111e-01
+-1.0703413176341985e-01
+-1.0689638811068619e-01
+-1.0675875930221430e-01
+-1.0662124528082192e-01
+-1.0648384593106508e-01
+-1.0634656111533876e-01
+-1.0620939071268602e-01
+-1.0607233465894549e-01
+-1.0593539290183965e-01
+-1.0579856538267789e-01
+-1.0566185203048130e-01
+-1.0552525277219019e-01
+-1.0538876751694844e-01
+-1.0525239615360725e-01
+-1.0511613857135897e-01
+-1.0497999467877527e-01
+-1.0484396439759470e-01
+-1.0470804765315202e-01
+-1.0457224439283323e-01
+-1.0443655457272247e-01
+-1.0430097813082892e-01
+-1.0416551494116623e-01
+-1.0403016486365586e-01
+-1.0389492778475011e-01
+-1.0375980364445017e-01
+-1.0362479238896870e-01
+-1.0348989395992494e-01
+-1.0335510829349133e-01
+-1.0322043532303773e-01
+-1.0308587494991896e-01
+-1.0295142705271951e-01
+-1.0281709151467301e-01
+-1.0268286825445504e-01
+-1.0254875720538982e-01
+-1.0241475830237368e-01
+-1.0228087148621003e-01
+-1.0214709669888462e-01
+-1.0201343386143326e-01
+-1.0187988285092175e-01
+-1.0174644353970846e-01
+-1.0161311583351545e-01
+-1.0147989967944168e-01
+-1.0134679502603440e-01
+-1.0121380180693974e-01
+-1.0108091994474679e-01
+-1.0094814935838899e-01
+-1.0081548994319026e-01
+-1.0068294158416903e-01
+-1.0055050417642168e-01
+-1.0041817765482883e-01
+-1.0028596196387381e-01
+-1.0015385704212437e-01
+-1.0002186281524311e-01
+-9.9889979206724697e-02
+-9.9758206125706239e-02
+-9.9626543462806263e-02
+-9.9494991108873068e-02
+-9.9363548978091590e-02
+-9.9232217002639192e-02
+-9.9100995115690510e-02
+-9.8969883254951277e-02
+-9.8838881360136424e-02
+-9.8707989360666021e-02
+-9.8577207144095833e-02
+-9.8446534587271081e-02
+-9.8315971584760659e-02
+-9.8185518072004693e-02
+-9.8055173990033856e-02
+-9.7924939277458087e-02
+-9.7794813869655786e-02
+-9.7664797699931180e-02
+-9.7534890673221936e-02
+-9.7405092671621493e-02
+-9.7275403580683678e-02
+-9.7145823319103139e-02
+-9.7016351821230765e-02
+-9.6886989022458722e-02
+-9.6757734862515987e-02
+-9.6628589282182750e-02
+-9.6499552206590455e-02
+-9.6370623523396717e-02
+-9.6241803115088079e-02
+-9.6113090884412014e-02
+-9.5984486762605514e-02
+-9.5855990683150066e-02
+-9.5727602582689239e-02
+-9.5599322400505185e-02
+-9.5471150071779282e-02
+-9.5343085497564206e-02
+-9.5215128561962861e-02
+-9.5087279156385415e-02
+-9.4959537206016853e-02
+-9.4831902645467467e-02
+-9.4704375410244485e-02
+-9.4576955438233481e-02
+-9.4449642667201919e-02
+-9.4322437013322491e-02
+-9.4195338361196271e-02
+-9.4068346594433722e-02
+-9.3941461626146361e-02
+-9.3814683395216744e-02
+-9.3688011841124311e-02
+-9.3561446901586021e-02
+-9.3434988513368400e-02
+-9.3308636604854361e-02
+-9.3182391065259940e-02
+-9.3056251772223736e-02
+-9.2930218619717245e-02
+-9.2804291544836409e-02
+-9.2678470491593626e-02
+-9.2552755402867379e-02
+-9.2427146219845546e-02
+-9.2301642881772436e-02
+-9.2176245294044126e-02
+-9.2050953331219626e-02
+-9.1925766871125719e-02
+-9.1800685833028556e-02
+-9.1675710158525631e-02
+-9.1550839790366503e-02
+-9.1426074676223129e-02
+-9.1301414765205022e-02
+-9.1176859985365802e-02
+-9.1052410206967041e-02
+-9.0928065290878490e-02
+-9.0803825134164781e-02
+-9.0679689691597093e-02
+-9.0555658922321994e-02
+-9.0431732770567819e-02
+-9.0307911166400287e-02
+-9.0184194036367404e-02
+-9.0060581278935375e-02
+-8.9937072776698296e-02
+-8.9813668419764375e-02
+-8.9690368138586579e-02
+-8.9567171876600071e-02
+-8.9444079575228833e-02
+-8.9321091170228989e-02
+-8.9198206596031920e-02
+-8.9075425769214511e-02
+-8.8952748576748633e-02
+-8.8830174903890738e-02
+-8.8707704662306902e-02
+-8.8585337789780824e-02
+-8.8463074225572563e-02
+-8.8340913913381641e-02
+-8.8218856799487821e-02
+-8.8096902821052744e-02
+-8.7975051865781681e-02
+-8.7853303804575969e-02
+-8.7731658526468637e-02
+-8.7610115975451791e-02
+-8.7488676105665977e-02
+-8.7367338861777791e-02
+-8.7246104172082145e-02
+-8.7124971962568173e-02
+-8.7003942144638718e-02
+-8.6883014614667589e-02
+-8.6762189269956866e-02
+-8.6641466026344760e-02
+-8.6520844811010439e-02
+-8.6400325553680241e-02
+-8.6279908198075281e-02
+-8.6159592692824485e-02
+-8.6039378973373853e-02
+-8.5919266933661531e-02
+-8.5799256459520065e-02
+-8.5679347451613305e-02
+-8.5559539837525761e-02
+-8.5439833547998778e-02
+-8.5320228524118011e-02
+-8.5200724718083057e-02
+-8.5081322078581184e-02
+-8.4962020508315764e-02
+-8.4842819880514217e-02
+-8.4723720076458828e-02
+-8.4604721029158211e-02
+-8.4485822690763726e-02
+-8.4367025008953642e-02
+-8.4248327916654667e-02
+-8.4129731343572489e-02
+-8.4011235207456833e-02
+-8.3892839403548830e-02
+-8.3774543825203815e-02
+-8.3656348385694648e-02
+-8.3538253020593797e-02
+-8.3420257666945316e-02
+-8.3302362266203800e-02
+-8.3184566762744244e-02
+-8.3066871094212236e-02
+-8.2949275155937197e-02
+-8.2831778826755909e-02
+-8.2714381999380804e-02
+-8.2597084615057340e-02
+-8.2479886625434762e-02
+-8.2362787974568877e-02
+-8.2245788591605043e-02
+-8.2128888403549941e-02
+-8.2012087327428415e-02
+-8.1895385268639320e-02
+-8.1778782132426953e-02
+-8.1662277831586708e-02
+-8.1545872284144630e-02
+-8.1429565412565560e-02
+-8.1313357168446870e-02
+-8.1197247515179274e-02
+-8.1081236398761913e-02
+-8.0965323701992720e-02
+-8.0849509293394933e-02
+-8.0733793067926926e-02
+-8.0618174975130380e-02
+-8.0502654970922474e-02
+-8.0387233001190384e-02
+-8.0271908999646119e-02
+-8.0156682897517068e-02
+-8.0041554602956561e-02
+-7.9926524007339239e-02
+-7.9811591005905999e-02
+-7.9696755523985793e-02
+-7.9582017499641639e-02
+-7.9467376872022877e-02
+-7.9352833584452651e-02
+-7.9238387581112332e-02
+-7.9124038791288528e-02
+-7.9009787112290106e-02
+-7.8895632437570473e-02
+-7.8781574674543386e-02
+-7.8667613748332380e-02
+-7.8553749586474444e-02
+-7.8439982136125824e-02
+-7.8326311359276451e-02
+-7.8212737210559172e-02
+-7.8099259588518766e-02
+-7.7985878366736011e-02
+-7.7872593431278697e-02
+-7.7759404718907757e-02
+-7.7646312178986626e-02
+-7.7533315758646984e-02
+-7.7420415400084111e-02
+-7.7307611044171595e-02
+-7.7194902608123520e-02
+-7.7082289977939755e-02
+-7.6969773039606254e-02
+-7.6857351713471245e-02
+-7.6745025946977560e-02
+-7.6632795687818153e-02
+-7.6520660880393776e-02
+-7.6408621467539711e-02
+-7.6296677383092593e-02
+-7.6184828523440232e-02
+-7.6073074775143190e-02
+-7.5961416040329868e-02
+-7.5849852257881434e-02
+-7.5738383371865337e-02
+-7.5627009324872346e-02
+-7.5515730057486935e-02
+-7.5404545508670817e-02
+-7.5293455593979972e-02
+-7.5182460209706509e-02
+-7.5071559254945380e-02
+-7.4960752656783050e-02
+-7.4850040355840392e-02
+-7.4739422292743843e-02
+-7.4628898407992736e-02
+-7.4518468641965332e-02
+-7.4408132923071149e-02
+-7.4297891150388470e-02
+-7.4187743218861957e-02
+-7.4077689041862294e-02
+-7.3967728559245660e-02
+-7.3857861712911074e-02
+-7.3748088445774379e-02
+-7.3638408701613006e-02
+-7.3528822420084447e-02
+-7.3419329505972464e-02
+-7.3309929846348876e-02
+-7.3200623337843024e-02
+-7.3091409922120709e-02
+-7.2982289553752633e-02
+-7.2873262181227152e-02
+-7.2764327737479220e-02
+-7.2655486152705964e-02
+-7.2546737345723658e-02
+-7.2438081218355224e-02
+-7.2329517672150220e-02
+-7.2221046631349581e-02
+-7.2112668040453451e-02
+-7.2004381844187157e-02
+-7.1896187983423065e-02
+-7.1788086396962353e-02
+-7.1680077017524116e-02
+-7.1572159748798797e-02
+-7.1464334485672340e-02
+-7.1356601134938219e-02
+-7.1248959635614992e-02
+-7.1141409932026931e-02
+-7.1033951968124565e-02
+-7.0926585687312832e-02
+-7.0819311031734528e-02
+-7.0712127920108961e-02
+-7.0605036249347872e-02
+-7.0498035918459226e-02
+-7.0391126854975589e-02
+-7.0284309002148770e-02
+-7.0177582303117547e-02
+-7.0070946699883743e-02
+-6.9964402134031239e-02
+-6.9857948537384640e-02
+-6.9751585814392891e-02
+-6.9645313864849387e-02
+-6.9539132602758097e-02
+-6.9433041965318756e-02
+-6.9327041892046234e-02
+-6.9221132327782972e-02
+-6.9115313222536529e-02
+-6.9009584522787673e-02
+-6.8903946138122521e-02
+-6.8798397956822327e-02
+-6.8692939874648945e-02
+-6.8587571828927607e-02
+-6.8482293770702501e-02
+-6.8377105649651951e-02
+-6.8272007411519897e-02
+-6.8166999001042658e-02
+-6.8062080344856557e-02
+-6.7957251338896102e-02
+-6.7852511877095484e-02
+-6.7747861878305490e-02
+-6.7643301286560431e-02
+-6.7538830047122037e-02
+-6.7434448107043146e-02
+-6.7330155414428244e-02
+-6.7225951910962742e-02
+-6.7121837502721493e-02
+-6.7017812083374942e-02
+-6.6913875558029537e-02
+-6.6810027867369393e-02
+-6.6706268958869816e-02
+-6.6602598779239811e-02
+-6.6499017273879246e-02
+-6.6395524387138277e-02
+-6.6292120041647001e-02
+-6.6188804137165214e-02
+-6.6085576574375846e-02
+-6.5982437277367217e-02
+-6.5879386184887395e-02
+-6.5776423238062279e-02
+-6.5673548390947148e-02
+-6.5570761602250255e-02
+-6.5468062815338374e-02
+-6.5365451924015772e-02
+-6.5262928812236803e-02
+-6.5160493388547944e-02
+-6.5058145607092235e-02
+-6.4955885426504684e-02
+-6.4853712794618892e-02
+-6.4751627647420582e-02
+-6.4649629918858226e-02
+-6.4547719526628286e-02
+-6.4445896377760575e-02
+-6.4344160383045690e-02
+-6.4242511477975661e-02
+-6.4140949607387338e-02
+-6.4039474715526123e-02
+-6.3938086744722913e-02
+-6.3836785636746274e-02
+-6.3735571320868822e-02
+-6.3634443702279359e-02
+-6.3533402684107204e-02
+-6.3432448192168728e-02
+-6.3331580178237173e-02
+-6.3230798594515136e-02
+-6.3130103381416044e-02
+-6.3029494471283851e-02
+-6.2928971794775704e-02
+-6.2828535273038041e-02
+-6.2728184823388641e-02
+-6.2627920366432693e-02
+-6.2527741834703249e-02
+-6.2427649163363894e-02
+-6.2327642292303989e-02
+-6.2227721171020108e-02
+-6.2127885749482005e-02
+-6.2028135957300841e-02
+-6.1928471699837076e-02
+-6.1828892882641866e-02
+-6.1729399433703321e-02
+-6.1629991296960694e-02
+-6.1530668416881221e-02
+-6.1431430739557542e-02
+-6.1332278211721887e-02
+-6.1233210772873151e-02
+-6.1134228335707211e-02
+-6.1035330806683087e-02
+-6.0936518104251061e-02
+-6.0837790172236200e-02
+-6.0739146957553010e-02
+-6.0640588404555502e-02
+-6.0542114454432354e-02
+-6.0443725046971791e-02
+-6.0345420105727354e-02
+-6.0247199542184091e-02
+-6.0149063270263425e-02
+-6.0051011223802193e-02
+-5.9953043345259277e-02
+-5.9855159578434465e-02
+-5.9757359872415435e-02
+-5.9659644177478280e-02
+-5.9562012432146046e-02
+-5.9464464549121049e-02
+-5.9367000437906534e-02
+-5.9269620020076623e-02
+-5.9172323232857142e-02
+-5.9075110015013754e-02
+-5.8977980313705478e-02
+-5.8880934082571404e-02
+-5.8783971271498273e-02
+-5.8687091801298816e-02
+-5.8590295579527531e-02
+-5.8493582518750427e-02
+-5.8396952552599982e-02
+-5.8300405620079522e-02
+-5.8203941666057052e-02
+-5.8107560648990635e-02
+-5.8011262528624583e-02
+-5.7915047240322301e-02
+-5.7818914686562368e-02
+-5.7722864768986491e-02
+-5.7626897414334431e-02
+-5.7531012569572076e-02
+-5.7435210182634484e-02
+-5.7339490204967758e-02
+-5.7243852589655649e-02
+-5.7148297282329980e-02
+-5.7052824196748349e-02
+-5.6957433238081223e-02
+-5.6862124321695927e-02
+-5.6766897387630952e-02
+-5.6671752379647257e-02
+-5.6576689247898181e-02
+-5.6481707951556305e-02
+-5.6386808448666295e-02
+-5.6291990667132225e-02
+-5.6197254509513725e-02
+-5.6102599880935300e-02
+-5.6008026715018665e-02
+-5.5913534959493819e-02
+-5.5819124563137888e-02
+-5.5724795479193887e-02
+-5.5630547662089455e-02
+-5.5536381053242830e-02
+-5.5442295561393407e-02
+-5.5348291090525928e-02
+-5.5254367564256023e-02
+-5.5160524935039319e-02
+-5.5066763157304605e-02
+-5.4973082180396191e-02
+-5.4879481949197464e-02
+-5.4785962406696927e-02
+-5.4692523481042053e-02
+-5.4599165092654403e-02
+-5.4505887163227677e-02
+-5.4412689621048789e-02
+-5.4319572396323013e-02
+-5.4226535430392984e-02
+-5.4133578694058611e-02
+-5.4040702162315719e-02
+-5.3947905777556288e-02
+-5.3855189432310560e-02
+-5.3762553016811800e-02
+-5.3669996460403380e-02
+-5.3577519728122878e-02
+-5.3485122784666779e-02
+-5.3392805579863180e-02
+-5.3300568055467699e-02
+-5.3208410149380846e-02
+-5.3116331781034420e-02
+-5.3024332864109784e-02
+-5.2932413321992944e-02
+-5.2840573104973011e-02
+-5.2748812167847881e-02
+-5.2657130462516875e-02
+-5.2565527936285550e-02
+-5.2474004535197821e-02
+-5.2382560188463281e-02
+-5.2291194809275347e-02
+-5.2199908312527458e-02
+-5.2108700636548919e-02
+-5.2017571732880741e-02
+-5.1926521553872979e-02
+-5.1835550055535140e-02
+-5.1744657195015677e-02
+-5.1653842917913438e-02
+-5.1563107136580459e-02
+-5.1472449757558589e-02
+-5.1381870703442294e-02
+-5.1291369923607645e-02
+-5.1200947370069930e-02
+-5.1110602998309961e-02
+-5.1020336767243074e-02
+-5.0930148632906853e-02
+-5.0840038520614028e-02
+-5.0750006337534570e-02
+-5.0660051996577783e-02
+-5.0570175443583248e-02
+-5.0480376635527305e-02
+-5.0390655527066022e-02
+-5.0301012065918034e-02
+-5.0211446198363832e-02
+-5.0121957863512985e-02
+-5.0032546988058882e-02
+-4.9943213497686344e-02
+-4.9853957325206665e-02
+-4.9764778410793790e-02
+-4.9675676696317485e-02
+-4.9586652139008605e-02
+-4.9497704705527473e-02
+-4.9408834355493890e-02
+-4.9320041007652082e-02
+-4.9231324566176980e-02
+-4.9142684945886868e-02
+-4.9054122095538985e-02
+-4.8965635970568723e-02
+-4.8877226528049073e-02
+-4.8788893728065004e-02
+-4.8700637530121306e-02
+-4.8612457871192435e-02
+-4.8524354664008826e-02
+-4.8436327822145478e-02
+-4.8348377283496551e-02
+-4.8260503001539654e-02
+-4.8172704930270933e-02
+-4.8084983025526142e-02
+-4.7997337243791273e-02
+-4.7909767532963374e-02
+-4.7822273812553238e-02
+-4.7734855996263925e-02
+-4.7647514012306082e-02
+-4.7560247816423262e-02
+-4.7473057367315497e-02
+-4.7385942621790626e-02
+-4.7298903534540443e-02
+-4.7211940058170039e-02
+-4.7125052121710670e-02
+-4.7038239638393993e-02
+-4.6951502526028449e-02
+-4.6864840733529638e-02
+-4.6778254221888131e-02
+-4.6691742950927893e-02
+-4.6605306876440426e-02
+-4.6518945953212404e-02
+-4.6432660124562569e-02
+-4.6346449311188344e-02
+-4.6260313431526402e-02
+-4.6174252418124062e-02
+-4.6088266220032162e-02
+-4.6002354787925415e-02
+-4.5916518082013087e-02
+-4.5830756069144357e-02
+-4.5745068711067371e-02
+-4.5659455935051364e-02
+-4.5573917654286381e-02
+-4.5488453789533284e-02
+-4.5403064289498987e-02
+-4.5317749109227687e-02
+-4.5232508205305576e-02
+-4.5147341537557326e-02
+-4.5062249065655612e-02
+-4.4977230732002799e-02
+-4.4892286457976348e-02
+-4.4807416165047312e-02
+-4.4722619794312912e-02
+-4.4637897301136473e-02
+-4.4553248641513526e-02
+-4.4468673773894726e-02
+-4.4384172657748251e-02
+-4.4299745245504604e-02
+-4.4215391462817777e-02
+-4.4131111228953468e-02
+-4.4046904474323384e-02
+-4.3962771153469936e-02
+-4.3878711224061603e-02
+-4.3794724644753528e-02
+-4.3710811375466618e-02
+-4.3626971374698176e-02
+-4.3543204579531217e-02
+-4.3459510910788479e-02
+-4.3375890292125387e-02
+-4.3292342671350965e-02
+-4.3208868006996963e-02
+-4.3125466257916009e-02
+-4.3042137384194261e-02
+-4.2958881346141904e-02
+-4.2875698092985019e-02
+-4.2792587549014209e-02
+-4.2709549635446979e-02
+-4.2626584289680046e-02
+-4.2543691470542107e-02
+-4.2460871138271315e-02
+-4.2378123252771759e-02
+-4.2295447773673472e-02
+-4.2212844657567736e-02
+-4.2130313837976115e-02
+-4.2047855237653184e-02
+-4.1965468785346093e-02
+-4.1883154435445984e-02
+-4.1800912149042573e-02
+-4.1718741886877540e-02
+-4.1636643608934591e-02
+-4.1554617274727507e-02
+-4.1472662829410395e-02
+-4.1390780198345793e-02
+-4.1308969306570929e-02
+-4.1227230098677563e-02
+-4.1145562535365082e-02
+-4.1063966577793168e-02
+-4.0982442187275522e-02
+-4.0900989325177245e-02
+-4.0819607947251826e-02
+-4.0738297984684889e-02
+-4.0657059361878418e-02
+-4.0575892012912881e-02
+-4.0494795895828113e-02
+-4.0413770972265124e-02
+-4.0332817204482348e-02
+-4.0251934555646220e-02
+-4.0171122987828538e-02
+-4.0090382443121686e-02
+-4.0009712846447748e-02
+-3.9929114124873592e-02
+-3.9848586229061594e-02
+-3.9768129121630247e-02
+-3.9687742765347013e-02
+-3.9607427123393976e-02
+-3.9527182159021158e-02
+-3.9447007826169750e-02
+-3.9366904054842521e-02
+-3.9286870771436361e-02
+-3.9206907916306440e-02
+-3.9127015450776570e-02
+-3.9047193337896351e-02
+-3.8967441541484009e-02
+-3.8887760026041232e-02
+-3.8808148753495704e-02
+-3.8728607662681991e-02
+-3.8649136680162427e-02
+-3.8569735737582676e-02
+-3.8490404792004808e-02
+-3.8411143808147599e-02
+-3.8331952750601049e-02
+-3.8252831583676074e-02
+-3.8173780271383774e-02
+-3.8094798764338855e-02
+-3.8015886992223261e-02
+-3.7937044883771656e-02
+-3.7858272386636228e-02
+-3.7779569466112987e-02
+-3.7700936088063290e-02
+-3.7622372217658510e-02
+-3.7543877819669169e-02
+-3.7465452854182853e-02
+-3.7387097257683279e-02
+-3.7308810959141736e-02
+-3.7230593896133972e-02
+-3.7152446030666100e-02
+-3.7074367328990519e-02
+-3.6996357757146228e-02
+-3.6918417280850220e-02
+-3.6840545864977349e-02
+-3.6762743457441030e-02
+-3.6685009989665465e-02
+-3.6607345394437642e-02
+-3.6529749625592023e-02
+-3.6452222649103687e-02
+-3.6374764431278135e-02
+-3.6297374939575473e-02
+-3.6220054141805610e-02
+-3.6142801997466903e-02
+-3.6065618441550693e-02
+-3.5988503404656584e-02
+-3.5911456830445443e-02
+-3.5834478684861337e-02
+-3.5757568935965989e-02
+-3.5680727551395043e-02
+-3.5603954498353081e-02
+-3.5527249742117691e-02
+-3.5450613228089456e-02
+-3.5374044889663767e-02
+-3.5297544664098499e-02
+-3.5221112511454114e-02
+-3.5144748399691603e-02
+-3.5068452296836271e-02
+-3.4992224171171628e-02
+-3.4916063990872784e-02
+-3.4839971712784912e-02
+-3.4763947273650481e-02
+-3.4687990608704769e-02
+-3.4612101668683316e-02
+-3.4536280420685114e-02
+-3.4460526832707346e-02
+-3.4384840874438931e-02
+-3.4309222516618561e-02
+-3.4233671725959813e-02
+-3.4158188445624654e-02
+-3.4082772610168927e-02
+-3.4007424161133414e-02
+-3.3932143062901418e-02
+-3.3856929284462142e-02
+-3.3781782795884258e-02
+-3.3706703569272058e-02
+-3.3631691576289119e-02
+-3.3556746771306656e-02
+-3.3481869089680615e-02
+-3.3407058467578542e-02
+-3.3332314862997169e-02
+-3.3257638248240191e-02
+-3.3183028595601100e-02
+-3.3108485875960776e-02
+-3.3034010059637763e-02
+-3.2959601110522825e-02
+-3.2885258970738317e-02
+-3.2810983577831680e-02
+-3.2736774880448814e-02
+-3.2662632848784220e-02
+-3.2588557455435256e-02
+-3.2514548672020908e-02
+-3.2440606469044127e-02
+-3.2366730815635562e-02
+-3.2292921664818439e-02
+-3.2219178958579529e-02
+-3.2145502641416843e-02
+-3.2071892675769181e-02
+-3.1998349031201828e-02
+-3.1924871678463362e-02
+-3.1851460592552325e-02
+-3.1778115749306619e-02
+-3.1704837113193933e-02
+-3.1631624625717107e-02
+-3.1558478226030612e-02
+-3.1485397868469114e-02
+-3.1412383525509742e-02
+-3.1339435170743647e-02
+-3.1266552778841633e-02
+-3.1193736325234808e-02
+-3.1120985782060146e-02
+-3.1048301099114738e-02
+-3.0975682216853123e-02
+-3.0903129081901216e-02
+-3.0830641664212333e-02
+-3.0758219939161408e-02
+-3.0685863881990072e-02
+-3.0613573467696480e-02
+-3.0541348670835588e-02
+-3.0469189452417049e-02
+-3.0397095756596937e-02
+-3.0325067527696713e-02
+-3.0253104728014492e-02
+-3.0181207333209975e-02
+-3.0109375319254766e-02
+-3.0037608662283870e-02
+-2.9965907338484539e-02
+-2.9894271318521657e-02
+-2.9822700551518186e-02
+-2.9751194981330414e-02
+-2.9679754561455635e-02
+-2.9608379266744044e-02
+-2.9537069074869356e-02
+-2.9465823963362902e-02
+-2.9394643909580971e-02
+-2.9323528889694399e-02
+-2.9252478862562353e-02
+-2.9181493773610283e-02
+-2.9110573570685215e-02
+-2.9039718222826028e-02
+-2.8968927708708032e-02
+-2.8898202006970714e-02
+-2.8827541096004515e-02
+-2.8756944954078299e-02
+-2.8686413551049773e-02
+-2.8615946837402578e-02
+-2.8545544761142169e-02
+-2.8475207282508134e-02
+-2.8404934378305453e-02
+-2.8334726026599220e-02
+-2.8264582207276099e-02
+-2.8194502901689074e-02
+-2.8124488088547981e-02
+-2.8054537725490689e-02
+-2.7984651760098418e-02
+-2.7914830144972386e-02
+-2.7845072854763619e-02
+-2.7775379870037632e-02
+-2.7705751171560149e-02
+-2.7636186740623171e-02
+-2.7566686558311668e-02
+-2.7497250593485369e-02
+-2.7427878797776445e-02
+-2.7358571122388139e-02
+-2.7289327534167934e-02
+-2.7220148013135891e-02
+-2.7151032539996057e-02
+-2.7081981097947065e-02
+-2.7012993671413906e-02
+-2.6944070239691156e-02
+-2.6875210758958060e-02
+-2.6806415178858036e-02
+-2.6737683457732336e-02
+-2.6669015575954122e-02
+-2.6600411517300561e-02
+-2.6531871265802139e-02
+-2.6463394805875270e-02
+-2.6394982121033850e-02
+-2.6326633178088477e-02
+-2.6258347929181317e-02
+-2.6190126328282753e-02
+-2.6121968350161996e-02
+-2.6053873980377746e-02
+-2.5985843204343616e-02
+-2.5917876006451634e-02
+-2.5849972370758586e-02
+-2.5782132274280650e-02
+-2.5714355675482997e-02
+-2.5646642529962162e-02
+-2.5578992804641047e-02
+-2.5511406483835250e-02
+-2.5443883553297721e-02
+-2.5376423998523880e-02
+-2.5309027804771268e-02
+-2.5241694955530514e-02
+-2.5174425418204836e-02
+-2.5107219151454013e-02
+-2.5040076117275625e-02
+-2.4972996294843865e-02
+-2.4905979668640190e-02
+-2.4839026224513391e-02
+-2.4772135952136624e-02
+-2.4705308841629556e-02
+-2.4638544870765923e-02
+-2.4571843997585593e-02
+-2.4505206179107911e-02
+-2.4438631388969373e-02
+-2.4372119616646665e-02
+-2.4305670852107331e-02
+-2.4239285084159876e-02
+-2.4172962300945643e-02
+-2.4106702487028495e-02
+-2.4040505608472956e-02
+-2.3974371625314995e-02
+-2.3908300504589950e-02
+-2.3842292233677696e-02
+-2.3776346803593102e-02
+-2.3710464204996083e-02
+-2.3644644427970114e-02
+-2.3578887461934126e-02
+-2.3513193282935437e-02
+-2.3447561853737756e-02
+-2.3381993138131659e-02
+-2.3316487116769473e-02
+-2.3251043780255498e-02
+-2.3185663119641795e-02
+-2.3120345127827905e-02
+-2.3055089798322981e-02
+-2.2989897117981845e-02
+-2.2924767053533714e-02
+-2.2859699568002236e-02
+-2.2794694634802829e-02
+-2.2729752245476732e-02
+-2.2664872393381857e-02
+-2.2600055072329695e-02
+-2.2535300276602069e-02
+-2.2470607998948296e-02
+-2.2405978215333456e-02
+-2.2341410891362080e-02
+-2.2276905995709154e-02
+-2.2212463515719025e-02
+-2.2148083445371197e-02
+-2.2083765779379406e-02
+-2.2019510514810166e-02
+-2.1955317649069089e-02
+-2.1891187168874296e-02
+-2.1827119041533900e-02
+-2.1763113232845681e-02
+-2.1699169723837401e-02
+-2.1635288511967447e-02
+-2.1571469595404506e-02
+-2.1507712971300681e-02
+-2.1444018636147144e-02
+-2.1380386583536738e-02
+-2.1316816789763635e-02
+-2.1253309224652694e-02
+-2.1189863863805461e-02
+-2.1126480702158910e-02
+-2.1063159738647214e-02
+-2.0999900971792721e-02
+-2.0936704399353172e-02
+-2.0873570018594446e-02
+-2.0810497815617134e-02
+-2.0747487763974445e-02
+-2.0684539837769828e-02
+-2.0621654026372269e-02
+-2.0558830329383212e-02
+-2.0496068746703629e-02
+-2.0433369279030666e-02
+-2.0370731927360913e-02
+-2.0308156687440945e-02
+-2.0245643536753326e-02
+-2.0183192448845678e-02
+-2.0120803406144489e-02
+-2.0058476408702980e-02
+-1.9996211458652904e-02
+-1.9934008558695974e-02
+-1.9871867712204366e-02
+-1.9809788921361572e-02
+-1.9747772172586487e-02
+-1.9685817441262667e-02
+-1.9623924705279506e-02
+-1.9562093960865560e-02
+-1.9500325211723520e-02
+-1.9438618462074481e-02
+-1.9376973717995731e-02
+-1.9315390985918352e-02
+-1.9253870263170641e-02
+-1.9192411528253978e-02
+-1.9131014757705879e-02
+-1.9069679941502694e-02
+-1.9008407086033036e-02
+-1.8947196198610634e-02
+-1.8886047285731691e-02
+-1.8824960353292265e-02
+-1.8763935404919472e-02
+-1.8702972428563204e-02
+-1.8642071405467347e-02
+-1.8581232321375436e-02
+-1.8520455179447275e-02
+-1.8459739987007076e-02
+-1.8399086752113217e-02
+-1.8338495484427807e-02
+-1.8277966193493145e-02
+-1.8217498877032876e-02
+-1.8157093517736502e-02
+-1.8096750098378835e-02
+-1.8036468617618123e-02
+-1.7976249086185232e-02
+-1.7916091515099437e-02
+-1.7855995915354850e-02
+-1.7795962297927903e-02
+-1.7735990669478598e-02
+-1.7676081019361065e-02
+-1.7616233332599415e-02
+-1.7556447601979636e-02
+-1.7496723837865560e-02
+-1.7437062053020133e-02
+-1.7377462259977775e-02
+-1.7317924470973269e-02
+-1.7258448697449340e-02
+-1.7199034938941527e-02
+-1.7139683185544322e-02
+-1.7080393428873637e-02
+-1.7021165674462147e-02
+-1.6961999934325452e-02
+-1.6902896221457932e-02
+-1.6843854552858858e-02
+-1.6784874946548001e-02
+-1.6725957412674949e-02
+-1.6667101942800626e-02
+-1.6608308526036526e-02
+-1.6549577162895925e-02
+-1.6490907869665818e-02
+-1.6432300663797212e-02
+-1.6373755563001927e-02
+-1.6315272585205876e-02
+-1.6256851746447129e-02
+-1.6198493047393812e-02
+-1.6140196481215712e-02
+-1.6081962044968565e-02
+-1.6023789753164631e-02
+-1.5965679625130028e-02
+-1.5907631680465214e-02
+-1.5849645939458382e-02
+-1.5791722422303756e-02
+-1.5733861139601239e-02
+-1.5676062088122136e-02
+-1.5618325264296490e-02
+-1.5560650677922170e-02
+-1.5503038350304234e-02
+-1.5445488303286356e-02
+-1.5388000560152916e-02
+-1.5330575144919272e-02
+-1.5273212077726740e-02
+-1.5215911360762713e-02
+-1.5158672991022340e-02
+-1.5101496972629859e-02
+-1.5044383328172815e-02
+-1.4987332083179900e-02
+-1.4930343263191708e-02
+-1.4873416893768450e-02
+-1.4816552999796737e-02
+-1.4759751593359318e-02
+-1.4703012675050265e-02
+-1.4646336246976885e-02
+-1.4589722328742333e-02
+-1.4533170949245706e-02
+-1.4476682137182853e-02
+-1.4420255919851747e-02
+-1.4363892324116129e-02
+-1.4307591371529671e-02
+-1.4251353069284246e-02
+-1.4195177422303281e-02
+-1.4139064444673864e-02
+-1.4083014164859863e-02
+-1.4027026612621465e-02
+-1.3971101818569580e-02
+-1.3915239814110459e-02
+-1.3859440629129574e-02
+-1.3803704278714449e-02
+-1.3748030769737673e-02
+-1.3692420112321657e-02
+-1.3636872333646938e-02
+-1.3581387466314300e-02
+-1.3525965543517463e-02
+-1.3470606600122179e-02
+-1.3415310671154659e-02
+-1.3360077782247152e-02
+-1.3304907943665005e-02
+-1.3249801164848786e-02
+-1.3194757468528832e-02
+-1.3139776890382981e-02
+-1.3084859466690394e-02
+-1.3030005234364385e-02
+-1.2975214230686710e-02
+-1.2920486489939450e-02
+-1.2865822030333547e-02
+-1.2811220864729340e-02
+-1.2756683011722369e-02
+-1.2702208506946363e-02
+-1.2647797389188857e-02
+-1.2593449697827400e-02
+-1.2539165473243838e-02
+-1.2484944755434766e-02
+-1.2430787572888244e-02
+-1.2376693942408897e-02
+-1.2322663881658627e-02
+-1.2268697423051452e-02
+-1.2214794607916453e-02
+-1.2160955477998298e-02
+-1.2107180076656350e-02
+-1.2053468447814375e-02
+-1.1999820630044053e-02
+-1.1946236645277844e-02
+-1.1892716512326281e-02
+-1.1839260259408351e-02
+-1.1785867931506671e-02
+-1.1732539575299674e-02
+-1.1679275236429809e-02
+-1.1626074959443124e-02
+-1.1572938787840527e-02
+-1.1519866753879381e-02
+-1.1466858882728539e-02
+-1.1413915201861838e-02
+-1.1361035752994974e-02
+-1.1308220583044900e-02
+-1.1255469739564273e-02
+-1.1202783272131393e-02
+-1.1150161230671586e-02
+-1.1097603657641423e-02
+-1.1045110581602093e-02
+-1.0992682030013782e-02
+-1.0940318041750599e-02
+-1.0888018668268681e-02
+-1.0835783961653701e-02
+-1.0783613973666846e-02
+-1.0731508755859574e-02
+-1.0679468357771574e-02
+-1.0627492816472552e-02
+-1.0575582164271577e-02
+-1.0523736437577220e-02
+-1.0471955686809423e-02
+-1.0420239965392555e-02
+-1.0368589328138078e-02
+-1.0317003832539515e-02
+-1.0265483536039977e-02
+-1.0214028485012129e-02
+-1.0162638713109894e-02
+-1.0111314254470805e-02
+-1.0060055158193425e-02
+-1.0008861483639709e-02
+-9.9577332903867596e-03
+-9.9066706380288444e-03
+-9.8556735861757734e-03
+-9.8047421903766328e-03
+-9.7538764916279986e-03
+-9.7030765277324148e-03
+-9.6523423440947765e-03
+-9.6016740015318174e-03
+-9.5510715627441338e-03
+-9.5005350906139149e-03
+-9.4500646482370138e-03
+-9.3996602978936548e-03
+-9.3493220905601065e-03
+-9.2990500691319759e-03
+-9.2488442783999515e-03
+-9.1987047772509687e-03
+-9.1486316304718405e-03
+-9.0986249034487564e-03
+-9.0486846636920575e-03
+-8.9988109791853520e-03
+-8.9490039113676555e-03
+-8.8992635077929753e-03
+-8.8495898145352254e-03
+-8.7999828877065225e-03
+-8.7504427959416136e-03
+-8.7009696087517290e-03
+-8.6515633966856176e-03
+-8.6022242310707688e-03
+-8.5529521814017642e-03
+-8.5037473037605747e-03
+-8.4546096483750534e-03
+-8.4055392693085113e-03
+-8.3565362357604922e-03
+-8.3076006206666952e-03
+-8.2587324976631932e-03
+-8.2099319419101369e-03
+-8.1611990285676578e-03
+-8.1125338240901259e-03
+-8.0639363836033130e-03
+-8.0154067622800317e-03
+-7.9669450273474919e-03
+-7.9185512554055416e-03
+-7.8702255235273653e-03
+-7.8219679103522528e-03
+-7.7737784952482099e-03
+-7.7256573542015270e-03
+-7.6776045491762802e-03
+-7.6296201385622625e-03
+-7.5817041871408504e-03
+-7.5338567744654824e-03
+-7.4860779822046924e-03
+-7.4383678924672672e-03
+-7.3907265879495478e-03
+-7.3431541507609204e-03
+-7.2956506524745127e-03
+-7.2482161561322296e-03
+-7.2008507263143697e-03
+-7.1535544416646531e-03
+-7.1063273875522047e-03
+-7.0591696497059259e-03
+-7.0120813151372400e-03
+-6.9650624712079938e-03
+-6.9181131999724111e-03
+-6.8712335706011237e-03
+-6.8244236505526357e-03
+-6.7776835159206357e-03
+-6.7310132549963566e-03
+-6.6844129570986397e-03
+-6.6378827129187539e-03
+-6.5914226143114606e-03
+-6.5450327516480746e-03
+-6.4987132023587623e-03
+-6.4524640374327459e-03
+-6.4062853313807304e-03
+-6.3601771748041528e-03
+-6.3141396628801534e-03
+-6.2681728904914399e-03
+-6.2222769517243960e-03
+-6.1764519404457026e-03
+-6.1306979441002269e-03
+-6.0850150406529767e-03
+-6.0394033079155711e-03
+-5.9938628345214380e-03
+-5.9483937186293511e-03
+-5.9029960587812002e-03
+-5.8576699537745656e-03
+-5.8124155025568100e-03
+-5.7672328016110221e-03
+-5.7221219355821319e-03
+-5.6770829856320638e-03
+-5.6321160383368436e-03
+-5.5872211945688591e-03
+-5.5423985575702968e-03
+-5.4976482306073006e-03
+-5.4529703169630172e-03
+-5.4083649195231431e-03
+-5.3638321326640133e-03
+-5.3193720429623344e-03
+-5.2749847380380030e-03
+-5.2306703176722581e-03
+-5.1864288882745623e-03
+-5.1422605566319264e-03
+-5.0981654309316775e-03
+-5.0541436198177619e-03
+-5.0101952276494412e-03
+-4.9663203468407130e-03
+-4.9225190678957942e-03
+-4.8787914890840844e-03
+-4.8351377211068823e-03
+-4.7915578758274515e-03
+-4.7480520652730136e-03
+-4.7046204016292763e-03
+-4.6612629961131661e-03
+-4.6179799500215453e-03
+-4.5747713590365297e-03
+-4.5316373213391955e-03
+-4.4885779483694113e-03
+-4.4455933559131300e-03
+-4.4026836601087065e-03
+-4.3598489780284000e-03
+-4.3170894268672955e-03
+-4.2744051178131215e-03
+-4.2317961519755219e-03
+-4.1892626299576408e-03
+-4.1468046619997801e-03
+-4.1044223679374782e-03
+-4.0621158681444494e-03
+-4.0198852838840135e-03
+-3.9777307369650260e-03
+-3.9356523471934836e-03
+-3.8936502231520418e-03
+-3.8517244696232916e-03
+-3.8098751957832458e-03
+-3.7681025240926592e-03
+-3.7264065795688853e-03
+-3.6847874876360051e-03
+-3.6432453743926270e-03
+-3.6017803657290137e-03
+-3.5603925797349674e-03
+-3.5190821264058513e-03
+-3.4778491164462930e-03
+-3.4366936720808877e-03
+-3.3956159226708423e-03
+-3.3546159978431818e-03
+-3.3136940279160348e-03
+-3.2728501434853264e-03
+-3.2320844718468330e-03
+-3.1913971296809837e-03
+-3.1507882316592069e-03
+-3.1102578987861340e-03
+-3.0698062635707507e-03
+-3.0294334598134015e-03
+-2.9891396220007999e-03
+-2.9489248853574773e-03
+-2.9087893843907859e-03
+-2.8687332443340118e-03
+-2.8287565844586759e-03
+-2.7888595260171008e-03
+-2.7490422026102660e-03
+-2.7093047524877618e-03
+-2.6696473142217253e-03
+-2.6300700273079319e-03
+-2.5905730314319760e-03
+-2.5511564612083234e-03
+-2.5118204415563437e-03
+-2.4725650966446670e-03
+-2.4333905591427596e-03
+-2.3942969712906991e-03
+-2.3552844759366673e-03
+-2.3163532165327424e-03
+-2.2775033369554693e-03
+-2.2387349795807529e-03
+-2.2000482769170587e-03
+-2.1614433576439720e-03
+-2.1229203539400790e-03
+-2.0844794101257916e-03
+-2.0461206732208135e-03
+-2.0078442906382088e-03
+-1.9696504105152480e-03
+-1.9315391809116124e-03
+-1.8935107432354274e-03
+-1.8555652310758971e-03
+-1.8177027783943035e-03
+-1.7799235292506722e-03
+-1.7422276348022479e-03
+-1.7046152464966521e-03
+-1.6670865164103510e-03
+-1.6296415969126855e-03
+-1.5922806377443018e-03
+-1.5550037788498517e-03
+-1.5178111580049698e-03
+-1.4807029182466196e-03
+-1.4436792134719172e-03
+-1.4067401989967950e-03
+-1.3698860306942248e-03
+-1.3331168651049146e-03
+-1.2964328582794771e-03
+-1.2598341581694513e-03
+-1.2233209068214276e-03
+-1.1868932477669769e-03
+-1.1505513355689007e-03
+-1.1142953295452881e-03
+-1.0781253892753768e-03
+-1.0420416750928981e-03
+-1.0060443475385598e-03
+-9.7013356294346526e-04
+-9.3430946843736662e-04
+-8.9857221018923596e-04
+-8.6292194166895993e-04
+-8.2735882564124845e-04
+-7.9188302555127784e-04
+-7.5649470513979001e-04
+-7.2119402838837074e-04
+-6.8598115815650753e-04
+-6.5085624858286794e-04
+-6.1581944993842818e-04
+-5.8087091523187470e-04
+-5.4601080839602480e-04
+-5.1123929616490480e-04
+-4.7655654557731775e-04
+-4.4196272427798737e-04
+-4.0745799991285684e-04
+-3.7304253445536025e-04
+-3.3871648231638288e-04
+-3.0447999798557002e-04
+-2.7033324456936345e-04
+-2.3627639203242028e-04
+-2.0230961064482097e-04
+-1.6843307113305759e-04
+-1.3464694447354173e-04
+-1.0095139957185298e-04
+-6.7346596362135214e-05
+-3.3832692470608155e-05
+-4.0984972677153372e-07
+3.2921760166606750e-05
+6.6161964011741370e-05
+9.9310588273933048e-05
+1.3236745897846327e-04
+1.6533240247158245e-04
+1.9820525202309103e-04
+2.3098584662370345e-04
+2.6367402423088562e-04
+2.9626961339625961e-04
+3.2877243804211475e-04
+3.6118232195032581e-04
+3.9349908866050765e-04
+4.2572256160310204e-04
+4.5785256745325839e-04
+4.8988894103000800e-04
+5.2183151822599743e-04
+5.5368012932096602e-04
+5.8543459651308363e-04
+6.1709474129288547e-04
+6.4866038488275600e-04
+6.8013134826383861e-04
+7.1150745324595249e-04
+7.4278852936246248e-04
+7.7397441005411206e-04
+8.0506492674824735e-04
+8.3605990161411247e-04
+8.6695915408382235e-04
+8.9776250343009381e-04
+9.2846976862877891e-04
+9.5908076863329727e-04
+9.8959532711502909e-04
+1.0200132748912445e-03
+1.0503344429515921e-03
+1.0805586553758457e-03
+1.1106857300232720e-03
+1.1407154844584857e-03
+1.1706477361483009e-03
+1.2004823024732104e-03
+1.2302190024448497e-03
+1.2598576633025597e-03
+1.2893981147352879e-03
+1.3188401831807270e-03
+1.3481836863709037e-03
+1.3774284405176493e-03
+1.4065742619242367e-03
+1.4356209670797308e-03
+1.4645683727090399e-03
+1.4934163013366093e-03
+1.5221645809168763e-03
+1.5508130387877927e-03
+1.5793614949387406e-03
+1.6078097652403663e-03
+1.6361576654343613e-03
+1.6644050111275705e-03
+1.6925516178369774e-03
+1.7205973038870476e-03
+1.7485418957086437e-03
+1.7763852210433400e-03
+1.8041271031689723e-03
+1.8317673580880004e-03
+1.8593058010768230e-03
+1.8867422476689254e-03
+1.9140765136470967e-03
+1.9413084154314691e-03
+1.9684377764118718e-03
+1.9954644239948624e-03
+2.0223881841613459e-03
+2.0492088752747284e-03
+2.0759263131085405e-03
+2.1025403135627517e-03
+2.1290506930622790e-03
+2.1554572681199489e-03
+2.1817598591374844e-03
+2.2079582932207648e-03
+2.2340523978620691e-03
+2.2600419954972957e-03
+2.2859269034187931e-03
+2.3117069386598414e-03
+2.3373819186101401e-03
+2.3629516608469968e-03
+2.3884159842450020e-03
+2.4137747152859212e-03
+2.4390276830655666e-03
+2.4641747144232883e-03
+2.4892156293018436e-03
+2.5141502462536916e-03
+2.5389783842412455e-03
+2.5636998630144976e-03
+2.5883145025453547e-03
+2.6128221279376950e-03
+2.6372225697406282e-03
+2.6615156582232347e-03
+2.6857012181578446e-03
+2.7097790708184824e-03
+2.7337490375373696e-03
+2.7576109406481585e-03
+2.7813646028079586e-03
+2.8050098487313086e-03
+2.8285465099978581e-03
+2.8519744195124480e-03
+2.8752934077903181e-03
+2.8985033009475587e-03
+2.9216039245555255e-03
+2.9445951039817919e-03
+2.9674766643757794e-03
+2.9902484313973419e-03
+3.0129102376381077e-03
+3.0354619202371167e-03
+3.0579033155293668e-03
+3.0802342546765653e-03
+3.1024545668203794e-03
+3.1245640812845514e-03
+3.1465626281851023e-03
+3.1684500377873112e-03
+3.1902261439902217e-03
+3.2118907878247865e-03
+3.2334438109681766e-03
+3.2548850513237689e-03
+3.2762143424589574e-03
+3.2974315177760594e-03
+3.3185364123067950e-03
+3.3395288621837511e-03
+3.3604087046119275e-03
+3.3811757839666695e-03
+3.4018299474617973e-03
+3.4223710408882659e-03
+3.4427989050524214e-03
+3.4631133796044957e-03
+3.4833143049327001e-03
+3.5034015229858115e-03
+3.5233748760077808e-03
+3.5432342112946425e-03
+3.5629793822154862e-03
+3.5826102421524981e-03
+3.6021266404347892e-03
+3.6215284234713107e-03
+3.6408154379651350e-03
+3.6599875333808945e-03
+3.6790445603092103e-03
+3.6979863710293981e-03
+3.7168128242954950e-03
+3.7355237803364922e-03
+3.7541190978618690e-03
+3.7725986324082645e-03
+3.7909622391043701e-03
+3.8092097745037390e-03
+3.8273410969543297e-03
+3.8453560652882720e-03
+3.8632545442477684e-03
+3.8810364029797859e-03
+3.8987015102748151e-03
+3.9162497318563109e-03
+3.9336809320790192e-03
+3.9509949758229426e-03
+3.9681917301926384e-03
+3.9852710628235765e-03
+4.0022328446648959e-03
+4.0190769540721762e-03
+4.0358032703171950e-03
+4.0524116708007350e-03
+4.0689020304963000e-03
+4.0852742243207849e-03
+4.1015281293371505e-03
+4.1176636242714476e-03
+4.1336805887449415e-03
+4.1495789090653474e-03
+4.1653584745834924e-03
+4.1810191741937603e-03
+4.1965608949414328e-03
+4.2119835233750532e-03
+4.2272869474467116e-03
+4.2424710584088986e-03
+4.2575357480351631e-03
+4.2724809115623373e-03
+4.2873064489442544e-03
+4.3020122604558618e-03
+4.3165982464943142e-03
+4.3310643075509577e-03
+4.3454103443358759e-03
+4.3596362594599918e-03
+4.3737419564303650e-03
+4.3877273405584531e-03
+4.4015923250276708e-03
+4.4153368251359420e-03
+4.4289607555832331e-03
+4.4424640296462240e-03
+4.4558465604260054e-03
+4.4691082635330481e-03
+4.4822490581411280e-03
+4.4952688639596124e-03
+4.5081676055453348e-03
+4.5209452115547765e-03
+4.5336016107855965e-03
+4.5461367322236074e-03
+4.5585505049426239e-03
+4.5708428587877704e-03
+4.5830137271454267e-03
+4.5950630444069451e-03
+4.6069907478552240e-03
+4.6187967821234351e-03
+4.6304810929858591e-03
+4.6420436260032286e-03
+4.6534843264225238e-03
+4.6648031396349255e-03
+4.6760000142295408e-03
+4.6870749016153105e-03
+4.6980277540815364e-03
+4.7088585308547965e-03
+4.7195671947843276e-03
+4.7301537087283052e-03
+4.7406180354190733e-03
+4.7509601375588682e-03
+4.7611799799277248e-03
+4.7712775328131269e-03
+4.7812527674703873e-03
+4.7911056584967826e-03
+4.8008361856331800e-03
+4.8104443291226064e-03
+4.8199300702314162e-03
+4.8292933911675299e-03
+4.8385342747595565e-03
+4.8476527091816483e-03
+4.8566486855293155e-03
+4.8655221960172430e-03
+4.8742732382269132e-03
+4.8829018114293528e-03
+4.8914079159210807e-03
+4.8997915548048276e-03
+4.9080527317298984e-03
+4.9161914531563799e-03
+4.9242077300458362e-03
+4.9321015739978063e-03
+4.9398730010018791e-03
+4.9475220312529379e-03
+4.9550486854670764e-03
+4.9624529875445982e-03
+4.9697349632125652e-03
+4.9768946391442505e-03
+4.9839320467071754e-03
+4.9908472188301819e-03
+4.9976401907556806e-03
+5.0043110043770213e-03
+5.0108597028503633e-03
+5.0172863311194965e-03
+5.0235909370948371e-03
+5.0297735691839148e-03
+5.0358342797516206e-03
+5.0417731251118682e-03
+5.0475901623536880e-03
+5.0532854543879867e-03
+5.0588590676042162e-03
+5.0643110691509239e-03
+5.0696415298475267e-03
+5.0748505218086671e-03
+5.0799381192189186e-03
+5.0849044024438191e-03
+5.0897494531071449e-03
+5.0944733557580927e-03
+5.0990762000161748e-03
+5.1035580762121635e-03
+5.1079190781615543e-03
+5.1121593033004904e-03
+5.1162788497841139e-03
+5.1202778211388378e-03
+5.1241563242465579e-03
+5.1279144671083719e-03
+5.1315523635367686e-03
+5.1350701294768123e-03
+5.1384678824895171e-03
+5.1417457451072559e-03
+5.1449038409521657e-03
+5.1479422969025451e-03
+5.1508612457132081e-03
+5.1536608209837792e-03
+5.1563411601154054e-03
+5.1589024046206486e-03
+5.1613446967918560e-03
+5.1636681846661536e-03
+5.1658730200267299e-03
+5.1679593556046254e-03
+5.1699273490058897e-03
+5.1717771597272165e-03
+5.1735089494689213e-03
+5.1751228870503185e-03
+5.1766191428836133e-03
+5.1779978899412034e-03
+5.1792593059794443e-03
+5.1804035695372872e-03
+5.1814308635007127e-03
+5.1823413756494135e-03
+5.1831352945950421e-03
+5.1838128147408862e-03
+5.1843741344319459e-03
+5.1848194530127682e-03
+5.1851489750852830e-03
+5.1853629073885322e-03
+5.1854614587185663e-03
+5.1854448447512152e-03
+5.1853132827892777e-03
+5.1850669928004368e-03
+5.1847061999295511e-03
+5.1842311302009942e-03
+5.1836420144351974e-03
+5.1829390890720563e-03
+5.1821225913548374e-03
+5.1811927632471420e-03
+5.1801498500718083e-03
+5.1789940983809598e-03
+5.1777257616831647e-03
+5.1763450964274456e-03
+5.1748523605112413e-03
+5.1732478167243407e-03
+5.1715317291214750e-03
+5.1697043657285575e-03
+5.1677660026665760e-03
+5.1657169172742911e-03
+5.1635573894300976e-03
+5.1612877020907498e-03
+5.1589081390323406e-03
+5.1564189908553486e-03
+5.1538205532044180e-03
+5.1511131227921277e-03
+5.1482970020403519e-03
+5.1453724959174101e-03
+5.1423399110558212e-03
+5.1391995599730745e-03
+5.1359517567521580e-03
+5.1325968184965671e-03
+5.1291350686674415e-03
+5.1255668318357268e-03
+5.1218924371779799e-03
+5.1181122197069221e-03
+5.1142265152185557e-03
+5.1102356630758038e-03
+5.1061400054104441e-03
+5.1019398856358422e-03
+5.0976356549457683e-03
+5.0932276681296762e-03
+5.0887162815274551e-03
+5.0841018570818670e-03
+5.0793847583091327e-03
+5.0745653512694437e-03
+5.0696440075479639e-03
+5.0646210997691461e-03
+5.0594970049135509e-03
+5.0542721056977555e-03
+5.0489467857327509e-03
+5.0435214335963737e-03
+5.0379964418639130e-03
+5.0323722040320927e-03
+5.0266491185050463e-03
+5.0208275861012824e-03
+5.0149080093757495e-03
+5.0088907974814943e-03
+5.0027763614905359e-03
+4.9965651155451860e-03
+4.9902574807745388e-03
+4.9838538795511584e-03
+4.9773547360712871e-03
+4.9707604769759573e-03
+4.9640715296957409e-03
+4.9572883285592681e-03
+4.9504113136588064e-03
+4.9434409260713814e-03
+4.9363776118786012e-03
+4.9292218197337515e-03
+4.9219739993160080e-03
+4.9146346039666651e-03
+4.9072040882255433e-03
+4.8996829097969615e-03
+4.8920715338864494e-03
+4.8843704271150134e-03
+4.8765800594406470e-03
+4.8687009055433236e-03
+4.8607334408191840e-03
+4.8526781429815303e-03
+4.8445354917816558e-03
+4.8363059681318281e-03
+4.8279900605234065e-03
+4.8195882614492586e-03
+4.8111010646427919e-03
+4.8025289685262604e-03
+4.7938724730734921e-03
+4.7851320794946106e-03
+4.7763082917925241e-03
+4.7674016147121684e-03
+4.7584125573200227e-03
+4.7493416350744555e-03
+4.7401893643901757e-03
+4.7309562653830191e-03
+4.7216428615311995e-03
+4.7122496769069350e-03
+4.7027772377722151e-03
+4.6932260716860043e-03
+4.6835967078139255e-03
+4.6738896820543805e-03
+4.6641055325545230e-03
+4.6542447994808714e-03
+4.6443080280095294e-03
+4.6342957644040948e-03
+4.6242085557744103e-03
+4.6140469504006680e-03
+4.6038114971481145e-03
+4.5935027497658286e-03
+4.5831212666069395e-03
+4.5726676069039679e-03
+4.5621423342494666e-03
+4.5515460147950611e-03
+4.5408792150285595e-03
+4.5301425018325504e-03
+4.5193364424166637e-03
+4.5084616065791446e-03
+4.4975185709480621e-03
+4.4865079136277410e-03
+4.4754302147966942e-03
+4.4642860578512425e-03
+4.4530760267454854e-03
+4.4418007054547164e-03
+4.4304606779813566e-03
+4.4190565291746513e-03
+4.4075888498526635e-03
+4.3960582344324539e-03
+4.3844652781815062e-03
+4.3728105793912992e-03
+4.3610947375677797e-03
+4.3493183522032054e-03
+4.3374820221422474e-03
+4.3255863463952000e-03
+4.3136319272813516e-03
+4.3016193725761058e-03
+4.2895492909416624e-03
+4.2774222930624609e-03
+4.2652389916790151e-03
+4.2529999997683431e-03
+4.2407059289821906e-03
+4.2283573902894530e-03
+4.2159549959185760e-03
+4.2034993638444540e-03
+4.1909911142586033e-03
+4.1784308682069494e-03
+4.1658192487313873e-03
+4.1531568795019243e-03
+4.1404443832476637e-03
+4.1276823807654449e-03
+4.1148714930697716e-03
+4.1020123450301333e-03
+4.0891055655927471e-03
+4.0761517842784513e-03
+4.0631516317888774e-03
+4.0501057396897739e-03
+4.0370147393519644e-03
+4.0238792593799118e-03
+4.0106999275636036e-03
+3.9974773733908670e-03
+3.9842122311931800e-03
+3.9709051365461783e-03
+3.9575567255661784e-03
+3.9441676351031889e-03
+3.9307385022749365e-03
+3.9172699618364301e-03
+3.9037626458923056e-03
+3.8902171869939607e-03
+3.8766342214253628e-03
+3.8630143880441269e-03
+3.8493583260427208e-03
+3.8356666747841055e-03
+3.8219400738928608e-03
+3.8081791619775456e-03
+3.7943845733909663e-03
+3.7805569418354855e-03
+3.7666969029084038e-03
+3.7528050956037030e-03
+3.7388821595736939e-03
+3.7249287343379301e-03
+3.7109454592138911e-03
+3.6969329734483263e-03
+3.6828919120364700e-03
+3.6688229071423950e-03
+3.6547265916202494e-03
+3.6406036015037497e-03
+3.6264545742918401e-03
+3.6122801473907748e-03
+3.5980809570448163e-03
+3.5838576394620308e-03
+3.5696108284034803e-03
+3.5553411523186937e-03
+3.5410492393325404e-03
+3.5267357195024828e-03
+3.5124012251472204e-03
+3.4980463888705359e-03
+3.4836718416674226e-03
+3.4692782134646840e-03
+3.4548661335778541e-03
+3.4404362255163576e-03
+3.4259891105289492e-03
+3.4115254105598581e-03
+3.3970457493612775e-03
+3.3825507513389284e-03
+3.3680410401050916e-03
+3.3535172372373355e-03
+3.3389799641868096e-03
+3.3244298379956623e-03
+3.3098674701029724e-03
+3.2952934719466566e-03
+3.2807084563103391e-03
+3.2661130370607539e-03
+3.2515078279350034e-03
+3.2368934397325627e-03
+3.2222704821302781e-03
+3.2076395631435903e-03
+3.1930012833731028e-03
+3.1783562418102643e-03
+3.1637050379452322e-03
+3.1490482720199307e-03
+3.1343865445701146e-03
+3.1197204540447470e-03
+3.1050505960770278e-03
+3.0903775659416898e-03
+3.0757019525002620e-03
+3.0610243396701998e-03
+3.0463453115029487e-03
+3.0316654522505007e-03
+3.0169853464102536e-03
+3.0023055777479209e-03
+2.9876267261103222e-03
+2.9729493705233515e-03
+2.9582740865353547e-03
+2.9436014412367044e-03
+2.9289320007507345e-03
+2.9142663313581241e-03
+2.8996049994547911e-03
+2.8849485714481670e-03
+2.8702976099382886e-03
+2.8556526744775330e-03
+2.8410143237164831e-03
+2.8263831079825778e-03
+2.8117595737494833e-03
+2.7971442674737763e-03
+2.7825377347710568e-03
+2.7679405212135224e-03
+2.7533531705724230e-03
+2.7387762218644592e-03
+2.7242102134958121e-03
+2.7096556783025197e-03
+2.6951131411031438e-03
+2.6805831262705390e-03
+2.6660661572511461e-03
+2.6515627567437962e-03
+2.6370734470574451e-03
+2.6225987456297722e-03
+2.6081391675814342e-03
+2.5936952259759251e-03
+2.5792674237242971e-03
+2.5648562610192283e-03
+2.5504622376248402e-03
+2.5360858518475161e-03
+2.5217276018986139e-03
+2.5073879826725534e-03
+2.4930674840386588e-03
+2.4787665952470278e-03
+2.4644857978355730e-03
+2.4502255665524897e-03
+2.4359863758909341e-03
+2.4217686984488026e-03
+2.4075730059392396e-03
+2.3933997689360182e-03
+2.3792494517758033e-03
+2.3651225170825668e-03
+2.3510194237705870e-03
+2.3369406205190450e-03
+2.3228865544753269e-03
+2.3088576715433570e-03
+2.2948544155920857e-03
+2.2808772302545829e-03
+2.2669265543346765e-03
+2.2530028222046130e-03
+2.2391064672006673e-03
+2.2252379128760661e-03
+2.2113975775301907e-03
+2.1975858790516094e-03
+2.1838032327611868e-03
+2.1700500533080981e-03
+2.1563267530361574e-03
+2.1426337375216502e-03
+2.1289714112389330e-03
+2.1153401728819868e-03
+2.1017404117186144e-03
+2.0881725162171993e-03
+2.0746368726621157e-03
+2.0611338652488419e-03
+2.0476638776208318e-03
+2.0342272872845898e-03
+2.0208244683227825e-03
+2.0074557928057412e-03
+1.9941216217135137e-03
+1.9808223125074185e-03
+1.9675582217654128e-03
+1.9543297031782104e-03
+1.9411371099939732e-03
+1.9279807916435352e-03
+1.9148610910314837e-03
+1.9017783502346172e-03
+1.8887329035443101e-03
+1.8757250774656760e-03
+1.8627551980076324e-03
+1.8498235881856694e-03
+1.8369305692940764e-03
+1.8240764614184555e-03
+1.8112615774537534e-03
+1.7984862279217366e-03
+1.7857507198865107e-03
+1.7730553495671902e-03
+1.7604004112061623e-03
+1.7477861972794004e-03
+1.7352129970641542e-03
+1.7226810994234885e-03
+1.7101907881839893e-03
+1.6977423419180853e-03
+1.6853360381891063e-03
+1.6729721449381960e-03
+1.6606509241785280e-03
+1.6483726373248549e-03
+1.6361375422891972e-03
+1.6239458957997808e-03
+1.6117979523832065e-03
+1.5996939592739232e-03
+1.5876341622846110e-03
+1.5756188019758408e-03
+1.5636481092028913e-03
+1.5517223137769822e-03
+1.5398416429642664e-03
+1.5280063212583740e-03
+1.5162165725629477e-03
+1.5044726145143931e-03
+1.4927746607241641e-03
+1.4811229231079936e-03
+1.4695176032251424e-03
+1.4579588987988412e-03
+1.4464470065346383e-03
+1.4349821195467872e-03
+1.4235644302327034e-03
+1.4121941275121680e-03
+1.4008713935825150e-03
+1.3895964097145302e-03
+1.3783693503249190e-03
+1.3671903820639715e-03
+1.3560596709589255e-03
+1.3449773797338525e-03
+1.3339436689041939e-03
+1.3229586979544748e-03
+1.3120226196988937e-03
+1.3011355843682969e-03
+1.2902977393153957e-03
+1.2795092216434738e-03
+1.2687701662369994e-03
+1.2580807063928888e-03
+1.2474409721841731e-03
+1.2368510931991573e-03
+1.2263111943855601e-03
+1.2158213952090553e-03
+1.2053818142428597e-03
+1.1949925619363494e-03
+1.1846537430300489e-03
+1.1743654616723494e-03
+1.1641278186125680e-03
+1.1539409132252790e-03
+1.1438048430407002e-03
+1.1337196987085418e-03
+1.1236855692942698e-03
+1.1137025397508899e-03
+1.1037706864211857e-03
+1.0938900845259018e-03
+1.0840608069421838e-03
+1.0742829236606627e-03
+1.0645565041407031e-03
+1.0548816126124091e-03
+1.0452583094715394e-03
+1.0356866537913514e-03
+1.0261666958333517e-03
+1.0166984820785252e-03
+1.0072820581738366e-03
+9.9791746656506964e-04
+9.8860474891916119e-04
+9.7934394419039832e-04
+9.7013508541101486e-04
+9.6097820469467552e-04
+9.5187332872161850e-04
+9.4282047721004072e-04
+9.3381966924218631e-04
+9.2487092122223505e-04
+9.1597424750388659e-04
+9.0712966165912854e-04
+8.9833717186695375e-04
+8.8959678387928460e-04
+8.8090850132633539e-04
+8.7227231931417167e-04
+8.6368823077730974e-04
+8.5515622745998741e-04
+8.4667629841222623e-04
+8.3824843221252325e-04
+8.2987261387136428e-04
+8.2154882363961676e-04
+8.1327704103885336e-04
+8.0505723956135044e-04
+7.9688938788384945e-04
+7.8877345415569340e-04
+7.8070940361625347e-04
+7.7269720012433120e-04
+7.6473680629901932e-04
+7.5682817961502378e-04
+7.4897127614988591e-04
+7.4116604898272437e-04
+7.3341244409581884e-04
+7.2571040637387082e-04
+7.1805987910097306e-04
+7.1046080334675348e-04
+7.0291311975429263e-04
+6.9541676508199442e-04
+6.8797167285087810e-04
+6.8057777566871657e-04
+6.7323499973399349e-04
+6.6594326807725810e-04
+6.5870250313358920e-04
+6.5151262494002110e-04
+6.4437355282760407e-04
+6.3728520425585509e-04
+6.3024749209480264e-04
+6.2326032839900281e-04
+6.1632362160903269e-04
+6.0943727494239166e-04
+6.0260119105377233e-04
+5.9581527070425272e-04
+5.8907941300616719e-04
+5.8239351653166093e-04
+5.7575747606737355e-04
+5.6917118443095417e-04
+5.6263453309595313e-04
+5.5614740755208366e-04
+5.4970969149783307e-04
+5.4332126784767626e-04
+5.3698201757655932e-04
+5.3069182125443134e-04
+5.2445055720896938e-04
+5.1825810040702759e-04
+5.1211432526446568e-04
+5.0601910210124317e-04
+4.9997229753090118e-04
+4.9397377779095098e-04
+4.8802340745997638e-04
+4.8212105019497016e-04
+4.7626656886883993e-04
+4.7045982283868619e-04
+4.6470067033242809e-04
+4.5898896774581791e-04
+4.5332456661083986e-04
+4.4770731756031858e-04
+4.4213707034278943e-04
+4.3661367335616420e-04
+4.3113697469534954e-04
+4.2570682007801773e-04
+4.2032305297949276e-04
+4.1498551629521441e-04
+4.0969404885365002e-04
+4.0444848717367826e-04
+3.9924866742722525e-04
+3.9409442448085731e-04
+3.8898559272379621e-04
+3.8392200551599074e-04
+3.7890349344011281e-04
+3.7392988648469962e-04
+3.6900101244044509e-04
+3.6411669553479702e-04
+3.5927675954782698e-04
+3.5448102744073509e-04
+3.4972932136980188e-04
+3.4502146316274556e-04
+3.4035727244937307e-04
+3.3573656753915402e-04
+3.3115916598760098e-04
+3.2662488177877876e-04
+3.2213352763545069e-04
+3.1768491594067827e-04
+3.1327885825499513e-04
+3.0891516589451914e-04
+3.0459364901222805e-04
+3.0031411583108489e-04
+2.9607637420526686e-04
+2.9188022972560329e-04
+2.8772548567183507e-04
+2.8361194508023951e-04
+2.7953941041584533e-04
+2.7550768375693944e-04
+2.7151656678325788e-04
+2.6756585940968371e-04
+2.6365536086530851e-04
+2.5978486943861398e-04
+2.5595418069178935e-04
+2.5216308957060415e-04
+2.4841139077976177e-04
+2.4469887867342206e-04
+2.4102534743886806e-04
+2.3739059018434283e-04
+2.3379439887563828e-04
+2.3023656515487305e-04
+2.2671687863922552e-04
+2.2323512762192609e-04
+2.1979110025992815e-04
+2.1638458453906436e-04
+2.1301536831519195e-04
+2.0968323901236104e-04
+2.0638798288019085e-04
+2.0312938583473959e-04
+1.9990723279762705e-04
+1.9672130692143281e-04
+1.9357139107187355e-04
+1.9045726810628719e-04
+1.8737872088456602e-04
+1.8433553210922456e-04
+1.8132748370980404e-04
+1.7835435706746092e-04
+1.7541593322395208e-04
+1.7251199172175696e-04
+1.6964231145928874e-04
+1.6680667132314410e-04
+1.6400485042978094e-04
+1.6123662785741638e-04
+1.5850178234915960e-04
+1.5580009209719277e-04
+1.5313133510924583e-04
+1.5049528856170172e-04
+1.4789172868664096e-04
+1.4532043159603796e-04
+1.4278117375915271e-04
+1.4027373185790184e-04
+1.3779788243798661e-04
+1.3535340172094533e-04
+1.3294006573208596e-04
+1.3055765018754923e-04
+1.2820592997703152e-04
+1.2588467972077835e-04
+1.2359367425567359e-04
+1.2133268897626425e-04
+1.1910149924978094e-04
+1.1689988037522303e-04
+1.1472760759194286e-04
+1.1258445600775486e-04
+1.1047020028819996e-04
+1.0838461474953143e-04
+1.0632747371718100e-04
+1.0429855226467951e-04
+1.0229762571693072e-04
+1.0032446937600853e-04
+9.8378858757495913e-05
+9.6460569343502663e-05
+9.4569376462065469e-05
+9.2705055236544370e-05
+9.0867380687637673e-05
+8.9056128414311095e-05
+8.7271074769984094e-05
+8.5511996084855374e-05
+8.3778669023047733e-05
+8.2070870472276473e-05
+8.0388377248065689e-05
+7.8730966261083597e-05
+7.7098414403273225e-05
+7.5490498767443861e-05
+7.3906997560432987e-05
+7.2347689185540387e-05
+7.0812352272471053e-05
+6.9300766087810936e-05
+6.7812709899387532e-05
+6.6347963165369693e-05
+6.4906305626196353e-05
+6.3487517014348296e-05
+6.2091378063020396e-05
+6.0717670265399940e-05
+5.9366175156523617e-05
+5.8036675112209752e-05
+5.6728952838407544e-05
+5.5442791113796944e-05
+5.4177973339740736e-05
+5.2934283004337546e-05
+5.1711504121371424e-05
+5.0509422068829987e-05
+4.9327822346677994e-05
+4.8166491072596093e-05
+4.7025215245106337e-05
+4.5903781878287528e-05
+4.4801978656048711e-05
+4.3719593789782859e-05
+4.2656415602820882e-05
+4.1612233881888792e-05
+4.0586839064841425e-05
+3.9580021810739626e-05
+3.8591574057814078e-05
+3.7621288021215186e-05
+3.6668956293255610e-05
+3.5734372528716873e-05
+3.4817330479293761e-05
+3.3917624861185127e-05
+3.3035051804987767e-05
+3.2169407528702363e-05
+3.1320489364066873e-05
+3.0488095574971528e-05
+2.9672024517000849e-05
+2.8872075760913887e-05
+2.8088049440070117e-05
+2.7319746020869999e-05
+2.6566967807235231e-05
+2.5829517561378638e-05
+2.5107198607443404e-05
+2.4399815847974835e-05
+2.3707174372451630e-05
+2.3029080103626229e-05
+2.2365340245759725e-05
+2.1715762106723331e-05
+2.1080154471456410e-05
+2.0458327422941688e-05
+1.9850091195524248e-05
+1.9255257656360766e-05
+1.8673639486414948e-05
+1.8105049661219114e-05
+1.7549302865151568e-05
+1.7006214233203808e-05
+1.6475599605629075e-05
+1.5957276850295991e-05
+1.5451064116518025e-05
+1.4956780601684715e-05
+1.4474247172530121e-05
+1.4003284835381978e-05
+1.3543715987648323e-05
+1.3095364304386932e-05
+1.2658053648564605e-05
+1.2231609867653205e-05
+1.1815859858474078e-05
+1.1410630877678937e-05
+1.1015752259554764e-05
+1.0631053934825434e-05
+1.0256366504090916e-05
+9.8915225818473401e-06
+9.5363550854421320e-06
+9.1906981466890077e-06
+8.8543879065736906e-06
+8.5272606973721724e-06
+8.2091544681842006e-06
+7.8999087204637809e-06
+7.5993631523326770e-06
+7.3073594305872379e-06
+7.0237403152408970e-06
+6.7483489744671855e-06
+6.4810309699518197e-06
+6.2216326007864510e-06
+5.9700009146692892e-06
+5.7259852855946974e-06
+5.4894354694530095e-06
+5.2602024262345800e-06
+5.0381391924740741e-06
+4.8230990226688042e-06
+4.6149369671685337e-06
+4.4135098765695407e-06
+4.2186748315098594e-06
+4.0302911026890116e-06
+3.8482192403946015e-06
+3.6723202031371047e-06
+3.5024574022138286e-06
+3.3384950504360245e-06
+3.1802981678008079e-06
+3.0277343745404288e-06
+2.8806717526319038e-06
+2.7389796819307925e-06
+2.6025298704987828e-06
+2.4711942846469707e-06
+2.3448467170520823e-06
+2.2233628706281740e-06
+2.1066187022660003e-06
+1.9944925413918417e-06
+1.8868641723466081e-06
+1.7836138152069138e-06
+1.6846243548719378e-06
+1.5897796004747144e-06
+1.4989641738304852e-06
+1.4120654190211551e-06
+1.3289711973719033e-06
+1.2495707397333541e-06
+1.1737558334118614e-06
+1.1014185684280534e-06
+1.0324529690648218e-06
+9.6675516923600297e-07
+9.0422157658014703e-07
+8.4475104914451836e-07
+7.8824401906176981e-07
+7.3460137475924511e-07
+6.8372685226401605e-07
+6.3552523237626870e-07
+5.8990213705425000e-07
+5.4676611328423218e-07
+5.0602630111955914e-07
+4.6759323631176885e-07
+4.3138016691346670e-07
+3.9730068249834175e-07
+3.6527039349757101e-07
+3.3520720769444772e-07
+3.0702933114535241e-07
+2.8065754177831338e-07
+2.5601434678190153e-07
+2.3302272073234222e-07
+2.1160860834590394e-07
+1.9169910411457710e-07
+1.7322216385866231e-07
+1.5610885271644644e-07
+1.4029090643899423e-07
+1.2570149527029649e-07
+1.1227669088006156e-07
+9.9952950921495282e-08
+8.8668809007259397e-08
+7.8365257745901826e-08
+6.8983611278561868e-08
+6.0467859816421839e-08
+5.2763875100097151e-08
+4.5818009968635823e-08
+3.9579725016674250e-08
+3.3999748209877121e-08
+2.9029679155710060e-08
+2.4624382670114485e-08
+2.0739470706704746e-08
+1.7332019665292412e-08
+1.4362188741224088e-08
+1.1790569939770949e-08
+9.5798848239796567e-09
+7.6954824009436132e-09
+6.1030579590459127e-09
+4.7710796983440075e-09
+3.6700528848338046e-09
+2.7709705773977052e-09
+2.0480188848312498e-09
+1.4767534970440388e-09
+1.0336424765344218e-09
+6.9869765634205481e-10
+4.5278879332618344e-10
+2.7813043243556812e-10
+1.5988420119064110e-10
+8.3665064673966304e-11
+3.7734527067468493e-11
+1.3753941594493452e-11
+3.7311789895380935e-12
+1.5580842952733383e-12
+2.5713706043942408e-12
+2.6432623920650777e-12
+1.3652844494426240e-12
+4.7173508311759690e-15
+-4.6123262412428598e-13
+-2.6746706941431044e-13
+4.4205461688894550e-14
+1.2279530909104078e-13
+5.3182343867558952e-14
+-2.0986927967396535e-14
+-3.1151436643200843e-14
+-9.2653247542921626e-15
+7.3369614026788830e-15
+7.5445032185946037e-15
+1.2181453727357518e-15
+-2.2490085408916792e-15
+-1.7385147001870212e-15
+-2.8050313121921285e-17
+6.3697101282029882e-16
+3.7748480582917786e-16
+-5.6712113412775721e-17
+-1.7028383358146680e-16
+-7.5652649672002530e-17
+2.8166065480995972e-17
+4.3359928932294216e-17
+1.3363024000413645e-17
+-9.9953187114986767e-18
+-1.0540950349551251e-17
+-1.8192819494296899e-18
+3.0883041881070394e-18
+2.4393340254199593e-18
+6.9137486358849691e-20
+-8.7934416700240321e-19
+-5.3248568806905116e-19
+7.2170037881384416e-20
+2.3606403519123308e-19
+1.0753306845090181e-19
+-3.7730899686519559e-20
+-6.0335113780852233e-20
+-1.9243941604166046e-20
+1.3605352739696508e-20
+1.4722816317470659e-20
+2.7040783958563617e-21
+-4.2386434613333595e-21
+-3.4213885472219398e-21
+-1.3835062129683922e-22
+1.2134883413693820e-21
+7.5076407889730712e-22
+-9.0946553516793923e-23
+-3.2715147146436727e-22
+-1.5273328388457270e-22
+5.0442124311783766e-23
+8.3931052167148990e-23
+2.7673774252018786e-23
+-1.8502827830913396e-23
+-2.0557314525162469e-23
+-4.0022989385645779e-24
+5.8143718279647963e-24
+4.7970430852092296e-24
+2.5146653869607879e-25
+-1.6739665922287952e-24
+-1.0580131699346277e-24
+1.1323746387716835e-25
+4.5324210061023210e-25
+2.1677746851842691e-25
+-6.7287023553843632e-26
+-1.1671998977286397e-25
+-3.9743269103209258e-26
+2.5139799589125293e-26
+2.8695050841329106e-26
+5.9016256302225753e-27
+-7.9715182178314987e-27
+-6.7233992390037552e-27
+-4.3233218335999341e-28
+2.3082764743065451e-27
+1.4903047228043324e-27
+-1.3887122598370086e-28
+-6.2772947935279253e-28
+-3.0746401598266171e-28
+8.9540797277257732e-29
+1.6227018587744075e-28
+5.7005470791570410e-29
+-3.4123707702455974e-29
+-4.0041736056728702e-29
+-8.6730862274946717e-30
+1.0922792851213560e-29
+9.4199852261415283e-30
+7.1672003966225911e-31
+-3.1816764850729372e-30
+-2.0982739650988511e-30
+1.6697940154169443e-31
+8.6910692361077287e-31
+4.3579684225291204e-31
+-1.1883865526963076e-31
+-2.2552919922474575e-31
+-8.1668843937957506e-32
+4.6269834574565667e-32
+5.5858092641432953e-32
+1.2707635935594047e-32
+-1.4957885451129377e-32
+-1.3193469772619427e-32
+-1.1580190260374851e-33
+4.3837691797259998e-33
+2.9529528924359493e-33
+-1.9548408660147133e-34
+-1.2029057282392332e-33
+-6.1729951714951657e-34
+1.5725823375809530e-34
+3.1335466975210466e-34
+1.1687174759262300e-34
+-6.2670162960673886e-35
+-7.7898147365392218e-35
+-1.8568012496267102e-35
+2.0471137556719296e-35
+1.8472206969186030e-35
+1.8355993445077828e-36
+-6.0375037302761407e-36
+-4.1539532610685981e-36
+2.2027030365919982e-37
+1.6643548710545176e-36
+8.7385349959750997e-37
+-2.0741693055576765e-37
+-4.3525071798609357e-37
+-1.6707219418571611e-37
+8.4783716412650611e-38
+1.0860150553033451e-37
+2.7063196965917998e-38
+-2.7998783637439951e-38
+-2.5854200297474881e-38
+-2.8668371531377303e-39
+8.3115446182329301e-39
+5.8409468634992681e-39
+-2.3387718274311224e-40
+-2.3020421725969348e-39
+-1.2362892683287048e-39
+2.7257080773556825e-40
+6.0438286581694578e-40
+2.3859549490847642e-40
+-1.1455686205052583e-40
+-1.5136099049713306e-40
+-3.9355165404069165e-41
+3.8269154823840023e-41
+3.6174043357281204e-41
+4.4247151751613488e-42
+-1.1437107327141788e-41
+-8.2096542673900933e-42
+2.2352895074711795e-43
+3.1829696441107834e-42
+1.7480376388305606e-42
+-3.5670259635977630e-43
+-8.3898193212753638e-43
+-3.4041102953653982e-43
+1.5457923182951884e-43
+2.1089280225261031e-43
+5.7109860697091317e-44
+-5.2270919586493203e-44
+-5.0596405038501354e-44
+-6.7635002373791228e-45
+1.5730930652842951e-44
+1.1534248623478391e-44
+-1.6808103405679436e-46
+-4.3994811059341571e-45
+-2.4702322215647471e-45
+4.6459635149450973e-46
+1.1642900003885062e-45
+4.8523319975630782e-46
+-2.0828539824493961e-46
+-2.9375064210556292e-46
+-8.2713282133078414e-47
+7.1344508883778602e-47
+7.0745726227812527e-47
+1.0255476909900692e-47
+-2.1626786048548127e-47
+-1.6198754792364751e-47
+3.3337961559993336e-50
+6.0787838874216839e-48
+3.4888918944811235e-48
+-6.0184061492986086e-49
+-1.6152396066394569e-48
+-6.9106633566502382e-49
+2.8022047700881632e-49
+4.0904074570306303e-49
+1.1958036207774739e-49
+-9.7304771323425276e-50
+-9.8887048227403535e-50
+-1.5444364395910520e-50
+2.9718265702745113e-50
+2.2740743242679909e-50
+2.3484774424407724e-52
+-8.3960811377176667e-51
+-4.9250292690803783e-51
+7.7469552880917470e-52
+2.2401553695469565e-51
+9.8339195102256253e-52
+-3.7637791605199775e-52
+-5.6940994854913858e-52
+-1.7259091411343659e-52
+1.3260709567207548e-52
+1.3817832432602219e-52
+2.3122788335508845e-53
+-4.0817020106365084e-53
+-3.1912488340324425e-53
+-7.2089193836370467e-55
+1.1592540605955391e-53
+6.9487632244691827e-54
+-9.8977645892254681e-55
+-3.1058800455406304e-54
+-1.3982635519135698e-54
+5.0462693040834425e-55
+7.9241662146760415e-55
+2.4871187183059634e-55
+-1.8056872834880640e-55
+-1.9302018393198596e-55
+-3.4442684029065082e-56
+5.6032487496995761e-56
+4.4766598137111139e-56
+1.5550581730978761e-57
+-1.5999951401445646e-56
+-9.7991588301393721e-57
+1.2533364407688265e-57
+4.3048242264639987e-57
+1.9866441763283400e-57
+-6.7526560453523601e-58
+-1.1024356939534030e-57
+-3.5788439993347962e-58
+2.4566390290016699e-58
+2.6954310047694739e-58
+5.1074999969198225e-59
+-7.6879867562337467e-59
+-6.2775077164353004e-59
+-2.9361878522258991e-60
+2.2074687799402724e-59
+1.3812116545093410e-59
+-1.5698884517468512e-60
+-5.9646942589115064e-60
+-2.8205371180613860e-60
+9.0170258745969380e-61
+1.5332887275120087e-60
+5.1427375423401146e-61
+-3.3392175049941397e-61
+-3.7628655313492226e-61
+-7.5440213893455998e-62
+1.0542665469653489e-61
+8.7995802244592988e-62
+5.1655187416799896e-63
+-3.0444103909425294e-62
+-1.9459273483664167e-62
+1.9399274431220134e-63
+8.2619502901940662e-63
+4.0016469050559248e-63
+-1.2012872253912567e-63
+-2.1318892599312179e-63
+-7.3804884064879621e-64
+4.5345261497826167e-64
+5.2513974352630488e-64
+1.1103580233504519e-64
+-1.4449281250064641e-64
+-1.2330539047081601e-64
+-8.6967873516992059e-66
+4.1970081550971426e-65
+2.7402625454983588e-65
+-2.3559978304059214e-66
+-1.1440292738177214e-65
+-5.6735045613342889e-66
+1.5963494170190627e-66
+2.9633038735933179e-66
+1.0579134653096964e-66
+-6.1514442525513860e-67
+-7.3265056045850606e-67
+-1.6290789171158501e-67
+1.9792099378670677e-67
+1.7272272818905088e-67
+1.4208615949963196e-68
+-5.7836445005560349e-68
+-3.8571223821188259e-68
+2.7961753024032280e-69
+1.5836138192759294e-68
+8.0385790318116614e-69
+-2.1154036459021255e-69
+-4.1177329161714208e-69
+-1.5146670359845411e-69
+8.3359603624373996e-70
+1.0218488465212739e-69
+2.3832933563038718e-70
+-2.7094201226950665e-70
+-2.4186086789798501e-70
+-2.2711181728850218e-71
+7.9668146948133317e-71
+5.4268063219185899e-71
+-3.2140080091781946e-72
+-2.1913827402401866e-71
+-1.1382415966633898e-71
+2.7944956802519669e-72
+5.7201753625574184e-72
+2.1662631743108059e-72
+-1.1283399448400313e-72
+-1.4247697435704842e-72
+-3.4776044791734538e-73
+3.7067283287501774e-73
+3.3855856650678802e-73
+3.5702772183825380e-74
+-1.0969419263000670e-73
+-7.6319989724093227e-74
+3.5224241437270105e-75
+3.0313926292733865e-74
+1.6107396413789949e-74
+-3.6787583599668166e-75
+-7.9438351982277340e-75
+-3.0949903515663357e-75
+1.5254430047796625e-75
+1.9859612827047744e-75
+5.0622768792670780e-76
+-5.0678625240629123e-76
+-4.7375699796955488e-76
+-5.5394616750927203e-77
+1.5097141401598590e-76
+1.0728796883009190e-76
+-3.5684578986995283e-78
+-4.1919694669944235e-77
+-2.2780309118505689e-77
+4.8239063059781568e-78
+1.1028594492501305e-77
+4.4175585573380924e-78
+-2.0596344735255882e-78
+-2.7673659615226150e-78
+-7.3529907287383985e-79
+6.9241294809760171e-79
+6.6272307930564506e-79
+8.5039548930998532e-80
+-2.0768893168724227e-79
+-1.5075987628209478e-79
+3.0953760918107225e-81
+5.7948845678265025e-80
+3.2199370223033967e-80
+-6.2974052004243266e-81
+-1.5306560436768905e-80
+-6.2994008423940973e-81
+2.7770563898197738e-81
+3.8550709723353051e-81
+1.0658767344729493e-81
+-9.4536686512176261e-82
+-9.2675757446190122e-82
+-1.2941093294253203e-82
+2.8558340671918263e-82
+2.1176067215648738e-82
+-1.6842253667195988e-84
+-8.0079252720960594e-83
+-4.5487859679394480e-83
+8.1792226421111278e-84
+2.1237469791439511e-83
+8.9749366661876673e-84
+-3.7388097032672581e-84
+-5.3686818375401110e-84
+-1.5421917803226483e-84
+1.2897853991847268e-84
+1.2955644256099851e-84
+1.9548727291747399e-85
+-3.9250841482274210e-85
+-2.9732714587036573e-85
+-1.3354119556077644e-87
+1.1062167474275617e-85
+6.4225894154557581e-86
+-1.0561026343620091e-86
+-2.9457422603139508e-86
+-1.2775999161482225e-86
+5.0256127110677387e-87
+7.4743567083969196e-87
+2.2275115927381671e-87
+-1.7583276658071924e-87
+-1.8105534936245011e-87
+-2.9344672156514719e-88
+5.3920725426472178e-88
+4.1730757065166930e-88
+7.0156984884498676e-90
+-1.5275792095640382e-88
+-9.0635836524336203e-89
+1.3542550040280304e-89
+4.0846197496548261e-89
+1.8172068586233694e-89
+-6.7436996589302850e-90
+-1.0402814382728672e-89
+-3.2121922047293698e-90
+2.3951495829190830e-90
+2.5294480651136284e-90
+4.3810808277361437e-91
+-7.4036425454639906e-91
+-5.8548073616508133e-91
+-1.6986116070370677e-92
+2.1086662679456263e-91
+1.2784109792884159e-91
+-1.7224128323625651e-92
+-5.6620452076587551e-92
+-2.5827181907411164e-92
+9.0322460806850331e-93
+1.4474314997772772e-92
+4.6251660787783591e-93
+-3.2598628124779936e-93
+-3.5326708530061155e-93
+-6.5098304903579578e-94
+1.0160435015858609e-93
+8.2112243469378041e-94
+3.3748365904094660e-95
+-2.9097013417809413e-94
+-1.8022988111801173e-94
+2.1691226321078068e-95
+7.8461868486220114e-95
+3.6679675899826348e-95
+-1.2072936349316096e-95
+-2.0133366396080855e-95
+-6.6503125381354757e-96
+4.4328074115338071e-96
+4.9322368997810559e-96
+9.6324234042329262e-97
+-1.3936361473064567e-96
+-1.1511831848231639e-96
+-6.1104485190091132e-98
+4.0134989286857326e-97
+2.5396638087518196e-97
+-2.6985958816208359e-98
+-1.0869393703565217e-97
+-5.2054861999051841e-98
+1.6101663392522497e-98
+2.7996630421244783e-98
+9.5495148055828755e-99
+-6.0221539634971828e-99
+-6.8841489646690946e-99
+-1.4199936877830847e-99
+1.9105015833755263e-99
+1.6133325203153856e-99
+1.0479301302020956e-100
+-5.5338681110117788e-100
+-3.5770369923351634e-100
+3.3060851928468146e-101
+1.5052647624373754e-100
+7.3824157782530018e-101
+-2.1422634049583886e-101
+-3.8919307672223442e-101
+-1.3695474569288697e-101
+8.1732832721910793e-102
+9.6055635482753984e-102
+2.0863558784098892e-102
+-2.6175738619001770e-102
+-2.2602165551282820e-102
+-1.7342969798588476e-103
+7.6271188148488932e-103
+5.0358462652933000e-103
+-3.9700528532932190e-104
+-2.0839143098522675e-103
+-1.0462781994511983e-103
+2.8425882420016758e-104
+5.4087286856757372e-104
+1.9618368579275086e-104
+-1.1081176133202672e-104
+-1.3398671746997340e-104
+-3.0562008918983889e-105
+3.5842268948657934e-105
+3.1653721066996639e-105
+2.7986495345231660e-106
+-1.0507885030332639e-105
+-7.0864656773496865e-106
+4.6393560170469642e-107
+2.8840550522677819e-106
+1.4818917894352376e-106
+-3.7607184560964646e-107
+-7.5144220617224605e-107
+-2.8071461168501967e-107
+1.5006998219784617e-107
+1.8683957137643911e-107
+4.4647138705716293e-108
+-4.9048500523480632e-108
+-4.4314856719723006e-108
+-4.4318099741627242e-109
+1.4470690759769231e-108
+9.9677914802889265e-109
+-5.2136054535719235e-110
+-3.9900938747985379e-109
+-2.0975780433664833e-109
+4.9589737283310809e-110
+1.0436742337061129e-109
+4.0124282126730327e-110
+-2.0299781976789204e-110
+-2.6046215484156139e-110
+-6.5061806022849574e-111
+6.7078033714500627e-111
+6.2019334157917065e-111
+6.9161882754685615e-112
+-1.9919418127622199e-111
+-1.4014690940391593e-111
+5.5119966540746917e-113
+5.5184445478628888e-112
+2.9672915325343785e-112
+-6.5148492487730479e-113
+-1.4491181814363130e-112
+-5.7294842962391655e-113
+2.7424746000577015e-113
+3.6298511477543062e-113
+9.4594975268698848e-114
+-9.1674507684776634e-114
+-8.6767984556248184e-114
+-1.0667777614538048e-114
+2.7407768810952003e-114
+1.9696495207898363e-114
+-5.2246591976092960e-116
+-7.6295888693376020e-115
+-4.1951753355909315e-115
+8.5231732559581152e-116
+2.0114600776425276e-115
+8.1735311958743454e-116
+-3.7000876706655217e-116
+-5.0571172656236877e-116
+-1.3724702215811278e-116
+1.2520355034055700e-116
+1.2135216082962795e-116
+1.6297467777554214e-117
+-3.7694291142995648e-117
+-2.7670589827927029e-117
+3.8400123857558017e-119
+1.0544723158761056e-117
+5.9278561954886114e-118
+-1.1097438888533822e-118
+-2.7911693049949757e-118
+-1.1649518261998757e-118
+4.9849354371555585e-119
+7.0434827489806043e-119
+1.9874594476310636e-119
+-1.7087264117298333e-119
+-1.6966568206163968e-119
+-2.4700291166234005e-120
+5.1817396566801744e-120
+3.8857473738909827e-120
+-5.3314912232165217e-123
+-1.4568556705362799e-120
+-8.3716192522440651e-121
+1.4370052256837431e-121
+3.8719368086492773e-121
+1.6589402279787383e-121
+-6.7055775206120359e-122
+-9.8071225231175004e-122
+-2.8728542868614871e-122
+2.3302511435768481e-122
+2.3713746141413208e-122
+3.7182901835842335e-123
+-7.1198182930485649e-123
+-5.4545912371649135e-123
+-6.0034767879566883e-125
+2.0120627808498093e-123
+1.1816571534978914e-123
+-1.8489293563702367e-124
+-5.3695352344215027e-124
+-2.3604427168997857e-124
+9.0051667418212119e-125
+1.3651072320001543e-124
+4.1457876460513836e-125
+-3.1753379252758299e-125
+-3.3133444695016237e-125
+-5.5648575781033165e-126
+9.7779927080573927e-126
+7.6539213941313076e-126
+1.7805601452097553e-127
+-2.7778473817264709e-126
+-1.6670632781217922e-126
+2.3610470985136238e-127
+7.4440543431659371e-127
+3.3559091792268067e-127
+-1.2071721416374365e-127
+-1.8996033469435754e-127
+-5.9734528872082262e-128
+4.3233330739429107e-128
+4.6280260614755583e-128
+8.2865025487482974e-129
+-1.3421774809222071e-128
+-1.0735988383827611e-128
+-3.8008845306381747e-130
+3.8336662990417768e-129
+2.3506972141750161e-129
+-2.9879201577885819e-130
+-1.0316838009957242e-129
+-4.7675744021261013e-130
+1.6150982349060830e-130
+2.6425869954707016e-130
+8.5942998356171553e-131
+-5.8812759587053434e-131
+-6.4623232906024763e-131
+-1.2284558095063881e-131
+1.8413806065513130e-131
+1.5053605569521846e-131
+7.1404230834167704e-133
+-5.2887743514832608e-132
+-3.3130663614263911e-132
+3.7398835777255508e-133
+1.4293766220625461e-132
+6.7681106679964386e-133
+-2.1562900456444201e-133
+-3.6750807331499219e-133
+-1.2348226349431997e-133
+7.9933092713282498e-134
+9.0208099484202808e-134
+1.8139966565654172e-134
+-2.5248954367973636e-134
+-2.1099961874233317e-134
+-1.2524396994198738e-135
+7.2933689553872941e-135
+4.6672341516786830e-135
+-4.6172383767162177e-136
+-1.9797365578104835e-135
+-9.6013251716608535e-136
+2.8721620394139077e-136
+5.1094651300918896e-136
+1.7719088430741767e-136
+-1.0853341814846040e-136
+-1.2588341856171262e-136
+-2.6692613335581994e-137
+3.4601887783255001e-137
+2.9564265214094488e-137
+2.1043659969973076e-138
+-1.0053803126287155e-137
+-6.5718787453670939e-138
+5.6009614292214269e-139
+2.7411214083016946e-138
+1.3611382783135099e-138
+-3.8159296557714081e-139
+-7.1015621898703146e-139
+-2.5395174605949961e-139
+1.4721745370212661e-139
+1.7561366324674963e-139
+3.9153909838361161e-140
+-4.7392005084554018e-140
+-4.1409547410088974e-140
+-3.4331108504857418e-141
+1.3853407690651026e-140
+9.2496203631487332e-141
+-6.6372191904989338e-142
+-3.7940906701975235e-141
+-1.9283699656550804e-141
+5.0555357229735280e-142
+9.8674053971071801e-142
+3.6355155796352549e-142
+-1.9947371242272351e-142
+-2.4491470046717575e-142
+-5.7268717538243503e-143
+6.4870970498386051e-143
+5.7980723541996989e-143
+5.4815949002223845e-144
+-1.9081117446653347e-143
+-1.3012744176551192e-143
+7.6123059664697208e-145
+5.2498025409495129e-144
+2.7302620057917990e-144
+-6.6769058968075285e-145
+-1.3706361291260998e-144
+-5.1988920851760018e-145
+2.6996982127541128e-145
+3.4146015713483013e-145
+8.3547837304027470e-146
+-8.8740937395852134e-146
+-8.1155463920863278e-146
+-8.6097215258642641e-147
+2.6270471410064866e-146
+1.8299035827019101e-146
+-8.3144606959538234e-148
+-7.2616136453604856e-147
+-3.8632736379194086e-147
+8.7873720440436981e-148
+1.9033127038340357e-147
+7.4269112154469213e-148
+-3.6493644605087947e-148
+-4.7592031417974197e-148
+-1.2159711623315814e-148
+1.2131546891611251e-148
+1.1355496340563201e-148
+1.3349044540343295e-149
+-3.6152881406397125e-149
+-2.5722017309517616e-149
+8.3737085252669173e-151
+1.0040983880219166e-149
+5.4632570101702399e-150
+-1.1519367435004707e-150
+-2.6422098500669309e-150
+-1.0599444126651655e-150
+4.9266751538471978e-151
+6.6312773529594646e-151
+1.7658915615790455e-151
+-1.6573559338628301e-151
+-1.5883643566880110e-151
+-2.0481133613293675e-152
+4.9730749807134458e-152
+3.6141380714524047e-152
+-7.1684826963104204e-154
+-1.3879350923879569e-152
+-7.7214683084726544e-153
+1.5033317327106696e-153
+3.6668480609656072e-153
+1.5113129436258420e-153
+-6.6418278466406039e-154
+-9.2369891791382437e-154
+-2.5593842769285390e-154
+2.2626033301237660e-154
+2.2210107974934074e-154
+3.1151852057493426e-155
+-6.8376865046280677e-155
+-5.0761030294306677e-155
+3.6866441666465117e-157
+1.9178313958018521e-155
+1.0907112826257707e-155
+-1.9518598612566578e-156
+-5.0872759432153874e-156
+-2.1529774067422546e-156
+8.9407882164156494e-157
+1.2862758909821637e-156
+3.7025490299062249e-157
+-3.0866086900838568e-157
+-3.1046350743640345e-157
+-4.7037517455873381e-158
+9.3969840685382992e-158
+7.1266370409229236e-158
+3.6871135496695036e-160
+-2.6490960111722851e-158
+-1.5398831313010808e-158
+2.5191935840126447e-159
+7.0557723082151803e-159
+3.0644885175738711e-159
+-1.2016183522807641e-159
+-1.7906376866637409e-159
+-5.3470682372167876e-160
+4.2074709626926793e-160
+4.3384133370476833e-160
+7.0582075468068291e-161
+-1.2907969279627366e-160
+-1.0001659922767732e-160
+-1.7490307135211480e-162
+3.6578612778874404e-161
+2.1728987542608093e-161
+-3.2288970449384113e-162
+-9.7829467800749084e-162
+-4.3583765829422211e-162
+1.6121531493073887e-162
+2.4920253854271181e-162
+7.7096571200735885e-163
+-5.7307185853782843e-163
+-6.0605538284305766e-163
+-1.0534096144374868e-163
+1.7721947181011819e-163
+1.4031215856379895e-163
+4.1648302232635687e-165
+-5.0489041529946246e-164
+-3.0645953005842289e-164
+4.1044066854804981e-165
+1.3559968493723841e-164
+6.1937431884185378e-165
+-2.1589076544699144e-165
+-3.4671153054771626e-165
+-1.1099486641206321e-165
+7.7988253385840267e-166
+8.4636398658321392e-166
+1.5647845337549098e-166
+-2.4318721494991928e-166
+-1.9676884193542551e-166
+-8.2177089507350139e-168
+6.9663374108294404e-167
+4.3201013436610292e-167
+-5.1654142060734758e-168
+-1.8789330280772258e-167
+-8.7954746840662429e-168
+2.8851971787429713e-168
+4.8223014721045822e-168
+1.5957269362135669e-168
+-1.0603841571913424e-168
+-1.1815887897779435e-168
+-2.3147513704135082e-169
+3.3353353793714626e-169
+2.7584128924601488e-169
+1.4822833915738969e-170
+-9.6082652102409615e-170
+-6.0870455539205351e-170
+6.4211285024137067e-171
+2.6027127846615728e-170
+1.2481152270095697e-170
+-3.8472573260855333e-171
+-6.7051985395781470e-171
+-2.2910909174181725e-171
+1.4404171606472982e-171
+1.6490738666351963e-171
+3.4114876741857780e-172
+-4.5719378629079605e-172
+-3.8655049934238563e-172
+-2.5360423238944107e-173
+1.3246954694140291e-172
+8.5727068845940486e-173
+-7.8585648776859030e-174
+-3.6041356107923024e-173
+-1.7699052253387066e-173
+5.1176387786420048e-174
+9.3205134863167531e-174
+3.2853832669544440e-174
+-1.9547126440240819e-174
+-2.3008088249794080e-174
+-5.0112443958705117e-175
+6.2634438350445271e-175
+5.4150041096036606e-175
+4.1899990712296427e-176
+-1.8256361563414813e-175
+-1.2067923297571775e-175
+9.4240375905670210e-177
+4.9892508949785920e-176
+2.5081783689243205e-176
+-6.7891990106553851e-177
+-1.2952029742426119e-176
+-4.7056376202906171e-177
+2.6498611208596373e-177
+3.2091367913987608e-177
+7.3391987812454175e-178
+-8.5757106276513645e-178
+-7.5829909737143619e-178
+-6.7530784371264627e-179
+2.5149790414518752e-178
+1.6980638881387953e-178
+-1.0992722249625199e-179
+-6.9044210731995024e-179
+-3.5521331530289397e-179
+8.9799465947504034e-180
+1.7993112426997211e-179
+6.7324034355279287e-180
+-3.5882198838533049e-180
+-4.4746919559195097e-180
+-1.0719426108696674e-180
+1.1734427013955202e-180
+1.0615322600374666e-180
+1.0683753487857608e-181
+-3.4631654749515126e-181
+-2.3882978055815845e-181
+1.2319869597477844e-182
+9.5515551174450862e-182
+5.0274868688479016e-182
+-1.1838285689506229e-182
+-2.4988758712485231e-182
+-9.6219876537723274e-183
+4.8531290108297843e-183
+6.2374499604955378e-183
+1.5617906041413066e-183
+-1.6046353622412223e-183
+-1.4855180469707789e-183
+-1.6659831258182233e-184
+4.7667966751161561e-184
+3.3576814797132806e-184
+-1.2966867884946931e-185
+-1.3209147675580937e-184
+-7.1113904019412389e-185
+1.5548284878623096e-185
+3.4693777500286811e-185
+1.3738016627027108e-185
+-6.5556994763637766e-186
+-8.6920131583159581e-186
+-2.2703375287227008e-186
+2.1928218416468355e-186
+2.0781548501274819e-186
+2.5680457757991825e-187
+-6.5582575362920910e-187
+-4.7185670078034683e-187
+1.2185500506873346e-188
+1.8261118806547505e-187
+1.0053274085630167e-187
+-2.0335052153010328e-188
+-4.8153446729166237e-188
+-1.9596189511627459e-188
+8.8436343044769767e-189
+1.2108844861428015e-188
+3.2934496964699956e-189
+-2.9945479829267490e-189
+-2.9062601721613852e-189
+-3.9212215440518972e-190
+9.0189222509684314e-190
+6.6283531243367152e-190
+-8.7391936096687951e-192
+-2.5236466649600718e-190
+-1.4204199799593217e-190
+2.6468090711946566e-191
+6.6814583201127131e-191
+2.7927094065448480e-191
+-1.1912888581593730e-191
+-1.6863805739652392e-191
+-4.7684550752069326e-192
+4.0864404733726423e-192
+4.0630156880620287e-192
+5.9401929434390532e-193
+-1.2397097829184926e-192
+-9.3074134435058279e-193
+6.3775260599673504e-196
+3.4863969817889719e-193
+2.0058181114139711e-193
+-3.4260355822870358e-194
+-9.2679036870002303e-194
+-3.9765177478259361e-194
+1.6022593013722944e-194
+2.3478974387191388e-194
+6.8917497654757591e-195
+-5.5722676039281245e-195
+-5.6783569684687452e-195
+-8.9385769329815917e-196
+1.7032462786345202e-195
+1.3064195878932768e-195
+1.5265529249402115e-197
+-4.8147061709005240e-196
+-2.8309879661336536e-196
+4.4061562621637838e-197
+1.2851628880787330e-196
+5.6574681650994217e-197
+-2.1514080118970321e-197
+-3.2679296907482667e-197
+-9.9439453347626192e-198
+7.5923617368547620e-198
+7.9333778452949056e-198
+1.3373014937241536e-198
+-2.3389540724763474e-198
+-1.8330371453891751e-198
+-4.3874708336192010e-200
+6.6466613113072421e-199
+3.9935738458699003e-199
+-5.6237523948082301e-200
+-1.7815589386218111e-199
+-8.0426187877818983e-200
+2.8835655081379972e-200
+4.5471317703943131e-200
+1.4325743269295585e-200
+-1.0336207209783795e-200
+-1.1080397244615251e-200
+-1.9907036729289403e-201
+3.2103065083956660e-201
+2.5709712365636618e-201
+9.2735621701050678e-203
+-9.1722550942993515e-202
+-5.6308058811782003e-202
+7.1125896518931504e-203
+2.4689113119737476e-202
+1.1424624082692626e-202
+-3.8573465965884679e-203
+-6.3251891857343280e-203
+-2.0608497836495576e-203
+1.4059435211265011e-203
+1.5470938529781438e-203
+2.9503353366597004e-204
+-4.4039593395667752e-204
+-3.6046448064089907e-204
+-1.7335873174698775e-205
+1.2652738633611268e-204
+7.9354143478776675e-205
+-8.8959837828706296e-206
+-3.4203753928878931e-205
+-1.6217011705134704e-205
+5.1489622076735099e-206
+8.7958894448804822e-206
+2.9606250632646414e-206
+-1.9106352528332268e-206
+-2.1594488919809512e-206
+-4.3555065256876857e-207
+6.0381724965839989e-207
+5.0520898604852869e-207
+3.0318373620084414e-208
+-1.7447141207616532e-207
+-1.1177980839748418e-207
+1.0973056765451714e-208
+4.7370032712263652e-208
+2.3003579633447864e-208
+-6.8570522443988189e-209
+-1.2228049234232577e-208
+-4.2478248594737136e-209
+2.5939822074875009e-209
+3.0132441640329885e-209
+6.4074847625185089e-210
+-8.2741888746535682e-210
+-7.0782356146767290e-210
+-5.0842368912301022e-211
+2.4048761642817321e-210
+1.5738329237813660e-210
+-1.3295336907435757e-211
+-6.5583223855346920e-211
+-3.2608130240284949e-211
+9.1084167990955779e-212
+1.6994384068484380e-211
+6.0873202622272444e-212
+-3.5181385228048360e-212
+-4.2033243371546317e-212
+-9.3967208287678667e-213
+1.1331638852453643e-212
+9.9134726968715239e-213
+8.2826752831400123e-214
+-3.3134945426995876e-213
+-2.2149279348700054e-213
+1.5730153536252155e-214
+9.0769583725896067e-214
+4.6192873250548820e-214
+-1.2064648763055389e-214
+-2.3611487336562122e-214
+-8.7134339696548302e-215
+4.7663983513919299e-215
+5.8616409631561381e-215
+1.3741447084325448e-215
+-1.5509545088585767e-215
+-1.3879601342705664e-215
+-1.3210627754100168e-216
+4.5635163340174582e-216
+3.1158025004847482e-216
+-1.8001129093742253e-217
+-1.2558701323929025e-216
+-6.5396070008301902e-217
+1.5930062483736315e-217
+3.2795295230459542e-217
+1.2459061094928988e-217
+-6.4501213457814120e-218
+-8.1717139667861217e-218
+-2.0043118286224560e-218
+2.1214599811304950e-218
+1.9425857447212176e-218
+2.0732077093733762e-219
+-6.2824550539409993e-219
+-4.3812243272483514e-219
+1.9593599907056325e-220
+1.7370128525485927e-219
+9.2526060490237481e-220
+-2.0959985903179631e-220
+-4.5537527652341373e-220
+-1.7796586916769215e-220
+8.7179637335215087e-221
+1.1388760931831867e-220
+2.9165915135932491e-221
+-2.8999298744140241e-221
+-2.7179191441428497e-221
+-3.2121768539316409e-222
+8.6451241979645767e-222
+6.1580014169574934e-222
+-1.9611949286021524e-223
+-2.4016746160265299e-222
+-1.3083468455700437e-222
+2.7468580801896238e-223
+6.3211425717869920e-223
+2.5395929609171988e-223
+-1.1767861657615746e-223
+-1.5867535669952591e-223
+-4.2349192261633200e-224
+3.9613788954358468e-224
+3.8014482646566897e-224
+4.9255365017876682e-225
+-1.1891014595060662e-224
+-8.6517854972477638e-225
+1.6557566115141404e-226
+3.3195258254597061e-225
+1.8489935620942968e-225
+-3.5836143231358743e-226
+-8.7718313439104051e-226
+-3.6206813721772338e-226
+1.5862559711137209e-226
+2.2100993585436682e-226
+6.1368464908632846e-227
+-5.4075362062599415e-227
+-5.3151946269726506e-227
+-7.4881574623275030e-228
+1.6348131519246530e-227
+1.2150621853916753e-227
+-7.9874929278350261e-230
+-4.5865411571658775e-228
+-2.6116090476943678e-228
+4.6511712570824928e-229
+1.2168937877767567e-228
+5.1574219922007581e-229
+-2.1350091739570359e-229
+-3.0774064973786627e-229
+-8.8765568461263947e-230
+7.3761731258195322e-230
+7.4292940327955709e-230
+1.1301809825487778e-230
+-2.2465369181574999e-230
+-1.7057718837675975e-230
+-9.9905171752108364e-233
+6.3349085309199787e-231
+3.6868053204290066e-231
+-6.0006420141057720e-232
+-1.6876446165406511e-231
+-7.3401850056789049e-232
+2.8689894754241831e-232
+4.2837958543788464e-232
+1.2817352842238372e-232
+-1.0053740874532070e-232
+-1.0380945295596483e-232
+-1.6952617268440829e-233
+3.0856582644648311e-233
+2.3937315118409959e-233
+4.3476460692066999e-235
+-8.7465880169966663e-234
+-5.2019656901069976e-234
+7.6874391552272397e-235
+2.3397811627607989e-234
+1.0438343318074986e-234
+-3.8485954488767543e-235
+-5.9613256216299640e-235
+-1.8478034146251918e-235
+1.3692217175659733e-235
+1.4500676441713590e-235
+2.5292954895277330e-236
+-4.2360930742568501e-236
+-3.3578898890302315e-236
+-1.0191668287560545e-237
+1.2071918635704809e-236
+7.3361013216782495e-237
+-9.7665399228850800e-238
+-3.2429054606355324e-237
+-1.4832691004900351e-237
+5.1529804285029435e-238
+8.2933167541020398e-238
+2.6599028418989256e-238
+-1.8631586184725397e-238
+-2.0248929025319327e-238
+-3.7559971352649781e-239
+5.8124612011569084e-239
+4.7086496265806495e-239
+1.9977439056628468e-240
+-1.6655249264279290e-239
+-1.0340735401610268e-239
+1.2283059150555521e-240
+4.4932025715008583e-240
+2.1061266814935162e-240
+-6.8853765411325210e-241
+-1.1534130000262412e-240
+-3.8235568245802096e-241
+2.5330161909510796e-241
+2.8267058947380696e-241
+5.5546730936954481e-242
+-7.9711816006917731e-242
+-6.6003515179663830e-242
+-3.5901693750455514e-243
+2.2969952818070411e-242
+1.4569032272268398e-242
+-1.5256431796339443e-243
+-6.2235763530074211e-243
+-2.9884092973809102e-243
+9.1796160850619458e-244
+1.6036577212200559e-243
+5.4890377203067280e-244
+-3.4404729466679992e-244
+-3.9447975221200067e-244
+-8.1845382880268121e-245
+1.0925631358233699e-244
+9.2487374826333165e-245
+6.1280479279727187e-246
+-3.1666390336813312e-245
+-2.0516698755592157e-245
+1.8652693174231938e-246
+8.6175723794136013e-246
+4.2373807100362305e-246
+-1.2208342736914170e-246
+-2.2289977313151881e-246
+-7.8702427482880292e-247
+4.6683704799812338e-247
+5.5034429447445173e-247
+1.2019751910956679e-247
+-1.4966614625198942e-247
+-1.2955211082731301e-247
+-1.0108248780099874e-248
+4.3637892023449146e-248
+2.8879415240030157e-248
+-2.2338081315838005e-249
+-1.1928565447550807e-248
+-6.0043570345748950e-249
+1.6192617597840848e-249
+3.0972645400854824e-249
+1.1271247244794021e-249
+-6.3278433111232275e-250
+-7.6755920136556544e-250
+-1.7599802849897629e-250
+2.0490055136969165e-250
+1.8140723715903134e-250
+1.6271575313953406e-251
+-6.0110727560070715e-251
+-4.0632870538892320e-251
+2.6007082853315153e-252
+1.6506276903630346e-251
+8.5027511697402339e-252
+-2.1412825793404878e-252
+-4.3024564382256296e-252
+-1.6124032962734460e-252
+8.5676700993601725e-253
+1.0701815619256496e-252
+2.5700908132851860e-253
+-2.8034737682864957e-253
+-2.5393130473547423e-253
+-2.5718325075837473e-254
+8.2767107743821463e-254
+5.7145010248052937e-254
+-2.9066630830659746e-255
+-2.2833153775386724e-254
+-1.2033307784739012e-254
+2.8221472082587979e-255
+5.9748187618209864e-255
+2.3042048499930245e-255
+-1.1586531864928068e-255
+-1.4916641904193092e-255
+-3.7438501049566674e-256
+3.8333079320163409e-256
+3.5532927312900868e-256
+4.0074325547311369e-257
+-1.1391413655225466e-256
+-8.0333480570248372e-257
+3.0453422954521205e-258
+3.1574433463178174e-257
+1.7019665533068190e-257
+-3.7055968633302619e-258
+-8.2947335335148699e-258
+-3.2895446968227274e-258
+1.5649325084648350e-258
+2.0785207875412905e-258
+5.4414114886775577e-259
+-5.2379544222264801e-259
+-4.9704976995250002e-259
+-6.1733824953715464e-260
+1.5671371200238862e-259
+1.1288485394958152e-259
+-2.8359515251600503e-261
+-4.3647258220892344e-260
+-2.4058458288149671e-260
+4.8449617748582782e-261
+1.1511928087028574e-260
+4.6917773886234929e-261
+-2.1108282401302222e-261
+-2.8953940299938937e-261
+-7.8923054367016090e-262
+7.1523626281201853e-262
+6.9506623746441380e-262
+9.4213804131857247e-263
+-2.1549707299532156e-262
+-1.5856334361452694e-262
+1.9808014917263970e-264
+6.0319703315717768e-263
+3.3994965809551754e-263
+-6.3070163204273441e-264
+-1.5990969523217367e-263
+-6.7042145278675770e-264
+2.8659845466430412e-264
+4.1101674341432583e-264
+1.1957022921959672e-264
+-1.1083900955048273e-264
+-1.2799632625378077e-264
+-2.5620247690775180e-265
+9.6438371520481567e-265
+1.3828871407882915e-264
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+-2.8132383906402331e-01
+-2.8115642691059650e-01
+-2.8098909479149692e-01
+-2.8082184268457749e-01
+-2.8065467056769122e-01
+-2.8048757841869115e-01
+-2.8032056621543017e-01
+-2.8015363393576126e-01
+-2.7998678155753742e-01
+-2.7982000905861165e-01
+-2.7965331641683694e-01
+-2.7948670361006622e-01
+-2.7932017061615250e-01
+-2.7915371741294875e-01
+-2.7898734397830793e-01
+-2.7882105029008303e-01
+-2.7865483632612703e-01
+-2.7848870206429294e-01
+-2.7832264748243374e-01
+-2.7815667255840232e-01
+-2.7799077727005173e-01
+-2.7782496159523490e-01
+-2.7765922551180489e-01
+-2.7749356899761457e-01
+-2.7732799203051706e-01
+-2.7716249458836523e-01
+-2.7699707664901208e-01
+-2.7683173819031054e-01
+-2.7666647919011372e-01
+-2.7650129962627451e-01
+-2.7633619947664589e-01
+-2.7617117871908087e-01
+-2.7600623733143237e-01
+-2.7584137529155339e-01
+-2.7567659257729699e-01
+-2.7551188916651603e-01
+-2.7534726503706358e-01
+-2.7518272016679252e-01
+-2.7501825453355594e-01
+-2.7485386811520673e-01
+-2.7468956088959789e-01
+-2.7452533283458247e-01
+-2.7436118392801329e-01
+-2.7419711414774350e-01
+-2.7403312347162606e-01
+-2.7386921187751379e-01
+-2.7370537934325978e-01
+-2.7354162584671710e-01
+-2.7337795136573856e-01
+-2.7321435587817716e-01
+-2.7305083936188601e-01
+-2.7288740179471793e-01
+-2.7272404315452603e-01
+-2.7256076341916324e-01
+-2.7239756256648251e-01
+-2.7223444057433682e-01
+-2.7207139742057918e-01
+-2.7190843308306262e-01
+-2.7174554753963992e-01
+-2.7158274076816430e-01
+-2.7142001274648864e-01
+-2.7125736345246582e-01
+-2.7109479286394894e-01
+-2.7093230095879095e-01
+-2.7076988771484484e-01
+-2.7060755310996354e-01
+-2.7044529712200011e-01
+-2.7028311972880742e-01
+-2.7012102090823853e-01
+-2.6995900063814643e-01
+-2.6979705889638400e-01
+-2.6963519566080429e-01
+-2.6947341090926030e-01
+-2.6931170461960502e-01
+-2.6915007676969133e-01
+-2.6898852733737227e-01
+-2.6882705630050080e-01
+-2.6866566363692990e-01
+-2.6850434932451267e-01
+-2.6834311334110184e-01
+-2.6818195566455061e-01
+-2.6802087627271182e-01
+-2.6785987514343856e-01
+-2.6769895225458373e-01
+-2.6753810758400032e-01
+-2.6737734110954131e-01
+-2.6721665280905971e-01
+-2.6705604266040844e-01
+-2.6689551064144051e-01
+-2.6673505673000897e-01
+-2.6657468090396669e-01
+-2.6641438314116667e-01
+-2.6625416341946195e-01
+-2.6609402171670543e-01
+-2.6593395801075009e-01
+-2.6577397227944899e-01
+-2.6561406450065506e-01
+-2.6545423465222129e-01
+-2.6529448271200062e-01
+-2.6513480865784606e-01
+-2.6497521246761058e-01
+-2.6481569411914718e-01
+-2.6465625359030881e-01
+-2.6449689085894851e-01
+-2.6433760590291910e-01
+-2.6417839870007370e-01
+-2.6401926922826530e-01
+-2.6386021746534682e-01
+-2.6370124338917122e-01
+-2.6354234697759155e-01
+-2.6338352820846073e-01
+-2.6322478705963170e-01
+-2.6306612350895758e-01
+-2.6290753753429119e-01
+-2.6274902911348563e-01
+-2.6259059822439385e-01
+-2.6243224484486871e-01
+-2.6227396895276339e-01
+-2.6211577052593071e-01
+-2.6195764954222373e-01
+-2.6179960597949536e-01
+-2.6164163981559868e-01
+-2.6148375102838650e-01
+-2.6132593959571199e-01
+-2.6116820549542802e-01
+-2.6101054870538765e-01
+-2.6085296920344370e-01
+-2.6069546696744933e-01
+-2.6053804197525737e-01
+-2.6038069420472093e-01
+-2.6022342363369289e-01
+-2.6006623024002629e-01
+-2.5990911400157402e-01
+-2.5975207489618918e-01
+-2.5959511290172460e-01
+-2.5943822799603344e-01
+-2.5928142015696853e-01
+-2.5912468936238292e-01
+-2.5896803559012960e-01
+-2.5881145881806150e-01
+-2.5865495902403157e-01
+-2.5849853618589291e-01
+-2.5834219028149841e-01
+-2.5818592128870105e-01
+-2.5802972918535377e-01
+-2.5787361394930969e-01
+-2.5771757555842162e-01
+-2.5756161399054267e-01
+-2.5740572922352573e-01
+-2.5724992123522378e-01
+-2.5709419000348988e-01
+-2.5693853550617696e-01
+-2.5678295772113802e-01
+-2.5662745662622599e-01
+-2.5647203219929382e-01
+-2.5631668441819461e-01
+-2.5616141326078123e-01
+-2.5600621870490675e-01
+-2.5585110072842404e-01
+-2.5569605930918621e-01
+-2.5554109442504613e-01
+-2.5538620605385676e-01
+-2.5523139417347118e-01
+-2.5507665876174229e-01
+-2.5492199979652314e-01
+-2.5476741725566665e-01
+-2.5461291111702583e-01
+-2.5445848135845356e-01
+-2.5430412795780299e-01
+-2.5414985089292697e-01
+-2.5399565014167852e-01
+-2.5384152568191065e-01
+-2.5368747749147630e-01
+-2.5353350554822840e-01
+-2.5337960983002000e-01
+-2.5322579031470410e-01
+-2.5307204698013358e-01
+-2.5291837980416154e-01
+-2.5276478876464081e-01
+-2.5261127383942455e-01
+-2.5245783500636559e-01
+-2.5230447224331692e-01
+-2.5215118552813165e-01
+-2.5199797483866260e-01
+-2.5184484015276282e-01
+-2.5169178144828530e-01
+-2.5153879870308299e-01
+-2.5138589189500887e-01
+-2.5123306100191600e-01
+-2.5108030600165721e-01
+-2.5092762687208553e-01
+-2.5077502359105402e-01
+-2.5062249613641557e-01
+-2.5047004448602322e-01
+-2.5031766861772992e-01
+-2.5016536850938859e-01
+-2.5001314413885234e-01
+-2.4986099548397400e-01
+-2.4970892252260668e-01
+-2.4955692523260331e-01
+-2.4940500359181678e-01
+-2.4925315757810018e-01
+-2.4910138716930647e-01
+-2.4894969234328862e-01
+-2.4879807307789958e-01
+-2.4864652935099235e-01
+-2.4849506114041997e-01
+-2.4834366842403527e-01
+-2.4819235117969135e-01
+-2.4804110938524115e-01
+-2.4788994301853767e-01
+-2.4773885205743384e-01
+-2.4758783647978266e-01
+-2.4743689626343718e-01
+-2.4728603138625027e-01
+-2.4713524182607494e-01
+-2.4698452756076417e-01
+-2.4683388856817096e-01
+-2.4668332482614830e-01
+-2.4653283631254913e-01
+-2.4638242300522645e-01
+-2.4623208488203324e-01
+-2.4608182192082245e-01
+-2.4593163409944713e-01
+-2.4578152139576015e-01
+-2.4563148378761457e-01
+-2.4548152125286338e-01
+-2.4533163376935946e-01
+-2.4518182131495592e-01
+-2.4503208386750558e-01
+-2.4488242140486161e-01
+-2.4473283390487682e-01
+-2.4458332134540428e-01
+-2.4443388370429692e-01
+-2.4428452095940772e-01
+-2.4413523308858975e-01
+-2.4398602006969589e-01
+-2.4383688188057911e-01
+-2.4368781849909243e-01
+-2.4353882990308889e-01
+-2.4338991607042137e-01
+-2.4324107697894287e-01
+-2.4309231260650638e-01
+-2.4294362293096483e-01
+-2.4279500793017128e-01
+-2.4264646758197866e-01
+-2.4249800186423998e-01
+-2.4234961075480821e-01
+-2.4220129423153630e-01
+-2.4205305227227730e-01
+-2.4190488485488409e-01
+-2.4175679195720967e-01
+-2.4160877355710708e-01
+-2.4146082963242926e-01
+-2.4131296016102916e-01
+-2.4116516512075981e-01
+-2.4101744448947415e-01
+-2.4086979824502519e-01
+-2.4072222636526586e-01
+-2.4057472882804920e-01
+-2.4042730561122816e-01
+-2.4027995669265573e-01
+-2.4013268205018479e-01
+-2.3998548166166850e-01
+-2.3983835550495969e-01
+-2.3969130355791146e-01
+-2.3954432579837664e-01
+-2.3939742220420829e-01
+-2.3925059275325944e-01
+-2.3910383742338298e-01
+-2.3895715619243191e-01
+-2.3881054903825921e-01
+-2.3866401593871789e-01
+-2.3851755687166093e-01
+-2.3837117181494127e-01
+-2.3822486074641192e-01
+-2.3807862364392579e-01
+-2.3793246048533595e-01
+-2.3778637124849533e-01
+-2.3764035591125693e-01
+-2.3749441445147368e-01
+-2.3734854684699863e-01
+-2.3720275307568472e-01
+-2.3705703311538490e-01
+-2.3691138694395220e-01
+-2.3676581453923956e-01
+-2.3662031587909998e-01
+-2.3647489094138646e-01
+-2.3632953970395193e-01
+-2.3618426214464938e-01
+-2.3603905824133181e-01
+-2.3589392797185221e-01
+-2.3574887131406347e-01
+-2.3560388824581874e-01
+-2.3545897874497079e-01
+-2.3531414278937274e-01
+-2.3516938035687751e-01
+-2.3502469142533816e-01
+-2.3488007597260752e-01
+-2.3473553397653873e-01
+-2.3459106541498465e-01
+-2.3444667026579830e-01
+-2.3430234850683268e-01
+-2.3415810011594074e-01
+-2.3401392507097546e-01
+-2.3386982334978978e-01
+-2.3372579493023682e-01
+-2.3358183979016939e-01
+-2.3343795790744054e-01
+-2.3329414925990327e-01
+-2.3315041382541052e-01
+-2.3300675158181533e-01
+-2.3286316250697059e-01
+-2.3271964657872929e-01
+-2.3257620377494448e-01
+-2.3243283407346910e-01
+-2.3228953745215608e-01
+-2.3214631388885848e-01
+-2.3200316336142923e-01
+-2.3186008584772133e-01
+-2.3171708132558777e-01
+-2.3157414977288149e-01
+-2.3143129116745548e-01
+-2.3128850548716273e-01
+-2.3114579270985625e-01
+-2.3100315281338890e-01
+-2.3086058577561380e-01
+-2.3071809157438383e-01
+-2.3057567018755204e-01
+-2.3043332159297136e-01
+-2.3029104576849474e-01
+-2.3014884269197527e-01
+-2.3000671234126580e-01
+-2.2986465469421941e-01
+-2.2972266972868904e-01
+-2.2958075742252765e-01
+-2.2943891775358821e-01
+-2.2929715069972378e-01
+-2.2915545623878725e-01
+-2.2901383434863160e-01
+-2.2887228500710982e-01
+-2.2873080819207497e-01
+-2.2858940388137994e-01
+-2.2844807205287770e-01
+-2.2830681268442127e-01
+-2.2816562575386362e-01
+-2.2802451123905776e-01
+-2.2788346911785662e-01
+-2.2774249936811314e-01
+-2.2760160196768042e-01
+-2.2746077689441135e-01
+-2.2732002412615887e-01
+-2.2717934364077608e-01
+-2.2703873541611586e-01
+-2.2689819943003126e-01
+-2.2675773566037521e-01
+-2.2661734408500067e-01
+-2.2647702468176067e-01
+-2.2633677742850816e-01
+-2.2619660230309613e-01
+-2.2605649928337757e-01
+-2.2591646834720544e-01
+-2.2577650947243269e-01
+-2.2563662263691234e-01
+-2.2549680781849735e-01
+-2.2535706499504071e-01
+-2.2521739414439540e-01
+-2.2507779524441437e-01
+-2.2493826827295063e-01
+-2.2479881320785716e-01
+-2.2465943002698691e-01
+-2.2452011870819288e-01
+-2.2438087922932803e-01
+-2.2424171156824541e-01
+-2.2410261570279788e-01
+-2.2396359161083848e-01
+-2.2382463927022020e-01
+-2.2368575865879597e-01
+-2.2354694975441886e-01
+-2.2340821253494178e-01
+-2.2326954697821771e-01
+-2.2313095306209962e-01
+-2.2299243076444053e-01
+-2.2285398006309337e-01
+-2.2271560093591120e-01
+-2.2257729336074689e-01
+-2.2243905731545346e-01
+-2.2230089277788390e-01
+-2.2216279972589123e-01
+-2.2202477813732835e-01
+-2.2188682799004827e-01
+-2.2174894926190397e-01
+-2.2161114193074846e-01
+-2.2147340597443468e-01
+-2.2133574137081563e-01
+-2.2119814809774424e-01
+-2.2106062613307353e-01
+-2.2092317545465645e-01
+-2.2078579604034604e-01
+-2.2064848786799524e-01
+-2.2051125091545698e-01
+-2.2037408516058432e-01
+-2.2023699058123020e-01
+-2.2009996715524760e-01
+-2.1996301486048950e-01
+-2.1982613367480888e-01
+-2.1968932357605869e-01
+-2.1955258454209198e-01
+-2.1941591655076165e-01
+-2.1927931957992072e-01
+-2.1914279360742217e-01
+-2.1900633861111896e-01
+-2.1886995456886407e-01
+-2.1873364145851049e-01
+-2.1859739925791119e-01
+-2.1846122794491918e-01
+-2.1832512749738736e-01
+-2.1818909789316882e-01
+-2.1805313911011642e-01
+-2.1791725112608321e-01
+-2.1778143391892216e-01
+-2.1764568746648624e-01
+-2.1751001174662843e-01
+-2.1737440673720171e-01
+-2.1723887241605905e-01
+-2.1710340876105344e-01
+-2.1696801575003785e-01
+-2.1683269336086528e-01
+-2.1669744157138868e-01
+-2.1656226035946102e-01
+-2.1642714970293531e-01
+-2.1629210957966452e-01
+-2.1615713996750163e-01
+-2.1602224084429958e-01
+-2.1588741218791141e-01
+-2.1575265397619003e-01
+-2.1561796618698853e-01
+-2.1548334879815975e-01
+-2.1534880178755678e-01
+-2.1521432513303251e-01
+-2.1507991881243999e-01
+-2.1494558280363213e-01
+-2.1481131708446197e-01
+-2.1467712163278246e-01
+-2.1454299642644659e-01
+-2.1440894144330730e-01
+-2.1427495666121765e-01
+-2.1414104205803056e-01
+-2.1400719761159900e-01
+-2.1387342329977596e-01
+-2.1373971910041445e-01
+-2.1360608499136741e-01
+-2.1347252095048783e-01
+-2.1333902695562867e-01
+-2.1320560298464292e-01
+-2.1307224901538363e-01
+-2.1293896502570364e-01
+-2.1280575099345606e-01
+-2.1267260689649375e-01
+-2.1253953271266979e-01
+-2.1240652841983715e-01
+-2.1227359399584872e-01
+-2.1214072941855755e-01
+-2.1200793466581658e-01
+-2.1187520971547885e-01
+-2.1174255454539728e-01
+-2.1160996913342486e-01
+-2.1147745345741459e-01
+-2.1134500749521942e-01
+-2.1121263122469236e-01
+-2.1108032462368634e-01
+-2.1094808767005438e-01
+-2.1081592034164948e-01
+-2.1068382261632454e-01
+-2.1055179447193262e-01
+-2.1041983588632662e-01
+-2.1028794683735963e-01
+-2.1015612730288447e-01
+-2.1002437726075426e-01
+-2.0989269668882193e-01
+-2.0976108556494044e-01
+-2.0962954386696275e-01
+-2.0949807157274192e-01
+-2.0936666866013087e-01
+-2.0923533510698258e-01
+-2.0910407089115002e-01
+-2.0897287599048622e-01
+-2.0884175038284408e-01
+-2.0871069404607667e-01
+-2.0857970695803685e-01
+-2.0844878909657771e-01
+-2.0831794043955218e-01
+-2.0818716096481324e-01
+-2.0805645065021389e-01
+-2.0792580947360706e-01
+-2.0779523741284578e-01
+-2.0766473444578301e-01
+-2.0753430055027172e-01
+-2.0740393570416490e-01
+-2.0727363988531552e-01
+-2.0714341307157658e-01
+-2.0701325524080100e-01
+-2.0688316637084181e-01
+-2.0675314643955198e-01
+-2.0662319542478449e-01
+-2.0649331330439230e-01
+-2.0636350005622842e-01
+-2.0623375565814578e-01
+-2.0610408008799741e-01
+-2.0597447332363628e-01
+-2.0584493534291531e-01
+-2.0571546612368757e-01
+-2.0558606564380594e-01
+-2.0545673388112351e-01
+-2.0532747081349317e-01
+-2.0519827641876789e-01
+-2.0506915067480072e-01
+-2.0494009355944459e-01
+-2.0481110505055250e-01
+-2.0468218512597741e-01
+-2.0455333376357232e-01
+-2.0442455094119019e-01
+-2.0429583663668399e-01
+-2.0416719082790674e-01
+-2.0403861349271138e-01
+-2.0391010460895093e-01
+-2.0378166415447826e-01
+-2.0365329210714650e-01
+-2.0352498844480849e-01
+-2.0339675314531733e-01
+-2.0326858618652591e-01
+-2.0314048754628727e-01
+-2.0301245720245431e-01
+-2.0288449513288009e-01
+-2.0275660131541756e-01
+-2.0262877572791965e-01
+-2.0250101834823941e-01
+-2.0237332915422979e-01
+-2.0224570812374376e-01
+-2.0211815523463433e-01
+-2.0199067046475444e-01
+-2.0186325379195708e-01
+-2.0173590519409523e-01
+-2.0160862464902185e-01
+-2.0148141213458998e-01
+-2.0135426762865255e-01
+-2.0122719110906251e-01
+-2.0110018255367287e-01
+-2.0097324194033667e-01
+-2.0084636924690674e-01
+-2.0071956445123623e-01
+-2.0059282753117802e-01
+-2.0046615846458504e-01
+-2.0033955722931041e-01
+-2.0021302380320699e-01
+-2.0008655816412785e-01
+-1.9996016028992586e-01
+-1.9983383015845407e-01
+-1.9970756774756546e-01
+-1.9958137303511297e-01
+-1.9945524599894962e-01
+-1.9932918661692839e-01
+-1.9920319486690219e-01
+-1.9907727072672407e-01
+-1.9895141417424700e-01
+-1.9882562518732394e-01
+-1.9869990374380786e-01
+-1.9857424982155172e-01
+-1.9844866339840855e-01
+-1.9832314445223131e-01
+-1.9819769296087297e-01
+-1.9807230890218652e-01
+-1.9794699225402496e-01
+-1.9782174299424121e-01
+-1.9769656110068828e-01
+-1.9757144655121914e-01
+-1.9744639932368679e-01
+-1.9732141939594416e-01
+-1.9719650674584430e-01
+-1.9707166135124010e-01
+-1.9694688318998466e-01
+-1.9682217223993084e-01
+-1.9669752847893168e-01
+-1.9657295188484014e-01
+-1.9644844243550919e-01
+-1.9632400010879181e-01
+-1.9619962488254103e-01
+-1.9607531673460976e-01
+-1.9595107564285100e-01
+-1.9582690158511773e-01
+-1.9570279453926295e-01
+-1.9557875448313961e-01
+-1.9545478139460071e-01
+-1.9533087525149920e-01
+-1.9520703603168810e-01
+-1.9508326371302032e-01
+-1.9495955827334890e-01
+-1.9483591969052683e-01
+-1.9471234794240702e-01
+-1.9458884300684248e-01
+-1.9446540486168623e-01
+-1.9434203348479120e-01
+-1.9421872885401040e-01
+-1.9409549094719675e-01
+-1.9397231974220330e-01
+-1.9384921521688298e-01
+-1.9372617734908881e-01
+-1.9360320611667370e-01
+-1.9348030149749074e-01
+-1.9335746346939275e-01
+-1.9323469201023286e-01
+-1.9311198709786398e-01
+-1.9298934871013906e-01
+-1.9286677682491116e-01
+-1.9274427142003320e-01
+-1.9262183247335818e-01
+-1.9249945996273904e-01
+-1.9237715386602877e-01
+-1.9225491416108043e-01
+-1.9213274082574688e-01
+-1.9201063383788117e-01
+-1.9188859317533624e-01
+-1.9176661881596510e-01
+-1.9164471073762074e-01
+-1.9152286891815606e-01
+-1.9140109333542416e-01
+-1.9127938396727792e-01
+-1.9115774079157033e-01
+-1.9103616378615446e-01
+-1.9091465292888310e-01
+-1.9079320819760942e-01
+-1.9067182957018633e-01
+-1.9055051702446679e-01
+-1.9042927053830380e-01
+-1.9030809008955030e-01
+-1.9018697565605933e-01
+-1.9006592721568383e-01
+-1.8994494474627677e-01
+-1.8982402822569114e-01
+-1.8970317763177993e-01
+-1.8958239294239609e-01
+-1.8946167413539264e-01
+-1.8934102118862250e-01
+-1.8922043407993872e-01
+-1.8909991278719426e-01
+-1.8897945728824206e-01
+-1.8885906756093510e-01
+-1.8873874358312637e-01
+-1.8861848533266889e-01
+-1.8849829278741559e-01
+-1.8837816592521944e-01
+-1.8825810472393348e-01
+-1.8813810916141060e-01
+-1.8801817921550390e-01
+-1.8789831486406622e-01
+-1.8777851608495064e-01
+-1.8765878285601006e-01
+-1.8753911515509755e-01
+-1.8741951296006601e-01
+-1.8729997624876846e-01
+-1.8718050499905786e-01
+-1.8706109918878719e-01
+-1.8694175879580943e-01
+-1.8682248379797758e-01
+-1.8670327417314458e-01
+-1.8658412989916345e-01
+-1.8646505095388710e-01
+-1.8634603731516858e-01
+-1.8622708896086088e-01
+-1.8610820586881688e-01
+-1.8598938801688963e-01
+-1.8587063538293214e-01
+-1.8575194794479730e-01
+-1.8563332568033813e-01
+-1.8551476856740767e-01
+-1.8539627658385877e-01
+-1.8527784970754452e-01
+-1.8515948791631784e-01
+-1.8504119118803175e-01
+-1.8492295950053916e-01
+-1.8480479283169315e-01
+-1.8468669115934661e-01
+-1.8456865446135257e-01
+-1.8445068271556395e-01
+-1.8433277589983377e-01
+-1.8421493399201502e-01
+-1.8409715696996065e-01
+-1.8397944481152367e-01
+-1.8386179749455706e-01
+-1.8374421499691374e-01
+-1.8362669729644671e-01
+-1.8350924437100902e-01
+-1.8339185619845355e-01
+-1.8327453275663333e-01
+-1.8315727402340135e-01
+-1.8304007997661054e-01
+-1.8292295059411390e-01
+-1.8280588585376445e-01
+-1.8268888573341510e-01
+-1.8257195021091888e-01
+-1.8245507926412874e-01
+-1.8233827287089766e-01
+-1.8222153100907865e-01
+-1.8210485365652462e-01
+-1.8198824079108863e-01
+-1.8187169239062362e-01
+-1.8175520843298254e-01
+-1.8163878889601842e-01
+-1.8152243375758423e-01
+-1.8140614299553293e-01
+-1.8128991658771748e-01
+-1.8117375451199091e-01
+-1.8105765674620616e-01
+-1.8094162326821620e-01
+-1.8082565405587403e-01
+-1.8070974908703263e-01
+-1.8059390833954497e-01
+-1.8047813179126404e-01
+-1.8036241942004283e-01
+-1.8024677120373425e-01
+-1.8013118712019133e-01
+-1.8001566714726708e-01
+-1.7990021126281441e-01
+-1.7978481944468636e-01
+-1.7966949167073587e-01
+-1.7955422791881592e-01
+-1.7943902816677951e-01
+-1.7932389239247959e-01
+-1.7920882057376913e-01
+-1.7909381268850116e-01
+-1.7897886871452864e-01
+-1.7886398862970454e-01
+-1.7874917241188182e-01
+-1.7863442003891344e-01
+-1.7851973148865247e-01
+-1.7840510673895182e-01
+-1.7829054576766445e-01
+-1.7817604855264341e-01
+-1.7806161507174162e-01
+-1.7794724530281203e-01
+-1.7783293922370774e-01
+-1.7771869681228161e-01
+-1.7760451804638666e-01
+-1.7749040290387585e-01
+-1.7737635136260221e-01
+-1.7726236340041868e-01
+-1.7714843899517824e-01
+-1.7703457812473383e-01
+-1.7692078076693851e-01
+-1.7680704689964521e-01
+-1.7669337650070693e-01
+-1.7657976954797663e-01
+-1.7646622601930728e-01
+-1.7635274589255190e-01
+-1.7623932914556339e-01
+-1.7612597575619482e-01
+-1.7601268570229911e-01
+-1.7589945896172926e-01
+-1.7578629551233826e-01
+-1.7567319533197906e-01
+-1.7556015839850461e-01
+-1.7544718468976797e-01
+-1.7533427418362207e-01
+-1.7522142685791989e-01
+-1.7510864269051440e-01
+-1.7499592165925862e-01
+-1.7488326374200547e-01
+-1.7477066891660797e-01
+-1.7465813716091910e-01
+-1.7454566845279182e-01
+-1.7443326277007909e-01
+-1.7432092009063394e-01
+-1.7420864039230932e-01
+-1.7409642365295819e-01
+-1.7398426985043358e-01
+-1.7387217896258839e-01
+-1.7376015096727565e-01
+-1.7364818584234837e-01
+-1.7353628356565948e-01
+-1.7342444411506194e-01
+-1.7331266746840876e-01
+-1.7320095360355292e-01
+-1.7308930249834742e-01
+-1.7297771413064517e-01
+-1.7286618847829921e-01
+-1.7275472551916249e-01
+-1.7264332523108802e-01
+-1.7253198759192875e-01
+-1.7242071257953764e-01
+-1.7230950017176772e-01
+-1.7219835034647191e-01
+-1.7208726308150324e-01
+-1.7197623835471465e-01
+-1.7186527614395916e-01
+-1.7175437642708968e-01
+-1.7164353918195929e-01
+-1.7153276438642084e-01
+-1.7142205201832744e-01
+-1.7131140205553197e-01
+-1.7120081447588748e-01
+-1.7109028925724690e-01
+-1.7097982637746320e-01
+-1.7086942581438941e-01
+-1.7075908754587846e-01
+-1.7064881154978334e-01
+-1.7053859780395705e-01
+-1.7042844628625256e-01
+-1.7031835697452283e-01
+-1.7020832984662088e-01
+-1.7009836488039959e-01
+-1.6998846205371204e-01
+-1.6987862134441120e-01
+-1.6976884273035001e-01
+-1.6965912618938145e-01
+-1.6954947169935852e-01
+-1.6943987923813419e-01
+-1.6933034878356146e-01
+-1.6922088031349325e-01
+-1.6911147380578256e-01
+-1.6900212923828242e-01
+-1.6889284658884576e-01
+-1.6878362583532558e-01
+-1.6867446695557481e-01
+-1.6856536992744650e-01
+-1.6845633472879357e-01
+-1.6834736133746905e-01
+-1.6823844973132587e-01
+-1.6812959988821705e-01
+-1.6802081178599551e-01
+-1.6791208540251429e-01
+-1.6780342071562632e-01
+-1.6769481770318465e-01
+-1.6758627634304218e-01
+-1.6747779661305190e-01
+-1.6736937849106684e-01
+-1.6726102195493991e-01
+-1.6715272698252417e-01
+-1.6704449355167253e-01
+-1.6693632164023800e-01
+-1.6682821122607353e-01
+-1.6672016228703213e-01
+-1.6661217480096674e-01
+-1.6650424874573039e-01
+-1.6639638409917604e-01
+-1.6628858083915665e-01
+-1.6618083894352520e-01
+-1.6607315839013470e-01
+-1.6596553915683809e-01
+-1.6585798122148837e-01
+-1.6575048456193847e-01
+-1.6564304915604147e-01
+-1.6553567498165025e-01
+-1.6542836201661787e-01
+-1.6532111023879720e-01
+-1.6521391962604134e-01
+-1.6510679015620319e-01
+-1.6499972180713579e-01
+-1.6489271455669202e-01
+-1.6478576838272493e-01
+-1.6467888326308749e-01
+-1.6457205917563270e-01
+-1.6446529609821348e-01
+-1.6435859400868286e-01
+-1.6425195288489380e-01
+-1.6414537270469928e-01
+-1.6403885344595226e-01
+-1.6393239508650576e-01
+-1.6382599760421271e-01
+-1.6371966097692608e-01
+-1.6361338518249893e-01
+-1.6350717019878419e-01
+-1.6340101600363482e-01
+-1.6329492257490380e-01
+-1.6318888989044414e-01
+-1.6308291792810881e-01
+-1.6297700666575077e-01
+-1.6287115608122299e-01
+-1.6276536615237847e-01
+-1.6265963685707019e-01
+-1.6255396817315113e-01
+-1.6244836007847424e-01
+-1.6234281255089253e-01
+-1.6223732556825898e-01
+-1.6213189910842657e-01
+-1.6202653314924823e-01
+-1.6192122766857697e-01
+-1.6181598264426578e-01
+-1.6171079805416763e-01
+-1.6160567387613550e-01
+-1.6150061008802238e-01
+-1.6139560666768121e-01
+-1.6129066359296501e-01
+-1.6118578084172674e-01
+-1.6108095839181938e-01
+-1.6097619622109591e-01
+-1.6087149430740930e-01
+-1.6076685262861254e-01
+-1.6066227116255860e-01
+-1.6055774988710045e-01
+-1.6045328878009107e-01
+-1.6034888781938347e-01
+-1.6024454698283061e-01
+-1.6014026624828545e-01
+-1.6003604559360099e-01
+-1.5993188499663019e-01
+-1.5982778443522605e-01
+-1.5972374388724156e-01
+-1.5961976333052966e-01
+-1.5951584274294334e-01
+-1.5941198210233556e-01
+-1.5930818138655936e-01
+-1.5920444057346766e-01
+-1.5910075964091347e-01
+-1.5899713856674974e-01
+-1.5889357732882947e-01
+-1.5879007590500563e-01
+-1.5868663427313121e-01
+-1.5858325241105917e-01
+-1.5847993029664248e-01
+-1.5837666790773419e-01
+-1.5827346522218719e-01
+-1.5817032221785449e-01
+-1.5806723887258908e-01
+-1.5796421516424392e-01
+-1.5786125107067200e-01
+-1.5775834656972632e-01
+-1.5765550163925982e-01
+-1.5755271625712547e-01
+-1.5744999040117630e-01
+-1.5734732404926524e-01
+-1.5724471717924532e-01
+-1.5714216976896944e-01
+-1.5703968179629066e-01
+-1.5693725323906191e-01
+-1.5683488407513618e-01
+-1.5673257428236648e-01
+-1.5663032383860570e-01
+-1.5652813272170693e-01
+-1.5642600090952308e-01
+-1.5632392837990713e-01
+-1.5622191511071210e-01
+-1.5611996107979090e-01
+-1.5601806626499656e-01
+-1.5591623064418203e-01
+-1.5581445419520035e-01
+-1.5571273689590442e-01
+-1.5561107872414726e-01
+-1.5550947965778186e-01
+-1.5540793967466116e-01
+-1.5530645875263815e-01
+-1.5520503686956583e-01
+-1.5510367400329714e-01
+-1.5500237013168511e-01
+-1.5490112523258268e-01
+-1.5479993928384284e-01
+-1.5469881226331855e-01
+-1.5459774414886282e-01
+-1.5449673491832860e-01
+-1.5439578454956890e-01
+-1.5429489302043667e-01
+-1.5419406030878491e-01
+-1.5409328639246656e-01
+-1.5399257124933463e-01
+-1.5389191485724213e-01
+-1.5379131719404196e-01
+-1.5369077823758717e-01
+-1.5359029796573070e-01
+-1.5348987635632552e-01
+-1.5338951338722465e-01
+-1.5328920903628102e-01
+-1.5318896328134765e-01
+-1.5308877610027749e-01
+-1.5298864747092353e-01
+-1.5288857737113876e-01
+-1.5278856577877611e-01
+-1.5268861267168862e-01
+-1.5258871802772925e-01
+-1.5248888182475095e-01
+-1.5238910404060671e-01
+-1.5228938465314953e-01
+-1.5218972364023239e-01
+-1.5209012097970825e-01
+-1.5199057664943005e-01
+-1.5189109062725087e-01
+-1.5179166289102361e-01
+-1.5169229341860124e-01
+-1.5159298218783679e-01
+-1.5149372917658321e-01
+-1.5139453436269348e-01
+-1.5129539772402059e-01
+-1.5119631923841750e-01
+-1.5109729888373719e-01
+-1.5099833663783266e-01
+-1.5089943247855686e-01
+-1.5080058638376279e-01
+-1.5070179833130343e-01
+-1.5060306829903172e-01
+-1.5050439626480069e-01
+-1.5040578220646328e-01
+-1.5030722610187250e-01
+-1.5020872792888129e-01
+-1.5011028766534268e-01
+-1.5001190528910963e-01
+-1.4991358077803507e-01
+-1.4981531410997201e-01
+-1.4971710526277346e-01
+-1.4961895421429236e-01
+-1.4952086094238171e-01
+-1.4942282542489446e-01
+-1.4932484763968362e-01
+-1.4922692756460215e-01
+-1.4912906517750305e-01
+-1.4903126045623927e-01
+-1.4893351337866378e-01
+-1.4883582392262962e-01
+-1.4873819206598970e-01
+-1.4864061778659704e-01
+-1.4854310106230459e-01
+-1.4844564187096534e-01
+-1.4834824019043230e-01
+-1.4825089599855840e-01
+-1.4815360927319662e-01
+-1.4805637999219998e-01
+-1.4795920813342142e-01
+-1.4786209367471395e-01
+-1.4776503659393050e-01
+-1.4766803686892410e-01
+-1.4757109447754771e-01
+-1.4747420939765429e-01
+-1.4737738160709685e-01
+-1.4728061108372834e-01
+-1.4718389780540175e-01
+-1.4708724174997007e-01
+-1.4699064289528629e-01
+-1.4689410121920332e-01
+-1.4679761669957420e-01
+-1.4670118931425191e-01
+-1.4660481904108938e-01
+-1.4650850585793965e-01
+-1.4641224974265565e-01
+-1.4631605067309039e-01
+-1.4621990862709683e-01
+-1.4612382358252793e-01
+-1.4602779551723671e-01
+-1.4593182440907612e-01
+-1.4583591023589915e-01
+-1.4574005297555878e-01
+-1.4564425260590796e-01
+-1.4554850910479974e-01
+-1.4545282245008700e-01
+-1.4535719261962282e-01
+-1.4526161959126010e-01
+-1.4516610334285185e-01
+-1.4507064385225105e-01
+-1.4497524109731066e-01
+-1.4487989505588367e-01
+-1.4478460570582308e-01
+-1.4468937302498180e-01
+-1.4459419699121290e-01
+-1.4449907758236932e-01
+-1.4440401477630402e-01
+-1.4430900855086998e-01
+-1.4421405888392019e-01
+-1.4411916575330763e-01
+-1.4402432913688529e-01
+-1.4392954901250612e-01
+-1.4383482535802311e-01
+-1.4374015815128927e-01
+-1.4364554737015750e-01
+-1.4355099299248086e-01
+-1.4345649499611229e-01
+-1.4336205335890478e-01
+-1.4326766805871127e-01
+-1.4317333907338481e-01
+-1.4307906638077833e-01
+-1.4298484995874483e-01
+-1.4289068978513725e-01
+-1.4279658583780863e-01
+-1.4270253809461186e-01
+-1.4260854653339999e-01
+-1.4251461113202601e-01
+-1.4242073186834286e-01
+-1.4232690872020351e-01
+-1.4223314166546097e-01
+-1.4213943068196819e-01
+-1.4204577574757815e-01
+-1.4195217684014386e-01
+-1.4185863393751827e-01
+-1.4176514701755435e-01
+-1.4167171605810513e-01
+-1.4157834103702352e-01
+-1.4148502193216256e-01
+-1.4139175872137516e-01
+-1.4129855138251438e-01
+-1.4120539989343314e-01
+-1.4111230423198443e-01
+-1.4101926437602125e-01
+-1.4092628030339654e-01
+-1.4083335199196331e-01
+-1.4074047941957452e-01
+-1.4064766256408318e-01
+-1.4055490140334220e-01
+-1.4046219591520465e-01
+-1.4036954607752344e-01
+-1.4027695186815156e-01
+-1.4018441326494202e-01
+-1.4009193024574776e-01
+-1.3999950278842177e-01
+-1.3990713087081705e-01
+-1.3981481447078656e-01
+-1.3972255356618327e-01
+-1.3963034813486017e-01
+-1.3953819815467025e-01
+-1.3944610360346646e-01
+-1.3935406445910181e-01
+-1.3926208069942922e-01
+-1.3917015230230173e-01
+-1.3907827924557231e-01
+-1.3898646150709393e-01
+-1.3889469906471957e-01
+-1.3880299189630219e-01
+-1.3871133997969479e-01
+-1.3861974329275031e-01
+-1.3852820181332179e-01
+-1.3843671551926218e-01
+-1.3834528438842442e-01
+-1.3825390839866156e-01
+-1.3816258752782654e-01
+-1.3807132175377232e-01
+-1.3798011105435190e-01
+-1.3788895540741825e-01
+-1.3779785479082438e-01
+-1.3770680918242323e-01
+-1.3761581856006780e-01
+-1.3752488290161102e-01
+-1.3743400218490595e-01
+-1.3734317638780552e-01
+-1.3725240548816270e-01
+-1.3716168946383051e-01
+-1.3707102829266188e-01
+-1.3698042195250981e-01
+-1.3688987042122730e-01
+-1.3679937367666728e-01
+-1.3670893169668277e-01
+-1.3661854445912675e-01
+-1.3652821194185216e-01
+-1.3643793412271199e-01
+-1.3634771097955925e-01
+-1.3625754249024688e-01
+-1.3616742863262787e-01
+-1.3607736938455522e-01
+-1.3598736472388190e-01
+-1.3589741462846086e-01
+-1.3580751907614511e-01
+-1.3571767804478763e-01
+-1.3562789151224136e-01
+-1.3553815945635930e-01
+-1.3544848185499445e-01
+-1.3535885868599978e-01
+-1.3526928992722823e-01
+-1.3517977555653282e-01
+-1.3509031555176651e-01
+-1.3500090989078228e-01
+-1.3491155855143314e-01
+-1.3482226151157201e-01
+-1.3473301874905191e-01
+-1.3464383024172580e-01
+-1.3455469596744668e-01
+-1.3446561590406750e-01
+-1.3437659002944125e-01
+-1.3428761832142092e-01
+-1.3419870075785947e-01
+-1.3410983731660991e-01
+-1.3402102797552518e-01
+-1.3393227271245828e-01
+-1.3384357150526216e-01
+-1.3375492433178982e-01
+-1.3366633116989426e-01
+-1.3357779199742845e-01
+-1.3348930679224533e-01
+-1.3340087553219790e-01
+-1.3331249819513916e-01
+-1.3322417475892206e-01
+-1.3313590520139959e-01
+-1.3304768950042473e-01
+-1.3295952763385044e-01
+-1.3287141957952975e-01
+-1.3278336531531557e-01
+-1.3269536481906091e-01
+-1.3260741806861875e-01
+-1.3251952504184211e-01
+-1.3243168571658387e-01
+-1.3234390007069710e-01
+-1.3225616808203472e-01
+-1.3216848972844975e-01
+-1.3208086498779512e-01
+-1.3199329383792385e-01
+-1.3190577625668892e-01
+-1.3181831222194329e-01
+-1.3173090171153995e-01
+-1.3164354470333184e-01
+-1.3155624117517198e-01
+-1.3146899110491334e-01
+-1.3138179447040890e-01
+-1.3129465124951165e-01
+-1.3120756142007453e-01
+-1.3112052495995055e-01
+-1.3103354184699267e-01
+-1.3094661205905389e-01
+-1.3085973557398717e-01
+-1.3077291236964547e-01
+-1.3068614242388182e-01
+-1.3059942571454916e-01
+-1.3051276221950051e-01
+-1.3042615191658877e-01
+-1.3033959478366700e-01
+-1.3025309079858813e-01
+-1.3016663993920516e-01
+-1.3008024218337105e-01
+-1.2999389750893880e-01
+-1.2990760589376138e-01
+-1.2982136731569174e-01
+-1.2973518175258292e-01
+-1.2964904918228781e-01
+-1.2956296958265950e-01
+-1.2947694293155088e-01
+-1.2939096920681495e-01
+-1.2930504838630472e-01
+-1.2921918044787312e-01
+-1.2913336536937317e-01
+-1.2904760312865782e-01
+-1.2896189370358008e-01
+-1.2887623707199289e-01
+-1.2879063321174924e-01
+-1.2870508210070211e-01
+-1.2861958371670451e-01
+-1.2853413803760938e-01
+-1.2844874504126969e-01
+-1.2836340470553848e-01
+-1.2827811700826863e-01
+-1.2819288192731321e-01
+-1.2810769944052516e-01
+-1.2802256952575747e-01
+-1.2793749216086309e-01
+-1.2785246732369501e-01
+-1.2776749499210624e-01
+-1.2768257514394971e-01
+-1.2759770775707846e-01
+-1.2751289280934539e-01
+-1.2742813027860356e-01
+-1.2734342014270586e-01
+-1.2725876237950534e-01
+-1.2717415696685497e-01
+-1.2708960388260770e-01
+-1.2700510310461652e-01
+-1.2692065461073440e-01
+-1.2683625837881435e-01
+-1.2675191438670930e-01
+-1.2666762261227227e-01
+-1.2658338303335620e-01
+-1.2649919562781411e-01
+-1.2641506037349898e-01
+-1.2633097724826375e-01
+-1.2624694622996141e-01
+-1.2616296729644494e-01
+-1.2607904042556733e-01
+-1.2599516559518156e-01
+-1.2591134278314059e-01
+-1.2582757196729741e-01
+-1.2574385312550501e-01
+-1.2566018623561634e-01
+-1.2557657127548438e-01
+-1.2549300822296214e-01
+-1.2540949705590260e-01
+-1.2532603775215867e-01
+-1.2524263028958341e-01
+-1.2515927464602974e-01
+-1.2507597079935068e-01
+-1.2499271872739920e-01
+-1.2490951840802826e-01
+-1.2482636981909084e-01
+-1.2474327293843994e-01
+-1.2466022774392851e-01
+-1.2457723421340956e-01
+-1.2449429232473605e-01
+-1.2441140205576096e-01
+-1.2432856338433725e-01
+-1.2424577628831793e-01
+-1.2416304074555595e-01
+-1.2408035673390433e-01
+-1.2399772423121599e-01
+-1.2391514321534397e-01
+-1.2383261366414119e-01
+-1.2375013555546069e-01
+-1.2366770886715539e-01
+-1.2358533357707829e-01
+-1.2350300966308239e-01
+-1.2342073710302064e-01
+-1.2333851587474602e-01
+-1.2325634595611154e-01
+-1.2317422732497013e-01
+-1.2309215995917480e-01
+-1.2301014383657853e-01
+-1.2292817893503429e-01
+-1.2284626523239506e-01
+-1.2276440270651380e-01
+-1.2268259133524351e-01
+-1.2260083109643717e-01
+-1.2251912196794776e-01
+-1.2243746392762823e-01
+-1.2235585695333159e-01
+-1.2227430102291080e-01
+-1.2219279611421885e-01
+-1.2211134220510872e-01
+-1.2202993927343338e-01
+-1.2194858729704580e-01
+-1.2186728625379897e-01
+-1.2178603612154587e-01
+-1.2170483687813947e-01
+-1.2162368850143276e-01
+-1.2154259096927872e-01
+-1.2146154425953030e-01
+-1.2138054835004052e-01
+-1.2129960321866232e-01
+-1.2121870884324870e-01
+-1.2113786520165264e-01
+-1.2105707227172710e-01
+-1.2097633003132507e-01
+-1.2089563845829954e-01
+-1.2081499753050347e-01
+-1.2073440722578985e-01
+-1.2065386752201165e-01
+-1.2057337839702184e-01
+-1.2049293982867343e-01
+-1.2041255179481937e-01
+-1.2033221427331264e-01
+-1.2025192724200624e-01
+-1.2017169067875313e-01
+-1.2009150456140628e-01
+-1.2001136886781870e-01
+-1.1993128357584333e-01
+-1.1985124866333319e-01
+-1.1977126410814121e-01
+-1.1969132988812040e-01
+-1.1961144598112373e-01
+-1.1953161236500419e-01
+-1.1945182901761475e-01
+-1.1937209591680838e-01
+-1.1929241304043806e-01
+-1.1921278036635678e-01
+-1.1913319787241750e-01
+-1.1905366553647323e-01
+-1.1897418333637691e-01
+-1.1889475124998156e-01
+-1.1881536925514011e-01
+-1.1873603732970558e-01
+-1.1865675545153094e-01
+-1.1857752359846915e-01
+-1.1849834174837319e-01
+-1.1841920987909606e-01
+-1.1834012796849072e-01
+-1.1826109599441015e-01
+-1.1818211393470734e-01
+-1.1810318176723526e-01
+-1.1802429946984688e-01
+-1.1794546702039520e-01
+-1.1786668439673317e-01
+-1.1778795157671380e-01
+-1.1770926853819005e-01
+-1.1763063525901489e-01
+-1.1755205171704132e-01
+-1.1747351789012231e-01
+-1.1739503375611082e-01
+-1.1731659929285985e-01
+-1.1723821447822237e-01
+-1.1715987929005137e-01
+-1.1708159370619982e-01
+-1.1700335770452068e-01
+-1.1692517126286696e-01
+-1.1684703435909162e-01
+-1.1676894697104764e-01
+-1.1669090907658801e-01
+-1.1661292065356568e-01
+-1.1653498167983367e-01
+-1.1645709213324493e-01
+-1.1637925199165243e-01
+-1.1630146123290917e-01
+-1.1622371983486814e-01
+-1.1614602777538227e-01
+-1.1606838503230459e-01
+-1.1599079158348803e-01
+-1.1591324740678562e-01
+-1.1583575248005029e-01
+-1.1575830678113505e-01
+-1.1568091028789287e-01
+-1.1560356297817674e-01
+-1.1552626482983962e-01
+-1.1544901582073448e-01
+-1.1537181592871432e-01
+-1.1529466513163211e-01
+-1.1521756340734084e-01
+-1.1514051073369347e-01
+-1.1506350708854297e-01
+-1.1498655244974236e-01
+-1.1490964679514458e-01
+-1.1483279010260262e-01
+-1.1475598234996946e-01
+-1.1467922351509809e-01
+-1.1460251357584146e-01
+-1.1452585251005257e-01
+-1.1444924029558438e-01
+-1.1437267691028991e-01
+-1.1429616233202208e-01
+-1.1421969653863391e-01
+-1.1414327950797837e-01
+-1.1406691121790842e-01
+-1.1399059164627706e-01
+-1.1391432077093727e-01
+-1.1383809856974202e-01
+-1.1376192502054427e-01
+-1.1368580010119703e-01
+-1.1360972378955327e-01
+-1.1353369606346594e-01
+-1.1345771690078807e-01
+-1.1338178627937259e-01
+-1.1330590417707249e-01
+-1.1323007057174078e-01
+-1.1315428544123041e-01
+-1.1307854876339435e-01
+-1.1300286051608559e-01
+-1.1292722067715712e-01
+-1.1285162922446190e-01
+-1.1277608613585292e-01
+-1.1270059138918316e-01
+-1.1262514496230558e-01
+-1.1254974683307319e-01
+-1.1247439697933893e-01
+-1.1239909537895580e-01
+-1.1232384200977678e-01
+-1.1224863684965486e-01
+-1.1217347987644298e-01
+-1.1209837106799415e-01
+-1.1202331040216135e-01
+-1.1194829785679752e-01
+-1.1187333340975568e-01
+-1.1179841703888879e-01
+-1.1172354872204986e-01
+-1.1164872843709181e-01
+-1.1157395616186766e-01
+-1.1149923187423039e-01
+-1.1142455555203296e-01
+-1.1134992717312835e-01
+-1.1127534671536954e-01
+-1.1120081415660951e-01
+-1.1112632947470125e-01
+-1.1105189264749774e-01
+-1.1097750365285192e-01
+-1.1090316246861680e-01
+-1.1082886907264536e-01
+-1.1075462344279058e-01
+-1.1068042555690541e-01
+-1.1060627539284286e-01
+-1.1053217292845589e-01
+-1.1045811814159749e-01
+-1.1038411101012063e-01
+-1.1031015151187830e-01
+-1.1023623962472345e-01
+-1.1016237532650910e-01
+-1.1008855859508819e-01
+-1.1001478940831373e-01
+-1.0994106774403867e-01
+-1.0986739358011600e-01
+-1.0979376689439871e-01
+-1.0972018766473977e-01
+-1.0964665586899215e-01
+-1.0957317148500884e-01
+-1.0949973449064281e-01
+-1.0942634486374704e-01
+-1.0935300258217451e-01
+-1.0927970762377820e-01
+-1.0920645996641108e-01
+-1.0913325958792615e-01
+-1.0906010646617637e-01
+-1.0898700057901471e-01
+-1.0891394190429417e-01
+-1.0884093041986771e-01
+-1.0876796610358831e-01
+-1.0869504893330897e-01
+-1.0862217888688265e-01
+-1.0854935594216233e-01
+-1.0847658007700099e-01
+-1.0840385126925162e-01
+-1.0833116949676717e-01
+-1.0825853473740064e-01
+-1.0818594696900501e-01
+-1.0811340616943324e-01
+-1.0804091231653833e-01
+-1.0796846538817324e-01
+-1.0789606536219096e-01
+-1.0782371221644448e-01
+-1.0775140592878674e-01
+-1.0767914647707075e-01
+-1.0760693383914949e-01
+-1.0753476799287591e-01
+-1.0746264891610302e-01
+-1.0739057658668379e-01
+-1.0731855098247119e-01
+-1.0724657208131819e-01
+-1.0717463986107778e-01
+-1.0710275429960295e-01
+-1.0703091537474667e-01
+-1.0695912306436191e-01
+-1.0688737734630165e-01
+-1.0681567819841888e-01
+-1.0674402559856655e-01
+-1.0667241952459768e-01
+-1.0660085995436522e-01
+-1.0652934686572216e-01
+-1.0645788023652146e-01
+-1.0638646004461612e-01
+-1.0631508626785911e-01
+-1.0624375888410341e-01
+-1.0617247787120200e-01
+-1.0610124320700785e-01
+-1.0603005486937395e-01
+-1.0595891283615326e-01
+-1.0588781708519879e-01
+-1.0581676759436348e-01
+-1.0574576434150033e-01
+-1.0567480730446233e-01
+-1.0560389646110242e-01
+-1.0553303178927362e-01
+-1.0546221326682889e-01
+-1.0539144087162121e-01
+-1.0532071458150355e-01
+-1.0525003437432889e-01
+-1.0517940022795022e-01
+-1.0510881212022050e-01
+-1.0503827002899274e-01
+-1.0496777393211990e-01
+-1.0489732380745494e-01
+-1.0482691963285086e-01
+-1.0475656138616064e-01
+-1.0468624904523725e-01
+-1.0461598258793367e-01
+-1.0454576199210289e-01
+-1.0447558723559786e-01
+-1.0440545829627158e-01
+-1.0433537515197704e-01
+-1.0426533778056718e-01
+-1.0419534615989501e-01
+-1.0412540026781350e-01
+-1.0405550008217562e-01
+-1.0398564558083437e-01
+-1.0391583674164270e-01
+-1.0384607354245361e-01
+-1.0377635596112007e-01
+-1.0370668397549505e-01
+-1.0363705756343156e-01
+-1.0356747670278253e-01
+-1.0349794137140098e-01
+-1.0342845154713987e-01
+-1.0335900720785217e-01
+-1.0328960833139088e-01
+-1.0322025489560896e-01
+-1.0315094687835941e-01
+-1.0308168425749518e-01
+-1.0301246701086926e-01
+-1.0294329511633464e-01
+-1.0287416855174429e-01
+-1.0280508729495118e-01
+-1.0273605132380831e-01
+-1.0266706061616862e-01
+-1.0259811514988514e-01
+-1.0252921490281081e-01
+-1.0246035985279861e-01
+-1.0239154997770153e-01
+-1.0232278525537256e-01
+-1.0225406566366464e-01
+-1.0218539118043080e-01
+-1.0211676178352397e-01
+-1.0204817745079715e-01
+-1.0197963816010333e-01
+-1.0191114388929547e-01
+-1.0184269461622655e-01
+-1.0177429031874956e-01
+-1.0170593097471746e-01
+-1.0163761656198325e-01
+-1.0156934705839990e-01
+-1.0150112244182037e-01
+-1.0143294269009767e-01
+-1.0136480778108475e-01
+-1.0129671769263461e-01
+-1.0122867240260021e-01
+-1.0116067188883456e-01
+-1.0109271612919059e-01
+-1.0102480510152131e-01
+-1.0095693878367970e-01
+-1.0088911715351874e-01
+-1.0082134018889134e-01
+-1.0075360786743363e-01
+-1.0068592016605654e-01
+-1.0061827706145447e-01
+-1.0055067852294575e-01
+-1.0048312450578625e-01
+-1.0041561496416357e-01
+-1.0034814986704488e-01
+-1.0028072920007992e-01
+-1.0021335294887040e-01
+-1.0014602108740060e-01
+-1.0007873358182860e-01
+-1.0001149039789123e-01
+-9.9944291499574997e-02
+-9.9877136850180445e-02
+-9.9810026415314695e-02
+-9.9742960168675218e-02
+-9.9675938085744972e-02
+-9.9608960143858324e-02
+-9.9542026324035873e-02
+-9.9475136607340670e-02
+-9.9408290962458568e-02
+-9.9341489343515860e-02
+-9.9274731704882171e-02
+-9.9208018015026669e-02
+-9.9141348252323208e-02
+-9.9074722395639150e-02
+-9.9008140425767402e-02
+-9.8941602324290362e-02
+-9.8875108067473585e-02
+-9.8808657612038844e-02
+-9.8742250910273929e-02
+-9.8675887922849315e-02
+-9.8609568627869806e-02
+-9.8543293005624963e-02
+-9.8477061036770758e-02
+-9.8410872702412444e-02
+-9.8344727982539085e-02
+-9.8278626841244637e-02
+-9.8212569230981026e-02
+-9.8146555106562172e-02
+-9.8080584441281218e-02
+-9.8014657216355355e-02
+-9.7948773412794218e-02
+-9.7882933010690856e-02
+-9.7817135989877124e-02
+-9.7751382322534969e-02
+-9.7685671964221815e-02
+-9.7620004868619215e-02
+-9.7554381000888327e-02
+-9.7488800340859535e-02
+-9.7423262869304181e-02
+-9.7357768566766867e-02
+-9.7292317413619087e-02
+-9.7226909388014621e-02
+-9.7161544451746407e-02
+-9.7096222559273151e-02
+-9.7030943669097841e-02
+-9.6965707756197214e-02
+-9.6900514799711068e-02
+-9.6835364779867997e-02
+-9.6770257679369559e-02
+-9.6705193480937562e-02
+-9.6640172154070961e-02
+-9.6575193650655339e-02
+-9.6510257922467702e-02
+-9.6445364938813366e-02
+-9.6380514682948448e-02
+-9.6315707138183604e-02
+-9.6250942285248553e-02
+-9.6186220103663914e-02
+-9.6121540569034311e-02
+-9.6056903640411001e-02
+-9.5992309272487711e-02
+-9.5927757426661486e-02
+-9.5863248080248653e-02
+-9.5798781212908746e-02
+-9.5734356805737511e-02
+-9.5669974841825156e-02
+-9.5605635303431052e-02
+-9.5541338156395400e-02
+-9.5477083352938100e-02
+-9.5412870847166042e-02
+-9.5348700612015488e-02
+-9.5284572629638922e-02
+-9.5220486882076044e-02
+-9.5156443350586026e-02
+-9.5092442016193074e-02
+-9.5028482853215482e-02
+-9.4964565819316338e-02
+-9.4900690869805820e-02
+-9.4836857969491484e-02
+-9.4773067096932881e-02
+-9.4709318231846529e-02
+-9.4645611355389930e-02
+-9.4581946449966398e-02
+-9.4518323496046691e-02
+-9.4454742457071847e-02
+-9.4391203287776740e-02
+-9.4327705946492271e-02
+-9.4264250408619937e-02
+-9.4200836654527026e-02
+-9.4137464665124765e-02
+-9.4074134422736475e-02
+-9.4010845909715299e-02
+-9.3947599097413181e-02
+-9.3884393940569785e-02
+-9.3821230393325156e-02
+-9.3758108424777956e-02
+-9.3695028017503706e-02
+-9.3631989154429981e-02
+-9.3568991817303548e-02
+-9.3506035987240804e-02
+-9.3443121641613974e-02
+-9.3380248739540081e-02
+-9.3317417234583533e-02
+-9.3254627087602737e-02
+-9.3191878279293344e-02
+-9.3129170793664770e-02
+-9.3066504613093959e-02
+-9.3003879717386620e-02
+-9.2941296085552100e-02
+-9.2878753684860649e-02
+-9.2816252471561250e-02
+-9.2753792403126326e-02
+-9.2691373452866418e-02
+-9.2628995602918582e-02
+-9.2566658835439811e-02
+-9.2504363132199646e-02
+-9.2442108474837151e-02
+-9.2379894838788473e-02
+-9.2317722181833609e-02
+-9.2255590458771713e-02
+-9.2193499634271661e-02
+-9.2131449689219408e-02
+-9.2069440606000807e-02
+-9.2007472366816889e-02
+-9.1945544953687938e-02
+-9.1883658347082814e-02
+-9.1821812511821685e-02
+-9.1760007403622681e-02
+-9.1698242981230596e-02
+-9.1636519220262530e-02
+-9.1574836101979404e-02
+-9.1513193607965268e-02
+-9.1451591720755288e-02
+-9.1390030422948021e-02
+-9.1328509688095014e-02
+-9.1267029474236677e-02
+-9.1205589738355436e-02
+-9.1144190448552057e-02
+-9.1082831584261711e-02
+-9.1021513125662451e-02
+-9.0960235055426428e-02
+-9.0898997357739542e-02
+-9.0837800013353606e-02
+-9.0776642983531719e-02
+-9.0715526222713658e-02
+-9.0654449691660366e-02
+-9.0593413370890774e-02
+-9.0532417244750654e-02
+-9.0471461295912201e-02
+-9.0410545504052919e-02
+-9.0349669848159272e-02
+-9.0288834297445247e-02
+-9.0228038810743511e-02
+-9.0167283347594218e-02
+-9.0106567881245520e-02
+-9.0045892393625065e-02
+-8.9985256866767838e-02
+-8.9924661282530099e-02
+-8.9864105622701390e-02
+-8.9803589863897040e-02
+-8.9743113965807919e-02
+-8.9682677884751774e-02
+-8.9622281585685748e-02
+-8.9561925049705463e-02
+-8.9501608259680968e-02
+-8.9441331198667415e-02
+-8.9381093849924861e-02
+-8.9320896195373756e-02
+-8.9260738200728135e-02
+-8.9200619820998833e-02
+-8.9140541014107094e-02
+-8.9080501757249492e-02
+-8.9020502035019045e-02
+-8.8960541831186471e-02
+-8.8900621126651314e-02
+-8.8840739901645108e-02
+-8.8780898129848657e-02
+-8.8721095772165276e-02
+-8.8661332788330410e-02
+-8.8601609147376165e-02
+-8.8541924829059288e-02
+-8.8482279813909881e-02
+-8.8422674084723943e-02
+-8.8363107625858014e-02
+-8.8303580418837027e-02
+-8.8244092426489590e-02
+-8.8184643604138829e-02
+-8.8125233912561898e-02
+-8.8065863332206021e-02
+-8.8006531847927075e-02
+-8.7947239443473907e-02
+-8.7887986100340043e-02
+-8.7828771799436309e-02
+-8.7769596511541065e-02
+-8.7710460195250958e-02
+-8.7651362809488667e-02
+-8.7592304327339443e-02
+-8.7533284732059263e-02
+-8.7474304006926157e-02
+-8.7415362133840963e-02
+-8.7356459094126260e-02
+-8.7297594865103634e-02
+-8.7238769409030831e-02
+-8.7179982684660526e-02
+-8.7121234657884933e-02
+-8.7062525309792402e-02
+-8.7003854623407512e-02
+-8.6945222581364598e-02
+-8.6886629165808971e-02
+-8.6828074357961596e-02
+-8.6769558126218949e-02
+-8.6711080429375739e-02
+-8.6652641228148822e-02
+-8.6594240498801503e-02
+-8.6535878224421853e-02
+-8.6477554387903902e-02
+-8.6419268971259830e-02
+-8.6361021956254086e-02
+-8.6302813318367907e-02
+-8.6244643019106365e-02
+-8.6186511018327264e-02
+-8.6128417285224745e-02
+-8.6070361801187642e-02
+-8.6012344548497002e-02
+-8.5954365510512609e-02
+-8.5896424671436100e-02
+-8.5838522013167717e-02
+-8.5780657499964011e-02
+-8.5722831087985812e-02
+-8.5665042738144639e-02
+-8.5607292431199744e-02
+-8.5549580153041968e-02
+-8.5491905888228567e-02
+-8.5434269618215916e-02
+-8.5376671323822123e-02
+-8.5319110977268131e-02
+-8.5261588539068803e-02
+-8.5204103969665046e-02
+-8.5146657241952972e-02
+-8.5089248338960893e-02
+-8.5031877243921278e-02
+-8.4974543939347807e-02
+-8.4917248407409551e-02
+-8.4859990626909604e-02
+-8.4802770562045729e-02
+-8.4745588173071207e-02
+-8.4688443426217896e-02
+-8.4631336302255000e-02
+-8.4574266784119501e-02
+-8.4517234854779008e-02
+-8.4460240497244585e-02
+-8.4403283693839884e-02
+-8.4346364414883523e-02
+-8.4289482620515846e-02
+-8.4232638272127361e-02
+-8.4175831344344615e-02
+-8.4119061818423380e-02
+-8.4062329676514252e-02
+-8.4005634904616724e-02
+-8.3948977489806120e-02
+-8.3892357411246288e-02
+-8.3835774627978629e-02
+-8.3779229096101915e-02
+-8.3722720782846802e-02
+-8.3666249671923279e-02
+-8.3609815748346819e-02
+-8.3553418996663381e-02
+-8.3497059401004090e-02
+-8.3440736943724253e-02
+-8.3384451591550432e-02
+-8.3328203303034448e-02
+-8.3271992040114859e-02
+-8.3215817781241652e-02
+-8.3159680509788100e-02
+-8.3103580209606939e-02
+-8.3047516865824830e-02
+-8.2991490463606085e-02
+-8.2935500977911830e-02
+-8.2879548367949890e-02
+-8.2823632592257487e-02
+-8.2767753622858722e-02
+-8.2711911444195735e-02
+-8.2656106041013477e-02
+-8.2600337396557186e-02
+-8.2544605493253043e-02
+-8.2488910310878155e-02
+-8.2433251815984460e-02
+-8.2377629970998151e-02
+-8.2322044742639044e-02
+-8.2266496109590817e-02
+-8.2210984052633107e-02
+-8.2155508554501905e-02
+-8.2100069601083972e-02
+-8.2044667177943356e-02
+-8.1989301257648167e-02
+-8.1933971800297323e-02
+-8.1878678766905563e-02
+-8.1823422132499254e-02
+-8.1768201880091776e-02
+-8.1713017993012574e-02
+-8.1657870455763573e-02
+-8.1602759253225285e-02
+-8.1547684364575240e-02
+-8.1492645752358095e-02
+-8.1437643376220864e-02
+-8.1382677204707835e-02
+-8.1327747221313848e-02
+-8.1272853410925161e-02
+-8.1217995757498454e-02
+-8.1163174244060915e-02
+-8.1108388852440719e-02
+-8.1053639552374782e-02
+-8.0998926306407440e-02
+-8.0944249079178118e-02
+-8.0889607847401637e-02
+-8.0835002591932367e-02
+-8.0780433295177964e-02
+-8.0725899944279034e-02
+-8.0671402527153976e-02
+-8.0616941021195210e-02
+-8.0562515385337152e-02
+-8.0508125577207504e-02
+-8.0453771568339660e-02
+-8.0399453344754235e-02
+-8.0345170892983389e-02
+-8.0290924197728999e-02
+-8.0236713242557073e-02
+-8.0182538008460896e-02
+-8.0128398461645836e-02
+-8.0074294563012377e-02
+-8.0020226278296358e-02
+-7.9966193588727238e-02
+-7.9912196478624631e-02
+-7.9858234932086783e-02
+-7.9804308932806836e-02
+-7.9750418464076156e-02
+-7.9696563499580944e-02
+-7.9642744002579619e-02
+-7.9588959936780321e-02
+-7.9535211277256657e-02
+-7.9481498006440471e-02
+-7.9427820107257241e-02
+-7.9374177564879328e-02
+-7.9320570365322043e-02
+-7.9266998489524287e-02
+-7.9213461901399287e-02
+-7.9159960561363665e-02
+-7.9106494437550801e-02
+-7.9053063512841082e-02
+-7.8999667771795345e-02
+-7.8946307199529955e-02
+-7.8892981781789703e-02
+-7.8839691503138687e-02
+-7.8786436333109042e-02
+-7.8733216231082995e-02
+-7.8680031159056793e-02
+-7.8626881096923548e-02
+-7.8573766031609746e-02
+-7.8520685949246258e-02
+-7.8467640833109378e-02
+-7.8414630665805035e-02
+-7.8361655424100327e-02
+-7.8308715073109519e-02
+-7.8255809576832119e-02
+-7.8202938907754052e-02
+-7.8150103048366754e-02
+-7.8097301981832429e-02
+-7.8044535692567016e-02
+-7.7991804165869191e-02
+-7.7939107384853587e-02
+-7.7886445317867842e-02
+-7.7833817927189214e-02
+-7.7781225178973554e-02
+-7.7728667053733075e-02
+-7.7676143535289829e-02
+-7.7623654608231771e-02
+-7.7571200258743603e-02
+-7.7518780472879190e-02
+-7.7466395225314483e-02
+-7.7414044476744479e-02
+-7.7361728188084164e-02
+-7.7309446335282583e-02
+-7.7257198905325633e-02
+-7.7204985885085689e-02
+-7.7152807258841119e-02
+-7.7100663009755169e-02
+-7.7048553117635796e-02
+-7.6996477549349143e-02
+-7.6944436268666955e-02
+-7.6892429244987071e-02
+-7.6840456459963458e-02
+-7.6788517896903205e-02
+-7.6736613540611148e-02
+-7.6684743377810421e-02
+-7.6632907394408853e-02
+-7.6581105562360530e-02
+-7.6529337842940665e-02
+-7.6477604199222102e-02
+-7.6425904609612350e-02
+-7.6374239059409904e-02
+-7.6322607534163853e-02
+-7.6271010020304786e-02
+-7.6219446504454100e-02
+-7.6167916965709986e-02
+-7.6116421366040604e-02
+-7.6064959665328599e-02
+-7.6013531835318102e-02
+-7.5962137863589532e-02
+-7.5910777738624882e-02
+-7.5859451445730988e-02
+-7.5808158967681852e-02
+-7.5756900285662870e-02
+-7.5705675369017358e-02
+-7.5654484181527371e-02
+-7.5603326690189057e-02
+-7.5552202875781183e-02
+-7.5501112722742320e-02
+-7.5450056216263189e-02
+-7.5399033343325081e-02
+-7.5348044090938190e-02
+-7.5297088435533635e-02
+-7.5246166338817352e-02
+-7.5195277762230020e-02
+-7.5144422681101400e-02
+-7.5093601082309183e-02
+-7.5042812952878749e-02
+-7.4992058278165186e-02
+-7.4941337042704115e-02
+-7.4890649227822681e-02
+-7.4839994800589504e-02
+-7.4789373724122574e-02
+-7.4738785967371033e-02
+-7.4688231513802994e-02
+-7.4637710349105837e-02
+-7.4587222458836699e-02
+-7.4536767828363701e-02
+-7.4486346442430684e-02
+-7.4435958274809755e-02
+-7.4385603289765942e-02
+-7.4335281452700325e-02
+-7.4284992741567177e-02
+-7.4234737140753820e-02
+-7.4184514635015825e-02
+-7.4134325210583982e-02
+-7.4084168854106805e-02
+-7.4034045546249469e-02
+-7.3983955252091199e-02
+-7.3933897934363252e-02
+-7.3883873564671368e-02
+-7.3833882128053363e-02
+-7.3783923610674443e-02
+-7.3733997998871953e-02
+-7.3684105279138767e-02
+-7.3634245436305118e-02
+-7.3584418439980190e-02
+-7.3534624251628239e-02
+-7.3484862836314863e-02
+-7.3435134177115627e-02
+-7.3385438262607641e-02
+-7.3335775080112353e-02
+-7.3286144613524618e-02
+-7.3236546846061137e-02
+-7.3186981754649688e-02
+-7.3137449306289889e-02
+-7.3087949467531582e-02
+-7.3038482213723166e-02
+-7.2989047528492321e-02
+-7.2939645395921585e-02
+-7.2890275801375054e-02
+-7.2840938730932725e-02
+-7.2791634167972102e-02
+-7.2742362081950715e-02
+-7.2693122437874680e-02
+-7.2643915205544987e-02
+-7.2594740368451594e-02
+-7.2545597912504145e-02
+-7.2496487823172057e-02
+-7.2447410085199601e-02
+-7.2398364682852878e-02
+-7.2349351591281433e-02
+-7.2300370776695586e-02
+-7.2251422206001337e-02
+-7.2202505856990423e-02
+-7.2153621713801158e-02
+-7.2104769761087081e-02
+-7.2055949985851367e-02
+-7.2007162375881284e-02
+-7.1958406913537873e-02
+-7.1909683564965327e-02
+-7.1860992293392725e-02
+-7.1812333070182172e-02
+-7.1763705880672699e-02
+-7.1715110711563917e-02
+-7.1666547549135193e-02
+-7.1618016379236565e-02
+-7.1569517186599499e-02
+-7.1521049944143711e-02
+-7.1472614617603250e-02
+-7.1424211174775293e-02
+-7.1375839595699181e-02
+-7.1327499864713470e-02
+-7.1279191966776331e-02
+-7.1230915888770716e-02
+-7.1182671617874144e-02
+-7.1134459133790420e-02
+-7.1086278402818406e-02
+-7.1038129390241470e-02
+-7.0990012071161970e-02
+-7.0941926431136740e-02
+-7.0893872456248855e-02
+-7.0845850132794999e-02
+-7.0797859447207373e-02
+-7.0749900383421507e-02
+-7.0701972910538174e-02
+-7.0654076992206188e-02
+-7.0606212597279408e-02
+-7.0558379711709279e-02
+-7.0510578324924758e-02
+-7.0462808424008955e-02
+-7.0415069991652646e-02
+-7.0367363009847389e-02
+-7.0319687454530502e-02
+-7.0272043294922176e-02
+-7.0224430500602342e-02
+-7.0176849049692749e-02
+-7.0129298925969585e-02
+-7.0081780113764869e-02
+-7.0034292600246836e-02
+-6.9986836373674310e-02
+-6.9939411417569028e-02
+-6.9892017699164366e-02
+-6.9844655182257714e-02
+-6.9797323838156053e-02
+-6.9750023652849283e-02
+-6.9702754614006213e-02
+-6.9655516708633736e-02
+-6.9608309922973413e-02
+-6.9561134242307296e-02
+-6.9513989640212770e-02
+-6.9466876082187060e-02
+-6.9419793535624080e-02
+-6.9372741981391234e-02
+-6.9325721405778334e-02
+-6.9278731795274912e-02
+-6.9231773137036393e-02
+-6.9184845418321594e-02
+-6.9137948619598821e-02
+-6.9091082707468790e-02
+-6.9044247647131601e-02
+-6.8997443413422774e-02
+-6.8950669992788510e-02
+-6.8903927372361132e-02
+-6.8857215539204847e-02
+-6.8810534480334890e-02
+-6.8763884180737173e-02
+-6.8717264611436665e-02
+-6.8670675737582093e-02
+-6.8624117528120421e-02
+-6.8577589966420743e-02
+-6.8531093039258612e-02
+-6.8484626733809423e-02
+-6.8438191038101712e-02
+-6.8391785939985975e-02
+-6.8345411416933788e-02
+-6.8299067433381586e-02
+-6.8252753953905815e-02
+-6.8206470957019941e-02
+-6.8160218431696049e-02
+-6.8113996366806609e-02
+-6.8067804748665514e-02
+-6.8021643562460751e-02
+-6.7975512790384399e-02
+-6.7929412402785092e-02
+-6.7883342367104305e-02
+-6.7837302655852180e-02
+-6.7791293252840973e-02
+-6.7745314143445493e-02
+-6.7699365314399615e-02
+-6.7653446754216390e-02
+-6.7607558450723734e-02
+-6.7561700379401873e-02
+-6.7515872506072119e-02
+-6.7470074798048382e-02
+-6.7424307235970524e-02
+-6.7378569806607877e-02
+-6.7332862496835039e-02
+-6.7287185293829016e-02
+-6.7241538184823896e-02
+-6.7195921151469065e-02
+-6.7150334162395992e-02
+-6.7104777184564840e-02
+-6.7059250192770925e-02
+-6.7013753172502688e-02
+-6.6968286110077033e-02
+-6.6922848992784112e-02
+-6.6877441808707597e-02
+-6.6832064544280978e-02
+-6.6786717172525545e-02
+-6.6741399660016534e-02
+-6.6696111976358774e-02
+-6.6650854104523941e-02
+-6.6605626031120302e-02
+-6.6560427742817230e-02
+-6.6515259226432769e-02
+-6.6470120468657287e-02
+-6.6425011448963095e-02
+-6.6379932136551786e-02
+-6.6334882500361902e-02
+-6.6289862518427042e-02
+-6.6244872176509428e-02
+-6.6199911460707569e-02
+-6.6154980357884238e-02
+-6.6110078855285817e-02
+-6.6065206937252527e-02
+-6.6020364574845086e-02
+-6.5975551735349400e-02
+-6.5930768391210287e-02
+-6.5886014528027392e-02
+-6.5841290133462571e-02
+-6.5796595194962532e-02
+-6.5751929699654765e-02
+-6.5707293634069408e-02
+-6.5662686974074194e-02
+-6.5618109686094439e-02
+-6.5573561737865840e-02
+-6.5529043111687474e-02
+-6.5484553797494030e-02
+-6.5440093784493766e-02
+-6.5395663058094688e-02
+-6.5351261602562646e-02
+-6.5306889398575541e-02
+-6.5262546417239248e-02
+-6.5218232628192138e-02
+-6.5173948007738666e-02
+-6.5129692542499354e-02
+-6.5085466219924573e-02
+-6.5041269026352544e-02
+-6.4997100947095127e-02
+-6.4952961966485909e-02
+-6.4908852060037714e-02
+-6.4864771198434895e-02
+-6.4820719354205039e-02
+-6.4776696509378798e-02
+-6.4732702648964108e-02
+-6.4688737758810497e-02
+-6.4644801827114698e-02
+-6.4600894842368764e-02
+-6.4557016785599344e-02
+-6.4513167625781589e-02
+-6.4469347331241475e-02
+-6.4425555879869353e-02
+-6.4381793258753248e-02
+-6.4338059455319244e-02
+-6.4294354456654212e-02
+-6.4250678249651194e-02
+-6.4207030819019906e-02
+-6.4163412137981005e-02
+-6.4119822175988966e-02
+-6.4076260906172355e-02
+-6.4032728312408832e-02
+-6.3989224380544801e-02
+-6.3945749097537238e-02
+-6.3902302452213650e-02
+-6.3858884433144761e-02
+-6.3815495018824428e-02
+-6.3772134177648793e-02
+-6.3728801878653499e-02
+-6.3685498102181021e-02
+-6.3642222835315773e-02
+-6.3598976065300350e-02
+-6.3555757779754932e-02
+-6.3512567966427194e-02
+-6.3469406608989795e-02
+-6.3426273678636971e-02
+-6.3383169144257623e-02
+-6.3340092981225615e-02
+-6.3297045176313529e-02
+-6.3254025717423723e-02
+-6.3211034591784426e-02
+-6.3168071785919960e-02
+-6.3125137285470354e-02
+-6.3082231066652644e-02
+-6.3039353099821796e-02
+-6.2996503357048469e-02
+-6.2953681820870161e-02
+-6.2910888477589952e-02
+-6.2868123314008553e-02
+-6.2825386318507051e-02
+-6.2782677479715651e-02
+-6.2739996779593785e-02
+-6.2697344187861881e-02
+-6.2654719673280415e-02
+-6.2612123214060414e-02
+-6.2569554798696067e-02
+-6.2527014416007429e-02
+-6.2484502052562882e-02
+-6.2442017693469604e-02
+-6.2399561322405081e-02
+-6.2357132914488300e-02
+-6.2314732441616193e-02
+-6.2272359878677103e-02
+-6.2230015210634697e-02
+-6.2187698424565840e-02
+-6.2145409507366481e-02
+-6.2103148445586037e-02
+-6.2060915225492189e-02
+-6.2018709826276851e-02
+-6.1976532219108711e-02
+-6.1934382375497525e-02
+-6.1892260276564602e-02
+-6.1850165909936278e-02
+-6.1808099263347217e-02
+-6.1766060324438474e-02
+-6.1724049080814004e-02
+-6.1682065516436915e-02
+-6.1640109602443219e-02
+-6.1598181307197457e-02
+-6.1556280606084555e-02
+-6.1514407488534012e-02
+-6.1472561945559050e-02
+-6.1430743965361460e-02
+-6.1388953532820735e-02
+-6.1347190632049506e-02
+-6.1305455239583848e-02
+-6.1263747326612807e-02
+-6.1222066865882663e-02
+-6.1180413841363586e-02
+-6.1138788241651115e-02
+-6.1097190054946363e-02
+-6.1055619267940481e-02
+-6.1014075866949957e-02
+-6.0972559834109007e-02
+-6.0931071142811495e-02
+-6.0889609765512241e-02
+-6.0848175680100897e-02
+-6.0806768871160585e-02
+-6.0765389323934021e-02
+-6.0724037027124082e-02
+-6.0682711971979671e-02
+-6.0641414147610075e-02
+-6.0600143527585477e-02
+-6.0558900078779870e-02
+-6.0517683772221338e-02
+-6.0476494595124948e-02
+-6.0435332538615147e-02
+-6.0394197592262749e-02
+-6.0353089742245777e-02
+-6.0312008974143225e-02
+-6.0270955267811073e-02
+-6.0229928595758625e-02
+-6.0188928930558737e-02
+-6.0147956252907878e-02
+-6.0107010549733789e-02
+-6.0066091808239866e-02
+-6.0025200016496624e-02
+-5.9984335162965190e-02
+-5.9943497233157589e-02
+-5.9902686200605210e-02
+-5.9861902035819974e-02
+-5.9821144714163665e-02
+-5.9780414222068132e-02
+-5.9739710547513515e-02
+-5.9699033678938404e-02
+-5.9658383605394869e-02
+-5.9617760315329026e-02
+-5.9577163786901949e-02
+-5.9536593990051338e-02
+-5.9496050895940629e-02
+-5.9455534487120799e-02
+-5.9415044751503644e-02
+-5.9374581677336190e-02
+-5.9334145254159074e-02
+-5.9293735471838298e-02
+-5.9253352314707061e-02
+-5.9212995753894396e-02
+-5.9172665758775785e-02
+-5.9132362306730295e-02
+-5.9092085386302950e-02
+-5.9051834986803609e-02
+-5.9011611096458069e-02
+-5.8971413702588696e-02
+-5.8931242791385702e-02
+-5.8891098339940870e-02
+-5.8850980320871139e-02
+-5.8810888708879724e-02
+-5.8770823488120988e-02
+-5.8730784645386565e-02
+-5.8690772167960002e-02
+-5.8650786044352414e-02
+-5.8610826263137829e-02
+-5.8570892806509053e-02
+-5.8530985647376119e-02
+-5.8491104758343536e-02
+-5.8451250119711862e-02
+-5.8411421718465556e-02
+-5.8371619542013253e-02
+-5.8331843579516728e-02
+-5.8292093821038310e-02
+-5.8252370253646005e-02
+-5.8212672850357756e-02
+-5.8173001580095175e-02
+-5.8133356417237464e-02
+-5.8093737350416889e-02
+-5.8054144370534029e-02
+-5.8014577466833299e-02
+-5.7975036626046632e-02
+-5.7935521834366392e-02
+-5.7896033071607331e-02
+-5.7856570311812204e-02
+-5.7817133529611944e-02
+-5.7777722706925577e-02
+-5.7738337829581335e-02
+-5.7698978884118922e-02
+-5.7659645860387645e-02
+-5.7620338749243223e-02
+-5.7581057536477721e-02
+-5.7541802194044221e-02
+-5.7502572691673075e-02
+-5.7463369006700772e-02
+-5.7424191128499572e-02
+-5.7385039047439045e-02
+-5.7345912752491651e-02
+-5.7306812231312190e-02
+-5.7267737470569610e-02
+-5.7228688447909730e-02
+-5.7189665135925993e-02
+-5.7150667509089564e-02
+-5.7111695551827067e-02
+-5.7072749251761305e-02
+-5.7033828597148901e-02
+-5.6994933578055525e-02
+-5.6956064184765148e-02
+-5.6917220400178159e-02
+-5.6878402195005964e-02
+-5.6839609539293588e-02
+-5.6800842413659298e-02
+-5.6762100809112467e-02
+-5.6723384716792197e-02
+-5.6684694124696053e-02
+-5.6646029018985716e-02
+-5.6607389384381208e-02
+-5.6568775197937765e-02
+-5.6530186434135647e-02
+-5.6491623070236530e-02
+-5.6453085091840612e-02
+-5.6414572486115679e-02
+-5.6376085241255508e-02
+-5.6337623347221324e-02
+-5.6299186793769100e-02
+-5.6260775561527976e-02
+-5.6222389621780548e-02
+-5.6184028946403661e-02
+-5.6145693518250619e-02
+-5.6107383326867898e-02
+-5.6069098361842026e-02
+-5.6030838612446163e-02
+-5.5992604067841630e-02
+-5.5954394713614755e-02
+-5.5916210524133585e-02
+-5.5878051471629171e-02
+-5.5839917533702668e-02
+-5.5801808697610006e-02
+-5.5763724951656130e-02
+-5.5725666285201765e-02
+-5.5687632688734320e-02
+-5.5649624151791040e-02
+-5.5611640652446059e-02
+-5.5573682161481536e-02
+-5.5535748651716836e-02
+-5.5497840108794612e-02
+-5.5459956523083109e-02
+-5.5422097884672929e-02
+-5.5384264182717309e-02
+-5.5346455406126226e-02
+-5.5308671538346919e-02
+-5.5270912552573652e-02
+-5.5233178421148742e-02
+-5.5195469124212790e-02
+-5.5157784650578273e-02
+-5.5120124989507115e-02
+-5.5082490130216523e-02
+-5.5044880061894043e-02
+-5.5007294771967419e-02
+-5.4969734236866762e-02
+-5.4932198428781318e-02
+-5.4894687323612398e-02
+-5.4857200910083323e-02
+-5.4819739179662284e-02
+-5.4782302121963868e-02
+-5.4744889722969828e-02
+-5.4707501968103950e-02
+-5.4670138838646347e-02
+-5.4632800311075244e-02
+-5.4595486362087602e-02
+-5.4558196974621456e-02
+-5.4520932135933217e-02
+-5.4483691833608780e-02
+-5.4446476056831061e-02
+-5.4409284795427240e-02
+-5.4372118036324246e-02
+-5.4334975755967289e-02
+-5.4297857928460987e-02
+-5.4260764531615720e-02
+-5.4223695550828024e-02
+-5.4186650972512747e-02
+-5.4149630786068159e-02
+-5.4112634984495721e-02
+-5.4075663560054263e-02
+-5.4038716491978139e-02
+-5.4001793750105186e-02
+-5.3964895306200272e-02
+-5.3928021146765079e-02
+-5.3891171264519359e-02
+-5.3854345650935866e-02
+-5.3817544292682262e-02
+-5.3780767175275815e-02
+-5.3744014281893127e-02
+-5.3707285590704645e-02
+-5.3670581079327102e-02
+-5.3633900728690585e-02
+-5.3597244523896068e-02
+-5.3560612450613367e-02
+-5.3524004498893343e-02
+-5.3487420662082050e-02
+-5.3450860931526956e-02
+-5.3414325283486594e-02
+-5.3377813687563093e-02
+-5.3341326117282088e-02
+-5.3304862561861878e-02
+-5.3268423014406090e-02
+-5.3232007466195323e-02
+-5.3195615904435202e-02
+-5.3159248315660254e-02
+-5.3122904681690196e-02
+-5.3086584978158234e-02
+-5.3050289180736017e-02
+-5.3014017272143554e-02
+-5.2977769240627096e-02
+-5.2941545074846247e-02
+-5.2905344765486369e-02
+-5.2869168304166846e-02
+-5.2833015679186683e-02
+-5.2796886865002481e-02
+-5.2760781832492276e-02
+-5.2724700558523102e-02
+-5.2688643033956720e-02
+-5.2652609251589613e-02
+-5.2616599201550047e-02
+-5.2580612870316470e-02
+-5.2544650243810061e-02
+-5.2508711303132082e-02
+-5.2472796025444884e-02
+-5.2436904388587523e-02
+-5.2401036376766214e-02
+-5.2365191977254748e-02
+-5.2329371177957308e-02
+-5.2293573969443563e-02
+-5.2257800342995896e-02
+-5.2222050285122827e-02
+-5.2186323770667502e-02
+-5.2150620772861228e-02
+-5.2114941271557275e-02
+-5.2079285256053230e-02
+-5.2043652716360841e-02
+-5.2008043642325953e-02
+-5.1972458023653093e-02
+-5.1936895848897199e-02
+-5.1901357096918496e-02
+-5.1865841741698254e-02
+-5.1830349759674349e-02
+-5.1794881138697735e-02
+-5.1759435869880237e-02
+-5.1724013943324501e-02
+-5.1688615346552898e-02
+-5.1653240066614453e-02
+-5.1617888086956012e-02
+-5.1582559385667082e-02
+-5.1547253940660308e-02
+-5.1511971734690000e-02
+-5.1476712754807911e-02
+-5.1441476988460771e-02
+-5.1406264425288478e-02
+-5.1371075056083570e-02
+-5.1335908869452919e-02
+-5.1300765843463450e-02
+-5.1265645953029675e-02
+-5.1230549176540324e-02
+-5.1195475501678148e-02
+-5.1160424917673211e-02
+-5.1125397414353672e-02
+-5.1090392982475412e-02
+-5.1055411612423773e-02
+-5.1020453285545879e-02
+-5.0985517974829003e-02
+-5.0950605654236571e-02
+-5.0915716309881370e-02
+-5.0880849934542567e-02
+-5.0846006520253874e-02
+-5.0811186054950719e-02
+-5.0776388525279013e-02
+-5.0741613915759688e-02
+-5.0706862204965876e-02
+-5.0672133370496801e-02
+-5.0637427393939990e-02
+-5.0602744263336427e-02
+-5.0568083967355328e-02
+-5.0533446495529766e-02
+-5.0498831838225455e-02
+-5.0464239984910120e-02
+-5.0429670915791668e-02
+-5.0395124605774701e-02
+-5.0360601031639723e-02
+-5.0326100180405751e-02
+-5.0291622042459308e-02
+-5.0257166607810683e-02
+-5.0222733865361517e-02
+-5.0188323803758240e-02
+-5.0153936407588709e-02
+-5.0119571654588822e-02
+-5.0085229522075385e-02
+-5.0050909992955472e-02
+-5.0016613055750739e-02
+-4.9982338699305927e-02
+-4.9948086913274785e-02
+-4.9913857687794584e-02
+-4.9879651011284068e-02
+-4.9845466862601440e-02
+-4.9811305217313244e-02
+-4.9777166054258845e-02
+-4.9743049362334438e-02
+-4.9708955132351934e-02
+-4.9674883354444414e-02
+-4.9640834017548915e-02
+-4.9606807110241083e-02
+-4.9572802615104890e-02
+-4.9538820508453658e-02
+-4.9504860767061461e-02
+-4.9470923376099908e-02
+-4.9437008325976924e-02
+-4.9403115607081147e-02
+-4.9369245209226607e-02
+-4.9335397122019231e-02
+-4.9301571332230607e-02
+-4.9267767817517488e-02
+-4.9233986553756305e-02
+-4.9200227521678089e-02
+-4.9166490710941993e-02
+-4.9132776112142229e-02
+-4.9099083715219045e-02
+-4.9065413509399511e-02
+-4.9031765483294375e-02
+-4.8998139618693815e-02
+-4.8964535892951640e-02
+-4.8930954284497098e-02
+-4.8897394778789953e-02
+-4.8863857363943962e-02
+-4.8830342028883485e-02
+-4.8796848765248181e-02
+-4.8763377565204248e-02
+-4.8729928415698565e-02
+-4.8696501293656075e-02
+-4.8663096175060289e-02
+-4.8629713041584963e-02
+-4.8596351881370736e-02
+-4.8563012683073448e-02
+-4.8529695437403049e-02
+-4.8496400136462878e-02
+-4.8463126770728712e-02
+-4.8429875320064195e-02
+-4.8396645760141771e-02
+-4.8363438069179997e-02
+-4.8330252234427530e-02
+-4.8297088245131924e-02
+-4.8263946091357764e-02
+-4.8230825764808041e-02
+-4.8197727257159678e-02
+-4.8164650553023255e-02
+-4.8131595628640091e-02
+-4.8098562460334768e-02
+-4.8065551031938672e-02
+-4.8032561332593177e-02
+-4.7999593351781777e-02
+-4.7966647080538632e-02
+-4.7933722510538498e-02
+-4.7900819630738022e-02
+-4.7867938420021211e-02
+-4.7835078854964290e-02
+-4.7802240915893995e-02
+-4.7769424590994009e-02
+-4.7736629869460263e-02
+-4.7703856741324616e-02
+-4.7671105197650804e-02
+-4.7638375228977396e-02
+-4.7605666817574041e-02
+-4.7572979939612084e-02
+-4.7540314572549328e-02
+-4.7507670703968621e-02
+-4.7475048325826719e-02
+-4.7442447429507373e-02
+-4.7409868004102497e-02
+-4.7377310038132489e-02
+-4.7344773517113053e-02
+-4.7312258419982475e-02
+-4.7279764724931374e-02
+-4.7247292414831978e-02
+-4.7214841478580162e-02
+-4.7182411905555333e-02
+-4.7150003686432566e-02
+-4.7117616812883081e-02
+-4.7085251275294393e-02
+-4.7052907054294595e-02
+-4.7020584126104700e-02
+-4.6988282469353930e-02
+-4.6956002072561710e-02
+-4.6923742926761533e-02
+-4.6891505022489427e-02
+-4.6859288349143109e-02
+-4.6827092895859908e-02
+-4.6794918647516448e-02
+-4.6762765583274718e-02
+-4.6730633682232195e-02
+-4.6698522928832503e-02
+-4.6666433311803542e-02
+-4.6634364820294094e-02
+-4.6602317445810150e-02
+-4.6570291180970072e-02
+-4.6538286015725822e-02
+-4.6506301928621381e-02
+-4.6474338895171247e-02
+-4.6442396894890089e-02
+-4.6410475916862828e-02
+-4.6378575951588397e-02
+-4.6346696990158018e-02
+-4.6314839024491093e-02
+-4.6283002046089372e-02
+-4.6251186038318751e-02
+-4.6219390977749776e-02
+-4.6187616841807264e-02
+-4.6155863616695506e-02
+-4.6124131292947172e-02
+-4.6092419861151000e-02
+-4.6060729312010482e-02
+-4.6029059636252950e-02
+-4.5997410821451715e-02
+-4.5965782847288028e-02
+-4.5934175692308170e-02
+-4.5902589339116513e-02
+-4.5871023776234421e-02
+-4.5839478992739519e-02
+-4.5807954979314378e-02
+-4.5776451728038653e-02
+-4.5744969229984035e-02
+-4.5713507467042780e-02
+-4.5682066416380486e-02
+-4.5650646056999693e-02
+-4.5619246376707071e-02
+-4.5587867365889843e-02
+-4.5556509014968709e-02
+-4.5525171314451142e-02
+-4.5493854254785103e-02
+-4.5462557822226815e-02
+-4.5431281996658558e-02
+-4.5400026757670471e-02
+-4.5368792089550761e-02
+-4.5337577980849364e-02
+-4.5306384420503373e-02
+-4.5275211399586228e-02
+-4.5244058910319969e-02
+-4.5212926942866362e-02
+-4.5181815477191870e-02
+-4.5150724490136671e-02
+-4.5119653962086358e-02
+-4.5088603883142474e-02
+-4.5057574245049380e-02
+-4.5026565039153484e-02
+-4.4995576256170039e-02
+-4.4964607886441986e-02
+-4.4933659913725048e-02
+-4.4902732315548227e-02
+-4.4871825070085448e-02
+-4.4840938164120790e-02
+-4.4810071589270931e-02
+-4.4779225337050844e-02
+-4.4748399398174044e-02
+-4.4717593763093227e-02
+-4.4686808419441677e-02
+-4.4656043346766462e-02
+-4.4625298523239584e-02
+-4.4594573931761930e-02
+-4.4563869563059223e-02
+-4.4533185408568807e-02
+-4.4502521459216113e-02
+-4.4471877705422297e-02
+-4.4441254136897201e-02
+-4.4410650736292766e-02
+-4.4380067482126674e-02
+-4.4349504354290879e-02
+-4.4318961340405590e-02
+-4.4288438430696193e-02
+-4.4257935615816847e-02
+-4.4227452887703536e-02
+-4.4196990238472234e-02
+-4.4166547655357567e-02
+-4.4136125117165741e-02
+-4.4105722602114095e-02
+-4.4075340094382638e-02
+-4.4044977584271471e-02
+-4.4014635062392476e-02
+-4.3984312519714783e-02
+-4.3954009947425848e-02
+-4.3923727335286759e-02
+-4.3893464664931055e-02
+-4.3863221915124866e-02
+-4.3832999067256094e-02
+-4.3802796110971529e-02
+-4.3772613037534561e-02
+-4.3742449837885847e-02
+-4.3712306502384349e-02
+-4.3682183021124595e-02
+-4.3652079378900671e-02
+-4.3621995554837527e-02
+-4.3591931528443241e-02
+-4.3561887286782716e-02
+-4.3531862821739188e-02
+-4.3501858125069480e-02
+-4.3471873187311681e-02
+-4.3441907998553117e-02
+-4.3411962546636776e-02
+-4.3382036812009708e-02
+-4.3352130773636220e-02
+-4.3322244414701942e-02
+-4.3292377726334486e-02
+-4.3262530700503073e-02
+-4.3232703328160399e-02
+-4.3202895599126233e-02
+-4.3173107502708620e-02
+-4.3143339022734879e-02
+-4.3113590139387412e-02
+-4.3083860833846792e-02
+-4.3054151093963017e-02
+-4.3024460910164618e-02
+-4.2994790273197997e-02
+-4.2965139174888457e-02
+-4.2935507607259005e-02
+-4.2905895557901884e-02
+-4.2876303005704657e-02
+-4.2846729928742160e-02
+-4.2817176311254548e-02
+-4.2787642144643111e-02
+-4.2758127420696852e-02
+-4.2728632131022286e-02
+-4.2699156267099393e-02
+-4.2669699819165269e-02
+-4.2640262769289089e-02
+-4.2610845096236583e-02
+-4.2581446781146448e-02
+-4.2552067813784442e-02
+-4.2522708185866800e-02
+-4.2493367888851982e-02
+-4.2464046913669513e-02
+-4.2434745251023656e-02
+-4.2405462886272505e-02
+-4.2376199798302573e-02
+-4.2346955966219180e-02
+-4.2317731377405889e-02
+-4.2288526025232455e-02
+-4.2259339902820318e-02
+-4.2230173000650337e-02
+-4.2201025308086414e-02
+-4.2171896812834758e-02
+-4.2142787496323254e-02
+-4.2113697338510038e-02
+-4.2084626322906236e-02
+-4.2055574440640522e-02
+-4.2026541683809406e-02
+-4.1997528043907176e-02
+-4.1968533511668210e-02
+-4.1939558077328694e-02
+-4.1910601724604007e-02
+-4.1881664432293735e-02
+-4.1852746180341745e-02
+-4.1823846957898141e-02
+-4.1794966758184234e-02
+-4.1766105573912603e-02
+-4.1737263395698949e-02
+-4.1708440213623979e-02
+-4.1679636014882886e-02
+-4.1650850780205355e-02
+-4.1622084489567106e-02
+-4.1593337127947279e-02
+-4.1564608686905258e-02
+-4.1535899158415525e-02
+-4.1507208533944899e-02
+-4.1478536804561227e-02
+-4.1449883960407073e-02
+-4.1421249984622120e-02
+-4.1392634857109305e-02
+-4.1364038559535722e-02
+-4.1335461081004339e-02
+-4.1306902412558764e-02
+-4.1278362545526741e-02
+-4.1249841471901638e-02
+-4.1221339183656197e-02
+-4.1192855667665534e-02
+-4.1164390903815726e-02
+-4.1135944871895043e-02
+-4.1107517558408926e-02
+-4.1079108955364721e-02
+-4.1050719054821827e-02
+-4.1022347847953111e-02
+-4.0993995325503303e-02
+-4.0965661476708985e-02
+-4.0937346284219238e-02
+-4.0909049728889139e-02
+-4.0880771794101718e-02
+-4.0852512469432702e-02
+-4.0824271745409688e-02
+-4.0796049613586551e-02
+-4.0767846066984234e-02
+-4.0739661098301572e-02
+-4.0711494692595322e-02
+-4.0683346828398588e-02
+-4.0655217485090586e-02
+-4.0627106651013059e-02
+-4.0599014319029042e-02
+-4.0570940481829895e-02
+-4.0542885131160167e-02
+-4.0514848258486252e-02
+-4.0486829852329688e-02
+-4.0458829893665831e-02
+-4.0430848362361133e-02
+-4.0402885242765127e-02
+-4.0374940525910237e-02
+-4.0347014203398708e-02
+-4.0319106267301952e-02
+-4.0291216710108692e-02
+-4.0263345523447652e-02
+-4.0235492691119840e-02
+-4.0207658192802545e-02
+-4.0179842009736150e-02
+-4.0152044130861160e-02
+-4.0124264547432592e-02
+-4.0096503251339850e-02
+-4.0068760236172209e-02
+-4.0041035495698714e-02
+-4.0013329017507801e-02
+-3.9985640779578537e-02
+-3.9957970759489030e-02
+-3.9930318943460677e-02
+-3.9902685325727702e-02
+-3.9875069900623096e-02
+-3.9847472660554453e-02
+-3.9819893596870382e-02
+-3.9792332699225851e-02
+-3.9764789948782263e-02
+-3.9737265324031774e-02
+-3.9709758807210400e-02
+-3.9682270391064714e-02
+-3.9654800070146205e-02
+-3.9627347837281772e-02
+-3.9599913682501264e-02
+-3.9572497595401650e-02
+-3.9545099561747232e-02
+-3.9517719563599854e-02
+-3.9490357583397556e-02
+-3.9463013608834641e-02
+-3.9435687630622884e-02
+-3.9408379639843304e-02
+-3.9381089629342100e-02
+-3.9353817592544971e-02
+-3.9326563519705836e-02
+-3.9299327391756664e-02
+-3.9272109187985828e-02
+-3.9244908892310054e-02
+-3.9217726496478325e-02
+-3.9190561992980828e-02
+-3.9163415373940157e-02
+-3.9136286631108852e-02
+-3.9109175755649386e-02
+-3.9082082732681378e-02
+-3.9055007543704355e-02
+-3.9027950171282015e-02
+-3.9000910604163601e-02
+-3.8973888833234903e-02
+-3.8946884849878710e-02
+-3.8919898647001377e-02
+-3.8892930217750123e-02
+-3.8865979550768918e-02
+-3.8839046626748981e-02
+-3.8812131425816097e-02
+-3.8785233934286192e-02
+-3.8758354144968296e-02
+-3.8731492050880882e-02
+-3.8704647643953247e-02
+-3.8677820915433973e-02
+-3.8651011855302557e-02
+-3.8624220446196678e-02
+-3.8597446668100381e-02
+-3.8570690504036061e-02
+-3.8543951946834965e-02
+-3.8517230991285262e-02
+-3.8490527630524997e-02
+-3.8463841854650307e-02
+-3.8437173653288172e-02
+-3.8410523012228366e-02
+-3.8383889913066356e-02
+-3.8357274337773244e-02
+-3.8330676275260864e-02
+-3.8304095718966064e-02
+-3.8277532662109322e-02
+-3.8250987096110745e-02
+-3.8224459011708893e-02
+-3.8197948397818302e-02
+-3.8171455237194556e-02
+-3.8144979511323299e-02
+-3.8118521205155374e-02
+-3.8092080310311319e-02
+-3.8065656819170270e-02
+-3.8039250724129829e-02
+-3.8012862017608666e-02
+-3.7986490691522344e-02
+-3.7960136731485010e-02
+-3.7933800118826286e-02
+-3.7907480835836102e-02
+-3.7881178871509595e-02
+-3.7854894217496764e-02
+-3.7828626865655468e-02
+-3.7802376808556366e-02
+-3.7776144038900894e-02
+-3.7749928545690294e-02
+-3.7723730310487723e-02
+-3.7697549314144485e-02
+-3.7671385543240406e-02
+-3.7645238991155648e-02
+-3.7619109651516373e-02
+-3.7592997515969125e-02
+-3.7566902574756929e-02
+-3.7540824817420299e-02
+-3.7514764228951995e-02
+-3.7488720792461398e-02
+-3.7462694492673053e-02
+-3.7436685320330516e-02
+-3.7410693267572778e-02
+-3.7384718326359909e-02
+-3.7358760488276188e-02
+-3.7332819744743270e-02
+-3.7306896083156862e-02
+-3.7280989485931719e-02
+-3.7255099935565993e-02
+-3.7229227420085331e-02
+-3.7203371931601330e-02
+-3.7177533462320958e-02
+-3.7151712004448383e-02
+-3.7125907550186570e-02
+-3.7100120089997420e-02
+-3.7074349607565962e-02
+-3.7048596084942938e-02
+-3.7022859507017045e-02
+-3.6997139864904591e-02
+-3.6971437150563009e-02
+-3.6945751356501473e-02
+-3.6920082475940676e-02
+-3.6894430501696919e-02
+-3.6868795419821562e-02
+-3.6843177211153016e-02
+-3.6817575857481792e-02
+-3.6791991348720098e-02
+-3.6766423678456610e-02
+-3.6740872839808182e-02
+-3.6715338823892010e-02
+-3.6689821621307885e-02
+-3.6664321220877358e-02
+-3.6638837607343225e-02
+-3.6613370764941609e-02
+-3.6587920680552943e-02
+-3.6562487344612468e-02
+-3.6537070747892662e-02
+-3.6511670882558328e-02
+-3.6486287741892630e-02
+-3.6460921318285426e-02
+-3.6435571596850617e-02
+-3.6410238559260219e-02
+-3.6384922188891743e-02
+-3.6359622476508410e-02
+-3.6334339414848899e-02
+-3.6309072996724430e-02
+-3.6283823215120171e-02
+-3.6258590062942367e-02
+-3.6233373528248500e-02
+-3.6208173592300233e-02
+-3.6182990236256984e-02
+-3.6157823448187160e-02
+-3.6132673221943044e-02
+-3.6107539551359251e-02
+-3.6082422428646913e-02
+-3.6057321845214825e-02
+-3.6032237791236238e-02
+-3.6007170251366190e-02
+-3.5982119208718411e-02
+-3.5957084648633973e-02
+-3.5932066562041350e-02
+-3.5907064940736394e-02
+-3.5882079776788513e-02
+-3.5857111062666903e-02
+-3.5832158790623167e-02
+-3.5807222948370472e-02
+-3.5782303519662509e-02
+-3.5757400488671098e-02
+-3.5732513844377825e-02
+-3.5707643578246843e-02
+-3.5682789681998034e-02
+-3.5657952148457010e-02
+-3.5633130970768576e-02
+-3.5608326139144900e-02
+-3.5583537636101448e-02
+-3.5558765442995403e-02
+-3.5534009546296728e-02
+-3.5509269940267867e-02
+-3.5484546619696827e-02
+-3.5459839576847278e-02
+-3.5435148801687799e-02
+-3.5410474283808037e-02
+-3.5385816010078133e-02
+-3.5361173965902611e-02
+-3.5336548137288058e-02
+-3.5311938513282390e-02
+-3.5287345083871637e-02
+-3.5262767840122333e-02
+-3.5238206776068065e-02
+-3.5213661886179470e-02
+-3.5189133160561367e-02
+-3.5164620582377938e-02
+-3.5140124134383340e-02
+-3.5115643803676343e-02
+-3.5091179581471912e-02
+-3.5066731459338016e-02
+-3.5042299430697726e-02
+-3.5017883490017762e-02
+-3.4993483630101886e-02
+-3.4969099835084547e-02
+-3.4944732086306086e-02
+-3.4920380367915227e-02
+-3.4896044672140067e-02
+-3.4871724992643391e-02
+-3.4847421322461818e-02
+-3.4823133653593442e-02
+-3.4798861977765806e-02
+-3.4774606282823160e-02
+-3.4750366552776031e-02
+-3.4726142771928301e-02
+-3.4701934929264683e-02
+-3.4677743016518207e-02
+-3.4653567025753430e-02
+-3.4629406950645508e-02
+-3.4605262785412053e-02
+-3.4581134521570966e-02
+-3.4557022142509490e-02
+-3.4532925630133056e-02
+-3.4508844969843466e-02
+-3.4484780153093759e-02
+-3.4460731171996453e-02
+-3.4436698020054203e-02
+-3.4412680692199694e-02
+-3.4388679182684873e-02
+-3.4364693477668608e-02
+-3.4340723558351723e-02
+-3.4316769407376956e-02
+-3.4292831016015220e-02
+-3.4268908378590153e-02
+-3.4245001488948469e-02
+-3.4221110339421434e-02
+-3.4197234922008643e-02
+-3.4173375225534812e-02
+-3.4149531233089628e-02
+-3.4125702927376135e-02
+-3.4101890296743598e-02
+-3.4078093335593980e-02
+-3.4054312038483796e-02
+-3.4030546398331335e-02
+-3.4006796407007919e-02
+-3.3983062055381409e-02
+-3.3959343328415867e-02
+-3.3935640208889228e-02
+-3.3911952681795927e-02
+-3.3888280739467688e-02
+-3.3864624375745084e-02
+-3.3840983583939180e-02
+-3.3817358356362397e-02
+-3.3793748685099982e-02
+-3.3770154558937428e-02
+-3.3746575962974076e-02
+-3.3723012882378098e-02
+-3.3699465305514105e-02
+-3.3675933222877361e-02
+-3.3652416625470000e-02
+-3.3628915507236415e-02
+-3.3605429863261156e-02
+-3.3581959686133561e-02
+-3.3558504959791666e-02
+-3.3535065666330161e-02
+-3.3511641791461454e-02
+-3.3488233328022456e-02
+-3.3464840269680080e-02
+-3.3441462610026590e-02
+-3.3418100342567363e-02
+-3.3394753460325229e-02
+-3.3371421950165223e-02
+-3.3348105794671935e-02
+-3.3324804977426507e-02
+-3.3301519489161990e-02
+-3.3278249323511255e-02
+-3.3254994474020881e-02
+-3.3231754933894075e-02
+-3.3208530696237769e-02
+-3.3185321751399016e-02
+-3.3162128084047768e-02
+-3.3138949678245232e-02
+-3.3115786521069897e-02
+-3.3092638603261018e-02
+-3.3069505916016338e-02
+-3.3046388453794401e-02
+-3.3023286213417109e-02
+-3.3000199190189303e-02
+-3.2977127368519432e-02
+-3.2954070728195617e-02
+-3.2931029251821342e-02
+-3.2908002932780074e-02
+-3.2884991767013372e-02
+-3.2861995749301542e-02
+-3.2839014871929140e-02
+-3.2816049126759811e-02
+-3.2793098502085852e-02
+-3.2770162981683365e-02
+-3.2747242549441322e-02
+-3.2724337195107756e-02
+-3.2701446912857791e-02
+-3.2678571696788491e-02
+-3.2655711539630136e-02
+-3.2632866433507136e-02
+-3.2610036369260152e-02
+-3.2587221332617440e-02
+-3.2564421308043150e-02
+-3.2541636282429773e-02
+-3.2518866248124320e-02
+-3.2496111198218151e-02
+-3.2473371125827107e-02
+-3.2450646024099306e-02
+-3.2427935885876752e-02
+-3.2405240699224930e-02
+-3.2382560448447208e-02
+-3.2359895118477450e-02
+-3.2337244699873195e-02
+-3.2314609185797587e-02
+-3.2291988569399847e-02
+-3.2269382843711530e-02
+-3.2246792001725054e-02
+-3.2224216034171339e-02
+-3.2201654926470771e-02
+-3.2179108663345099e-02
+-3.2156577232298700e-02
+-3.2134060624659830e-02
+-3.2111558832175667e-02
+-3.2089071848925524e-02
+-3.2066599670903286e-02
+-3.2044142293092021e-02
+-3.2021699701845804e-02
+-3.1999271879341325e-02
+-3.1976858809412936e-02
+-3.1954460483287886e-02
+-3.1932076894221485e-02
+-3.1909708035830160e-02
+-3.1887353902617072e-02
+-3.1865014489129352e-02
+-3.1842689785522703e-02
+-3.1820379775660740e-02
+-3.1798084443190829e-02
+-3.1775803776505560e-02
+-3.1753537768057484e-02
+-3.1731286410679370e-02
+-3.1709049699326801e-02
+-3.1686827630028815e-02
+-3.1664620196667735e-02
+-3.1642427383211061e-02
+-3.1620249170784508e-02
+-3.1598085543974266e-02
+-3.1575936496256916e-02
+-3.1553802022514101e-02
+-3.1531682117477387e-02
+-3.1509576775654115e-02
+-3.1487485991204552e-02
+-3.1465409752086143e-02
+-3.1443348040725669e-02
+-3.1421300840207715e-02
+-3.1399268141260733e-02
+-3.1377249938649709e-02
+-3.1355246227018213e-02
+-3.1333257000247999e-02
+-3.1311282251987003e-02
+-3.1289321973280652e-02
+-3.1267376148178649e-02
+-3.1245444759645854e-02
+-3.1223527795432887e-02
+-3.1201625250748388e-02
+-3.1179737121339240e-02
+-3.1157863400768249e-02
+-3.1136004080568862e-02
+-3.1114159151794784e-02
+-3.1092328601686051e-02
+-3.1070512415380194e-02
+-3.1048710579242404e-02
+-3.1026923085962336e-02
+-3.1005149930224771e-02
+-3.0983391105887964e-02
+-3.0961646604482345e-02
+-3.0939916417113272e-02
+-3.0918200533608910e-02
+-3.0896498941721161e-02
+-3.0874811629083856e-02
+-3.0853138584901508e-02
+-3.0831479799899392e-02
+-3.0809835265177981e-02
+-3.0788204974965375e-02
+-3.0766588925289419e-02
+-3.0744987110532522e-02
+-3.0723399516225894e-02
+-3.0701826124976614e-02
+-3.0680266922131459e-02
+-3.0658721901114384e-02
+-3.0637191056819439e-02
+-3.0615674383360429e-02
+-3.0594171873527719e-02
+-3.0572683519858340e-02
+-3.0551209311967087e-02
+-3.0529749236520461e-02
+-3.0508303280293539e-02
+-3.0486871432584387e-02
+-3.0465453684206060e-02
+-3.0444050026692364e-02
+-3.0422660455478073e-02
+-3.0401284967347002e-02
+-3.0379923555973316e-02
+-3.0358576205431535e-02
+-3.0337242898002444e-02
+-3.0315923620570975e-02
+-3.0294618368172283e-02
+-3.0273327136600657e-02
+-3.0252049919746889e-02
+-3.0230786709500562e-02
+-3.0209537497366774e-02
+-3.0188302271616913e-02
+-3.0167081018496512e-02
+-3.0145873724997871e-02
+-3.0124680382663006e-02
+-3.0103500984683115e-02
+-3.0082335524215114e-02
+-3.0061183994297691e-02
+-3.0040046387925318e-02
+-3.0018922696021376e-02
+-2.9997812905682198e-02
+-2.9976717003695131e-02
+-2.9955634979700628e-02
+-2.9934566826464865e-02
+-2.9913512536944357e-02
+-2.9892472104462831e-02
+-2.9871445522583952e-02
+-2.9850432783938438e-02
+-2.9829433875402080e-02
+-2.9808448781667701e-02
+-2.9787477489444623e-02
+-2.9766519992287591e-02
+-2.9745576285193226e-02
+-2.9724646362412968e-02
+-2.9703730216760534e-02
+-2.9682827840788798e-02
+-2.9661939224182969e-02
+-2.9641064353354302e-02
+-2.9620203214820180e-02
+-2.9599355798668726e-02
+-2.9578522097421543e-02
+-2.9557702103924249e-02
+-2.9536895812810642e-02
+-2.9516103219424168e-02
+-2.9495324316850629e-02
+-2.9474559090153049e-02
+-2.9453807522643385e-02
+-2.9433069601628156e-02
+-2.9412345322463083e-02
+-2.9391634681403843e-02
+-2.9370937672557076e-02
+-2.9350254287472489e-02
+-2.9329584517370583e-02
+-2.9308928351076572e-02
+-2.9288285775713501e-02
+-2.9267656778956441e-02
+-2.9247041352468667e-02
+-2.9226439489569239e-02
+-2.9205851183719853e-02
+-2.9185276428893136e-02
+-2.9164715219163757e-02
+-2.9144167545831504e-02
+-2.9123633394354885e-02
+-2.9103112749575402e-02
+-2.9082605600611596e-02
+-2.9062111941885790e-02
+-2.9041631768098979e-02
+-2.9021165073224109e-02
+-2.9000711850694715e-02
+-2.8980272093264314e-02
+-2.8959845788930905e-02
+-2.8939432923628060e-02
+-2.8919033484561697e-02
+-2.8898647463935983e-02
+-2.8878274855176144e-02
+-2.8857915652089259e-02
+-2.8837569849322394e-02
+-2.8817237441524271e-02
+-2.8796918419108895e-02
+-2.8776612767016676e-02
+-2.8756320470192467e-02
+-2.8736041519107591e-02
+-2.8715775908501728e-02
+-2.8695523633076082e-02
+-2.8675284686414233e-02
+-2.8655059061592610e-02
+-2.8634846750714784e-02
+-2.8614647741913902e-02
+-2.8594462022313125e-02
+-2.8574289580359909e-02
+-2.8554130407546743e-02
+-2.8533984495839007e-02
+-2.8513851839166052e-02
+-2.8493732434103566e-02
+-2.8473626276973380e-02
+-2.8453533357038371e-02
+-2.8433453657878627e-02
+-2.8413387163824341e-02
+-2.8393333866396118e-02
+-2.8373293760524214e-02
+-2.8353266840970417e-02
+-2.8333253101685697e-02
+-2.8313252536397764e-02
+-2.8293265137045883e-02
+-2.8273290891269433e-02
+-2.8253329786116173e-02
+-2.8233381810565922e-02
+-2.8213446956312668e-02
+-2.8193525215404910e-02
+-2.8173616582472576e-02
+-2.8153721054311551e-02
+-2.8133838626750087e-02
+-2.8113969287019629e-02
+-2.8094113018092882e-02
+-2.8074269804982913e-02
+-2.8054439642019032e-02
+-2.8034622526145709e-02
+-2.8014818452931495e-02
+-2.7995027414484605e-02
+-2.7975249402352173e-02
+-2.7955484406749265e-02
+-2.7935732415939683e-02
+-2.7915993418156475e-02
+-2.7896267403907452e-02
+-2.7876554365689546e-02
+-2.7856854296287335e-02
+-2.7837167190416678e-02
+-2.7817493043792680e-02
+-2.7797831850491575e-02
+-2.7778183596818291e-02
+-2.7758548266794223e-02
+-2.7738925847566862e-02
+-2.7719316334509397e-02
+-2.7699719724297096e-02
+-2.7680136011603573e-02
+-2.7660565188044627e-02
+-2.7641007244920652e-02
+-2.7621462172406869e-02
+-2.7601929959653188e-02
+-2.7582410595939924e-02
+-2.7562904072097470e-02
+-2.7543410379793576e-02
+-2.7523929511209456e-02
+-2.7504461461026430e-02
+-2.7485006224694509e-02
+-2.7465563795400251e-02
+-2.7446134160096988e-02
+-2.7426717304726223e-02
+-2.7407313218583293e-02
+-2.7387921896307801e-02
+-2.7368543332967874e-02
+-2.7349177522609996e-02
+-2.7329824458310503e-02
+-2.7310484132713388e-02
+-2.7291156534623915e-02
+-2.7271841650682600e-02
+-2.7252539468535186e-02
+-2.7233249981171471e-02
+-2.7213973183309630e-02
+-2.7194709069472356e-02
+-2.7175457633616260e-02
+-2.7156218869560645e-02
+-2.7136992768501393e-02
+-2.7117779317273018e-02
+-2.7098578502476274e-02
+-2.7079390314732166e-02
+-2.7060214748639708e-02
+-2.7041051798912273e-02
+-2.7021901459693930e-02
+-2.7002763724793686e-02
+-2.6983638587138942e-02
+-2.6964526034878991e-02
+-2.6945426054545536e-02
+-2.6926338634403260e-02
+-2.6907263767952497e-02
+-2.6888201449678961e-02
+-2.6869151674172663e-02
+-2.6850114436204567e-02
+-2.6831089730384537e-02
+-2.6812077546965643e-02
+-2.6793077871708752e-02
+-2.6774090690662198e-02
+-2.6755115995245764e-02
+-2.6736153780177668e-02
+-2.6717204040204050e-02
+-2.6698266769956663e-02
+-2.6679341964026000e-02
+-2.6660429615211558e-02
+-2.6641529710649248e-02
+-2.6622642236392727e-02
+-2.6603767181783172e-02
+-2.6584904542114547e-02
+-2.6566054313242368e-02
+-2.6547216489296813e-02
+-2.6528391062554307e-02
+-2.6509578025040451e-02
+-2.6490777366945491e-02
+-2.6471989077283962e-02
+-2.6453213145372360e-02
+-2.6434449562454582e-02
+-2.6415698320490403e-02
+-2.6396959412415454e-02
+-2.6378232834394971e-02
+-2.6359518583228245e-02
+-2.6340816651977919e-02
+-2.6322127026643081e-02
+-2.6303449692582768e-02
+-2.6284784639285332e-02
+-2.6266131860862449e-02
+-2.6247491351766950e-02
+-2.6228863107632245e-02
+-2.6210247124880532e-02
+-2.6191643398710683e-02
+-2.6173051916520963e-02
+-2.6154472662678882e-02
+-2.6135905623682711e-02
+-2.6117350793453547e-02
+-2.6098808167522095e-02
+-2.6080277741337088e-02
+-2.6061759510185464e-02
+-2.6043253469189807e-02
+-2.6024759608980010e-02
+-2.6006277914943848e-02
+-2.5987808372669837e-02
+-2.5969350974176530e-02
+-2.5950905715962536e-02
+-2.5932472594268098e-02
+-2.5914051603019697e-02
+-2.5895642735203304e-02
+-2.5877245982832288e-02
+-2.5858861334389398e-02
+-2.5840488777566905e-02
+-2.5822128301976447e-02
+-2.5803779901187346e-02
+-2.5785443569269928e-02
+-2.5767119300713705e-02
+-2.5748807090517956e-02
+-2.5730506933407893e-02
+-2.5712218819921903e-02
+-2.5693942737556864e-02
+-2.5675678674260502e-02
+-2.5657426621594696e-02
+-2.5639186572657600e-02
+-2.5620958521116295e-02
+-2.5602742462787605e-02
+-2.5584538393984387e-02
+-2.5566346307977297e-02
+-2.5548166191482841e-02
+-2.5529998030475055e-02
+-2.5511841814950122e-02
+-2.5493697540002178e-02
+-2.5475565201001645e-02
+-2.5457444792560405e-02
+-2.5439336308715890e-02
+-2.5421239742909298e-02
+-2.5403155084322376e-02
+-2.5385082320244001e-02
+-2.5367021439220261e-02
+-2.5348972434862116e-02
+-2.5330935302047022e-02
+-2.5312910035614682e-02
+-2.5294896630319839e-02
+-2.5276895080833296e-02
+-2.5258905378904885e-02
+-2.5240927512425265e-02
+-2.5222961469200125e-02
+-2.5205007239826636e-02
+-2.5187064817105666e-02
+-2.5169134194232466e-02
+-2.5151215366977515e-02
+-2.5133308332307383e-02
+-2.5115413085472497e-02
+-2.5097529614495791e-02
+-2.5079657905512868e-02
+-2.5061797946785324e-02
+-2.5043949731579491e-02
+-2.5026113253905267e-02
+-2.5008288508838867e-02
+-2.4990475492925192e-02
+-2.4972674202487052e-02
+-2.4954884628391752e-02
+-2.4937106757017682e-02
+-2.4919340575197440e-02
+-2.4901586074528099e-02
+-2.4883843248918812e-02
+-2.4866112092719793e-02
+-2.4848392602154268e-02
+-2.4830684773952217e-02
+-2.4812988602023824e-02
+-2.4795304073337396e-02
+-2.4777631173885695e-02
+-2.4759969893286347e-02
+-2.4742320226362732e-02
+-2.4724682168321022e-02
+-2.4707055714013135e-02
+-2.4689440857987192e-02
+-2.4671837594305898e-02
+-2.4654245912970538e-02
+-2.4636665801923689e-02
+-2.4619097250100589e-02
+-2.4601540251089567e-02
+-2.4583994799819091e-02
+-2.4566460890903415e-02
+-2.4548938518147313e-02
+-2.4531427675194013e-02
+-2.4513928353878833e-02
+-2.4496440543329522e-02
+-2.4478964232605867e-02
+-2.4461499413688751e-02
+-2.4444046081169540e-02
+-2.4426604229660982e-02
+-2.4409173853141307e-02
+-2.4391754945252878e-02
+-2.4374347499034686e-02
+-2.4356951504621523e-02
+-2.4339566951272779e-02
+-2.4322193829245810e-02
+-2.4304832131487895e-02
+-2.4287481851408561e-02
+-2.4270142983255590e-02
+-2.4252815522586128e-02
+-2.4235499464879431e-02
+-2.4218194801722829e-02
+-2.4200901521079225e-02
+-2.4183619611192947e-02
+-2.4166349064293206e-02
+-2.4149089874811309e-02
+-2.4131842037344579e-02
+-2.4114605547215104e-02
+-2.4097380399972019e-02
+-2.4080166589230123e-02
+-2.4062964103147351e-02
+-2.4045772928963809e-02
+-2.4028593056503345e-02
+-2.4011424479799967e-02
+-2.3994267193316082e-02
+-2.3977121192410814e-02
+-2.3959986473313506e-02
+-2.3942863031744283e-02
+-2.3925750857957749e-02
+-2.3908649939056087e-02
+-2.3891560263003316e-02
+-2.3874481822554239e-02
+-2.3857414612052045e-02
+-2.3840358626358721e-02
+-2.3823313861865612e-02
+-2.3806280315195220e-02
+-2.3789257979078805e-02
+-2.3772246839631757e-02
+-2.3755246882573626e-02
+-2.3738258099432755e-02
+-2.3721280487611449e-02
+-2.3704314044521013e-02
+-2.3687358764907171e-02
+-2.3670414641911299e-02
+-2.3653481668070308e-02
+-2.3636559832667037e-02
+-2.3619649123855658e-02
+-2.3602749531467532e-02
+-2.3585861050526211e-02
+-2.3568983677049442e-02
+-2.3552117406449545e-02
+-2.3535262233064583e-02
+-2.3518418151008288e-02
+-2.3501585151507919e-02
+-2.3484763222749182e-02
+-2.3467952353155207e-02
+-2.3451152535435782e-02
+-2.3434363764992444e-02
+-2.3417586037096903e-02
+-2.3400819346015261e-02
+-2.3384063685647955e-02
+-2.3367319049076411e-02
+-2.3350585426729267e-02
+-2.3333862808511397e-02
+-2.3317151185634100e-02
+-2.3300450551728458e-02
+-2.3283760900714358e-02
+-2.3267082227237584e-02
+-2.3250414526740999e-02
+-2.3233757794338006e-02
+-2.3217112020748363e-02
+-2.3200477193814042e-02
+-2.3183853302121481e-02
+-2.3167240339148892e-02
+-2.3150638300234939e-02
+-2.3134047180551832e-02
+-2.3117466974694124e-02
+-2.3100897677122912e-02
+-2.3084339280996208e-02
+-2.3067791776951882e-02
+-2.3051255155359274e-02
+-2.3034729407168213e-02
+-2.3018214523992747e-02
+-2.3001710497788617e-02
+-2.2985217324351739e-02
+-2.2968735002101188e-02
+-2.2952263528284080e-02
+-2.2935802892238559e-02
+-2.2919353080155767e-02
+-2.2902914080095489e-02
+-2.2886485886798657e-02
+-2.2870068496490054e-02
+-2.2853661905076338e-02
+-2.2837266107821576e-02
+-2.2820881099795607e-02
+-2.2804506872292445e-02
+-2.2788143412103369e-02
+-2.2771790706241586e-02
+-2.2755448748201713e-02
+-2.2739117536094883e-02
+-2.2722797067577308e-02
+-2.2706487336539433e-02
+-2.2690188335304423e-02
+-2.2673900055871492e-02
+-2.2657622489050122e-02
+-2.2641355625377224e-02
+-2.2625099456211214e-02
+-2.2608853974644020e-02
+-2.2592619174031638e-02
+-2.2576395049288329e-02
+-2.2560181597265128e-02
+-2.2543978814575857e-02
+-2.2527786692754032e-02
+-2.2511605219560551e-02
+-2.2495434383293225e-02
+-2.2479274176725766e-02
+-2.2463124594579682e-02
+-2.2446985631945190e-02
+-2.2430857285323930e-02
+-2.2414739551548313e-02
+-2.2398632424559969e-02
+-2.2382535891925976e-02
+-2.2366449940462552e-02
+-2.2350374560854300e-02
+-2.2334309748797410e-02
+-2.2318255500295158e-02
+-2.2302211810951357e-02
+-2.2286178676060572e-02
+-2.2270156090374596e-02
+-2.2254144044625616e-02
+-2.2238142527717365e-02
+-2.2222151529439127e-02
+-2.2206171043251000e-02
+-2.2190201063557048e-02
+-2.2174241585437945e-02
+-2.2158292605533963e-02
+-2.2142354120609633e-02
+-2.2126426123404031e-02
+-2.2110508601219801e-02
+-2.2094601541252295e-02
+-2.2078704935161054e-02
+-2.2062818778207739e-02
+-2.2046943065938320e-02
+-2.2031077795335301e-02
+-2.2015222964064021e-02
+-2.1999378567894030e-02
+-2.1983544594422151e-02
+-2.1967721029058918e-02
+-2.1951907860551963e-02
+-2.1936105085692055e-02
+-2.1920312702425098e-02
+-2.1904530707184060e-02
+-2.1888759094271643e-02
+-2.1872997857665073e-02
+-2.1857246988506818e-02
+-2.1841506475555394e-02
+-2.1825776308082568e-02
+-2.1810056480254768e-02
+-2.1794346988669003e-02
+-2.1778647829488001e-02
+-2.1762958996836387e-02
+-2.1747280484261913e-02
+-2.1731612284317272e-02
+-2.1715954387046751e-02
+-2.1700306782153209e-02
+-2.1684669461822591e-02
+-2.1669042421886581e-02
+-2.1653425658423011e-02
+-2.1637819166686761e-02
+-2.1622222941211439e-02
+-2.1606636976122778e-02
+-2.1591061262179540e-02
+-2.1575495788394298e-02
+-2.1559940544627159e-02
+-2.1544395524817239e-02
+-2.1528860724109086e-02
+-2.1513336137936181e-02
+-2.1497821762493666e-02
+-2.1482317594048245e-02
+-2.1466823625814931e-02
+-2.1451339846335963e-02
+-2.1435866243979078e-02
+-2.1420402811449399e-02
+-2.1404949545413474e-02
+-2.1389506442446634e-02
+-2.1374073496932804e-02
+-2.1358650702069260e-02
+-2.1343238050724023e-02
+-2.1327835534189626e-02
+-2.1312443143272269e-02
+-2.1297060869730152e-02
+-2.1281688707949963e-02
+-2.1266326652772765e-02
+-2.1250974699341747e-02
+-2.1235632843282670e-02
+-2.1220301080091888e-02
+-2.1204979401627480e-02
+-2.1189667796284863e-02
+-2.1174366252866492e-02
+-2.1159074765496153e-02
+-2.1143793331305550e-02
+-2.1128521947098588e-02
+-2.1113260607795826e-02
+-2.1098009307705844e-02
+-2.1082768039843602e-02
+-2.1067536793486299e-02
+-2.1052315557281067e-02
+-2.1037104322905734e-02
+-2.1021903087088425e-02
+-2.1006711846962543e-02
+-2.0991530598004050e-02
+-2.0976359334045149e-02
+-2.0961198048673708e-02
+-2.0946046733682149e-02
+-2.0930905379803771e-02
+-2.0915773978251225e-02
+-2.0900652522929646e-02
+-2.0885541008658765e-02
+-2.0870439430452220e-02
+-2.0855347783908251e-02
+-2.0840266064703794e-02
+-2.0825194265882790e-02
+-2.0810132375910714e-02
+-2.0795080382994272e-02
+-2.0780038280213263e-02
+-2.0765006065683468e-02
+-2.0749983737437704e-02
+-2.0734971290069997e-02
+-2.0719968716057770e-02
+-2.0704976007801548e-02
+-2.0689993157438510e-02
+-2.0675020157012326e-02
+-2.0660056998913674e-02
+-2.0645103676633785e-02
+-2.0630160183889534e-02
+-2.0615226515168561e-02
+-2.0600302666357428e-02
+-2.0585388633393209e-02
+-2.0570484409645089e-02
+-2.0555589985716952e-02
+-2.0540705352240441e-02
+-2.0525830501748710e-02
+-2.0510965427995829e-02
+-2.0496110125138165e-02
+-2.0481264589631881e-02
+-2.0466428818788851e-02
+-2.0451602808058439e-02
+-2.0436786546697838e-02
+-2.0421980022706447e-02
+-2.0407183227011655e-02
+-2.0392396156089076e-02
+-2.0377618806994471e-02
+-2.0362851175687442e-02
+-2.0348093256897473e-02
+-2.0333345045061877e-02
+-2.0318606531841588e-02
+-2.0303877707038263e-02
+-2.0289158560990866e-02
+-2.0274449087649964e-02
+-2.0259749282372942e-02
+-2.0245059140841820e-02
+-2.0230378659857853e-02
+-2.0215707836442564e-02
+-2.0201046664618898e-02
+-2.0186395132476265e-02
+-2.0171753227544699e-02
+-2.0157120941636238e-02
+-2.0142498271570587e-02
+-2.0127885214366880e-02
+-2.0113281765944332e-02
+-2.0098687921454049e-02
+-2.0084103675586287e-02
+-2.0069529020075746e-02
+-2.0054963945452850e-02
+-2.0040408443008664e-02
+-2.0025862506823290e-02
+-2.0011326131615582e-02
+-1.9996799312510499e-02
+-1.9982282045472425e-02
+-1.9967774326481568e-02
+-1.9953276148538215e-02
+-1.9938787501010660e-02
+-1.9924308373346439e-02
+-1.9909838759117865e-02
+-1.9895378654900632e-02
+-1.9880928057202183e-02
+-1.9866486961579444e-02
+-1.9852055363184323e-02
+-1.9837633256419532e-02
+-1.9823220632826943e-02
+-1.9808817483268459e-02
+-1.9794423799377504e-02
+-1.9780039574453675e-02
+-1.9765664802061718e-02
+-1.9751299477541978e-02
+-1.9736943598490465e-02
+-1.9722597162326973e-02
+-1.9708260161754206e-02
+-1.9693932585894230e-02
+-1.9679614424342257e-02
+-1.9665305670820935e-02
+-1.9651006320891579e-02
+-1.9636716370323101e-02
+-1.9622435815683292e-02
+-1.9608164653729433e-02
+-1.9593902878796064e-02
+-1.9579650479749144e-02
+-1.9565407444800075e-02
+-1.9551173766028621e-02
+-1.9536949440637122e-02
+-1.9522734466098448e-02
+-1.9508528838609044e-02
+-1.9494332553355385e-02
+-1.9480145605062810e-02
+-1.9465967985108849e-02
+-1.9451799683312353e-02
+-1.9437640690334188e-02
+-1.9423491000413583e-02
+-1.9409350608732726e-02
+-1.9395219511095262e-02
+-1.9381097704771394e-02
+-1.9366985187160905e-02
+-1.9352881951999690e-02
+-1.9338787987965532e-02
+-1.9324703283615127e-02
+-1.9310627831643449e-02
+-1.9296561628158338e-02
+-1.9282504669472178e-02
+-1.9268456952731178e-02
+-1.9254418475487155e-02
+-1.9240389233694682e-02
+-1.9226369216251610e-02
+-1.9212358410119743e-02
+-1.9198356805368286e-02
+-1.9184364399735442e-02
+-1.9170381192079703e-02
+-1.9156407179183293e-02
+-1.9142442354839740e-02
+-1.9128486712566173e-02
+-1.9114540245091245e-02
+-1.9100602944465889e-02
+-1.9086674802828201e-02
+-1.9072755813251702e-02
+-1.9058845969285216e-02
+-1.9044945265256269e-02
+-1.9031053699076608e-02
+-1.9017171269686797e-02
+-1.9003297972960839e-02
+-1.8989433796855460e-02
+-1.8975578728149017e-02
+-1.8961732758149892e-02
+-1.8947895884966440e-02
+-1.8934068107160876e-02
+-1.8920249421281357e-02
+-1.8906439822072060e-02
+-1.8892639303928316e-02
+-1.8878847858671575e-02
+-1.8865065476757616e-02
+-1.8851292149414139e-02
+-1.8837527871673948e-02
+-1.8823772639721629e-02
+-1.8810026449549246e-02
+-1.8796289296628049e-02
+-1.8782561176310553e-02
+-1.8768842081997399e-02
+-1.8755132004033288e-02
+-1.8741430932664917e-02
+-1.8727738861572283e-02
+-1.8714055787640006e-02
+-1.8700381707758354e-02
+-1.8686716617702989e-02
+-1.8673060512632161e-02
+-1.8659413387048643e-02
+-1.8645775232153539e-02
+-1.8632146038102364e-02
+-1.8618525796634217e-02
+-1.8604914503967885e-02
+-1.8591312157098448e-02
+-1.8577718752323193e-02
+-1.8564134284799732e-02
+-1.8550558749479924e-02
+-1.8536992139113768e-02
+-1.8523434444309650e-02
+-1.8509885655893340e-02
+-1.8496345767767479e-02
+-1.8482814775613601e-02
+-1.8469292675311607e-02
+-1.8455779463684908e-02
+-1.8442275137869030e-02
+-1.8428779693171995e-02
+-1.8415293119489560e-02
+-1.8401815405758071e-02
+-1.8388346543877797e-02
+-1.8374886530800060e-02
+-1.8361435363909148e-02
+-1.8347993039181720e-02
+-1.8334559551167778e-02
+-1.8321134894232101e-02
+-1.8307719061446098e-02
+-1.8294312045100885e-02
+-1.8280913837771931e-02
+-1.8267524433687805e-02
+-1.8254143827652506e-02
+-1.8240772014763793e-02
+-1.8227408991028725e-02
+-1.8214054752610068e-02
+-1.8200709293868873e-02
+-1.8187372605961726e-02
+-1.8174044679814726e-02
+-1.8160725508887619e-02
+-1.8147415089316003e-02
+-1.8134113417272370e-02
+-1.8120820487903797e-02
+-1.8107536295711955e-02
+-1.8094260835064886e-02
+-1.8080994099603908e-02
+-1.8067736082705590e-02
+-1.8054486777724026e-02
+-1.8041246177941492e-02
+-1.8028014276642024e-02
+-1.8014791068797387e-02
+-1.8001576552512808e-02
+-1.7988370726072588e-02
+-1.7975173583315695e-02
+-1.7961985113188847e-02
+-1.7948805304795427e-02
+-1.7935634152095207e-02
+-1.7922471652236208e-02
+-1.7909317802245830e-02
+-1.7896172598062955e-02
+-1.7883036035211321e-02
+-1.7869908108326518e-02
+-1.7856788809022556e-02
+-1.7843678128285443e-02
+-1.7830576058856351e-02
+-1.7817482596879014e-02
+-1.7804397738877695e-02
+-1.7791321481091964e-02
+-1.7778253819434889e-02
+-1.7765194749544150e-02
+-1.7752144263808889e-02
+-1.7739102352394075e-02
+-1.7726069006093775e-02
+-1.7713044220063114e-02
+-1.7700027991196854e-02
+-1.7687020316087158e-02
+-1.7674021190229965e-02
+-1.7661030608870362e-02
+-1.7648048566352496e-02
+-1.7635075055196386e-02
+-1.7622110067729079e-02
+-1.7609153597166770e-02
+-1.7596205637788423e-02
+-1.7583266184079661e-02
+-1.7570335232457646e-02
+-1.7557412780718477e-02
+-1.7544498825952371e-02
+-1.7531593360235347e-02
+-1.7518696373551395e-02
+-1.7505807856891382e-02
+-1.7492927805039703e-02
+-1.7480056213671123e-02
+-1.7467193079005940e-02
+-1.7454338398418388e-02
+-1.7441492169337328e-02
+-1.7428654385923992e-02
+-1.7415825038269016e-02
+-1.7403004116467429e-02
+-1.7390191614308464e-02
+-1.7377387528330963e-02
+-1.7364591855141061e-02
+-1.7351804591357645e-02
+-1.7339025733605181e-02
+-1.7326255277337312e-02
+-1.7313493213414435e-02
+-1.7300739531582246e-02
+-1.7287994223931156e-02
+-1.7275257287734578e-02
+-1.7262528720917079e-02
+-1.7249808519744166e-02
+-1.7237096678327103e-02
+-1.7224393190617443e-02
+-1.7211698050327132e-02
+-1.7199011250982197e-02
+-1.7186332786119501e-02
+-1.7173662649394190e-02
+-1.7161000834515355e-02
+-1.7148347336051271e-02
+-1.7135702152103163e-02
+-1.7123065281668910e-02
+-1.7110436720852787e-02
+-1.7097816459072764e-02
+-1.7085204484895578e-02
+-1.7072600790742888e-02
+-1.7060005374254502e-02
+-1.7047418233342160e-02
+-1.7034839364323300e-02
+-1.7022268762226005e-02
+-1.7009706421810239e-02
+-1.6997152336001846e-02
+-1.6984606496852725e-02
+-1.6972068897017030e-02
+-1.6959539531769457e-02
+-1.6947018397091694e-02
+-1.6934505489178294e-02
+-1.6922000804738116e-02
+-1.6909504340496130e-02
+-1.6897016090345360e-02
+-1.6884536044182146e-02
+-1.6872064191872701e-02
+-1.6859600527959068e-02
+-1.6847145050924519e-02
+-1.6834697759046790e-02
+-1.6822258647856272e-02
+-1.6809827711515807e-02
+-1.6797404943864593e-02
+-1.6784990337323294e-02
+-1.6772583883914942e-02
+-1.6760185576943726e-02
+-1.6747795412951662e-02
+-1.6735413388971044e-02
+-1.6723039501333234e-02
+-1.6710673745338096e-02
+-1.6698316116114314e-02
+-1.6685966607160256e-02
+-1.6673625210542161e-02
+-1.6661291918557135e-02
+-1.6648966725964148e-02
+-1.6636649628802010e-02
+-1.6624340623176418e-02
+-1.6612039705458322e-02
+-1.6599746872094635e-02
+-1.6587462118141799e-02
+-1.6575185434979482e-02
+-1.6562916813426996e-02
+-1.6550656246662913e-02
+-1.6538403731486778e-02
+-1.6526159264981286e-02
+-1.6513922843752804e-02
+-1.6501694463971640e-02
+-1.6489474121448643e-02
+-1.6477261808805675e-02
+-1.6465057516933619e-02
+-1.6452861237531893e-02
+-1.6440672966407169e-02
+-1.6428492700640437e-02
+-1.6416320437089009e-02
+-1.6404156171990068e-02
+-1.6391999901445849e-02
+-1.6379851619686411e-02
+-1.6367711317944577e-02
+-1.6355578987319239e-02
+-1.6343454621773491e-02
+-1.6331338218002582e-02
+-1.6319229772830048e-02
+-1.6307129283269023e-02
+-1.6295036746440072e-02
+-1.6282952158561730e-02
+-1.6270875511139250e-02
+-1.6258806794147061e-02
+-1.6246745999174278e-02
+-1.6234693122490935e-02
+-1.6222648161208719e-02
+-1.6210611112346542e-02
+-1.6198581972768328e-02
+-1.6186560739193914e-02
+-1.6174547405399722e-02
+-1.6162541962236446e-02
+-1.6150544400795264e-02
+-1.6138554715960297e-02
+-1.6126572904858388e-02
+-1.6114598964494426e-02
+-1.6102632891045639e-02
+-1.6090674680406879e-02
+-1.6078724327572246e-02
+-1.6066781824803304e-02
+-1.6054847163865796e-02
+-1.6042920338254139e-02
+-1.6031001344475816e-02
+-1.6019090179329714e-02
+-1.6007186839341804e-02
+-1.5995291320755389e-02
+-1.5983403619507737e-02
+-1.5971523728329117e-02
+-1.5959651637971251e-02
+-1.5947787339972354e-02
+-1.5935930830557804e-02
+-1.5924082107623902e-02
+-1.5912241168589858e-02
+-1.5900408009351864e-02
+-1.5888582625492392e-02
+-1.5876765011454210e-02
+-1.5864955159606644e-02
+-1.5853153062159363e-02
+-1.5841358712914970e-02
+-1.5829572107395384e-02
+-1.5817793241319430e-02
+-1.5806022111697664e-02
+-1.5794258716371946e-02
+-1.5782503052439948e-02
+-1.5770755112426291e-02
+-1.5759014887149227e-02
+-1.5747282368459417e-02
+-1.5735557551655878e-02
+-1.5723840432759009e-02
+-1.5712131008273355e-02
+-1.5700429275623040e-02
+-1.5688735232243452e-02
+-1.5677048872941492e-02
+-1.5665370189567707e-02
+-1.5653699173996123e-02
+-1.5642035820321448e-02
+-1.5630380124128981e-02
+-1.5618732081298563e-02
+-1.5607091689401737e-02
+-1.5595458946670498e-02
+-1.5583833849626265e-02
+-1.5572216388813958e-02
+-1.5560606553499119e-02
+-1.5549004336072368e-02
+-1.5537409735123010e-02
+-1.5525822749895831e-02
+-1.5514243377293600e-02
+-1.5502671611473945e-02
+-1.5491107446449407e-02
+-1.5479550876379467e-02
+-1.5468001895526462e-02
+-1.5456460498169098e-02
+-1.5444926678680991e-02
+-1.5433400431474538e-02
+-1.5421881751557530e-02
+-1.5410370636115996e-02
+-1.5398867082824183e-02
+-1.5387371087827598e-02
+-1.5375882644104302e-02
+-1.5364401744266882e-02
+-1.5352928381871642e-02
+-1.5341462551627737e-02
+-1.5330004248437307e-02
+-1.5318553468901380e-02
+-1.5307110210860826e-02
+-1.5295674471601184e-02
+-1.5284246244324302e-02
+-1.5272825520487601e-02
+-1.5261412292412350e-02
+-1.5250006555758911e-02
+-1.5238608306990182e-02
+-1.5227217542926937e-02
+-1.5215834261164711e-02
+-1.5204458459318280e-02
+-1.5193090131953090e-02
+-1.5181729269751941e-02
+-1.5170375863426087e-02
+-1.5159029907806038e-02
+-1.5147691400856311e-02
+-1.5136360340366289e-02
+-1.5125036722258565e-02
+-1.5113720541622090e-02
+-1.5102411793332382e-02
+-1.5091110471422068e-02
+-1.5079816569713729e-02
+-1.5068530082449606e-02
+-1.5057251004821534e-02
+-1.5045979332169763e-02
+-1.5034715060563192e-02
+-1.5023458187037842e-02
+-1.5012208708494684e-02
+-1.5000966618675586e-02
+-1.4989731908817064e-02
+-1.4978504570680968e-02
+-1.4967284600630513e-02
+-1.4956071997176424e-02
+-1.4944866758300580e-02
+-1.4933668879703467e-02
+-1.4922478356482465e-02
+-1.4911295183231520e-02
+-1.4900119353353652e-02
+-1.4888950860095829e-02
+-1.4877789697431110e-02
+-1.4866635860337249e-02
+-1.4855489343980762e-02
+-1.4844350145448874e-02
+-1.4833218263416452e-02
+-1.4822093695969936e-02
+-1.4810976436009426e-02
+-1.4799866473906059e-02
+-1.4788763801095537e-02
+-1.4777668413796468e-02
+-1.4766580309548773e-02
+-1.4755499485769107e-02
+-1.4744425939569050e-02
+-1.4733359667972354e-02
+-1.4722300665936444e-02
+-1.4711248925437509e-02
+-1.4700204438354169e-02
+-1.4689167198965783e-02
+-1.4678137203619861e-02
+-1.4667114448803713e-02
+-1.4656098931624536e-02
+-1.4645090649505253e-02
+-1.4634089599008393e-02
+-1.4623095772695069e-02
+-1.4612109161970629e-02
+-1.4601129759757411e-02
+-1.4590157562904337e-02
+-1.4579192568878657e-02
+-1.4568234774674118e-02
+-1.4557284176572031e-02
+-1.4546340770693897e-02
+-1.4535404551234097e-02
+-1.4524475510656961e-02
+-1.4513553641703847e-02
+-1.4502638940181046e-02
+-1.4491731403524956e-02
+-1.4480831028892926e-02
+-1.4469937812011760e-02
+-1.4459051748173288e-02
+-1.4448172832214109e-02
+-1.4437301057738114e-02
+-1.4426436418164918e-02
+-1.4415578908303655e-02
+-1.4404728525144026e-02
+-1.4393885265822342e-02
+-1.4383049126572003e-02
+-1.4372220102781713e-02
+-1.4361398189683995e-02
+-1.4350583381329383e-02
+-1.4339775671112128e-02
+-1.4328975052914158e-02
+-1.4318181523141000e-02
+-1.4307395079000322e-02
+-1.4296615717243291e-02
+-1.4285843433325835e-02
+-1.4275078222468859e-02
+-1.4264320079400405e-02
+-1.4253568998041631e-02
+-1.4242824972276656e-02
+-1.4232087996816906e-02
+-1.4221358067180306e-02
+-1.4210635179100300e-02
+-1.4199919330146896e-02
+-1.4189210518954404e-02
+-1.4178508743103991e-02
+-1.4167813994470544e-02
+-1.4157126263029458e-02
+-1.4146445540865247e-02
+-1.4135771826327845e-02
+-1.4125105118904130e-02
+-1.4114445416466335e-02
+-1.4103792714128554e-02
+-1.4093147006698604e-02
+-1.4082508288122526e-02
+-1.4071876551470951e-02
+-1.4061251789969987e-02
+-1.4050633998920814e-02
+-1.4040023174879424e-02
+-1.4029419314591032e-02
+-1.4018822415765674e-02
+-1.4008232476449311e-02
+-1.3997649493256804e-02
+-1.3987073458351843e-02
+-1.3976504363058896e-02
+-1.3965942200824045e-02
+-1.3955386968875761e-02
+-1.3944838664795971e-02
+-1.3934297285212153e-02
+-1.3923762825741473e-02
+-1.3913235281907780e-02
+-1.3902714648730011e-02
+-1.3892200920908575e-02
+-1.3881694093144097e-02
+-1.3871194160167920e-02
+-1.3860701116722798e-02
+-1.3850214958255740e-02
+-1.3839735682508097e-02
+-1.3829263287669655e-02
+-1.3818797770053090e-02
+-1.3808339122477666e-02
+-1.3797887337436046e-02
+-1.3787442408921480e-02
+-1.3777004332582438e-02
+-1.3766573104318195e-02
+-1.3756148722004324e-02
+-1.3745731184816862e-02
+-1.3735320491011735e-02
+-1.3724916633006781e-02
+-1.3714519600988533e-02
+-1.3704129386731502e-02
+-1.3693745987447012e-02
+-1.3683369401500355e-02
+-1.3672999626614507e-02
+-1.3662636659264231e-02
+-1.3652280495739376e-02
+-1.3641931131088414e-02
+-1.3631588558932850e-02
+-1.3621252772925285e-02
+-1.3610923768108978e-02
+-1.3600601540481526e-02
+-1.3590286086148070e-02
+-1.3579977401791636e-02
+-1.3569675484326332e-02
+-1.3559380330039169e-02
+-1.3549091932970899e-02
+-1.3538810286664192e-02
+-1.3528535385259062e-02
+-1.3518267224107886e-02
+-1.3508005798756086e-02
+-1.3497751106255278e-02
+-1.3487503145461462e-02
+-1.3477261915020730e-02
+-1.3467027409328810e-02
+-1.3456799619740042e-02
+-1.3446578538081377e-02
+-1.3436364159861115e-02
+-1.3426156482127296e-02
+-1.3415955502047315e-02
+-1.3405761217216868e-02
+-1.3395573625322291e-02
+-1.3385392722388067e-02
+-1.3375218500914866e-02
+-1.3365050953025231e-02
+-1.3354890073384969e-02
+-1.3344735859835375e-02
+-1.3334588310327425e-02
+-1.3324447421525436e-02
+-1.3314313189133842e-02
+-1.3304185608654961e-02
+-1.3294064674303784e-02
+-1.3283950379732349e-02
+-1.3273842719062259e-02
+-1.3263741688271427e-02
+-1.3253647283795940e-02
+-1.3243559502449270e-02
+-1.3233478341881122e-02
+-1.3223403799796130e-02
+-1.3213335871660768e-02
+-1.3203274550028612e-02
+-1.3193219827416374e-02
+-1.3183171698746872e-02
+-1.3173130160814091e-02
+-1.3163095210506964e-02
+-1.3153066845059968e-02
+-1.3143045061865524e-02
+-1.3133029857671501e-02
+-1.3123021226564240e-02
+-1.3113019161946685e-02
+-1.3103023657884112e-02
+-1.3093034709975989e-02
+-1.3083052314056244e-02
+-1.3073076466724162e-02
+-1.3063107165617425e-02
+-1.3053144408298471e-02
+-1.3043188189912677e-02
+-1.3033238503646200e-02
+-1.3023295342902454e-02
+-1.3013358703262597e-02
+-1.3003428581347978e-02
+-1.2993504973910823e-02
+-1.2983587878241394e-02
+-1.2973677291771993e-02
+-1.2963773210868248e-02
+-1.2953875629312163e-02
+-1.2943984540522764e-02
+-1.2934099938893516e-02
+-1.2924221820196256e-02
+-1.2914350180353673e-02
+-1.2904485016091467e-02
+-1.2894626324813739e-02
+-1.2884774103706214e-02
+-1.2874928347945977e-02
+-1.2865089051707863e-02
+-1.2855256209366752e-02
+-1.2845429816238024e-02
+-1.2835609867904864e-02
+-1.2825796360517391e-02
+-1.2815989291662002e-02
+-1.2806188659113432e-02
+-1.2796394458766215e-02
+-1.2786606683741557e-02
+-1.2776825327067242e-02
+-1.2767050384162192e-02
+-1.2757281852550545e-02
+-1.2747519729748974e-02
+-1.2737764012573058e-02
+-1.2728014697473020e-02
+-1.2718271780497331e-02
+-1.2708535255799054e-02
+-1.2698805116969674e-02
+-1.2689081358248646e-02
+-1.2679363975593345e-02
+-1.2669652965256517e-02
+-1.2659948324309112e-02
+-1.2650250051080772e-02
+-1.2640558143856293e-02
+-1.2630872597911716e-02
+-1.2621193405762624e-02
+-1.2611520560072831e-02
+-1.2601854055839214e-02
+-1.2592193889328042e-02
+-1.2582540057236195e-02
+-1.2572892558344857e-02
+-1.2563251392081087e-02
+-1.2553616555914053e-02
+-1.2543988041880123e-02
+-1.2534365841118148e-02
+-1.2524749947209476e-02
+-1.2515140357654889e-02
+-1.2505537070292012e-02
+-1.2495940082609657e-02
+-1.2486349391763150e-02
+-1.2476764994655708e-02
+-1.2467186885843222e-02
+-1.2457615058548475e-02
+-1.2448049506483563e-02
+-1.2438490226000850e-02
+-1.2428937214313384e-02
+-1.2419390468716471e-02
+-1.2409849986743018e-02
+-1.2400315765942993e-02
+-1.2390787801939586e-02
+-1.2381266087130173e-02
+-1.2371750613740861e-02
+-1.2362241377109324e-02
+-1.2352738375673140e-02
+-1.2343241607855712e-02
+-1.2333751070542782e-02
+-1.2324266759708760e-02
+-1.2314788671133945e-02
+-1.2305316799598596e-02
+-1.2295851139541824e-02
+-1.2286391685801866e-02
+-1.2276938434432037e-02
+-1.2267491381719932e-02
+-1.2258050524297686e-02
+-1.2248615859399386e-02
+-1.2239187384258726e-02
+-1.2229765094606916e-02
+-1.2220348984615397e-02
+-1.2210939048502664e-02
+-1.2201535281799859e-02
+-1.2192137680849842e-02
+-1.2182746242117588e-02
+-1.2173360962702377e-02
+-1.2163981839929955e-02
+-1.2154608870411207e-02
+-1.2145242048478007e-02
+-1.2135881368020653e-02
+-1.2126526824042401e-02
+-1.2117178413576077e-02
+-1.2107836133860333e-02
+-1.2098499981869008e-02
+-1.2089169954289485e-02
+-1.2079846047606094e-02
+-1.2070528256109261e-02
+-1.2061216572674179e-02
+-1.2051910990847955e-02
+-1.2042611508385198e-02
+-1.2033318124614462e-02
+-1.2024030837966089e-02
+-1.2014749643861896e-02
+-1.2005474537098573e-02
+-1.1996205512710148e-02
+-1.1986942566182525e-02
+-1.1977685693058928e-02
+-1.1968434889074271e-02
+-1.1959190150179573e-02
+-1.1949951472403058e-02
+-1.1940718852581529e-02
+-1.1931492288095790e-02
+-1.1922271775986929e-02
+-1.1913057311073203e-02
+-1.1903848887302754e-02
+-1.1894646499210916e-02
+-1.1885450143395216e-02
+-1.1876259816904751e-02
+-1.1867075516878857e-02
+-1.1857897240636305e-02
+-1.1848724985456759e-02
+-1.1839558746729760e-02
+-1.1830398517624314e-02
+-1.1821244291395729e-02
+-1.1812096064084688e-02
+-1.1802953833686038e-02
+-1.1793817598135531e-02
+-1.1784687354704625e-02
+-1.1775563100392747e-02
+-1.1766444831545174e-02
+-1.1757332542110298e-02
+-1.1748226225493862e-02
+-1.1739125876177118e-02
+-1.1730031490875091e-02
+-1.1720943066594380e-02
+-1.1711860600801701e-02
+-1.1702784091527120e-02
+-1.1693713536629773e-02
+-1.1684648931120660e-02
+-1.1675590267927380e-02
+-1.1666537540398108e-02
+-1.1657490745166806e-02
+-1.1648449880274468e-02
+-1.1639414943598738e-02
+-1.1630385932368401e-02
+-1.1621362843650052e-02
+-1.1612345673346963e-02
+-1.1603334414837777e-02
+-1.1594329061230403e-02
+-1.1585329607880106e-02
+-1.1576336053010216e-02
+-1.1567348394921415e-02
+-1.1558366630302682e-02
+-1.1549390754613972e-02
+-1.1540420763377017e-02
+-1.1531456652797910e-02
+-1.1522498419389104e-02
+-1.1513546059315746e-02
+-1.1504599567336562e-02
+-1.1495658937862356e-02
+-1.1486724166806673e-02
+-1.1477795253491668e-02
+-1.1468872197624077e-02
+-1.1459954995406335e-02
+-1.1451043638379042e-02
+-1.1442138118069834e-02
+-1.1433238430874538e-02
+-1.1424344577058586e-02
+-1.1415456556546803e-02
+-1.1406574365788966e-02
+-1.1397697999609083e-02
+-1.1388827452731645e-02
+-1.1379962719499483e-02
+-1.1371103794158824e-02
+-1.1362250672166318e-02
+-1.1353403351849117e-02
+-1.1344561831922546e-02
+-1.1335726109834658e-02
+-1.1326896181275926e-02
+-1.1318072041808300e-02
+-1.1309253687008036e-02
+-1.1300441112463228e-02
+-1.1291634313746336e-02
+-1.1282833286299034e-02
+-1.1274038025499061e-02
+-1.1265248527340382e-02
+-1.1256464790551019e-02
+-1.1247686814610681e-02
+-1.1238914596906915e-02
+-1.1230148129638282e-02
+-1.1221387404279477e-02
+-1.1212632415654221e-02
+-1.1203883163429268e-02
+-1.1195139647530042e-02
+-1.1186401865738048e-02
+-1.1177669813983698e-02
+-1.1168943487933082e-02
+-1.1160222881499173e-02
+-1.1151507987699901e-02
+-1.1142798800546723e-02
+-1.1134095318703727e-02
+-1.1125397542183160e-02
+-1.1116705469589122e-02
+-1.1108019095871641e-02
+-1.1099338415408971e-02
+-1.1090663423314504e-02
+-1.1081994115810250e-02
+-1.1073330489215522e-02
+-1.1064672539954051e-02
+-1.1056020264543521e-02
+-1.1047373659526709e-02
+-1.1038732721643853e-02
+-1.1030097447740465e-02
+-1.1021467834454284e-02
+-1.1012843877405119e-02
+-1.1004225571903009e-02
+-1.0995612913272933e-02
+-1.0987005896880649e-02
+-1.0978404518124180e-02
+-1.0969808773988199e-02
+-1.0961218663953120e-02
+-1.0952634187561854e-02
+-1.0944055341142919e-02
+-1.0935482118010891e-02
+-1.0926914511511813e-02
+-1.0918352516408405e-02
+-1.0909796128251823e-02
+-1.0901245343309501e-02
+-1.0892700161468961e-02
+-1.0884160583769360e-02
+-1.0875626608787940e-02
+-1.0867098228102801e-02
+-1.0858575432106925e-02
+-1.0850058214715217e-02
+-1.0841546575621875e-02
+-1.0833040514966684e-02
+-1.0824540030881850e-02
+-1.0816045119538051e-02
+-1.0807555776935178e-02
+-1.0799071998172269e-02
+-1.0790593777825083e-02
+-1.0782121110698466e-02
+-1.0773653992861227e-02
+-1.0765192420804703e-02
+-1.0756736391492392e-02
+-1.0748285903292208e-02
+-1.0739840954810303e-02
+-1.0731401542907847e-02
+-1.0722967661458230e-02
+-1.0714539304128939e-02
+-1.0706116466662037e-02
+-1.0697699146911771e-02
+-1.0689287342747341e-02
+-1.0680881051183602e-02
+-1.0672480268717572e-02
+-1.0664084991689960e-02
+-1.0655695215602001e-02
+-1.0647310935661427e-02
+-1.0638932147316080e-02
+-1.0630558846763323e-02
+-1.0622191030354259e-02
+-1.0613828695177383e-02
+-1.0605471839638917e-02
+-1.0597120462199835e-02
+-1.0588774559222943e-02
+-1.0580434124845033e-02
+-1.0572099153212356e-02
+-1.0563769639793302e-02
+-1.0555445580892307e-02
+-1.0547126973210780e-02
+-1.0538813815718986e-02
+-1.0530506108217517e-02
+-1.0522203848869791e-02
+-1.0513907030487711e-02
+-1.0505615644814465e-02
+-1.0497329685919368e-02
+-1.0489049152211107e-02
+-1.0480774042546583e-02
+-1.0472504355051879e-02
+-1.0464240087045122e-02
+-1.0455981235636866e-02
+-1.0447727795951618e-02
+-1.0439479761803981e-02
+-1.0431237127488301e-02
+-1.0422999890420937e-02
+-1.0414768049214519e-02
+-1.0406541602026967e-02
+-1.0398320545451395e-02
+-1.0390104875744139e-02
+-1.0381894588887469e-02
+-1.0373689680329803e-02
+-1.0365490145467258e-02
+-1.0357295979975027e-02
+-1.0349107179849822e-02
+-1.0340923741264645e-02
+-1.0332745662405499e-02
+-1.0324572942843009e-02
+-1.0316405581503145e-02
+-1.0308243572930025e-02
+-1.0300086909911141e-02
+-1.0291935586137977e-02
+-1.0283789598562288e-02
+-1.0275648944867906e-02
+-1.0267513622906264e-02
+-1.0259383630869777e-02
+-1.0251258966933905e-02
+-1.0243139627360133e-02
+-1.0235025606111833e-02
+-1.0226916897172500e-02
+-1.0218813496630645e-02
+-1.0210715402084519e-02
+-1.0202622611141526e-02
+-1.0194535121245969e-02
+-1.0186452929773764e-02
+-1.0178376033603284e-02
+-1.0170304427742380e-02
+-1.0162238106765548e-02
+-1.0154177066340576e-02
+-1.0146121304459074e-02
+-1.0138070819391233e-02
+-1.0130025608737237e-02
+-1.0121985669258799e-02
+-1.0113950997555417e-02
+-1.0105921588660865e-02
+-1.0097897436438193e-02
+-1.0089878535194047e-02
+-1.0081864882634949e-02
+-1.0073856477957870e-02
+-1.0065853319907317e-02
+-1.0057855405418427e-02
+-1.0049862730976680e-02
+-1.0041875292298953e-02
+-1.0033893083394840e-02
+-1.0025916098106302e-02
+-1.0017944332716425e-02
+-1.0009977786692619e-02
+-1.0002016459586116e-02
+-9.9940603489609703e-03
+-9.9861094508323072e-03
+-9.9781637610768473e-03
+-9.9702232748326049e-03
+-9.9622879868991078e-03
+-9.9543578925575943e-03
+-9.9464329890883822e-03
+-9.9385132742881577e-03
+-9.9305987458921871e-03
+-9.9226894014931028e-03
+-9.9147852386333134e-03
+-9.9068862535586014e-03
+-9.8989924407515348e-03
+-9.8911037946779468e-03
+-9.8832203115812190e-03
+-9.8753419891488906e-03
+-9.8674688251096029e-03
+-9.8596008171864397e-03
+-9.8517379630998197e-03
+-9.8438802600536880e-03
+-9.8360277030128986e-03
+-9.8281802863383182e-03
+-9.8203380052487160e-03
+-9.8125008570460037e-03
+-9.8046688393445026e-03
+-9.7968419498704225e-03
+-9.7890201865085992e-03
+-9.7812035470484157e-03
+-9.7733920274144601e-03
+-9.7655856219523267e-03
+-9.7577843252090197e-03
+-9.7499881338431651e-03
+-9.7421970455695631e-03
+-9.7344110581178388e-03
+-9.7266301692493454e-03
+-9.7188543767323908e-03
+-9.7110836774797968e-03
+-9.7033180662315904e-03
+-9.6955575374120598e-03
+-9.6878020867223018e-03
+-9.6800517117510889e-03
+-9.6723064102422519e-03
+-9.6645661799933287e-03
+-9.6568310188492653e-03
+-9.6491009244145907e-03
+-9.6413758921499466e-03
+-9.6336559163961184e-03
+-9.6259409919537287e-03
+-9.6182311158621338e-03
+-9.6105262858272849e-03
+-9.6028264996361468e-03
+-9.5951317552906978e-03
+-9.5874420508036910e-03
+-9.5797573827354730e-03
+-9.5720777454068925e-03
+-9.5644031330468660e-03
+-9.5567335418581846e-03
+-9.5490689698587497e-03
+-9.5414094150974536e-03
+-9.5337548752818472e-03
+-9.5261053479333228e-03
+-9.5184608302002500e-03
+-9.5108213173750785e-03
+-9.5031868041722464e-03
+-9.4955572859988496e-03
+-9.4879327601891956e-03
+-9.4803132244105776e-03
+-9.4726986763694516e-03
+-9.4650891138352670e-03
+-9.4574845345111406e-03
+-9.4498849345642510e-03
+-9.4422903086899840e-03
+-9.4347006517131616e-03
+-9.4271159603186369e-03
+-9.4195362322501315e-03
+-9.4119614652627952e-03
+-9.4043916571074238e-03
+-9.3968268055327486e-03
+-9.3892669075854342e-03
+-9.3817119582675825e-03
+-9.3741619522261094e-03
+-9.3666168852310112e-03
+-9.3590767549369559e-03
+-9.3515415591758268e-03
+-9.3440112957112031e-03
+-9.3364859622384593e-03
+-9.3289655562843899e-03
+-9.3214500736504384e-03
+-9.3139395091130523e-03
+-9.3064338577823948e-03
+-9.2989331166800394e-03
+-9.2914372834817672e-03
+-9.2839463559133660e-03
+-9.2764603318514095e-03
+-9.2689792091879518e-03
+-9.2615029846898015e-03
+-9.2540316531532097e-03
+-9.2465652092379030e-03
+-9.2391036491497863e-03
+-9.2316469707035571e-03
+-9.2241951717812725e-03
+-9.2167482501803455e-03
+-9.2093062036457101e-03
+-9.2018690295818453e-03
+-9.1944367234307427e-03
+-9.1870092799313848e-03
+-9.1795866944547506e-03
+-9.1721689643939411e-03
+-9.1647560875456023e-03
+-9.1573480617605160e-03
+-9.1499448849884316e-03
+-9.1425465551300440e-03
+-9.1351530684930949e-03
+-9.1277644196581711e-03
+-9.1203806032941030e-03
+-9.1130016161070915e-03
+-9.1056274561206480e-03
+-9.0982581213469409e-03
+-9.0908936095953300e-03
+-9.0835339185990193e-03
+-9.0761790455225182e-03
+-9.0688289856268676e-03
+-9.0614837337830399e-03
+-9.0541432857514752e-03
+-9.0468076389901200e-03
+-9.0394767911550974e-03
+-9.0321507401125781e-03
+-9.0248294839660632e-03
+-9.0175130206674742e-03
+-9.0102013461387121e-03
+-9.0028944549327399e-03
+-8.9955923419385141e-03
+-8.9882950043489486e-03
+-8.9810024402611228e-03
+-8.9737146477029267e-03
+-8.9664316244519610e-03
+-8.9591533682242108e-03
+-8.9518798758377750e-03
+-8.9446111423212155e-03
+-8.9373471625342014e-03
+-8.9300879326977278e-03
+-8.9228334506357438e-03
+-8.9155837142625149e-03
+-8.9083387214706471e-03
+-8.9010984701375136e-03
+-8.8938629578562464e-03
+-8.8866321803194263e-03
+-8.8794061324394043e-03
+-8.8721848096302361e-03
+-8.8649682091601137e-03
+-8.8577563287242297e-03
+-8.8505491661411313e-03
+-8.8433467194862017e-03
+-8.8361489868247871e-03
+-8.8289559647768395e-03
+-8.8217676481885388e-03
+-8.8145840319227443e-03
+-8.8074051125868018e-03
+-8.8002308880670618e-03
+-8.7930613562798542e-03
+-8.7858965151455283e-03
+-8.7787363625861543e-03
+-8.7715808960132733e-03
+-8.7644301108695984e-03
+-8.7572840021275522e-03
+-8.7501425655641812e-03
+-8.7430057987069702e-03
+-8.7358736993165473e-03
+-8.7287462652695866e-03
+-8.7216234945912061e-03
+-8.7145053852029399e-03
+-8.7073919333496477e-03
+-8.7002831339946674e-03
+-8.6931789823157125e-03
+-8.6860794753170975e-03
+-8.6789846108228409e-03
+-8.6718943866968077e-03
+-8.6648088009482448e-03
+-8.6577278516192374e-03
+-8.6506515358480245e-03
+-8.6435798487176814e-03
+-8.6365127850598408e-03
+-8.6294503410558575e-03
+-8.6223925146867650e-03
+-8.6153393040505483e-03
+-8.6082907071173831e-03
+-8.6012467217556135e-03
+-8.5942073455970731e-03
+-8.5871725744536033e-03
+-8.5801424032835062e-03
+-8.5731168275150170e-03
+-8.5660958445894185e-03
+-8.5590794524813447e-03
+-8.5520676491581508e-03
+-8.5450604325698690e-03
+-8.5380578006383698e-03
+-8.5310597501184072e-03
+-8.5240662761423367e-03
+-8.5170773738142865e-03
+-8.5100930397785379e-03
+-8.5031132719582750e-03
+-8.4961380683124688e-03
+-8.4891674267756623e-03
+-8.4822013452704268e-03
+-8.4752398212980442e-03
+-8.4682828504873756e-03
+-8.4613304279491583e-03
+-8.4543825495175685e-03
+-8.4474392128255724e-03
+-8.4405004157818830e-03
+-8.4335661563410616e-03
+-8.4266364325241185e-03
+-8.4197112422709827e-03
+-8.4127905819713529e-03
+-8.4058744466733691e-03
+-8.3989628315923187e-03
+-8.3920557337701009e-03
+-8.3851531511834210e-03
+-8.3782550818303422e-03
+-8.3713615237732547e-03
+-8.3644724750916652e-03
+-8.3575879330897683e-03
+-8.3507078930550368e-03
+-8.3438323499724337e-03
+-8.3369613000166994e-03
+-8.3300947411610073e-03
+-8.3232326715201831e-03
+-8.3163750890584767e-03
+-8.3095219916043475e-03
+-8.3026733768130304e-03
+-8.2958292408061365e-03
+-8.2889895788857276e-03
+-8.2821543867002169e-03
+-8.2753236616290565e-03
+-8.2684974015799443e-03
+-8.2616756044980085e-03
+-8.2548582684299175e-03
+-8.2480453914220552e-03
+-8.2412369704272827e-03
+-8.2344330006743887e-03
+-8.2276334773109996e-03
+-8.2208383969405302e-03
+-8.2140477575345025e-03
+-8.2072615571203242e-03
+-8.2004797937526540e-03
+-8.1937024655013586e-03
+-8.1869295700659293e-03
+-8.1801611032456117e-03
+-8.1733970602328246e-03
+-8.1666374368336743e-03
+-8.1598822306038297e-03
+-8.1531314394107431e-03
+-8.1463850612779887e-03
+-8.1396430944859228e-03
+-8.1329055372653496e-03
+-8.1261723862194671e-03
+-8.1194436363575748e-03
+-8.1127192828073652e-03
+-8.1059993225752990e-03
+-8.0992837537617428e-03
+-8.0925725744773643e-03
+-8.0858657828151437e-03
+-8.0791633768616897e-03
+-8.0724653540839124e-03
+-8.0657717100995584e-03
+-8.0590824401940674e-03
+-8.0523975405428754e-03
+-8.0457170088488947e-03
+-8.0390408429730238e-03
+-8.0323690409582708e-03
+-8.0257016010334796e-03
+-8.0190385212697418e-03
+-8.0123797979559652e-03
+-8.0057254262983126e-03
+-7.9990754018211940e-03
+-7.9924297219322767e-03
+-7.9857883846995888e-03
+-7.9791513881747392e-03
+-7.9725187303557998e-03
+-7.9658904092210284e-03
+-7.9592664218871602e-03
+-7.9526467639277360e-03
+-7.9460314308026306e-03
+-7.9394204191755580e-03
+-7.9328137269903398e-03
+-7.9262113522525716e-03
+-7.9196132929652066e-03
+-7.9130195471295191e-03
+-7.9064301124617750e-03
+-7.8998449849889199e-03
+-7.8932641601179281e-03
+-7.8866876337901418e-03
+-7.8801154036999155e-03
+-7.8735474678999530e-03
+-7.8669838244511698e-03
+-7.8604244714298287e-03
+-7.8538694068687569e-03
+-7.8473186275430738e-03
+-7.8407721288342586e-03
+-7.8342299061846723e-03
+-7.8276919566385387e-03
+-7.8211582782990625e-03
+-7.8146288692915924e-03
+-7.8081037277620531e-03
+-7.8015828518642151e-03
+-7.7950662391788770e-03
+-7.7885538853204525e-03
+-7.7820457854896911e-03
+-7.7755419358528505e-03
+-7.7690423344614224e-03
+-7.7625469795800294e-03
+-7.7560558693256457e-03
+-7.7495690016447447e-03
+-7.7430863743724833e-03
+-7.7366079840462945e-03
+-7.7301338263089199e-03
+-7.7236638970068642e-03
+-7.7171981934349683e-03
+-7.7107367134701486e-03
+-7.7042794550570802e-03
+-7.6978264163785042e-03
+-7.6913775956646427e-03
+-7.6849329902692340e-03
+-7.6784925957585045e-03
+-7.6720564075180662e-03
+-7.6656244221581585e-03
+-7.6591966377627958e-03
+-7.6527730525023444e-03
+-7.6463536645310394e-03
+-7.6399384719915159e-03
+-7.6335274727730024e-03
+-7.6271206630248870e-03
+-7.6207180381652716e-03
+-7.6143195940711964e-03
+-7.6079253283599631e-03
+-7.6015352390596076e-03
+-7.5951493242968340e-03
+-7.5887675824085760e-03
+-7.5823900117215409e-03
+-7.5760166092240355e-03
+-7.5696473702256016e-03
+-7.5632822900509660e-03
+-7.5569213657723441e-03
+-7.5505645957716023e-03
+-7.5442119784115266e-03
+-7.5378635116879547e-03
+-7.5315191934354660e-03
+-7.5251790211504927e-03
+-7.5188429909951978e-03
+-7.5125110988046983e-03
+-7.5061833409764776e-03
+-7.4998597151602637e-03
+-7.4935402191817525e-03
+-7.4872248511393446e-03
+-7.4809136094879857e-03
+-7.4746064925916966e-03
+-7.4683034970551765e-03
+-7.4620046181086740e-03
+-7.4557098512103301e-03
+-7.4494191938285692e-03
+-7.4431326443551941e-03
+-7.4368502011477192e-03
+-7.4305718624013608e-03
+-7.4242976262663390e-03
+-7.4180274901300093e-03
+-7.4117614496039506e-03
+-7.4054995000754527e-03
+-7.3992416381405890e-03
+-7.3929878620429901e-03
+-7.3867381701364521e-03
+-7.3804925606429962e-03
+-7.3742510316773414e-03
+-7.3680135811516664e-03
+-7.3617802053823657e-03
+-7.3555508999199231e-03
+-7.3493256607217059e-03
+-7.3431044855347639e-03
+-7.3368873725922447e-03
+-7.3306743201061236e-03
+-7.3244653262368210e-03
+-7.3182603891153468e-03
+-7.3120595058305668e-03
+-7.3058626719903798e-03
+-7.2996698831768380e-03
+-7.2934811364873354e-03
+-7.2872964303052996e-03
+-7.2811157630217121e-03
+-7.2749391327474383e-03
+-7.2687665374528984e-03
+-7.2625979747838031e-03
+-7.2564334409106089e-03
+-7.2502729315851288e-03
+-7.2441164431696443e-03
+-7.2379639735808800e-03
+-7.2318155209796882e-03
+-7.2256710835455719e-03
+-7.2195306594856692e-03
+-7.2133942469377269e-03
+-7.2072618427060017e-03
+-7.2011334424153675e-03
+-7.1950090418392287e-03
+-7.1888886384316973e-03
+-7.1827722305268984e-03
+-7.1766598164442605e-03
+-7.1705513943960504e-03
+-7.1644469625613879e-03
+-7.1583465184675808e-03
+-7.1522500579053860e-03
+-7.1461575763978550e-03
+-7.1400690705593862e-03
+-7.1339845386910712e-03
+-7.1279039792299485e-03
+-7.1218273904420570e-03
+-7.1157547704358308e-03
+-7.1096861171590885e-03
+-7.1036214271098588e-03
+-7.0975606959936179e-03
+-7.0915039198545015e-03
+-7.0854510964749656e-03
+-7.0794022241810447e-03
+-7.0733573012460487e-03
+-7.0673163257957590e-03
+-7.0612792959181001e-03
+-7.0552462088757243e-03
+-7.0492170606007874e-03
+-7.0431918469587036e-03
+-7.0371705649693661e-03
+-7.0311532127614613e-03
+-7.0251397885167160e-03
+-7.0191302904986201e-03
+-7.0131247170173161e-03
+-7.0071230660506316e-03
+-7.0011253338256177e-03
+-6.9951315159962751e-03
+-6.9891416088228497e-03
+-6.9831556103365699e-03
+-6.9771735188898093e-03
+-6.9711953328103968e-03
+-6.9652210503848740e-03
+-6.9592506698394584e-03
+-6.9532841881021013e-03
+-6.9473216008014713e-03
+-6.9413629036723760e-03
+-6.9354080941498976e-03
+-6.9294571706815843e-03
+-6.9235101316960611e-03
+-6.9175669754432496e-03
+-6.9116277001114680e-03
+-6.9056923033798375e-03
+-6.8997607813706665e-03
+-6.8938331299187557e-03
+-6.8879093456357329e-03
+-6.8819894264968498e-03
+-6.8760733706226982e-03
+-6.8701611763123342e-03
+-6.8642528420509242e-03
+-6.8583483661883481e-03
+-6.8524477454832543e-03
+-6.8465509757056880e-03
+-6.8406580528770832e-03
+-6.8347689745612145e-03
+-6.8288837388759491e-03
+-6.8230023440247695e-03
+-6.8171247884831017e-03
+-6.8112510707709351e-03
+-6.8053811884415350e-03
+-6.7995151372768703e-03
+-6.7936529129189998e-03
+-6.7877945123394510e-03
+-6.7819399339544978e-03
+-6.7760891762431294e-03
+-6.7702422375684060e-03
+-6.7643991162182528e-03
+-6.7585598101965348e-03
+-6.7527243157870639e-03
+-6.7468926286270072e-03
+-6.7410647449354360e-03
+-6.7352406628885470e-03
+-6.7294203810713974e-03
+-6.7236038979178077e-03
+-6.7177912115722726e-03
+-6.7119823201133248e-03
+-6.7061772206497196e-03
+-6.7003759091919923e-03
+-6.6945783818006446e-03
+-6.6887846358885100e-03
+-6.6829946697824771e-03
+-6.6772084818127924e-03
+-6.6714260702211764e-03
+-6.6656474332144923e-03
+-6.6598725685961622e-03
+-6.6541014727506094e-03
+-6.6483341417549304e-03
+-6.6425705723005164e-03
+-6.6368107623060151e-03
+-6.6310547098440299e-03
+-6.6253024132419108e-03
+-6.6195538711276590e-03
+-6.6138090820207357e-03
+-6.6080680427858364e-03
+-6.6023307491213518e-03
+-6.5965971969641915e-03
+-6.5908673840161611e-03
+-6.5851413087053686e-03
+-6.5794189694538194e-03
+-6.5737003646527429e-03
+-6.5679854926814279e-03
+-6.5622743511471928e-03
+-6.5565669360462620e-03
+-6.5508632432068371e-03
+-6.5451632696199146e-03
+-6.5394670137067321e-03
+-6.5337744739645898e-03
+-6.5280856487251876e-03
+-6.5224005361985363e-03
+-6.5167191344054597e-03
+-6.5110414400516249e-03
+-6.5053674492767527e-03
+-6.4996971585667175e-03
+-6.4940305657543058e-03
+-6.4883676689982146e-03
+-6.4827084665373654e-03
+-6.4770529567856408e-03
+-6.4714011381541148e-03
+-6.4657530080774236e-03
+-6.4601085627383602e-03
+-6.4544677983104310e-03
+-6.4488307120474219e-03
+-6.4431973020306855e-03
+-6.4375675664119902e-03
+-6.4319415037094223e-03
+-6.4263191126058593e-03
+-6.4207003912945130e-03
+-6.4150853359803226e-03
+-6.4094739423679733e-03
+-6.4038662069851402e-03
+-6.3982621282354258e-03
+-6.3926617047778385e-03
+-6.3870649350770067e-03
+-6.3814718173377744e-03
+-6.3758823496743392e-03
+-6.3702965290533247e-03
+-6.3647143515250023e-03
+-6.3591358133070893e-03
+-6.3535609121247016e-03
+-6.3479896464116075e-03
+-6.3424220146124071e-03
+-6.3368580152002359e-03
+-6.3312976466534231e-03
+-6.3257409067534283e-03
+-6.3201877916209221e-03
+-6.3146382971570637e-03
+-6.3090924202970165e-03
+-6.3035501594166290e-03
+-6.2980115129970260e-03
+-6.2924764794943626e-03
+-6.2869450573440162e-03
+-6.2814172447978834e-03
+-6.2758930386041974e-03
+-6.2703724347726560e-03
+-6.2648554296539979e-03
+-6.2593420211417483e-03
+-6.2538322075593282e-03
+-6.2483259873172313e-03
+-6.2428233590429549e-03
+-6.2373243213753610e-03
+-6.2318288718442071e-03
+-6.2263370063679376e-03
+-6.2208487208209743e-03
+-6.2153640125692357e-03
+-6.2098828802723089e-03
+-6.2044053225943667e-03
+-6.1989313378676665e-03
+-6.1934609242541936e-03
+-6.1879940796516677e-03
+-6.1825308007291838e-03
+-6.1770710837981690e-03
+-6.1716149256497571e-03
+-6.1661623243261113e-03
+-6.1607132780734392e-03
+-6.1552677852898833e-03
+-6.1498258446037761e-03
+-6.1443874545910066e-03
+-6.1389526124447091e-03
+-6.1335213141081590e-03
+-6.1280935556597702e-03
+-6.1226693348234267e-03
+-6.1172486502044368e-03
+-6.1118315003853398e-03
+-6.1064178837960722e-03
+-6.1010077988190338e-03
+-6.0956012432746530e-03
+-6.0901982134497637e-03
+-6.0847987053872111e-03
+-6.0794027160916350e-03
+-6.0740102440876098e-03
+-6.0686212880261547e-03
+-6.0632358463975442e-03
+-6.0578539175406409e-03
+-6.0524754996540316e-03
+-6.0471005896408601e-03
+-6.0417291836798699e-03
+-6.0363612782324176e-03
+-6.0309968712538116e-03
+-6.0256359611782183e-03
+-6.0202785464619013e-03
+-6.0149246256236437e-03
+-6.0095741971814129e-03
+-6.0042272588045975e-03
+-5.9988838067635865e-03
+-5.9935438372469450e-03
+-5.9882073475302769e-03
+-5.9828743359561310e-03
+-5.9775448009321778e-03
+-5.9722187410725311e-03
+-5.9668961551117899e-03
+-5.9615770414397570e-03
+-5.9562613965779884e-03
+-5.9509492164212582e-03
+-5.9456404974686005e-03
+-5.9403352380281134e-03
+-5.9350334367440491e-03
+-5.9297350922051656e-03
+-5.9244402029047559e-03
+-5.9191487672793112e-03
+-5.9138607826302184e-03
+-5.9085762450979198e-03
+-5.9032951509117434e-03
+-5.8980174978228864e-03
+-5.8927432845093221e-03
+-5.8874725096244793e-03
+-5.8822051716083731e-03
+-5.8769412688257994e-03
+-5.8716807991922087e-03
+-5.8664237592152496e-03
+-5.8611701451358458e-03
+-5.8559199539619054e-03
+-5.8506731840784424e-03
+-5.8454298340150637e-03
+-5.8401899023277090e-03
+-5.8349533876003827e-03
+-5.8297202882897541e-03
+-5.8244906013872454e-03
+-5.8192643229534194e-03
+-5.8140414493364203e-03
+-5.8088219786821011e-03
+-5.8036059097978463e-03
+-5.7983932413663243e-03
+-5.7931839716573704e-03
+-5.7879780988512241e-03
+-5.7827756205946351e-03
+-5.7775765335343777e-03
+-5.7723808342367454e-03
+-5.7671885200945442e-03
+-5.7619995894185047e-03
+-5.7568140405816325e-03
+-5.7516318721306716e-03
+-5.7464530827274918e-03
+-5.7412776707754382e-03
+-5.7361056330513570e-03
+-5.7309369657057678e-03
+-5.7257716653682858e-03
+-5.7206097303215105e-03
+-5.7154511592028582e-03
+-5.7102959505962352e-03
+-5.7051441029808171e-03
+-5.6999956147930795e-03
+-5.6948504835407573e-03
+-5.6897087056566892e-03
+-5.6845702776074508e-03
+-5.6794351970578024e-03
+-5.6743034625004766e-03
+-5.6691750724411653e-03
+-5.6640500253623679e-03
+-5.6589283197372294e-03
+-5.6538099536683067e-03
+-5.6486949239216858e-03
+-5.6435832269663196e-03
+-5.6384748598670067e-03
+-5.6333698209066526e-03
+-5.6282681085202358e-03
+-5.6231697212497760e-03
+-5.6180746577663985e-03
+-5.6129829166501515e-03
+-5.6078944951405384e-03
+-5.6028093895111736e-03
+-5.5977275962275433e-03
+-5.5926491132242849e-03
+-5.5875739390550726e-03
+-5.5825020722932760e-03
+-5.5774335115785284e-03
+-5.5723682555620380e-03
+-5.5673063021793390e-03
+-5.5622476478373829e-03
+-5.5571922887764167e-03
+-5.5521402223197612e-03
+-5.5470914471523565e-03
+-5.5420459620304846e-03
+-5.5370037654906184e-03
+-5.5319648559041187e-03
+-5.5269292314831069e-03
+-5.5218968893148944e-03
+-5.5168678259912753e-03
+-5.5118420384035142e-03
+-5.5068195246386169e-03
+-5.5018002830802904e-03
+-5.4967843122050719e-03
+-5.4917716106967019e-03
+-5.4867621772429808e-03
+-5.4817560095803738e-03
+-5.4767531041986757e-03
+-5.4717534575772038e-03
+-5.4667570673305457e-03
+-5.4617639319622432e-03
+-5.4567740500039603e-03
+-5.4517874200207045e-03
+-5.4468040405928333e-03
+-5.4418239099675901e-03
+-5.4368470250072791e-03
+-5.4318733822165712e-03
+-5.4269029786625025e-03
+-5.4219358127243844e-03
+-5.4169718829685737e-03
+-5.4120111879703654e-03
+-5.4070537263172687e-03
+-5.4020994965279824e-03
+-5.3971484959806706e-03
+-5.3922007211226431e-03
+-5.3872561685458717e-03
+-5.3823148362216067e-03
+-5.3773767227846920e-03
+-5.3724418268743046e-03
+-5.3675101471300259e-03
+-5.3625816821897742e-03
+-5.3576564301040666e-03
+-5.3527343874900640e-03
+-5.3478155507688868e-03
+-5.3428999172537555e-03
+-5.3379874855285676e-03
+-5.3330782542683752e-03
+-5.3281722220429959e-03
+-5.3232693873327330e-03
+-5.3183697484874698e-03
+-5.3134733027787933e-03
+-5.3085800469363682e-03
+-5.3036899779281719e-03
+-5.2988030938300231e-03
+-5.2939193930342417e-03
+-5.2890388740245977e-03
+-5.2841615355182217e-03
+-5.2792873762525176e-03
+-5.2744163940840897e-03
+-5.2695485855612902e-03
+-5.2646839471883946e-03
+-5.2598224766293375e-03
+-5.2549641725760316e-03
+-5.2501090337405236e-03
+-5.2452570586970304e-03
+-5.2404082459474293e-03
+-5.2355625937244715e-03
+-5.2307200989741374e-03
+-5.2258807582583246e-03
+-5.2210445686833931e-03
+-5.2162115288100896e-03
+-5.2113816374365811e-03
+-5.2065548931938275e-03
+-5.2017312944537646e-03
+-5.1969108395277727e-03
+-5.1920935259605200e-03
+-5.1872793505884189e-03
+-5.1824683103312130e-03
+-5.1776604031415312e-03
+-5.1728556275379917e-03
+-5.1680539820616062e-03
+-5.1632554653368050e-03
+-5.1584600760135983e-03
+-5.1536678122837427e-03
+-5.1488786710578785e-03
+-5.1440926490339657e-03
+-5.1393097435474379e-03
+-5.1345299529638646e-03
+-5.1297532757491023e-03
+-5.1249797105102912e-03
+-5.1202092559905652e-03
+-5.1154419108109632e-03
+-5.1106776723265582e-03
+-5.1059165371683379e-03
+-5.1011585022117433e-03
+-5.0964035656662944e-03
+-5.0916517261796876e-03
+-5.0869029823876442e-03
+-5.0821573328900631e-03
+-5.0774147762719605e-03
+-5.0726753104815272e-03
+-5.0679389323932513e-03
+-5.0632056388141703e-03
+-5.0584754273800027e-03
+-5.0537482965576893e-03
+-5.0490242448637769e-03
+-5.0443032709538687e-03
+-5.0395853735665666e-03
+-5.0348705511870659e-03
+-5.0301588008920678e-03
+-5.0254501192740376e-03
+-5.0207445034050552e-03
+-5.0160419518288498e-03
+-5.0113424633686969e-03
+-5.0066460367171354e-03
+-5.0019526703366738e-03
+-4.9972623626378448e-03
+-4.9925751113178846e-03
+-4.9878909133284736e-03
+-4.9832097656635705e-03
+-4.9785316661743054e-03
+-4.9738566132456006e-03
+-4.9691846053400929e-03
+-4.9645156413249463e-03
+-4.9598497202128413e-03
+-4.9551868404792187e-03
+-4.9505269988735466e-03
+-4.9458701918074109e-03
+-4.9412164164808498e-03
+-4.9365656715420030e-03
+-4.9319179557924045e-03
+-4.9272732679816762e-03
+-4.9226316068028903e-03
+-4.9179929708505115e-03
+-4.9133573575954621e-03
+-4.9087247637788229e-03
+-4.9040951863352873e-03
+-4.8994686234559047e-03
+-4.8948450738052979e-03
+-4.8902245360426802e-03
+-4.8856070088061244e-03
+-4.8809924907242449e-03
+-4.8763809798453520e-03
+-4.8717724731049718e-03
+-4.8671669673416270e-03
+-4.8625644602380081e-03
+-4.8579649504349584e-03
+-4.8533684366257037e-03
+-4.8487749175107403e-03
+-4.8441843917954907e-03
+-4.8395968579893599e-03
+-4.8350123133454898e-03
+-4.8304307546215659e-03
+-4.8258521789183864e-03
+-4.8212765845512349e-03
+-4.8167039701037771e-03
+-4.8121343342616748e-03
+-4.8075676759148506e-03
+-4.8030039939451945e-03
+-4.7984432862054815e-03
+-4.7938855493311729e-03
+-4.7893307799853945e-03
+-4.7847789761243263e-03
+-4.7802301366176208e-03
+-4.7756842603350587e-03
+-4.7711413460179578e-03
+-4.7666013923546311e-03
+-4.7620643976585657e-03
+-4.7575303588579254e-03
+-4.7529992725651189e-03
+-4.7484711360937758e-03
+-4.7439459482244905e-03
+-4.7394237079176026e-03
+-4.7349044139787097e-03
+-4.7303880650226386e-03
+-4.7258746595843591e-03
+-4.7213641952447254e-03
+-4.7168566688818416e-03
+-4.7123520775136183e-03
+-4.7078504192628497e-03
+-4.7033516927289598e-03
+-4.6988558965775752e-03
+-4.6943630297236758e-03
+-4.6898730911390484e-03
+-4.6853860790963880e-03
+-4.6809019903401358e-03
+-4.6764208214395897e-03
+-4.6719425699826237e-03
+-4.6674672348659685e-03
+-4.6629948150576630e-03
+-4.6585253093060384e-03
+-4.6540587161907317e-03
+-4.6495950341481004e-03
+-4.6451342605802600e-03
+-4.6406763924229360e-03
+-4.6362214268923160e-03
+-4.6317693623537321e-03
+-4.6273201974647597e-03
+-4.6228739309588634e-03
+-4.6184305617429115e-03
+-4.6139900887255487e-03
+-4.6095525098842930e-03
+-4.6051178219494145e-03
+-4.6006860216406334e-03
+-4.5962571068955994e-03
+-4.5918310766267243e-03
+-4.5874079297487120e-03
+-4.5829876649802368e-03
+-4.5785702809475939e-03
+-4.5741557760264713e-03
+-4.5697441475268507e-03
+-4.5653353924762540e-03
+-4.5609295083096340e-03
+-4.5565264934353446e-03
+-4.5521263464076648e-03
+-4.5477290659476279e-03
+-4.5433346510091472e-03
+-4.5389431004978741e-03
+-4.5345544122087572e-03
+-4.5301685830102453e-03
+-4.5257856098817328e-03
+-4.5214054909514930e-03
+-4.5170282249134370e-03
+-4.5126538104851592e-03
+-4.5082822464724047e-03
+-4.5039135317042700e-03
+-4.4995476645319377e-03
+-4.4951846421124233e-03
+-4.4908244614315787e-03
+-4.4864671201023127e-03
+-4.4821126166506306e-03
+-4.4777609496883825e-03
+-4.4734121180770563e-03
+-4.4690661208951635e-03
+-4.4647229570523731e-03
+-4.4603826239282794e-03
+-4.4560451181156844e-03
+-4.4517104365563703e-03
+-4.4473785778578294e-03
+-4.4430495411147903e-03
+-4.4387233252905891e-03
+-4.4343999290049237e-03
+-4.4300793508121926e-03
+-4.4257615887077833e-03
+-4.4214466398381719e-03
+-4.4171345013227703e-03
+-4.4128251711324680e-03
+-4.4085186480095481e-03
+-4.4042149307274405e-03
+-4.3999140180894965e-03
+-4.3956159089151318e-03
+-4.3913206017671394e-03
+-4.3870280939463024e-03
+-4.3827383823670449e-03
+-4.3784514644189662e-03
+-4.3741673387919736e-03
+-4.3698860043950363e-03
+-4.3656074600542357e-03
+-4.3613317044643701e-03
+-4.3570587362695597e-03
+-4.3527885533024245e-03
+-4.3485211526294856e-03
+-4.3442565313994543e-03
+-4.3399946878454375e-03
+-4.3357356208083607e-03
+-4.3314793291298328e-03
+-4.3272258116204398e-03
+-4.3229750670803384e-03
+-4.3187270938733358e-03
+-4.3144818891134975e-03
+-4.3102394497032620e-03
+-4.3059997733126349e-03
+-4.3017628588800467e-03
+-4.2975287054537884e-03
+-4.2932973118812870e-03
+-4.2890686768123736e-03
+-4.2848427987955285e-03
+-4.2806196754294618e-03
+-4.2763993037572834e-03
+-4.2721816810453615e-03
+-4.2679668058056156e-03
+-4.2637546769691533e-03
+-4.2595452934205795e-03
+-4.2553386539040793e-03
+-4.2511347571308720e-03
+-4.2469336012620111e-03
+-4.2427351835098723e-03
+-4.2385395010263137e-03
+-4.2343465517674893e-03
+-4.2301563345140368e-03
+-4.2259688480834369e-03
+-4.2217840912864846e-03
+-4.2176020629298922e-03
+-4.2134227616282454e-03
+-4.2092461849057633e-03
+-4.2050723299025183e-03
+-4.2009011940788103e-03
+-4.1967327759023232e-03
+-4.1925670740396671e-03
+-4.1884040873077294e-03
+-4.1842438147938555e-03
+-4.1800862555735245e-03
+-4.1759314076792479e-03
+-4.1717792680294559e-03
+-4.1676298335926194e-03
+-4.1634831025299177e-03
+-4.1593390737620188e-03
+-4.1551977462132477e-03
+-4.1510591187569092e-03
+-4.1469231902474075e-03
+-4.1427899591831990e-03
+-4.1386594228911876e-03
+-4.1345315784629272e-03
+-4.1304064235662061e-03
+-4.1262839569514665e-03
+-4.1221641774886707e-03
+-4.1180470840498336e-03
+-4.1139326755092595e-03
+-4.1098209506560636e-03
+-4.1057119072474800e-03
+-4.1016055423553953e-03
+-4.0975018532373479e-03
+-4.0934008383900228e-03
+-4.0893024967884970e-03
+-4.0852068273631772e-03
+-4.0811138288868410e-03
+-4.0770235000944996e-03
+-4.0729358392442719e-03
+-4.0688508436586349e-03
+-4.0647685105740655e-03
+-4.0606888379239895e-03
+-4.0566118244503100e-03
+-4.0525374689520562e-03
+-4.0484657703801557e-03
+-4.0443967277907465e-03
+-4.0403303400344303e-03
+-4.0362666045965293e-03
+-4.0322055184109579e-03
+-4.0281470788030745e-03
+-4.0240912845192619e-03
+-4.0200381346263544e-03
+-4.0159876280962421e-03
+-4.0119397637062570e-03
+-4.0078945401911970e-03
+-4.0038519556642223e-03
+-3.9998120074869678e-03
+-3.9957746930310220e-03
+-3.9917400104157999e-03
+-3.9877079583007851e-03
+-3.9836785353994080e-03
+-3.9796517407151106e-03
+-3.9756275733738335e-03
+-3.9716060321332422e-03
+-3.9675871143532611e-03
+-3.9635708170657827e-03
+-3.9595571378565481e-03
+-3.9555460754971215e-03
+-3.9515376289122068e-03
+-3.9475317970318153e-03
+-3.9435285787926466e-03
+-3.9395279730685198e-03
+-3.9355299778169473e-03
+-3.9315345903055566e-03
+-3.9275418079190395e-03
+-3.9235516290153901e-03
+-3.9195640523824269e-03
+-3.9155790768405346e-03
+-3.9115967013320079e-03
+-3.9076169248271411e-03
+-3.9036397458060371e-03
+-3.8996651616519241e-03
+-3.8956931696157069e-03
+-3.8917237676092289e-03
+-3.8877569544124484e-03
+-3.8837927288718037e-03
+-3.8798310899492228e-03
+-3.8758720366972709e-03
+-3.8719155680121157e-03
+-3.8679616815756328e-03
+-3.8640103745092220e-03
+-3.8600616442268695e-03
+-3.8561154893744314e-03
+-3.8521719089185677e-03
+-3.8482309018140130e-03
+-3.8442924669875962e-03
+-3.8403566033467472e-03
+-3.8364233091223053e-03
+-3.8324925816186767e-03
+-3.8285644181269602e-03
+-3.8246388168191175e-03
+-3.8207157765876758e-03
+-3.8167952963534860e-03
+-3.8128773750950220e-03
+-3.8089620118185495e-03
+-3.8050492052581790e-03
+-3.8011389529580340e-03
+-3.7972312521386241e-03
+-3.7933261004666312e-03
+-3.7894234967001885e-03
+-3.7855234397617169e-03
+-3.7816259285972905e-03
+-3.7777309621867543e-03
+-3.7738385394629442e-03
+-3.7699486584888702e-03
+-3.7660613165859725e-03
+-3.7621765111698780e-03
+-3.7582942406559029e-03
+-3.7544145039629913e-03
+-3.7505373000093494e-03
+-3.7466626276921968e-03
+-3.7427904859018667e-03
+-3.7389208731475553e-03
+-3.7350537869631694e-03
+-3.7311892247400796e-03
+-3.7273271844765004e-03
+-3.7234676650740859e-03
+-3.7196106655049683e-03
+-3.7157561846840955e-03
+-3.7119042214756098e-03
+-3.7080547746445678e-03
+-3.7042078420864428e-03
+-3.7003634212392209e-03
+-3.6965215097263058e-03
+-3.6926821060817099e-03
+-3.6888452091127905e-03
+-3.6850108177219191e-03
+-3.6811789310657282e-03
+-3.6773495483298619e-03
+-3.6735226679104182e-03
+-3.6696982869775536e-03
+-3.6658764026473193e-03
+-3.6620570130729718e-03
+-3.6582401173680728e-03
+-3.6544257146732123e-03
+-3.6506138040425661e-03
+-3.6468043844828458e-03
+-3.6429974547647808e-03
+-3.6391930124721620e-03
+-3.6353910548161976e-03
+-3.6315915794362576e-03
+-3.6277945851720997e-03
+-3.6240000710718494e-03
+-3.6202080361603865e-03
+-3.6164184794249344e-03
+-3.6126313998133216e-03
+-3.6088467954973162e-03
+-3.6050646638999513e-03
+-3.6012850025042582e-03
+-3.5975078096936812e-03
+-3.5937330843678868e-03
+-3.5899608254557330e-03
+-3.5861910320081130e-03
+-3.5824237031157817e-03
+-3.5786588374844192e-03
+-3.5748964326896399e-03
+-3.5711364861078388e-03
+-3.5673789956526063e-03
+-3.5636239601453874e-03
+-3.5598713784989939e-03
+-3.5561212497137707e-03
+-3.5523735728780642e-03
+-3.5486283469868458e-03
+-3.5448855700127599e-03
+-3.5411452393168215e-03
+-3.5374073524455066e-03
+-3.5336719080200870e-03
+-3.5299389050324997e-03
+-3.5262083424851213e-03
+-3.5224802194113495e-03
+-3.5187545348444550e-03
+-3.5150312872873290e-03
+-3.5113104743074506e-03
+-3.5075920934028474e-03
+-3.5038761427200055e-03
+-3.5001626210847377e-03
+-3.4964515273715382e-03
+-3.4927428606396143e-03
+-3.4890366200634689e-03
+-3.4853328046117586e-03
+-3.4816314120440454e-03
+-3.4779324396834528e-03
+-3.4742358852105850e-03
+-3.4705417474589634e-03
+-3.4668500254935960e-03
+-3.4631607183689584e-03
+-3.4594738251201348e-03
+-3.4557893447526296e-03
+-3.4521072755274219e-03
+-3.4484276148927201e-03
+-3.4447503603407918e-03
+-3.4410755103671735e-03
+-3.4374030641206310e-03
+-3.4337330207263924e-03
+-3.4300653790975211e-03
+-3.4264001380668657e-03
+-3.4227372962167772e-03
+-3.4190768512849315e-03
+-3.4154188008350727e-03
+-3.4117631429008508e-03
+-3.4081098764191567e-03
+-3.4044590004311012e-03
+-3.4008105140289008e-03
+-3.3971644163629123e-03
+-3.3935207064985365e-03
+-3.3898793824020377e-03
+-3.3862404412933196e-03
+-3.3826038805916418e-03
+-3.3789696990881818e-03
+-3.3753378961165485e-03
+-3.3717084709226214e-03
+-3.3680814224372898e-03
+-3.3644567495188481e-03
+-3.3608344506151837e-03
+-3.3572145233503065e-03
+-3.3535969652724201e-03
+-3.3499817746546448e-03
+-3.3463689506295392e-03
+-3.3427584923664158e-03
+-3.3391503988612092e-03
+-3.3355446689870894e-03
+-3.3319413014972583e-03
+-3.3283402943527097e-03
+-3.3247416451868111e-03
+-3.3211453518839779e-03
+-3.3175514132631747e-03
+-3.3139598283599457e-03
+-3.3103705962202190e-03
+-3.3067837159117021e-03
+-3.3031991864857801e-03
+-3.2996170063297765e-03
+-3.2960371730104765e-03
+-3.2924596841034269e-03
+-3.2888845380216313e-03
+-3.2853117337963362e-03
+-3.2817412704814366e-03
+-3.2781731471890154e-03
+-3.2746073630563199e-03
+-3.2710439169402437e-03
+-3.2674828066076413e-03
+-3.2639240295628457e-03
+-3.2603675837545574e-03
+-3.2568134681052623e-03
+-3.2532616816672508e-03
+-3.2497122235210620e-03
+-3.2461650927836034e-03
+-3.2426202885180140e-03
+-3.2390778089473257e-03
+-3.2355376516480364e-03
+-3.2319998143122853e-03
+-3.2284642956193509e-03
+-3.2249310946947450e-03
+-3.2214002106486827e-03
+-3.2178716425201228e-03
+-3.2143453893282306e-03
+-3.2108214496981841e-03
+-3.2072998213526975e-03
+-3.2037805019031890e-03
+-3.2002634895698990e-03
+-3.1967487833904728e-03
+-3.1932363824603003e-03
+-3.1897262858806151e-03
+-3.1862184927573377e-03
+-3.1827130020731027e-03
+-3.1792098118411647e-03
+-3.1757089196168455e-03
+-3.1722103232101791e-03
+-3.1687140215311480e-03
+-3.1652200137832621e-03
+-3.1617282991102552e-03
+-3.1582388765126895e-03
+-3.1547517449589230e-03
+-3.1512669028984641e-03
+-3.1477843480545676e-03
+-3.1443040781417770e-03
+-3.1408260916474819e-03
+-3.1373503877052200e-03
+-3.1338769654611176e-03
+-3.1304058240010702e-03
+-3.1269369623812462e-03
+-3.1234703794529900e-03
+-3.1200060731508931e-03
+-3.1165440411538340e-03
+-3.1130842814951908e-03
+-3.1096267930963736e-03
+-3.1061715750162621e-03
+-3.1027186263480216e-03
+-3.0992679462348580e-03
+-3.0958195337824276e-03
+-3.0923733873422531e-03
+-3.0889295046087656e-03
+-3.0854878833479920e-03
+-3.0820485221415657e-03
+-3.0786114199915292e-03
+-3.0751765759528082e-03
+-3.0717439893124046e-03
+-3.0683136594244751e-03
+-3.0648855851674612e-03
+-3.0614597641730567e-03
+-3.0580361938830690e-03
+-3.0546148724176223e-03
+-3.0511957989293246e-03
+-3.0477789726563956e-03
+-3.0443643928170019e-03
+-3.0409520586111029e-03
+-3.0375419691286410e-03
+-3.0341341224546046e-03
+-3.0307285161331001e-03
+-3.0273251479326362e-03
+-3.0239240167532315e-03
+-3.0205251218427742e-03
+-3.0171284624014834e-03
+-3.0137340374985716e-03
+-3.0103418461742359e-03
+-3.0069518870357750e-03
+-3.0035641580031859e-03
+-3.0001786569612277e-03
+-2.9967953823336318e-03
+-2.9934143330541049e-03
+-2.9900355081009084e-03
+-2.9866589066901502e-03
+-2.9832845281715695e-03
+-2.9799123716566607e-03
+-2.9765424350176998e-03
+-2.9731747157281845e-03
+-2.9698092116992921e-03
+-2.9664459220994999e-03
+-2.9630848463199355e-03
+-2.9597259836349550e-03
+-2.9563693331254946e-03
+-2.9530148938235871e-03
+-2.9496626640722447e-03
+-2.9463126415351240e-03
+-2.9429648239444562e-03
+-2.9396192100297571e-03
+-2.9362757991053170e-03
+-2.9329345904752944e-03
+-2.9295955833486494e-03
+-2.9262587769019743e-03
+-2.9229241699480269e-03
+-2.9195917602056333e-03
+-2.9162615451968845e-03
+-2.9129335231033089e-03
+-2.9096076932462185e-03
+-2.9062840550538073e-03
+-2.9029626078012159e-03
+-2.8996433506063377e-03
+-2.8963262825015459e-03
+-2.8930114016709392e-03
+-2.8896987057796227e-03
+-2.8863881926640884e-03
+-2.8830798611788762e-03
+-2.8797737105382376e-03
+-2.8764697399734384e-03
+-2.8731679487680414e-03
+-2.8698683362101685e-03
+-2.8665709010513240e-03
+-2.8632756410749589e-03
+-2.8599825539903146e-03
+-2.8566916382194970e-03
+-2.8534028929478152e-03
+-2.8501163173983183e-03
+-2.8468319107978900e-03
+-2.8435496723758602e-03
+-2.8402696011898833e-03
+-2.8369916952715002e-03
+-2.8337159522728154e-03
+-2.8304423702014514e-03
+-2.8271709482403104e-03
+-2.8239016858131018e-03
+-2.8206345822024744e-03
+-2.8173696364254160e-03
+-2.8141068474515129e-03
+-2.8108462137416703e-03
+-2.8075877331892748e-03
+-2.8043314037288283e-03
+-2.8010772241556159e-03
+-2.7978251938379538e-03
+-2.7945753121106764e-03
+-2.7913275780333674e-03
+-2.7880819905590623e-03
+-2.7848385484654419e-03
+-2.7815972499245067e-03
+-2.7783580929797453e-03
+-2.7751210759711757e-03
+-2.7718861978219831e-03
+-2.7686534575307193e-03
+-2.7654228543210579e-03
+-2.7621943876784132e-03
+-2.7589680570199570e-03
+-2.7557438606953424e-03
+-2.7525217963131274e-03
+-2.7493018616459738e-03
+-2.7460840556469577e-03
+-2.7428683777470943e-03
+-2.7396548272979816e-03
+-2.7364434033583930e-03
+-2.7332341049189348e-03
+-2.7300269306966057e-03
+-2.7268218788463632e-03
+-2.7236189474668985e-03
+-2.7204181350847603e-03
+-2.7172194407449391e-03
+-2.7140228635355239e-03
+-2.7108284027081223e-03
+-2.7076360576327027e-03
+-2.7044458275309107e-03
+-2.7012577105782506e-03
+-2.6980717045072544e-03
+-2.6948878073264062e-03
+-2.6917060180990777e-03
+-2.6885263361392216e-03
+-2.6853487607606027e-03
+-2.6821732912765774e-03
+-2.6789999269820819e-03
+-2.6758286665012295e-03
+-2.6726595076109272e-03
+-2.6694924480973434e-03
+-2.6663274866690402e-03
+-2.6631646227306452e-03
+-2.6600038556807734e-03
+-2.6568451847495166e-03
+-2.6536886090923625e-03
+-2.6505341276657685e-03
+-2.6473817386343805e-03
+-2.6442314399671785e-03
+-2.6410832299690306e-03
+-2.6379371076982370e-03
+-2.6347930723181383e-03
+-2.6316511230910170e-03
+-2.6285112594094107e-03
+-2.6253734806187478e-03
+-2.6222377851988052e-03
+-2.6191041709484188e-03
+-2.6159726357808688e-03
+-2.6128431786277473e-03
+-2.6097157988918085e-03
+-2.6065904959372945e-03
+-2.6034672689568389e-03
+-2.6003461170971015e-03
+-2.5972270391926783e-03
+-2.5941100333463779e-03
+-2.5909950975685093e-03
+-2.5878822304107457e-03
+-2.5847714311677378e-03
+-2.5816626991816724e-03
+-2.5785560336904429e-03
+-2.5754514338464322e-03
+-2.5723488987140497e-03
+-2.5692484266680413e-03
+-2.5661500157497367e-03
+-2.5630536641742556e-03
+-2.5599593709275973e-03
+-2.5568671352069953e-03
+-2.5537769562718128e-03
+-2.5506888335337604e-03
+-2.5476027664148950e-03
+-2.5445187537230371e-03
+-2.5414367933870707e-03
+-2.5383568833123311e-03
+-2.5352790221806164e-03
+-2.5322032093372084e-03
+-2.5291294441366231e-03
+-2.5260577258304447e-03
+-2.5229880536182790e-03
+-2.5199204265375849e-03
+-2.5168548428827590e-03
+-2.5137913007356348e-03
+-2.5107297984803103e-03
+-2.5076703352763245e-03
+-2.5046129104060160e-03
+-2.5015575231622069e-03
+-2.4985041728533657e-03
+-2.4954528587537001e-03
+-2.4924035794683008e-03
+-2.4893563330064140e-03
+-2.4863111174444766e-03
+-2.4832679316476704e-03
+-2.4802267748971268e-03
+-2.4771876464913744e-03
+-2.4741505457947254e-03
+-2.4711154721906935e-03
+-2.4680824247164976e-03
+-2.4650514014797802e-03
+-2.4620224004424248e-03
+-2.4589954200880558e-03
+-2.4559704597123017e-03
+-2.4529475186808930e-03
+-2.4499265963567815e-03
+-2.4469076921003444e-03
+-2.4438908051827575e-03
+-2.4408759340328527e-03
+-2.4378630766156940e-03
+-2.4348522310767380e-03
+-2.4318433964974633e-03
+-2.4288365722543240e-03
+-2.4258317577067951e-03
+-2.4228289521663355e-03
+-2.4198281549300776e-03
+-2.4168293648889096e-03
+-2.4138325802741754e-03
+-2.4108377992788617e-03
+-2.4078450205730533e-03
+-2.4048542432881822e-03
+-2.4018654665921282e-03
+-2.3988786898282268e-03
+-2.3958939124406444e-03
+-2.3929111337068504e-03
+-2.3899303520141550e-03
+-2.3869515654562174e-03
+-2.3839747724032825e-03
+-2.3809999720398422e-03
+-2.3780271636993510e-03
+-2.3750563467133117e-03
+-2.3720875204099245e-03
+-2.3691206840919412e-03
+-2.3661558364761665e-03
+-2.3631929756889902e-03
+-2.3602320999052198e-03
+-2.3572732080847018e-03
+-2.3543162996580548e-03
+-2.3513613740310415e-03
+-2.3484084304356066e-03
+-2.3454574680435054e-03
+-2.3425084858487901e-03
+-2.3395614822981320e-03
+-2.3366164557363559e-03
+-2.3336734047940746e-03
+-2.3307323286071262e-03
+-2.3277932263665122e-03
+-2.3248560973516356e-03
+-2.3219209409347159e-03
+-2.3189877564368994e-03
+-2.3160565425606170e-03
+-2.3131272976212010e-03
+-2.3102000200192008e-03
+-2.3072747086874362e-03
+-2.3043513627514240e-03
+-2.3014299814441107e-03
+-2.2985105643443722e-03
+-2.2955931110948511e-03
+-2.2926776207398670e-03
+-2.2897640912196201e-03
+-2.2868525203873073e-03
+-2.2839429069700127e-03
+-2.2810352506509803e-03
+-2.2781295511298903e-03
+-2.2752258077263191e-03
+-2.2723240195117842e-03
+-2.2694241854875870e-03
+-2.2665263042506247e-03
+-2.2636303742446127e-03
+-2.2607363940614199e-03
+-2.2578443627950628e-03
+-2.2549542796463738e-03
+-2.2520661439034261e-03
+-2.2491799550223867e-03
+-2.2462957124585034e-03
+-2.2434134150757733e-03
+-2.2405330610640456e-03
+-2.2376546486336437e-03
+-2.2347781767106116e-03
+-2.2319036447081271e-03
+-2.2290310520478099e-03
+-2.2261603981455149e-03
+-2.2232916824147970e-03
+-2.2204249040360443e-03
+-2.2175600613629585e-03
+-2.2146971525689061e-03
+-2.2118361762130615e-03
+-2.2089771316309652e-03
+-2.2061200182503797e-03
+-2.2032648354710785e-03
+-2.2004115826595731e-03
+-2.1975602591381362e-03
+-2.1947108636672951e-03
+-2.1918633946089038e-03
+-2.1890178504062776e-03
+-2.1861742301115066e-03
+-2.1833325330290689e-03
+-2.1804927584804599e-03
+-2.1776549058474012e-03
+-2.1748189745237059e-03
+-2.1719849635918023e-03
+-2.1691528714795276e-03
+-2.1663226965439463e-03
+-2.1634944375584185e-03
+-2.1606680938118703e-03
+-2.1578436646363351e-03
+-2.1550211495201103e-03
+-2.1522005480671155e-03
+-2.1493818597428074e-03
+-2.1465650830080670e-03
+-2.1437502158882849e-03
+-2.1409372566755349e-03
+-2.1381262047079743e-03
+-2.1353170595782281e-03
+-2.1325098208174256e-03
+-2.1297044878216044e-03
+-2.1269010599580798e-03
+-2.1240995361814386e-03
+-2.1212999149134832e-03
+-2.1185021945699539e-03
+-2.1157063740049665e-03
+-2.1129124524107775e-03
+-2.1101204290352835e-03
+-2.1073303034774222e-03
+-2.1045420754952048e-03
+-2.1017557445712274e-03
+-2.0989713090595694e-03
+-2.0961887670278402e-03
+-2.0934081169595052e-03
+-2.0906293582929163e-03
+-2.0878524905983348e-03
+-2.0850775133788258e-03
+-2.0823044260470224e-03
+-2.0795332279719548e-03
+-2.0767639179270791e-03
+-2.0739964942070202e-03
+-2.0712309551990478e-03
+-2.0684673001269333e-03
+-2.0657055286105704e-03
+-2.0629456402151110e-03
+-2.0601876342610324e-03
+-2.0574315100026900e-03
+-2.0546772665085630e-03
+-2.0519249024008573e-03
+-2.0491744162419016e-03
+-2.0464258068602233e-03
+-2.0436790734578146e-03
+-2.0409342152797015e-03
+-2.0381912318282358e-03
+-2.0354501228214000e-03
+-2.0327108878667923e-03
+-2.0299735256011373e-03
+-2.0272380341808563e-03
+-2.0245044119689532e-03
+-2.0217726582717919e-03
+-2.0190427726605145e-03
+-2.0163147547069497e-03
+-2.0135886039846147e-03
+-2.0108643200565639e-03
+-2.0081419019325566e-03
+-2.0054213478129311e-03
+-2.0027026558804535e-03
+-1.9999858251696706e-03
+-1.9972708554589933e-03
+-1.9945577465096034e-03
+-1.9918464977135100e-03
+-1.9891371082719745e-03
+-1.9864295772968198e-03
+-1.9837239034860617e-03
+-1.9810200854164330e-03
+-1.9783181218973162e-03
+-1.9756180123493812e-03
+-1.9729197562913304e-03
+-1.9702233531753289e-03
+-1.9675288023520291e-03
+-1.9648361031433434e-03
+-1.9621452544768972e-03
+-1.9594562549214859e-03
+-1.9567691030930260e-03
+-1.9540837981623514e-03
+-1.9514003395996716e-03
+-1.9487187268874488e-03
+-1.9460389595543014e-03
+-1.9433610371426692e-03
+-1.9406849589093530e-03
+-1.9380107233257283e-03
+-1.9353383287365475e-03
+-1.9326677739508133e-03
+-1.9299990585163300e-03
+-1.9273321820432539e-03
+-1.9246671440684077e-03
+-1.9220039440590679e-03
+-1.9193425814206927e-03
+-1.9166830549841125e-03
+-1.9140253632565461e-03
+-1.9113695048793406e-03
+-1.9087154792077922e-03
+-1.9060632858277531e-03
+-1.9034129242834056e-03
+-1.9007643939986480e-03
+-1.8981176943714884e-03
+-1.8954728244814009e-03
+-1.8928297828790088e-03
+-1.8901885680901640e-03
+-1.8875491792056582e-03
+-1.8849116158745675e-03
+-1.8822758777496458e-03
+-1.8796419642773373e-03
+-1.8770098747828280e-03
+-1.8743796085171210e-03
+-1.8717511643362296e-03
+-1.8691245409626451e-03
+-1.8664997372718440e-03
+-1.8638767526008037e-03
+-1.8612555863736324e-03
+-1.8586362380569542e-03
+-1.8560187071910532e-03
+-1.8534029933053794e-03
+-1.8507890954884995e-03
+-1.8481770123749783e-03
+-1.8455667426194450e-03
+-1.8429582853203238e-03
+-1.8403516398482001e-03
+-1.8377468056315720e-03
+-1.8351437824069815e-03
+-1.8325425700199557e-03
+-1.8299431679887435e-03
+-1.8273455747977166e-03
+-1.8247497887323146e-03
+-1.8221558085178022e-03
+-1.8195636336747665e-03
+-1.8169732638108754e-03
+-1.8143846986233554e-03
+-1.8117979379055332e-03
+-1.8092129813771960e-03
+-1.8066298278586041e-03
+-1.8040484755945498e-03
+-1.8014689229952571e-03
+-1.7988911695183650e-03
+-1.7963152150098612e-03
+-1.7937410592293241e-03
+-1.7911687016483263e-03
+-1.7885981416768991e-03
+-1.7860293785000765e-03
+-1.7834624108781375e-03
+-1.7808972375355535e-03
+-1.7783338575182912e-03
+-1.7757722702318145e-03
+-1.7732124751180353e-03
+-1.7706544718317778e-03
+-1.7680982601699328e-03
+-1.7655438397879278e-03
+-1.7629912094347250e-03
+-1.7604403675075995e-03
+-1.7578913126666124e-03
+-1.7553440444857556e-03
+-1.7527985627364133e-03
+-1.7502548671166703e-03
+-1.7477129571801123e-03
+-1.7451728324492594e-03
+-1.7426344920102046e-03
+-1.7400979344404689e-03
+-1.7375631583392297e-03
+-1.7350301629557464e-03
+-1.7324989479916228e-03
+-1.7299695131490680e-03
+-1.7274418580736878e-03
+-1.7249159823881069e-03
+-1.7223918855152382e-03
+-1.7198695661523110e-03
+-1.7173490228340590e-03
+-1.7148302544480263e-03
+-1.7123132606082522e-03
+-1.7097980410177677e-03
+-1.7072845953613586e-03
+-1.7047729233016517e-03
+-1.7022630244593105e-03
+-1.6997548978980761e-03
+-1.6972485422776368e-03
+-1.6947439563243908e-03
+-1.6922411392912818e-03
+-1.6897400906547609e-03
+-1.6872408099655003e-03
+-1.6847432970539104e-03
+-1.6822475518147306e-03
+-1.6797535737280789e-03
+-1.6772613613820250e-03
+-1.6747709132629281e-03
+-1.6722822283721634e-03
+-1.6697953063630302e-03
+-1.6673101469324599e-03
+-1.6648267498027647e-03
+-1.6623451147154543e-03
+-1.6598652413134013e-03
+-1.6573871285152401e-03
+-1.6549107749182033e-03
+-1.6524361792925864e-03
+-1.6499633411059358e-03
+-1.6474922600001488e-03
+-1.6450229356689621e-03
+-1.6425553679226773e-03
+-1.6400895565747823e-03
+-1.6376255009262271e-03
+-1.6351631996016738e-03
+-1.6327026512160173e-03
+-1.6302438549504520e-03
+-1.6277868104326567e-03
+-1.6253315173191160e-03
+-1.6228779753946596e-03
+-1.6204261845036477e-03
+-1.6179761442768493e-03
+-1.6155278534488934e-03
+-1.6130813105212224e-03
+-1.6106365143873913e-03
+-1.6081934648627270e-03
+-1.6057521618908714e-03
+-1.6033126052372433e-03
+-1.6008747944220999e-03
+-1.5984387289236165e-03
+-1.5960044078188263e-03
+-1.5935718298551180e-03
+-1.5911409938589999e-03
+-1.5887118993764930e-03
+-1.5862845463023071e-03
+-1.5838589344673768e-03
+-1.5814350634124413e-03
+-1.5790129325981945e-03
+-1.5765925413512617e-03
+-1.5741738886686845e-03
+-1.5717569735034058e-03
+-1.5693417950850279e-03
+-1.5669283530399555e-03
+-1.5645166470253274e-03
+-1.5621066766998177e-03
+-1.5596984417234172e-03
+-1.5572919417035419e-03
+-1.5548871757989824e-03
+-1.5524841429414328e-03
+-1.5500828421488742e-03
+-1.5476832728448596e-03
+-1.5452854345698200e-03
+-1.5428893269459701e-03
+-1.5404949498058181e-03
+-1.5381023030075439e-03
+-1.5357113859906300e-03
+-1.5333221975683329e-03
+-1.5309347365289681e-03
+-1.5285490021589218e-03
+-1.5261649941891199e-03
+-1.5237827123661400e-03
+-1.5214021564369843e-03
+-1.5190233261488789e-03
+-1.5166462211124165e-03
+-1.5142708402781566e-03
+-1.5118971823980904e-03
+-1.5095252465062792e-03
+-1.5071550323959657e-03
+-1.5047865399848907e-03
+-1.5024197690742982e-03
+-1.5000547192837031e-03
+-1.4976913901989615e-03
+-1.4953297810435492e-03
+-1.4929698907039011e-03
+-1.4906117181161572e-03
+-1.4882552628092559e-03
+-1.4859005246392850e-03
+-1.4835475034470291e-03
+-1.4811961989783426e-03
+-1.4788466109488189e-03
+-1.4764987388503155e-03
+-1.4741525815444875e-03
+-1.4718081377892165e-03
+-1.4694654067810816e-03
+-1.4671243884305653e-03
+-1.4647850827061437e-03
+-1.4624474894118192e-03
+-1.4601116081921885e-03
+-1.4577774386438618e-03
+-1.4554449799486003e-03
+-1.4531142310492051e-03
+-1.4507851909992002e-03
+-1.4484578594559615e-03
+-1.4461322362766945e-03
+-1.4438083212715885e-03
+-1.4414861141117850e-03
+-1.4391656144401258e-03
+-1.4368468216826044e-03
+-1.4345297348970182e-03
+-1.4322143531213874e-03
+-1.4299006757675838e-03
+-1.4275887026250391e-03
+-1.4252784334974566e-03
+-1.4229698681627529e-03
+-1.4206630063833448e-03
+-1.4183578478170157e-03
+-1.4160543915390496e-03
+-1.4137526364229509e-03
+-1.4114525815879264e-03
+-1.4091542269128172e-03
+-1.4068575724209783e-03
+-1.4045626179836170e-03
+-1.4022693632023309e-03
+-1.3999778076428423e-03
+-1.3976879506629966e-03
+-1.3953997914018751e-03
+-1.3931133290202458e-03
+-1.3908285630379843e-03
+-1.3885454932001642e-03
+-1.3862641192692487e-03
+-1.3839844410891838e-03
+-1.3817064585334344e-03
+-1.3794301713005149e-03
+-1.3771555785225930e-03
+-1.3748826792194394e-03
+-1.3726114726116839e-03
+-1.3703419582914986e-03
+-1.3680741359002597e-03
+-1.3658080053251546e-03
+-1.3635435667229373e-03
+-1.3612808201959392e-03
+-1.3590197650388087e-03
+-1.3567604000178646e-03
+-1.3545027240049867e-03
+-1.3522467365772606e-03
+-1.3499924375796092e-03
+-1.3477398269107262e-03
+-1.3454889046499207e-03
+-1.3432396709111064e-03
+-1.3409921253753855e-03
+-1.3387462668879371e-03
+-1.3365020942164914e-03
+-1.3342596066604790e-03
+-1.3320188041269618e-03
+-1.3297796865594281e-03
+-1.3275422539416706e-03
+-1.3253065062849769e-03
+-1.3230724434802989e-03
+-1.3208400646379848e-03
+-1.3186093685582159e-03
+-1.3163803542897950e-03
+-1.3141530217681261e-03
+-1.3119273711246552e-03
+-1.3097034023685031e-03
+-1.3074811152620428e-03
+-1.3052605095303959e-03
+-1.3030415846543891e-03
+-1.3008243398238998e-03
+-1.2986087742357197e-03
+-1.2963948874052608e-03
+-1.2941826790745839e-03
+-1.2919721490217404e-03
+-1.2897632972361278e-03
+-1.2875561237949804e-03
+-1.2853506285814427e-03
+-1.2831468107543048e-03
+-1.2809446693052352e-03
+-1.2787442034871194e-03
+-1.2765454131033040e-03
+-1.2743482980286506e-03
+-1.2721528582014803e-03
+-1.2699590936388839e-03
+-1.2677670043264937e-03
+-1.2655765897350854e-03
+-1.2633878489536005e-03
+-1.2612007811307635e-03
+-1.2590153859062285e-03
+-1.2568316631329948e-03
+-1.2546496126903455e-03
+-1.2524692345568544e-03
+-1.2502905287341505e-03
+-1.2481134949858834e-03
+-1.2459381325516492e-03
+-1.2437644406079770e-03
+-1.2415924185926828e-03
+-1.2394220662816462e-03
+-1.2372533834850124e-03
+-1.2350863701907559e-03
+-1.2329210265243334e-03
+-1.2307573525190403e-03
+-1.2285953474896671e-03
+-1.2264350104246192e-03
+-1.2242763404989440e-03
+-1.2221193376589729e-03
+-1.2199640020480577e-03
+-1.2178103336986143e-03
+-1.2156583323877001e-03
+-1.2135079978530120e-03
+-1.2113593296814392e-03
+-1.2092123272564683e-03
+-1.2070669899624505e-03
+-1.2049233174282791e-03
+-1.2027813094799128e-03
+-1.2006409659667061e-03
+-1.1985022868785443e-03
+-1.1963652722720211e-03
+-1.1942299220758091e-03
+-1.1920962356673970e-03
+-1.1899642122768222e-03
+-1.1878338512893297e-03
+-1.1857051524637304e-03
+-1.1835781156176728e-03
+-1.1814527407454239e-03
+-1.1793290280896118e-03
+-1.1772069778722902e-03
+-1.1750865896438980e-03
+-1.1729678623907946e-03
+-1.1708507951672398e-03
+-1.1687353877379923e-03
+-1.1666216402201530e-03
+-1.1645095527319422e-03
+-1.1623991253852173e-03
+-1.1602903582893175e-03
+-1.1581832512669783e-03
+-1.1560778034194351e-03
+-1.1539740137451358e-03
+-1.1518718817078387e-03
+-1.1497714074535886e-03
+-1.1476725911781175e-03
+-1.1455754329915602e-03
+-1.1434799329291291e-03
+-1.1413860909663088e-03
+-1.1392939065771822e-03
+-1.1372033789761459e-03
+-1.1351145074782051e-03
+-1.1330272918839111e-03
+-1.1309417321371891e-03
+-1.1288578282660890e-03
+-1.1267755805201803e-03
+-1.1246949891767452e-03
+-1.1226160540310378e-03
+-1.1205387741411918e-03
+-1.1184631485363105e-03
+-1.1163891768965737e-03
+-1.1143168594960392e-03
+-1.1122461966049594e-03
+-1.1101771882573469e-03
+-1.1081098343594595e-03
+-1.1060441347412288e-03
+-1.1039800888606888e-03
+-1.1019176960611820e-03
+-1.0998569558690267e-03
+-1.0977978683150303e-03
+-1.0957404335155024e-03
+-1.0936846515423194e-03
+-1.0916305223964825e-03
+-1.0895780460594550e-03
+-1.0875272222351320e-03
+-1.0854780503635774e-03
+-1.0834305299072310e-03
+-1.0813846606487999e-03
+-1.0793404425517819e-03
+-1.0772978756159737e-03
+-1.0752569600192014e-03
+-1.0732176959967010e-03
+-1.0711800835387568e-03
+-1.0691441219286470e-03
+-1.0671098103282959e-03
+-1.0650771482974511e-03
+-1.0630461360579050e-03
+-1.0610167738889481e-03
+-1.0589890619542965e-03
+-1.0569630003031941e-03
+-1.0549385889387114e-03
+-1.0529158274385163e-03
+-1.0508947151296607e-03
+-1.0488752514283221e-03
+-1.0468574362542317e-03
+-1.0448412696979436e-03
+-1.0428267519117730e-03
+-1.0408138832342768e-03
+-1.0388026640334622e-03
+-1.0367930942112942e-03
+-1.0347851728604160e-03
+-1.0327788990209515e-03
+-1.0307742724239050e-03
+-1.0287712935133368e-03
+-1.0267699627380215e-03
+-1.0247702802408016e-03
+-1.0227722459764655e-03
+-1.0207758598441373e-03
+-1.0187811214400781e-03
+-1.0167880302530451e-03
+-1.0147965858977675e-03
+-1.0128067883881937e-03
+-1.0108186378174221e-03
+-1.0088321343102726e-03
+-1.0068472780490642e-03
+-1.0048640692095147e-03
+-1.0028825076339818e-03
+-1.0009025928062962e-03
+-9.9892432422528832e-04
+-9.9694770176688894e-04
+-9.9497272554883933e-04
+-9.9299939570699478e-04
+-9.9102771246222508e-04
+-9.8905767606696413e-04
+-9.8708928659641221e-04
+-9.8512254353766817e-04
+-9.8315744625855606e-04
+-9.8119399440399642e-04
+-9.7923218814326791e-04
+-9.7727202770437152e-04
+-9.7531351332561921e-04
+-9.7335664525687753e-04
+-9.7140142370775648e-04
+-9.6944784838872322e-04
+-9.6749591867641724e-04
+-9.6554563403397371e-04
+-9.6359699450890529e-04
+-9.6165000037603209e-04
+-9.5970465190377610e-04
+-9.5776094933654730e-04
+-9.5581889291155621e-04
+-9.5387848261016008e-04
+-9.5193971790812743e-04
+-9.5000259823418910e-04
+-9.4806712339736148e-04
+-9.4613329365082321e-04
+-9.4420110927198489e-04
+-9.4227057052632165e-04
+-9.4034167767098479e-04
+-9.3841443088441196e-04
+-9.3648882982435373e-04
+-9.3456487393669518e-04
+-9.3264256282164836e-04
+-9.3072189664409244e-04
+-9.2880287569745655e-04
+-9.2688550026828037e-04
+-9.2496977062888209e-04
+-9.2305568703970929e-04
+-9.2114324941999619e-04
+-9.1923245727363397e-04
+-9.1732331011203083e-04
+-9.1541580789546802e-04
+-9.1350995091063958e-04
+-9.1160573945309957e-04
+-9.0970317382884182e-04
+-9.0780225434830184e-04
+-9.0590298117639207e-04
+-9.0400535392196307e-04
+-9.0210937206244488e-04
+-9.0021503532372192e-04
+-8.9832234396752223e-04
+-8.9643129832517603e-04
+-8.9454189872363013e-04
+-8.9265414548426992e-04
+-8.9076803889767198e-04
+-8.8888357880913152e-04
+-8.8700076472637867e-04
+-8.8511959622196391e-04
+-8.8324007340488621e-04
+-8.8136219662279141e-04
+-8.7948596622155876e-04
+-8.7761138253563081e-04
+-8.7573844589559208e-04
+-8.7386715641090643e-04
+-8.7199751369261504e-04
+-8.7012951729159961e-04
+-8.6826316708562873e-04
+-8.6639846338478377e-04
+-8.6453540652994462e-04
+-8.6267399687944195e-04
+-8.6081423480539659e-04
+-8.5895612061315382e-04
+-8.5709965409031853e-04
+-8.5524483478377630e-04
+-8.5339166237172550e-04
+-8.5154013708950340e-04
+-8.4969025931867781e-04
+-8.4784202943494604e-04
+-8.4599544780017020e-04
+-8.4415051476743679e-04
+-8.4230723038718148e-04
+-8.4046559429256154e-04
+-8.3862560611044435e-04
+-8.3678726586886227e-04
+-8.3495057392626350e-04
+-8.3311553065369985e-04
+-8.3128213644460206e-04
+-8.2945039170327173e-04
+-8.2762029671181109e-04
+-8.2579185121383681e-04
+-8.2396505480538567e-04
+-8.2213990729706305e-04
+-8.2031640902828376e-04
+-8.1849456041826010e-04
+-8.1667436187544680e-04
+-8.1485581379283332e-04
+-8.1303891654047522e-04
+-8.1122367010302322e-04
+-8.0941007413429993e-04
+-8.0759812833295622e-04
+-8.0578783287281203e-04
+-8.0397918816879773e-04
+-8.0217219463966981e-04
+-8.0036685271312857e-04
+-7.9856316281902396e-04
+-7.9676112519144358e-04
+-7.9496073955977620e-04
+-7.9316200557868501e-04
+-7.9136492320528297e-04
+-7.8956949285009478e-04
+-7.8777571496044469e-04
+-7.8598358997494073e-04
+-7.8419311832439421e-04
+-7.8240430038961466e-04
+-7.8061713610316015e-04
+-7.7883162516007107e-04
+-7.7704776735656837e-04
+-7.7526556298944621e-04
+-7.7348501250684492e-04
+-7.7170611636002669e-04
+-7.6992887500858742e-04
+-7.6815328890895908e-04
+-7.6637935823769740e-04
+-7.6460708273374698e-04
+-7.6283646211694597e-04
+-7.6106749649320780e-04
+-7.5930018632834357e-04
+-7.5753453210224240e-04
+-7.5577053429799279e-04
+-7.5400819340045258e-04
+-7.5224750979296755e-04
+-7.5048848334307748e-04
+-7.4873111375514092e-04
+-7.4697540091984331e-04
+-7.4522134525424328e-04
+-7.4346894726757260e-04
+-7.4171820746314144e-04
+-7.3996912633460114e-04
+-7.3822170435808700e-04
+-7.3647594164659034e-04
+-7.3473183796034984e-04
+-7.3298939309028826e-04
+-7.3124860728149906e-04
+-7.2950948104130438e-04
+-7.2777201488163500e-04
+-7.2603620932206500e-04
+-7.2430206488457083e-04
+-7.2256958192122795e-04
+-7.2083876028171292e-04
+-7.1910959972670547e-04
+-7.1738210028470157e-04
+-7.1565626244000544e-04
+-7.1393208672154782e-04
+-7.1220957366397667e-04
+-7.1048872380772687e-04
+-7.0876953765226672e-04
+-7.0705201525965216e-04
+-7.0533615642840060e-04
+-7.0362196104009514e-04
+-7.0190942946120219e-04
+-7.0019856222668694e-04
+-6.9848935987547745e-04
+-6.9678182295825476e-04
+-6.9507595202518944e-04
+-6.9337174737801313e-04
+-6.9166920887718043e-04
+-6.8996833635151511e-04
+-6.8826912997871326e-04
+-6.8657159030445091e-04
+-6.8487571789272459e-04
+-6.8318151331587011e-04
+-6.8148897715146473e-04
+-6.7979810989288235e-04
+-6.7810891153864217e-04
+-6.7642138190728159e-04
+-6.7473552097503230e-04
+-6.7305132923064256e-04
+-6.7136880726661379e-04
+-6.6968795567383269e-04
+-6.6800877504019250e-04
+-6.6633126594103562e-04
+-6.6465542861621272e-04
+-6.6298126293682573e-04
+-6.6130876879077756e-04
+-6.5963794649018942e-04
+-6.5796879662532082e-04
+-6.5630131979377228e-04
+-6.5463551660856624e-04
+-6.5297138768857582e-04
+-6.5130893350343728e-04
+-6.4964815401529733e-04
+-6.4798904908063405e-04
+-6.4633161880690826e-04
+-6.4467586378748418e-04
+-6.4302178467039205e-04
+-6.4136938207548478e-04
+-6.3971865659034053e-04
+-6.3806960877131505e-04
+-6.3642223880378099e-04
+-6.3477654661944327e-04
+-6.3313253221423526e-04
+-6.3149019603190443e-04
+-6.2984953869458398e-04
+-6.2821056082812941e-04
+-6.2657326307002232e-04
+-6.2493764605876952e-04
+-6.2330371021307896e-04
+-6.2167145550722717e-04
+-6.2004088187183313e-04
+-6.1841198955949177e-04
+-6.1678477920714357e-04
+-6.1515925147299162e-04
+-6.1353540699817996e-04
+-6.1191324641169059e-04
+-6.1029277028110129e-04
+-6.0867397875788822e-04
+-6.0705687182016383e-04
+-6.0544144956470769e-04
+-6.0382771253381573e-04
+-6.0221566137386086e-04
+-6.0060529673903941e-04
+-5.9899661930007452e-04
+-5.9738962972134769e-04
+-5.9578432836887194e-04
+-5.9418071523745100e-04
+-5.9257879032638937e-04
+-5.9097855402882274e-04
+-5.8938000703063879e-04
+-5.8778315002088377e-04
+-5.8618798366145758e-04
+-5.8459450860243439e-04
+-5.8300272538957501e-04
+-5.8141263416020732e-04
+-5.7982423495253415e-04
+-5.7823752798103606e-04
+-5.7665251384932017e-04
+-5.7506919321376941e-04
+-5.7348756676039937e-04
+-5.7190763521365378e-04
+-5.7032939927489207e-04
+-5.6875285925790068e-04
+-5.6717801517613964e-04
+-5.6560486709472224e-04
+-5.6403341552653963e-04
+-5.6246366118838499e-04
+-5.6089560479428155e-04
+-5.5932924704263267e-04
+-5.5776458862713833e-04
+-5.5620163006912793e-04
+-5.5464037149218772e-04
+-5.5308081297004421e-04
+-5.5152295483444581e-04
+-5.4996679776595403e-04
+-5.4841234247070096e-04
+-5.4685958966827050e-04
+-5.4530854008911177e-04
+-5.4375919441159836e-04
+-5.4221155289912982e-04
+-5.4066561561764341e-04
+-5.3912138273748162e-04
+-5.3757885488379725e-04
+-5.3603803280412668e-04
+-5.3449891723920246e-04
+-5.3296150891333778e-04
+-5.3142580854325934e-04
+-5.2989181660300928e-04
+-5.2835953322457837e-04
+-5.2682895853330732e-04
+-5.2530009298309608e-04
+-5.2377293730442747e-04
+-5.2224749223813891e-04
+-5.2072375853947652e-04
+-5.1920173697084975e-04
+-5.1768142819856285e-04
+-5.1616283245470729e-04
+-5.1464594984927767e-04
+-5.1313078065623647e-04
+-5.1161732556337044e-04
+-5.1010558532296475e-04
+-5.0859556069909840e-04
+-5.0708725247318421e-04
+-5.0558066140957082e-04
+-5.0407578793367435e-04
+-5.0257263217356888e-04
+-5.0107119429408621e-04
+-4.9957147487189677e-04
+-4.9807347469748306e-04
+-4.9657719456010717e-04
+-4.9508263523463485e-04
+-4.9358979749138500e-04
+-4.9209868194769152e-04
+-4.9060928881693373e-04
+-4.8912161825082274e-04
+-4.8763567064756075e-04
+-4.8615144678316362e-04
+-4.8466894746496673e-04
+-4.8318817348674744e-04
+-4.8170912562988852e-04
+-4.8023180463524278e-04
+-4.7875621087211496e-04
+-4.7728234450840682e-04
+-4.7581020579693522e-04
+-4.7433979542216184e-04
+-4.7287111420230092e-04
+-4.7140416295058675e-04
+-4.6993894246637912e-04
+-4.6847545354331466e-04
+-4.6701369675640020e-04
+-4.6555367233109141e-04
+-4.6409538047583083e-04
+-4.6263882170176736e-04
+-4.6118399680843044e-04
+-4.5973090660729547e-04
+-4.5827955191448018e-04
+-4.5682993354872889e-04
+-4.5538205225264768e-04
+-4.5393590837198005e-04
+-4.5249150212375990e-04
+-4.5104883386156048e-04
+-4.4960790433420060e-04
+-4.4816871436164252e-04
+-4.4673126476948934e-04
+-4.4529555639275312e-04
+-4.4386159005418014e-04
+-4.4242936627782078e-04
+-4.4099888529120439e-04
+-4.3957014734543909e-04
+-4.3814315306686647e-04
+-4.3671790330340857e-04
+-4.3529439890506341e-04
+-4.3387264071747758e-04
+-4.3245262958473428e-04
+-4.3103436621664502e-04
+-4.2961785091618265e-04
+-4.2820308391215510e-04
+-4.2679006565130343e-04
+-4.2537879695972046e-04
+-4.2396927870134445e-04
+-4.2256151173574108e-04
+-4.2115549691795290e-04
+-4.1975123507033695e-04
+-4.1834872666033154e-04
+-4.1694797193669923e-04
+-4.1554897121615141e-04
+-4.1415172522370035e-04
+-4.1275623482971960e-04
+-4.1136250090211625e-04
+-4.0997052430040740e-04
+-4.0858030588044296e-04
+-4.0719184630507799e-04
+-4.0580514588652483e-04
+-4.0442020491028471e-04
+-4.0303702393659665e-04
+-4.0165560382185157e-04
+-4.0027594543728452e-04
+-3.9889804965598003e-04
+-3.9752191735221130e-04
+-3.9614754933662807e-04
+-3.9477494603648117e-04
+-3.9340410773617060e-04
+-3.9203503483980042e-04
+-3.9066772815039586e-04
+-3.8930218855379699e-04
+-3.8793841693443467e-04
+-3.8657641417406643e-04
+-3.8521618114481797e-04
+-3.8385771845156748e-04
+-3.8250102639899371e-04
+-3.8114610530412009e-04
+-3.7979295583067898e-04
+-3.7844157887482051e-04
+-3.7709197533630518e-04
+-3.7574414611062041e-04
+-3.7439809209157803e-04
+-3.7305381405975703e-04
+-3.7171131240106145e-04
+-3.7037058741691277e-04
+-3.6903163959825535e-04
+-3.6769446981144751e-04
+-3.6635907896673367e-04
+-3.6502546796540563e-04
+-3.6369363769827472e-04
+-3.6236358903126434e-04
+-3.6103532251460866e-04
+-3.5970883847786118e-04
+-3.5838413730233845e-04
+-3.5706121974352333e-04
+-3.5574008670952601e-04
+-3.5442073910621691e-04
+-3.5310317782963910e-04
+-3.5178740377255180e-04
+-3.5047341766770583e-04
+-3.4916121991677670e-04
+-3.4785081088705366e-04
+-3.4654219117128402e-04
+-3.4523536163728186e-04
+-3.4393032317099723e-04
+-3.4262707667826131e-04
+-3.4132562307939593e-04
+-3.4002596324330059e-04
+-3.3872809767727469e-04
+-3.3743202673436882e-04
+-3.3613775086290221e-04
+-3.3484527087834190e-04
+-3.3355458768409498e-04
+-3.3226570219087759e-04
+-3.3097861532520762e-04
+-3.2969332800910847e-04
+-3.2840984092152067e-04
+-3.2712815443227251e-04
+-3.2584826891219682e-04
+-3.2457018504036556e-04
+-3.2329390373006143e-04
+-3.2201942590015699e-04
+-3.2074675246761188e-04
+-3.1947588434853293e-04
+-3.1820682236960424e-04
+-3.1693956699837048e-04
+-3.1567411861289501e-04
+-3.1441047774199060e-04
+-3.1314864525510403e-04
+-3.1188862206849201e-04
+-3.1063040910033309e-04
+-3.0937400727135345e-04
+-3.0811941748407800e-04
+-3.0686664035391100e-04
+-3.0561567626884677e-04
+-3.0436652565316811e-04
+-3.0311918925990893e-04
+-3.0187366799532548e-04
+-3.0062996277273590e-04
+-2.9938807453158543e-04
+-2.9814800421763257e-04
+-2.9690975261962356e-04
+-2.9567332015538326e-04
+-2.9443870719429255e-04
+-2.9320591433457550e-04
+-2.9197494249070020e-04
+-2.9074579259963975e-04
+-2.8951846558750063e-04
+-2.8829296237141845e-04
+-2.8706928382817070e-04
+-2.8584743050819706e-04
+-2.8462740280302463e-04
+-2.8340920118446149e-04
+-2.8219282648350214e-04
+-2.8097827963023718e-04
+-2.7976556155060844e-04
+-2.7855467316030037e-04
+-2.7734561536943533e-04
+-2.7613838888920555e-04
+-2.7493299414416643e-04
+-2.7372943155172806e-04
+-2.7252770179871371e-04
+-2.7132780580373670e-04
+-2.7012974449191243e-04
+-2.6893351877928159e-04
+-2.6773912957726886e-04
+-2.6654657772539144e-04
+-2.6535586373038192e-04
+-2.6416698800299249e-04
+-2.6297995107875855e-04
+-2.6179475381575009e-04
+-2.6061139712363183e-04
+-2.5942988192210591e-04
+-2.5825020914595697e-04
+-2.5707237971637624e-04
+-2.5589639427202343e-04
+-2.5472225319824317e-04
+-2.5354995691013749e-04
+-2.5237950617295235e-04
+-2.5121090193790888e-04
+-2.5004414514680771e-04
+-2.4887923668737388e-04
+-2.4771617743077790e-04
+-2.4655496814658662e-04
+-2.4539560932957554e-04
+-2.4423810143107033e-04
+-2.4308244506006995e-04
+-2.4192864107268496e-04
+-2.4077669034786682e-04
+-2.3962659379035120e-04
+-2.3847835232896445e-04
+-2.3733196685963526e-04
+-2.3618743795569426e-04
+-2.3504476601159341e-04
+-2.3390395148846499e-04
+-2.3276499519679869e-04
+-2.3162789805802978e-04
+-2.3049266098538299e-04
+-2.2935928486870848e-04
+-2.2822777059130261e-04
+-2.2709811886623179e-04
+-2.2597033012824539e-04
+-2.2484440479753886e-04
+-2.2372034353905666e-04
+-2.2259814725603043e-04
+-2.2147781685894995e-04
+-2.2035935323201728e-04
+-2.1924275724422078e-04
+-2.1812802970959364e-04
+-2.1701517114947500e-04
+-2.1590418198790901e-04
+-2.1479506275088372e-04
+-2.1368781426679741e-04
+-2.1258243741981172e-04
+-2.1147893309302990e-04
+-2.1037730216774944e-04
+-2.0927754551533072e-04
+-2.0817966377670435e-04
+-2.0708365735902593e-04
+-2.0598952668592147e-04
+-2.0489727246732756e-04
+-2.0380689558608620e-04
+-2.0271839692565378e-04
+-2.0163177735950253e-04
+-2.0054703775757886e-04
+-1.9946417889126028e-04
+-1.9838320122587361e-04
+-1.9730410516915781e-04
+-1.9622689127647970e-04
+-1.9515156036604444e-04
+-1.9407811328375386e-04
+-1.9300655089038207e-04
+-1.9193687406242538e-04
+-1.9086908365173279e-04
+-1.8980318022416846e-04
+-1.8873916416541544e-04
+-1.8767703591146979e-04
+-1.8661679621109084e-04
+-1.8555844592710495e-04
+-1.8450198591434764e-04
+-1.8344741700111850e-04
+-1.8239474000904086e-04
+-1.8134395562598182e-04
+-1.8029506429121422e-04
+-1.7924806642358814e-04
+-1.7820296262491297e-04
+-1.7715975369855263e-04
+-1.7611844045985707e-04
+-1.7507902374346490e-04
+-1.7404150439669059e-04
+-1.7300588321558628e-04
+-1.7197216067794060e-04
+-1.7094033714007545e-04
+-1.6991041305169189e-04
+-1.6888238918165519e-04
+-1.6785626636669959e-04
+-1.6683204543334657e-04
+-1.6580972718829826e-04
+-1.6478931242939457e-04
+-1.6377080175750277e-04
+-1.6275419554736200e-04
+-1.6173949418138274e-04
+-1.6072669829629736e-04
+-1.5971580870313909e-04
+-1.5870682621212451e-04
+-1.5769975160608276e-04
+-1.5669458565690256e-04
+-1.5569132906195543e-04
+-1.5468998225244139e-04
+-1.5369054560098456e-04
+-1.5269301960118902e-04
+-1.5169740499186931e-04
+-1.5070370254159532e-04
+-1.4971191302214651e-04
+-1.4872203720913297e-04
+-1.4773407586040073e-04
+-1.4674802949250163e-04
+-1.4576389844955155e-04
+-1.4478168311193875e-04
+-1.4380138413304158e-04
+-1.4282300228025819e-04
+-1.4184653831310402e-04
+-1.4087199296013581e-04
+-1.3989936694203499e-04
+-1.3892866087344827e-04
+-1.3795987514449333e-04
+-1.3699301012070681e-04
+-1.3602806631028531e-04
+-1.3506504439931939e-04
+-1.3410394508736983e-04
+-1.3314476910677563e-04
+-1.3218751721429727e-04
+-1.3123219012519421e-04
+-1.3027878825277420e-04
+-1.2932731187848058e-04
+-1.2837776135864461e-04
+-1.2743013734588823e-04
+-1.2648444056551693e-04
+-1.2554067173316369e-04
+-1.2459883154305792e-04
+-1.2365892068230501e-04
+-1.2272093967237709e-04
+-1.2178488881945898e-04
+-1.2085076842907952e-04
+-1.1991857901520115e-04
+-1.1898832125367010e-04
+-1.1805999582322393e-04
+-1.1713360339236224e-04
+-1.1620914462491132e-04
+-1.1528662012202818e-04
+-1.1436603022689854e-04
+-1.1344737521671638e-04
+-1.1253065546988050e-04
+-1.1161587159889350e-04
+-1.1070302424927270e-04
+-1.0979211406700458e-04
+-1.0888314169871120e-04
+-1.0797610777766877e-04
+-1.0707101272075219e-04
+-1.0616785676965139e-04
+-1.0526664019102467e-04
+-1.0436736348985887e-04
+-1.0347002728482236e-04
+-1.0257463219551334e-04
+-1.0168117884251883e-04
+-1.0078966784634496e-04
+-9.9900099717873921e-05
+-9.9012474702833445e-05
+-9.8126793010886452e-05
+-9.7243055004641010e-05
+-9.6361261262771259e-05
+-9.5481412379608586e-05
+-9.4603508937851595e-05
+-9.3727551510384120e-05
+-9.2853540641634299e-05
+-9.1981476640530294e-05
+-9.1111359698651997e-05
+-9.0243190060097228e-05
+-8.9376968210629664e-05
+-8.8512694704364681e-05
+-8.7650370091927850e-05
+-8.6789994915104877e-05
+-8.5931569711527534e-05
+-8.5075094873000590e-05
+-8.4220570576511660e-05
+-8.3367996991696330e-05
+-8.2517374470292024e-05
+-8.1668703524156620e-05
+-8.0821984669717621e-05
+-7.9977218415582031e-05
+-7.9134405266287005e-05
+-7.8293545673449518e-05
+-7.7454639837588031e-05
+-7.6617687884936758e-05
+-7.5782690028817153e-05
+-7.4949646713113092e-05
+-7.4118558419296288e-05
+-7.3289425621341010e-05
+-7.2462248781703095e-05
+-7.1637028352590246e-05
+-7.0813764603149134e-05
+-6.9992457634787043e-05
+-6.9173107565028780e-05
+-6.8355714718907327e-05
+-6.7540279534205984e-05
+-6.6726802447547169e-05
+-6.5915283884178516e-05
+-6.5105724265698218e-05
+-6.4298123928145578e-05
+-6.3492482970516873e-05
+-6.2688801452966147e-05
+-6.1887079558723201e-05
+-6.1087317668254962e-05
+-6.0289516179227499e-05
+-5.9493675477717327e-05
+-5.8699795938734790e-05
+-5.7907877915552226e-05
+-5.7117921552426331e-05
+-5.6329926875065918e-05
+-5.5543893948937288e-05
+-5.4759823054299216e-05
+-5.3977714541317033e-05
+-5.3197568756050787e-05
+-5.2419386032542962e-05
+-5.1643166701016577e-05
+-5.0868910968920552e-05
+-5.0096618838427912e-05
+-4.9326290298959765e-05
+-4.8557925494485773e-05
+-4.7791524722747908e-05
+-4.7027088286889405e-05
+-4.6264616477362095e-05
+-4.5504109577105781e-05
+-4.4745567828191821e-05
+-4.3988991249202559e-05
+-4.3234379782577213e-05
+-4.2481733438212896e-05
+-4.1731052431123202e-05
+-4.0982337015049773e-05
+-4.0235587437279278e-05
+-3.9490803933835908e-05
+-3.8747986733140068e-05
+-3.8007135904621084e-05
+-3.7268251352866929e-05
+-3.6531332991098894e-05
+-3.5796380910954560e-05
+-3.5063395314256406e-05
+-3.4332376402146643e-05
+-3.3603324362490328e-05
+-3.2876239378388675e-05
+-3.2151121563806795e-05
+-3.1427970812722579e-05
+-3.0706786976478302e-05
+-2.9987570005816194e-05
+-2.9270320032502560e-05
+-2.8555037207107353e-05
+-2.7841721669333355e-05
+-2.7130373547142511e-05
+-2.6420992951969787e-05
+-2.5713579810283006e-05
+-2.5008133929389428e-05
+-2.4304655145567987e-05
+-2.3603143482049620e-05
+-2.2903599031907934e-05
+-2.2206021884157739e-05
+-2.1510412113878134e-05
+-2.0816769792342936e-05
+-2.0125094889367371e-05
+-1.9435387181857890e-05
+-1.8747646429517301e-05
+-1.8061872518414078e-05
+-1.7378065476887027e-05
+-1.6696225339875893e-05
+-1.6016352130182344e-05
+-1.5338445862452384e-05
+-1.4662506519297892e-05
+-1.3988533881062669e-05
+-1.3316527649024509e-05
+-1.2646487577110314e-05
+-1.1978413603877922e-05
+-1.1312305708130334e-05
+-1.0648163860349994e-05
+-9.9859880144981440e-06
+-9.3257781183268651e-06
+-8.6675339864645161e-06
+-8.0112552773454829e-06
+-7.3569416518765142e-06
+-6.7045929193773036e-06
+-6.0542089931548015e-06
+-5.4057897862350508e-06
+-4.7593351954816460e-06
+-4.1148451111477291e-06
+-3.4723193695518662e-06
+-2.8317576095028504e-06
+-2.1931594250909240e-06
+-1.5565244876871852e-06
+-9.2185262895265765e-07
+-2.8914370014981629e-07
+3.4160245845933798e-07
+9.7038602006444921e-07
+1.5972071701998272e-06
+2.2220662539822234e-06
+2.8449637331085730e-06
+3.4659000492227728e-06
+4.0848754848380926e-06
+4.7018902544195729e-06
+5.3169445767194450e-06
+5.9300386879417916e-06
+6.5411728289203270e-06
+7.1503473225968282e-06
+7.7575626698578522e-06
+8.3628193921473056e-06
+8.9661179093046888e-06
+9.5674585116696162e-06
+1.0166841482170655e-05
+1.0764267118428516e-05
+1.1359735729253131e-05
+1.1953247647325929e-05
+1.2544803379160803e-05
+1.3134403508982185e-05
+1.3722048583144372e-05
+1.4307738994044112e-05
+1.4891475095359387e-05
+1.5473257247439041e-05
+1.6053085825742272e-05
+1.6630961210536745e-05
+1.7206883893710165e-05
+1.7780854515448214e-05
+1.8352873718458677e-05
+1.8922942024283025e-05
+1.9491059858274726e-05
+2.0057227645436408e-05
+2.0621445828587021e-05
+2.1183714858869372e-05
+2.1744035229281884e-05
+2.2302407609345386e-05
+2.2858832714949600e-05
+2.3413311202301448e-05
+2.3965843586266195e-05
+2.4516430361546262e-05
+2.5065072036254452e-05
+2.5611769137078391e-05
+2.6156522199946538e-05
+2.6699331892488406e-05
+2.7240198991303734e-05
+2.7779124260584708e-05
+2.8316108336467369e-05
+2.8851151792579244e-05
+2.9384255206180619e-05
+2.9915419172485470e-05
+3.0444644291856969e-05
+3.0971931230152796e-05
+3.1497280815441457e-05
+3.2020693898877148e-05
+3.2542171252022858e-05
+3.3061713531494070e-05
+3.3579321385810588e-05
+3.4094995479029147e-05
+3.4608736488604198e-05
+3.5120545109979368e-05
+3.5630422189540316e-05
+3.6138368650631382e-05
+3.6644385388873012e-05
+3.7148473168329541e-05
+3.7650632714933920e-05
+3.8150864762702810e-05
+3.8649170066608456e-05
+3.9145549386573600e-05
+3.9640003571534087e-05
+4.0132533604487685e-05
+4.0623140474624751e-05
+4.1111825077575868e-05
+4.1598588224895581e-05
+4.2083430726975154e-05
+4.2566353410778641e-05
+4.3047357112093521e-05
+4.3526442698827889e-05
+4.4003611194881454e-05
+4.4478863671490069e-05
+4.4952201155805682e-05
+4.5423624555419292e-05
+4.5893134758051061e-05
+4.6360732663729988e-05
+4.6826419191820817e-05
+4.7290195268750404e-05
+4.7752061930964791e-05
+4.8212020317936243e-05
+4.8670071562468265e-05
+4.9126216695606117e-05
+4.9580456691836837e-05
+5.0032792528521106e-05
+5.0483225200796553e-05
+5.0931755709518940e-05
+5.1378385107088568e-05
+5.1823114592199934e-05
+5.2265945388461988e-05
+5.2706878658930716e-05
+5.3145915467429091e-05
+5.3583056869331522e-05
+5.4018303936490386e-05
+5.4451657756837445e-05
+5.4883119431421529e-05
+5.5312690187042333e-05
+5.5740371323447960e-05
+5.6166164121733088e-05
+5.6590069758240639e-05
+5.7012089374380945e-05
+5.7432224118650892e-05
+5.7850475160681075e-05
+5.8266843674919308e-05
+5.8681330908018464e-05
+5.9093938230098652e-05
+5.9504667020240736e-05
+5.9913518583207999e-05
+6.0320494148195695e-05
+6.0725594943018067e-05
+6.1128822216885385e-05
+6.1530177231959430e-05
+6.1929661273770790e-05
+6.2327275758241032e-05
+6.2723022146818168e-05
+6.3116901870060332e-05
+6.3508916262216492e-05
+6.3899066638970037e-05
+6.4287354327036329e-05
+6.4673780672818730e-05
+6.5058347028304882e-05
+6.5441054836239552e-05
+6.5821905635530956e-05
+6.6200900962643802e-05
+6.6578042274158226e-05
+6.6953330976206505e-05
+6.7326768477632697e-05
+6.7698356207970009e-05
+6.8068095604326376e-05
+6.8435988142191598e-05
+6.8802035422202575e-05
+6.9166239070055102e-05
+6.9528600668230801e-05
+6.9889121718703836e-05
+7.0247803715267184e-05
+7.0604648168557621e-05
+7.0959656607809759e-05
+7.1312830571624387e-05
+7.1664171699132326e-05
+7.2013681695683453e-05
+7.2361362255141053e-05
+7.2707214992938132e-05
+7.3051241494497199e-05
+7.3393443351708990e-05
+7.3733822178779601e-05
+7.4072379595125222e-05
+7.4409117274497092e-05
+7.4744036996343097e-05
+7.5077140550578134e-05
+7.5408429676031754e-05
+7.5737906052752828e-05
+7.6065571358954192e-05
+7.6391427290765942e-05
+7.6715475556626223e-05
+7.7037717881777936e-05
+7.7358156099314302e-05
+7.7676792085503517e-05
+7.7993627696735962e-05
+7.8308664717776383e-05
+7.8621904917420800e-05
+7.8933350073807926e-05
+7.9243001984058547e-05
+7.9550862449756274e-05
+7.9856933343116609e-05
+8.0161216621054055e-05
+8.0463714241267982e-05
+8.0764428104698380e-05
+8.1063360071629664e-05
+8.1360512004472735e-05
+8.1655885786242088e-05
+8.1949483308579326e-05
+8.2241306490901480e-05
+8.2531357356835759e-05
+8.2819637954299367e-05
+8.3106150302020193e-05
+8.3390896356767442e-05
+8.3673878067830532e-05
+8.3955097399986844e-05
+8.4234556337371130e-05
+8.4512256870942424e-05
+8.4788201071804526e-05
+8.5062391070910294e-05
+8.5334828992668924e-05
+8.5605516904072311e-05
+8.5874456846976208e-05
+8.6141650868804302e-05
+8.6407101039324288e-05
+8.6670809434002093e-05
+8.6932778169436102e-05
+8.7193009453466320e-05
+8.7451505505246942e-05
+8.7708268506772786e-05
+8.7963300591628775e-05
+8.8216603891575184e-05
+8.8468180560052526e-05
+8.8718032767378261e-05
+8.8966162695091518e-05
+8.9212572606297947e-05
+8.9457264801426792e-05
+8.9700241569038575e-05
+8.9941505147893592e-05
+9.0181057763937076e-05
+9.0418901652194612e-05
+9.0655039068747578e-05
+9.0889472273848979e-05
+9.1122203579191617e-05
+9.1353235366328428e-05
+9.1582570019575207e-05
+9.1810209887169023e-05
+9.2036157288073012e-05
+9.2260414542675429e-05
+9.2482983989450237e-05
+9.2703867975519038e-05
+9.2923068867528167e-05
+9.3140589116414538e-05
+9.3356431195862658e-05
+9.3570597561547702e-05
+9.3783090625475541e-05
+9.3993912793443417e-05
+9.4203066484629657e-05
+9.4410554137159701e-05
+9.4616378194104116e-05
+9.4820541159262696e-05
+9.5023045587790854e-05
+9.5223894031891873e-05
+9.5423089005431441e-05
+9.5620633003125878e-05
+9.5816528524651323e-05
+9.6010778092840929e-05
+9.6203384237163680e-05
+9.6394349515218917e-05
+9.6583676555951501e-05
+9.6771367999030471e-05
+9.6957426462089303e-05
+9.7141854530225684e-05
+9.7324654786897343e-05
+9.7505829833658287e-05
+9.7685382288010720e-05
+9.7863314775109659e-05
+9.8039629982956346e-05
+9.8214330632335575e-05
+9.8387419437601749e-05
+9.8558899081146352e-05
+9.8728772235872722e-05
+9.8897041581714795e-05
+9.9063709817268341e-05
+9.9228779644865655e-05
+9.9392253806667984e-05
+9.9554135106169148e-05
+9.9714426350612964e-05
+9.9873130317916246e-05
+1.0003024975906228e-04
+1.0018578742668244e-04
+1.0033974609810093e-04
+1.0049212856409081e-04
+1.0064293762793337e-04
+1.0079217615469048e-04
+1.0093984702865784e-04
+1.0108595312690569e-04
+1.0123049730641760e-04
+1.0137348242070803e-04
+1.0151491132264478e-04
+1.0165478686405679e-04
+1.0179311189960681e-04
+1.0192988934625130e-04
+1.0206512218056235e-04
+1.0219881337794975e-04
+1.0233096587883724e-04
+1.0246158260375842e-04
+1.0259066647785247e-04
+1.0271822045158466e-04
+1.0284424748370008e-04
+1.0296875055004716e-04
+1.0309173267619754e-04
+1.0321319689662216e-04
+1.0333314623913588e-04
+1.0345158372039843e-04
+1.0356851235605310e-04
+1.0368393516284717e-04
+1.0379785515862888e-04
+1.0391027536843513e-04
+1.0402119889156705e-04
+1.0413062887138615e-04
+1.0423856844094378e-04
+1.0434502067344102e-04
+1.0444998862163684e-04
+1.0455347535862783e-04
+1.0465548401950313e-04
+1.0475601775119720e-04
+1.0485507970799000e-04
+1.0495267305700808e-04
+1.0504880096668787e-04
+1.0514346660582113e-04
+1.0523667314356883e-04
+1.0532842375109863e-04
+1.0541872162145454e-04
+1.0550756996122247e-04
+1.0559497197937583e-04
+1.0568093089749978e-04
+1.0576544994169581e-04
+1.0584853234851737e-04
+1.0593018138784558e-04
+1.0601040033607924e-04
+1.0608919245843990e-04
+1.0616656099974515e-04
+1.0624250920422740e-04
+1.0631704035842672e-04
+1.0639015779469620e-04
+1.0646186484664341e-04
+1.0653216483583320e-04
+1.0660106107605416e-04
+1.0666855688431002e-04
+1.0673465559786500e-04
+1.0679936056157282e-04
+1.0686267512806830e-04
+1.0692460267595428e-04
+1.0698514658925670e-04
+1.0704431025233821e-04
+1.0710209705020319e-04
+1.0715851036852672e-04
+1.0721355361028013e-04
+1.0726723019795231e-04
+1.0731954355577555e-04
+1.0737049711659558e-04
+1.0742009431905899e-04
+1.0746833860395840e-04
+1.0751523342504960e-04
+1.0756078224116900e-04
+1.0760498851656924e-04
+1.0764785573443861e-04
+1.0768938738213053e-04
+1.0772958694968573e-04
+1.0776845793249362e-04
+1.0780600382715804e-04
+1.0784222814853805e-04
+1.0787713443296060e-04
+1.0791072621760617e-04
+1.0794300703474161e-04
+1.0797398041318311e-04
+1.0800364988690632e-04
+1.0803201902485141e-04
+1.0805909141029160e-04
+1.0808487062471681e-04
+1.0810936024290739e-04
+1.0813256383816062e-04
+1.0815448499271868e-04
+1.0817512730742125e-04
+1.0819449438583812e-04
+1.0821258984563506e-04
+1.0822941732175404e-04
+1.0824498045006962e-04
+1.0825928286473978e-04
+1.0827232819866566e-04
+1.0828412008814881e-04
+1.0829466219358532e-04
+1.0830395818569994e-04
+1.0831201173419149e-04
+1.0831882650465617e-04
+1.0832440616177866e-04
+1.0832875438453447e-04
+1.0833187488294551e-04
+1.0833377137098584e-04
+1.0833444755806745e-04
+1.0833390714777451e-04
+1.0833215384430845e-04
+1.0832919136660052e-04
+1.0832502344482567e-04
+1.0831965381226052e-04
+1.0831308622300427e-04
+1.0830532444048750e-04
+1.0829637222496118e-04
+1.0828623332366134e-04
+1.0827491148060149e-04
+1.0826241045396766e-04
+1.0824873403412719e-04
+1.0823388601577792e-04
+1.0821787018901026e-04
+1.0820069033777916e-04
+1.0818235024690222e-04
+1.0816285372146529e-04
+1.0814220458268099e-04
+1.0812040665225580e-04
+1.0809746375226629e-04
+1.0807337970496240e-04
+1.0804815833425172e-04
+1.0802180347105526e-04
+1.0799431894818806e-04
+1.0796570860950606e-04
+1.0793597632507665e-04
+1.0790512596848033e-04
+1.0787316140007067e-04
+1.0784008646183827e-04
+1.0780590499594114e-04
+1.0777062087006252e-04
+1.0773423797305361e-04
+1.0769676019559024e-04
+1.0765819143804698e-04
+1.0761853560554405e-04
+1.0757779659956610e-04
+1.0753597830531663e-04
+1.0749308460352220e-04
+1.0744911938901486e-04
+1.0740408659164949e-04
+1.0735799014659501e-04
+1.0731083398756508e-04
+1.0726262204616679e-04
+1.0721335825363935e-04
+1.0716304653758191e-04
+1.0711169082244768e-04
+1.0705929503401480e-04
+1.0700586311038383e-04
+1.0695139899595299e-04
+1.0689590664179412e-04
+1.0683939002980686e-04
+1.0678185315081965e-04
+1.0672329997958540e-04
+1.0666373444909813e-04
+1.0660316048619593e-04
+1.0654158204773473e-04
+1.0647900313588520e-04
+1.0641542775620962e-04
+1.0635085990720845e-04
+1.0628530358102179e-04
+1.0621876276831333e-04
+1.0615124144838779e-04
+1.0608274359448783e-04
+1.0601327318354315e-04
+1.0594283421075986e-04
+1.0587143067693138e-04
+1.0579906659487780e-04
+1.0572574601010766e-04
+1.0565147297311810e-04
+1.0557625150228424e-04
+1.0550008556540340e-04
+1.0542297912804754e-04
+1.0534493620143964e-04
+1.0526596083964942e-04
+1.0518605709712352e-04
+1.0510522901602274e-04
+1.0502348063166315e-04
+1.0494081597501021e-04
+1.0485723905513033e-04
+1.0477275387411708e-04
+1.0468736445043760e-04
+1.0460107484915961e-04
+1.0451388914340920e-04
+1.0442581139395584e-04
+1.0433684564127175e-04
+1.0424699592372868e-04
+1.0415626627497686e-04
+1.0406466072404898e-04
+1.0397218330191969e-04
+1.0387883806119506e-04
+1.0378462906705918e-04
+1.0368956038593373e-04
+1.0359363609005348e-04
+1.0349686025359046e-04
+1.0339923694179517e-04
+1.0330077019333098e-04
+1.0320146404203790e-04
+1.0310132253027269e-04
+1.0300034971498979e-04
+1.0289854965541251e-04
+1.0279592643062772e-04
+1.0269248413996591e-04
+1.0258822687934544e-04
+1.0248315869839372e-04
+1.0237728361865142e-04
+1.0227060566770950e-04
+1.0216312890949489e-04
+1.0205485742065953e-04
+1.0194579528221976e-04
+1.0183594658877074e-04
+1.0172531543725816e-04
+1.0161390589800241e-04
+1.0150172199369531e-04
+1.0138876774334737e-04
+1.0127504719837391e-04
+1.0116056444460371e-04
+1.0104532356952738e-04
+1.0092932866061841e-04
+1.0081258380533952e-04
+1.0069509308389947e-04
+1.0057686053357393e-04
+1.0045789017590413e-04
+1.0033818604358229e-04
+1.0021775220584182e-04
+1.0009659273939381e-04
+9.9974711723118160e-05
+9.9852113239944933e-05
+9.9728801372144253e-05
+9.9604780171303432e-05
+9.9480053655054618e-05
+9.9354625841880189e-05
+9.9228500781580313e-05
+9.9101682544632086e-05
+9.8974175201661018e-05
+9.8845982821937339e-05
+9.8717109474209940e-05
+9.8587559215150474e-05
+9.8457336060047719e-05
+9.8326444015465908e-05
+9.8194887104258800e-05
+9.8062669381043742e-05
+9.7929794904052253e-05
+9.7796267729915274e-05
+9.7662091913417891e-05
+9.7527271506407082e-05
+9.7391810524660507e-05
+9.7255712959121092e-05
+9.7118982805277822e-05
+9.6981624091502881e-05
+9.6843640859365379e-05
+9.6705037149987069e-05
+9.6565817002755130e-05
+9.6425984456513758e-05
+9.6285543527890410e-05
+9.6144498188265143e-05
+9.6002852404305337e-05
+9.5860610168678448e-05
+9.5717775505301420e-05
+9.5574352439382153e-05
+9.5430344988547196e-05
+9.5285757164980176e-05
+9.5140592974711949e-05
+9.4994856382370080e-05
+9.4848551335203861e-05
+9.4701681788887391e-05
+9.4554251731044229e-05
+9.4406265156811632e-05
+9.4257726060397232e-05
+9.4108638434030578e-05
+9.3959006268755845e-05
+9.3808833522178884e-05
+9.3658124110017663e-05
+9.3506881947525585e-05
+9.3355110981297397e-05
+9.3202815181386254e-05
+9.3049998517484824e-05
+9.2896664952601404e-05
+9.2742818446810718e-05
+9.2588462946975448e-05
+9.2433602347845106e-05
+9.2278240531382761e-05
+9.2122381394746660e-05
+9.1966028868884137e-05
+9.1809186889231929e-05
+9.1651859388673594e-05
+9.1494050296758730e-05
+9.1335763539778569e-05
+9.1177002997696097e-05
+9.1017772514327626e-05
+9.0858075937331825e-05
+9.0697917150804388e-05
+9.0537300055554680e-05
+9.0376228550829605e-05
+9.0214706529046599e-05
+9.0052737880762213e-05
+8.9890326472368082e-05
+8.9727476114083329e-05
+8.9564190608717136e-05
+8.9400473783022151e-05
+8.9236329496343469e-05
+8.9071761609897315e-05
+8.8906773977355505e-05
+8.8741370446254370e-05
+8.8575554857158034e-05
+8.8409330996349429e-05
+8.8242702624094255e-05
+8.8075673509251760e-05
+8.7908247458690799e-05
+8.7740428289577926e-05
+8.7572219815112694e-05
+8.7403625838851286e-05
+8.7234650162172254e-05
+8.7065296551022624e-05
+8.6895568721064194e-05
+8.6725470385846045e-05
+8.6555005288684462e-05
+8.6384177198125834e-05
+8.6212989882421929e-05
+8.6041447100629155e-05
+8.5869552607199855e-05
+8.5697310142802028e-05
+8.5524723385522927e-05
+8.5351795995690629e-05
+8.5178531648329259e-05
+8.5004934055832437e-05
+8.4831006936322490e-05
+8.4656754001390997e-05
+8.4482178952964557e-05
+8.4307285489612342e-05
+8.4132077262022491e-05
+8.3956557878589930e-05
+8.3780730950165820e-05
+8.3604600122284177e-05
+8.3428169058614535e-05
+8.3251441420197547e-05
+8.3074420854770397e-05
+8.2897111006065020e-05
+8.2719515495285691e-05
+8.2541637883705161e-05
+8.2363481723064756e-05
+8.2185050584399964e-05
+8.2006348068526625e-05
+8.1827377778426029e-05
+8.1648143309483341e-05
+8.1468648250091654e-05
+8.1288896181845772e-05
+8.1108890625185740e-05
+8.0928635067165002e-05
+8.0748133002251106e-05
+8.0567387963720099e-05
+8.0386403496960696e-05
+8.0205183142205078e-05
+8.0023730425315544e-05
+7.9842048869144841e-05
+7.9660141961361401e-05
+7.9478013132984731e-05
+7.9295665811110962e-05
+7.9113103448584903e-05
+7.8930329522949188e-05
+7.8747347511638969e-05
+7.8564160881203435e-05
+7.8380773091988367e-05
+7.8197187591234061e-05
+7.8013407757730887e-05
+7.7829436947887733e-05
+7.7645278531290107e-05
+7.7460935915976223e-05
+7.7276412516835954e-05
+7.7091711739888093e-05
+7.6906836976249306e-05
+7.6721791613505960e-05
+7.6536578990904565e-05
+7.6351202399375622e-05
+7.6165665130818180e-05
+7.5979970509127841e-05
+7.5794121877228172e-05
+7.5608122575570718e-05
+7.5421975929596002e-05
+7.5235685259588474e-05
+7.5049253863446004e-05
+7.4862684970727114e-05
+7.4675981798205505e-05
+7.4489147580874954e-05
+7.4302185585669575e-05
+7.4115099082359333e-05
+7.3927891330934501e-05
+7.3740565581199667e-05
+7.3553125076617864e-05
+7.3365572995951576e-05
+7.3177912477819074e-05
+7.2990146667175479e-05
+7.2802278749105461e-05
+7.2614311923087111e-05
+7.2426249382458735e-05
+7.2238094300860410e-05
+7.2049849847649665e-05
+7.1861519157492585e-05
+7.1673105301576164e-05
+7.1484611345274868e-05
+7.1296040379801882e-05
+7.1107395524413604e-05
+7.0918679898425199e-05
+7.0729896605413686e-05
+7.0541048738769884e-05
+7.0352139380002785e-05
+7.0163171539501542e-05
+6.9974148200954131e-05
+6.9785072359753535e-05
+6.9595947050684240e-05
+6.9406775316684246e-05
+6.9217560190416486e-05
+6.9028304684913804e-05
+6.8839011809378233e-05
+6.8649684525986661e-05
+6.8460325743730822e-05
+6.8270938371133992e-05
+6.8081525346284067e-05
+6.7892089627225814e-05
+6.7702634169623319e-05
+6.7513161911565253e-05
+6.7323675784233930e-05
+6.7134178698100626e-05
+6.6944673490938801e-05
+6.6755162984693958e-05
+6.6565650018252789e-05
+6.6376137464302097e-05
+6.6186628199122718e-05
+6.5997125085818641e-05
+6.5807630971962845e-05
+6.5618148699601129e-05
+6.5428681049953640e-05
+6.5239230761425393e-05
+6.5049800576714249e-05
+6.4860393273273741e-05
+6.4671011642840248e-05
+6.4481658471675943e-05
+6.4292336525722789e-05
+6.4103048566040234e-05
+6.3913797321038616e-05
+6.3724585451082255e-05
+6.3535415608693437e-05
+6.3346290469251868e-05
+6.3157212736215801e-05
+6.2968185113604320e-05
+6.2779210289242335e-05
+6.2590290939069842e-05
+6.2401429728597407e-05
+6.2212629251784529e-05
+6.2023892071843016e-05
+6.1835220761302461e-05
+6.1646617929125361e-05
+6.1458086193020705e-05
+6.1269628162188741e-05
+6.1081246427299634e-05
+6.0892943575318512e-05
+6.0704722145529851e-05
+6.0516584616168221e-05
+6.0328533463504920e-05
+6.0140571193885874e-05
+5.9952700336666465e-05
+5.9764923418975453e-05
+5.9577242947116942e-05
+5.9389661418039929e-05
+5.9202181310656816e-05
+5.9014805031048917e-05
+5.8827534966930595e-05
+5.8640373519773509e-05
+5.8453323122364305e-05
+5.8266386211553428e-05
+5.8079565212977303e-05
+5.7892862537304954e-05
+5.7706280590316579e-05
+5.7519821717046379e-05
+5.7333488214084409e-05
+5.7147282380849572e-05
+5.6961206549324721e-05
+5.6775263066780691e-05
+5.6589454276062652e-05
+5.6403782500857284e-05
+5.6218250059663076e-05
+5.6032859240195198e-05
+5.5847612256907888e-05
+5.5662511314061061e-05
+5.5477558637316620e-05
+5.5292756482117323e-05
+5.5108107105054346e-05
+5.4923612744963671e-05
+5.4739275625923343e-05
+5.4555097963534883e-05
+5.4371081907485370e-05
+5.4187229575131530e-05
+5.4003543090168097e-05
+5.3820024605487505e-05
+5.3636676282083515e-05
+5.3453500274264937e-05
+5.3270498719700631e-05
+5.3087673752650495e-05
+5.2905027463742539e-05
+5.2722561880298901e-05
+5.2540279026071395e-05
+5.2358180949997373e-05
+5.2176269722831170e-05
+5.1994547413812661e-05
+5.1813016072839355e-05
+5.1631677739899637e-05
+5.1450534439777552e-05
+5.1269588126675859e-05
+5.1088840734245341e-05
+5.0908294206525354e-05
+5.0727950514613386e-05
+5.0547811633791286e-05
+5.0367879530112025e-05
+5.0188156155664437e-05
+5.0008643458405996e-05
+4.9829343329108023e-05
+4.9650257606918314e-05
+4.9471388132460933e-05
+4.9292736776724837e-05
+4.9114305426942558e-05
+4.8936095965976228e-05
+4.8758110254545399e-05
+4.8580350146567345e-05
+4.8402817470782067e-05
+4.8225513987323203e-05
+4.8048441445006931e-05
+4.7871601609058750e-05
+4.7694996270601750e-05
+4.7518627222293900e-05
+4.7342496241346126e-05
+4.7166605090438227e-05
+4.6990955525079473e-05
+4.6815549237203134e-05
+4.6640387883238841e-05
+4.6465473125051076e-05
+4.6290806654394992e-05
+4.6116390172584383e-05
+4.5942225373548798e-05
+4.5768313930140211e-05
+4.5594657510961636e-05
+4.5421257748047987e-05
+4.5248116213226092e-05
+4.5075234473618226e-05
+4.4902614116545246e-05
+4.4730256749127730e-05
+4.4558163977604196e-05
+4.4386337390810343e-05
+4.4214778567438805e-05
+4.4043489073208288e-05
+4.3872470404630073e-05
+4.3701724035021893e-05
+4.3531251447773953e-05
+4.3361054156416067e-05
+4.3191133679929953e-05
+4.3021491525084367e-05
+4.2852129177665983e-05
+4.2683048119485275e-05
+4.2514249786742112e-05
+4.2345735569047263e-05
+4.2177506855814013e-05
+4.2009565056933959e-05
+4.1841911594752919e-05
+4.1674547889098905e-05
+4.1507475344570835e-05
+4.1340695360411667e-05
+4.1174209313333473e-05
+4.1008018509566768e-05
+4.0842124241752641e-05
+4.0676527817160504e-05
+4.0511230569289558e-05
+4.0346233833847179e-05
+4.0181538933073543e-05
+4.0017147174874359e-05
+3.9853059861204873e-05
+3.9689278234298921e-05
+3.9525803498499593e-05
+3.9362636862488100e-05
+3.9199779564271828e-05
+3.9037232852633306e-05
+3.8874997969768219e-05
+3.8713076136223614e-05
+3.8551468567817241e-05
+3.8390176448505319e-05
+3.8229200902603665e-05
+3.8068543048525807e-05
+3.7908204022769894e-05
+3.7748184981893110e-05
+3.7588487082278618e-05
+3.7429111465652704e-05
+3.7270059264042317e-05
+3.7111331598446575e-05
+3.6952929522215398e-05
+3.6794854062684175e-05
+3.6637106256352480e-05
+3.6479687171392008e-05
+3.6322597882681483e-05
+3.6165839454005735e-05
+3.6009412927465333e-05
+3.5853319341288443e-05
+3.5697559692423593e-05
+3.5542134930104741e-05
+3.5387046002632834e-05
+3.5232293880310316e-05
+3.5077879548623376e-05
+3.4923803990389798e-05
+3.4770068168983337e-05
+3.4616673039954249e-05
+3.4463619541432003e-05
+3.4310908548885331e-05
+3.4158540923764745e-05
+3.4006517539551192e-05
+3.3854839294286391e-05
+3.3703507088624860e-05
+3.3552521810562899e-05
+3.3401884332848155e-05
+3.3251595523507966e-05
+3.3101656198916867e-05
+3.2952067138280950e-05
+3.2802829123656696e-05
+3.2653942962339269e-05
+3.2505409472243515e-05
+3.2357229465931515e-05
+3.2209403735616671e-05
+3.2061933068562901e-05
+3.1914818226244951e-05
+3.1768059915130493e-05
+3.1621658835019493e-05
+3.1475615700058740e-05
+3.1329931242408257e-05
+3.1184606194412617e-05
+3.1039641274615209e-05
+3.0895037191205798e-05
+3.0750794644297536e-05
+3.0606914277385630e-05
+3.0463396709057544e-05
+3.0320242563810852e-05
+3.0177452489964578e-05
+3.0035027141695056e-05
+2.9892967165541439e-05
+2.9751273191018896e-05
+2.9609945844427818e-05
+2.9468985715946190e-05
+2.9328393348476906e-05
+2.9188169282995044e-05
+2.9048314079893827e-05
+2.8908828314751877e-05
+2.8769712561331576e-05
+2.8630967376491651e-05
+2.8492593309318231e-05
+2.8354590895111395e-05
+2.8216960612124533e-05
+2.8079702923850393e-05
+2.7942818303417741e-05
+2.7806307246409912e-05
+2.7670170251358656e-05
+2.7534407806193360e-05
+2.7399020384378077e-05
+2.7264008455621523e-05
+2.7129372445277179e-05
+2.6995112742544455e-05
+2.6861229738386554e-05
+2.6727723846342213e-05
+2.6594595490796935e-05
+2.6461845091991682e-05
+2.6329473051831710e-05
+2.6197479767171283e-05
+2.6065865613690049e-05
+2.5934630915470193e-05
+2.5803775989145384e-05
+2.5673301163946527e-05
+2.5543206787024200e-05
+2.5413493206260164e-05
+2.5284160758432950e-05
+2.5155209770888748e-05
+2.5026640564522870e-05
+2.4898453408321323e-05
+2.4770648545217037e-05
+2.4643226223355713e-05
+2.4516186715564563e-05
+2.4389530301690262e-05
+2.4263257254450270e-05
+2.4137367828388719e-05
+2.4011862274672641e-05
+2.3886740816480014e-05
+2.3762003635470977e-05
+2.3637650910729702e-05
+2.3513682835997604e-05
+2.3390099617992374e-05
+2.3266901462245353e-05
+2.3144088559748596e-05
+2.3021661093873487e-05
+2.2899619238016355e-05
+2.2777963118158491e-05
+2.2656692846125454e-05
+2.2535808540218027e-05
+2.2415310336013860e-05
+2.2295198371809551e-05
+2.2175472778128933e-05
+2.2056133673470761e-05
+2.1937181173489568e-05
+2.1818615357628893e-05
+2.1700436271925035e-05
+2.1582643963088540e-05
+2.1465238495888723e-05
+2.1348219944977276e-05
+2.1231588381974341e-05
+2.1115343862777293e-05
+2.0999486438340759e-05
+2.0884016143837113e-05
+2.0768932970385432e-05
+2.0654236901608278e-05
+2.0539927929916314e-05
+2.0426006061902689e-05
+2.0312471305076171e-05
+2.0199323658958573e-05
+2.0086563115393315e-05
+1.9974189661549096e-05
+1.9862203241374245e-05
+1.9750603774129596e-05
+1.9639391182616230e-05
+1.9528565409799797e-05
+1.9418126405255450e-05
+1.9308074113776631e-05
+1.9198408466169256e-05
+1.9089129390387933e-05
+1.8980236790925438e-05
+1.8871730532769778e-05
+1.8763610477711666e-05
+1.8655876501300386e-05
+1.8548528492868313e-05
+1.8441566341177983e-05
+1.8334989922739173e-05
+1.8228799106758004e-05
+1.8122993754694067e-05
+1.8017573685740643e-05
+1.7912538704576062e-05
+1.7807888621767787e-05
+1.7703623265951006e-05
+1.7599742469129074e-05
+1.7496246056634327e-05
+1.7393133842076976e-05
+1.7290405636703553e-05
+1.7188061222538319e-05
+1.7086100351100834e-05
+1.6984522773920204e-05
+1.6883328258466647e-05
+1.6782516582124383e-05
+1.6682087520105459e-05
+1.6582040834157515e-05
+1.6482376281182007e-05
+1.6383093606019253e-05
+1.6284192514851634e-05
+1.6185672706211755e-05
+1.6087533886933940e-05
+1.5989775779079243e-05
+1.5892398105999982e-05
+1.5795400581923528e-05
+1.5698782911151272e-05
+1.5602544794854273e-05
+1.5506685903393504e-05
+1.5411205887142362e-05
+1.5316104398353715e-05
+1.5221381102784427e-05
+1.5127035671273895e-05
+1.5033067771420427e-05
+1.4939477059900037e-05
+1.4846263190952720e-05
+1.4753425802216824e-05
+1.4660964499538425e-05
+1.4568878885445156e-05
+1.4477168570399966e-05
+1.4385833173861058e-05
+1.4294872315329064e-05
+1.4204285608808803e-05
+1.4114072664586681e-05
+1.4024233086872130e-05
+1.3934766441455083e-05
+1.3845672278994312e-05
+1.3756950155503439e-05
+1.3668599645984670e-05
+1.3580620329573094e-05
+1.3493011779279869e-05
+1.3405773555868681e-05
+1.3318905217968644e-05
+1.3232406302759805e-05
+1.3146276322083413e-05
+1.3060514787244179e-05
+1.2975121221725680e-05
+1.2890095157604007e-05
+1.2805436125607313e-05
+1.2721143646193682e-05
+1.2637217235590090e-05
+1.2553656401594390e-05
+1.2470460620931809e-05
+1.2387629363192396e-05
+1.2305162103455391e-05
+1.2223058328268100e-05
+1.2141317525476120e-05
+1.2059939178105233e-05
+1.1978922763246926e-05
+1.1898267755718370e-05
+1.1817973603637024e-05
+1.1738039735480373e-05
+1.1658465581099933e-05
+1.1579250583270531e-05
+1.1500394190334208e-05
+1.1421895848944416e-05
+1.1343754999133938e-05
+1.1265971079258405e-05
+1.1188543513161005e-05
+1.1111471693003337e-05
+1.1034755007036437e-05
+1.0958392853730137e-05
+1.0882384644668359e-05
+1.0806729791851368e-05
+1.0731427700672390e-05
+1.0656477771458158e-05
+1.0581879400334734e-05
+1.0507631953173910e-05
+1.0433734782223151e-05
+1.0360187243991522e-05
+1.0286988712550494e-05
+1.0214138566405309e-05
+1.0141636179093936e-05
+1.0069480912819887e-05
+9.9976721278499055e-06
+9.9262091693482776e-06
+9.8550913622756073e-06
+9.7843180307638688e-06
+9.7138885081687337e-06
+9.6438021352185029e-06
+9.5740582519937998e-06
+9.5046561918992871e-06
+9.4355952851978174e-06
+9.3668748559092518e-06
+9.2984942015650417e-06
+9.2304526126695334e-06
+9.1627493848585322e-06
+9.0953838260104987e-06
+9.0283552457000363e-06
+8.9616629493392421e-06
+8.8953062365347424e-06
+8.8292844052826883e-06
+8.7635967336390518e-06
+8.6982424830479099e-06
+8.6332209158963891e-06
+8.5685313065116681e-06
+8.5041729350915232e-06
+8.4401450803144567e-06
+8.3764470138977492e-06
+8.3130780055932515e-06
+8.2500373159487088e-06
+8.1873241825458045e-06
+8.1249378395799961e-06
+8.0628775281902988e-06
+8.0011424996135242e-06
+7.9397320056312754e-06
+7.8786452935000884e-06
+7.8178816065477319e-06
+7.7574401855097893e-06
+7.6973202497652520e-06
+7.6375210077258588e-06
+7.5780416703280591e-06
+7.5188814607418029e-06
+7.4600396057076394e-06
+7.4015153297269019e-06
+7.3433078514542623e-06
+7.2854163883877254e-06
+7.2278401458782037e-06
+7.1705783108542343e-06
+7.1136300691566338e-06
+7.0569946153365982e-06
+7.0006711518263457e-06
+6.9446588808158313e-06
+6.8889569996797007e-06
+6.8335647032105492e-06
+6.7784811820067908e-06
+6.7237056062047972e-06
+6.6692371396803773e-06
+6.6150749504109045e-06
+6.5612182175836043e-06
+6.5076661222381841e-06
+6.4544178426005367e-06
+6.4014725524453758e-06
+6.3488294244702914e-06
+6.2964876171993975e-06
+6.2444462757934430e-06
+6.1927045459025533e-06
+6.1412615829330743e-06
+6.0901165477525739e-06
+6.0392686004577056e-06
+5.9887168968678456e-06
+5.9384605914232173e-06
+5.8884988322089660e-06
+5.8388307491365887e-06
+5.7894554689716502e-06
+5.7403721243592879e-06
+5.6915798576478582e-06
+5.6430778119486120e-06
+5.5948651271469533e-06
+5.5469409399589537e-06
+5.4993043855120273e-06
+5.4519545840992520e-06
+5.4048906473473235e-06
+5.3581116886150311e-06
+5.3116168312039078e-06
+5.2654052017563286e-06
+5.2194759257309043e-06
+5.1738281250335380e-06
+5.1284609208070587e-06
+5.0833734260121527e-06
+5.0385647395193418e-06
+4.9940339590969760e-06
+4.9497801894935784e-06
+4.9058025426038216e-06
+4.8621001304059929e-06
+4.8186720622880893e-06
+4.7755174460590986e-06
+4.7326353868669819e-06
+4.6900249749033523e-06
+4.6476852950976080e-06
+4.6056154355456160e-06
+4.5638144942950255e-06
+4.5222815713236844e-06
+4.4810157651103272e-06
+4.4400161714393019e-06
+4.3992818854426558e-06
+4.3588119926370619e-06
+4.3186055682813516e-06
+4.2786616878529222e-06
+4.2389794350176984e-06
+4.1995578986490051e-06
+4.1603961673110959e-06
+4.1214933272324422e-06
+4.0828484637800863e-06
+4.0444606584197355e-06
+4.0063289797983957e-06
+3.9684524939750126e-06
+3.9308302714780619e-06
+3.8934613912223134e-06
+3.8563449329968923e-06
+3.8194799752063901e-06
+3.7828655947162152e-06
+3.7465008674722229e-06
+3.7103848592876464e-06
+3.6745166292547649e-06
+3.6388952377351132e-06
+3.6035197537753548e-06
+3.5683892497704716e-06
+3.5335027976374037e-06
+3.4988594676219722e-06
+3.4644583295696906e-06
+3.4302984482346932e-06
+3.3963788783956271e-06
+3.3626986738606000e-06
+3.3292568941591475e-06
+3.2960526054492231e-06
+3.2630848741750518e-06
+3.2303527657027079e-06
+3.1978553446524895e-06
+3.1655916741808889e-06
+3.1335608079323238e-06
+3.1017617957148527e-06
+3.0701936896486859e-06
+3.0388555502408735e-06
+3.0077464398876990e-06
+2.9768654205392408e-06
+2.9462115532324328e-06
+2.9157838987157953e-06
+2.8855815118775743e-06
+2.8556034405303574e-06
+2.8258487325741247e-06
+2.7963164428386816e-06
+2.7670056311519244e-06
+2.7379153573396206e-06
+2.7090446804500846e-06
+2.6803926592036809e-06
+2.6519583502053522e-06
+2.6237408020568431e-06
+2.5957390614862627e-06
+2.5679521786930091e-06
+2.5403792112985625e-06
+2.5130192178805920e-06
+2.4858712570215197e-06
+2.4589343873097496e-06
+2.4322076668981508e-06
+2.4056901476421133e-06
+2.3793808766617853e-06
+2.3532789020377551e-06
+2.3273832796557538e-06
+2.3016930688437132e-06
+2.2762073289008977e-06
+2.2509251189529948e-06
+2.2258454980699840e-06
+2.2009675226211588e-06
+2.1762902429410170e-06
+2.1518127086643273e-06
+2.1275339741247863e-06
+2.1034530998199284e-06
+2.0795691466956712e-06
+2.0558811761650173e-06
+2.0323882500070767e-06
+2.0090894292681796e-06
+1.9859837693265537e-06
+1.9630703229477977e-06
+1.9403481447503747e-06
+1.9178162971210057e-06
+1.8954738444677463e-06
+1.8733198514653538e-06
+1.8513533834115923e-06
+1.8295735056241584e-06
+1.8079792804071940e-06
+1.7865697659438334e-06
+1.7653440204728929e-06
+1.7443011080173631e-06
+1.7234400973257182e-06
+1.7027600574318696e-06
+1.6822600585510179e-06
+1.6619391714673045e-06
+1.6417964659075688e-06
+1.6218310069695748e-06
+1.6020418584979737e-06
+1.5824280873520496e-06
+1.5629887677553435e-06
+1.5437229750469783e-06
+1.5246297851513791e-06
+1.5057082748274910e-06
+1.4869575207515516e-06
+1.4683765970337540e-06
+1.4499645755994334e-06
+1.4317205290656394e-06
+1.4136435364941604e-06
+1.3957326801891539e-06
+1.3779870428434883e-06
+1.3604057088158732e-06
+1.3429877629387291e-06
+1.3257322889993272e-06
+1.3086383681141789e-06
+1.2917050810510441e-06
+1.2749315124346923e-06
+1.2583167526245018e-06
+1.2418598925384683e-06
+1.2255600248305846e-06
+1.2094162436952471e-06
+1.1934276431152936e-06
+1.1775933147094704e-06
+1.1619123488544455e-06
+1.1463838373973985e-06
+1.1310068792941850e-06
+1.1157805756315070e-06
+1.1007040282644398e-06
+1.0857763411014848e-06
+1.0709966183764812e-06
+1.0563639634697062e-06
+1.0418774784378400e-06
+1.0275362654754382e-06
+1.0133394318272328e-06
+9.9928608940772222e-07
+9.8537535054757320e-07
+9.7160632984140476e-07
+9.5797814312568719e-07
+9.4448990604961912e-07
+9.3114073325565860e-07
+9.1792973907320897e-07
+9.0485604019386625e-07
+8.9191875992058384e-07
+8.7911702272621809e-07
+8.6644995457658382e-07
+8.5391668385250483e-07
+8.4151633913866648e-07
+8.2924804867216813e-07
+8.1711094035519147e-07
+8.0510414268070619e-07
+7.9322679014547660e-07
+7.8147802068374315e-07
+7.6985697282714706e-07
+7.5836278804742678e-07
+7.4699460878313726e-07
+7.3575157751865268e-07
+7.2463283687090881e-07
+7.1363752952640283e-07
+7.0276480163959667e-07
+6.9201380521801093e-07
+6.8138369293350504e-07
+6.7087361978767100e-07
+6.6048274312128214e-07
+6.5021022043336403e-07
+6.4005520980865575e-07
+6.3001686968184850e-07
+6.2009435965652430e-07
+6.1028684578631269e-07
+6.0059349634666299e-07
+5.9101348074892855e-07
+5.8154597188421077e-07
+5.7219014331564771e-07
+5.6294516919118496e-07
+5.5381022468880012e-07
+5.4478448527470517e-07
+5.3586713099820843e-07
+5.2705734670373908e-07
+5.1835431775599699e-07
+5.0975723278750342e-07
+5.0126528246782945e-07
+4.9287765777535948e-07
+4.8459355130469913e-07
+4.7641215623380169e-07
+4.6833266774053131e-07
+4.6035428743021566e-07
+4.5247621821710458e-07
+4.4469766498879090e-07
+4.3701783626090660e-07
+4.2943594099181587e-07
+4.2195118957384985e-07
+4.1456279396273611e-07
+4.0726996666830355e-07
+4.0007192578244325e-07
+3.9296789302675426e-07
+3.8595709085252212e-07
+3.7903874578924046e-07
+3.7221208590546098e-07
+3.6547634002994703e-07
+3.5883073954310426e-07
+3.5227451638868313e-07
+3.4580690559084592e-07
+3.3942714808688255e-07
+3.3313448558582163e-07
+3.2692816278267150e-07
+3.2080742776497505e-07
+3.1477152900556426e-07
+3.0881971748762084e-07
+3.0295124589673775e-07
+2.9716536792618069e-07
+2.9146134352450842e-07
+2.8583843511016046e-07
+2.8029590642198717e-07
+2.7483302584009670e-07
+2.6944906277996568e-07
+2.6414328821051495e-07
+2.5891497621492151e-07
+2.5376340138189028e-07
+2.4868784255980190e-07
+2.4368758364068990e-07
+2.3876190911516174e-07
+2.3391010752441067e-07
+2.2913147027401720e-07
+2.2442528936612617e-07
+2.1979086041617122e-07
+2.1522748053186048e-07
+2.1073444857673568e-07
+2.0631106989658126e-07
+2.0195665135076060e-07
+1.9767050205743981e-07
+1.9345193586529612e-07
+1.8930026729411059e-07
+1.8521481351631718e-07
+1.8119489497783362e-07
+1.7723983270748823e-07
+1.7334895307613875e-07
+1.6952158639322394e-07
+1.6575706377023767e-07
+1.6205472135084028e-07
+1.5841389745181640e-07
+1.5483393155026506e-07
+1.5131416759307219e-07
+1.4785395062578159e-07
+1.4445262850584467e-07
+1.4110955524426016e-07
+1.3782408575692134e-07
+1.3459557840466075e-07
+1.3142339597942949e-07
+1.2830690182318463e-07
+1.2524546313291622e-07
+1.2223845006855512e-07
+1.1928523370299348e-07
+1.1638519134625628e-07
+1.1353770312398328e-07
+1.1074215057078733e-07
+1.0799792089881103e-07
+1.0530440277299387e-07
+1.0266098697002303e-07
+1.0006706909703410e-07
+9.7522045530803145e-08
+9.5025316710712299e-08
+9.2576288523495909e-08
+9.0174367530635905e-08
+8.7818964954033209e-08
+8.5509495749242700e-08
+8.3245375619155712e-08
+8.1026025304795606e-08
+7.8850867923947089e-08
+7.6719328180979507e-08
+7.4630837489757103e-08
+7.2584829061354791e-08
+7.0580738530539991e-08
+6.8618007328697222e-08
+6.6696077808455803e-08
+6.4814395681732486e-08
+6.2972411356458184e-08
+6.1169575902916824e-08
+5.9405345696488447e-08
+5.7679181542262848e-08
+5.5990545080442281e-08
+5.4338903725400273e-08
+5.2723727737349306e-08
+5.1144488716671739e-08
+4.9600664169935185e-08
+4.8091733261656222e-08
+4.6617177802316351e-08
+4.5176486220911840e-08
+4.3769148036985853e-08
+4.2394656478295702e-08
+4.1052510177805152e-08
+3.9742208456357377e-08
+3.8463255362157503e-08
+3.7215159057164474e-08
+3.5997428573747983e-08
+3.4809579323050114e-08
+3.3651129999752133e-08
+3.2521600721613609e-08
+3.1420518155483094e-08
+3.0347410891848976e-08
+2.9301809895406432e-08
+2.8283252343622046e-08
+2.7291276487304968e-08
+2.6325424537114347e-08
+2.5385244723214429e-08
+2.4470286041923415e-08
+2.3580102572958413e-08
+2.2714253005887205e-08
+2.1872296851863848e-08
+2.1053799628249982e-08
+2.0258330080702448e-08
+1.9485458426017437e-08
+1.8734761967035038e-08
+1.8005820185996902e-08
+1.7298215031213610e-08
+1.6611535203656139e-08
+1.5945370608451596e-08
+1.5299314882278132e-08
+1.4672967578531038e-08
+1.4065929032398549e-08
+1.3477804928643907e-08
+1.2908206007329482e-08
+1.2356743862227941e-08
+1.1823036434768521e-08
+1.1306705227997139e-08
+1.0807373130648470e-08
+1.0324669980216601e-08
+9.8582278521749923e-09
+9.4076813393137173e-09
+8.9726722491681716e-09
+8.5528437276003803e-09
+8.1478427611409382e-09
+7.7573226895316967e-09
+7.3809376818811720e-09
+7.0183471261627287e-09
+6.6692155494386852e-09
+6.3332083433283042e-09
+6.0099975177400113e-09
+5.6992589581719548e-09
+5.4006699427000406e-09
+5.1139150256663297e-09
+4.8386812147946088e-09
+4.5746579458251506e-09
+4.3215419391180678e-09
+4.0790313243550970e-09
+3.8468281377011472e-09
+3.6246411584010088e-09
+3.4121800560809501e-09
+3.2091598446283818e-09
+3.0153010217000420e-09
+2.8303249465819525e-09
+2.6539595933625093e-09
+2.4859369778799584e-09
+2.3259905024332464e-09
+2.1738611202657340e-09
+2.0292924497693652e-09
+1.8920305316717281e-09
+1.7618290157669138e-09
+1.6384430851343347e-09
+1.5216317770524787e-09
+1.4111610724547585e-09
+1.3067978880017099e-09
+1.2083145722146969e-09
+1.1154892816122227e-09
+1.0281010482792659e-09
+9.4593566944769118e-10
+8.6878325459071951e-10
+7.9643526848782659e-10
+7.2869084756024614e-10
+6.6535196214164684e-10
+6.0622298424411622e-10
+5.5111618538337797e-10
+4.9984549764243382e-10
+4.5222871091878719e-10
+4.0809087087151665e-10
+3.6725801778372527e-10
+3.2956163333515337e-10
+2.9483926217160574e-10
+2.6292933519804899e-10
+2.3367716856824173e-10
+2.0693265602396080e-10
+1.8254702834996515e-10
+1.6037937658925668e-10
+1.4029182995860881e-10
+1.2214887612676707e-10
+1.0582312525310205e-10
+9.1188970206793173e-11
+7.8124649129944425e-11
+6.6515952249818894e-11
+5.6249728185678839e-11
+4.7218298471018489e-11
+3.9320339593817434e-11
+3.2455426719970088e-11
+2.6530099014438499e-11
+2.1455723898920215e-11
+1.7144985151166356e-11
+1.3518593704636179e-11
+1.0500506158810402e-11
+8.0169982850308171e-12
+6.0027084975628835e-12
+4.3941926059568456e-12
+3.1318209062327009e-12
+2.1637887619352623e-12
+1.4394165661131774e-12
+9.1352162432274674e-13
+5.4757335512165797e-13
+3.0395348217167501e-13
+1.5204857781960827e-13
+6.6309047214543810e-14
+2.2501393915687285e-14
+4.7188781876293525e-15
+5.7572724570525347e-16
+-2.3886724788469953e-16
+-2.0839538756175157e-16
+4.1487032343628258e-17
+1.0433474925639773e-16
+4.3541557130358020e-17
+-1.8629822885287494e-17
+-2.6320240116631040e-17
+-7.4259817287486631e-18
+6.3838304846526329e-18
+6.3380555307608209e-18
+9.2260823999313689e-19
+-1.9352811843858875e-18
+-1.4510964545958814e-18
+1.9907817750403183e-21
+5.4393215121295325e-19
+3.1252942898842666e-19
+-5.3640528948358161e-20
+-1.4451609707396302e-19
+-6.1911591169241410e-20
+2.5022499188663576e-20
+3.6592271653079820e-20
+1.0718022099604807e-20
+-8.6927474688738184e-21
+-8.8452026818913440e-21
+-1.3867692296529739e-21
+2.6551137137192503e-21
+2.0339006282761443e-21
+2.2383276780947707e-23
+-7.5009396447928500e-22
+-4.4047265396557366e-22
+6.8912991813610662e-23
+2.0011093110710665e-22
+8.7959128140582130e-23
+-3.3553092066120643e-23
+-5.0858190187038239e-23
+-1.5443813074894835e-23
+1.1827440944331840e-23
+1.2340159878594819e-23
+2.0723428895271607e-24
+-3.6409158361841055e-24
+-2.8496944912818359e-24
+-6.6286384664256929e-26
+1.0340212174717705e-24
+6.2047822255426869e-25
+-8.7868356462272336e-26
+-2.7700702747491856e-25
+-1.2486618856560940e-25
+4.4911470009423540e-26
+7.0665006993568021e-26
+2.2218786829786734e-26
+-1.6079295596920757e-26
+-1.7210660953517183e-26
+-3.0812465893947304e-27
+4.9902071591119356e-27
+3.9912056363965420e-27
+1.4128634709601166e-28
+-1.4248963764555063e-27
+-8.7361307821448078e-28
+1.1103116246804742e-28
+3.8333279819860855e-28
+1.7712518686105066e-28
+-5.9997791421255359e-29
+-9.8156507869054479e-29
+-3.1919332146700322e-29
+2.1840790177677671e-29
+2.3996006385630456e-29
+4.5610342218183645e-30
+-6.8359813040824279e-30
+-5.5879350316360848e-30
+-2.6502587676313351e-31
+1.9627857516868841e-30
+1.2294235352021836e-30
+-1.3876597918352778e-31
+-5.3030428392133648e-31
+-2.5107267865340867e-31
+7.9982086888580008e-32
+1.3630318100146124e-31
+4.5792805134979572e-32
+-2.9639634697678499e-32
+-3.3446088297649194e-32
+-6.7249623121710457e-33
+9.3594504342446224e-33
+7.8206383900483554e-33
+4.6416346000554041e-34
+-2.7026879245043563e-33
+-1.7293420642623342e-33
+1.7106344575767430e-34
+7.3339159837430058e-34
+3.5564222558196655e-34
+-1.0637625512305882e-34
+-1.8921903457195238e-34
+-6.5612167742462511e-35
+4.0184643984076043e-35
+4.6603529674042978e-35
+9.8808662551821737e-36
+-1.2807293637059681e-35
+-1.0941536566308869e-35
+-7.7872866287785463e-37
+3.7200512578678803e-36
+2.4314299226463146e-36
+-2.0719938877001701e-37
+-1.0139296828288334e-36
+-5.0342583131435111e-37
+1.4111958679548937e-37
+2.6259987990854759e-37
+9.3895662211077490e-38
+-5.4426114409563336e-38
+-6.4917238624641149e-38
+-1.4472067667030622e-38
+1.7515165637948366e-38
+1.5302534640855413e-38
+1.2685408028619520e-39
+-5.1183144259358155e-39
+-3.4170237046362192e-39
+2.4516811364418100e-40
+1.4013263147392846e-39
+7.1215689361808251e-40
+-1.8668364160385560e-40
+-3.6433073788945326e-40
+-1.3421857347346434e-40
+7.3635298281459629e-41
+9.0400120582132970e-41
+2.1136126292657371e-41
+-2.3939337026104718e-41
+-2.1394352416888797e-41
+-2.0224428026462347e-42
+7.0392585399837185e-42
+4.8000505323661530e-42
+-2.8076758349735474e-43
+-1.9360987861832607e-42
+-1.0067988017882011e-42
+2.4618832039162477e-43
+5.0532198764779741e-43
+1.9165080969459225e-43
+-9.9510501486745392e-44
+-1.2584836476009610e-43
+-3.0789072291133839e-44
+3.2699360395128767e-44
+2.9901079689391131e-44
+3.1718458685343352e-45
+-9.6770883498454955e-45
+-6.7399848756731379e-45
+3.0620951289542150e-46
+2.6740628887874832e-45
+1.4224854669871299e-45
+-3.2352308541476536e-46
+-7.0066481128615645e-46
+-2.7337720355804592e-46
+1.3431521500539474e-46
+1.7514434904843825e-46
+4.4744440404504219e-47
+-4.4636065909512209e-47
+-4.1776281317129653e-47
+-4.9105232615194661e-48
+1.3297636137413932e-47
+9.4599860898708440e-48
+-3.0793372763694647e-49
+-3.6920675831489585e-48
+-2.0086254526899416e-48
+4.2347709356432116e-49
+9.7123106995601165e-49
+3.8957611476073767e-49
+-1.8105775739703480e-49
+-2.4367691290317303e-49
+-6.4883640533745789e-50
+6.0889296680948571e-50
+5.8348446759610458e-50
+7.5229323960068522e-51
+-1.8264684806342713e-50
+-1.3272291939878600e-50
+2.6322215682876074e-52
+5.0958704630346393e-51
+2.8346741436607710e-51
+-5.5183863725032395e-52
+-1.3458734638566259e-51
+-5.5465094563262696e-52
+2.4372889297195651e-52
+3.3892521973921998e-52
+9.3899440411334568e-53
+-8.3002273537713182e-53
+-8.1467858630295133e-53
+-1.1425456799189815e-53
+2.5075693953202868e-53
+1.8613510263246114e-53
+-1.3517088605471740e-55
+-7.0309895418029648e-54
+-3.9982498307725510e-54
+7.1542292713170388e-55
+1.8644623570450793e-54
+7.8897257123971271e-55
+-3.2760638221275022e-55
+-4.7126457374747887e-55
+-1.3563932051821192e-55
+1.1306299607267240e-55
+1.1371129549931497e-55
+1.7226283007641917e-56
+-3.4410407708123205e-56
+-2.6093967419190428e-56
+-1.3498830359961858e-58
+9.6975378358864458e-57
+5.6364506290217845e-57
+-9.2200580179382019e-58
+-2.5820868225794036e-57
+-1.1213429538931916e-57
+4.3964404379553177e-58
+6.5508332950513659e-58
+1.9559544836581832e-58
+-1.5389281394648691e-58
+-1.5866543998006195e-58
+-2.5810715496131220e-59
+4.7197364933296468e-59
+3.6566730216818381e-59
+6.3938979394617177e-61
+-1.3370563763791354e-59
+-7.9417499451131735e-60
+1.1800085375291361e-60
+3.5748257860143396e-60
+1.5924440678076442e-60
+-5.8897922944581053e-61
+-9.1033323610271092e-61
+-2.8160298819305642e-61
+2.0929822287598095e-61
+2.2132121171612303e-61
+3.8464693571015972e-62
+-6.4703938168405085e-62
+-5.1223454632005720e-62
+-1.5202854835455321e-63
+1.8428045019496230e-62
+1.1184319536875754e-62
+-1.4977561898576733e-63
+-4.9477041583762033e-63
+-2.2597091733742647e-63
+7.8756741025802693e-64
+1.2646672627139175e-63
+4.0482302878358759e-64
+-2.8441064123606910e-64
+-3.0862290740718503e-64
+-5.7053181550209658e-65
+8.8658505609702813e-65
+7.1728268454354041e-65
+2.9952917300563385e-66
+-2.5389095926999508e-65
+-1.5743128125494168e-65
+1.8821603340024894e-66
+6.8456885729194819e-66
+3.2041991356334008e-66
+-1.0509694648093737e-66
+-1.7563996609582483e-66
+-5.8114158848132807e-67
+3.8613663548648023e-67
+4.3022787162699026e-67
+8.4273481746743828e-68
+-1.2141728276072460e-67
+-1.0040484959249244e-67
+-5.3948711926687488e-69
+3.4966265096309187e-68
+2.2149567311488422e-68
+-2.3362778527646868e-69
+-9.4687754338368940e-69
+-4.5402179192412933e-69
+1.3993543505260942e-69
+2.4386111980930266e-69
+8.3315864579864525e-70
+-5.2375494102905805e-70
+-5.9956244911165712e-70
+-1.2402024820854873e-70
+1.6618950253294335e-70
+1.4049601002433616e-70
+9.2165575182952760e-72
+-4.8137417211860001e-71
+-3.1148648389361204e-71
+2.8550845721926694e-72
+1.3092764774971230e-71
+6.4288718006324245e-72
+-1.8586982909881322e-72
+-3.3848048296556305e-72
+-1.1929832889231178e-72
+7.0971792283682807e-73
+8.3529122905033413e-73
+1.8191039254646459e-73
+-2.2734199168402414e-73
+-1.9652590907368818e-73
+-1.5205107854832254e-74
+6.6243667172441078e-74
+4.3784182360649301e-74
+-3.4188203618986198e-75
+-1.8097941918401898e-74
+-9.0971811565578867e-75
+2.4621899135843415e-75
+4.6967282187416987e-75
+1.7062028744297825e-75
+-9.6070466825767595e-76
+-1.1633479261647254e-75
+-2.6602634549263924e-76
+3.1081411121473420e-76
+2.7480571839039807e-76
+2.4470432327708957e-77
+-9.1123175259684179e-77
+-6.1518130868344847e-77
+3.9820709720404230e-78
+2.5008385261650468e-77
+1.2864777047766256e-77
+-3.2519318142160435e-78
+-6.5152131008668177e-78
+-2.4375140297536751e-78
+1.2990046442916247e-78
+1.6197555155461419e-78
+3.8798285348713807e-79
+-4.2467584961958102e-79
+-3.8413471439528655e-79
+-3.8657067525266598e-80
+1.2529478146765946e-79
+8.6397846294825253e-80
+-4.4563085162027533e-81
+-3.4546012982845719e-80
+-1.8181491287450790e-80
+4.2807719265090296e-81
+9.0350940546379874e-81
+3.4786242105379637e-81
+-1.7543623020313501e-81
+-2.2545468261004483e-81
+-5.6445552824120230e-82
+5.7987986396188767e-82
+5.3677755900300754e-82
+6.0192415393887713e-83
+-1.7220769712446903e-82
+-1.2128865774510054e-82
+4.6835002607886518e-84
+4.7705124221024288e-83
+2.5680266966597392e-83
+-5.6141276676865707e-84
+-1.2525820131331523e-83
+-4.9594488031328623e-84
+2.3663730281656662e-84
+3.1371793387408865e-84
+8.1934008921700484e-85
+-7.9128318236756249e-85
+-7.4982740197107632e-85
+-9.2649052641165625e-86
+2.3658189906059550e-85
+1.7019939132693200e-85
+-4.3948704920832142e-87
+-6.5854420182259526e-86
+-3.6250993606398208e-86
+7.3318324246772677e-87
+1.7359990008205823e-86
+7.0639656795408971e-87
+-3.1875909671926578e-87
+-4.3640467430891873e-87
+-1.1868411195343718e-87
+1.0790155477821785e-87
+1.0470943045839175e-87
+1.4126272272156146e-88
+-3.2487457609453440e-88
+-2.3873803502799165e-88
+3.1473296865451452e-90
+9.0877073048445954e-89
+5.1144326395892558e-89
+-9.5292389782748694e-90
+-2.4052586544706163e-89
+-1.0052433140100403e-89
+4.2876315011754974e-90
+6.0689127820544676e-90
+1.7158840521729280e-90
+-1.4703149093803168e-90
+-1.4617349455240032e-90
+-2.1368578523239537e-91
+4.4591292997595512e-91
+3.3474492672239927e-91
+-2.2934654633381705e-94
+-1.2536369072588888e-91
+-7.2117631521581813e-92
+1.2316767828632954e-92
+3.3315119968195679e-92
+1.4292815351563723e-92
+-5.7584109143840213e-93
+-8.4373093156025517e-93
+-2.4763347455270794e-93
+2.0020126768169069e-93
+2.0399172984066662e-93
+3.2108001062976537e-94
+-6.1175475831696325e-94
+-4.6917797489767837e-94
+-5.4817828652039589e-96
+1.7287603241265910e-94
+1.0163845652577797e-94
+-1.5817395627618190e-95
+-4.6130515425068781e-95
+-2.0305201504270519e-95
+7.7208128377048408e-96
+1.1726489261165801e-95
+3.5678706560898231e-96
+-2.7238446683705206e-96
+-2.8458936177660049e-96
+-4.7967262494582959e-97
+8.3886559828790026e-97
+6.5735057456743864e-97
+1.5732405037774058e-98
+-2.3830849610173915e-97
+-1.4317025576464687e-97
+2.0159157680170386e-98
+6.3855968944231251e-98
+2.8823977320753245e-98
+-1.0333355450786781e-98
+-1.6293118428804869e-98
+-5.1326183348578234e-99
+3.7028673241058532e-99
+3.9690577385074463e-99
+7.1300709307440051e-100
+-1.1497115197236552e-99
+-9.2065042339667406e-100
+-3.3204679105393481e-101
+3.2838551274497162e-100
+2.0157357106129882e-100
+-2.5459270891378824e-101
+-8.8364714143072373e-101
+-4.0885610757901108e-101
+1.3802966135666517e-101
+2.2631454755103388e-101
+7.3729363723251330e-102
+-5.0294121399090998e-102
+-5.5337714465684579e-102
+-1.0551911733891749e-102
+1.5749192277959061e-102
+1.2889399417014788e-102
+6.1982794314556371e-104
+-4.5234021150439950e-103
+-2.8366483592531523e-103
+3.1796924491072596e-104
+1.2224191643071085e-103
+5.7952537257739492e-104
+-1.8398252785751750e-104
+-3.1426201938396721e-104
+-1.0576715147788248e-104
+6.8249653352726021e-105
+7.7129561886048217e-105
+1.5555066747809914e-105
+-2.1562246486041393e-105
+-1.8039099012599716e-105
+-1.0824428244313946e-106
+6.2284306828679162e-106
+3.9900011339726703e-106
+-3.9164500101494911e-107
+-1.6905341735731861e-106
+-8.2086361332340453e-107
+2.4466303448952268e-107
+4.3625799588492043e-107
+1.5153332397914859e-107
+-9.2526017887870553e-108
+-1.0746982416851466e-107
+-2.2850469957034085e-108
+2.9504504770850641e-108
+2.5237321688926707e-108
+1.8125891667111404e-109
+-8.5727800033201805e-109
+-5.6097428075448870e-109
+4.7384798567825449e-110
+2.3371566668947309e-109
+1.1619202962591364e-109
+-3.2452541809343989e-110
+-6.0543376449040545e-110
+-2.1684167350697921e-110
+1.2530976909140741e-110
+1.4969948164410318e-110
+3.3462556922520605e-111
+-4.0348828732267164e-111
+-3.5295507909906803e-111
+-2.9486258909583712e-112
+1.1794803812439790e-111
+7.8835075819957347e-112
+-5.5981983585725586e-113
+-3.2300638039485982e-112
+-1.6436190834068028e-112
+4.2923618547584222e-113
+8.3996354744732804e-113
+3.0994304340136107e-113
+-1.6952679191650180e-113
+-2.0845997690925574e-113
+-4.8864269427633586e-114
+5.5145930966224227e-114
+4.9345423764695413e-114
+4.6962242635705253e-115
+-1.6221106240530391e-114
+-1.1074044698256490e-114
+6.3972245145532780e-116
+4.4626423109035203e-115
+2.3235632646886563e-115
+-5.6594710192235370e-116
+-1.1649986442366022e-115
+-4.4254221894569400e-116
+2.2908296833867633e-116
+2.9019745615492293e-116
+7.1170704724369548e-117
+-7.5322782891741016e-117
+-6.8964763657689556e-117
+-7.3594509616424466e-118
+2.2299110589173563e-117
+1.5549241063037412e-117
+-6.9531804645879984e-119
+-6.1635065465701377e-118
+-3.2828003405322606e-118
+7.4357872896368549e-119
+1.6153290265971425e-118
+6.3122450647895475e-119
+-3.0918454449905792e-119
+-4.0386366872898896e-119
+-1.0341642326213297e-119
+1.0281512359028389e-119
+9.6352201829821199e-120
+1.1386235675893662e-120
+-3.0641327116362185e-120
+-2.1823868566919587e-120
+6.9497364846508371e-122
+8.5097611705756729e-121
+4.6353414152583824e-121
+-9.7308481229417913e-122
+-2.2390598358544783e-121
+-8.9947660962157052e-122
+4.1675322004822205e-122
+5.6188384801039792e-122
+1.4994702560584076e-122
+-1.4024738472279255e-122
+-1.3457151469842750e-122
+-1.7434651516492144e-123
+4.2085677112633327e-123
+3.0618000949783332e-123
+-5.8589969655392311e-125
+-1.1745148657056509e-123
+-6.5414429898757229e-124
+1.2676960162142373e-124
+3.1027003829489433e-124
+1.2805471771788667e-124
+-5.6096305425431689e-125
+-7.8149914235570953e-125
+-2.1697899319322389e-125
+1.9117345672114828e-125
+1.8788973782996686e-125
+2.6467601858845989e-126
+-5.7778130898021560e-126
+-4.2938771600695615e-126
+2.8223920951558476e-128
+1.6204957996170218e-126
+9.2262780334006734e-127
+-1.6429958529707078e-127
+-4.2981600023862560e-127
+-1.8214545730858934e-127
+7.5394766208343867e-128
+1.0866310258180769e-127
+3.1339896582421552e-128
+-2.6039935973853376e-128
+-2.6224798039437891e-128
+-3.9890400787801850e-129
+7.9284769558148157e-129
+6.0193967332763804e-129
+3.5251353776350993e-131
+-2.2350332844503446e-129
+-1.3006177414805063e-129
+2.1166693100833302e-130
+5.9524002137428686e-130
+2.5886537630085167e-130
+-1.0117000121879886e-130
+-1.5104536762659617e-130
+-4.5189010627733053e-131
+3.5441984693965702e-131
+3.6591743778743095e-131
+5.9750125692924053e-132
+-1.0874411396124770e-131
+-8.4350806766013337e-132
+-1.5318768791139006e-133
+3.0815146031466070e-132
+1.8325208615156758e-132
+-2.7078152163144054e-133
+-8.2407827804766262e-133
+-3.6760440019165907e-133
+1.3552121570976940e-133
+2.0989581454395569e-133
+6.5053791084789792e-134
+-4.8199944725453090e-134
+-5.1040737819732087e-134
+-8.9019300225958154e-135
+1.4907541585710183e-134
+1.1815794261060034e-134
+3.5858959844972516e-136
+-4.2470233645658312e-135
+-2.5806530378191999e-135
+3.4352708099502720e-136
+1.1405399278783653e-135
+5.2161745490727575e-136
+-1.8119517310848592e-136
+-2.9158981738681913e-136
+-9.3511677593221315e-137
+6.5494658657250960e-137
+7.1172806987788827e-137
+1.3200587979036745e-137
+-2.0426035499861692e-137
+-1.6545366328771366e-137
+-7.0190094474423390e-139
+5.8511759036018794e-138
+3.6324483933491993e-138
+-4.3143024215199541e-139
+-1.5780329196116505e-138
+-7.3960625116107832e-139
+2.4176855018602315e-139
+4.0496079888689656e-139
+1.3423066071505018e-139
+-8.8915645484412418e-140
+-9.9214897871697583e-140
+-1.9494442489555718e-140
+2.7972486468676363e-140
+2.3159623411687359e-140
+1.2596080535320471e-141
+-8.0581743808791131e-141
+-5.1104993284964846e-141
+5.3510828915619410e-142
+2.1826535669030496e-141
+1.0479509403289240e-141
+-3.2187072690404440e-142
+-5.6224387932319159e-142
+-1.9242671706507216e-142
+1.2059891639266897e-142
+1.3826303397046074e-142
+2.8683468234898789e-143
+-3.8286012519809985e-143
+-3.2406502911759600e-143
+-2.1469799733514033e-144
+1.1093294193527179e-143
+7.1866349591127012e-144
+-6.5330470932642644e-145
+-3.0179728263867749e-144
+-1.4838295577000970e-144
+4.2746385464688777e-145
+7.8038419875306715e-145
+2.7551365566791776e-145
+-1.6340919128048034e-145
+-1.9262018888781831e-145
+-4.2064817958175418e-146
+5.2372495055104150e-146
+4.5329441113225263e-146
+3.5364537300795613e-147
+-1.5265534433118313e-146
+-1.0101662188542054e-146
+7.8127965261475967e-148
+4.1716231500771577e-147
+2.0996145275220969e-147
+-5.6616932274844190e-148
+-1.0828387594824266e-147
+-3.9401584893405067e-148
+2.2118397484454137e-148
+2.6826626043340903e-148
+6.1506103078558505e-149
+-7.1599464800972721e-149
+-6.3383687625138772e-149
+-5.6847156119577201e-150
+2.0998456864685342e-149
+1.4192835140205423e-149
+-9.0832142276578597e-151
+-5.7643893737268364e-150
+-2.9690664892167883e-150
+7.4763687352407369e-151
+1.5020676422449040e-150
+5.6286334885902123e-151
+-2.9905310577122146e-151
+-3.7350751033314791e-151
+-8.9690540506982665e-152
+9.7825250938415351e-152
+8.8598633609418500e-152
+8.9724236624214272e-153
+-2.8872286916522986e-152
+-1.9932328676799379e-152
+1.0137497112931794e-153
+7.9626619510641964e-153
+4.1959831413158168e-153
+-9.8397646285080610e-154
+-2.0829849105754962e-153
+-8.0322796422335299e-154
+4.0385693411618632e-154
+5.1987807496174614e-154
+1.3046837382699989e-154
+-1.3357244268194825e-154
+-1.2380281380076227e-154
+-1.3961179854759646e-155
+3.9681666160432676e-155
+2.7981129477614373e-155
+-1.0606232832953068e-156
+-1.0995551039743322e-155
+-5.9263711587876490e-156
+1.2901862061748535e-156
+2.8877066033469177e-156
+1.1450984474517643e-156
+-5.4470211026787411e-157
+-7.2339288625365352e-157
+-1.8935982815006195e-157
+1.8226128222474827e-157
+1.7293743458522207e-157
+2.1476759534237506e-158
+-5.4514119737377666e-158
+-3.9263962256269214e-158
+9.8631059361709486e-160
+1.5178481068346001e-158
+8.3655710866211586e-159
+-1.6845139621508472e-159
+-4.0021078863530144e-159
+-1.6309272536703648e-159
+7.3367979760041071e-160
+1.0062776256573105e-159
+2.7426507469977536e-160
+-2.4852646016602206e-160
+-2.4149369260726687e-160
+-3.2730348777969404e-161
+7.4857267095662157e-161
+5.5074668321911025e-161
+-6.8793365597001423e-163
+-2.0946974851047118e-161
+-1.1804109768661584e-161
+2.1897730477633151e-162
+5.5514504999096090e-162
+2.3272128606112979e-162
+-9.9476061780573045e-163
+-1.4264639183723254e-162
+-4.1493577554740880e-163
+3.8459798296896072e-163
+4.4408736979428512e-163
+8.8881381514385870e-164
+-3.3452909847507159e-163
+-4.7965318677842200e-163
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+2.6740386039473818e-01
+2.6728751808066320e-01
+2.6717121145664957e-01
+2.6705494051816187e-01
+2.6693870526066510e-01
+2.6682250567962379e-01
+2.6670634177050295e-01
+2.6659021352876716e-01
+2.6647412094988127e-01
+2.6635806402931006e-01
+2.6624204276251823e-01
+2.6612605714497062e-01
+2.6601010717213197e-01
+2.6589419283946703e-01
+2.6577831414244057e-01
+2.6566247107651736e-01
+2.6554666363716223e-01
+2.6543089181983986e-01
+2.6531515562001506e-01
+2.6519945503315256e-01
+2.6508379005471722e-01
+2.6496816068017376e-01
+2.6485256690498687e-01
+2.6473700872462141e-01
+2.6462148613454212e-01
+2.6450599913021378e-01
+2.6439054770710113e-01
+2.6427513186066898e-01
+2.6415975158638205e-01
+2.6404440687970510e-01
+2.6392909773610301e-01
+2.6381382415104038e-01
+2.6369858611998215e-01
+2.6358338363839295e-01
+2.6346821670173759e-01
+2.6335308530548085e-01
+2.6323798944508753e-01
+2.6312292911602231e-01
+2.6300790431375004e-01
+2.6289291503373546e-01
+2.6277796127144332e-01
+2.6266304302233839e-01
+2.6254816028188555e-01
+2.6243331304554934e-01
+2.6231850130879475e-01
+2.6220372506708639e-01
+2.6208898431588912e-01
+2.6197427905066772e-01
+2.6185960926688689e-01
+2.6174497496001137e-01
+2.6163037612550605e-01
+2.6151581275883562e-01
+2.6140128485546482e-01
+2.6128679241085850e-01
+2.6117233542048141e-01
+2.6105791387979821e-01
+2.6094352778427382e-01
+2.6082917712937292e-01
+2.6071486191056031e-01
+2.6060058212330073e-01
+2.6048633776305896e-01
+2.6037212882529981e-01
+2.6025795530548795e-01
+2.6014381719908825e-01
+2.6002971450156537e-01
+2.5991564720838423e-01
+2.5980161531500945e-01
+2.5968761881690589e-01
+2.5957365770953822e-01
+2.5945973198837136e-01
+2.5934584164886992e-01
+2.5923198668649877e-01
+2.5911816709672264e-01
+2.5900438287500632e-01
+2.5889063401681456e-01
+2.5877692051761209e-01
+2.5866324237286376e-01
+2.5854959957803431e-01
+2.5843599212858842e-01
+2.5832242001999101e-01
+2.5820888324770674e-01
+2.5809538180720037e-01
+2.5798191569393675e-01
+2.5786848490338060e-01
+2.5775508943099662e-01
+2.5764172927224971e-01
+2.5752840442260461e-01
+2.5741511487752600e-01
+2.5730186063247873e-01
+2.5718864168292754e-01
+2.5707545802433718e-01
+2.5696230965217243e-01
+2.5684919656189803e-01
+2.5673611874897884e-01
+2.5662307620887953e-01
+2.5651006893706491e-01
+2.5639709692899981e-01
+2.5628416018014888e-01
+2.5617125868597690e-01
+2.5605839244194872e-01
+2.5594556144352903e-01
+2.5583276568618268e-01
+2.5572000516537435e-01
+2.5560727987656889e-01
+2.5549458981523099e-01
+2.5538193497682549e-01
+2.5526931535681707e-01
+2.5515673095067060e-01
+2.5504418175385074e-01
+2.5493166776182236e-01
+2.5481918897005018e-01
+2.5470674537399901e-01
+2.5459433696913353e-01
+2.5448196375091858e-01
+2.5436962571481886e-01
+2.5425732285629921e-01
+2.5414505517082436e-01
+2.5403282265385907e-01
+2.5392062530086817e-01
+2.5380846310731636e-01
+2.5369633606866843e-01
+2.5358424418038916e-01
+2.5347218743794331e-01
+2.5336016583679560e-01
+2.5324817937241090e-01
+2.5313622804025387e-01
+2.5302431183578938e-01
+2.5291243075448211e-01
+2.5280058479179690e-01
+2.5268877394319844e-01
+2.5257699820415158e-01
+2.5246525757012100e-01
+2.5235355203657156e-01
+2.5224188159896793e-01
+2.5213024625277497e-01
+2.5201864599345741e-01
+2.5190708081648000e-01
+2.5179555071730753e-01
+2.5168405569140473e-01
+2.5157259573423646e-01
+2.5146117084126740e-01
+2.5134978100796235e-01
+2.5123842622978604e-01
+2.5112710650220332e-01
+2.5101582182067889e-01
+2.5090457218067752e-01
+2.5079335757766402e-01
+2.5068217800710307e-01
+2.5057103346445958e-01
+2.5045992394519823e-01
+2.5034884944478375e-01
+2.5023780995868100e-01
+2.5012680548235466e-01
+2.5001583601126953e-01
+2.4990490154089046e-01
+2.4979400206668206e-01
+2.4968313758410926e-01
+2.4957230808863667e-01
+2.4946151357572921e-01
+2.4935075404085150e-01
+2.4924002947946844e-01
+2.4912933988704472e-01
+2.4901868525904514e-01
+2.4890806559093448e-01
+2.4879748087817746e-01
+2.4868693111623885e-01
+2.4857641630058350e-01
+2.4846593642667605e-01
+2.4835549148998137e-01
+2.4824508148596419e-01
+2.4813470641008931e-01
+2.4802436625782143e-01
+2.4791406102462538e-01
+2.4780379070596587e-01
+2.4769355529730774e-01
+2.4758335479411570e-01
+2.4747318919185457e-01
+2.4736305848598905e-01
+2.4725296267198396e-01
+2.4714290174530404e-01
+2.4703287570141408e-01
+2.4692288453577885e-01
+2.4681292824386311e-01
+2.4670300682113161e-01
+2.4659312026304911e-01
+2.4648326856508040e-01
+2.4637345172269029e-01
+2.4626366973134348e-01
+2.4615392258650476e-01
+2.4604421028363890e-01
+2.4593453281821070e-01
+2.4582489018568482e-01
+2.4571528238152618e-01
+2.4560570940119941e-01
+2.4549617124016940e-01
+2.4538666789390082e-01
+2.4527719935785847e-01
+2.4516776562750714e-01
+2.4505836669831157e-01
+2.4494900256573654e-01
+2.4483967322524683e-01
+2.4473037867230718e-01
+2.4462111890238239e-01
+2.4451189391093717e-01
+2.4440270369343636e-01
+2.4429354824534469e-01
+2.4418442756212694e-01
+2.4407534163924785e-01
+2.4396629047217222e-01
+2.4385727405636481e-01
+2.4374829238729037e-01
+2.4363934546041371e-01
+2.4353043327119955e-01
+2.4342155581511266e-01
+2.4331271308761787e-01
+2.4320390508417988e-01
+2.4309513180026349e-01
+2.4298639323133345e-01
+2.4287768937285453e-01
+2.4276902022029151e-01
+2.4266038576910914e-01
+2.4255178601477223e-01
+2.4244322095274551e-01
+2.4233469057849372e-01
+2.4222619488748171e-01
+2.4211773387517418e-01
+2.4200930753703592e-01
+2.4190091586853171e-01
+2.4179255886512629e-01
+2.4168423652228443e-01
+2.4157594883547095e-01
+2.4146769580015054e-01
+2.4135947741178804e-01
+2.4125129366584816e-01
+2.4114314455779570e-01
+2.4103503008309540e-01
+2.4092695023721206e-01
+2.4081890501561043e-01
+2.4071089441375532e-01
+2.4060291842711143e-01
+2.4049497705114356e-01
+2.4038707028131648e-01
+2.4027919811309495e-01
+2.4017136054194377e-01
+2.4006355756332765e-01
+2.3995578917271135e-01
+2.3984805536555973e-01
+2.3974035613733749e-01
+2.3963269148350941e-01
+2.3952506139954027e-01
+2.3941746588089483e-01
+2.3930990492303783e-01
+2.3920237852143408e-01
+2.3909488667154832e-01
+2.3898742936884532e-01
+2.3888000660878989e-01
+2.3877261838684674e-01
+2.3866526469848065e-01
+2.3855794553915644e-01
+2.3845066090433881e-01
+2.3834341078949256e-01
+2.3823619519008243e-01
+2.3812901410157322e-01
+2.3802186751942972e-01
+2.3791475543911664e-01
+2.3780767785609877e-01
+2.3770063476584091e-01
+2.3759362616380780e-01
+2.3748665204546415e-01
+2.3737971240627481e-01
+2.3727280724170458e-01
+2.3716593654721810e-01
+2.3705910031828026e-01
+2.3695229855035571e-01
+2.3684553123890933e-01
+2.3673879837940587e-01
+2.3663209996731005e-01
+2.3652543599808662e-01
+2.3641880646720043e-01
+2.3631221137011615e-01
+2.3620565070229865e-01
+2.3609912445921266e-01
+2.3599263263632289e-01
+2.3588617522909416e-01
+2.3577975223299125e-01
+2.3567336364347893e-01
+2.3556700945602194e-01
+2.3546068966608502e-01
+2.3535440426913301e-01
+2.3524815326063062e-01
+2.3514193663604266e-01
+2.3503575439083385e-01
+2.3492960652046901e-01
+2.3482349302041289e-01
+2.3471741388613021e-01
+2.3461136911308580e-01
+2.3450535869674438e-01
+2.3439938263257082e-01
+2.3429344091602972e-01
+2.3418753354258601e-01
+2.3408166050770435e-01
+2.3397582180684956e-01
+2.3387001743548638e-01
+2.3376424738907964e-01
+2.3365851166309398e-01
+2.3355281025299429e-01
+2.3344714315424531e-01
+2.3334151036231177e-01
+2.3323591187265846e-01
+2.3313034768075014e-01
+2.3302481778205159e-01
+2.3291932217202757e-01
+2.3281386084614286e-01
+2.3270843379986222e-01
+2.3260304102865043e-01
+2.3249768252797220e-01
+2.3239235829329238e-01
+2.3228706832007567e-01
+2.3218181260378690e-01
+2.3207659113989082e-01
+2.3197140392385215e-01
+2.3186625095113569e-01
+2.3176113221720623e-01
+2.3165604771752851e-01
+2.3155099744756730e-01
+2.3144598140278738e-01
+2.3134099957865351e-01
+2.3123605197063046e-01
+2.3113113857418299e-01
+2.3102625938477586e-01
+2.3092141439787389e-01
+2.3081660360894177e-01
+2.3071182701344434e-01
+2.3060708460684631e-01
+2.3050237638461246e-01
+2.3039770234220761e-01
+2.3029306247509645e-01
+2.3018845677874383e-01
+2.3008388524861445e-01
+2.2997934788017310e-01
+2.2987484466888458e-01
+2.2977037561021357e-01
+2.2966594069962493e-01
+2.2956153993258338e-01
+2.2945717330455373e-01
+2.2935284081100071e-01
+2.2924854244738907e-01
+2.2914427820918365e-01
+2.2904004809184914e-01
+2.2893585209085032e-01
+2.2883169020165200e-01
+2.2872756241971895e-01
+2.2862346874051589e-01
+2.2851940915950764e-01
+2.2841538367215891e-01
+2.2831139227393449e-01
+2.2820743496029916e-01
+2.2810351172671767e-01
+2.2799962256865486e-01
+2.2789576748157536e-01
+2.2779194646094408e-01
+2.2768815950222571e-01
+2.2758440660088500e-01
+2.2748068775238678e-01
+2.2737700295219576e-01
+2.2727335219577677e-01
+2.2716973547859451e-01
+2.2706615279611381e-01
+2.2696260414379937e-01
+2.2685908951711606e-01
+2.2675560891152854e-01
+2.2665216232250163e-01
+2.2654874974550010e-01
+2.2644537117598867e-01
+2.2634202660943220e-01
+2.2623871604129536e-01
+2.2613543946704298e-01
+2.2603219688213980e-01
+2.2592898828205060e-01
+2.2582581366224014e-01
+2.2572267301817323e-01
+2.2561956634531455e-01
+2.2551649363912893e-01
+2.2541345489508113e-01
+2.2531045010863593e-01
+2.2520747927525808e-01
+2.2510454239041233e-01
+2.2500163944956347e-01
+2.2489877044817630e-01
+2.2479593538171549e-01
+2.2469313424564591e-01
+2.2459036703543228e-01
+2.2448763374653938e-01
+2.2438493437443197e-01
+2.2428226891457481e-01
+2.2417963736243271e-01
+2.2407703971347037e-01
+2.2397447596315262e-01
+2.2387194610694422e-01
+2.2376945014030991e-01
+2.2366698805871443e-01
+2.2356455985762264e-01
+2.2346216553249920e-01
+2.2335980507880898e-01
+2.2325747849201671e-01
+2.2315518576758708e-01
+2.2305292690098499e-01
+2.2295070188767513e-01
+2.2284851072312226e-01
+2.2274635340279117e-01
+2.2264422992214664e-01
+2.2254214027665342e-01
+2.2244008446177632e-01
+2.2233806247297999e-01
+2.2223607430572934e-01
+2.2213411995548904e-01
+2.2203219941772392e-01
+2.2193031268789870e-01
+2.2182845976147819e-01
+2.2172664063392714e-01
+2.2162485530071030e-01
+2.2152310375729248e-01
+2.2142138599913835e-01
+2.2131970202171283e-01
+2.2121805182048054e-01
+2.2111643539090636e-01
+2.2101485272845500e-01
+2.2091330382859126e-01
+2.2081178868677986e-01
+2.2071030729848559e-01
+2.2060885965917326e-01
+2.2050744576430759e-01
+2.2040606560935333e-01
+2.2030471918977529e-01
+2.2020340650103820e-01
+2.2010212753860689e-01
+2.2000088229794607e-01
+2.1989967077452055e-01
+2.1979849296379506e-01
+2.1969734886123438e-01
+2.1959623846230325e-01
+2.1949516176246653e-01
+2.1939411875718889e-01
+2.1929310944193514e-01
+2.1919213381217006e-01
+2.1909119186335838e-01
+2.1899028359096490e-01
+2.1888940899045436e-01
+2.1878856805729158e-01
+2.1868776078694124e-01
+2.1858698717486821e-01
+2.1848624721653717e-01
+2.1838554090741297e-01
+2.1828486824296028e-01
+2.1818422921864394e-01
+2.1808362382992871e-01
+2.1798305207227930e-01
+2.1788251394116059e-01
+2.1778200943203724e-01
+2.1768153854037409e-01
+2.1758110126163585e-01
+2.1748069759128733e-01
+2.1738032752479328e-01
+2.1727999105761847e-01
+2.1717968818522768e-01
+2.1707941890308563e-01
+2.1697918320665716e-01
+2.1687898109140699e-01
+2.1677881255279990e-01
+2.1667867758630066e-01
+2.1657857618737403e-01
+2.1647850835148480e-01
+2.1637847407409772e-01
+2.1627847335067754e-01
+2.1617850617668904e-01
+2.1607857254759702e-01
+2.1597867245886621e-01
+2.1587880590596142e-01
+2.1577897288434733e-01
+2.1567917338948880e-01
+2.1557940741685055e-01
+2.1547967496189738e-01
+2.1537997602009404e-01
+2.1528031058690528e-01
+2.1518067865779592e-01
+2.1508108022823064e-01
+2.1498151529367432e-01
+2.1488198384959162e-01
+2.1478248589144738e-01
+2.1468302141470630e-01
+2.1458359041483324e-01
+2.1448419288729292e-01
+2.1438482882755008e-01
+2.1428549823106952e-01
+2.1418620109331601e-01
+2.1408693740975432e-01
+2.1398770717584922e-01
+2.1388851038706544e-01
+2.1378934703886779e-01
+2.1369021712672101e-01
+2.1359112064608987e-01
+2.1349205759243919e-01
+2.1339302796123366e-01
+2.1329403174793810e-01
+2.1319506894801726e-01
+2.1309613955693590e-01
+2.1299724357015881e-01
+2.1289838098315073e-01
+2.1279955179137644e-01
+2.1270075599030069e-01
+2.1260199357538834e-01
+2.1250326454210405e-01
+2.1240456888591258e-01
+2.1230590660227877e-01
+2.1220727768666739e-01
+2.1210868213454315e-01
+2.1201011994137087e-01
+2.1191159110261526e-01
+2.1181309561374112e-01
+2.1171463347021324e-01
+2.1161620466749637e-01
+2.1151780920105526e-01
+2.1141944706635468e-01
+2.1132111825885941e-01
+2.1122282277403426e-01
+2.1112456060734391e-01
+2.1102633175425320e-01
+2.1092813621022685e-01
+2.1082997397072967e-01
+2.1073184503122638e-01
+2.1063374938718182e-01
+2.1053568703406067e-01
+2.1043765796732775e-01
+2.1033966218244782e-01
+2.1024169967488562e-01
+2.1014377044010599e-01
+2.1004587447357365e-01
+2.0994801177075331e-01
+2.0985018232710984e-01
+2.0975238613810798e-01
+2.0965462319921246e-01
+2.0955689350588808e-01
+2.0945919705359956e-01
+2.0936153383781175e-01
+2.0926390385398938e-01
+2.0916630709759718e-01
+2.0906874356409996e-01
+2.0897121324896251e-01
+2.0887371614764952e-01
+2.0877625225562579e-01
+2.0867882156835615e-01
+2.0858142408130531e-01
+2.0848405978993800e-01
+2.0838672868971908e-01
+2.0828943077611325e-01
+2.0819216604458532e-01
+2.0809493449060001e-01
+2.0799773610962213e-01
+2.0790057089711644e-01
+2.0780343884854771e-01
+2.0770633995938070e-01
+2.0760927422508013e-01
+2.0751224164111087e-01
+2.0741524220293761e-01
+2.0731827590602514e-01
+2.0722134274583820e-01
+2.0712444271784161e-01
+2.0702757581750014e-01
+2.0693074204027850e-01
+2.0683394138164146e-01
+2.0673717383705387e-01
+2.0664043940198046e-01
+2.0654373807188592e-01
+2.0644706984223510e-01
+2.0635043470849279e-01
+2.0625383266612368e-01
+2.0615726371059256e-01
+2.0606072783736423e-01
+2.0596422504190345e-01
+2.0586775531967494e-01
+2.0577131866614357e-01
+2.0567491507677399e-01
+2.0557854454703103e-01
+2.0548220707237946e-01
+2.0538590264828402e-01
+2.0528963127020949e-01
+2.0519339293362066e-01
+2.0509718763398227e-01
+2.0500101536675910e-01
+2.0490487612741592e-01
+2.0480876991141750e-01
+2.0471269671422859e-01
+2.0461665653131397e-01
+2.0452064935813841e-01
+2.0442467519016666e-01
+2.0432873402286353e-01
+2.0423282585169372e-01
+2.0413695067212206e-01
+2.0404110847961332e-01
+2.0394529926963223e-01
+2.0384952303764353e-01
+2.0375377977911208e-01
+2.0365806948950260e-01
+2.0356239216427979e-01
+2.0346674779890855e-01
+2.0337113638885357e-01
+2.0327555792957960e-01
+2.0318001241655143e-01
+2.0308449984523386e-01
+2.0298902021109164e-01
+2.0289357350958950e-01
+2.0279815973619225e-01
+2.0270277888636468e-01
+2.0260743095557146e-01
+2.0251211593927745e-01
+2.0241683383294740e-01
+2.0232158463204605e-01
+2.0222636833203819e-01
+2.0213118492838861e-01
+2.0203603441656198e-01
+2.0194091679202320e-01
+2.0184583205023693e-01
+2.0175078018666803e-01
+2.0165576119678119e-01
+2.0156077507604123e-01
+2.0146582181991285e-01
+2.0137090142386091e-01
+2.0127601388335015e-01
+2.0118115919384527e-01
+2.0108633735081108e-01
+2.0099154834971239e-01
+2.0089679218601392e-01
+2.0080206885518048e-01
+2.0070737835267677e-01
+2.0061272067396763e-01
+2.0051809581451777e-01
+2.0042350376979201e-01
+2.0032894453525504e-01
+2.0023441810637171e-01
+2.0013992447860679e-01
+2.0004546364742495e-01
+1.9995103560829106e-01
+1.9985664035666983e-01
+1.9976227788802609e-01
+1.9966794819782452e-01
+1.9957365128152993e-01
+1.9947938713460711e-01
+1.9938515575252080e-01
+1.9929095713073580e-01
+1.9919679126471682e-01
+1.9910265814992867e-01
+1.9900855778183613e-01
+1.9891449015590393e-01
+1.9882045526759687e-01
+1.9872645311237969e-01
+1.9863248368571718e-01
+1.9853854698307408e-01
+1.9844464299991521e-01
+1.9835077173170526e-01
+1.9825693317390908e-01
+1.9816312732199137e-01
+1.9806935417141697e-01
+1.9797561371765057e-01
+1.9788190595615696e-01
+1.9778823088240094e-01
+1.9769458849184729e-01
+1.9760097877996072e-01
+1.9750740174220605e-01
+1.9741385737404799e-01
+1.9732034567095136e-01
+1.9722686662838088e-01
+1.9713342024180136e-01
+1.9704000650667752e-01
+1.9694662541847424e-01
+1.9685327697265614e-01
+1.9675996116468808e-01
+1.9666667799003482e-01
+1.9657342744416109e-01
+1.9648020952253170e-01
+1.9638702422061138e-01
+1.9629387153386493e-01
+1.9620075145775712e-01
+1.9610766398775267e-01
+1.9601460911931640e-01
+1.9592158684791305e-01
+1.9582859716900741e-01
+1.9573564007806421e-01
+1.9564271557054824e-01
+1.9554982364192430e-01
+1.9545696428765710e-01
+1.9536413750321144e-01
+1.9527134328405210e-01
+1.9517858162564378e-01
+1.9508585252345134e-01
+1.9499315597293951e-01
+1.9490049196957304e-01
+1.9480786050881671e-01
+1.9471526158613528e-01
+1.9462269519699354e-01
+1.9453016133685624e-01
+1.9443766000118817e-01
+1.9434519118545407e-01
+1.9425275488511873e-01
+1.9416035109564686e-01
+1.9406797981250329e-01
+1.9397564103115281e-01
+1.9388333474706010e-01
+1.9379106095569001e-01
+1.9369881965250729e-01
+1.9360661083297664e-01
+1.9351443449256292e-01
+1.9342229062673086e-01
+1.9333017923094520e-01
+1.9323810030067076e-01
+1.9314605383137229e-01
+1.9305403981851452e-01
+1.9296205825756224e-01
+1.9287010914398026e-01
+1.9277819247323330e-01
+1.9268630824078614e-01
+1.9259445644210355e-01
+1.9250263707265031e-01
+1.9241085012789114e-01
+1.9231909560329086e-01
+1.9222737349431424e-01
+1.9213568379642598e-01
+1.9204402650509095e-01
+1.9195240161577382e-01
+1.9186080912393944e-01
+1.9176924902505249e-01
+1.9167772131457783e-01
+1.9158622598798014e-01
+1.9149476304072427e-01
+1.9140333246827496e-01
+1.9131193426609694e-01
+1.9122056842965501e-01
+1.9112923495441397e-01
+1.9103793383583850e-01
+1.9094666506939345e-01
+1.9085542865054356e-01
+1.9076422457475356e-01
+1.9067305283748828e-01
+1.9058191343421249e-01
+1.9049080636039087e-01
+1.9039973161148827e-01
+1.9030868918296945e-01
+1.9021767907029913e-01
+1.9012670126894216e-01
+1.9003575577436321e-01
+1.8994484258202710e-01
+1.8985396168739860e-01
+1.8976311308594249e-01
+1.8967229677312350e-01
+1.8958151274440643e-01
+1.8949076099525602e-01
+1.8940004152113704e-01
+1.8930935431751431e-01
+1.8921869937985253e-01
+1.8912807670361650e-01
+1.8903748628427097e-01
+1.8894692811728075e-01
+1.8885640219811056e-01
+1.8876590852222522e-01
+1.8867544708508943e-01
+1.8858501788216800e-01
+1.8849462090892569e-01
+1.8840425616082726e-01
+1.8831392363333749e-01
+1.8822362332192116e-01
+1.8813335522204300e-01
+1.8804311932916781e-01
+1.8795291563876038e-01
+1.8786274414628540e-01
+1.8777260484720770e-01
+1.8768249773699203e-01
+1.8759242281110314e-01
+1.8750238006500583e-01
+1.8741236949416484e-01
+1.8732239109404497e-01
+1.8723244486011098e-01
+1.8714253078782761e-01
+1.8705264887265965e-01
+1.8696279911007185e-01
+1.8687298149552900e-01
+1.8678319602449589e-01
+1.8669344269243721e-01
+1.8660372149481780e-01
+1.8651403242710241e-01
+1.8642437548475577e-01
+1.8633475066324270e-01
+1.8624515795802793e-01
+1.8615559736457626e-01
+1.8606606887835245e-01
+1.8597657249482122e-01
+1.8588710820944743e-01
+1.8579767601769576e-01
+1.8570827591503100e-01
+1.8561890789691793e-01
+1.8552957195882136e-01
+1.8544026809620598e-01
+1.8535099630453661e-01
+1.8526175657927799e-01
+1.8517254891589491e-01
+1.8508337330985211e-01
+1.8499422975661439e-01
+1.8490511825164652e-01
+1.8481603879041322e-01
+1.8472699136837931e-01
+1.8463797598100953e-01
+1.8454899262376867e-01
+1.8446004129212146e-01
+1.8437112198153269e-01
+1.8428223468746713e-01
+1.8419337940538955e-01
+1.8410455613076471e-01
+1.8401576485905738e-01
+1.8392700558573233e-01
+1.8383827830625432e-01
+1.8374958301608812e-01
+1.8366091971069853e-01
+1.8357228838555029e-01
+1.8348368903610815e-01
+1.8339512165783689e-01
+1.8330658624620128e-01
+1.8321808279666613e-01
+1.8312961130469613e-01
+1.8304117176575610e-01
+1.8295276417531078e-01
+1.8286438852882497e-01
+1.8277604482176341e-01
+1.8268773304959091e-01
+1.8259945320777216e-01
+1.8251120529177201e-01
+1.8242298929705517e-01
+1.8233480521908643e-01
+1.8224665305333057e-01
+1.8215853279525235e-01
+1.8207044444031650e-01
+1.8198238798398786e-01
+1.8189436342173113e-01
+1.8180637074901113e-01
+1.8171840996129257e-01
+1.8163048105404028e-01
+1.8154258402271900e-01
+1.8145471886279349e-01
+1.8136688556972852e-01
+1.8127908413898888e-01
+1.8119131456603932e-01
+1.8110357684634459e-01
+1.8101587097536948e-01
+1.8092819694857876e-01
+1.8084055476143718e-01
+1.8075294440940953e-01
+1.8066536588796059e-01
+1.8057781919255508e-01
+1.8049030431865781e-01
+1.8040282126173351e-01
+1.8031537001724698e-01
+1.8022795058066299e-01
+1.8014056294744626e-01
+1.8005320711306164e-01
+1.7996588307297381e-01
+1.7987859082264759e-01
+1.7979133035754774e-01
+1.7970410167313905e-01
+1.7961690476488623e-01
+1.7952973962825408e-01
+1.7944260625870737e-01
+1.7935550465171085e-01
+1.7926843480272933e-01
+1.7918139670722755e-01
+1.7909439036067026e-01
+1.7900741575852225e-01
+1.7892047289624829e-01
+1.7883356176931314e-01
+1.7874668237318159e-01
+1.7865983470331837e-01
+1.7857301875518827e-01
+1.7848623452425605e-01
+1.7839948200598646e-01
+1.7831276119584433e-01
+1.7822607208929436e-01
+1.7813941468180133e-01
+1.7805278896883003e-01
+1.7796619494584526e-01
+1.7787963260831169e-01
+1.7779310195169418e-01
+1.7770660297145746e-01
+1.7762013566306631e-01
+1.7753370002198549e-01
+1.7744729604367973e-01
+1.7736092372361387e-01
+1.7727458305725263e-01
+1.7718827404006079e-01
+1.7710199666750315e-01
+1.7701575093504440e-01
+1.7692953683814938e-01
+1.7684335437228282e-01
+1.7675720353290950e-01
+1.7667108431549419e-01
+1.7658499671550165e-01
+1.7649894072839667e-01
+1.7641291634964398e-01
+1.7632692357470839e-01
+1.7624096239905462e-01
+1.7615503281814748e-01
+1.7606913482745173e-01
+1.7598326842243212e-01
+1.7589743359855342e-01
+1.7581163035128042e-01
+1.7572585867607787e-01
+1.7564011856841055e-01
+1.7555441002374320e-01
+1.7546873303754060e-01
+1.7538308760526755e-01
+1.7529747372238877e-01
+1.7521189138436907e-01
+1.7512634058667320e-01
+1.7504082132476589e-01
+1.7495533359411197e-01
+1.7486987739017618e-01
+1.7478445270842330e-01
+1.7469905954431808e-01
+1.7461369789332529e-01
+1.7452836775090969e-01
+1.7444306911253610e-01
+1.7435780197366921e-01
+1.7427256632977384e-01
+1.7418736217631475e-01
+1.7410218950875667e-01
+1.7401704832256443e-01
+1.7393193861320277e-01
+1.7384686037613645e-01
+1.7376181360683024e-01
+1.7367679830074889e-01
+1.7359181445335722e-01
+1.7350686206011995e-01
+1.7342194111650186e-01
+1.7333705161796772e-01
+1.7325219355998234e-01
+1.7316736693801041e-01
+1.7308257174751673e-01
+1.7299780798396608e-01
+1.7291307564282324e-01
+1.7282837471955295e-01
+1.7274370520961999e-01
+1.7265906710848911e-01
+1.7257446041162511e-01
+1.7248988511449273e-01
+1.7240534121255674e-01
+1.7232082870128193e-01
+1.7223634757613304e-01
+1.7215189783257487e-01
+1.7206747946607215e-01
+1.7198309247208968e-01
+1.7189873684609219e-01
+1.7181441258354452e-01
+1.7173011967991136e-01
+1.7164585813065750e-01
+1.7156162793124774e-01
+1.7147742907714680e-01
+1.7139326156381948e-01
+1.7130912538673054e-01
+1.7122502054134475e-01
+1.7114094702312688e-01
+1.7105690482754168e-01
+1.7097289395005394e-01
+1.7088891438612841e-01
+1.7080496613122989e-01
+1.7072104918082309e-01
+1.7063716353037284e-01
+1.7055330917534389e-01
+1.7046948611120097e-01
+1.7038569433340889e-01
+1.7030193383743239e-01
+1.7021820461873627e-01
+1.7013450667278524e-01
+1.7005083999504414e-01
+1.6996720458097769e-01
+1.6988360042605066e-01
+1.6980002752572787e-01
+1.6971648587547403e-01
+1.6963297547075393e-01
+1.6954949630703231e-01
+1.6946604837977397e-01
+1.6938263168444370e-01
+1.6929924621650622e-01
+1.6921589197142631e-01
+1.6913256894466872e-01
+1.6904927713169826e-01
+1.6896601652797971e-01
+1.6888278712897775e-01
+1.6879958893015723e-01
+1.6871642192698291e-01
+1.6863328611491951e-01
+1.6855018148943185e-01
+1.6846710804598466e-01
+1.6838406578004272e-01
+1.6830105468707082e-01
+1.6821807476253370e-01
+1.6813512600189612e-01
+1.6805220840062290e-01
+1.6796932195417874e-01
+1.6788646665802845e-01
+1.6780364250763680e-01
+1.6772084949846852e-01
+1.6763808762598842e-01
+1.6755535688566126e-01
+1.6747265727295177e-01
+1.6738998878332478e-01
+1.6730735141224501e-01
+1.6722474515517721e-01
+1.6714217000758622e-01
+1.6705962596493676e-01
+1.6697711302269361e-01
+1.6689463117632153e-01
+1.6681218042128529e-01
+1.6672976075304966e-01
+1.6664737216707939e-01
+1.6656501465883927e-01
+1.6648268822379408e-01
+1.6640039285740857e-01
+1.6631812855514749e-01
+1.6623589531247565e-01
+1.6615369312485778e-01
+1.6607152198775868e-01
+1.6598938189664308e-01
+1.6590727284697576e-01
+1.6582519483422151e-01
+1.6574314785384509e-01
+1.6566113190131124e-01
+1.6557914697208476e-01
+1.6549719306163041e-01
+1.6541527016541294e-01
+1.6533337827889713e-01
+1.6525151739754776e-01
+1.6516968751682959e-01
+1.6508788863220739e-01
+1.6500612073914592e-01
+1.6492438383310995e-01
+1.6484267790956425e-01
+1.6476100296397359e-01
+1.6467935899180272e-01
+1.6459774598851643e-01
+1.6451616394957946e-01
+1.6443461287045663e-01
+1.6435309274661267e-01
+1.6427160357351234e-01
+1.6419014534662044e-01
+1.6410871806140170e-01
+1.6402732171332091e-01
+1.6394595629784287e-01
+1.6386462181043226e-01
+1.6378331824655393e-01
+1.6370204560167262e-01
+1.6362080387125308e-01
+1.6353959305076010e-01
+1.6345841313565845e-01
+1.6337726412141287e-01
+1.6329614600348819e-01
+1.6321505877734910e-01
+1.6313400243846038e-01
+1.6305297698228685e-01
+1.6297198240429328e-01
+1.6289101869994435e-01
+1.6281008586470491e-01
+1.6272918389403970e-01
+1.6264831278341349e-01
+1.6256747252829107e-01
+1.6248666312413715e-01
+1.6240588456641655e-01
+1.6232513685059399e-01
+1.6224441997213432e-01
+1.6216373392650224e-01
+1.6208307870916250e-01
+1.6200245431557994e-01
+1.6192186074121928e-01
+1.6184129798154531e-01
+1.6176076603202277e-01
+1.6168026488811646e-01
+1.6159979454529111e-01
+1.6151935499901152e-01
+1.6143894624474245e-01
+1.6135856827794864e-01
+1.6127822109409493e-01
+1.6119790468864600e-01
+1.6111761905706667e-01
+1.6103736419482170e-01
+1.6095714009737586e-01
+1.6087694676019390e-01
+1.6079678417874060e-01
+1.6071665234848076e-01
+1.6063655126487908e-01
+1.6055648092340036e-01
+1.6047644131950939e-01
+1.6039643244867091e-01
+1.6031645430634969e-01
+1.6023650688801050e-01
+1.6015659018911813e-01
+1.6007670420513731e-01
+1.5999684893153285e-01
+1.5991702436376948e-01
+1.5983723049731199e-01
+1.5975746732762514e-01
+1.5967773485017370e-01
+1.5959803306042245e-01
+1.5951836195383612e-01
+1.5943872152587951e-01
+1.5935911177201739e-01
+1.5927953268771450e-01
+1.5919998426843562e-01
+1.5912046650964556e-01
+1.5904097940680903e-01
+1.5896152295539082e-01
+1.5888209715085572e-01
+1.5880270198866844e-01
+1.5872333746429379e-01
+1.5864400357319652e-01
+1.5856470031084144e-01
+1.5848542767269327e-01
+1.5840618565421680e-01
+1.5832697425087677e-01
+1.5824779345813800e-01
+1.5816864327146521e-01
+1.5808952368632317e-01
+1.5801043469817672e-01
+1.5793137630249052e-01
+1.5785234849472940e-01
+1.5777335127035810e-01
+1.5769438462484142e-01
+1.5761544855364412e-01
+1.5753654305223097e-01
+1.5745766811606671e-01
+1.5737882374061613e-01
+1.5730000992134396e-01
+1.5722122665371505e-01
+1.5714247393319408e-01
+1.5706375175524590e-01
+1.5698506011533520e-01
+1.5690639900892681e-01
+1.5682776843148544e-01
+1.5674916837847591e-01
+1.5667059884536294e-01
+1.5659205982761135e-01
+1.5651355132068587e-01
+1.5643507332005130e-01
+1.5635662582117235e-01
+1.5627820881951385e-01
+1.5619982231054053e-01
+1.5612146628971718e-01
+1.5604314075250855e-01
+1.5596484569437943e-01
+1.5588658111079456e-01
+1.5580834699721874e-01
+1.5573014334911670e-01
+1.5565197016195323e-01
+1.5557382743119311e-01
+1.5549571515230107e-01
+1.5541763332074193e-01
+1.5533958193198041e-01
+1.5526156098148131e-01
+1.5518357046470935e-01
+1.5510561037712936e-01
+1.5502768071420608e-01
+1.5494978147140426e-01
+1.5487191264418870e-01
+1.5479407422802416e-01
+1.5471626621837536e-01
+1.5463848861070717e-01
+1.5456074140048426e-01
+1.5448302458317142e-01
+1.5440533815423346e-01
+1.5432768210913514e-01
+1.5425005644334117e-01
+1.5417246115231636e-01
+1.5409489623152550e-01
+1.5401736167643332e-01
+1.5393985748250458e-01
+1.5386238364520408e-01
+1.5378494015999658e-01
+1.5370752702234683e-01
+1.5363014422771964e-01
+1.5355279177157971e-01
+1.5347546964939188e-01
+1.5339817785662085e-01
+1.5332091638873144e-01
+1.5324368524118842e-01
+1.5316648440945652e-01
+1.5308931388900052e-01
+1.5301217367528519e-01
+1.5293506376377530e-01
+1.5285798414993562e-01
+1.5278093482923091e-01
+1.5270391579712597e-01
+1.5262692704908554e-01
+1.5254996858057435e-01
+1.5247304038705725e-01
+1.5239614246399893e-01
+1.5231927480686422e-01
+1.5224243741111787e-01
+1.5216563027222463e-01
+1.5208885338564926e-01
+1.5201210674685656e-01
+1.5193539035131126e-01
+1.5185870419447817e-01
+1.5178204827182204e-01
+1.5170542257880765e-01
+1.5162882711089973e-01
+1.5155226186356308e-01
+1.5147572683226243e-01
+1.5139922201246261e-01
+1.5132274739962837e-01
+1.5124630298922442e-01
+1.5116988877671561e-01
+1.5109350475756664e-01
+1.5101715092724230e-01
+1.5094082728120739e-01
+1.5086453381492665e-01
+1.5078827052386484e-01
+1.5071203740348674e-01
+1.5063583444925710e-01
+1.5055966165664073e-01
+1.5048351902110235e-01
+1.5040740653810675e-01
+1.5033132420311870e-01
+1.5025527201160299e-01
+1.5017924995902432e-01
+1.5010325804084754e-01
+1.5002729625253733e-01
+1.4995136458955854e-01
+1.4987546304737590e-01
+1.4979959162145418e-01
+1.4972375030725815e-01
+1.4964793910025256e-01
+1.4957215799590221e-01
+1.4949640698967184e-01
+1.4942068607702624e-01
+1.4934499525343017e-01
+1.4926933451434840e-01
+1.4919370385524569e-01
+1.4911810327158681e-01
+1.4904253275883653e-01
+1.4896699231245961e-01
+1.4889148192792084e-01
+1.4881600160068495e-01
+1.4874055132621675e-01
+1.4866513109998097e-01
+1.4858974091744243e-01
+1.4851438077406584e-01
+1.4843905066531599e-01
+1.4836375058665766e-01
+1.4828848053355559e-01
+1.4821324050147458e-01
+1.4813803048587937e-01
+1.4806285048223478e-01
+1.4798770048600549e-01
+1.4791258049265632e-01
+1.4783749049765205e-01
+1.4776243049645743e-01
+1.4768740048453724e-01
+1.4761240045735621e-01
+1.4753743041037917e-01
+1.4746249033907083e-01
+1.4738758023889600e-01
+1.4731270010531941e-01
+1.4723784993380587e-01
+1.4716302971982009e-01
+1.4708823945882690e-01
+1.4701347914629104e-01
+1.4693874877767726e-01
+1.4686404834845035e-01
+1.4678937785407509e-01
+1.4671473729001622e-01
+1.4664012665173853e-01
+1.4656554593470678e-01
+1.4649099513438571e-01
+1.4641647424624013e-01
+1.4634198326573478e-01
+1.4626752218833444e-01
+1.4619309100950389e-01
+1.4611868972470787e-01
+1.4604431832941117e-01
+1.4596997681907856e-01
+1.4589566518917477e-01
+1.4582138343516460e-01
+1.4574713155251284e-01
+1.4567290953668421e-01
+1.4559871738314351e-01
+1.4552455508735548e-01
+1.4545042264478492e-01
+1.4537632005089657e-01
+1.4530224730115521e-01
+1.4522820439102560e-01
+1.4515419131597254e-01
+1.4508020807146077e-01
+1.4500625465295502e-01
+1.4493233105592015e-01
+1.4485843727582087e-01
+1.4478457330812194e-01
+1.4471073914828814e-01
+1.4463693479178424e-01
+1.4456316023407501e-01
+1.4448941547062522e-01
+1.4441570049689964e-01
+1.4434201530836302e-01
+1.4426835990048015e-01
+1.4419473426871579e-01
+1.4412113840853469e-01
+1.4404757231540163e-01
+1.4397403598478140e-01
+1.4390052941213874e-01
+1.4382705259293843e-01
+1.4375360552264521e-01
+1.4368018819672390e-01
+1.4360680061063924e-01
+1.4353344275985597e-01
+1.4346011463983890e-01
+1.4338681624605279e-01
+1.4331354757396239e-01
+1.4324030861903247e-01
+1.4316709937672784e-01
+1.4309391984251321e-01
+1.4302077001185340e-01
+1.4294764988021311e-01
+1.4287455944305716e-01
+1.4280149869585032e-01
+1.4272846763405733e-01
+1.4265546625314299e-01
+1.4258249454857203e-01
+1.4250955251580924e-01
+1.4243664015031937e-01
+1.4236375744756724e-01
+1.4229090440301756e-01
+1.4221808101213512e-01
+1.4214528727038467e-01
+1.4207252317323102e-01
+1.4199978871613889e-01
+1.4192708389457306e-01
+1.4185440870399835e-01
+1.4178176313987945e-01
+1.4170914719768118e-01
+1.4163656087286827e-01
+1.4156400416090553e-01
+1.4149147705725770e-01
+1.4141897955738955e-01
+1.4134651165676584e-01
+1.4127407335085138e-01
+1.4120166463511089e-01
+1.4112928550500914e-01
+1.4105693595601093e-01
+1.4098461598358100e-01
+1.4091232558318414e-01
+1.4084006475028510e-01
+1.4076783348034866e-01
+1.4069563176883959e-01
+1.4062345961122263e-01
+1.4055131700296258e-01
+1.4047920393952421e-01
+1.4040712041637224e-01
+1.4033506642897151e-01
+1.4026304197278672e-01
+1.4019104704328267e-01
+1.4011908163592413e-01
+1.4004714574617586e-01
+1.3997523936950262e-01
+1.3990336250136923e-01
+1.3983151513724038e-01
+1.3975969727258086e-01
+1.3968790890285548e-01
+1.3961615002352898e-01
+1.3954442063006611e-01
+1.3947272071793168e-01
+1.3940105028259039e-01
+1.3932940931950710e-01
+1.3925779782414649e-01
+1.3918621579197338e-01
+1.3911466321845253e-01
+1.3904314009904870e-01
+1.3897164642922666e-01
+1.3890018220445116e-01
+1.3882874742018700e-01
+1.3875734207189894e-01
+1.3868596615505174e-01
+1.3861461966511016e-01
+1.3854330259753897e-01
+1.3847201494780295e-01
+1.3840075671136687e-01
+1.3832952788369549e-01
+1.3825832846025357e-01
+1.3818715843650589e-01
+1.3811601780791721e-01
+1.3804490656995230e-01
+1.3797382471807595e-01
+1.3790277224775288e-01
+1.3783174915444790e-01
+1.3776075543362576e-01
+1.3768979108075122e-01
+1.3761885609128907e-01
+1.3754795046070406e-01
+1.3747707418446095e-01
+1.3740622725802454e-01
+1.3733540967685959e-01
+1.3726462143643084e-01
+1.3719386253220306e-01
+1.3712313295964107e-01
+1.3705243271420955e-01
+1.3698176179137336e-01
+1.3691112018659723e-01
+1.3684050789534591e-01
+1.3676992491308418e-01
+1.3669937123527681e-01
+1.3662884685738858e-01
+1.3655835177488421e-01
+1.3648788598322853e-01
+1.3641744947788628e-01
+1.3634704225432223e-01
+1.3627666430800114e-01
+1.3620631563438779e-01
+1.3613599622894693e-01
+1.3606570608714336e-01
+1.3599544520444182e-01
+1.3592521357630707e-01
+1.3585501119820392e-01
+1.3578483806559710e-01
+1.3571469417395138e-01
+1.3564457951873155e-01
+1.3557449409540234e-01
+1.3550443789942856e-01
+1.3543441092627498e-01
+1.3536441317140632e-01
+1.3529444463028739e-01
+1.3522450529838292e-01
+1.3515459517115774e-01
+1.3508471424407656e-01
+1.3501486251260417e-01
+1.3494503997220531e-01
+1.3487524661834480e-01
+1.3480548244648738e-01
+1.3473574745209782e-01
+1.3466604163064086e-01
+1.3459636497758132e-01
+1.3452671748838393e-01
+1.3445709915851348e-01
+1.3438750998343471e-01
+1.3431794995861243e-01
+1.3424841907951138e-01
+1.3417891734159632e-01
+1.3410944474033201e-01
+1.3404000127118326e-01
+1.3397058692961480e-01
+1.3390120171109143e-01
+1.3383184561107792e-01
+1.3376251862503899e-01
+1.3369322074843942e-01
+1.3362395197674401e-01
+1.3355471230541752e-01
+1.3348550172992471e-01
+1.3341632024573033e-01
+1.3334716784829917e-01
+1.3327804453309600e-01
+1.3320895029558558e-01
+1.3313988513123265e-01
+1.3307084903550204e-01
+1.3300184200385848e-01
+1.3293286403176674e-01
+1.3286391511469156e-01
+1.3279499524809776e-01
+1.3272610442745009e-01
+1.3265724264821332e-01
+1.3258840990585219e-01
+1.3251960619583150e-01
+1.3245083151361600e-01
+1.3238208585467048e-01
+1.3231336921445969e-01
+1.3224468158844838e-01
+1.3217602297210135e-01
+1.3210739336088334e-01
+1.3203879275025915e-01
+1.3197022113569354e-01
+1.3190167851265125e-01
+1.3183316487659708e-01
+1.3176468022299576e-01
+1.3169622454731211e-01
+1.3162779784501086e-01
+1.3155940011155678e-01
+1.3149103134241466e-01
+1.3142269153304925e-01
+1.3135438067892530e-01
+1.3128609877550762e-01
+1.3121784581826096e-01
+1.3114962180265008e-01
+1.3108142672413975e-01
+1.3101326057819473e-01
+1.3094512336027980e-01
+1.3087701506585975e-01
+1.3080893569039931e-01
+1.3074088522936325e-01
+1.3067286367821637e-01
+1.3060487103242341e-01
+1.3053690728744913e-01
+1.3046897243875832e-01
+1.3040106648181574e-01
+1.3033318941208616e-01
+1.3026534122503436e-01
+1.3019752191612508e-01
+1.3012973148082310e-01
+1.3006196991459321e-01
+1.2999423721290013e-01
+1.2992653337120869e-01
+1.2985885838498359e-01
+1.2979121224968965e-01
+1.2972359496079161e-01
+1.2965600651375422e-01
+1.2958844690404231e-01
+1.2952091612712061e-01
+1.2945341417845388e-01
+1.2938594105350690e-01
+1.2931849674774445e-01
+1.2925108125663126e-01
+1.2918369457563214e-01
+1.2911633670021183e-01
+1.2904900762583510e-01
+1.2898170734796674e-01
+1.2891443586207149e-01
+1.2884719316361415e-01
+1.2877997924805945e-01
+1.2871279411087216e-01
+1.2864563774751708e-01
+1.2857851015345897e-01
+1.2851141132416261e-01
+1.2844434125509271e-01
+1.2837729994171410e-01
+1.2831028737949149e-01
+1.2824330356388972e-01
+1.2817634849037349e-01
+1.2810942215440760e-01
+1.2804252455145682e-01
+1.2797565567698591e-01
+1.2790881552645963e-01
+1.2784200409534277e-01
+1.2777522137910008e-01
+1.2770846737319633e-01
+1.2764174207309631e-01
+1.2757504547426474e-01
+1.2750837757216643e-01
+1.2744173836226613e-01
+1.2737512784002863e-01
+1.2730854600091868e-01
+1.2724199284040102e-01
+1.2717546835394047e-01
+1.2710897253700176e-01
+1.2704250538504969e-01
+1.2697606689354898e-01
+1.2690965705796445e-01
+1.2684327587376085e-01
+1.2677692333640292e-01
+1.2671059944135546e-01
+1.2664430418408323e-01
+1.2657803756005101e-01
+1.2651179956472353e-01
+1.2644559019356560e-01
+1.2637940944204196e-01
+1.2631325730561738e-01
+1.2624713377975663e-01
+1.2618103885992452e-01
+1.2611497254158574e-01
+1.2604893482020513e-01
+1.2598292569124739e-01
+1.2591694515017735e-01
+1.2585099319245974e-01
+1.2578506981355936e-01
+1.2571917500894095e-01
+1.2565330877406927e-01
+1.2558747110440910e-01
+1.2552166199542522e-01
+1.2545588144258241e-01
+1.2539012944134539e-01
+1.2532440598717895e-01
+1.2525871107554790e-01
+1.2519304470191694e-01
+1.2512740686175086e-01
+1.2506179755051444e-01
+1.2499621676367247e-01
+1.2493066449668967e-01
+1.2486514074503083e-01
+1.2479964550416073e-01
+1.2473417876954411e-01
+1.2466874053664576e-01
+1.2460333080093043e-01
+1.2453794955786290e-01
+1.2447259680290794e-01
+1.2440727253153031e-01
+1.2434197673919478e-01
+1.2427670942136614e-01
+1.2421147057350912e-01
+1.2414626019108850e-01
+1.2408107826956906e-01
+1.2401592480441556e-01
+1.2395079979109278e-01
+1.2388570322506549e-01
+1.2382063510199659e-01
+1.2375559541821124e-01
+1.2369058417008442e-01
+1.2362560134396601e-01
+1.2356064690709319e-01
+1.2349572082517964e-01
+1.2343082308195803e-01
+1.2336595368150019e-01
+1.2330111262817790e-01
+1.2323629991662326e-01
+1.2317151553490704e-01
+1.2310675946835824e-01
+1.2304203168563782e-01
+1.2297733214887352e-01
+1.2291266083225680e-01
+1.2284801775231585e-01
+1.2278340293470223e-01
+1.2271881638557489e-01
+1.2265425807228347e-01
+1.2258972795793137e-01
+1.2252522601656853e-01
+1.2246075223512157e-01
+1.2239630660192803e-01
+1.2233188911413646e-01
+1.2226749977508503e-01
+1.2220313858522013e-01
+1.2213880552479456e-01
+1.2207450056578047e-01
+1.2201022368527531e-01
+1.2194597487930033e-01
+1.2188175414816570e-01
+1.2181756148337743e-01
+1.2175339685813068e-01
+1.2168926024379739e-01
+1.2162515162751213e-01
+1.2156107101573421e-01
+1.2149701841468735e-01
+1.2143299381089447e-01
+1.2136899717644897e-01
+1.2130502848524771e-01
+1.2124108772618984e-01
+1.2117717489460762e-01
+1.2111328998542292e-01
+1.2104943299188183e-01
+1.2098560390680603e-01
+1.2092180271906972e-01
+1.2085802940896849e-01
+1.2079428395568931e-01
+1.2073056633907284e-01
+1.2066687653979496e-01
+1.2060321453989746e-01
+1.2053958034080577e-01
+1.2047597395874579e-01
+1.2041239540490373e-01
+1.2034884465044952e-01
+1.2028532164861475e-01
+1.2022182636140025e-01
+1.2015835878656590e-01
+1.2009491893088114e-01
+1.2003150679721247e-01
+1.1996812237956138e-01
+1.1990476567045727e-01
+1.1984143665222936e-01
+1.1977813529361975e-01
+1.1971486156349619e-01
+1.1965161544754387e-01
+1.1958839694483300e-01
+1.1952520605544457e-01
+1.1946204278443832e-01
+1.1939890713920644e-01
+1.1933579911714182e-01
+1.1927271867323715e-01
+1.1920966575134138e-01
+1.1914664031756297e-01
+1.1908364239087227e-01
+1.1902067199748026e-01
+1.1895772914384005e-01
+1.1889481380896665e-01
+1.1883192597005851e-01
+1.1876906560778805e-01
+1.1870623270570946e-01
+1.1864342724715100e-01
+1.1858064921287678e-01
+1.1851789858239579e-01
+1.1845517534077536e-01
+1.1839247949780114e-01
+1.1832981107007247e-01
+1.1826717005793028e-01
+1.1820455642133459e-01
+1.1814197011447694e-01
+1.1807941111136323e-01
+1.1801687941469062e-01
+1.1795437502923505e-01
+1.1789189795677271e-01
+1.1782944819648644e-01
+1.1776702574549180e-01
+1.1770463058380380e-01
+1.1764226268269497e-01
+1.1757992201466666e-01
+1.1751760855826948e-01
+1.1745532229383701e-01
+1.1739306321298874e-01
+1.1733083133666841e-01
+1.1726862668997158e-01
+1.1720644926723157e-01
+1.1714429901632954e-01
+1.1708217588297461e-01
+1.1702007984519490e-01
+1.1695801091013620e-01
+1.1689596908515262e-01
+1.1683395437002224e-01
+1.1677196676047877e-01
+1.1671000625027435e-01
+1.1664807282366972e-01
+1.1658616646202885e-01
+1.1652428714415911e-01
+1.1646243484191807e-01
+1.1640060952631967e-01
+1.1633881118883814e-01
+1.1627703985317313e-01
+1.1621529554401754e-01
+1.1615357824819877e-01
+1.1609188791699444e-01
+1.1603022450415028e-01
+1.1596858800030978e-01
+1.1590697841667942e-01
+1.1584539576020632e-01
+1.1578384001487851e-01
+1.1572231115735811e-01
+1.1566080916958268e-01
+1.1559933404851534e-01
+1.1553788579363360e-01
+1.1547646439444317e-01
+1.1541506982406502e-01
+1.1535370205481564e-01
+1.1529236107492354e-01
+1.1523104688818414e-01
+1.1516975949776984e-01
+1.1510849889394439e-01
+1.1504726505946340e-01
+1.1498605797722455e-01
+1.1492487763138921e-01
+1.1486372400654331e-01
+1.1480259708992206e-01
+1.1474149687665647e-01
+1.1468042336324345e-01
+1.1461937653828635e-01
+1.1455835637685488e-01
+1.1449736285323313e-01
+1.1443639595468061e-01
+1.1437545568168446e-01
+1.1431454203493521e-01
+1.1425365501092578e-01
+1.1419279460360143e-01
+1.1413196080385220e-01
+1.1407115358553804e-01
+1.1401037291655700e-01
+1.1394961877161593e-01
+1.1388889114669920e-01
+1.1382819004194437e-01
+1.1376751545861638e-01
+1.1370686739999747e-01
+1.1364624586875113e-01
+1.1358565084624933e-01
+1.1352508229124618e-01
+1.1346454016378431e-01
+1.1340402445090622e-01
+1.1334353515675007e-01
+1.1328307228485388e-01
+1.1322263583359968e-01
+1.1316222579947820e-01
+1.1310184217590058e-01
+1.1304148494621417e-01
+1.1298115409168190e-01
+1.1292084959040712e-01
+1.1286057141459112e-01
+1.1280031953662019e-01
+1.1274009395201387e-01
+1.1267989468189982e-01
+1.1261972174599087e-01
+1.1255957513107812e-01
+1.1249945480221019e-01
+1.1243936072617289e-01
+1.1237929288295005e-01
+1.1231925125759069e-01
+1.1225923584041472e-01
+1.1219924663977493e-01
+1.1213928366776381e-01
+1.1207934692157971e-01
+1.1201943636936934e-01
+1.1195955197636824e-01
+1.1189969372122403e-01
+1.1183986159805641e-01
+1.1178005560204571e-01
+1.1172027573093959e-01
+1.1166052198425394e-01
+1.1160079435943704e-01
+1.1154109284020461e-01
+1.1148141740475934e-01
+1.1142176803189989e-01
+1.1136214470261972e-01
+1.1130254739847077e-01
+1.1124297611051319e-01
+1.1118343084917796e-01
+1.1112391162663383e-01
+1.1106441843468812e-01
+1.1100495124066853e-01
+1.1094551001145710e-01
+1.1088609472752645e-01
+1.1082670537910919e-01
+1.1076734195906492e-01
+1.1070800447681946e-01
+1.1064869294875412e-01
+1.1058940737817616e-01
+1.1053014771905385e-01
+1.1047091391388329e-01
+1.1041170592989721e-01
+1.1035252378697932e-01
+1.1029336751117179e-01
+1.1023423710741219e-01
+1.1017513255419273e-01
+1.1011605382855562e-01
+1.1005700091074500e-01
+1.0999797378340220e-01
+1.0993897242958089e-01
+1.0987999683489258e-01
+1.0982104698607166e-01
+1.0976212287449619e-01
+1.0970322450986518e-01
+1.0964435190631922e-01
+1.0958550506110677e-01
+1.0952668393390218e-01
+1.0946788847986796e-01
+1.0940911867598936e-01
+1.0935037452775517e-01
+1.0929165604185138e-01
+1.0923296321391106e-01
+1.0917429603094093e-01
+1.0911565447991405e-01
+1.0905703854928482e-01
+1.0899844822818751e-01
+1.0893988350407029e-01
+1.0888134435738502e-01
+1.0882283076680897e-01
+1.0876434272034093e-01
+1.0870588022765459e-01
+1.0864744330108522e-01
+1.0858903193510837e-01
+1.0853064609988153e-01
+1.0847228576423529e-01
+1.0841395090377123e-01
+1.0835564149959910e-01
+1.0829735753622578e-01
+1.0823909902403156e-01
+1.0818086598580186e-01
+1.0812265843360354e-01
+1.0806447633262632e-01
+1.0800631963538536e-01
+1.0794818830898786e-01
+1.0789008235602281e-01
+1.0783200178419561e-01
+1.0777394659292545e-01
+1.0771591676986804e-01
+1.0765791230183429e-01
+1.0759993317651535e-01
+1.0754197938234873e-01
+1.0748405090731701e-01
+1.0742614773537487e-01
+1.0736826984845962e-01
+1.0731041723113646e-01
+1.0725258988000372e-01
+1.0719478779507544e-01
+1.0713701097345027e-01
+1.0707925940481136e-01
+1.0702153307753720e-01
+1.0696383197240036e-01
+1.0690615605891386e-01
+1.0684850530724807e-01
+1.0679087971669202e-01
+1.0673327931226276e-01
+1.0667570411483297e-01
+1.0661815410065162e-01
+1.0656062922262699e-01
+1.0650312944065268e-01
+1.0644565474894854e-01
+1.0638820515196581e-01
+1.0633078065305737e-01
+1.0627338125264826e-01
+1.0621600695047033e-01
+1.0615865773369410e-01
+1.0610133357009614e-01
+1.0604403442674701e-01
+1.0598676028970096e-01
+1.0592951116249148e-01
+1.0587228704822997e-01
+1.0581508793997786e-01
+1.0575791382530825e-01
+1.0570076469190258e-01
+1.0564364052826336e-01
+1.0558654132314715e-01
+1.0552946706342371e-01
+1.0547241773070692e-01
+1.0541539330582997e-01
+1.0535839377811115e-01
+1.0530141915053448e-01
+1.0524446942659749e-01
+1.0518754459432016e-01
+1.0513064462687229e-01
+1.0507376949858223e-01
+1.0501691920113558e-01
+1.0496009373611208e-01
+1.0490329310384570e-01
+1.0484651729752109e-01
+1.0478976630798056e-01
+1.0473304012312325e-01
+1.0467633872226877e-01
+1.0461966208325890e-01
+1.0456301018979207e-01
+1.0450638303540796e-01
+1.0444978061443638e-01
+1.0439320291770326e-01
+1.0433664993253131e-01
+1.0428012164679099e-01
+1.0422361805565827e-01
+1.0416713915865489e-01
+1.0411068495131151e-01
+1.0405425540683950e-01
+1.0399785049080811e-01
+1.0394147018192459e-01
+1.0388511449904467e-01
+1.0382878346837086e-01
+1.0377247709107669e-01
+1.0371619532444587e-01
+1.0365993812229715e-01
+1.0360370546264298e-01
+1.0354749734870132e-01
+1.0349131378461048e-01
+1.0343515477165999e-01
+1.0337902030937136e-01
+1.0332291039362246e-01
+1.0326682499936130e-01
+1.0321076409402767e-01
+1.0315472765188145e-01
+1.0309871566903547e-01
+1.0304272814596432e-01
+1.0298676508315377e-01
+1.0293082648110993e-01
+1.0287491233977039e-01
+1.0281902264377908e-01
+1.0276315736117669e-01
+1.0270731646080608e-01
+1.0265149993061262e-01
+1.0259570777090912e-01
+1.0253993998220931e-01
+1.0248419656498346e-01
+1.0242847751968438e-01
+1.0237278284020411e-01
+1.0231711249843746e-01
+1.0226146646176684e-01
+1.0220584470814321e-01
+1.0215024723571432e-01
+1.0209467404490707e-01
+1.0203912513626114e-01
+1.0198360051044368e-01
+1.0192810016656395e-01
+1.0187262408436384e-01
+1.0181717223050790e-01
+1.0176174457519940e-01
+1.0170634111278955e-01
+1.0165096184711946e-01
+1.0159560677899343e-01
+1.0154027589846465e-01
+1.0148496919322574e-01
+1.0142968665093269e-01
+1.0137442825916855e-01
+1.0131919400549799e-01
+1.0126398387718084e-01
+1.0120879786111751e-01
+1.0115363594504764e-01
+1.0109849812800145e-01
+1.0104338441695893e-01
+1.0098829481397996e-01
+1.0093322928702454e-01
+1.0087818779003505e-01
+1.0082317028896542e-01
+1.0076817679417621e-01
+1.0071320732618887e-01
+1.0065826189569604e-01
+1.0060334049289951e-01
+1.0054844310522991e-01
+1.0049356971294143e-01
+1.0043872028746982e-01
+1.0038389480083587e-01
+1.0032909324076653e-01
+1.0027431560651888e-01
+1.0021956189768760e-01
+1.0016483211437201e-01
+1.0011012625688834e-01
+1.0005544432051479e-01
+1.0000078628106900e-01
+9.9946152109710334e-02
+9.9891541785059018e-02
+9.9836955301988287e-02
+9.9782392657534622e-02
+9.9727853849628054e-02
+9.9673338877343087e-02
+9.9618847738868699e-02
+9.9564380418149495e-02
+9.9509936888228817e-02
+9.9455517123952383e-02
+9.9401121115578125e-02
+9.9346748860289810e-02
+9.9292400355651095e-02
+9.9238075600630415e-02
+9.9183774594518798e-02
+9.9129497328948310e-02
+9.9075243778111832e-02
+9.9021013914050049e-02
+9.8966807719678862e-02
+9.8912625192433712e-02
+9.8858466330746950e-02
+9.8804331132831019e-02
+9.8750219596722935e-02
+9.8696131718442243e-02
+9.8642067478309531e-02
+9.8588026849272759e-02
+9.8534009808194906e-02
+9.8480016348741831e-02
+9.8426046469037992e-02
+9.8372100167202770e-02
+9.8318177441343357e-02
+9.8264278289345308e-02
+9.8210402699058688e-02
+9.8156550644365154e-02
+9.8102722098905790e-02
+9.8048917049684645e-02
+9.7995135494816157e-02
+9.7941377432625432e-02
+9.7887642860394128e-02
+9.7833931774891983e-02
+9.7780244169641900e-02
+9.7726580023728429e-02
+9.7672939312234613e-02
+9.7619322015784313e-02
+9.7565728128797602e-02
+9.7512157647827891e-02
+9.7458610570546056e-02
+9.7405086896244900e-02
+9.7351586623556308e-02
+9.7298109736920144e-02
+9.7244656208478927e-02
+9.7191226011913018e-02
+9.7137819137732784e-02
+9.7084435585073320e-02
+9.7031075352885826e-02
+9.6977738438935757e-02
+9.6924424840630935e-02
+9.6871134549624871e-02
+9.6817867542581926e-02
+9.6764623793907142e-02
+9.6711403286469738e-02
+9.6658206015949849e-02
+9.6605031979158443e-02
+9.6551881174141152e-02
+9.6498753600058565e-02
+9.6445649254319463e-02
+9.6392568117983760e-02
+9.6339510163362979e-02
+9.6286475366512081e-02
+9.6233463722220289e-02
+9.6180475230999180e-02
+9.6127509891863347e-02
+9.6074567699742611e-02
+9.6021648648779045e-02
+9.5968752726925968e-02
+9.5915879912366386e-02
+9.5863030182871969e-02
+9.5810203525517695e-02
+9.5757399936132803e-02
+9.5704619411017794e-02
+9.5651861947734659e-02
+9.5599127544550105e-02
+9.5546416196569825e-02
+9.5493727882625251e-02
+9.5441062576343702e-02
+9.5388420257157644e-02
+9.5335800921072369e-02
+9.5283204567016638e-02
+9.5230631192962753e-02
+9.5178080795307624e-02
+9.5125553369862961e-02
+9.5073048902708082e-02
+9.5020567370379311e-02
+9.4968108750199523e-02
+9.4915673031558817e-02
+9.4863260210882788e-02
+9.4810870284855908e-02
+9.4758503251085327e-02
+9.4706159107483881e-02
+9.4653837846820577e-02
+9.4601539446492702e-02
+9.4549263881141932e-02
+9.4497011133733211e-02
+9.4444781201535474e-02
+9.4392574083179207e-02
+9.4340389776126687e-02
+9.4288228276646568e-02
+9.4236089579873880e-02
+9.4183973669340532e-02
+9.4131880521519717e-02
+9.4079810115047652e-02
+9.4027762441357771e-02
+9.3975737496377623e-02
+9.3923735276863402e-02
+9.3871755782149513e-02
+9.3819799011975138e-02
+9.3767864957013419e-02
+9.3715953591676365e-02
+9.3664064889153714e-02
+9.3612198834793173e-02
+9.3560355426887107e-02
+9.3508534664253851e-02
+9.3456736544546878e-02
+9.3404961064680395e-02
+9.3353208219258882e-02
+9.3301477989244846e-02
+9.3249770350587055e-02
+9.3198085283542551e-02
+9.3146422782522623e-02
+9.3094782844835730e-02
+9.3043165467795452e-02
+9.2991570648724986e-02
+9.2939998384598696e-02
+9.2888448662612921e-02
+9.2836921459115290e-02
+9.2785416750923777e-02
+9.2733934527320067e-02
+9.2682474785836327e-02
+9.2631037523968909e-02
+9.2579622738072895e-02
+9.2528230424063926e-02
+9.2476860574441599e-02
+9.2425513169968027e-02
+9.2374188188927744e-02
+9.2322885614815511e-02
+9.2271605441313242e-02
+9.2220347663346219e-02
+9.2169112277762727e-02
+9.2117899283634411e-02
+9.2066708679138701e-02
+9.2015540449455396e-02
+9.1964394570791655e-02
+9.1913271021052470e-02
+9.1862169790430312e-02
+9.1811090874062848e-02
+9.1760034268028423e-02
+9.1708999971745711e-02
+9.1657987985331910e-02
+9.1606998301115863e-02
+9.1556030895520960e-02
+9.1505085743335546e-02
+9.1454162829455732e-02
+9.1403262150957537e-02
+9.1352383705588194e-02
+9.1301527490367462e-02
+9.1250693501791380e-02
+9.1199881734661453e-02
+9.1149092172194357e-02
+9.1098324792730737e-02
+9.1047579577440294e-02
+9.0996856518241701e-02
+9.0946155609600926e-02
+9.0895476847753010e-02
+9.0844820232707651e-02
+9.0794185764645541e-02
+9.0743573432418165e-02
+9.0692983210648309e-02
+9.0642415073977370e-02
+9.0591869010326009e-02
+9.0541345017580002e-02
+9.0490843093899778e-02
+9.0440363237683244e-02
+9.0389905447432764e-02
+9.0339469717729784e-02
+9.0289056027627906e-02
+9.0238664352367035e-02
+9.0188294673360273e-02
+9.0137946985785783e-02
+9.0087621286698782e-02
+9.0037317573782208e-02
+8.9987035845540742e-02
+8.9936776099746610e-02
+8.9886538322091217e-02
+8.9836322488815790e-02
+8.9786128577620569e-02
+8.9735956579233472e-02
+8.9685806490374692e-02
+8.9635678308133140e-02
+8.9585572030997165e-02
+8.9535487657793345e-02
+8.9485425180851397e-02
+8.9435384577357044e-02
+8.9385365822551979e-02
+8.9335368900806775e-02
+8.9285393808950606e-02
+8.9235440544735395e-02
+8.9185509106352534e-02
+8.9135599492351739e-02
+8.9085711699476822e-02
+8.9035845709913713e-02
+8.8986001498851608e-02
+8.8936179044889180e-02
+8.8886378341660827e-02
+8.8836599386891896e-02
+8.8786842178476960e-02
+8.8737106714722805e-02
+8.8687392993814437e-02
+8.8637701005107539e-02
+8.8588030725394160e-02
+8.8538382131165286e-02
+8.8488755210397840e-02
+8.8439149960829064e-02
+8.8389566380379911e-02
+8.8340004465901747e-02
+8.8290464213708980e-02
+8.8240945617476765e-02
+8.8191448658850993e-02
+8.8141973316057748e-02
+8.8092519571868311e-02
+8.8043087420643679e-02
+8.7993676858582406e-02
+8.7944287882801342e-02
+8.7894920491779938e-02
+8.7845574683502417e-02
+8.7796250444653792e-02
+8.7746947751912843e-02
+8.7697666582968722e-02
+8.7648406927578484e-02
+8.7599168781826484e-02
+8.7549952142464929e-02
+8.7500757009176269e-02
+8.7451583382507317e-02
+8.7402431256511176e-02
+8.7353300607915560e-02
+8.7304191410744317e-02
+8.7255103648240101e-02
+8.7206037317912058e-02
+8.7156992418476062e-02
+8.7107968948290898e-02
+8.7058966905385879e-02
+8.7009986286358990e-02
+8.6961027074490563e-02
+8.6912089245770832e-02
+8.6863172779115011e-02
+8.6814277668498988e-02
+8.6765403912614739e-02
+8.6716551509537637e-02
+8.6667720455616618e-02
+8.6618910746806249e-02
+8.6570122372665939e-02
+8.6521355312431270e-02
+8.6472609544819640e-02
+8.6423885057556007e-02
+8.6375181847027513e-02
+8.6326499910089421e-02
+8.6277839244761387e-02
+8.6229199849728363e-02
+8.6180581720727040e-02
+8.6131984837922698e-02
+8.6083409176376413e-02
+8.6034854716532341e-02
+8.5986321454582459e-02
+8.5937809389576944e-02
+8.5889318520210714e-02
+8.5840848844580458e-02
+8.5792400360253304e-02
+8.5743973053899067e-02
+8.5695566901267631e-02
+8.5647181878964904e-02
+8.5598817977545788e-02
+8.5550475195882367e-02
+8.5502153532844558e-02
+8.5453852986676501e-02
+8.5405573555404596e-02
+8.5357315232165762e-02
+8.5309077995125104e-02
+8.5260861819684702e-02
+8.5212666689285191e-02
+8.5164492601496541e-02
+8.5116339555300680e-02
+8.5068207549130484e-02
+8.5020096580845569e-02
+8.4972006647132961e-02
+8.4923937731997717e-02
+8.4875889811555374e-02
+8.4827862864426465e-02
+8.4779856884454829e-02
+8.4731871870960665e-02
+8.4683907822538609e-02
+8.4635964735432834e-02
+8.4588042605359487e-02
+8.4540141422317125e-02
+8.4492261165813945e-02
+8.4444401814559117e-02
+8.4396563356000764e-02
+8.4348745787095905e-02
+8.4300949105315659e-02
+8.4253173308541082e-02
+8.4205418394919351e-02
+8.4157684360257431e-02
+8.4109971186079435e-02
+8.4062278848532193e-02
+8.4014607328216445e-02
+8.3966956620737637e-02
+8.3919326724847823e-02
+8.3871717638986445e-02
+8.3824129360994010e-02
+8.3776561888312506e-02
+8.3729015208732938e-02
+8.3681489299103004e-02
+8.3633984136705558e-02
+8.3586499711559889e-02
+8.3539036022305196e-02
+8.3491593067600983e-02
+8.3444170845194510e-02
+8.3396769352473366e-02
+8.3349388583104700e-02
+8.3302028517650908e-02
+8.3254689133832452e-02
+8.3207370415131210e-02
+8.3160072356555023e-02
+8.3112794954535982e-02
+8.3065538207149750e-02
+8.3018302114414202e-02
+8.2971086675376240e-02
+8.2923891874816150e-02
+8.2876717687445783e-02
+8.2829564090293531e-02
+8.2782431077382770e-02
+8.2735318649740514e-02
+8.2688226807406701e-02
+8.2641155546695003e-02
+8.2594104863025805e-02
+8.2547074746492949e-02
+8.2500065176058734e-02
+8.2453076129555339e-02
+8.2406107594014857e-02
+8.2359159567799836e-02
+8.2312232049911283e-02
+8.2265325038518120e-02
+8.2218438531177079e-02
+8.2171572523545761e-02
+8.2124726997959793e-02
+8.2077901931014052e-02
+8.2031097303033526e-02
+8.1984313108873982e-02
+8.1937549346907959e-02
+8.1890806015541814e-02
+8.1844083113255736e-02
+8.1797380638292894e-02
+8.1750698579553971e-02
+8.1704036913946634e-02
+8.1657395618434436e-02
+8.1610774682528586e-02
+8.1564174105365220e-02
+8.1517593886171136e-02
+8.1471034023021610e-02
+8.1424494513473153e-02
+8.1377975351549905e-02
+8.1331476516944903e-02
+8.1284997985743790e-02
+8.1238539740876331e-02
+8.1192101780894393e-02
+8.1145684106462307e-02
+8.1099286715877794e-02
+8.1052909604271625e-02
+8.1006552766046749e-02
+8.0960216187576248e-02
+8.0913899848812892e-02
+8.0867603730890691e-02
+8.0821327825588318e-02
+8.0775072129695605e-02
+8.0728836640303420e-02
+8.0682621355659553e-02
+8.0636426274300121e-02
+8.0590251389045978e-02
+8.0544096679078248e-02
+8.0497962121768241e-02
+8.0451847702825763e-02
+8.0405753419593926e-02
+8.0359679270280426e-02
+8.0313625253109824e-02
+8.0267591366320695e-02
+8.0221577606556710e-02
+8.0175583957320745e-02
+8.0129610395652764e-02
+8.0083656901894729e-02
+8.0037723471328398e-02
+7.9991810103399938e-02
+7.9945916796697325e-02
+7.9900043547665861e-02
+7.9854190352290022e-02
+7.9808357199835492e-02
+7.9762544069794161e-02
+7.9716750941420930e-02
+7.9670977803604714e-02
+7.9625224653601348e-02
+7.9579491489065984e-02
+7.9533778308705297e-02
+7.9488085111766124e-02
+7.9442411894229237e-02
+7.9396758636767248e-02
+7.9351125315589077e-02
+7.9305511912604182e-02
+7.9259918424609388e-02
+7.9214344850791943e-02
+7.9168791189805549e-02
+7.9123257439494499e-02
+7.9077743597112157e-02
+7.9032249649787709e-02
+7.8986775575487611e-02
+7.8941321353181479e-02
+7.8895886974044219e-02
+7.8850472435797417e-02
+7.8805077736414930e-02
+7.8759702874802676e-02
+7.8714347850143890e-02
+7.8669012656105819e-02
+7.8623697271281143e-02
+7.8578401671849679e-02
+7.8533125842803295e-02
+7.8487869783077924e-02
+7.8442633492758623e-02
+7.8397416970180669e-02
+7.8352220212029061e-02
+7.8307043213795488e-02
+7.8261885960070401e-02
+7.8216748429340316e-02
+7.8171630602638792e-02
+7.8126532474461621e-02
+7.8081454043625168e-02
+7.8036395308496931e-02
+7.7991356266154443e-02
+7.7946336913356493e-02
+7.7901337240455629e-02
+7.7856357227228792e-02
+7.7811396852863798e-02
+7.7766456105478068e-02
+7.7721534981964824e-02
+7.7676633479740506e-02
+7.7631751597787027e-02
+7.7586889336001150e-02
+7.7542046691407712e-02
+7.7497223645452404e-02
+7.7452420174346712e-02
+7.7407636259353249e-02
+7.7362871896878960e-02
+7.7318127086146479e-02
+7.7273401825704149e-02
+7.7228696112938755e-02
+7.7184009944767124e-02
+7.7139343309579514e-02
+7.7094696187034364e-02
+7.7050068557406995e-02
+7.7005460411892657e-02
+7.6960871748345330e-02
+7.6916302564552091e-02
+7.6871752857383110e-02
+7.6827222623384331e-02
+7.6782711855756122e-02
+7.6738220537201307e-02
+7.6693748648423987e-02
+7.6649296175249015e-02
+7.6604863112707727e-02
+7.6560449456867907e-02
+7.6516055205742242e-02
+7.6471680359418870e-02
+7.6427324916870890e-02
+7.6382988863200704e-02
+7.6338672174687164e-02
+7.6294374830036524e-02
+7.6250096823247140e-02
+7.6205838153952779e-02
+7.6161598821505944e-02
+7.6117378824305026e-02
+7.6073178160490668e-02
+7.6028996821555339e-02
+7.5984834786513591e-02
+7.5940692033341695e-02
+7.5896568549466401e-02
+7.5852464332823569e-02
+7.5808379381900645e-02
+7.5764313695214372e-02
+7.5720267271300934e-02
+7.5676240106509529e-02
+7.5632232183516057e-02
+7.5588243479723718e-02
+7.5544273976744694e-02
+7.5500323670733005e-02
+7.5456392560969907e-02
+7.5412480646410956e-02
+7.5368587925373320e-02
+7.5324714395801198e-02
+7.5280860046533421e-02
+7.5237024855856940e-02
+7.5193208802378966e-02
+7.5149411876366465e-02
+7.5105634076154171e-02
+7.5061875400218372e-02
+7.5018135846906642e-02
+7.4974415414514411e-02
+7.4930714097635215e-02
+7.4887031877492183e-02
+7.4843368732333992e-02
+7.4799724646784707e-02
+7.4756099618519631e-02
+7.4712493646786074e-02
+7.4668906729992338e-02
+7.4625338865533491e-02
+7.4581790049978294e-02
+7.4538260269483750e-02
+7.4494749502695204e-02
+7.4451257730013098e-02
+7.4407784945099725e-02
+7.4364331147213095e-02
+7.4320896335224970e-02
+7.4277480506469942e-02
+7.4234083657890415e-02
+7.4190705781425656e-02
+7.4147346858314200e-02
+7.4104006868615277e-02
+7.4060685799622897e-02
+7.4017383647738369e-02
+7.3974100410028804e-02
+7.3930836084798709e-02
+7.3887590671283226e-02
+7.3844364166921181e-02
+7.3801156555949030e-02
+7.3757967816779083e-02
+7.3714797931091508e-02
+7.3671646893641793e-02
+7.3628514702431522e-02
+7.3585401355832789e-02
+7.3542306853045691e-02
+7.3499231193152256e-02
+7.3456174366072088e-02
+7.3413136349702465e-02
+7.3370117121941775e-02
+7.3327116673253631e-02
+7.3284135003953338e-02
+7.3241172114217712e-02
+7.3198228001150528e-02
+7.3155302660438709e-02
+7.3112396085378228e-02
+7.3069508259344329e-02
+7.3026639163148610e-02
+7.2983788782196524e-02
+7.2940957112628185e-02
+7.2898144152118247e-02
+7.2855349898507255e-02
+7.2812574349862644e-02
+7.2769817503671341e-02
+7.2727079347631646e-02
+7.2684359861442491e-02
+7.2641659026001129e-02
+7.2598976833721157e-02
+7.2556313282564497e-02
+7.2513668370534953e-02
+7.2471042095663754e-02
+7.2428434455974869e-02
+7.2385845444564584e-02
+7.2343275042488150e-02
+7.2300723229155719e-02
+7.2258189991717542e-02
+7.2215675328362969e-02
+7.2173179238059992e-02
+7.2130701718600629e-02
+7.2088242766775279e-02
+7.2045802378163840e-02
+7.2003380538368286e-02
+7.1960977227969097e-02
+7.1918592430045045e-02
+7.1876226139283433e-02
+7.1833878353689970e-02
+7.1791549070963107e-02
+7.1749238288015174e-02
+7.1706946001525732e-02
+7.1664672202309293e-02
+7.1622416872457698e-02
+7.1580179993789614e-02
+7.1537961556283808e-02
+7.1495761557161891e-02
+7.1453579993933924e-02
+7.1411416864439900e-02
+7.1369272166693212e-02
+7.1327145896174088e-02
+7.1285038036196763e-02
+7.1242948566437342e-02
+7.1200877470971952e-02
+7.1158824745647026e-02
+7.1116790388259604e-02
+7.1074774396824442e-02
+7.1032776769693926e-02
+7.0990797504807079e-02
+7.0948836591223835e-02
+7.0906894009791555e-02
+7.0864969742089071e-02
+7.0823063779489423e-02
+7.0781176118739700e-02
+7.0739306756889400e-02
+7.0697455692231750e-02
+7.0655622923445238e-02
+7.0613808444909207e-02
+7.0572012238966836e-02
+7.0530234285964319e-02
+7.0488474572550031e-02
+7.0446733095569841e-02
+7.0405009852798101e-02
+7.0363304841989743e-02
+7.0321618060880983e-02
+7.0279949506161996e-02
+7.0238299164135723e-02
+7.0196667015156020e-02
+7.0155053041807067e-02
+7.0113457238823410e-02
+7.0071879604935869e-02
+7.0030320138383978e-02
+6.9988778835960108e-02
+6.9947255694123578e-02
+6.9905750704038330e-02
+6.9864263847928418e-02
+6.9822795107509508e-02
+6.9781344472682111e-02
+6.9739911941567173e-02
+6.9698497512528948e-02
+6.9657101182704281e-02
+6.9615722948496411e-02
+6.9574362804606660e-02
+6.9533020736358461e-02
+6.9491696725846389e-02
+6.9450390758113850e-02
+6.9409102827266381e-02
+6.9367832929161780e-02
+6.9326581061311440e-02
+6.9285347224140245e-02
+6.9244131417948773e-02
+6.9202933632517005e-02
+6.9161753846614327e-02
+6.9120592039566719e-02
+6.9079448202642446e-02
+6.9038322334556368e-02
+6.8997214434042067e-02
+6.8956124499284482e-02
+6.8915052528269585e-02
+6.8873998515424639e-02
+6.8832962443732382e-02
+6.8791944293934024e-02
+6.8750944052255888e-02
+6.8709961715011855e-02
+6.8668997279617991e-02
+6.8628050743987215e-02
+6.8587122106574264e-02
+6.8546211364964485e-02
+6.8505318506201521e-02
+6.8464443510472289e-02
+6.8423586359909735e-02
+6.8382747049246975e-02
+6.8341925577973264e-02
+6.8301121944913640e-02
+6.8260336146624759e-02
+6.8219568179147566e-02
+6.8178818034069888e-02
+6.8138085694428738e-02
+6.8097371142516863e-02
+6.8056674367210260e-02
+6.8015995364866674e-02
+6.7975334132373597e-02
+6.7934690668168402e-02
+6.7894064971739956e-02
+6.7853457040556425e-02
+6.7812866858993820e-02
+6.7772294406257497e-02
+6.7731739665366400e-02
+6.7691202632855330e-02
+6.7650683308235676e-02
+6.7610181690167609e-02
+6.7569697775604259e-02
+6.7529231561091807e-02
+6.7488783036703803e-02
+6.7448352184847668e-02
+6.7407938988109997e-02
+6.7367543437312605e-02
+6.7327165529102631e-02
+6.7286805260505109e-02
+6.7246462630263709e-02
+6.7206137637832120e-02
+6.7165830279035277e-02
+6.7125540536252803e-02
+6.7085268388790045e-02
+6.7045013821973087e-02
+6.7004776833740898e-02
+6.6964557423581789e-02
+6.6924355589696893e-02
+6.6884171328698505e-02
+6.6844004636564508e-02
+6.6803855501744697e-02
+6.6763723907136932e-02
+6.6723609836763786e-02
+6.6683513283536486e-02
+6.6643434244206004e-02
+6.6603372715842782e-02
+6.6563328696698343e-02
+6.6523302185283656e-02
+6.6483293174814967e-02
+6.6443301646918182e-02
+6.6403327581904523e-02
+6.6363370968442151e-02
+6.6323431805951835e-02
+6.6283510094408943e-02
+6.6243605831494537e-02
+6.6203719013125745e-02
+6.6163849633992591e-02
+6.6123997679974983e-02
+6.6084163132974522e-02
+6.6044345977592261e-02
+6.6004546209496626e-02
+6.5964763827171008e-02
+6.5924998828929673e-02
+6.5885251212699905e-02
+6.5845520976190119e-02
+6.5805808110208974e-02
+6.5766112596310891e-02
+6.5726434415964152e-02
+6.5686773559586326e-02
+6.5647130024766728e-02
+6.5607503809379353e-02
+6.5567894911950017e-02
+6.5528303331312140e-02
+6.5488729063425302e-02
+6.5449172091975774e-02
+6.5409632397392753e-02
+6.5370109965048051e-02
+6.5330604792138411e-02
+6.5291116877579158e-02
+6.5251646219696272e-02
+6.5212192815991665e-02
+6.5172756663434042e-02
+6.5133337750984385e-02
+6.5093936060915333e-02
+6.5054551576378405e-02
+6.5015184289480568e-02
+6.4975834196743992e-02
+6.4936501295200691e-02
+6.4897185584025810e-02
+6.4857887062980679e-02
+6.4818605726869663e-02
+6.4779341558093395e-02
+6.4740094537275444e-02
+6.4700864651761350e-02
+6.4661651898697853e-02
+6.4622456276023865e-02
+6.4583277781993423e-02
+6.4544116415134856e-02
+6.4504972172772679e-02
+6.4465845041673409e-02
+6.4426735003167118e-02
+6.4387642041021709e-02
+6.4348566150657038e-02
+6.4309507330907123e-02
+6.4270465580090655e-02
+6.4231440895176253e-02
+6.4192433272817331e-02
+6.4153442704137073e-02
+6.4114469171849514e-02
+6.4075512658373662e-02
+6.4036573154082677e-02
+6.3997650656565097e-02
+6.3958745163806480e-02
+6.3919856675037121e-02
+6.3880985190156614e-02
+6.3842130706189243e-02
+6.3803293205975414e-02
+6.3764472668006625e-02
+6.3725669076067915e-02
+6.3686882428450498e-02
+6.3648112725887440e-02
+6.3609359967818080e-02
+6.3570624151629895e-02
+6.3531905274141987e-02
+6.3493203324128819e-02
+6.3454518282760497e-02
+6.3415850132058221e-02
+6.3377198865173484e-02
+6.3338564481504836e-02
+6.3299946980226673e-02
+6.3261346358999063e-02
+6.3222762614991171e-02
+6.3184195741960117e-02
+6.3145645723877125e-02
+6.3107112543042160e-02
+6.3068596186959716e-02
+6.3030096651746151e-02
+6.2991613934402835e-02
+6.2953148033647169e-02
+6.2914698949886771e-02
+6.2876266682396875e-02
+6.2837851218137383e-02
+6.2799452536854358e-02
+6.2761070620498557e-02
+6.2722705463458692e-02
+6.2684357064315951e-02
+6.2646025421762494e-02
+6.2607710534814356e-02
+6.2569412402471408e-02
+6.2531131017460342e-02
+6.2492866361676232e-02
+6.2454618416279889e-02
+6.2416387170636550e-02
+6.2378172622532604e-02
+6.2339974770210180e-02
+6.2301793612692301e-02
+6.2263629149479270e-02
+6.2225481377771535e-02
+6.2187350281654868e-02
+6.2149235840588221e-02
+6.2111138038467177e-02
+6.2073056873162280e-02
+6.2034992345270781e-02
+6.1996944454018398e-02
+6.1958913196159211e-02
+6.1920898567958287e-02
+6.1882900559687933e-02
+6.1844919155210842e-02
+6.1806954338679464e-02
+6.1769006101149389e-02
+6.1731074438077717e-02
+6.1693159345673404e-02
+6.1655260824208927e-02
+6.1617378875456978e-02
+6.1579513496482767e-02
+6.1541664668825574e-02
+6.1503832370895566e-02
+6.1466016588185249e-02
+6.1428217319511716e-02
+6.1390434565140185e-02
+6.1352668324647981e-02
+6.1314918596845742e-02
+6.1277185379628209e-02
+6.1239468660278150e-02
+6.1201768419021009e-02
+6.1164084637917074e-02
+6.1126417311327071e-02
+6.1088766438367290e-02
+6.1051132018117849e-02
+6.1013514049498514e-02
+6.0975912531349541e-02
+6.0938327456843966e-02
+6.0900758808021073e-02
+6.0863206565890990e-02
+6.0825670719668275e-02
+6.0788151268097015e-02
+6.0750648210381709e-02
+6.0713161544770418e-02
+6.0675691268847885e-02
+6.0638237378770728e-02
+6.0600799861378833e-02
+6.0563378699744000e-02
+6.0525973879468058e-02
+6.0488585395353379e-02
+6.0451213244289252e-02
+6.0413857423901596e-02
+6.0376517933327892e-02
+6.0339194771655051e-02
+6.0301887930097713e-02
+6.0264597390340999e-02
+6.0227323134275333e-02
+6.0190065154385852e-02
+6.0152823450818925e-02
+6.0115598023461919e-02
+6.0078388869229435e-02
+6.0041195983778620e-02
+6.0004019360739895e-02
+5.9966858986066268e-02
+5.9929714843911006e-02
+5.9892586922323916e-02
+5.9855475217709092e-02
+5.9818379727561488e-02
+5.9781300449788376e-02
+5.9744237382817186e-02
+5.9707190524459282e-02
+5.9670159863109286e-02
+5.9633145380062820e-02
+5.9596147058201751e-02
+5.9559164893220322e-02
+5.9522198886478736e-02
+5.9485249038121510e-02
+5.9448315343354208e-02
+5.9411397796144461e-02
+5.9374496388473315e-02
+5.9337611107870440e-02
+5.9300741941329699e-02
+5.9263888878621759e-02
+5.9227051913169217e-02
+5.9190231038953212e-02
+5.9153426254739759e-02
+5.9116637563055005e-02
+5.9079864964595892e-02
+5.9043108445277326e-02
+5.9006367984181934e-02
+5.8969643563750895e-02
+5.8932935180596432e-02
+5.8896242835024322e-02
+5.8859566526582224e-02
+5.8822906253041866e-02
+5.8786262011778646e-02
+5.8749633793900267e-02
+5.8713021581921133e-02
+5.8676425358298590e-02
+5.8639845114788626e-02
+5.8603280850763523e-02
+5.8566732565655338e-02
+5.8530200257569602e-02
+5.8493683923971224e-02
+5.8457183560086536e-02
+5.8420699151363803e-02
+5.8384230680589885e-02
+5.8347778134789467e-02
+5.8311341511368603e-02
+5.8274920809272469e-02
+5.8238516026411405e-02
+5.8202127159216410e-02
+5.8165754203678234e-02
+5.8129397150049097e-02
+5.8093055983682591e-02
+5.8056730690556467e-02
+5.8020421263283488e-02
+5.7984127697823601e-02
+5.7947849990789085e-02
+5.7911588141667997e-02
+5.7875342150761254e-02
+5.7839112013330904e-02
+5.7802897711726753e-02
+5.7766699226402998e-02
+5.7730516545584351e-02
+5.7694349669079027e-02
+5.7658198597537666e-02
+5.7622063329693621e-02
+5.7585943862574582e-02
+5.7549840192227253e-02
+5.7513752306450699e-02
+5.7477680188699046e-02
+5.7441623824292382e-02
+5.7405583207717964e-02
+5.7369558336218263e-02
+5.7333549207626094e-02
+5.7297555821355775e-02
+5.7261578176972791e-02
+5.7225616267318070e-02
+5.7189670074777522e-02
+5.7153739581282344e-02
+5.7117824777796304e-02
+5.7081925663656843e-02
+5.7046042238371057e-02
+5.7010174500061031e-02
+5.6974322446087071e-02
+5.6938486071904389e-02
+5.6902665363391600e-02
+5.6866860303417255e-02
+5.6831070878673583e-02
+5.6795297086587822e-02
+5.6759538926446272e-02
+5.6723796396834107e-02
+5.6688069495199410e-02
+5.6652358218567511e-02
+5.6616662557067987e-02
+5.6580982494168916e-02
+5.6545318013954946e-02
+5.6509669109366716e-02
+5.6474035778428917e-02
+5.6438418019349811e-02
+5.6402815830989772e-02
+5.6367229212421176e-02
+5.6331658159097256e-02
+5.6296102655835199e-02
+5.6260562685575707e-02
+5.6225038236448199e-02
+5.6189529305362571e-02
+5.6154035890080778e-02
+5.6118557988443729e-02
+5.6083095598371775e-02
+5.6047648717069284e-02
+5.6012217334163165e-02
+5.5976801434740910e-02
+5.5941401005106514e-02
+5.5906016038665324e-02
+5.5870646531275735e-02
+5.5835292479810297e-02
+5.5799953884255814e-02
+5.5764630745123486e-02
+5.5729323056531575e-02
+5.5694030801308324e-02
+5.5658753961443458e-02
+5.5623492526814464e-02
+5.5588246495572730e-02
+5.5553015866263829e-02
+5.5517800637463997e-02
+5.5482600807768623e-02
+5.5447416374160216e-02
+5.5412247324211808e-02
+5.5377093642094991e-02
+5.5341955314431361e-02
+5.5306832335757485e-02
+5.5271724702215634e-02
+5.5236632411300564e-02
+5.5201555463000325e-02
+5.5166493857274082e-02
+5.5131447586003482e-02
+5.5096416632240970e-02
+5.5061400979342687e-02
+5.5026400619532130e-02
+5.4991415550813882e-02
+5.4956445771419470e-02
+5.4921491280363575e-02
+5.4886552076956682e-02
+5.4851628157037494e-02
+5.4816719504711793e-02
+5.4781826101660401e-02
+5.4746947935497454e-02
+5.4712085005257344e-02
+5.4677237311218076e-02
+5.4642404852060920e-02
+5.4607587624648346e-02
+5.4572785625171948e-02
+5.4537998842675101e-02
+5.4503227261340895e-02
+5.4468470866712311e-02
+5.4433729653678847e-02
+5.4399003620830652e-02
+5.4364292766740090e-02
+5.4329597089883858e-02
+5.4294916588680117e-02
+5.4260251256411825e-02
+5.4225601076039236e-02
+5.4190966029550029e-02
+5.4156346107374354e-02
+5.4121741309964402e-02
+5.4087151638163730e-02
+5.4052577090280815e-02
+5.4018017662826767e-02
+5.3983473351135992e-02
+5.3948944142846005e-02
+5.3914430022406791e-02
+5.3879930976639255e-02
+5.3845447001204673e-02
+5.3810978093817491e-02
+5.3776524252520490e-02
+5.3742085476045899e-02
+5.3707661763029005e-02
+5.3673253105681086e-02
+5.3638859488265453e-02
+5.3604480895111085e-02
+5.3570117318417543e-02
+5.3535768756202300e-02
+5.3501435206575819e-02
+5.3467116667340241e-02
+5.3432813136164180e-02
+5.3398524608572778e-02
+5.3364251071749948e-02
+5.3329992510867008e-02
+5.3295748914374233e-02
+5.3261520277917258e-02
+5.3227306598130839e-02
+5.3193107872947634e-02
+5.3158924101974037e-02
+5.3124755284359011e-02
+5.3090601410737639e-02
+5.3056462465184438e-02
+5.3022338432701870e-02
+5.2988229306493266e-02
+5.2954135083474276e-02
+5.2920055761010942e-02
+5.2885991338232748e-02
+5.2851941814701181e-02
+5.2817907185691036e-02
+5.2783887436644444e-02
+5.2749882551750803e-02
+5.2715892520257629e-02
+5.2681917338212189e-02
+5.2647957002288234e-02
+5.2614011511526178e-02
+5.2580080866867350e-02
+5.2546165067759609e-02
+5.2512264101479418e-02
+5.2478377949545553e-02
+5.2444506596341825e-02
+5.2410650038658593e-02
+5.2376808276601718e-02
+5.2342981309546621e-02
+5.2309169135116851e-02
+5.2275371750566416e-02
+5.2241589147937070e-02
+5.2207821311965254e-02
+5.2174068227277666e-02
+5.2140329885931182e-02
+5.2106606286202804e-02
+5.2072897426559205e-02
+5.2039203305449554e-02
+5.2005523921314370e-02
+5.1971859270483423e-02
+5.1938209339815883e-02
+5.1904574113524601e-02
+5.1870953579219996e-02
+5.1837347733035513e-02
+5.1803756572436674e-02
+5.1770180095767886e-02
+5.1736618302657987e-02
+5.1703071192360534e-02
+5.1669538755442258e-02
+5.1636020974891152e-02
+5.1602517834610187e-02
+5.1569029328709048e-02
+5.1535555456565671e-02
+5.1502096217500300e-02
+5.1468651610355159e-02
+5.1435221633823927e-02
+5.1401806282502620e-02
+5.1368405540233163e-02
+5.1335019389233912e-02
+5.1301647818567955e-02
+5.1268290827730621e-02
+5.1234948417038489e-02
+5.1201620585721024e-02
+5.1168307332019318e-02
+5.1135008653144486e-02
+5.1101724537157493e-02
+5.1068454967187961e-02
+5.1035199928555895e-02
+5.1001959417626898e-02
+5.0968733434167024e-02
+5.0935521977254067e-02
+5.0902325044072737e-02
+5.0869142631425661e-02
+5.0835974732262680e-02
+5.0802821333408597e-02
+5.0769682421385777e-02
+5.0736557987792884e-02
+5.0703448029037958e-02
+5.0670352541812270e-02
+5.0637271523719198e-02
+5.0604204972875245e-02
+5.0571152885995979e-02
+5.0538115252514754e-02
+5.0505092059517302e-02
+5.0472083295881216e-02
+5.0439088955639887e-02
+5.0406109033777784e-02
+5.0373143527457045e-02
+5.0340192437451671e-02
+5.0307255764468956e-02
+5.0274333500072869e-02
+5.0241425626800743e-02
+5.0208532127885480e-02
+5.0175652997631146e-02
+5.0142788236842144e-02
+5.0109937845800062e-02
+5.0077101821496731e-02
+5.0044280159810904e-02
+5.0011472854508000e-02
+4.9978679892992380e-02
+4.9945901261525642e-02
+4.9913136950470498e-02
+4.9880386957287477e-02
+4.9847651280124528e-02
+4.9814929916674279e-02
+4.9782222864160924e-02
+4.9749530119201218e-02
+4.9716851672055667e-02
+4.9684187509090726e-02
+4.9651537617791369e-02
+4.9618901992339343e-02
+4.9586280629286286e-02
+4.9553673526071415e-02
+4.9521080682924906e-02
+4.9488502100558801e-02
+4.9455937773352283e-02
+4.9423387684244910e-02
+4.9390851815305635e-02
+4.9358330157266837e-02
+4.9325822710148001e-02
+4.9293329474289778e-02
+4.9260850448483592e-02
+4.9228385630530759e-02
+4.9195935016750653e-02
+4.9163498594689756e-02
+4.9131076348645907e-02
+4.9098668265821703e-02
+4.9066274343037369e-02
+4.9033894579098278e-02
+4.9001528972918013e-02
+4.8969177523614217e-02
+4.8936840230072887e-02
+4.8904517083978194e-02
+4.8872208068969233e-02
+4.8839913169005066e-02
+4.8807632377084575e-02
+4.8775365692232404e-02
+4.8743113113553074e-02
+4.8710874639964902e-02
+4.8678650270313782e-02
+4.8646440000599860e-02
+4.8614243816967058e-02
+4.8582061703463686e-02
+4.8549893648833685e-02
+4.8517739651068134e-02
+4.8485599709226765e-02
+4.8453473822005731e-02
+4.8421361987677929e-02
+4.8389264203860215e-02
+4.8357180460019217e-02
+4.8325110739956101e-02
+4.8293055029047127e-02
+4.8261013323825666e-02
+4.8228985625348823e-02
+4.8196971933752830e-02
+4.8164972245783574e-02
+4.8132986557396305e-02
+4.8101014861320845e-02
+4.8069057143652394e-02
+4.8037113389856598e-02
+4.8005183591669241e-02
+4.7973267748433489e-02
+4.7941365859824787e-02
+4.7909477923801701e-02
+4.7877603937078392e-02
+4.7845743895395351e-02
+4.7813897787928571e-02
+4.7782065601070532e-02
+4.7750247323150273e-02
+4.7718442949906466e-02
+4.7686652478843398e-02
+4.7654875907983840e-02
+4.7623113236464863e-02
+4.7591364463388644e-02
+4.7559629581290674e-02
+4.7527908574402401e-02
+4.7496201427041321e-02
+4.7464508132529906e-02
+4.7432828690994869e-02
+4.7401163102375285e-02
+4.7369511364016396e-02
+4.7337873472113552e-02
+4.7306249421450751e-02
+4.7274639201200057e-02
+4.7243042799143473e-02
+4.7211460205197425e-02
+4.7179891414072604e-02
+4.7148336421189943e-02
+4.7116795224241545e-02
+4.7085267823913327e-02
+4.7053754220539479e-02
+4.7022254405837662e-02
+4.6990768364738797e-02
+4.6959296083023849e-02
+4.6927837554411683e-02
+4.6896392776299006e-02
+4.6864961746255963e-02
+4.6833544462494346e-02
+4.6802140923382585e-02
+4.6770751124269185e-02
+4.6739375053411039e-02
+4.6708012698122955e-02
+4.6676664049030092e-02
+4.6645329101306698e-02
+4.6614007850624438e-02
+4.6582700295413143e-02
+4.6551406436366995e-02
+4.6520126273038746e-02
+4.6488859795212424e-02
+4.6457606987942948e-02
+4.6426367838016687e-02
+4.6395142339952559e-02
+4.6363930490393022e-02
+4.6332732287149229e-02
+4.6301547730902198e-02
+4.6270376822616713e-02
+4.6239219555970018e-02
+4.6208075914197747e-02
+4.6176945880282060e-02
+4.6145829446938978e-02
+4.6114726615212695e-02
+4.6083637386022343e-02
+4.6052561756934902e-02
+4.6021499723822253e-02
+4.5990451281383501e-02
+4.5959416418982477e-02
+4.5928395124454208e-02
+4.5897387387677985e-02
+4.5866393203784980e-02
+4.5835412568772521e-02
+4.5804445480516751e-02
+4.5773491939701046e-02
+4.5742551946779661e-02
+4.5711625493550900e-02
+4.5680712564095123e-02
+4.5649813143245802e-02
+4.5618927225023996e-02
+4.5588054808302435e-02
+4.5557195891942792e-02
+4.5526350474541816e-02
+4.5495518554610974e-02
+4.5464700127380554e-02
+4.5433895179260705e-02
+4.5403103695283553e-02
+4.5372325665890577e-02
+4.5341561089953075e-02
+4.5310809967016731e-02
+4.5280072295493044e-02
+4.5249348072739663e-02
+4.5218637295373350e-02
+4.5187939953373682e-02
+4.5157256033061109e-02
+4.5126585522282665e-02
+4.5095928416805181e-02
+4.5065284714895182e-02
+4.5034654414884176e-02
+4.5004037515283840e-02
+4.4973434014568450e-02
+4.4942843906496742e-02
+4.4912267177161597e-02
+4.4881703812235295e-02
+4.4851153803522059e-02
+4.4820617148763238e-02
+4.4790093846094142e-02
+4.4759583895155428e-02
+4.4729087296453966e-02
+4.4698604048357113e-02
+4.4668134137816867e-02
+4.4637677548014079e-02
+4.4607234265769381e-02
+4.4576804288633982e-02
+4.4546387616124408e-02
+4.4515984247672932e-02
+4.4485594182568942e-02
+4.4455217419772854e-02
+4.4424853950880382e-02
+4.4394503760056846e-02
+4.4364166832089449e-02
+4.4333843161802861e-02
+4.4303532750048974e-02
+4.4273235597137278e-02
+4.4242951699897642e-02
+4.4212681053954414e-02
+4.4182423653473982e-02
+4.4152179488127462e-02
+4.4121948546747933e-02
+4.4091730820494876e-02
+4.4061526304645937e-02
+4.4031334994992184e-02
+4.4001156889636225e-02
+4.3970991989110877e-02
+4.3940840293241995e-02
+4.3910701792666679e-02
+4.3880576472265523e-02
+4.3850464318376151e-02
+4.3820365326375420e-02
+4.3790279494916748e-02
+4.3760206822570147e-02
+4.3730147307621287e-02
+4.3700100948259241e-02
+4.3670067738679090e-02
+4.3640047665695701e-02
+4.3610040715543856e-02
+4.3580046880390563e-02
+4.3550066158901848e-02
+4.3520098550042352e-02
+4.3490144052390815e-02
+4.3460202664273813e-02
+4.3430274382634464e-02
+4.3400359195946550e-02
+4.3370457089471209e-02
+4.3340568051219983e-02
+4.3310692078542753e-02
+4.3280829170760683e-02
+4.3250979326687859e-02
+4.3221142544160068e-02
+4.3191318820743625e-02
+4.3161508149333422e-02
+4.3131710517491165e-02
+4.3101925912942908e-02
+4.3072154329124777e-02
+4.3042395763364355e-02
+4.3012650213114206e-02
+4.2982917676150298e-02
+4.2953198150376883e-02
+4.2923491631922772e-02
+4.2893798110611510e-02
+4.2864117574883245e-02
+4.2834450015322559e-02
+4.2804795426835143e-02
+4.2775153804933429e-02
+4.2745525147952830e-02
+4.2715909457587534e-02
+4.2686306734921957e-02
+4.2656716970321439e-02
+4.2627140146533987e-02
+4.2597576247907457e-02
+4.2568025270736477e-02
+4.2538487216275608e-02
+4.2508962085195598e-02
+4.2479449875934230e-02
+4.2449950586385593e-02
+4.2420464210443383e-02
+4.2390990733580304e-02
+4.2361530140402663e-02
+4.2332082422493054e-02
+4.2302647580085111e-02
+4.2273225613845458e-02
+4.2243816522948591e-02
+4.2214420305463476e-02
+4.2185036958214989e-02
+4.2155666469347493e-02
+4.2126308823237091e-02
+4.2096964007074439e-02
+4.2067632019094234e-02
+4.2038312860219924e-02
+4.2009006530371144e-02
+4.1979713027259391e-02
+4.1950432348185789e-02
+4.1921164485976908e-02
+4.1891909427675691e-02
+4.1862667160343627e-02
+4.1833437677089934e-02
+4.1804220975694785e-02
+4.1775017054152395e-02
+4.1745825911154152e-02
+4.1716647545707766e-02
+4.1687481954702697e-02
+4.1658329126354247e-02
+4.1629189046674175e-02
+4.1600061705275110e-02
+4.1570947100049542e-02
+4.1541845230036872e-02
+4.1512756093747043e-02
+4.1483679688976628e-02
+4.1454616013121240e-02
+4.1425565057959461e-02
+4.1396526810747881e-02
+4.1367501259521940e-02
+4.1338488399474141e-02
+4.1309488229190838e-02
+4.1280500747238831e-02
+4.1251525952013236e-02
+4.1222563841851668e-02
+4.1193614411573549e-02
+4.1164677647539727e-02
+4.1135753534997696e-02
+4.1106842065350611e-02
+4.1077943238649078e-02
+4.1049057055491604e-02
+4.1020183514758897e-02
+4.0991322613890283e-02
+4.0962474349492572e-02
+4.0933638711626766e-02
+4.0904815687111122e-02
+4.0876005264360693e-02
+4.0847207439078416e-02
+4.0818422209016790e-02
+4.0789649572321396e-02
+4.0760889528126051e-02
+4.0732142075630494e-02
+4.0703407209531729e-02
+4.0674684917931060e-02
+4.0645975188627774e-02
+4.0617278013491902e-02
+4.0588593387953023e-02
+4.0559921307998459e-02
+4.0531261773448062e-02
+4.0502614786104590e-02
+4.0473980345428186e-02
+4.0445358439748599e-02
+4.0416749054122382e-02
+4.0388152176737281e-02
+4.0359567804020474e-02
+4.0330995933758315e-02
+4.0302436564902386e-02
+4.0273889698184302e-02
+4.0245355334048723e-02
+4.0216833464388195e-02
+4.0188324073302195e-02
+4.0159827145731707e-02
+4.0131342677016714e-02
+4.0102870668114958e-02
+4.0074411119536836e-02
+4.0045964029307587e-02
+4.0017529394681742e-02
+3.9989107210449334e-02
+3.9960697464614871e-02
+3.9932300144087857e-02
+3.9903915239849028e-02
+3.9875542749366534e-02
+3.9847182670747411e-02
+3.9818835003349796e-02
+3.9790499747719872e-02
+3.9762176903469421e-02
+3.9733866460648394e-02
+3.9705568403914600e-02
+3.9677282719612926e-02
+3.9649009403159789e-02
+3.9620748452906585e-02
+3.9592499867939404e-02
+3.9564263649458080e-02
+3.9536039798951414e-02
+3.9507828311361425e-02
+3.9479629170746322e-02
+3.9451442360519957e-02
+3.9423267872752361e-02
+3.9395105708078762e-02
+3.9366955867324929e-02
+3.9338818349517711e-02
+3.9310693152625205e-02
+3.9282580273240046e-02
+3.9254479700537658e-02
+3.9226391421182304e-02
+3.9198315424387897e-02
+3.9170251707071578e-02
+3.9142200267602567e-02
+3.9114161104695407e-02
+3.9086134217663618e-02
+3.9058119605626891e-02
+3.9030117261537010e-02
+3.9002127171986187e-02
+3.8974149323927294e-02
+3.8946183711413909e-02
+3.8918230332859904e-02
+3.8890289186829775e-02
+3.8862360272386660e-02
+3.8834443588769550e-02
+3.8806539132592618e-02
+3.8778646892168721e-02
+3.8750766854210458e-02
+3.8722899008923485e-02
+3.8695043352838326e-02
+3.8667199883222647e-02
+3.8639368599200523e-02
+3.8611549501890621e-02
+3.8583742591722092e-02
+3.8555947860053251e-02
+3.8528165292431714e-02
+3.8500394875612569e-02
+3.8472636604166742e-02
+3.8444890475567477e-02
+3.8417156488051808e-02
+3.8389434642371774e-02
+3.8361724939751783e-02
+3.8334027376153219e-02
+3.8306341937588570e-02
+3.8278668609199186e-02
+3.8251007382806235e-02
+3.8223358257709887e-02
+3.8195721233543076e-02
+3.8168096309176322e-02
+3.8140483482970763e-02
+3.8112882752028072e-02
+3.8085294105571023e-02
+3.8057717529761288e-02
+3.8030153013486397e-02
+3.8002600555123570e-02
+3.7975060155099875e-02
+3.7947531812717726e-02
+3.7920015525059414e-02
+3.7892511288831969e-02
+3.7865019097185433e-02
+3.7837538939119522e-02
+3.7810070803757888e-02
+3.7782614684862680e-02
+3.7755170579427864e-02
+3.7727738484749584e-02
+3.7700318399689889e-02
+3.7672910323747241e-02
+3.7645514254105374e-02
+3.7618130179515159e-02
+3.7590758086834264e-02
+3.7563397966724685e-02
+3.7536049817692832e-02
+3.7508713639183996e-02
+3.7481389429652644e-02
+3.7454077186348300e-02
+3.7426776906088560e-02
+3.7399488580757964e-02
+3.7372212198657440e-02
+3.7344947748999005e-02
+3.7317695227896817e-02
+3.7290454634398937e-02
+3.7263225967276097e-02
+3.7236009224199673e-02
+3.7208804402563238e-02
+3.7181611496927183e-02
+3.7154430495747993e-02
+3.7127261386811883e-02
+3.7100104162430765e-02
+3.7072958820652722e-02
+3.7045825359972057e-02
+3.7018703780005741e-02
+3.6991594081220998e-02
+3.6964496262693075e-02
+3.6937410313155492e-02
+3.6910336216745984e-02
+3.6883273960467367e-02
+3.6856223542870083e-02
+3.6829184965387278e-02
+3.6802158228306611e-02
+3.6775143329336471e-02
+3.6748140265738902e-02
+3.6721149030991586e-02
+3.6694169613572372e-02
+3.6667202001912112e-02
+3.6640246189038994e-02
+3.6613302171610532e-02
+3.6586369946738383e-02
+3.6559449514270995e-02
+3.6532540875327951e-02
+3.6505644028611256e-02
+3.6478758962650938e-02
+3.6451885663323247e-02
+3.6425024120176772e-02
+3.6398174331404916e-02
+3.6371336296431959e-02
+3.6344510014140893e-02
+3.6317695482669186e-02
+3.6290892699753954e-02
+3.6264101657396623e-02
+3.6237322342879165e-02
+3.6210554744340581e-02
+3.6183798858005566e-02
+3.6157054684022638e-02
+3.6130322222015246e-02
+3.6103601469183226e-02
+3.6076892422055119e-02
+3.6050195075413641e-02
+3.6023509419743638e-02
+3.5996835444932970e-02
+3.5970173143458475e-02
+3.5943522511515114e-02
+3.5916883545699274e-02
+3.5890256244620701e-02
+3.5863640608615681e-02
+3.5837036637057222e-02
+3.5810444320613873e-02
+3.5783863645542001e-02
+3.5757294599902775e-02
+3.5730737180241660e-02
+3.5704191385549124e-02
+3.5677657214913519e-02
+3.5651134667674722e-02
+3.5624623743131877e-02
+3.5598124436166056e-02
+3.5571636735041712e-02
+3.5545160627723039e-02
+3.5518696106770900e-02
+3.5492243168854014e-02
+3.5465801811074990e-02
+3.5439372033141112e-02
+3.5412953836138399e-02
+3.5386547219056513e-02
+3.5360152170682613e-02
+3.5333768676728654e-02
+3.5307396726479041e-02
+3.5281036318847325e-02
+3.5254687454328144e-02
+3.5228350131905957e-02
+3.5202024348206302e-02
+3.5175710099487292e-02
+3.5149407378709994e-02
+3.5123116175765093e-02
+3.5096836480894983e-02
+3.5070568288794034e-02
+3.5044311596616841e-02
+3.5018066401939288e-02
+3.4991832704343521e-02
+3.4965610504042691e-02
+3.4939399797968916e-02
+3.4913200573798264e-02
+3.4887012817659616e-02
+3.4860836520732956e-02
+3.4834671682428910e-02
+3.4808518302853295e-02
+3.4782376380762307e-02
+3.4756245913602435e-02
+3.4730126898261812e-02
+3.4704019326570482e-02
+3.4677923187441020e-02
+3.4651838470784166e-02
+3.4625765172012060e-02
+3.4599703288360997e-02
+3.4573652817861761e-02
+3.4547613760888295e-02
+3.4521586118180500e-02
+3.4495569885435971e-02
+3.4469565049779480e-02
+3.4443571597756177e-02
+3.4417589521874105e-02
+3.4391618820671065e-02
+3.4365659493007378e-02
+3.4339711538326649e-02
+3.4313774956423564e-02
+3.4287849745476794e-02
+3.4261935894609782e-02
+3.4236033389804417e-02
+3.4210142220273958e-02
+3.4184262385238189e-02
+3.4158393885827081e-02
+3.4132536721484745e-02
+3.4106690888663915e-02
+3.4080856383397501e-02
+3.4055033198868268e-02
+3.4029221325255724e-02
+3.4003420752946677e-02
+3.3977631476256827e-02
+3.3951853491968949e-02
+3.3926086797388948e-02
+3.3900331392666634e-02
+3.3874587278984354e-02
+3.3848854454233489e-02
+3.3823132905634198e-02
+3.3797422618298878e-02
+3.3771723582499517e-02
+3.3746035798064969e-02
+3.3720359265814168e-02
+3.3694693985310671e-02
+3.3669039954739556e-02
+3.3643397171719380e-02
+3.3617765627982479e-02
+3.3592145311405773e-02
+3.3566536210921205e-02
+3.3540938322369311e-02
+3.3515351644218143e-02
+3.3489776175130624e-02
+3.3464211914414156e-02
+3.3438658861481341e-02
+3.3413117011990179e-02
+3.3387586354337397e-02
+3.3362066876249395e-02
+3.3336558570197711e-02
+3.3311061434083529e-02
+3.3285575466219477e-02
+3.3260100666351843e-02
+3.3234637035206245e-02
+3.3209184571992553e-02
+3.3183743265993680e-02
+3.3158313102542608e-02
+3.3132894069799433e-02
+3.3107486166024915e-02
+3.3082089391723635e-02
+3.3056703746988242e-02
+3.3031329231079327e-02
+3.3005965842987615e-02
+3.2980613576220688e-02
+3.2955272417747393e-02
+3.2929942354704755e-02
+3.2904623381585008e-02
+3.2879315498119309e-02
+3.2854018703957967e-02
+3.2828732997437736e-02
+3.2803458376348626e-02
+3.2778194837084100e-02
+3.2752942370832365e-02
+3.2727700967578099e-02
+3.2702470619061938e-02
+3.2677251320729919e-02
+3.2652043068570280e-02
+3.2626845861117873e-02
+3.2601659700072699e-02
+3.2576484586704625e-02
+3.2551320513378570e-02
+3.2526167465846655e-02
+3.2501025431091686e-02
+3.2475894406011091e-02
+3.2450774391816935e-02
+3.2425665388827116e-02
+3.2400567393791470e-02
+3.2375480402579947e-02
+3.2350404409586107e-02
+3.2325339405948027e-02
+3.2300285382445365e-02
+3.2275242332803038e-02
+3.2250210254561533e-02
+3.2225189145559059e-02
+3.2200179004293783e-02
+3.2175179829774775e-02
+3.2150191620015887e-02
+3.2125214365449573e-02
+3.2100248053059638e-02
+3.2075292672174849e-02
+3.2050348221815496e-02
+3.2025414703480817e-02
+3.2000492117167809e-02
+3.1975580459410749e-02
+3.1950679726196883e-02
+3.1925789910928870e-02
+3.1900911003518904e-02
+3.1876042993945843e-02
+3.1851185877234782e-02
+3.1826339652482542e-02
+3.1801504318730231e-02
+3.1776679873659112e-02
+3.1751866314304114e-02
+3.1727063636717422e-02
+3.1702271832740964e-02
+3.1677490893090084e-02
+3.1652720810109919e-02
+3.1627961580073798e-02
+3.1603213199860883e-02
+3.1578475667566733e-02
+3.1553748982999667e-02
+3.1529033145700817e-02
+3.1504328148416139e-02
+3.1479633978177067e-02
+3.1454950622905833e-02
+3.1430278079428914e-02
+3.1405616348994456e-02
+3.1380965432242974e-02
+3.1356325326930237e-02
+3.1331696029993847e-02
+3.1307077536321157e-02
+3.1282469835631037e-02
+3.1257872916913586e-02
+3.1233286772962252e-02
+3.1208711402154556e-02
+3.1184146803324785e-02
+3.1159592975509059e-02
+3.1135049917920404e-02
+3.1110517628974828e-02
+3.1085996100037577e-02
+3.1061485318817229e-02
+3.1036985274560180e-02
+3.1012495963933628e-02
+3.0988017385797442e-02
+3.0963549539359463e-02
+3.0939092424744574e-02
+3.0914646042135976e-02
+3.0890210386425841e-02
+3.0865785444404648e-02
+3.0841371202568475e-02
+3.0816967655093685e-02
+3.0792574803171189e-02
+3.0768192647952605e-02
+3.0743821187840945e-02
+3.0719460419750860e-02
+3.0695110339502254e-02
+3.0670770937556678e-02
+3.0646442202720618e-02
+3.0622124126340421e-02
+3.0597816706775291e-02
+3.0573519943581186e-02
+3.0549233836110096e-02
+3.0524958383388236e-02
+3.0500693584149769e-02
+3.0476439431589179e-02
+3.0452195913628639e-02
+3.0427963018681590e-02
+3.0403740742008196e-02
+3.0379529082738766e-02
+3.0355328040008098e-02
+3.0331137612746153e-02
+3.0306957799814221e-02
+3.0282788597744761e-02
+3.0258629996339777e-02
+3.0234481984240388e-02
+3.0210344553609499e-02
+3.0186217702478615e-02
+3.0162101429471372e-02
+3.0137995734031160e-02
+3.0113900616414356e-02
+3.0089816076103931e-02
+3.0065742104239773e-02
+3.0041678687040118e-02
+3.0017625812509871e-02
+2.9993583478757736e-02
+2.9969551687323417e-02
+2.9945530438612530e-02
+2.9921519729589761e-02
+2.9897519556549096e-02
+2.9873529913928863e-02
+2.9849550792940566e-02
+2.9825582184601372e-02
+2.9801624083070334e-02
+2.9777676485753440e-02
+2.9753739390300661e-02
+2.9729812795391317e-02
+2.9705896700338297e-02
+2.9681991103202902e-02
+2.9658095994820083e-02
+2.9634211363455811e-02
+2.9610337199753718e-02
+2.9586473501905654e-02
+2.9562620269592992e-02
+2.9538777502218578e-02
+2.9514945198679726e-02
+2.9491123357630888e-02
+2.9467311972728755e-02
+2.9443511032248064e-02
+2.9419720524720906e-02
+2.9395940444728638e-02
+2.9372170790736733e-02
+2.9348411561536482e-02
+2.9324662757495238e-02
+2.9300924379566426e-02
+2.9277196425745878e-02
+2.9253478884200785e-02
+2.9229771741103847e-02
+2.9206074987494144e-02
+2.9182388623631945e-02
+2.9158712650741107e-02
+2.9135047068205265e-02
+2.9111391873342950e-02
+2.9087747063035765e-02
+2.9064112630159677e-02
+2.9040488564908186e-02
+2.9016874858148533e-02
+2.8993271505317449e-02
+2.8969678503631635e-02
+2.8946095851081714e-02
+2.8922523548338804e-02
+2.8898961596620865e-02
+2.8875409992458526e-02
+2.8851868723107299e-02
+2.8828337774943275e-02
+2.8804817140880335e-02
+2.8781306821478107e-02
+2.8757806817613085e-02
+2.8734317128643150e-02
+2.8710837752865662e-02
+2.8687368687643044e-02
+2.8663909924274165e-02
+2.8640461451587197e-02
+2.8617023260236803e-02
+2.8593595347570226e-02
+2.8570177712460603e-02
+2.8546770353703128e-02
+2.8523373269931887e-02
+2.8499986459645636e-02
+2.8476609917439735e-02
+2.8453243633151992e-02
+2.8429887596686128e-02
+2.8406541802827173e-02
+2.8383206249914351e-02
+2.8359880936480800e-02
+2.8336565861851834e-02
+2.8313261025690321e-02
+2.8289966425714169e-02
+2.8266682052194521e-02
+2.8243407893638203e-02
+2.8220143941588928e-02
+2.8196890194149015e-02
+2.8173646650270751e-02
+2.8150413308729579e-02
+2.8127190168076299e-02
+2.8103977226520648e-02
+2.8080774477487924e-02
+2.8057581910771671e-02
+2.8034399516791503e-02
+2.8011227291226126e-02
+2.7988065232097070e-02
+2.7964913337927357e-02
+2.7941771609208816e-02
+2.7918640046908465e-02
+2.7895518647864846e-02
+2.7872407399597773e-02
+2.7849306288501598e-02
+2.7826215307153995e-02
+2.7803134456320770e-02
+2.7780063737171828e-02
+2.7757003148395180e-02
+2.7733952686715028e-02
+2.7710912348423034e-02
+2.7687882126885190e-02
+2.7664862014105358e-02
+2.7641852002764953e-02
+2.7618852088427379e-02
+2.7595862267417285e-02
+2.7572882537056718e-02
+2.7549912897021401e-02
+2.7526953347228451e-02
+2.7504003883210539e-02
+2.7481064494447437e-02
+2.7458135170303776e-02
+2.7435215905591344e-02
+2.7412306699614225e-02
+2.7389407551749876e-02
+2.7366518460880979e-02
+2.7343639425649525e-02
+2.7320770443189406e-02
+2.7297911503990056e-02
+2.7275062596717782e-02
+2.7252223712905203e-02
+2.7229394851158932e-02
+2.7206576011144606e-02
+2.7183767191883403e-02
+2.7160968391468823e-02
+2.7138179607714905e-02
+2.7115400834749739e-02
+2.7092632063533354e-02
+2.7069873285364657e-02
+2.7047124495328301e-02
+2.7024385690432529e-02
+2.7001656868266097e-02
+2.6978938029032690e-02
+2.6956229173683927e-02
+2.6933530299720593e-02
+2.6910841395734100e-02
+2.6888162448990383e-02
+2.6865493451882275e-02
+2.6842834404498563e-02
+2.6820185307488805e-02
+2.6797546160119035e-02
+2.6774916960416055e-02
+2.6752297705818710e-02
+2.6729688388852493e-02
+2.6707088999435941e-02
+2.6684499528616422e-02
+2.6661919973032959e-02
+2.6639350331017993e-02
+2.6616790601146037e-02
+2.6594240782644631e-02
+2.6571700874792145e-02
+2.6549170873269527e-02
+2.6526650768125416e-02
+2.6504140549132287e-02
+2.6481640210443639e-02
+2.6459149750302183e-02
+2.6436669167168386e-02
+2.6414198460086087e-02
+2.6391737628422257e-02
+2.6369286670242492e-02
+2.6346845576973716e-02
+2.6324414337939459e-02
+2.6301992944789822e-02
+2.6279581395756958e-02
+2.6257179690223034e-02
+2.6234787827196820e-02
+2.6212405805077232e-02
+2.6190033622014726e-02
+2.6167671271953002e-02
+2.6145318744744100e-02
+2.6122976030622903e-02
+2.6100643125376057e-02
+2.6078320027999962e-02
+2.6056006737569103e-02
+2.6033703253366514e-02
+2.6011409574742683e-02
+2.5989125698681455e-02
+2.5966851615158330e-02
+2.5944587312904804e-02
+2.5922332784357651e-02
+2.5900088028268202e-02
+2.5877853043996039e-02
+2.5855627830720158e-02
+2.5833412387436524e-02
+2.5811206712624813e-02
+2.5789010799363653e-02
+2.5766824637473283e-02
+2.5744648217709682e-02
+2.5722481536322651e-02
+2.5700324591474009e-02
+2.5678177381707905e-02
+2.5656039906748335e-02
+2.5633912166509353e-02
+2.5611794157493727e-02
+2.5589685870136995e-02
+2.5567587294383770e-02
+2.5545498423589066e-02
+2.5523419254709728e-02
+2.5501349785089385e-02
+2.5479290014481900e-02
+2.5457239944158119e-02
+2.5435199573957668e-02
+2.5413168895165449e-02
+2.5391147895950417e-02
+2.5369136566831318e-02
+2.5347134905977200e-02
+2.5325142913102901e-02
+2.5303160587359225e-02
+2.5281187926849750e-02
+2.5259224929441475e-02
+2.5237271589625288e-02
+2.5215327898176518e-02
+2.5193393846076478e-02
+2.5171469429030376e-02
+2.5149554645844709e-02
+2.5127649495391837e-02
+2.5105753976616480e-02
+2.5083868088490710e-02
+2.5061991828277012e-02
+2.5040125187416100e-02
+2.5018268156127777e-02
+2.4996420726698377e-02
+2.4974582895420441e-02
+2.4952754659128752e-02
+2.4930936017134028e-02
+2.4909126971586589e-02
+2.4887327524115412e-02
+2.4865537667800031e-02
+2.4843757389866494e-02
+2.4821986678745318e-02
+2.4800225531418106e-02
+2.4778473948277542e-02
+2.4756731929451836e-02
+2.4734999474093546e-02
+2.4713276581115631e-02
+2.4691563246319846e-02
+2.4669859459208576e-02
+2.4648165208674914e-02
+2.4626480488536485e-02
+2.4604805298496953e-02
+2.4583139638549131e-02
+2.4561483507926054e-02
+2.4539836905318354e-02
+2.4518199828599294e-02
+2.4496572270150622e-02
+2.4474954220062923e-02
+2.4453345669781149e-02
+2.4431746615846482e-02
+2.4410157055997812e-02
+2.4388576988973357e-02
+2.4367006415625215e-02
+2.4345445336917564e-02
+2.4323893748255027e-02
+2.4302351638116539e-02
+2.4280818995035557e-02
+2.4259295814500880e-02
+2.4237782097178206e-02
+2.4216277843463765e-02
+2.4194783050938980e-02
+2.4173297715957328e-02
+2.4151821834323475e-02
+2.4130355399709046e-02
+2.4108898405266824e-02
+2.4087450844993228e-02
+2.4066012714749566e-02
+2.4044584010707030e-02
+2.4023164731375776e-02
+2.4001754878303080e-02
+2.3980354452718875e-02
+2.3958963447976184e-02
+2.3937581851316402e-02
+2.3916209651017036e-02
+2.3894846844372371e-02
+2.3873493432788266e-02
+2.3852149417041505e-02
+2.3830814795235137e-02
+2.3809489564777679e-02
+2.3788173721286852e-02
+2.3766867256242413e-02
+2.3745570160615664e-02
+2.3724282428548640e-02
+2.3703004058475339e-02
+2.3681735049138966e-02
+2.3660475399351493e-02
+2.3639225107980513e-02
+2.3617984173235115e-02
+2.3596752588087046e-02
+2.3575530343012494e-02
+2.3554317429806272e-02
+2.3533113846016245e-02
+2.3511919590739828e-02
+2.3490734662739401e-02
+2.3469559059967782e-02
+2.3448392780204975e-02
+2.3427235818732066e-02
+2.3406088167303437e-02
+2.3384949817628117e-02
+2.3363820765217931e-02
+2.3342701008790046e-02
+2.3321590547093853e-02
+2.3300489378310398e-02
+2.3279397500337806e-02
+2.3258314910129085e-02
+2.3237241600372396e-02
+2.3216177562555517e-02
+2.3195122790042239e-02
+2.3174077280937646e-02
+2.3153041034076480e-02
+2.3132014047880952e-02
+2.3110996320166187e-02
+2.3089987848537497e-02
+2.3068988627632642e-02
+2.3047998649482641e-02
+2.3027017906394540e-02
+2.3006046393886932e-02
+2.2985084109147975e-02
+2.2964131049926846e-02
+2.2943187216565662e-02
+2.2922252610168569e-02
+2.2901327228710074e-02
+2.2880411061888869e-02
+2.2859504098126697e-02
+2.2838606330241349e-02
+2.2817717757797593e-02
+2.2796838380888269e-02
+2.2775968198727733e-02
+2.2755107209726184e-02
+2.2734255411774370e-02
+2.2713412798214226e-02
+2.2692579359918631e-02
+2.2671755088736995e-02
+2.2650939981498145e-02
+2.2630134036576773e-02
+2.2609337252771675e-02
+2.2588549630054085e-02
+2.2567771168529861e-02
+2.2547001863943369e-02
+2.2526241705056519e-02
+2.2505490680326534e-02
+2.2484748785037971e-02
+2.2464016020987979e-02
+2.2443292389882515e-02
+2.2422577889988332e-02
+2.2401872517623555e-02
+2.2381176268510140e-02
+2.2360489135375219e-02
+2.2339811109973955e-02
+2.2319142185858506e-02
+2.2298482361789232e-02
+2.2277831637449792e-02
+2.2257190011444626e-02
+2.2236557480575569e-02
+2.2215934041390988e-02
+2.2195319688569297e-02
+2.2174714414930213e-02
+2.2154118213524900e-02
+2.2133531080628654e-02
+2.2112953014423217e-02
+2.2092384013192658e-02
+2.2071824075645612e-02
+2.2051273200634193e-02
+2.2030731385253417e-02
+2.2010198621266255e-02
+2.1989674899459657e-02
+2.1969160213277293e-02
+2.1948654560793507e-02
+2.1928157940565518e-02
+2.1907670351590351e-02
+2.1887191793320562e-02
+2.1866722264759549e-02
+2.1846261759762634e-02
+2.1825810269009066e-02
+2.1805367784022887e-02
+2.1784934301451682e-02
+2.1764509819769792e-02
+2.1744094337732101e-02
+2.1723687854978049e-02
+2.1703290371286415e-02
+2.1682901882956410e-02
+2.1662522379956910e-02
+2.1642151851786029e-02
+2.1621790293247758e-02
+2.1601437704872856e-02
+2.1581094087297848e-02
+2.1560759439087439e-02
+2.1540433757472967e-02
+2.1520117039092176e-02
+2.1499809277134550e-02
+2.1479510463503011e-02
+2.1459220591416781e-02
+2.1438939658486585e-02
+2.1418667663235646e-02
+2.1398404604112797e-02
+2.1378150479425592e-02
+2.1357905287375724e-02
+2.1337669023579444e-02
+2.1317441680745040e-02
+2.1297223251659725e-02
+2.1277013731980311e-02
+2.1256813119289768e-02
+2.1236621411296827e-02
+2.1216438606281279e-02
+2.1196264702745809e-02
+2.1176099698065845e-02
+2.1155943585680018e-02
+2.1135796358179811e-02
+2.1115658009640471e-02
+2.1095528537080330e-02
+2.1075407937894117e-02
+2.1055296210398016e-02
+2.1035193353988322e-02
+2.1015099367790460e-02
+2.0995014246602772e-02
+2.0974937982194825e-02
+2.0954870566806904e-02
+2.0934811996227914e-02
+2.0914762267696330e-02
+2.0894721379099989e-02
+2.0874689330687157e-02
+2.0854666123223387e-02
+2.0834651754000413e-02
+2.0814646213112385e-02
+2.0794649489903543e-02
+2.0774661578601365e-02
+2.0754682479398736e-02
+2.0734712192756986e-02
+2.0714750717832752e-02
+2.0694798052830487e-02
+2.0674854195264356e-02
+2.0654919137969137e-02
+2.0634992871780750e-02
+2.0615075389023300e-02
+2.0595166687758858e-02
+2.0575266767423449e-02
+2.0555375627114975e-02
+2.0535493265199316e-02
+2.0515619679870995e-02
+2.0495754866510296e-02
+2.0475898816914192e-02
+2.0456051522928148e-02
+2.0436212980525999e-02
+2.0416383188822537e-02
+2.0396562146950008e-02
+2.0376749853590038e-02
+2.0356946307223022e-02
+2.0337151505078838e-02
+2.0317365439361235e-02
+2.0297588101020152e-02
+2.0277819483208160e-02
+2.0258059584061742e-02
+2.0238308402420083e-02
+2.0218565937833301e-02
+2.0198832190795119e-02
+2.0179107161451340e-02
+2.0159390843481572e-02
+2.0139683225437372e-02
+2.0119984296784854e-02
+2.0100294055163857e-02
+2.0080612502028996e-02
+2.0060939638289331e-02
+2.0041275462462520e-02
+2.0021619972429246e-02
+2.0001973164204347e-02
+1.9982335029388718e-02
+1.9962705559020289e-02
+1.9943084747522100e-02
+1.9923472594001235e-02
+1.9903869097861598e-02
+1.9884274257725629e-02
+1.9864688071569808e-02
+1.9845110536949914e-02
+1.9825541648149730e-02
+1.9805981397857553e-02
+1.9786429779556931e-02
+1.9766886790295608e-02
+1.9747352428107039e-02
+1.9727826691317018e-02
+1.9708309578974525e-02
+1.9688801090182489e-02
+1.9669301221256562e-02
+1.9649809964491005e-02
+1.9630327312010237e-02
+1.9610853258495427e-02
+1.9591387800830293e-02
+1.9571930936288579e-02
+1.9552482664875588e-02
+1.9533042987987866e-02
+1.9513611905324267e-02
+1.9494189408659941e-02
+1.9474775487480198e-02
+1.9455370133729648e-02
+1.9435973345718668e-02
+1.9416585122777420e-02
+1.9397205464430745e-02
+1.9377834370496359e-02
+1.9358471840572270e-02
+1.9339117869601883e-02
+1.9319772448349998e-02
+1.9300435568003923e-02
+1.9281107224920827e-02
+1.9261787418207481e-02
+1.9242476147039653e-02
+1.9223173410804768e-02
+1.9203879208950739e-02
+1.9184593538563662e-02
+1.9165316390332653e-02
+1.9146047753940885e-02
+1.9126787623200994e-02
+1.9107535998405974e-02
+1.9088292880369676e-02
+1.9069058268964569e-02
+1.9049832163182446e-02
+1.9030614561407921e-02
+1.9011405456547972e-02
+1.8992204838468189e-02
+1.8973012698389000e-02
+1.8953829034608301e-02
+1.8934653847674156e-02
+1.8915487137368993e-02
+1.8896328901301763e-02
+1.8877179136684016e-02
+1.8858037839688327e-02
+1.8838905004786365e-02
+1.8819780626314467e-02
+1.8800664699094291e-02
+1.8781557218420630e-02
+1.8762458180045731e-02
+1.8743367584138693e-02
+1.8724285433428221e-02
+1.8705211728894770e-02
+1.8686146461994190e-02
+1.8667089621011160e-02
+1.8648041196901284e-02
+1.8629001188556042e-02
+1.8609969596329008e-02
+1.8590946420272481e-02
+1.8571931659924129e-02
+1.8552925314597731e-02
+1.8533927379500804e-02
+1.8514937845669655e-02
+1.8495956704394332e-02
+1.8476983951659028e-02
+1.8458019586286525e-02
+1.8439063607288479e-02
+1.8420116014515660e-02
+1.8401176808110549e-02
+1.8382245985997327e-02
+1.8363323539201351e-02
+1.8344409457449889e-02
+1.8325503733996162e-02
+1.8306606368379410e-02
+1.8287717360761117e-02
+1.8268836710606480e-02
+1.8249964416643630e-02
+1.8231100477191994e-02
+1.8212244886361008e-02
+1.8193397635604142e-02
+1.8174558717310062e-02
+1.8155728129626816e-02
+1.8136905872805760e-02
+1.8118091946373878e-02
+1.8099286347488128e-02
+1.8080489072815099e-02
+1.8061700118130807e-02
+1.8042919477553883e-02
+1.8024147145083852e-02
+1.8005383116422673e-02
+1.7986627389150158e-02
+1.7967879961005320e-02
+1.7949140830472103e-02
+1.7930409996524666e-02
+1.7911687457489087e-02
+1.7892973207625704e-02
+1.7874267239640928e-02
+1.7855569547198972e-02
+1.7836880127244732e-02
+1.7818198977429575e-02
+1.7799526096246347e-02
+1.7780861483823095e-02
+1.7762205140324117e-02
+1.7743557061364008e-02
+1.7724917237327515e-02
+1.7706285658810585e-02
+1.7687662322737177e-02
+1.7669047230373845e-02
+1.7650440382566288e-02
+1.7631841776870095e-02
+1.7613251409525150e-02
+1.7594669276446043e-02
+1.7576095372395757e-02
+1.7557529691883005e-02
+1.7538972229879699e-02
+1.7520422982297855e-02
+1.7501881945245719e-02
+1.7483349117518369e-02
+1.7464824501129610e-02
+1.7446308097761591e-02
+1.7427799902089511e-02
+1.7409299903774659e-02
+1.7390808093255421e-02
+1.7372324467025180e-02
+1.7353849024109847e-02
+1.7335381763811324e-02
+1.7316922686434894e-02
+1.7298471792503604e-02
+1.7280029079567667e-02
+1.7261594538873704e-02
+1.7243168160977172e-02
+1.7224749940458074e-02
+1.7206339876921415e-02
+1.7187937970245468e-02
+1.7169544219695965e-02
+1.7151158624081692e-02
+1.7132781181517277e-02
+1.7114411885207646e-02
+1.7096050726210663e-02
+1.7077697696973239e-02
+1.7059352795441442e-02
+1.7041016020915081e-02
+1.7022687373079604e-02
+1.7004366852474962e-02
+1.6986054459639209e-02
+1.6967750190557733e-02
+1.6949454035290801e-02
+1.6931165983877811e-02
+1.6912886032074952e-02
+1.6894614180084217e-02
+1.6876350428025759e-02
+1.6858094774516698e-02
+1.6839847217487127e-02
+1.6821607754241408e-02
+1.6803376379517995e-02
+1.6785153087396441e-02
+1.6766937872578484e-02
+1.6748730731207088e-02
+1.6730531659674350e-02
+1.6712340656332463e-02
+1.6694157722192956e-02
+1.6675982858104069e-02
+1.6657816059200536e-02
+1.6639657315985795e-02
+1.6621506619566670e-02
+1.6603363966912497e-02
+1.6585229357792820e-02
+1.6567102791917854e-02
+1.6548984268666245e-02
+1.6530873787320821e-02
+1.6512771345192193e-02
+1.6494676934813993e-02
+1.6476590548067438e-02
+1.6458512179523380e-02
+1.6440441827557273e-02
+1.6422379490860006e-02
+1.6404325168594656e-02
+1.6386278860323233e-02
+1.6368240565046568e-02
+1.6350210276957874e-02
+1.6332187987851486e-02
+1.6314173690508849e-02
+1.6296167382267173e-02
+1.6278169061754950e-02
+1.6260178727882602e-02
+1.6242196380274642e-02
+1.6224222018604489e-02
+1.6206255639254475e-02
+1.6188297233752497e-02
+1.6170346793510305e-02
+1.6152404315000209e-02
+1.6134469799149960e-02
+1.6116543246687539e-02
+1.6098624655232156e-02
+1.6080714020783034e-02
+1.6062811339255943e-02
+1.6044916606236328e-02
+1.6027029817211623e-02
+1.6009150967712188e-02
+1.5991280053382181e-02
+1.5973417069926939e-02
+1.5955562015552063e-02
+1.5937714892309423e-02
+1.5919875702238684e-02
+1.5902044440656130e-02
+1.5884221096709492e-02
+1.5866405660164232e-02
+1.5848598128667773e-02
+1.5830798504155981e-02
+1.5813006787983724e-02
+1.5795222978394176e-02
+1.5777447072660742e-02
+1.5759679066839109e-02
+1.5741918953607274e-02
+1.5724166725104845e-02
+1.5706422376286180e-02
+1.5688685906622396e-02
+1.5670957315988662e-02
+1.5653236604195608e-02
+1.5635523770992144e-02
+1.5617818815516896e-02
+1.5600121730932700e-02
+1.5582432507008576e-02
+1.5564751134955155e-02
+1.5547077613729783e-02
+1.5529411944814194e-02
+1.5511754128992385e-02
+1.5494104165017541e-02
+1.5476462051240486e-02
+1.5458827783351552e-02
+1.5441201352586890e-02
+1.5423582749978461e-02
+1.5405971971592648e-02
+1.5388369018511400e-02
+1.5370773891847054e-02
+1.5353186590778004e-02
+1.5335607113336421e-02
+1.5318035456873463e-02
+1.5300471615084079e-02
+1.5282915580415786e-02
+1.5265367346498502e-02
+1.5247826910562434e-02
+1.5230294270535237e-02
+1.5212769425644451e-02
+1.5195252377388644e-02
+1.5177743127254695e-02
+1.5160241670809215e-02
+1.5142747997472840e-02
+1.5125262097065131e-02
+1.5107783966922533e-02
+1.5090313609029833e-02
+1.5072851024824519e-02
+1.5055396212193413e-02
+1.5037949167754080e-02
+1.5020509887686415e-02
+1.5003078366780607e-02
+1.4985654599557698e-02
+1.4968238581228347e-02
+1.4950830308260788e-02
+1.4933429777352361e-02
+1.4916036987739358e-02
+1.4898651941404672e-02
+1.4881274639811188e-02
+1.4863905076785464e-02
+1.4846543241228059e-02
+1.4829189123483933e-02
+1.4811842723132622e-02
+1.4794504043208234e-02
+1.4777173085283948e-02
+1.4759849846034394e-02
+1.4742534321109930e-02
+1.4725226505823358e-02
+1.4707926394844790e-02
+1.4690633982815076e-02
+1.4673349265609403e-02
+1.4656072240494446e-02
+1.4638802905013792e-02
+1.4621541259205173e-02
+1.4604287304784355e-02
+1.4587041042256107e-02
+1.4569802464232333e-02
+1.4552571560235289e-02
+1.4535348321912009e-02
+1.4518132748371066e-02
+1.4500924840347549e-02
+1.4483724597931031e-02
+1.4466532019927626e-02
+1.4449347104912530e-02
+1.4432169848978819e-02
+1.4415000245303563e-02
+1.4397838287113565e-02
+1.4380683970462875e-02
+1.4363537293389059e-02
+1.4346398254186675e-02
+1.4329266852592070e-02
+1.4312143088931962e-02
+1.4295026961963667e-02
+1.4277918464680225e-02
+1.4260817588767318e-02
+1.4243724328130973e-02
+1.4226638681288753e-02
+1.4209560647347696e-02
+1.4192490225938556e-02
+1.4175427417333325e-02
+1.4158372221462523e-02
+1.4141324632976850e-02
+1.4124284642664861e-02
+1.4107252242099112e-02
+1.4090227428973772e-02
+1.4073210203604407e-02
+1.4056200566094364e-02
+1.4039198515692429e-02
+1.4022204051430773e-02
+1.4005217170243981e-02
+1.3988237864514525e-02
+1.3971266126120745e-02
+1.3954301950396214e-02
+1.3937345337084052e-02
+1.3920396286180635e-02
+1.3903454797186033e-02
+1.3886520869221857e-02
+1.3869594500773411e-02
+1.3852675685700156e-02
+1.3835764415790755e-02
+1.3818860684190451e-02
+1.3801964489554548e-02
+1.3785075831925932e-02
+1.3768194711066051e-02
+1.3751321126097969e-02
+1.3734455075987114e-02
+1.3717596556842338e-02
+1.3700745560972345e-02
+1.3683902080661796e-02
+1.3667066111951922e-02
+1.3650237653869971e-02
+1.3633416705577576e-02
+1.3616603266639620e-02
+1.3599797336809650e-02
+1.3582998914746083e-02
+1.3566207994472172e-02
+1.3549424568791310e-02
+1.3532648631948035e-02
+1.3515880181604569e-02
+1.3499119215935369e-02
+1.3482365733871779e-02
+1.3465619735394889e-02
+1.3448881220327518e-02
+1.3432150184545978e-02
+1.3415426620657008e-02
+1.3398710521665752e-02
+1.3382001884641573e-02
+1.3365300708640414e-02
+1.3348606992781105e-02
+1.3331920736401399e-02
+1.3315241938894039e-02
+1.3298570597602121e-02
+1.3281906704785235e-02
+1.3265250252003155e-02
+1.3248601234564008e-02
+1.3231959653196443e-02
+1.3215325508948233e-02
+1.3198698800997784e-02
+1.3182079526909449e-02
+1.3165467683958803e-02
+1.3148863267390490e-02
+1.3132266271412280e-02
+1.3115676690721386e-02
+1.3099094522329253e-02
+1.3082519763920860e-02
+1.3065952413876302e-02
+1.3049392472379098e-02
+1.3032839939839070e-02
+1.3016294813185524e-02
+1.2999757084098932e-02
+1.2983226744085329e-02
+1.2966703789639718e-02
+1.2950188221746128e-02
+1.2933680041320544e-02
+1.2917179247206872e-02
+1.2900685837144361e-02
+1.2884199808257944e-02
+1.2867721154727429e-02
+1.2851249869838257e-02
+1.2834785948129156e-02
+1.2818329387542491e-02
+1.2801880186605845e-02
+1.2785438344660909e-02
+1.2769003862329932e-02
+1.2752576740138123e-02
+1.2736156974309479e-02
+1.2719744557035027e-02
+1.2703339480712865e-02
+1.2686941741217563e-02
+1.2670551336358537e-02
+1.2654168264500304e-02
+1.2637792526739954e-02
+1.2621424125042994e-02
+1.2605063058731273e-02
+1.2588709319611214e-02
+1.2572362898211894e-02
+1.2556023788505356e-02
+1.2539691990113372e-02
+1.2523367503172031e-02
+1.2507050327591966e-02
+1.2490740463063532e-02
+1.2474437908808530e-02
+1.2458142659400375e-02
+1.2441854706712366e-02
+1.2425574043556525e-02
+1.2409300667961093e-02
+1.2393034579696595e-02
+1.2376775778539448e-02
+1.2360524264279964e-02
+1.2344280036676125e-02
+1.2328043092702549e-02
+1.2311813424568104e-02
+1.2295591024181178e-02
+1.2279375887423337e-02
+1.2263168014221363e-02
+1.2246967404596626e-02
+1.2230774057639705e-02
+1.2214587971876998e-02
+1.2198409145272938e-02
+1.2182237572671636e-02
+1.2166073247826321e-02
+1.2149916165566706e-02
+1.2133766324082078e-02
+1.2117623722214491e-02
+1.2101488358799489e-02
+1.2085360232660986e-02
+1.2069239342530182e-02
+1.2053125684791581e-02
+1.2037019253340000e-02
+1.2020920042191355e-02
+1.2004828048090832e-02
+1.1988743269509442e-02
+1.1972665705127210e-02
+1.1956595354698809e-02
+1.1940532218371951e-02
+1.1924476294543913e-02
+1.1908427575892644e-02
+1.1892386053959056e-02
+1.1876351723309350e-02
+1.1860324584153368e-02
+1.1844304637280291e-02
+1.1828291882429143e-02
+1.1812286318177937e-02
+1.1796287942780060e-02
+1.1780296751319381e-02
+1.1764312736789273e-02
+1.1748335892823892e-02
+1.1732366217264770e-02
+1.1716403709565669e-02
+1.1700448369250814e-02
+1.1684500196074366e-02
+1.1668559189819279e-02
+1.1652625347778313e-02
+1.1636698662393563e-02
+1.1620779125664603e-02
+1.1604866733108656e-02
+1.1588961484295678e-02
+1.1573063379007154e-02
+1.1557172416859820e-02
+1.1541288597357100e-02
+1.1525411919332394e-02
+1.1509542377264119e-02
+1.1493679963884855e-02
+1.1477824673176984e-02
+1.1461976503623773e-02
+1.1446135454718271e-02
+1.1430301526058825e-02
+1.1414474717458004e-02
+1.1398655028645968e-02
+1.1382842455798068e-02
+1.1367036990821372e-02
+1.1351238625744761e-02
+1.1335447357645167e-02
+1.1319663187220040e-02
+1.1303886115031360e-02
+1.1288116140171100e-02
+1.1272353261114873e-02
+1.1256597475380971e-02
+1.1240848776894746e-02
+1.1225107158747437e-02
+1.1209372615831860e-02
+1.1193645146870176e-02
+1.1177924751090335e-02
+1.1162211428289716e-02
+1.1146505178978318e-02
+1.1130806003375999e-02
+1.1115113896901041e-02
+1.1099428851381432e-02
+1.1083750859268235e-02
+1.1068079918125360e-02
+1.1052416027758118e-02
+1.1036759187920894e-02
+1.1021109398129628e-02
+1.1005466657832365e-02
+1.0989830964583112e-02
+1.0974202311728621e-02
+1.0958580692120435e-02
+1.0942966101403072e-02
+1.0927358538864371e-02
+1.0911758004036756e-02
+1.0896164496446103e-02
+1.0880578015613172e-02
+1.0864998560500497e-02
+1.0849426125839725e-02
+1.0833860704423846e-02
+1.0818302290120258e-02
+1.0802750881280552e-02
+1.0787206477415226e-02
+1.0771669078054422e-02
+1.0756138682773881e-02
+1.0740615291089996e-02
+1.0725098899677273e-02
+1.0709589501345668e-02
+1.0694087088886998e-02
+1.0678591659290110e-02
+1.0663103212953688e-02
+1.0647621750225772e-02
+1.0632147270262718e-02
+1.0616679771650308e-02
+1.0601219252082114e-02
+1.0585765705399092e-02
+1.0570319124404684e-02
+1.0554879503931702e-02
+1.0539446843740608e-02
+1.0524021144307333e-02
+1.0508602405249005e-02
+1.0493190624965143e-02
+1.0477785801630479e-02
+1.0462387931125227e-02
+1.0446997007386757e-02
+1.0431613024683517e-02
+1.0416235980581903e-02
+1.0400865874297853e-02
+1.0385502705105397e-02
+1.0370146472486998e-02
+1.0354797175980254e-02
+1.0339454813437333e-02
+1.0324119378429654e-02
+1.0308790863904663e-02
+1.0293469265223230e-02
+1.0278154581314324e-02
+1.0262846811430719e-02
+1.0247545955496576e-02
+1.0232252014028508e-02
+1.0216964986950315e-02
+1.0201684868754782e-02
+1.0186411651097812e-02
+1.0171145326862764e-02
+1.0155885894902678e-02
+1.0140633355846886e-02
+1.0125387709890601e-02
+1.0110148956074542e-02
+1.0094917093220631e-02
+1.0079692118426478e-02
+1.0064474026130941e-02
+1.0049262810628170e-02
+1.0034058467849253e-02
+1.0018860995230543e-02
+1.0003670390519456e-02
+9.9884866538461868e-03
+9.9733097866404365e-03
+9.9581397891137600e-03
+9.9429766553208194e-03
+9.9278203773980594e-03
+9.9126709492616937e-03
+9.8975283697801623e-03
+9.8823926386762163e-03
+9.8672637556827605e-03
+9.8521417205490163e-03
+9.8370265328669663e-03
+9.8219181888436896e-03
+9.8068166814427246e-03
+9.7917220039157246e-03
+9.7766341536416352e-03
+9.7615531303489548e-03
+9.7464789337535461e-03
+9.7314115633622012e-03
+9.7163510186121203e-03
+9.7012972975370967e-03
+9.6862503940840193e-03
+9.6712103014890017e-03
+9.6561770151734807e-03
+9.6411505342261488e-03
+9.6261308580930394e-03
+9.6111179863741705e-03
+9.5961119188233239e-03
+9.5811126548203136e-03
+9.5661201897796703e-03
+9.5511345167602398e-03
+9.5361556295744856e-03
+9.5211835263542995e-03
+9.5062182067098683e-03
+9.4912596702282862e-03
+9.4763079164222625e-03
+9.4613629447658464e-03
+9.4464247526360075e-03
+9.4314933337372540e-03
+9.4165686815205502e-03
+9.4016507923405379e-03
+9.3867396655731225e-03
+9.3718353007367153e-03
+9.3569376973670886e-03
+9.3420468550107633e-03
+9.3271627724985859e-03
+9.3122854445255969e-03
+9.2974148643053221e-03
+9.2825510263995110e-03
+9.2676939296836153e-03
+9.2528435738913634e-03
+9.2379999586183030e-03
+9.2231630832073919e-03
+9.2083329468766965e-03
+9.1935095462258951e-03
+9.1786928750157201e-03
+9.1638829271394658e-03
+9.1490796996937570e-03
+9.1342831918464051e-03
+9.1194934028772431e-03
+9.1047103325349616e-03
+9.0899339807438539e-03
+9.0751643460672930e-03
+9.0604014225113064e-03
+9.0456452031482826e-03
+9.0308956832091374e-03
+9.0161528620442705e-03
+9.0014167394607061e-03
+8.9866873150718247e-03
+8.9719645882722094e-03
+8.9572485581751893e-03
+8.9425392205644064e-03
+8.9278365689781404e-03
+8.9131405975154364e-03
+8.8984513041158904e-03
+8.8837686882263251e-03
+8.8690927493679256e-03
+8.8544234873103572e-03
+8.8397609018622831e-03
+8.8251049907734341e-03
+8.8104557476899777e-03
+8.7958131658613034e-03
+8.7811772413595359e-03
+8.7665479735805438e-03
+8.7519253621227006e-03
+8.7373094067389467e-03
+8.7227001072909156e-03
+8.7080974629964759e-03
+8.6935014687489973e-03
+8.6789121176665349e-03
+8.6643294040694239e-03
+8.6497533267202286e-03
+8.6351838854023845e-03
+8.6206210798573067e-03
+8.6060649097389336e-03
+8.5915153746101546e-03
+8.5769724712832819e-03
+8.5624361931951366e-03
+8.5479065338370519e-03
+8.5333834903370438e-03
+8.5188670624894228e-03
+8.5043572501164316e-03
+8.4898540528054126e-03
+8.4753574700428685e-03
+8.4608675002784510e-03
+8.4463841379647641e-03
+8.4319073766002950e-03
+8.4174372114372703e-03
+8.4029736415431339e-03
+8.3885166664893866e-03
+8.3740662859463823e-03
+8.3596224997109225e-03
+8.3451853073504452e-03
+8.3307547049148896e-03
+8.3163306857657170e-03
+8.3019132437514107e-03
+8.2875023768285462e-03
+8.2730980847972226e-03
+8.2587003674255369e-03
+8.2443092243168533e-03
+8.2299246550255594e-03
+8.2155466574070427e-03
+8.2011752254534578e-03
+8.1868103526847123e-03
+8.1724520351739265e-03
+8.1581002723986207e-03
+8.1437550640741565e-03
+8.1294164099361653e-03
+8.1150843097364186e-03
+8.1007587627103059e-03
+8.0864397640681152e-03
+8.0721273071324429e-03
+8.0578213862479622e-03
+8.0435220001384179e-03
+8.0292291486874223e-03
+8.0149428316667638e-03
+8.0006630485823516e-03
+7.9863897988511397e-03
+7.9721230796019199e-03
+7.9578628847826929e-03
+7.9436092082924847e-03
+7.9293620471570757e-03
+7.9151214009985926e-03
+7.9008872695028945e-03
+7.8866596522329871e-03
+7.8724385486916883e-03
+7.8582239575175732e-03
+7.8440158735092400e-03
+7.8298142904028242e-03
+7.8156192034608812e-03
+7.8014306117412929e-03
+7.7872485148824146e-03
+7.7730729125513416e-03
+7.7589038044568234e-03
+7.7447411901328880e-03
+7.7305850659158378e-03
+7.7164354253747005e-03
+7.7022922624461294e-03
+7.6881555750320510e-03
+7.6740253630636990e-03
+7.6599016264278404e-03
+7.6457843647274723e-03
+7.6316735774799305e-03
+7.6175692627396506e-03
+7.6034714147558639e-03
+7.5893800272084670e-03
+7.5752950961040554e-03
+7.5612166209661968e-03
+7.5471446016048774e-03
+7.5330790377166673e-03
+7.5190199288958518e-03
+7.5049672743434746e-03
+7.4909210697118710e-03
+7.4768813087569847e-03
+7.4628479860200875e-03
+7.4488210999692260e-03
+7.4348006502706647e-03
+7.4207866366210930e-03
+7.4067790587992299e-03
+7.3927779165615486e-03
+7.3787832073976970e-03
+7.3647949252234049e-03
+7.3508130637879709e-03
+7.3368376198958245e-03
+7.3228685932225342e-03
+7.3089059835493818e-03
+7.2949497906037034e-03
+7.2810000140827412e-03
+7.2670566529294718e-03
+7.2531197022204083e-03
+7.2391891557973985e-03
+7.2252650088058222e-03
+7.2113472601071848e-03
+7.1974359092227798e-03
+7.1835309558311421e-03
+7.1696323998694297e-03
+7.1557402411592651e-03
+7.1418544764287649e-03
+7.1279750993766301e-03
+7.1141021039399415e-03
+7.1002354877623000e-03
+7.0863752506454009e-03
+7.0725213924124827e-03
+7.0586739128584378e-03
+7.0448328117676947e-03
+7.0309980875773656e-03
+7.0171697347042542e-03
+7.0033477468454796e-03
+6.9895321198584310e-03
+6.9757228533080815e-03
+6.9619199471164161e-03
+6.9481234010159831e-03
+6.9343332145460250e-03
+6.9205493869365729e-03
+6.9067719141940416e-03
+6.8930007903663581e-03
+6.8792360101260297e-03
+6.8654775718282697e-03
+6.8517254751196488e-03
+6.8379797196676390e-03
+6.8242403052006864e-03
+6.8105072314381433e-03
+6.7967804961733547e-03
+6.7830600937497350e-03
+6.7693460182537907e-03
+6.7556382663915664e-03
+6.7419368376545859e-03
+6.7282417316800996e-03
+6.7145529482279306e-03
+6.7008704871355934e-03
+6.6871943475855494e-03
+6.6735245248699931e-03
+6.6598610128533985e-03
+6.6462038065976201e-03
+6.6325529050927524e-03
+6.6189083081318089e-03
+6.6052700155157197e-03
+6.5916380270602173e-03
+6.5780123424839286e-03
+6.5643929587531598e-03
+6.5507798697844438e-03
+6.5371730696317815e-03
+6.5235725559056107e-03
+6.5099783285675191e-03
+6.4963903875791028e-03
+6.4828087326417455e-03
+6.4692333633567523e-03
+6.4556642782639222e-03
+6.4421014722608680e-03
+6.4285449394785709e-03
+6.4149946757836029e-03
+6.4014506804314026e-03
+6.3879129530719364e-03
+6.3743814934347498e-03
+6.3608563013412764e-03
+6.3473373763655409e-03
+6.3338247148636492e-03
+6.3203183109731857e-03
+6.3068181593251308e-03
+6.2933242580642404e-03
+6.2798366067474323e-03
+6.2663552050487752e-03
+6.2528800530499782e-03
+6.2394111509106280e-03
+6.2259484967914338e-03
+6.2124920847765894e-03
+6.1990419085406053e-03
+6.1855979646239928e-03
+6.1721602530163478e-03
+6.1587287738830961e-03
+6.1453035269966984e-03
+6.1318845118471244e-03
+6.1184717274394250e-03
+6.1050651694885966e-03
+6.0916648323267692e-03
+6.0782707112136455e-03
+6.0648828049250196e-03
+6.0515011130660478e-03
+6.0381256353553856e-03
+6.0247563717535230e-03
+6.0113933221809081e-03
+5.9980364840011404e-03
+5.9846858513707465e-03
+5.9713414184652093e-03
+5.9580031826538815e-03
+5.9446711436997599e-03
+5.9313453014413833e-03
+5.9180256558445535e-03
+5.9047122069309987e-03
+5.8914049536845751e-03
+5.8781038909845292e-03
+5.8648090127039268e-03
+5.8515203144292489e-03
+5.8382377955622893e-03
+5.8249614560205356e-03
+5.8116912957460925e-03
+5.7984273147132469e-03
+5.7851695126867773e-03
+5.7719178861927005e-03
+5.7586724292267820e-03
+5.7454331362208821e-03
+5.7322000054335033e-03
+5.7189730368808461e-03
+5.7057522305406002e-03
+5.6925375861924836e-03
+5.6793291035591373e-03
+5.6661267808658291e-03
+5.6529306128522763e-03
+5.6397405938154715e-03
+5.6265567203172308e-03
+5.6133789920063014e-03
+5.6002074087487010e-03
+5.5870419703407063e-03
+5.5738826765218026e-03
+5.5607295266103191e-03
+5.5475825165676017e-03
+5.5344416407437907e-03
+5.5213068943149148e-03
+5.5081782760912747e-03
+5.4950557858704967e-03
+5.4819394234801484e-03
+5.4688291888206194e-03
+5.4557250817568476e-03
+5.4426270999305311e-03
+5.4295352378239785e-03
+5.4164494898435445e-03
+5.4033698532661165e-03
+5.3902963278047193e-03
+5.3772289132661731e-03
+5.3641676095965681e-03
+5.3511124168118202e-03
+5.3380633340622385e-03
+5.3250203565502630e-03
+5.3119834783577650e-03
+5.2989526950945288e-03
+5.2859280062608951e-03
+5.2729094119643681e-03
+5.2598969121534873e-03
+5.2468905065412227e-03
+5.2338901946792672e-03
+5.2208959734713475e-03
+5.2079078374792399e-03
+5.1949257815408810e-03
+5.1819498036647475e-03
+5.1689799035194023e-03
+5.1560160808542923e-03
+5.1430583357358443e-03
+5.1301066683224683e-03
+5.1171610772978091e-03
+5.1042215574164107e-03
+5.0912881028219743e-03
+5.0783607098218390e-03
+5.0654393780672820e-03
+5.0525241074986238e-03
+5.0396148981064863e-03
+5.0267117499278547e-03
+5.0138146626335410e-03
+5.0009236324471363e-03
+4.9880386537077478e-03
+4.9751597214579080e-03
+4.9622868343629683e-03
+4.9494199922213667e-03
+4.9365591948996052e-03
+4.9237044424529095e-03
+4.9108557349376164e-03
+4.8980130703016166e-03
+4.8851764430936015e-03
+4.8723458476880154e-03
+4.8595212813291244e-03
+4.8467027440174254e-03
+4.8338902358405385e-03
+4.8210837566468635e-03
+4.8082833061482994e-03
+4.7954888834148826e-03
+4.7827004841489744e-03
+4.7699181029506772e-03
+4.7571417356148549e-03
+4.7443713814264857e-03
+4.7316070403036715e-03
+4.7188487121339251e-03
+4.7060963967533054e-03
+4.6933500938833020e-03
+4.6806098007201313e-03
+4.6678755119327594e-03
+4.6551472223865416e-03
+4.6424249301488408e-03
+4.6297086351937307e-03
+4.6169983374966250e-03
+4.6042940369004698e-03
+4.5915957332021235e-03
+4.5789034250764641e-03
+4.5662171077677895e-03
+4.5535367758880955e-03
+4.5408624258688936e-03
+4.5281940573356121e-03
+4.5155316702372014e-03
+4.5028752645208253e-03
+4.4902248401317863e-03
+4.4775803967328325e-03
+4.4649419308654932e-03
+4.4523094371321402e-03
+4.4396829107078229e-03
+4.4270623502538596e-03
+4.4144477556839800e-03
+4.4018391269466557e-03
+4.3892364640964170e-03
+4.3766397671898809e-03
+4.3640490343944223e-03
+4.3514642604158002e-03
+4.3388854396904358e-03
+4.3263125693623157e-03
+4.3137456495177676e-03
+4.3011846803713864e-03
+4.2886296619079342e-03
+4.2760805939632196e-03
+4.2635374758220766e-03
+4.2510003034333717e-03
+4.2384690714918245e-03
+4.2259437757210779e-03
+4.2134244153060555e-03
+4.2009109901571685e-03
+4.1884035001921328e-03
+4.1759019453426359e-03
+4.1634063254637850e-03
+4.1509166381366288e-03
+4.1384328783669643e-03
+4.1259550412422446e-03
+4.1134831245809179e-03
+4.1010171280473360e-03
+4.0885570514022050e-03
+4.0761028947996786e-03
+4.0636546585486244e-03
+4.0512123418357700e-03
+4.0387759398988537e-03
+4.0263454471211697e-03
+4.0139208597042694e-03
+4.0015021774822933e-03
+3.9890894007158749e-03
+3.9766825294961566e-03
+3.9642815637142481e-03
+3.9518865030296387e-03
+3.9394973442078195e-03
+3.9271140819745441e-03
+3.9147367115229424e-03
+3.9023652314699392e-03
+3.8899996418414423e-03
+3.8776399427011220e-03
+3.8652861342358450e-03
+3.8529382166499330e-03
+3.8405961884058065e-03
+3.8282600443305384e-03
+3.8159297788713316e-03
+3.8036053890735354e-03
+3.7912868751782390e-03
+3.7789742375937451e-03
+3.7666674763201105e-03
+3.7543665910573921e-03
+3.7420715810708885e-03
+3.7297824426069546e-03
+3.7174991706128125e-03
+3.7052217609169118e-03
+3.6929502127745159e-03
+3.6806845262688272e-03
+3.6684247014513536e-03
+3.6561707383044855e-03
+3.6439226367431079e-03
+3.6316803944776918e-03
+3.6194440063925422e-03
+3.6072134673893331e-03
+3.5949887753780416e-03
+3.5827699305732161e-03
+3.5705569332231831e-03
+3.5583497833917952e-03
+3.5461484810599166e-03
+3.5339530253448849e-03
+3.5217634118649586e-03
+3.5095796353582947e-03
+3.4974016920761549e-03
+3.4852295817187624e-03
+3.4730633044631151e-03
+3.4609028604270439e-03
+3.4487482496493079e-03
+3.4365994719898121e-03
+3.4244565245660124e-03
+3.4123194023054767e-03
+3.4001881004991734e-03
+3.3880626177532707e-03
+3.3759429542324733e-03
+3.3638291100669781e-03
+3.3517210852018380e-03
+3.3396188795285450e-03
+3.3275224916614853e-03
+3.3154319171714366e-03
+3.3033471512265177e-03
+3.2912681908725976e-03
+3.2791950357718364e-03
+3.2671276857952273e-03
+3.2550661410663414e-03
+3.2430104019189614e-03
+3.2309604682716118e-03
+3.2189163365752217e-03
+3.2068780015775877e-03
+3.1948454588306080e-03
+3.1828187075226074e-03
+3.1707977478545920e-03
+3.1587825800136783e-03
+3.1467732041522470e-03
+3.1347696203771198e-03
+3.1227718267550922e-03
+3.1107798183892107e-03
+3.0987935903001094e-03
+3.0868131402257662e-03
+3.0748384682610856e-03
+3.0628695745742477e-03
+3.0509064592912239e-03
+3.0389491225163291e-03
+3.0269975636354148e-03
+3.0150517786772064e-03
+3.0031117626930022e-03
+2.9911775119846711e-03
+2.9792490261154733e-03
+2.9673263051746249e-03
+2.9554093493099048e-03
+2.9434981587578165e-03
+2.9315927336210812e-03
+2.9196930712773370e-03
+2.9077991666410525e-03
+2.8959110149036011e-03
+2.8840286145958879e-03
+2.8721519660376837e-03
+2.8602810695197295e-03
+2.8484159251072156e-03
+2.8365565327946327e-03
+2.8247028914501092e-03
+2.8128549968679879e-03
+2.8010128443499466e-03
+2.7891764308956815e-03
+2.7773457561882709e-03
+2.7655208201586064e-03
+2.7537016229625022e-03
+2.7418881649676282e-03
+2.7300804462138508e-03
+2.7182784635014327e-03
+2.7064822118190840e-03
+2.6946916868149798e-03
+2.6829068876301821e-03
+2.6711278145252421e-03
+2.6593544677274909e-03
+2.6475868473679037e-03
+2.6358249535354413e-03
+2.6240687845426568e-03
+2.6123183357734457e-03
+2.6005736024503272e-03
+2.5888345822919190e-03
+2.5771012754667870e-03
+2.5653736822412779e-03
+2.5536518028288382e-03
+2.5419356374120406e-03
+2.5302251855512004e-03
+2.5185204434516888e-03
+2.5068214061933860e-03
+2.4951280700192518e-03
+2.4834404346541724e-03
+2.4717585004700158e-03
+2.4600822677304673e-03
+2.4484117365131050e-03
+2.4367469067805621e-03
+2.4250877761817047e-03
+2.4134343399989668e-03
+2.4017865936926995e-03
+2.3901445357903672e-03
+2.3785081666872088e-03
+2.3668774867584967e-03
+2.3552524961164023e-03
+2.3436331947801715e-03
+2.3320195817670797e-03
+2.3204116529549927e-03
+2.3088094036270890e-03
+2.2972128307881716e-03
+2.2856219345341873e-03
+2.2740367152744917e-03
+2.2624571731890849e-03
+2.2508833082135276e-03
+2.2393151200539628e-03
+2.2277526059399358e-03
+2.2161957615276276e-03
+2.2046445829161775e-03
+2.1930990689869845e-03
+2.1815592196453501e-03
+2.1700250349162985e-03
+2.1584965152126939e-03
+2.1469736610108645e-03
+2.1354564710773165e-03
+2.1239449409737000e-03
+2.1124390659907942e-03
+2.1009388437063007e-03
+2.0894442742377803e-03
+2.0779553578393960e-03
+2.0664720948155597e-03
+2.0549944855039791e-03
+2.0435225297093908e-03
+2.0320562239061731e-03
+2.0205955632862645e-03
+2.0091405440689604e-03
+1.9976911660177176e-03
+1.9862474296564884e-03
+1.9748093353617398e-03
+1.9633768832212702e-03
+1.9519500732227244e-03
+1.9405289033271197e-03
+1.9291133691499082e-03
+1.9177034663830955e-03
+1.9062991933707998e-03
+1.8949005502898134e-03
+1.8835075373757320e-03
+1.8721201550103651e-03
+1.8607384036343946e-03
+1.8493622827436202e-03
+1.8379917884254447e-03
+1.8266269160093329e-03
+1.8152676623204597e-03
+1.8039140272417288e-03
+1.7925660110317157e-03
+1.7812236140166589e-03
+1.7698868366044134e-03
+1.7585556790023526e-03
+1.7472301386309784e-03
+1.7359102109028000e-03
+1.7245958916519003e-03
+1.7132871799230176e-03
+1.7019840761137235e-03
+1.6906865806091762e-03
+1.6793946937296896e-03
+1.6681084157719930e-03
+1.6568277455855270e-03
+1.6455526789285098e-03
+1.6342832112225217e-03
+1.6230193400970142e-03
+1.6117610659571306e-03
+1.6005083893670927e-03
+1.5892613106399216e-03
+1.5780198298999443e-03
+1.5667839468748207e-03
+1.5555536584510483e-03
+1.5443289602634946e-03
+1.5331098487231245e-03
+1.5218963233391892e-03
+1.5106883843888960e-03
+1.4994860322137791e-03
+1.4882892672989608e-03
+1.4770980900965652e-03
+1.4659124989796620e-03
+1.4547324895968403e-03
+1.4435580575814691e-03
+1.4323892011658067e-03
+1.4212259206171222e-03
+1.4100682162693108e-03
+1.3989160885496911e-03
+1.3877695379285963e-03
+1.3766285640851670e-03
+1.3654931634090055e-03
+1.3543633314402048e-03
+1.3432390650404945e-03
+1.3321203641556523e-03
+1.3210072291706839e-03
+1.3098996604761681e-03
+1.2987976584702969e-03
+1.2877012234020419e-03
+1.2766103530692237e-03
+1.2655250432691480e-03
+1.2544452900882734e-03
+1.2433710924027847e-03
+1.2323024504310614e-03
+1.2212393644469622e-03
+1.2101818349287996e-03
+1.1991298624066569e-03
+1.1880834461171399e-03
+1.1770425821405371e-03
+1.1660072661234889e-03
+1.1549774955824750e-03
+1.1439532706973023e-03
+1.1329345918567842e-03
+1.1219214595426551e-03
+1.1109138743156885e-03
+1.0999118363767724e-03
+1.0889153428634652e-03
+1.0779243893737685e-03
+1.0669389722059732e-03
+1.0559590909118956e-03
+1.0449847459722192e-03
+1.0340159378593896e-03
+1.0230526670246436e-03
+1.0120949338822379e-03
+1.0011427370421070e-03
+9.9019607243422576e-04
+9.7925493590077456e-04
+9.6831932570608573e-04
+9.5738924226161399e-04
+9.4646468605036913e-04
+9.3554565753038233e-04
+9.2463215714657483e-04
+9.1372418469849118e-04
+9.0282173689316036e-04
+8.9192480951424393e-04
+8.8103339948528083e-04
+8.7014750677475480e-04
+8.5926713185420674e-04
+8.4839227520396899e-04
+8.3752293731799269e-04
+8.2665911857445417e-04
+8.1580081700999957e-04
+8.0494802849827101e-04
+7.9410074913344566e-04
+7.8325897784503520e-04
+7.7242271511622105e-04
+7.6159196144841290e-04
+7.5076671735462507e-04
+7.3994698335012724e-04
+7.2913275885372884e-04
+7.1832404021896781e-04
+7.0752082329305472e-04
+6.9672310562013601e-04
+6.8593088748653507e-04
+6.7514416942748205e-04
+6.6436295196607871e-04
+6.5358723561375221e-04
+6.4281702060289868e-04
+6.3205230440247721e-04
+6.2129308290086757e-04
+6.1053935255286158e-04
+5.9979111289836158e-04
+5.8904836449060057e-04
+5.7831110787905007e-04
+5.6757934360040802e-04
+5.5685307216778320e-04
+5.4613229247516297e-04
+5.3541700068666139e-04
+5.2470719280057305e-04
+5.1400286705342185e-04
+5.0330402392682091e-04
+4.9261066399843641e-04
+4.8192278782394537e-04
+4.7124039594589981e-04
+4.6056348836367013e-04
+4.4989206207167714e-04
+4.3922611303122346e-04
+4.2856563819360370e-04
+4.1791063754790451e-04
+4.0726111166343459e-04
+3.9661706111584230e-04
+3.8597848649193038e-04
+3.7534538829318869e-04
+3.6471776486513008e-04
+3.5409561229978603e-04
+3.4347892682462695e-04
+3.3286770734287946e-04
+3.2226195442405510e-04
+3.1166166866382377e-04
+3.0106685066344610e-04
+2.9047750102589198e-04
+2.7989361940922766e-04
+2.6931520243693522e-04
+2.5874224613976581e-04
+2.4817474806707366e-04
+2.3761270855732295e-04
+2.2705612824750480e-04
+2.1650500775742396e-04
+2.0595934768816626e-04
+1.9541914841893500e-04
+1.8488440773652644e-04
+1.7435512174374628e-04
+1.6383128700005284e-04
+1.5331290302429118e-04
+1.4279997045083264e-04
+1.3229248991588415e-04
+1.2179046205495026e-04
+1.1129388749093742e-04
+1.0080276540727458e-04
+9.0317092227062870e-05
+7.9836864130838594e-05
+6.9362079336416916e-05
+5.8892738373987208e-05
+4.8428841898910996e-05
+3.7970390568734083e-05
+2.7517385042482078e-05
+1.7069825524871296e-05
+6.6277093101918159e-06
+-3.8089674550946560e-06
+-1.4240207771810278e-05
+-2.4666011623222632e-05
+-3.5086378327635762e-05
+-4.5501307204672085e-05
+-5.5910797576594245e-05
+-6.6314848827952062e-05
+-7.6713462312729287e-05
+-8.7106641714491091e-05
+-9.7494390660513337e-05
+-1.0787671025934604e-04
+-1.1825359984019730e-04
+-1.2862505869601953e-04
+-1.3899108612767561e-04
+-1.4935168143930533e-04
+-1.5970684474226585e-04
+-1.7005657913259613e-04
+-1.8040088838765722e-04
+-1.9073977493872481e-04
+-2.0107323840105632e-04
+-2.1140127803656456e-04
+-2.2172389311653136e-04
+-2.3204108292378876e-04
+-2.4235284691638610e-04
+-2.5265918699772164e-04
+-2.6296010687229684e-04
+-2.7325560988168863e-04
+-2.8354569650310162e-04
+-2.9383036597809101e-04
+-3.0410961755062831e-04
+-3.1438345049292183e-04
+-3.2465186409054404e-04
+-3.3491485889159176e-04
+-3.4517243820412265e-04
+-3.5542460565232605e-04
+-3.6567136301461043e-04
+-3.7591270969757529e-04
+-3.8614864495131122e-04
+-3.9637916801728718e-04
+-4.0660427813035216e-04
+-4.1682397489788527e-04
+-4.2703826070109680e-04
+-4.3724713917204952e-04
+-4.4745061322604590e-04
+-4.5764868284042755e-04
+-4.6784134724616220e-04
+-4.7802860566682737e-04
+-4.8821045730911412e-04
+-4.9838690142035445e-04
+-5.0855793904008536e-04
+-5.1872357360851736e-04
+-5.2888380858676564e-04
+-5.3903864510131637e-04
+-5.4918808241014505e-04
+-5.5933211971561248e-04
+-5.6947075619466915e-04
+-5.7960399101229104e-04
+-5.8973182402563269e-04
+-5.9985425804199221e-04
+-6.0997129665040211e-04
+-6.2008294225438963e-04
+-6.3018919442517482e-04
+-6.4029005232009331e-04
+-6.5038551510373762e-04
+-6.6047558195083420e-04
+-6.7056025217023343e-04
+-6.8063952732977774e-04
+-6.9071341088167138e-04
+-7.0078190601018673e-04
+-7.1084501321425758e-04
+-7.2090273167071440e-04
+-7.3095506054120924e-04
+-7.4100199896086935e-04
+-7.5104354606039174e-04
+-7.6107970209382276e-04
+-7.7111047012214822e-04
+-7.8113585360441488e-04
+-7.9115585430833803e-04
+-8.0117047153877377e-04
+-8.1117970440730428e-04
+-8.2118355204476641e-04
+-8.3118201359873604e-04
+-8.4117508851726350e-04
+-8.5116277885465929e-04
+-8.6114508800543314e-04
+-8.7112201876864289e-04
+-8.8109357110134818e-04
+-8.9105974412882034e-04
+-9.0102053696672140e-04
+-9.1097594870586654e-04
+-9.2092597846163632e-04
+-9.3087062697293688e-04
+-9.4080989744415124e-04
+-9.5074379317199097e-04
+-9.6067231524616379e-04
+-9.7059546275694657e-04
+-9.8051323473458758e-04
+-9.9042563032145201e-04
+-1.0003326487201048e-03
+-1.0102342896732711e-03
+-1.0201305555756033e-03
+-1.0300214496336761e-03
+-1.0399069740828523e-03
+-1.0497871285007900e-03
+-1.0596619120139521e-03
+-1.0695313236980240e-03
+-1.0793953625482615e-03
+-1.0892540276569334e-03
+-1.0991073202804131e-03
+-1.1089552437181071e-03
+-1.1187978010798259e-03
+-1.1286349928696557e-03
+-1.1384668181311341e-03
+-1.1482932758835143e-03
+-1.1581143651039016e-03
+-1.1679300847568963e-03
+-1.1777404348039819e-03
+-1.1875454180618223e-03
+-1.1973450378334510e-03
+-1.2071392958746489e-03
+-1.2169281913843436e-03
+-1.2267117233235730e-03
+-1.2364898906912622e-03
+-1.2462626925236085e-03
+-1.2560301280946232e-03
+-1.2657921990906875e-03
+-1.2755489086093868e-03
+-1.2853002592829021e-03
+-1.2950462511297279e-03
+-1.3047868832886090e-03
+-1.3145221548286903e-03
+-1.3242520646123644e-03
+-1.3339766114821789e-03
+-1.3436957958090001e-03
+-1.3534096205990533e-03
+-1.3631180890351863e-03
+-1.3728212022706028e-03
+-1.3825189593779366e-03
+-1.3922113593249240e-03
+-1.4018984009675822e-03
+-1.4115800830937361e-03
+-1.4212564050127387e-03
+-1.4309273690001653e-03
+-1.4405929783765793e-03
+-1.4502532355039693e-03
+-1.4599081397291573e-03
+-1.4695576898095949e-03
+-1.4792018846153739e-03
+-1.4888407232193071e-03
+-1.4984742047829049e-03
+-1.5081023302212415e-03
+-1.5177251023225217e-03
+-1.5273425237751219e-03
+-1.5369545950828937e-03
+-1.5465613153586371e-03
+-1.5561626836571585e-03
+-1.5657586988209828e-03
+-1.5753493596145191e-03
+-1.5849346656682446e-03
+-1.5945146194638376e-03
+-1.6040892240562741e-03
+-1.6136584811549913e-03
+-1.6232223899413595e-03
+-1.6327809493162297e-03
+-1.6423341581353161e-03
+-1.6518820152040896e-03
+-1.6614245195283065e-03
+-1.6709616725682894e-03
+-1.6804934774146045e-03
+-1.6900199367217814e-03
+-1.6995410502316864e-03
+-1.7090568165616944e-03
+-1.7185672344206919e-03
+-1.7280723028415411e-03
+-1.7375720209360530e-03
+-1.7470663889634979e-03
+-1.7565554094343928e-03
+-1.7660390850642003e-03
+-1.7755174168306981e-03
+-1.7849904036959228e-03
+-1.7944580445070993e-03
+-1.8039203380869474e-03
+-1.8133772832412134e-03
+-1.8228288791781238e-03
+-1.8322751277544892e-03
+-1.8417160318968267e-03
+-1.8511515937655869e-03
+-1.8605818127403228e-03
+-1.8700066875723003e-03
+-1.8794262170236434e-03
+-1.8888403998787286e-03
+-1.8982492349774874e-03
+-1.9076527229166817e-03
+-1.9170508664169924e-03
+-1.9264436681614944e-03
+-1.9358311285908101e-03
+-1.9452132465261074e-03
+-1.9545900207495717e-03
+-1.9639614500223074e-03
+-1.9733275330965183e-03
+-1.9826882694184010e-03
+-1.9920436610651382e-03
+-2.0013937107308628e-03
+-2.0107384199775868e-03
+-2.0200777879433823e-03
+-2.0294118134528104e-03
+-2.0387404953021897e-03
+-2.0480638322522490e-03
+-2.0573818232077108e-03
+-2.0666944691903801e-03
+-2.0760017728160018e-03
+-2.0853037363943237e-03
+-2.0946003597282024e-03
+-2.1038916415134141e-03
+-2.1131775804619545e-03
+-2.1224581753696800e-03
+-2.1317334250582120e-03
+-2.1410033294092354e-03
+-2.1502678906764497e-03
+-2.1595271113948717e-03
+-2.1687809924773303e-03
+-2.1780295327059871e-03
+-2.1872727307258428e-03
+-2.1965105852991842e-03
+-2.2057430952803474e-03
+-2.2149702598239715e-03
+-2.2241920803616529e-03
+-2.2334085593759580e-03
+-2.2426196987390145e-03
+-2.2518254977554981e-03
+-2.2610259550614347e-03
+-2.2702210693094720e-03
+-2.2794108391911427e-03
+-2.2885952634392600e-03
+-2.2977743423547377e-03
+-2.3069480783856353e-03
+-2.3161164740060835e-03
+-2.3252795295703359e-03
+-2.3344372436985431e-03
+-2.3435896149619985e-03
+-2.3527366419487262e-03
+-2.3618783232548183e-03
+-2.3710146580786344e-03
+-2.3801456482499808e-03
+-2.3892712963141101e-03
+-2.3983916037759565e-03
+-2.4075065695955541e-03
+-2.4166161923514676e-03
+-2.4257204706444524e-03
+-2.4348194031069462e-03
+-2.4439129884847835e-03
+-2.4530012274698214e-03
+-2.4620841224129914e-03
+-2.4711616754374316e-03
+-2.4802338862849275e-03
+-2.4893007534975749e-03
+-2.4983622756335551e-03
+-2.5074184513666779e-03
+-2.5164692794058690e-03
+-2.5255147593361942e-03
+-2.5345548929846598e-03
+-2.5435896825077449e-03
+-2.5526191287648646e-03
+-2.5616432306844361e-03
+-2.5706619870241487e-03
+-2.5796753962871117e-03
+-2.5886834567502505e-03
+-2.5976861669792769e-03
+-2.6066835281906720e-03
+-2.6156755429954893e-03
+-2.6246622134089809e-03
+-2.6336435385236135e-03
+-2.6426195165552158e-03
+-2.6515901458386199e-03
+-2.6605554250277432e-03
+-2.6695153528511844e-03
+-2.6784699293539186e-03
+-2.6874191566248788e-03
+-2.6963630368324761e-03
+-2.7053015702001833e-03
+-2.7142347551507278e-03
+-2.7231625900499606e-03
+-2.7320850733673478e-03
+-2.7410022036292669e-03
+-2.7499139798600725e-03
+-2.7588204035910698e-03
+-2.7677214771404559e-03
+-2.7766172018848204e-03
+-2.7855075765609192e-03
+-2.7943925994478439e-03
+-2.8032722689146083e-03
+-2.8121465834758763e-03
+-2.8210155417412275e-03
+-2.8298791440817986e-03
+-2.8387373925682596e-03
+-2.8475902891175733e-03
+-2.8564378334285366e-03
+-2.8652800239282426e-03
+-2.8741168590350162e-03
+-2.8829483372004535e-03
+-2.8917744568877791e-03
+-2.9005952173546488e-03
+-2.9094106201899487e-03
+-2.9182206673915236e-03
+-2.9270253596947286e-03
+-2.9358246957013260e-03
+-2.9446186738072890e-03
+-2.9534072924104569e-03
+-2.9621905499105411e-03
+-2.9709684449101977e-03
+-2.9797409781448761e-03
+-2.9885081516260155e-03
+-2.9972699669490862e-03
+-3.0060264233060610e-03
+-3.0147775190600221e-03
+-3.0235232525528096e-03
+-3.0322636220633634e-03
+-3.0409986258732977e-03
+-3.0497282635507995e-03
+-3.0584525369331417e-03
+-3.0671714480183989e-03
+-3.0758849970395057e-03
+-3.0845931823802273e-03
+-3.0932960023339587e-03
+-3.1019934551598754e-03
+-3.1106855390957942e-03
+-3.1193722528004533e-03
+-3.1280535973859979e-03
+-3.1367295748501479e-03
+-3.1454001864301040e-03
+-3.1540654309104815e-03
+-3.1627253065825167e-03
+-3.1713798116653402e-03
+-3.1800289442453383e-03
+-3.1886727024633987e-03
+-3.1973110863230871e-03
+-3.2059440978613788e-03
+-3.2145717390231455e-03
+-3.2231940094565792e-03
+-3.2318109073145081e-03
+-3.2404224307175816e-03
+-3.2490285777458773e-03
+-3.2576293464642654e-03
+-3.2662247357274909e-03
+-3.2748147470554375e-03
+-3.2833993825185383e-03
+-3.2919786429093231e-03
+-3.3005525265639647e-03
+-3.3091210315413519e-03
+-3.3176841559416611e-03
+-3.3262418979120374e-03
+-3.3347942557686947e-03
+-3.3433412299051007e-03
+-3.3518828221252689e-03
+-3.3604190338876734e-03
+-3.3689498642585792e-03
+-3.3774753113584022e-03
+-3.3859953733163771e-03
+-3.3945100483011885e-03
+-3.4030193344981021e-03
+-3.4115232311682404e-03
+-3.4200217397324659e-03
+-3.4285148618210214e-03
+-3.4370025975041718e-03
+-3.4454849450027154e-03
+-3.4539619024293788e-03
+-3.4624334678864019e-03
+-3.4708996394686000e-03
+-3.4793604156182359e-03
+-3.4878157971237858e-03
+-3.4962657857440242e-03
+-3.5047103825336786e-03
+-3.5131495859259971e-03
+-3.5215833937478690e-03
+-3.5300118039862148e-03
+-3.5384348149635563e-03
+-3.5468524250801972e-03
+-3.5552646339737175e-03
+-3.5636714428105179e-03
+-3.5720728527414199e-03
+-3.5804688633674277e-03
+-3.5888594731454072e-03
+-3.5972446804274517e-03
+-3.6056244830119421e-03
+-3.6139988784578102e-03
+-3.6223678650843171e-03
+-3.6307314441696220e-03
+-3.6390896177042366e-03
+-3.6474423864223037e-03
+-3.6557897483047567e-03
+-3.6641317009739141e-03
+-3.6724682422918926e-03
+-3.6807993704296950e-03
+-3.6891250836937890e-03
+-3.6974453821120960e-03
+-3.7057602670373399e-03
+-3.7140697395724289e-03
+-3.7223737987016081e-03
+-3.7306724424513815e-03
+-3.7389656687979327e-03
+-3.7472534755315151e-03
+-3.7555358603995996e-03
+-3.7638128222459528e-03
+-3.7720843624254956e-03
+-3.7803504826044530e-03
+-3.7886111828225079e-03
+-3.7968664609355617e-03
+-3.8051163146529160e-03
+-3.8133607417905639e-03
+-3.8215997402500810e-03
+-3.8298333082131784e-03
+-3.8380614460429242e-03
+-3.8462841551328581e-03
+-3.8545014363379746e-03
+-3.8627132881860551e-03
+-3.8709197085832316e-03
+-3.8791206953770487e-03
+-3.8873162462747537e-03
+-3.8955063589960074e-03
+-3.9036910327861383e-03
+-3.9118702690260068e-03
+-3.9200440691326962e-03
+-3.9282124324311555e-03
+-3.9363753564971649e-03
+-3.9445328388894602e-03
+-3.9526848774706679e-03
+-3.9608314702533915e-03
+-3.9689726157216294e-03
+-3.9771083144666307e-03
+-3.9852385676672738e-03
+-3.9933633756273571e-03
+-4.0014827364585762e-03
+-4.0095966479340526e-03
+-4.0177051077817400e-03
+-4.0258081136636684e-03
+-4.0339056633388274e-03
+-4.0419977564225152e-03
+-4.0500843941474645e-03
+-4.0581655775465174e-03
+-4.0662413054387350e-03
+-4.0743115755020711e-03
+-4.0823763854123838e-03
+-4.0904357328801783e-03
+-4.0984896156278112e-03
+-4.1065380322267350e-03
+-4.1145809834736754e-03
+-4.1226184705017337e-03
+-4.1306504930881168e-03
+-4.1386770489461808e-03
+-4.1466981356238055e-03
+-4.1547137508188940e-03
+-4.1627238923655730e-03
+-4.1707285582999925e-03
+-4.1787277484694445e-03
+-4.1867214636960009e-03
+-4.1947097044127499e-03
+-4.2026924690896032e-03
+-4.2106697555926460e-03
+-4.2186415616831613e-03
+-4.2266078848354274e-03
+-4.2345687224957960e-03
+-4.2425240734459638e-03
+-4.2504739385877356e-03
+-4.2584183189260461e-03
+-4.2663572136872052e-03
+-4.2742906204145757e-03
+-4.2822185365962310e-03
+-4.2901409598250246e-03
+-4.2980578877526822e-03
+-4.3059693184414674e-03
+-4.3138752520723994e-03
+-4.3217756895083167e-03
+-4.3296706308612641e-03
+-4.3375600740865492e-03
+-4.3454440167545504e-03
+-4.3533224564196171e-03
+-4.3611953906095421e-03
+-4.3690628169191009e-03
+-4.3769247345011369e-03
+-4.3847811440447197e-03
+-4.3926320461191784e-03
+-4.4004774394005731e-03
+-4.4083173214548143e-03
+-4.4161516898223348e-03
+-4.4239805419818068e-03
+-4.4318038753915524e-03
+-4.4396216882390850e-03
+-4.4474339809045561e-03
+-4.4552407541645044e-03
+-4.4630420076427349e-03
+-4.4708377389706478e-03
+-4.4786279455804887e-03
+-4.4864126248745084e-03
+-4.4941917742241308e-03
+-4.5019653911808274e-03
+-4.5097334752607250e-03
+-4.5174960271819687e-03
+-4.5252530473002149e-03
+-4.5330045338093554e-03
+-4.5407504841394556e-03
+-4.5484908956695451e-03
+-4.5562257656206577e-03
+-4.5639550911960713e-03
+-4.5716788708458442e-03
+-4.5793971052692298e-03
+-4.5871097953323475e-03
+-4.5948169401003030e-03
+-4.6025185367099992e-03
+-4.6102145822252407e-03
+-4.6179050739550698e-03
+-4.6255900093650475e-03
+-4.6332693862534491e-03
+-4.6409432043915963e-03
+-4.6486114642804166e-03
+-4.6562741657922464e-03
+-4.6639313067210978e-03
+-4.6715828844322797e-03
+-4.6792288962286058e-03
+-4.6868693392952002e-03
+-4.6945042108585229e-03
+-4.7021335096808885e-03
+-4.7097572362380987e-03
+-4.7173753909334733e-03
+-4.7249879721982212e-03
+-4.7325949771507003e-03
+-4.7401964029166145e-03
+-4.7477922468169885e-03
+-4.7553825062484944e-03
+-4.7629671791524176e-03
+-4.7705462653530751e-03
+-4.7781197650744976e-03
+-4.7856876776417329e-03
+-4.7932500006118402e-03
+-4.8008067313305702e-03
+-4.8083578669881550e-03
+-4.8159034045940101e-03
+-4.8234433412995279e-03
+-4.8309776762139487e-03
+-4.8385064098056931e-03
+-4.8460295422225194e-03
+-4.8535470713174603e-03
+-4.8610589940144356e-03
+-4.8685653073195891e-03
+-4.8760660085466964e-03
+-4.8835610950844158e-03
+-4.8910505650971341e-03
+-4.8985344183427419e-03
+-4.9060126547406779e-03
+-4.9134852730648645e-03
+-4.9209522707011882e-03
+-4.9284136449385925e-03
+-4.9358693928802959e-03
+-4.9433195114950770e-03
+-4.9507639980437513e-03
+-4.9582028518316123e-03
+-4.9656360730296646e-03
+-4.9730636612677999e-03
+-4.9804856141074409e-03
+-4.9879019286183388e-03
+-4.9953126018144065e-03
+-5.0027176305897144e-03
+-5.0101170118615410e-03
+-5.0175107439610770e-03
+-5.0248988270051942e-03
+-5.0322812611001359e-03
+-5.0396580445370596e-03
+-5.0470291742374124e-03
+-5.0543946471009911e-03
+-5.0617544601152149e-03
+-5.0691086103062987e-03
+-5.0764570951718014e-03
+-5.0837999140869129e-03
+-5.0911370668910031e-03
+-5.0984685526690981e-03
+-5.1057943688141583e-03
+-5.1131145124831022e-03
+-5.1204289806048931e-03
+-5.1277377698084022e-03
+-5.1350408768250930e-03
+-5.1423383002889792e-03
+-5.1496300403306612e-03
+-5.1569160968432349e-03
+-5.1641964675892705e-03
+-5.1714711493455563e-03
+-5.1787401388842576e-03
+-5.1860034329805731e-03
+-5.1932610284136579e-03
+-5.2005129228139815e-03
+-5.2077591158083327e-03
+-5.2149996072808373e-03
+-5.2222343958593636e-03
+-5.2294634784476549e-03
+-5.2366868518236619e-03
+-5.2439045127520480e-03
+-5.2511164579865845e-03
+-5.2583226845107868e-03
+-5.2655231911649886e-03
+-5.2727179776871991e-03
+-5.2799070433875647e-03
+-5.2870903856761598e-03
+-5.2942680014425626e-03
+-5.3014398874740125e-03
+-5.3086060403068199e-03
+-5.3157664564663833e-03
+-5.3229211337888034e-03
+-5.3300700719857187e-03
+-5.3372132708193361e-03
+-5.3443507284004635e-03
+-5.3514824414288018e-03
+-5.3586084065498363e-03
+-5.3657286203340065e-03
+-5.3728430793138510e-03
+-5.3799517804806541e-03
+-5.3870547229345001e-03
+-5.3941519063789240e-03
+-5.4012433297451609e-03
+-5.4083289899831471e-03
+-5.4154088837286077e-03
+-5.4224830075661279e-03
+-5.4295513580039732e-03
+-5.4366139316273012e-03
+-5.4436707265862611e-03
+-5.4507217424246161e-03
+-5.4577669785270330e-03
+-5.4648064324159442e-03
+-5.4718401006317186e-03
+-5.4788679797031538e-03
+-5.4858900661458720e-03
+-5.4929063564727156e-03
+-5.4999168478974802e-03
+-5.5069215395155448e-03
+-5.5139204307180839e-03
+-5.5209135198863385e-03
+-5.5279008038297524e-03
+-5.5348822792089117e-03
+-5.5418579424240891e-03
+-5.5488277896340024e-03
+-5.5557918172107323e-03
+-5.5627500236298810e-03
+-5.5697024085251791e-03
+-5.5766489711066769e-03
+-5.5835897083824030e-03
+-5.5905246166663902e-03
+-5.5974536922650175e-03
+-5.6043769314638864e-03
+-5.6112943305618905e-03
+-5.6182058870116250e-03
+-5.6251116001387472e-03
+-5.6320114693659933e-03
+-5.6389054925043624e-03
+-5.6457936658063255e-03
+-5.6526759854736387e-03
+-5.6595524478380036e-03
+-5.6664230493058054e-03
+-5.6732877866239404e-03
+-5.6801466583399221e-03
+-5.6869996635952004e-03
+-5.6938468009085320e-03
+-5.7006880669656177e-03
+-5.7075234581157935e-03
+-5.7143529706341362e-03
+-5.7211766006699336e-03
+-5.7279943444243460e-03
+-5.7348061995919153e-03
+-5.7416121653719610e-03
+-5.7484122408529553e-03
+-5.7552064232549533e-03
+-5.7619947086775675e-03
+-5.7687770932284294e-03
+-5.7755535731443940e-03
+-5.7823241447072940e-03
+-5.7890888047753804e-03
+-5.7958475519828863e-03
+-5.8026003852945270e-03
+-5.8093473027514466e-03
+-5.8160883007620694e-03
+-5.8228233755627662e-03
+-5.8295525232607117e-03
+-5.8362757398274312e-03
+-5.8429930213866046e-03
+-5.8497043658306720e-03
+-5.8564097721586954e-03
+-5.8631092390587876e-03
+-5.8698027633041858e-03
+-5.8764903409750015e-03
+-5.8831719681445059e-03
+-5.8898476408669768e-03
+-5.8965173552019438e-03
+-5.9031811081283435e-03
+-5.9098388983217440e-03
+-5.9164907245933020e-03
+-5.9231365844628963e-03
+-5.9297764740375508e-03
+-5.9364103893439872e-03
+-5.9430383263090972e-03
+-5.9496602807946192e-03
+-5.9562762489789494e-03
+-5.9628862289890358e-03
+-5.9694902196899208e-03
+-5.9760882193616652e-03
+-5.9826802243007479e-03
+-5.9892662303848562e-03
+-5.9958462335180087e-03
+-6.0024202296549579e-03
+-6.0089882147969500e-03
+-6.0155501861463663e-03
+-6.0221061422751302e-03
+-6.0286560817013586e-03
+-6.0352000013363504e-03
+-6.0417378969977740e-03
+-6.0482697645007251e-03
+-6.0547955997787683e-03
+-6.0613153988124547e-03
+-6.0678291580355979e-03
+-6.0743368754886699e-03
+-6.0808385495625438e-03
+-6.0873341778874190e-03
+-6.0938237565627846e-03
+-6.1003072815026694e-03
+-6.1067847485598587e-03
+-6.1132561535143619e-03
+-6.1197214922476123e-03
+-6.1261807620441380e-03
+-6.1326339611842504e-03
+-6.1390810877436121e-03
+-6.1455221382693929e-03
+-6.1519571086750616e-03
+-6.1583859948231099e-03
+-6.1648087923941251e-03
+-6.1712254970313126e-03
+-6.1776361051766307e-03
+-6.1840406149511690e-03
+-6.1904390246548258e-03
+-6.1968313314238440e-03
+-6.2032175309533295e-03
+-6.2095976188549420e-03
+-6.2159715908262836e-03
+-6.2223394426285496e-03
+-6.2287011702385825e-03
+-6.2350567711570160e-03
+-6.2414062435450640e-03
+-6.2477495851227137e-03
+-6.2540867918801733e-03
+-6.2604178593863311e-03
+-6.2667427832063952e-03
+-6.2730615588974881e-03
+-6.2793741820447177e-03
+-6.2856806493471725e-03
+-6.2919809589419571e-03
+-6.2982751089618481e-03
+-6.3045630960458917e-03
+-6.3108449156809472e-03
+-6.3171205633203503e-03
+-6.3233900343893533e-03
+-6.3296533243004860e-03
+-6.3359104289085703e-03
+-6.3421613458758217e-03
+-6.3484060733229458e-03
+-6.3546446086309577e-03
+-6.3608769474823813e-03
+-6.3671030853210625e-03
+-6.3733230175397719e-03
+-6.3795367394625579e-03
+-6.3857442464969058e-03
+-6.3919455354621985e-03
+-6.3981406043129713e-03
+-6.4043294508387277e-03
+-6.4105120712759645e-03
+-6.4166884611257637e-03
+-6.4228586158075682e-03
+-6.4290225304099568e-03
+-6.4351801999356813e-03
+-6.4413316202245764e-03
+-6.4474767891262363e-03
+-6.4536157047601099e-03
+-6.4597483640564807e-03
+-6.4658747622772742e-03
+-6.4719948945618751e-03
+-6.4781087560892734e-03
+-6.4842163420716472e-03
+-6.4903176479258013e-03
+-6.4964126707573447e-03
+-6.5025014085073607e-03
+-6.5085838586646924e-03
+-6.5146600166599523e-03
+-6.5207298773464718e-03
+-6.5267934357385628e-03
+-6.5328506872548622e-03
+-6.5389016273911856e-03
+-6.5449462524030041e-03
+-6.5509845596570977e-03
+-6.5570165465437900e-03
+-6.5630422092733372e-03
+-6.5690615430254312e-03
+-6.5750745429419546e-03
+-6.5810812041371056e-03
+-6.5870815217107803e-03
+-6.5930754911181083e-03
+-6.5990631094882003e-03
+-6.6050443744412792e-03
+-6.6110192829052948e-03
+-6.6169878299891837e-03
+-6.6229500105091880e-03
+-6.6289058194230130e-03
+-6.6348552519041827e-03
+-6.6407983031994628e-03
+-6.6467349696307651e-03
+-6.6526652484984669e-03
+-6.6585891369853592e-03
+-6.6645066308615789e-03
+-6.6704177251351391e-03
+-6.6763224147734978e-03
+-6.6822206945803507e-03
+-6.6881125593098610e-03
+-6.6939980043824437e-03
+-6.6998770270505397e-03
+-6.7057496248628572e-03
+-6.7116157943444129e-03
+-6.7174755303911326e-03
+-6.7233288277532520e-03
+-6.7291756811709820e-03
+-6.7350160853750264e-03
+-6.7408500352588918e-03
+-6.7466775273033177e-03
+-6.7524985588829235e-03
+-6.7583131270316813e-03
+-6.7641212269661478e-03
+-6.7699228533159338e-03
+-6.7757180007662170e-03
+-6.7815066641629734e-03
+-6.7872888383910205e-03
+-6.7930645190690886e-03
+-6.7988337030343831e-03
+-6.8045963871930506e-03
+-6.8103525674167251e-03
+-6.8161022385547195e-03
+-6.8218453954024252e-03
+-6.8275820326482188e-03
+-6.8333121449175860e-03
+-6.8390357271199721e-03
+-6.8447527757134110e-03
+-6.8504632876794725e-03
+-6.8561672594833799e-03
+-6.8618646860325394e-03
+-6.8675555619417718e-03
+-6.8732398818084238e-03
+-6.8789176401995687e-03
+-6.8845888317246176e-03
+-6.8902534520932958e-03
+-6.8959114981483874e-03
+-6.9015629666523901e-03
+-6.9072078529321306e-03
+-6.9128461514339976e-03
+-6.9184778566088422e-03
+-6.9241029630057391e-03
+-6.9297214652087359e-03
+-6.9353333582547298e-03
+-6.9409386386104898e-03
+-6.9465373030161157e-03
+-6.9521293474334193e-03
+-6.9577147664168478e-03
+-6.9632935543712544e-03
+-6.9688657056608382e-03
+-6.9744312146061737e-03
+-6.9799900756485856e-03
+-6.9855422846418240e-03
+-6.9910878383432316e-03
+-6.9966267332519138e-03
+-7.0021589642314599e-03
+-7.0076845255390360e-03
+-7.0132034114546134e-03
+-7.0187156163368965e-03
+-7.0242211345669511e-03
+-7.0297199611932025e-03
+-7.0352120925239268e-03
+-7.0406975249739092e-03
+-7.0461762540129022e-03
+-7.0516482740539156e-03
+-7.0571135794397334e-03
+-7.0625721643366507e-03
+-7.0680240227932022e-03
+-7.0734691491175722e-03
+-7.0789075392653413e-03
+-7.0843391898312387e-03
+-7.0897640969224702e-03
+-7.0951822549508107e-03
+-7.1005936579608860e-03
+-7.1059983000096600e-03
+-7.1113961751784220e-03
+-7.1167872775860803e-03
+-7.1221716024233691e-03
+-7.1275491461300277e-03
+-7.1329199050969416e-03
+-7.1382838741744217e-03
+-7.1436410471408078e-03
+-7.1489914178012592e-03
+-7.1543349802818956e-03
+-7.1596717288391213e-03
+-7.1650016580732043e-03
+-7.1703247638329522e-03
+-7.1756410422464216e-03
+-7.1809504887860552e-03
+-7.1862530975742760e-03
+-7.1915488625659127e-03
+-7.1968377776750496e-03
+-7.2021198367662907e-03
+-7.2073950337943156e-03
+-7.2126633639894204e-03
+-7.2179248235073757e-03
+-7.2231794083116689e-03
+-7.2284271128853642e-03
+-7.2336679310831195e-03
+-7.2389018567328087e-03
+-7.2441288835689609e-03
+-7.2493490053076939e-03
+-7.2545622163557640e-03
+-7.2597685126058187e-03
+-7.2649678901167388e-03
+-7.2701603439726840e-03
+-7.2753458680239816e-03
+-7.2805244560356433e-03
+-7.2856961016847781e-03
+-7.2908607985820153e-03
+-7.2960185405483210e-03
+-7.3011693229536930e-03
+-7.3063131418555525e-03
+-7.3114499928669347e-03
+-7.3165798698129657e-03
+-7.3217027660729224e-03
+-7.3268186751631725e-03
+-7.3319275909083390e-03
+-7.3370295071940265e-03
+-7.3421244186670379e-03
+-7.3472123209785646e-03
+-7.3522932097667719e-03
+-7.3573670794015800e-03
+-7.3624339232530008e-03
+-7.3674937347036886e-03
+-7.3725465074420560e-03
+-7.3775922352983326e-03
+-7.3826309123498348e-03
+-7.3876625337057278e-03
+-7.3926870947435656e-03
+-7.3977045903589654e-03
+-7.4027150143146248e-03
+-7.4077183602091600e-03
+-7.4127146215774891e-03
+-7.4177037918669144e-03
+-7.4226858645787775e-03
+-7.4276608342137814e-03
+-7.4326286960938685e-03
+-7.4375894454257524e-03
+-7.4425430762863655e-03
+-7.4474895822051268e-03
+-7.4524289566663387e-03
+-7.4573611929719032e-03
+-7.4622862843752779e-03
+-7.4672042246867344e-03
+-7.4721150090854109e-03
+-7.4770186329399142e-03
+-7.4819150907797002e-03
+-7.4868043759306717e-03
+-7.4916864816283214e-03
+-7.4965614011531529e-03
+-7.5014291278242239e-03
+-7.5062896550943097e-03
+-7.5111429775457181e-03
+-7.5159890903325277e-03
+-7.5208279883312327e-03
+-7.5256596651192918e-03
+-7.5304841139003558e-03
+-7.5353013278635613e-03
+-7.5401113001608133e-03
+-7.5449140239516451e-03
+-7.5497094931345314e-03
+-7.5544977027131449e-03
+-7.5592786477266414e-03
+-7.5640523221738448e-03
+-7.5688187191250587e-03
+-7.5735778316210712e-03
+-7.5783296527303203e-03
+-7.5830741755358588e-03
+-7.5878113933829597e-03
+-7.5925413008829396e-03
+-7.5972638930280560e-03
+-7.6019791643067748e-03
+-7.6066871078515957e-03
+-7.6113877165693107e-03
+-7.6160809833706695e-03
+-7.6207669011725907e-03
+-7.6254454629434750e-03
+-7.6301166626836859e-03
+-7.6347804953533875e-03
+-7.6394369558056676e-03
+-7.6440860375323206e-03
+-7.6487277332738766e-03
+-7.6533620357743517e-03
+-7.6579889378353338e-03
+-7.6626084322771451e-03
+-7.6672205123728175e-03
+-7.6718251726706002e-03
+-7.6764224079316863e-03
+-7.6810122122330316e-03
+-7.6855945785381024e-03
+-7.6901694997013360e-03
+-7.6947369684295672e-03
+-7.6992969772865802e-03
+-7.7038495189531448e-03
+-7.7083945873399652e-03
+-7.7129321770662111e-03
+-7.7174622825364287e-03
+-7.7219848969689951e-03
+-7.7265000131895899e-03
+-7.7310076239125378e-03
+-7.7355077215244651e-03
+-7.7400002983629337e-03
+-7.7444853476253753e-03
+-7.7489628639692233e-03
+-7.7534328421430864e-03
+-7.7578952757117441e-03
+-7.7623501570444021e-03
+-7.7667974784722538e-03
+-7.7712372324840870e-03
+-7.7756694116634167e-03
+-7.7800940087968387e-03
+-7.7845110177965724e-03
+-7.7889204329648198e-03
+-7.7933222482463177e-03
+-7.7977164564803636e-03
+-7.8021030502916054e-03
+-7.8064820221407233e-03
+-7.8108533641978329e-03
+-7.8152170686456926e-03
+-7.8195731287389273e-03
+-7.8239215388601641e-03
+-7.8282622933303677e-03
+-7.8325953851801425e-03
+-7.8369208066308895e-03
+-7.8412385499064350e-03
+-7.8455486073178739e-03
+-7.8498509712080743e-03
+-7.8541456342735346e-03
+-7.8584325903551210e-03
+-7.8627118335191665e-03
+-7.8669833572588554e-03
+-7.8712471540071816e-03
+-7.8755032160775090e-03
+-7.8797515356494024e-03
+-7.8839921047556931e-03
+-7.8882249155252399e-03
+-7.8924499613131499e-03
+-7.8966672362766593e-03
+-7.9008767343485952e-03
+-7.9050784479967450e-03
+-7.9092723691325008e-03
+-7.9134584897275970e-03
+-7.9176368019620597e-03
+-7.9218072980642672e-03
+-7.9259699707651503e-03
+-7.9301248137662664e-03
+-7.9342718208526182e-03
+-7.9384109849998819e-03
+-7.9425422982588242e-03
+-7.9466657526287149e-03
+-7.9507813400970621e-03
+-7.9548890526433477e-03
+-7.9589888824125252e-03
+-7.9630808226192167e-03
+-7.9671648669030707e-03
+-7.9712410086084460e-03
+-7.9753092400261724e-03
+-7.9793695532122556e-03
+-7.9834219401075379e-03
+-7.9874663924205599e-03
+-7.9915029018595134e-03
+-7.9955314610218042e-03
+-7.9995520635638747e-03
+-8.0035647031205907e-03
+-8.0075693722149194e-03
+-8.0115660625788773e-03
+-8.0155547659458461e-03
+-8.0195354741732870e-03
+-8.0235081791702398e-03
+-8.0274728730721327e-03
+-8.0314295488574366e-03
+-8.0353781996988019e-03
+-8.0393188184118402e-03
+-8.0432513970597769e-03
+-8.0471759276045229e-03
+-8.0510924017960193e-03
+-8.0550008111210832e-03
+-8.0589011471224777e-03
+-8.0627934023671782e-03
+-8.0666775701817503e-03
+-8.0705536437617725e-03
+-8.0744216152401696e-03
+-8.0782814762880711e-03
+-8.0821332185347875e-03
+-8.0859768334536116e-03
+-8.0898123124823629e-03
+-8.0936396475826834e-03
+-8.0974588318696999e-03
+-8.1012698585921639e-03
+-8.1050727202232366e-03
+-8.1088674082325906e-03
+-8.1126539140272628e-03
+-8.1164322290748752e-03
+-8.1202023448898892e-03
+-8.1239642531099263e-03
+-8.1277179462878081e-03
+-8.1314634173920985e-03
+-8.1352006591323620e-03
+-8.1389296631486398e-03
+-8.1426504208072341e-03
+-8.1463629234964571e-03
+-8.1500671626553133e-03
+-8.1537631297425757e-03
+-8.1574508167539458e-03
+-8.1611302164093010e-03
+-8.1648013214330965e-03
+-8.1684641238019152e-03
+-8.1721186148896834e-03
+-8.1757647860383285e-03
+-8.1794026284725055e-03
+-8.1830321333611969e-03
+-8.1866532921308598e-03
+-8.1902660973153171e-03
+-8.1938705417441155e-03
+-8.1974666177766775e-03
+-8.2010543166408968e-03
+-8.2046336293993237e-03
+-8.2082045471819597e-03
+-8.2117670612136522e-03
+-8.2153211627688481e-03
+-8.2188668438493550e-03
+-8.2224040970678841e-03
+-8.2259329149288463e-03
+-8.2294532888780511e-03
+-8.2329652098363307e-03
+-8.2364686687656195e-03
+-8.2399636568299406e-03
+-8.2434501652508888e-03
+-8.2469281855276164e-03
+-8.2503977098579880e-03
+-8.2538587305390071e-03
+-8.2573112393962353e-03
+-8.2607552275639554e-03
+-8.2641906861171729e-03
+-8.2676176060540920e-03
+-8.2710359783056894e-03
+-8.2744457938930781e-03
+-8.2778470446474087e-03
+-8.2812397228193696e-03
+-8.2846238204829885e-03
+-8.2879993288611838e-03
+-8.2913662389256688e-03
+-8.2947245415625030e-03
+-8.2980742274322231e-03
+-8.3014152871709376e-03
+-8.3047477121244891e-03
+-8.3080714947240553e-03
+-8.3113866274385252e-03
+-8.3146931016795482e-03
+-8.3179909078944132e-03
+-8.3212800365329975e-03
+-8.3245604783955870e-03
+-8.3278322244719673e-03
+-8.3310952658772162e-03
+-8.3343495943378684e-03
+-8.3375952017690838e-03
+-8.3408320798164792e-03
+-8.3440602193825160e-03
+-8.3472796112408661e-03
+-8.3504902460465186e-03
+-8.3536921142651488e-03
+-8.3568852063845740e-03
+-8.3600695137141523e-03
+-8.3632450283441066e-03
+-8.3664117422921520e-03
+-8.3695696465667518e-03
+-8.3727187316066532e-03
+-8.3758589878601408e-03
+-8.3789904058584816e-03
+-8.3821129761600909e-03
+-8.3852266896022893e-03
+-8.3883315378272816e-03
+-8.3914275126154500e-03
+-8.3945146052960291e-03
+-8.3975928064474615e-03
+-8.4006621065738831e-03
+-8.4037224961045799e-03
+-8.4067739653947132e-03
+-8.4098165048764450e-03
+-8.4128501058081395e-03
+-8.4158747599348879e-03
+-8.4188904588265896e-03
+-8.4218971930637189e-03
+-8.4248949528911935e-03
+-8.4278837285834112e-03
+-8.4308635105046735e-03
+-8.4338342890414482e-03
+-8.4367960550170065e-03
+-8.4397488000131742e-03
+-8.4426925156551053e-03
+-8.4456271927768854e-03
+-8.4485528213961228e-03
+-8.4514693915194311e-03
+-8.4543768934427100e-03
+-8.4572753176396717e-03
+-8.4601646546809718e-03
+-8.4630448956771603e-03
+-8.4659160319304275e-03
+-8.4687780545026105e-03
+-8.4716309536938903e-03
+-8.4744747196542035e-03
+-8.4773093425452896e-03
+-8.4801348125502756e-03
+-8.4829511198730462e-03
+-8.4857582552043329e-03
+-8.4885562097584688e-03
+-8.4913449747176968e-03
+-8.4941245405960788e-03
+-8.4968948974792225e-03
+-8.4996560354394894e-03
+-8.5024079445118663e-03
+-8.5051506147174969e-03
+-8.5078840363101097e-03
+-8.5106082003150278e-03
+-8.5133230979134791e-03
+-8.5160287198580674e-03
+-8.5187250560903125e-03
+-8.5214120964670036e-03
+-8.5240898310032214e-03
+-8.5267582498914363e-03
+-8.5294173433577286e-03
+-8.5320671019239111e-03
+-8.5347075163095844e-03
+-8.5373385771729746e-03
+-8.5399602747621758e-03
+-8.5425725991657448e-03
+-8.5451755404071864e-03
+-8.5477690882850774e-03
+-8.5503532325520749e-03
+-8.5529279633393997e-03
+-8.5554932715263283e-03
+-8.5580491480628362e-03
+-8.5605955833703284e-03
+-8.5631325672528621e-03
+-8.5656600894777092e-03
+-8.5681781397885480e-03
+-8.5706867079125958e-03
+-8.5731857836870862e-03
+-8.5756753576807527e-03
+-8.5781554207599846e-03
+-8.5806259635563958e-03
+-8.5830869758428633e-03
+-8.5855384471971562e-03
+-8.5879803672673262e-03
+-8.5904127258464857e-03
+-8.5928355127542835e-03
+-8.5952487181007384e-03
+-8.5976523323493242e-03
+-8.6000463459600229e-03
+-8.6024307490507670e-03
+-8.6048055314907682e-03
+-8.6071706830971907e-03
+-8.6095261933636560e-03
+-8.6118720516461141e-03
+-8.6142082475335040e-03
+-8.6165347715069108e-03
+-8.6188516142584083e-03
+-8.6211587661076498e-03
+-8.6234562165710821e-03
+-8.6257439550630859e-03
+-8.6280219710880048e-03
+-8.6302902542643289e-03
+-8.6325487942455637e-03
+-8.6347975810895494e-03
+-8.6370366051606601e-03
+-8.6392658567593494e-03
+-8.6414853256618854e-03
+-8.6436950014113448e-03
+-8.6458948734912631e-03
+-8.6480849311509275e-03
+-8.6502651635828216e-03
+-8.6524355603903765e-03
+-8.6545961121033237e-03
+-8.6567468093618240e-03
+-8.6588876421429730e-03
+-8.6610185995469584e-03
+-8.6631396706325203e-03
+-8.6652508447504443e-03
+-8.6673521114822936e-03
+-8.6694434604616174e-03
+-8.6715248816742873e-03
+-8.6735963652699831e-03
+-8.6756579012536271e-03
+-8.6777094790183237e-03
+-8.6797510877966982e-03
+-8.6817827168557682e-03
+-8.6838043555435979e-03
+-8.6858159932264624e-03
+-8.6878176195624383e-03
+-8.6898092246119260e-03
+-8.6917907984330224e-03
+-8.6937623305580660e-03
+-8.6957238100863737e-03
+-8.6976752261356833e-03
+-8.6996165680780536e-03
+-8.7015478254090870e-03
+-8.7034689876598834e-03
+-8.7053800445142347e-03
+-8.7072809856976012e-03
+-8.7091718008095922e-03
+-8.7110524791396728e-03
+-8.7129230099306128e-03
+-8.7147833824368394e-03
+-8.7166335859295372e-03
+-8.7184736096931736e-03
+-8.7203034432247195e-03
+-8.7221230762035522e-03
+-8.7239324982860203e-03
+-8.7257316988808894e-03
+-8.7275206672712963e-03
+-8.7292993926871530e-03
+-8.7310678641171324e-03
+-8.7328260704809101e-03
+-8.7345740009708382e-03
+-8.7363116454822649e-03
+-8.7380389940141037e-03
+-8.7397560361151278e-03
+-8.7414627606592840e-03
+-8.7431591564732947e-03
+-8.7448452125398514e-03
+-8.7465209179811831e-03
+-8.7481862619614419e-03
+-8.7498412339784056e-03
+-8.7514858237066253e-03
+-8.7531200207354443e-03
+-8.7547438142337002e-03
+-8.7563571932430320e-03
+-8.7579601467649721e-03
+-8.7595526636929412e-03
+-8.7611347329071415e-03
+-8.7627063435843679e-03
+-8.7642674853651657e-03
+-8.7658181479120471e-03
+-8.7673583205132889e-03
+-8.7688879921083134e-03
+-8.7704071516168970e-03
+-8.7719157878986976e-03
+-8.7734138897801149e-03
+-8.7749014462086099e-03
+-8.7763784467484608e-03
+-8.7778448811590189e-03
+-8.7793007389274386e-03
+-8.7807460087719474e-03
+-8.7821806792785072e-03
+-8.7836047392058185e-03
+-8.7850181775943545e-03
+-8.7864209835191200e-03
+-8.7878131462425374e-03
+-8.7891946552090868e-03
+-8.7905654998250791e-03
+-8.7919256690381694e-03
+-8.7932751515311970e-03
+-8.7946139360268131e-03
+-8.7959420114769662e-03
+-8.7972593669097317e-03
+-8.7985659914082692e-03
+-8.7998618742184554e-03
+-8.8011470046139937e-03
+-8.8024213717033707e-03
+-8.8036849643138779e-03
+-8.8049377712446624e-03
+-8.8061797812768444e-03
+-8.8074109831732961e-03
+-8.8086313657336542e-03
+-8.8098409181562101e-03
+-8.8110396298794469e-03
+-8.8122274902460770e-03
+-8.8134044880446606e-03
+-8.8145706118712228e-03
+-8.8157258503878747e-03
+-8.8168701924619952e-03
+-8.8180036270013341e-03
+-8.8191261429805962e-03
+-8.8202377294934187e-03
+-8.8213383756418490e-03
+-8.8224280704310171e-03
+-8.8235068027638277e-03
+-8.8245745615238742e-03
+-8.8256313354329163e-03
+-8.8266771131109770e-03
+-8.8277118832389024e-03
+-8.8287356348639295e-03
+-8.8297483571665569e-03
+-8.8307500392512811e-03
+-8.8317406699753628e-03
+-8.8327202381455819e-03
+-8.8336887325253972e-03
+-8.8346461417979291e-03
+-8.8355924546444625e-03
+-8.8365276599350114e-03
+-8.8374517467470336e-03
+-8.8383647041532665e-03
+-8.8392665210440501e-03
+-8.8401571861901410e-03
+-8.8410366883518426e-03
+-8.8419050162378623e-03
+-8.8427621585372811e-03
+-8.8436081040210949e-03
+-8.8444428417389850e-03
+-8.8452663607984424e-03
+-8.8460786501429415e-03
+-8.8468796983984157e-03
+-8.8476694941588170e-03
+-8.8484480261478114e-03
+-8.8492152832376388e-03
+-8.8499712543067058e-03
+-8.8507159282084046e-03
+-8.8514492937790262e-03
+-8.8521713398572160e-03
+-8.8528820552990217e-03
+-8.8535814289674268e-03
+-8.8542694496848203e-03
+-8.8549461061288616e-03
+-8.8556113869457526e-03
+-8.8562652808897233e-03
+-8.8569077769334453e-03
+-8.8575388640710438e-03
+-8.8581585311381748e-03
+-8.8587667667813282e-03
+-8.8593635596464371e-03
+-8.8599488985202351e-03
+-8.8605227722898441e-03
+-8.8610851698397077e-03
+-8.8616360800213689e-03
+-8.8621754916726522e-03
+-8.8627033936033300e-03
+-8.8632197745185087e-03
+-8.8637246230992631e-03
+-8.8642179280947041e-03
+-8.8646996783976750e-03
+-8.8651698629172940e-03
+-8.8656284704930269e-03
+-8.8660754898776690e-03
+-8.8665109098258598e-03
+-8.8669347191954549e-03
+-8.8673469069210260e-03
+-8.8677474619060989e-03
+-8.8681363728189463e-03
+-8.8685136282253656e-03
+-8.8688792167816687e-03
+-8.8692331275004119e-03
+-8.8695753494806712e-03
+-8.8699058716804405e-03
+-8.8702246827462757e-03
+-8.8705317712877343e-03
+-8.8708271260934616e-03
+-8.8711107361843511e-03
+-8.8713825905840978e-03
+-8.8716426781247255e-03
+-8.8718909874897292e-03
+-8.8721275073781313e-03
+-8.8723522266349747e-03
+-8.8725651341717889e-03
+-8.8727662188849265e-03
+-8.8729554696070061e-03
+-8.8731328751545154e-03
+-8.8732984244010455e-03
+-8.8734521063519624e-03
+-8.8735939100286314e-03
+-8.8737238243449743e-03
+-8.8738418380696557e-03
+-8.8739479399642628e-03
+-8.8740421188422958e-03
+-8.8741243635591747e-03
+-8.8741946629874724e-03
+-8.8742530061261104e-03
+-8.8742993820341426e-03
+-8.8743337797248991e-03
+-8.8743561880132542e-03
+-8.8743665956609718e-03
+-8.8743649915260497e-03
+-8.8743513646986540e-03
+-8.8743257043009376e-03
+-8.8742879993452314e-03
+-8.8742382386890750e-03
+-8.8741764111826445e-03
+-8.8741025057497893e-03
+-8.8740165113763911e-03
+-8.8739184170527254e-03
+-8.8738082117896053e-03
+-8.8736858846080562e-03
+-8.8735514245374420e-03
+-8.8734048206444583e-03
+-8.8732460620062157e-03
+-8.8730751376532736e-03
+-8.8728920364987158e-03
+-8.8726967474396633e-03
+-8.8724892594925133e-03
+-8.8722695618489514e-03
+-8.8720376437095554e-03
+-8.8717934941807824e-03
+-8.8715371022865183e-03
+-8.8712684570546041e-03
+-8.8709875475722812e-03
+-8.8706943629576294e-03
+-8.8703888923445575e-03
+-8.8700711249406674e-03
+-8.8697410499752553e-03
+-8.8693986566262175e-03
+-8.8690439339357066e-03
+-8.8686768709254089e-03
+-8.8682974567147084e-03
+-8.8679056805727376e-03
+-8.8675015317783747e-03
+-8.8670849995525873e-03
+-8.8666560730634083e-03
+-8.8662147414939451e-03
+-8.8657609941851408e-03
+-8.8652948205634984e-03
+-8.8648162099977789e-03
+-8.8643251515657696e-03
+-8.8638216342553228e-03
+-8.8633056472243090e-03
+-8.8627771801005305e-03
+-8.8622362225881345e-03
+-8.8616827641199783e-03
+-8.8611167936951570e-03
+-8.8605383002905644e-03
+-8.8599472732354620e-03
+-8.8593437021948149e-03
+-8.8587275768278045e-03
+-8.8580988866063283e-03
+-8.8574576208963161e-03
+-8.8568037690691277e-03
+-8.8561373205307149e-03
+-8.8554582646982617e-03
+-8.8547665909996728e-03
+-8.8540622888938214e-03
+-8.8533453478467968e-03
+-8.8526157574459925e-03
+-8.8518735074811471e-03
+-8.8511185877496110e-03
+-8.8503509877858842e-03
+-8.8495706968635228e-03
+-8.8487777042767016e-03
+-8.8479719996484817e-03
+-8.8471535727961317e-03
+-8.8463224135224144e-03
+-8.8454785115370197e-03
+-8.8446218565180045e-03
+-8.8437524381589291e-03
+-8.8428702462004360e-03
+-8.8419752703912079e-03
+-8.8410675004096002e-03
+-8.8401469258115543e-03
+-8.8392135361561042e-03
+-8.8382673213781484e-03
+-8.8373082718013907e-03
+-8.8363363777132845e-03
+-8.8353516288088400e-03
+-8.8343540144180579e-03
+-8.8333435239668044e-03
+-8.8323201474617696e-03
+-8.8312838751164156e-03
+-8.8302346971082333e-03
+-8.8291726034997707e-03
+-8.8280975843303619e-03
+-8.8270096295960821e-03
+-8.8259087292143958e-03
+-8.8247948730958703e-03
+-8.8236680511884959e-03
+-8.8225282534806215e-03
+-8.8213754699962756e-03
+-8.8202096911490935e-03
+-8.8190309076031179e-03
+-8.8178391099084409e-03
+-8.8166342879037688e-03
+-8.8154164311627561e-03
+-8.8141855294655378e-03
+-8.8129415732804747e-03
+-8.8116845532184261e-03
+-8.8104144598464204e-03
+-8.8091312836483440e-03
+-8.8078350150920647e-03
+-8.8065256444524748e-03
+-8.8052031617876971e-03
+-8.8038675571756111e-03
+-8.8025188210772414e-03
+-8.8011569442104642e-03
+-8.7997819172948577e-03
+-8.7983937310308347e-03
+-8.7969923761113244e-03
+-8.7955778431351682e-03
+-8.7941501223733325e-03
+-8.7927092040270237e-03
+-8.7912550785105865e-03
+-8.7897877366605627e-03
+-8.7883071693651144e-03
+-8.7868133675726660e-03
+-8.7853063223021933e-03
+-8.7837860245498361e-03
+-8.7822524649628381e-03
+-8.7807056339445477e-03
+-8.7791455219539214e-03
+-8.7775721198527605e-03
+-8.7759854186672016e-03
+-8.7743854094919672e-03
+-8.7727720836706224e-03
+-8.7711454326016621e-03
+-8.7695054473927447e-03
+-8.7678521185497651e-03
+-8.7661854365177205e-03
+-8.7645053922058656e-03
+-8.7628119770898558e-03
+-8.7611051826749029e-03
+-8.7593850003996401e-03
+-8.7576514216541716e-03
+-8.7559044377792661e-03
+-8.7541440397786476e-03
+-8.7523702185122610e-03
+-8.7505829649715487e-03
+-8.7487822706537044e-03
+-8.7469681271775089e-03
+-8.7451405262546199e-03
+-8.7432994597974895e-03
+-8.7414449197316460e-03
+-8.7395768974963487e-03
+-8.7376953839124801e-03
+-8.7358003698096605e-03
+-8.7338918467327747e-03
+-8.7319698067701915e-03
+-8.7300342420183891e-03
+-8.7280851445336819e-03
+-8.7261225063544751e-03
+-8.7241463193981749e-03
+-8.7221565750965346e-03
+-8.7201532647605568e-03
+-8.7181363799613224e-03
+-8.7161059128575847e-03
+-8.7140618556900973e-03
+-8.7120042007533555e-03
+-8.7099329404130982e-03
+-8.7078480670112184e-03
+-8.7057495724403421e-03
+-8.7036374482372739e-03
+-8.7015116860137635e-03
+-8.6993722780364900e-03
+-8.6972192168773763e-03
+-8.6950524951415909e-03
+-8.6928721055671270e-03
+-8.6906780409260077e-03
+-8.6884702937312028e-03
+-8.6862488558837082e-03
+-8.6840137192052812e-03
+-8.6817648759262081e-03
+-8.6795023188413391e-03
+-8.6772260407958161e-03
+-8.6749360347840154e-03
+-8.6726322939235084e-03
+-8.6703148112588224e-03
+-8.6679835792098699e-03
+-8.6656385898923934e-03
+-8.6632798356084013e-03
+-8.6609073094913187e-03
+-8.6585210049038748e-03
+-8.6561209151704288e-03
+-8.6537070335205163e-03
+-8.6512793531646551e-03
+-8.6488378670835277e-03
+-8.6463825679266443e-03
+-8.6439134483453951e-03
+-8.6414305014828642e-03
+-8.6389337209051686e-03
+-8.6364231002075340e-03
+-8.6338986331164717e-03
+-8.6313603134252678e-03
+-8.6288081347946893e-03
+-8.6262420902694353e-03
+-8.6236621727165501e-03
+-8.6210683752455716e-03
+-8.6184606915928365e-03
+-8.6158391155990201e-03
+-8.6132036413493328e-03
+-8.6105542632964327e-03
+-8.6078909758813202e-03
+-8.6052137727462372e-03
+-8.6025226468172747e-03
+-8.5998175911054953e-03
+-8.5970985996195320e-03
+-8.5943656668978716e-03
+-8.5916187875007873e-03
+-8.5888579560706429e-03
+-8.5860831672742010e-03
+-8.5832944154768994e-03
+-8.5804916942292114e-03
+-8.5776749969541811e-03
+-8.5748443176314661e-03
+-8.5719996511130665e-03
+-8.5691409923317370e-03
+-8.5662683363138137e-03
+-8.5633816781730699e-03
+-8.5604810129394464e-03
+-8.5575663348113288e-03
+-8.5546376375260098e-03
+-8.5516949150521455e-03
+-8.5487381625619224e-03
+-8.5457673756097058e-03
+-8.5427825497005894e-03
+-8.5397836801996956e-03
+-8.5367707624429499e-03
+-8.5337437914456745e-03
+-8.5307027616990314e-03
+-8.5276476676726231e-03
+-8.5245785044252946e-03
+-8.5214952675895777e-03
+-8.5183979528527000e-03
+-8.5152865562134281e-03
+-8.5121610738508359e-03
+-8.5090215017479109e-03
+-8.5058678348280126e-03
+-8.5027000676622874e-03
+-8.4995181952228129e-03
+-8.4963222136709201e-03
+-8.4931121193877104e-03
+-8.4898879087872952e-03
+-8.4866495783401091e-03
+-8.4833971244957802e-03
+-8.4801305430829942e-03
+-8.4768498293004788e-03
+-8.4735549784114347e-03
+-8.4702459866644458e-03
+-8.4669228509031795e-03
+-8.4635855680013708e-03
+-8.4602341349551604e-03
+-8.4568685488031810e-03
+-8.4534888062562426e-03
+-8.4500949030071361e-03
+-8.4466868345595258e-03
+-8.4432645971274645e-03
+-8.4398281881897779e-03
+-8.4363776053496889e-03
+-8.4329128460555892e-03
+-8.4294339075921890e-03
+-8.4259407871856255e-03
+-8.4224334814908958e-03
+-8.4189119868031542e-03
+-8.4153762995908699e-03
+-8.4118264173758655e-03
+-8.4082623380641475e-03
+-8.4046840595954821e-03
+-8.4010915800176566e-03
+-8.3974848973960362e-03
+-8.3938640093454281e-03
+-8.3902289126432453e-03
+-8.3865796040044072e-03
+-8.3829160809337378e-03
+-8.3792383418062420e-03
+-8.3755463850535873e-03
+-8.3718402092492292e-03
+-8.3681198130598038e-03
+-8.3643851950177713e-03
+-8.3606363528160570e-03
+-8.3568732838271848e-03
+-8.3530959856989873e-03
+-8.3493044570200400e-03
+-8.3454986965812196e-03
+-8.3416787034147882e-03
+-8.3378444770214524e-03
+-8.3339960169265086e-03
+-8.3301333217826630e-03
+-8.3262563892408745e-03
+-8.3223652169873482e-03
+-8.3184598038509045e-03
+-8.3145401494434650e-03
+-8.3106062534405618e-03
+-8.3066581158316288e-03
+-8.3026957367314264e-03
+-8.2987191158813735e-03
+-8.2947282516876511e-03
+-8.2907231422633555e-03
+-8.2867037864373088e-03
+-8.2826701844889977e-03
+-8.2786223368730288e-03
+-8.2745602440330579e-03
+-8.2704839063996050e-03
+-8.2663933243462429e-03
+-8.2622884974931018e-03
+-8.2581694249218678e-03
+-8.2540361058663168e-03
+-8.2498885406775777e-03
+-8.2457267301734669e-03
+-8.2415506752643083e-03
+-8.2373603772011063e-03
+-8.2331558373114518e-03
+-8.2289370563868904e-03
+-8.2247040340838809e-03
+-8.2204567699391499e-03
+-8.2161952643717527e-03
+-8.2119195189009932e-03
+-8.2076295351291330e-03
+-8.2033253148561421e-03
+-8.1990068600292995e-03
+-8.1946741724384202e-03
+-8.1903272527182689e-03
+-8.1859661009992014e-03
+-8.1815907178095174e-03
+-8.1772011052487388e-03
+-8.1727972658020061e-03
+-8.1683792019386983e-03
+-8.1639469160933210e-03
+-8.1595004106795044e-03
+-8.1550396874801711e-03
+-8.1505647474584639e-03
+-8.1460755916017077e-03
+-8.1415722220955066e-03
+-8.1370546420561334e-03
+-8.1325228546263641e-03
+-8.1279768629647069e-03
+-8.1234166702368570e-03
+-8.1188422793744292e-03
+-8.1142536923449627e-03
+-8.1096509108700230e-03
+-8.1050339372114224e-03
+-8.1004027748806454e-03
+-8.0957574275686093e-03
+-8.0910978991054205e-03
+-8.0864241935097829e-03
+-8.0817363147601615e-03
+-8.0770342659679788e-03
+-8.0723180495427434e-03
+-8.0675876680311506e-03
+-8.0628431252299029e-03
+-8.0580844255319500e-03
+-8.0533115734171858e-03
+-8.0485245737250601e-03
+-8.0437234313904347e-03
+-8.0389081508406308e-03
+-8.0340787352753580e-03
+-8.0292351877308248e-03
+-8.0243775121155124e-03
+-8.0195057135701610e-03
+-8.0146197973409144e-03
+-8.0097197688852664e-03
+-8.0048056338390371e-03
+-7.9998773977057302e-03
+-7.9949350648350591e-03
+-7.9899786390018081e-03
+-7.9850081243107197e-03
+-7.9800235263794810e-03
+-7.9750248512540905e-03
+-7.9700121051207544e-03
+-7.9649852945203360e-03
+-7.9599444260326641e-03
+-7.9548895053835680e-03
+-7.9498205370408560e-03
+-7.9447375254431112e-03
+-7.9396404763503320e-03
+-7.9345293966844276e-03
+-7.9294042934297121e-03
+-7.9242651737716132e-03
+-7.9191120450002178e-03
+-7.9139449141357437e-03
+-7.9087637869128102e-03
+-7.9035686686859310e-03
+-7.8983595653762274e-03
+-7.8931364844048620e-03
+-7.8878994334415538e-03
+-7.8826484203422253e-03
+-7.8773834532488637e-03
+-7.8721045402755097e-03
+-7.8668116885040468e-03
+-7.8615049040705928e-03
+-7.8561841932386633e-03
+-7.8508495637814139e-03
+-7.8455010242922691e-03
+-7.8401385834492923e-03
+-7.8347622503114004e-03
+-7.8293720340550082e-03
+-7.8239679432547567e-03
+-7.8185499848179123e-03
+-7.8131181653826945e-03
+-7.8076724927271029e-03
+-7.8022129764557160e-03
+-7.7967396263372343e-03
+-7.7912524521356729e-03
+-7.7857514636105758e-03
+-7.7802366704025497e-03
+-7.7747080809865976e-03
+-7.7691657031766278e-03
+-7.7636095450982923e-03
+-7.7580396165454176e-03
+-7.7524559278549215e-03
+-7.7468584895099011e-03
+-7.7412473124166244e-03
+-7.7356224075453683e-03
+-7.7299837849543968e-03
+-7.7243314531770966e-03
+-7.7186654206692186e-03
+-7.7129856974240876e-03
+-7.7072922949648773e-03
+-7.7015852248719426e-03
+-7.6958644986350995e-03
+-7.6901301276905724e-03
+-7.6843821232699836e-03
+-7.6786204954872360e-03
+-7.6728452540755455e-03
+-7.6670564093020508e-03
+-7.6612539730568086e-03
+-7.6554379575385781e-03
+-7.6496083750877452e-03
+-7.6437652382918024e-03
+-7.6379085597218640e-03
+-7.6320383509362278e-03
+-7.6261546224431149e-03
+-7.6202573848470042e-03
+-7.6143466503412714e-03
+-7.6084224321005508e-03
+-7.6024847433704993e-03
+-7.5965335977220081e-03
+-7.5905690088418675e-03
+-7.5845909899025033e-03
+-7.5785995524390764e-03
+-7.5725947076719577e-03
+-7.5665764678063590e-03
+-7.5605448468410545e-03
+-7.5544998589741437e-03
+-7.5484415186417046e-03
+-7.5423698405369310e-03
+-7.5362848392405797e-03
+-7.5301865278803977e-03
+-7.5240749186480729e-03
+-7.5179500240450748e-03
+-7.5118118585379952e-03
+-7.5056604373275847e-03
+-7.4994957756667124e-03
+-7.4933178889778169e-03
+-7.4871267927127064e-03
+-7.4809225016579427e-03
+-7.4747050293352173e-03
+-7.4684743891668152e-03
+-7.4622305957888742e-03
+-7.4559736652041611e-03
+-7.4497036135091716e-03
+-7.4434204570565489e-03
+-7.4371242123710355e-03
+-7.4308148957504790e-03
+-7.4244925220330023e-03
+-7.4181571054861371e-03
+-7.4118086609124096e-03
+-7.4054472049885911e-03
+-7.3990727548019471e-03
+-7.3926853276118278e-03
+-7.3862849410192746e-03
+-7.3798716126300687e-03
+-7.3734453589379845e-03
+-7.3670061951320752e-03
+-7.3605541364592294e-03
+-7.3540891998908247e-03
+-7.3476114036065236e-03
+-7.3411207658519075e-03
+-7.3346173051459119e-03
+-7.3281010401192405e-03
+-7.3215719889386920e-03
+-7.3150301680703841e-03
+-7.3084755935972461e-03
+-7.3019082825573874e-03
+-7.2953282539700822e-03
+-7.2887355271068184e-03
+-7.2821301214417771e-03
+-7.2755120566970000e-03
+-7.2688813524971162e-03
+-7.2622380269089333e-03
+-7.2555820968612170e-03
+-7.2489135795818617e-03
+-7.2422324945764652e-03
+-7.2355388623246307e-03
+-7.2288327033340708e-03
+-7.2221140382063547e-03
+-7.2153828875617760e-03
+-7.2086392713121899e-03
+-7.2018832078341102e-03
+-7.1951147153374662e-03
+-7.1883338133107381e-03
+-7.1815405228719889e-03
+-7.1747348652693001e-03
+-7.1679168621071208e-03
+-7.1610865352613037e-03
+-7.1542439063662444e-03
+-7.1473889952268915e-03
+-7.1405218208303537e-03
+-7.1336424027648657e-03
+-7.1267507630546926e-03
+-7.1198469243370895e-03
+-7.1129309092245289e-03
+-7.1060027402733471e-03
+-7.0990624400106570e-03
+-7.0921100300840659e-03
+-7.0851455309726783e-03
+-7.0781689631734665e-03
+-7.0711803487298781e-03
+-7.0641797109130319e-03
+-7.0571670730803573e-03
+-7.0501424589964126e-03
+-7.0431058926159647e-03
+-7.0360573974643245e-03
+-7.0289969952490343e-03
+-7.0219247072010691e-03
+-7.0148405554282568e-03
+-7.0077445641149967e-03
+-7.0006367577507252e-03
+-6.9935171610251467e-03
+-6.9863857989053649e-03
+-6.9792426962925957e-03
+-6.9720878766455956e-03
+-6.9649213622296202e-03
+-6.9577431755318674e-03
+-6.9505533411445674e-03
+-6.9433518846874834e-03
+-6.9361388318434280e-03
+-6.9289142085435830e-03
+-6.9216780407859212e-03
+-6.9144303538800538e-03
+-6.9071711714307048e-03
+-6.8999005168085244e-03
+-6.8926184146485226e-03
+-6.8853248914117248e-03
+-6.8780199737211670e-03
+-6.8707036885497933e-03
+-6.8633760631722773e-03
+-6.8560371246447127e-03
+-6.8486868980582385e-03
+-6.8413254075021489e-03
+-6.8339526776202333e-03
+-6.8265687356675944e-03
+-6.8191736096565756e-03
+-6.8117673276056837e-03
+-6.8043499175491785e-03
+-6.7969214075061001e-03
+-6.7894818245091849e-03
+-6.7820311941057029e-03
+-6.7745695418114761e-03
+-6.7670968948894631e-03
+-6.7596132821726553e-03
+-6.7521187325721693e-03
+-6.7446132752010468e-03
+-6.7370969392798350e-03
+-6.7295697536442645e-03
+-6.7220317452515695e-03
+-6.7144829404894996e-03
+-6.7069233666228441e-03
+-6.6993530532948094e-03
+-6.6917720305488884e-03
+-6.6841803284948560e-03
+-6.6765779773466059e-03
+-6.6689650072621620e-03
+-6.6613414470676289e-03
+-6.6537073243418468e-03
+-6.6460626668283819e-03
+-6.6384075043061982e-03
+-6.6307418676855561e-03
+-6.6230657879752398e-03
+-6.6153792966251830e-03
+-6.6076824252249387e-03
+-6.5999752046061975e-03
+-6.5922576634493977e-03
+-6.5845298300753188e-03
+-6.5767917341650935e-03
+-6.5690434076291770e-03
+-6.5612848825956534e-03
+-6.5535161914351131e-03
+-6.5457373667547909e-03
+-6.5379484409771680e-03
+-6.5301494445589971e-03
+-6.5223404068167042e-03
+-6.5145213575406209e-03
+-6.5066923291354399e-03
+-6.4988533548778716e-03
+-6.4910044681055620e-03
+-6.4831457023354598e-03
+-6.4752770911041223e-03
+-6.4673986668715797e-03
+-6.4595104602570503e-03
+-6.4516125017760780e-03
+-6.4437048237616463e-03
+-6.4357874603947528e-03
+-6.4278604459519582e-03
+-6.4199238148462548e-03
+-6.4119776015732167e-03
+-6.4040218403032256e-03
+-6.3960565633715601e-03
+-6.3880818024728940e-03
+-6.3800975900101002e-03
+-6.3721039605927760e-03
+-6.3641009492618915e-03
+-6.3560885913482882e-03
+-6.3480669227001249e-03
+-6.3400359791507569e-03
+-6.3319957947854258e-03
+-6.3239464018371282e-03
+-6.3158878326812044e-03
+-6.3078201223077347e-03
+-6.2997433073580323e-03
+-6.2916574244613515e-03
+-6.2835625100225107e-03
+-6.2754586003641328e-03
+-6.2673457312897854e-03
+-6.2592239369105270e-03
+-6.2510932510031160e-03
+-6.2429537084098532e-03
+-6.2348053459581340e-03
+-6.2266482007054336e-03
+-6.2184823100789608e-03
+-6.2103077119141587e-03
+-6.2021244439012593e-03
+-6.1939325417417045e-03
+-6.1857320398269232e-03
+-6.1775229729269876e-03
+-6.1693053783020259e-03
+-6.1610792941650030e-03
+-6.1528447588578960e-03
+-6.1446018111570577e-03
+-6.1363504899220028e-03
+-6.1280908328483303e-03
+-6.1198228753675003e-03
+-6.1115466527126563e-03
+-6.1032622019892586e-03
+-6.0949695624571282e-03
+-6.0866687735096998e-03
+-6.0783598747246497e-03
+-6.0700429058062099e-03
+-6.0617179061082114e-03
+-6.0533849126866773e-03
+-6.0450439616777825e-03
+-6.0366950899984418e-03
+-6.0283383373714323e-03
+-6.0199737441481872e-03
+-6.0116013507578413e-03
+-6.0032211977874041e-03
+-5.9948333257956229e-03
+-5.9864377737912375e-03
+-5.9780345789242767e-03
+-5.9696237784180178e-03
+-5.9612054119587013e-03
+-5.9527795209967415e-03
+-5.9443461469911394e-03
+-5.9359053311970342e-03
+-5.9274571147842053e-03
+-5.9190015384143497e-03
+-5.9105386408419905e-03
+-5.9020684603804680e-03
+-5.8935910364499812e-03
+-5.8851064108202018e-03
+-5.8766146255628780e-03
+-5.8681157228208450e-03
+-5.8596097448257870e-03
+-5.8510967336992525e-03
+-5.8425767299077657e-03
+-5.8340497726819479e-03
+-5.8255159015415271e-03
+-5.8169751582997885e-03
+-5.8084275857740921e-03
+-5.7998732268611467e-03
+-5.7913121247533924e-03
+-5.7827443227113006e-03
+-5.7741698630140595e-03
+-5.7655887857641199e-03
+-5.7570011308150475e-03
+-5.7484069397297907e-03
+-5.7398062562982284e-03
+-5.7311991244594056e-03
+-5.7225855881477272e-03
+-5.7139656912939827e-03
+-5.7053394775594592e-03
+-5.6967069885663297e-03
+-5.6880682650036997e-03
+-5.6794233481932818e-03
+-5.6707722820885887e-03
+-5.6621151113225871e-03
+-5.6534518806117869e-03
+-5.6447826348664104e-03
+-5.6361074189912232e-03
+-5.6274262764769590e-03
+-5.6187392488939725e-03
+-5.6100463777985204e-03
+-5.6013477067417090e-03
+-5.5926432808932466e-03
+-5.5839331455278017e-03
+-5.5752173463839774e-03
+-5.5664959294222088e-03
+-5.5577689399869496e-03
+-5.5490364207500557e-03
+-5.5402984136638297e-03
+-5.5315549617960492e-03
+-5.5228061109192754e-03
+-5.5140519072110449e-03
+-5.5052923969917756e-03
+-5.4965276267841968e-03
+-5.4877576430142202e-03
+-5.4789824901662464e-03
+-5.4702022110828400e-03
+-5.4614168488510044e-03
+-5.4526264490424876e-03
+-5.4438310584701529e-03
+-5.4350307240131060e-03
+-5.4262254928095308e-03
+-5.4174154120688288e-03
+-5.4086005280705235e-03
+-5.3997808847356960e-03
+-5.3909565256451616e-03
+-5.3821274958602422e-03
+-5.3732938426282470e-03
+-5.3644556133848349e-03
+-5.3556128557965552e-03
+-5.3467656177334337e-03
+-5.3379139468133054e-03
+-5.3290578883622916e-03
+-5.3201974865110481e-03
+-5.3113327859579205e-03
+-5.3024638341530213e-03
+-5.2935906793644440e-03
+-5.2847133698693182e-03
+-5.2758319539683964e-03
+-5.2669464799444989e-03
+-5.2580569947947454e-03
+-5.2491635435364097e-03
+-5.2402661711152378e-03
+-5.2313649244055387e-03
+-5.2224598520527934e-03
+-5.2135510027926319e-03
+-5.2046384255884466e-03
+-5.1957221695276834e-03
+-5.1868022831701565e-03
+-5.1778788124349790e-03
+-5.1689518024201440e-03
+-5.1600212992888679e-03
+-5.1510873521638315e-03
+-5.1421500106753407e-03
+-5.1332093243177338e-03
+-5.1242653423669458e-03
+-5.1153181140035512e-03
+-5.1063676867984555e-03
+-5.0974141067820942e-03
+-5.0884574201530879e-03
+-5.0794976753741165e-03
+-5.0705349221950077e-03
+-5.0615692104158750e-03
+-5.0526005900224441e-03
+-5.0436291110602218e-03
+-5.0346548227136381e-03
+-5.0256777716629923e-03
+-5.0166980041553540e-03
+-5.0077155678911675e-03
+-4.9987305130065980e-03
+-4.9897428898705021e-03
+-4.9807527488566553e-03
+-4.9717601403437423e-03
+-4.9627651145052925e-03
+-4.9537677193791044e-03
+-4.9447680017358680e-03
+-4.9357660087930603e-03
+-4.9267617903153869e-03
+-4.9177553969381223e-03
+-4.9087468793699331e-03
+-4.8997362885407035e-03
+-4.8907236754057821e-03
+-4.8817090895158710e-03
+-4.8726925779650990e-03
+-4.8636741876845529e-03
+-4.8546539676945647e-03
+-4.8456319691865214e-03
+-4.8366082434366346e-03
+-4.8275828415426918e-03
+-4.8185558144920298e-03
+-4.8095272128761283e-03
+-4.8004970850122966e-03
+-4.7914654784043820e-03
+-4.7824324413557329e-03
+-4.7733980247237099e-03
+-4.7643622798740513e-03
+-4.7553252581856286e-03
+-4.7462870110612969e-03
+-4.7372475898418932e-03
+-4.7282070441466238e-03
+-4.7191654217304214e-03
+-4.7101227704522955e-03
+-4.7010791404667454e-03
+-4.6920345834105381e-03
+-4.6829891509495196e-03
+-4.6739428947756984e-03
+-4.6648958665907424e-03
+-4.6558481173257886e-03
+-4.6467996953360145e-03
+-4.6377506484502522e-03
+-4.6287010257783472e-03
+-4.6196508788716164e-03
+-4.6106002595579761e-03
+-4.6015492197363783e-03
+-4.5924978113859420e-03
+-4.5834460863022619e-03
+-4.5743940939648540e-03
+-4.5653418822934342e-03
+-4.5562894996020141e-03
+-4.5472369968980386e-03
+-4.5381844262444883e-03
+-4.5291318397023290e-03
+-4.5200792893167882e-03
+-4.5110268271201211e-03
+-4.5019745038827590e-03
+-4.4929223678636561e-03
+-4.4838704670848066e-03
+-4.4748188514606253e-03
+-4.4657675731309713e-03
+-4.4567166843509209e-03
+-4.4476662372158471e-03
+-4.4386162837089680e-03
+-4.4295668754558582e-03
+-4.4205180617071507e-03
+-4.4114698907399205e-03
+-4.4024224114854148e-03
+-4.3933756752884585e-03
+-4.3843297340486797e-03
+-4.3752846397928100e-03
+-4.3662404448118588e-03
+-4.3571972013766187e-03
+-4.3481549599380656e-03
+-4.3391137687167789e-03
+-4.3300736759537117e-03
+-4.3210347320670516e-03
+-4.3119969890691940e-03
+-4.3029604990212095e-03
+-4.2939253140693613e-03
+-4.2848914863964360e-03
+-4.2758590674524481e-03
+-4.2668281058651763e-03
+-4.2577986495896895e-03
+-4.2487707478079404e-03
+-4.2397444523672636e-03
+-4.2307198154594265e-03
+-4.2216968890770763e-03
+-4.2126757249584933e-03
+-4.2036563746993679e-03
+-4.1946388880335856e-03
+-4.1856233132739184e-03
+-4.1766096989833976e-03
+-4.1675980958396589e-03
+-4.1585885554679628e-03
+-4.1495811295628893e-03
+-4.1405758700808638e-03
+-4.1315728290390614e-03
+-4.1225720572314736e-03
+-4.1135736026746330e-03
+-4.1045775130424374e-03
+-4.0955838376862995e-03
+-4.0865926281914997e-03
+-4.0776039362959461e-03
+-4.0686178137013399e-03
+-4.0596343120805813e-03
+-4.0506534827745751e-03
+-4.0416753745489914e-03
+-4.0327000349634178e-03
+-4.0237275121668562e-03
+-4.0147578568326160e-03
+-4.0057911203019393e-03
+-3.9968273539407202e-03
+-3.9878666091733624e-03
+-3.9789089373961735e-03
+-3.9699543883459634e-03
+-3.9610030094556674e-03
+-3.9520548481086527e-03
+-3.9431099537065003e-03
+-3.9341683773244937e-03
+-3.9252301700743548e-03
+-3.9162953829518614e-03
+-3.9073640668960564e-03
+-3.8984362722537598e-03
+-3.8895120467447863e-03
+-3.8805914373630447e-03
+-3.8716744920947051e-03
+-3.8627612613896583e-03
+-3.8538517960710872e-03
+-3.8449461468329444e-03
+-3.8360443641821170e-03
+-3.8271464984997576e-03
+-3.8182525981752175e-03
+-3.8093627098763831e-03
+-3.8004768804814873e-03
+-3.7915951591719409e-03
+-3.7827175963062597e-03
+-3.7738442421950207e-03
+-3.7649751468815775e-03
+-3.7561103603297500e-03
+-3.7472499316243647e-03
+-3.7383939075670905e-03
+-3.7295423346139782e-03
+-3.7206952603565792e-03
+-3.7118527341005875e-03
+-3.7030148053082187e-03
+-3.6941815237161498e-03
+-3.6853529393082573e-03
+-3.6765291017658358e-03
+-3.6677100579381428e-03
+-3.6588958531630581e-03
+-3.6500865333370016e-03
+-3.6412821471521937e-03
+-3.6324827441524161e-03
+-3.6236883737025163e-03
+-3.6148990846803920e-03
+-3.6061149258619072e-03
+-3.5973359447656725e-03
+-3.5885621869306923e-03
+-3.5797936977957174e-03
+-3.5710305243156974e-03
+-3.5622727148686417e-03
+-3.5535203178949479e-03
+-3.5447733819054831e-03
+-3.5360319554503766e-03
+-3.5272960865503837e-03
+-3.5185658205133248e-03
+-3.5098412017818812e-03
+-3.5011222756290068e-03
+-3.4924090896913101e-03
+-3.4837016920212360e-03
+-3.4750001305455663e-03
+-3.4663044529846671e-03
+-3.4576147069550443e-03
+-3.4489309382015401e-03
+-3.4402531906384537e-03
+-3.4315815083046301e-03
+-3.4229159372753996e-03
+-3.4142565248102491e-03
+-3.4056033181553542e-03
+-3.3969563644066611e-03
+-3.3883157106092505e-03
+-3.3796814029445612e-03
+-3.3710534850207802e-03
+-3.3624319999832576e-03
+-3.3538169921216495e-03
+-3.3452085076869391e-03
+-3.3366065931223839e-03
+-3.3280112948604482e-03
+-3.3194226593225937e-03
+-3.3108407326924213e-03
+-3.3022655586115533e-03
+-3.2936971791792890e-03
+-3.2851356369148995e-03
+-3.2765809768276282e-03
+-3.2680332447985361e-03
+-3.2594924865947364e-03
+-3.2509587476248132e-03
+-3.2424320732135159e-03
+-3.2339125073977890e-03
+-3.2254000919108958e-03
+-3.2168948683102597e-03
+-3.2083968797777165e-03
+-3.1999061712201966e-03
+-3.1914227875922247e-03
+-3.1829467734428916e-03
+-3.1744781730646556e-03
+-3.1660170303666486e-03
+-3.1575633870132296e-03
+-3.1491172838460815e-03
+-3.1406787623064255e-03
+-3.1322478658000184e-03
+-3.1238246381330706e-03
+-3.1154091230633945e-03
+-3.1070013642584275e-03
+-3.0986014053096416e-03
+-3.0902092879713594e-03
+-3.0818250519648160e-03
+-3.0734487370725461e-03
+-3.0650803850769360e-03
+-3.0567200390807319e-03
+-3.0483677421345385e-03
+-3.0400235368194329e-03
+-3.0316874655363013e-03
+-3.0233595700323683e-03
+-3.0150398898161472e-03
+-3.0067284639236054e-03
+-2.9984253322020860e-03
+-2.9901305360810621e-03
+-2.9818441171773733e-03
+-2.9735661172498001e-03
+-2.9652965782208185e-03
+-2.9570355418256965e-03
+-2.9487830473029406e-03
+-2.9405391321719650e-03
+-2.9323038342606435e-03
+-2.9240771936324236e-03
+-2.9158592512479498e-03
+-2.9076500480017843e-03
+-2.8994496245424509e-03
+-2.8912580214549553e-03
+-2.8830752781248380e-03
+-2.8749014314947670e-03
+-2.8667365182510345e-03
+-2.8585805764198215e-03
+-2.8504336456377233e-03
+-2.8422957656279338e-03
+-2.8341669759939020e-03
+-2.8260473162531078e-03
+-2.8179368255585083e-03
+-2.8098355405746260e-03
+-2.8017434969215050e-03
+-2.7936607307177262e-03
+-2.7855872799726869e-03
+-2.7775231831409183e-03
+-2.7694684787021142e-03
+-2.7614232051895080e-03
+-2.7533874010922136e-03
+-2.7453611030703834e-03
+-2.7373443454930487e-03
+-2.7293371627167633e-03
+-2.7213395909978970e-03
+-2.7133516680147907e-03
+-2.7053734314063673e-03
+-2.6974049182795752e-03
+-2.6894461655079037e-03
+-2.6814972093823553e-03
+-2.6735580838981553e-03
+-2.6656288224876524e-03
+-2.6577094593388858e-03
+-2.6498000303203009e-03
+-2.6419005715279872e-03
+-2.6340111191031071e-03
+-2.6261317092456768e-03
+-2.6182623780013317e-03
+-2.6104031589977328e-03
+-2.6025540839759633e-03
+-2.5947151849291133e-03
+-2.5868864961426210e-03
+-2.5790680529534245e-03
+-2.5712598905486385e-03
+-2.5634620434724091e-03
+-2.5556745460989395e-03
+-2.5478974318773376e-03
+-2.5401307321062843e-03
+-2.5323744778054311e-03
+-2.5246287011119247e-03
+-2.5168934356840714e-03
+-2.5091687152696933e-03
+-2.5014545733000586e-03
+-2.4937510429490013e-03
+-2.4860581571167816e-03
+-2.4783759465776614e-03
+-2.4707044410869025e-03
+-2.4630436708013930e-03
+-2.4553936676490534e-03
+-2.4477544640377838e-03
+-2.4401260922440196e-03
+-2.4325085842246152e-03
+-2.4249019718605835e-03
+-2.4173062856830277e-03
+-2.4097215543072239e-03
+-2.4021478062769405e-03
+-2.3945850714261322e-03
+-2.3870333806822936e-03
+-2.3794927649928746e-03
+-2.3719632551821627e-03
+-2.3644448820127795e-03
+-2.3569376756733844e-03
+-2.3494416637424567e-03
+-2.3419568730582104e-03
+-2.3344833312627109e-03
+-2.3270210680420293e-03
+-2.3195701133957632e-03
+-2.3121304969761108e-03
+-2.3047022479211433e-03
+-2.2972853952344077e-03
+-2.2898799661912215e-03
+-2.2824859865403593e-03
+-2.2751034821649582e-03
+-2.2677324806053708e-03
+-2.2603730102685000e-03
+-2.2530250994897052e-03
+-2.2456887762267595e-03
+-2.2383640683233731e-03
+-2.2310510027710477e-03
+-2.2237496042940984e-03
+-2.2164598972602783e-03
+-2.2091819070052454e-03
+-2.2019156603586068e-03
+-2.1946611842670848e-03
+-2.1874185054652356e-03
+-2.1801876504923172e-03
+-2.1729686456427250e-03
+-2.1657615149884295e-03
+-2.1585662813880997e-03
+-2.1513829680597763e-03
+-2.1442116000820748e-03
+-2.1370522031144462e-03
+-2.1299048026647812e-03
+-2.1227694238184036e-03
+-2.1156460915684331e-03
+-2.1085348296265797e-03
+-2.1014356596414045e-03
+-2.0943486031410551e-03
+-2.0872736830715769e-03
+-2.0802109237390487e-03
+-2.0731603494449635e-03
+-2.0661219839045353e-03
+-2.0590958504988822e-03
+-2.0520819722151026e-03
+-2.0450803699913287e-03
+-2.0380910640958672e-03
+-2.0311140753417152e-03
+-2.0241494261309884e-03
+-2.0171971391516460e-03
+-2.0102572369272396e-03
+-2.0033297417051451e-03
+-1.9964146756311623e-03
+-1.9895120591245045e-03
+-1.9826219108786541e-03
+-1.9757442496618240e-03
+-1.9688790958037597e-03
+-1.9620264705628300e-03
+-1.9551863951519964e-03
+-1.9483588904662479e-03
+-1.9415439772911933e-03
+-1.9347416756575247e-03
+-1.9279520032912363e-03
+-1.9211749774894638e-03
+-1.9144106163611690e-03
+-1.9076589394384695e-03
+-1.9009199663933400e-03
+-1.8941937167964915e-03
+-1.8874802101131688e-03
+-1.8807794656052173e-03
+-1.8740915003452364e-03
+-1.8674163300474822e-03
+-1.8607539707202751e-03
+-1.8541044401904835e-03
+-1.8474677569372744e-03
+-1.8408439392628014e-03
+-1.8342330049003262e-03
+-1.8276349714597391e-03
+-1.8210498555795065e-03
+-1.8144776721205648e-03
+-1.8079184357872550e-03
+-1.8013721621725498e-03
+-1.7948388678338705e-03
+-1.7883185693747066e-03
+-1.7818112833715772e-03
+-1.7753170263835460e-03
+-1.7688358145722129e-03
+-1.7623676616871239e-03
+-1.7559125805722670e-03
+-1.7494705846044600e-03
+-1.7430416889518269e-03
+-1.7366259091549832e-03
+-1.7302232604830155e-03
+-1.7238337576862687e-03
+-1.7174574154117657e-03
+-1.7110942470032354e-03
+-1.7047442643303898e-03
+-1.6984074792761640e-03
+-1.6920839048670791e-03
+-1.6857735549016080e-03
+-1.6794764431463552e-03
+-1.6731925830722079e-03
+-1.6669219880338342e-03
+-1.6606646708222815e-03
+-1.6544206422496287e-03
+-1.6481899126978045e-03
+-1.6419724931054027e-03
+-1.6357683955216431e-03
+-1.6295776321286297e-03
+-1.6234002151420044e-03
+-1.6172361568169394e-03
+-1.6110854692492084e-03
+-1.6049481624128025e-03
+-1.5988242447881912e-03
+-1.5927137250954300e-03
+-1.5866166138690891e-03
+-1.5805329223894141e-03
+-1.5744626617750985e-03
+-1.5684058425414868e-03
+-1.5623624750592566e-03
+-1.5563325687776026e-03
+-1.5503161312252068e-03
+-1.5443131697211155e-03
+-1.5383236926318632e-03
+-1.5323477096107418e-03
+-1.5263852303600881e-03
+-1.5204362641655120e-03
+-1.5145008200067873e-03
+-1.5085789065848790e-03
+-1.5026705306860559e-03
+-1.4967756982737852e-03
+-1.4908944156783099e-03
+-1.4850266906582031e-03
+-1.4791725313162017e-03
+-1.4733319456614867e-03
+-1.4675049414994985e-03
+-1.4616915265715073e-03
+-1.4558917072124498e-03
+-1.4501054879566060e-03
+-1.4443328733093075e-03
+-1.4385738690922422e-03
+-1.4328284821342140e-03
+-1.4270967192250973e-03
+-1.4213785866769742e-03
+-1.4156740905872875e-03
+-1.4099832366010333e-03
+-1.4043060285358630e-03
+-1.3986424697493829e-03
+-1.3929925641270823e-03
+-1.3873563167560432e-03
+-1.3817337328851642e-03
+-1.3761248175763238e-03
+-1.3705295756417830e-03
+-1.3649480117804288e-03
+-1.3593801291752882e-03
+-1.3538259298005112e-03
+-1.3482854157511827e-03
+-1.3427585903275569e-03
+-1.3372454573956864e-03
+-1.3317460207707276e-03
+-1.3262602840379547e-03
+-1.3207882507188251e-03
+-1.3153299235125317e-03
+-1.3098853031613649e-03
+-1.3044543901425578e-03
+-1.2990371858355020e-03
+-1.2936336928749432e-03
+-1.2882439139627381e-03
+-1.2828678513672745e-03
+-1.2775055069966449e-03
+-1.2721568825552979e-03
+-1.2668219781655451e-03
+-1.2615007931736782e-03
+-1.2561933272125850e-03
+-1.2508995812144086e-03
+-1.2456195564720615e-03
+-1.2403532540808495e-03
+-1.2351006746441956e-03
+-1.2298618186732252e-03
+-1.2246366858174788e-03
+-1.2194252744764159e-03
+-1.2142275829873908e-03
+-1.2090436103362006e-03
+-1.2038733560703558e-03
+-1.1987168197661693e-03
+-1.1935740010884134e-03
+-1.1884448997471785e-03
+-1.1833295149874714e-03
+-1.1782278438820918e-03
+-1.1731398828719584e-03
+-1.1680656290196014e-03
+-1.1630050810064248e-03
+-1.1579582377660561e-03
+-1.1529250977855455e-03
+-1.1479056588762297e-03
+-1.1428999187433316e-03
+-1.1379078741314919e-03
+-1.1329295209182074e-03
+-1.1279648550334550e-03
+-1.1230138731697515e-03
+-1.1180765724275313e-03
+-1.1131529498875795e-03
+-1.1082430025156386e-03
+-1.1033467272413854e-03
+-1.0984641203886441e-03
+-1.0935951766302414e-03
+-1.0887398903693456e-03
+-1.0838982565737633e-03
+-1.0790702711024264e-03
+-1.0742559298858323e-03
+-1.0694552287102350e-03
+-1.0646681632261997e-03
+-1.0598947289328141e-03
+-1.0551349199221008e-03
+-1.0503887295003132e-03
+-1.0456561511358925e-03
+-1.0409371791739589e-03
+-1.0362318082402053e-03
+-1.0315400329508212e-03
+-1.0268618478945259e-03
+-1.0221972476422215e-03
+-1.0175462258450443e-03
+-1.0129087746397697e-03
+-1.0082848860566214e-03
+-1.0036745528952764e-03
+-9.9907776870966983e-04
+-9.9449452706851585e-04
+-9.8992482136927196e-04
+-9.8536864490958139e-04
+-9.8082599069222124e-04
+-9.7629685013827844e-04
+-9.7178121413885521e-04
+-9.6727907393899493e-04
+-9.6279042184221084e-04
+-9.5831525034709457e-04
+-9.5385355181455808e-04
+-9.4940531836897686e-04
+-9.4497054206609909e-04
+-9.4054921387853136e-04
+-9.3614132367250279e-04
+-9.3174686134993615e-04
+-9.2736581773287629e-04
+-9.2299818420295407e-04
+-9.1864395210196684e-04
+-9.1430311250180452e-04
+-9.0997565637940454e-04
+-9.0566157424854378e-04
+-9.0136085517407904e-04
+-8.9707348794371697e-04
+-8.9279946184982336e-04
+-8.8853876708965961e-04
+-8.8429139394760777e-04
+-8.8005733252577184e-04
+-8.7583657273224028e-04
+-8.7162910435763642e-04
+-8.6743491596459686e-04
+-8.6325399533665318e-04
+-8.5908633040368478e-04
+-8.5493191003773036e-04
+-8.5079072345703585e-04
+-8.4666275981325775e-04
+-8.4254800803800032e-04
+-8.3844645701139039e-04
+-8.3435809492770794e-04
+-8.3028290869742232e-04
+-8.2622088511334320e-04
+-8.2217201161990038e-04
+-8.1813627638428570e-04
+-8.1411366759574159e-04
+-8.1010417325627930e-04
+-8.0610778124400766e-04
+-8.0212447922068080e-04
+-7.9815425351346546e-04
+-7.9419708993632235e-04
+-7.9025297458066863e-04
+-7.8632189449486000e-04
+-7.8240383693163054e-04
+-7.7849878902294320e-04
+-7.7460673766470162e-04
+-7.7072766969690071e-04
+-7.6686157109320861e-04
+-7.6300842682591817e-04
+-7.5916822187249808e-04
+-7.5534094198808049e-04
+-7.5152657346448150e-04
+-7.4772510256841261e-04
+-7.4393651533246220e-04
+-7.4016079769501151e-04
+-7.3639793524345632e-04
+-7.3264791230211190e-04
+-7.2891071291385429e-04
+-7.2518632152931224e-04
+-7.2147472343156471e-04
+-7.1777590400078789e-04
+-7.1408984847006103e-04
+-7.1041654189526397e-04
+-7.0675596924636014e-04
+-7.0310811447229832e-04
+-6.9947296078732223e-04
+-6.9585049151099328e-04
+-6.9224069079875034e-04
+-6.8864354315774541e-04
+-6.8505903304146747e-04
+-6.8148714469618542e-04
+-6.7792786231621706e-04
+-6.7438116956357796e-04
+-6.7084704896490832e-04
+-6.6732548291623735e-04
+-6.6381645436261645e-04
+-6.6031994693842647e-04
+-6.5683594430973418e-04
+-6.5336442996899891e-04
+-6.4990538727843967e-04
+-6.4645879944699193e-04
+-6.4302464859743007e-04
+-6.3960291637469679e-04
+-6.3619358462440386e-04
+-6.3279663599468501e-04
+-6.2941205333190257e-04
+-6.2603981941550257e-04
+-6.2267991687576737e-04
+-6.1933232830471078e-04
+-6.1599703557852934e-04
+-6.1267401963659499e-04
+-6.0936326139849294e-04
+-6.0606474245079856e-04
+-6.0277844490168710e-04
+-5.9950435084811060e-04
+-5.9624244219581737e-04
+-5.9299270076263767e-04
+-5.8975510811145346e-04
+-5.8652964474894740e-04
+-5.8331629090900452e-04
+-5.8011502713166928e-04
+-5.7692583467042148e-04
+-5.7374869487829923e-04
+-5.7058358902738204e-04
+-5.6743049827929321e-04
+-5.6428940373523116e-04
+-5.6116028563913246e-04
+-5.5804312353617709e-04
+-5.5493789704359211e-04
+-5.5184458651905122e-04
+-5.4876317267598686e-04
+-5.4569363618971992e-04
+-5.4263595755989018e-04
+-5.3959011723713607e-04
+-5.3655609527040158e-04
+-5.3353387072979468e-04
+-5.3052342254846494e-04
+-5.2752473010756547e-04
+-5.2453777342553742e-04
+-5.2156253256126120e-04
+-5.1859898743046075e-04
+-5.1564711782724681e-04
+-5.1270690343970307e-04
+-5.0977832309376573e-04
+-5.0686135518266198e-04
+-5.0395597824471076e-04
+-5.0106217149517259e-04
+-4.9817991434219220e-04
+-4.9530918615115838e-04
+-4.9244996617844091e-04
+-4.8960223365306511e-04
+-4.8676596725741111e-04
+-4.8394114486298803e-04
+-4.8112774430450369e-04
+-4.7832574395484829e-04
+-4.7553512266337248e-04
+-4.7275585928144461e-04
+-4.6998793253198240e-04
+-4.6723132107057700e-04
+-4.6448600336731924e-04
+-4.6175195700741471e-04
+-4.5902915931210047e-04
+-4.5631758784412795e-04
+-4.5361722081052087e-04
+-4.5092803652352971e-04
+-4.4825001323445051e-04
+-4.4558312910027858e-04
+-4.4292736223711424e-04
+-4.4028269010567509e-04
+-4.3764908956204080e-04
+-4.3502653750343399e-04
+-4.3241501142543391e-04
+-4.2981448915106079e-04
+-4.2722494848418228e-04
+-4.2464636711576448e-04
+-4.2207872270104847e-04
+-4.1952199260010759e-04
+-4.1697615334905210e-04
+-4.1444118134663501e-04
+-4.1191705334750798e-04
+-4.0940374668068204e-04
+-4.0690123872306469e-04
+-4.0440950676009211e-04
+-4.0192852798926322e-04
+-3.9945827953294063e-04
+-3.9699873780459625e-04
+-3.9454987881278329e-04
+-3.9211167867925695e-04
+-3.8968411414684346e-04
+-3.8726716216203809e-04
+-3.8486079963318502e-04
+-3.8246500335677045e-04
+-3.8007975010374248e-04
+-3.7770501624992300e-04
+-3.7534077750582442e-04
+-3.7298700953691675e-04
+-3.7064368844352553e-04
+-3.6831079076160588e-04
+-3.6598829303742709e-04
+-3.6367617172636366e-04
+-3.6137440322960929e-04
+-3.5908296381988186e-04
+-3.5680182906398333e-04
+-3.5453097428633979e-04
+-3.5227037499362032e-04
+-3.5002000725103813e-04
+-3.4777984723000804e-04
+-3.4554987107530104e-04
+-3.4333005488487023e-04
+-3.4112037473118102e-04
+-3.3892080617071979e-04
+-3.3673132422135023e-04
+-3.3455190392281376e-04
+-3.3238252083653784e-04
+-3.3022315084839366e-04
+-3.2807376983225839e-04
+-3.2593435356409781e-04
+-3.2380487778459975e-04
+-3.2168531803373519e-04
+-3.1957564920795297e-04
+-3.1747584607766253e-04
+-3.1538588368078843e-04
+-3.1330573754592342e-04
+-3.1123538325245477e-04
+-3.0917479633276883e-04
+-3.0712395226812500e-04
+-3.0508282649114828e-04
+-3.0305139389497944e-04
+-3.0102962902277708e-04
+-2.9901750649420460e-04
+-2.9701500143085514e-04
+-2.9502208914325239e-04
+-2.9303874493148355e-04
+-2.9106494405941268e-04
+-2.8910066178073344e-04
+-2.8714587305341108e-04
+-2.8520055226908891e-04
+-2.8326467376743391e-04
+-2.8133821223750210e-04
+-2.7942114276440785e-04
+-2.7751344045081038e-04
+-2.7561508035196699e-04
+-2.7372603749106317e-04
+-2.7184628680573065e-04
+-2.6997580269026879e-04
+-2.6811455932499443e-04
+-2.6626253102761892e-04
+-2.6441969260157988e-04
+-2.6258601895707705e-04
+-2.6076148498834986e-04
+-2.5894606555771770e-04
+-2.5713973551207966e-04
+-2.5534246933000832e-04
+-2.5355424105495488e-04
+-2.5177502473742850e-04
+-2.5000479485133234e-04
+-2.4824352616928489e-04
+-2.4649119346218241e-04
+-2.4474777144724833e-04
+-2.4301323481959201e-04
+-2.4128755813569003e-04
+-2.3957071544042596e-04
+-2.3786268066196584e-04
+-2.3616342794029950e-04
+-2.3447293185795956e-04
+-2.3279116705226399e-04
+-2.3111810813649864e-04
+-2.2945372969436012e-04
+-2.2779800627951670e-04
+-2.2615091205112445e-04
+-2.2451242087814113e-04
+-2.2288250668269711e-04
+-2.2126114381010786e-04
+-2.1964830678799198e-04
+-2.1804397014126950e-04
+-2.1644810838165375e-04
+-2.1486069601660154e-04
+-2.1328170734937179e-04
+-2.1171111623744573e-04
+-2.1014889648702620e-04
+-2.0859502218979851e-04
+-2.0704946780381606e-04
+-2.0551220780914823e-04
+-2.0398321665576833e-04
+-2.0246246877057085e-04
+-2.0094993852587024e-04
+-1.9944559989278047e-04
+-1.9794942666174410e-04
+-1.9646139272967733e-04
+-1.9498147242915978e-04
+-1.9350964020322780e-04
+-1.9204587048230438e-04
+-1.9059013766803087e-04
+-1.8914241615224596e-04
+-1.8770268008540516e-04
+-1.8627090329504796e-04
+-1.8484705960657082e-04
+-1.8343112316869363e-04
+-1.8202306838857290e-04
+-1.8062286968048308e-04
+-1.7923050145787506e-04
+-1.7784593813381216e-04
+-1.7646915402933107e-04
+-1.7510012307386878e-04
+-1.7373881909326733e-04
+-1.7238521607502183e-04
+-1.7103928839229756e-04
+-1.6970101047464209e-04
+-1.6837035675575476e-04
+-1.6704730167512528e-04
+-1.6573181965580128e-04
+-1.6442388483564003e-04
+-1.6312347111491061e-04
+-1.6183055242920572e-04
+-1.6054510306468328e-04
+-1.5926709747986461e-04
+-1.5799651013981945e-04
+-1.5673331553348876e-04
+-1.5547748815610528e-04
+-1.5422900236675914e-04
+-1.5298783218483335e-04
+-1.5175395158197397e-04
+-1.5052733475202316e-04
+-1.4930795621195586e-04
+-1.4809579050451696e-04
+-1.4689081217821701e-04
+-1.4569299578657234e-04
+-1.4450231585048023e-04
+-1.4331874660640195e-04
+-1.4214226214473248e-04
+-1.4097283663016137e-04
+-1.3981044458060758e-04
+-1.3865506061723983e-04
+-1.3750665937148707e-04
+-1.3636521550152954e-04
+-1.3523070366681280e-04
+-1.3410309835435201e-04
+-1.3298237378965322e-04
+-1.3186850419083054e-04
+-1.3076146405525136e-04
+-1.2966122813294753e-04
+-1.2856777118314859e-04
+-1.2748106796589369e-04
+-1.2640109324165617e-04
+-1.2532782172020439e-04
+-1.2426122786245384e-04
+-1.2320128605327533e-04
+-1.2214797079036191e-04
+-1.2110125687969000e-04
+-1.2006111917992232e-04
+-1.1902753258277368e-04
+-1.1800047203224410e-04
+-1.1697991246669693e-04
+-1.1596582861175322e-04
+-1.1495819499245131e-04
+-1.1395698615964563e-04
+-1.1296217698892161e-04
+-1.1197374253763863e-04
+-1.1099165786739044e-04
+-1.1001589805129221e-04
+-1.0904643816607325e-04
+-1.0808325320991888e-04
+-1.0712631795637442e-04
+-1.0617560714153829e-04
+-1.0523109567708872e-04
+-1.0429275876446810e-04
+-1.0336057163327924e-04
+-1.0243450953664674e-04
+-1.0151454775080481e-04
+-1.0060066153365355e-04
+-9.9692825946275045e-05
+-9.8791015934768150e-05
+-9.7895206502200062e-05
+-9.7005372967127353e-05
+-9.6121490754148755e-05
+-9.5243535300597451e-05
+-9.4371482081708722e-05
+-9.3505306578530446e-05
+-9.2644984170435146e-05
+-9.1790490061703986e-05
+-9.0941799448283041e-05
+-9.0098887741537782e-05
+-8.9261730573375381e-05
+-8.8430303589319054e-05
+-8.7604582473863382e-05
+-8.6784542935259469e-05
+-8.5970160651248047e-05
+-8.5161411124708923e-05
+-8.4358269797023001e-05
+-8.3560712202081143e-05
+-8.2768714164199123e-05
+-8.1982251564751264e-05
+-8.1201300309070360e-05
+-8.0425836345550381e-05
+-7.9655835622807625e-05
+-7.8891273978719338e-05
+-7.8132127133024611e-05
+-7.7378370821202429e-05
+-7.6629981023785361e-05
+-7.5886933877145088e-05
+-7.5149205528399430e-05
+-7.4416772173750465e-05
+-7.3689610027473108e-05
+-7.2967695261461882e-05
+-7.2251003908220125e-05
+-7.1539511972888476e-05
+-7.0833195592800302e-05
+-7.0132031153325876e-05
+-6.9435995068498386e-05
+-6.8745063790027127e-05
+-6.8059213811506037e-05
+-6.7378421619964505e-05
+-6.6702663596752702e-05
+-6.6031916053123973e-05
+-6.5366155339550478e-05
+-6.4705358059444329e-05
+-6.4049500913735319e-05
+-6.3398560621840812e-05
+-6.2752513966149207e-05
+-6.2111337742177448e-05
+-6.1475008692945483e-05
+-6.0843503458616709e-05
+-6.0216798672978150e-05
+-5.9594871139394208e-05
+-5.8977697857688867e-05
+-5.8365255842955411e-05
+-5.7757522165192815e-05
+-5.7154473932379305e-05
+-5.6556088238944578e-05
+-5.5962342085393314e-05
+-5.5373212434350526e-05
+-5.4788676316941413e-05
+-5.4208711012003356e-05
+-5.3633293854472053e-05
+-5.3062402210039330e-05
+-5.2496013507338707e-05
+-5.1934105181106705e-05
+-5.1376654613097849e-05
+-5.0823639121096566e-05
+-5.0275036033612335e-05
+-4.9730822876835105e-05
+-4.9190977319530522e-05
+-4.8655477043499844e-05
+-4.8124299798729714e-05
+-4.7597423363967891e-05
+-4.7074825500241071e-05
+-4.6556483901112654e-05
+-4.6042376244759961e-05
+-4.5532480310389379e-05
+-4.5026774093221095e-05
+-4.4525235617647942e-05
+-4.4027842956887293e-05
+-4.3534574245598793e-05
+-4.3045407619088404e-05
+-4.2560321165472986e-05
+-4.2079292937386216e-05
+-4.1602301016069390e-05
+-4.1129323696580952e-05
+-4.0660339368275547e-05
+-4.0195326440745133e-05
+-3.9734263402260868e-05
+-3.9277128760522051e-05
+-3.8823901004411960e-05
+-3.8374558580768739e-05
+-3.7929079934135566e-05
+-3.7487443644325929e-05
+-3.7049628468594695e-05
+-3.6615613180437809e-05
+-3.6185376618053170e-05
+-3.5758897670352722e-05
+-3.5336155223604561e-05
+-3.4917128133530761e-05
+-3.4501795241773664e-05
+-3.4090135441034643e-05
+-3.3682127836796474e-05
+-3.3277751590009257e-05
+-3.2876985895467832e-05
+-3.2479810027028124e-05
+-3.2086203269536535e-05
+-3.1696144895606821e-05
+-3.1309614161124675e-05
+-3.0926590330611321e-05
+-3.0547052829912893e-05
+-3.0170981216672781e-05
+-2.9798355062642633e-05
+-2.9429154021913939e-05
+-2.9063357788235179e-05
+-2.8700946052974451e-05
+-2.8341898496004664e-05
+-2.7986194794300830e-05
+-2.7633814703474433e-05
+-2.7284738171231438e-05
+-2.6938945175148826e-05
+-2.6596415745396281e-05
+-2.6257129987129705e-05
+-2.5921068011228524e-05
+-2.5588209928230394e-05
+-2.5258535848381950e-05
+-2.4932025903121890e-05
+-2.4608660403325201e-05
+-2.4288419750141856e-05
+-2.3971284365217810e-05
+-2.3657234760837916e-05
+-2.3346251475203681e-05
+-2.3038315050772768e-05
+-2.2733406040873407e-05
+-2.2431505002533080e-05
+-2.2132592599661166e-05
+-2.1836649655079240e-05
+-2.1543657008368246e-05
+-2.1253595571165242e-05
+-2.0966446319044818e-05
+-2.0682190231678899e-05
+-2.0400808305499090e-05
+-2.0122281545742423e-05
+-1.9846590996138790e-05
+-1.9573717884737909e-05
+-1.9303643494864410e-05
+-1.9036349143858429e-05
+-1.8771816239983634e-05
+-1.8510026206830333e-05
+-1.8250960485522398e-05
+-1.7994600544372563e-05
+-1.7740927860509250e-05
+-1.7489924040934211e-05
+-1.7241570812739703e-05
+-1.6995849917452131e-05
+-1.6752743189933739e-05
+-1.6512232516244493e-05
+-1.6274299789390524e-05
+-1.6038926934687001e-05
+-1.5806095887667507e-05
+-1.5575788645257334e-05
+-1.5347987376187902e-05
+-1.5122674279824877e-05
+-1.4899831610029416e-05
+-1.4679441708814571e-05
+-1.4461486927678065e-05
+-1.4245949649430558e-05
+-1.4032812287054399e-05
+-1.3822057270153188e-05
+-1.3613667181261870e-05
+-1.3407624690476302e-05
+-1.3203912487646982e-05
+-1.3002513361472344e-05
+-1.2803410133170241e-05
+-1.2606585642359399e-05
+-1.2412022782521045e-05
+-1.2219704458070012e-05
+-1.2029613658888923e-05
+-1.1841733519108676e-05
+-1.1656047190018323e-05
+-1.1472537898523230e-05
+-1.1291188947451747e-05
+-1.1111983647850049e-05
+-1.0934905362115477e-05
+-1.0759937483326722e-05
+-1.0587063433633150e-05
+-1.0416266793964484e-05
+-1.0247531199948493e-05
+-1.0080840321882855e-05
+-9.9161779363109844e-06
+-9.7535278404637845e-06
+-9.5928738640926859e-06
+-9.4341998942280603e-06
+-9.2774898281869237e-06
+-9.1227276746824614e-06
+-8.9698975589774778e-06
+-8.8189836202902096e-06
+-8.6699700918041003e-06
+-8.5228412652773508e-06
+-8.3775814454048508e-06
+-8.2341750069474691e-06
+-8.0926063499428217e-06
+-7.9528599221368981e-06
+-7.8149203245554765e-06
+-7.6787721895105422e-06
+-7.5444002035268241e-06
+-7.4117891528005058e-06
+-7.2809238361905846e-06
+-7.1517891054534782e-06
+-7.0243698700175279e-06
+-6.8986510533233378e-06
+-6.7746177092000447e-06
+-6.6522549762612834e-06
+-6.5315480123220006e-06
+-6.4124820836281685e-06
+-6.2950424973467746e-06
+-6.1792145851078120e-06
+-6.0649837607045763e-06
+-5.9523354558267212e-06
+-5.8412551731036965e-06
+-5.7317285513402671e-06
+-5.6237412473674516e-06
+-5.5172789942095487e-06
+-5.4123276114581950e-06
+-5.3088729293256499e-06
+-5.2069008519077092e-06
+-5.1063973334048024e-06
+-5.0073483510464403e-06
+-4.9097400236546817e-06
+-4.8135585259590727e-06
+-4.7187900652052254e-06
+-4.6254209629755620e-06
+-4.5334375663898306e-06
+-4.4428262650744092e-06
+-4.3535735338705616e-06
+-4.2656658607635755e-06
+-4.1790898283658144e-06
+-4.0938321313324785e-06
+-4.0098794781330712e-06
+-3.9272186740521857e-06
+-3.8458365928375769e-06
+-3.7657201234312084e-06
+-3.6868562474420881e-06
+-3.6092319847502549e-06
+-3.5328343936651153e-06
+-3.4576506743053685e-06
+-3.3836680599202540e-06
+-3.3108738361798504e-06
+-3.2392553985368887e-06
+-3.1688001580964351e-06
+-3.0994955902268651e-06
+-3.0313292496001387e-06
+-2.9642887040166584e-06
+-2.8983616367551119e-06
+-2.8335358162342228e-06
+-2.7697990287958425e-06
+-2.7071391737074910e-06
+-2.6455441990032630e-06
+-2.5850020797382640e-06
+-2.5255008950867931e-06
+-2.4670287497854806e-06
+-2.4095738082767435e-06
+-2.3531243656624828e-06
+-2.2976687363114359e-06
+-2.2431953097560063e-06
+-2.1896925722092948e-06
+-2.1371490220636173e-06
+-2.0855532444926934e-06
+-2.0348938913695827e-06
+-1.9851596336970663e-06
+-1.9363392722860372e-06
+-1.8884216665463735e-06
+-1.8413957059477198e-06
+-1.7952504011162711e-06
+-1.7499747936840459e-06
+-1.7055579712121150e-06
+-1.6619891263204627e-06
+-1.6192574682421817e-06
+-1.5773522893024892e-06
+-1.5362629932408148e-06
+-1.4959789977246535e-06
+-1.4564898177682345e-06
+-1.4177850463742727e-06
+-1.3798542922440752e-06
+-1.3426872700073485e-06
+-1.3062737442659952e-06
+-1.2706035116780201e-06
+-1.2356665044141787e-06
+-1.2014526909449154e-06
+-1.1679520890294814e-06
+-1.1351548343085678e-06
+-1.1030510811740633e-06
+-1.0716310530956825e-06
+-1.0408850701083943e-06
+-1.0108034656279649e-06
+-9.8137667810009085e-07
+-9.5259523366956066e-07
+-9.2444967513525918e-07
+-8.9693066060856722e-07
+-8.7002890503340016e-07
+-8.4373515021130073e-07
+-8.1804025631277122e-07
+-7.9293511673227308e-07
+-7.6841067642498978e-07
+-7.4445800931800525e-07
+-7.2106821059546252e-07
+-6.9823244801269492e-07
+-6.7594199510702308e-07
+-6.5418813888824595e-07
+-6.3296225907120700e-07
+-6.1225581604274739e-07
+-5.9206028693339013e-07
+-5.7236727113256233e-07
+-5.5316843096372952e-07
+-5.3445545610072801e-07
+-5.1622016209208572e-07
+-4.9845440145894177e-07
+-4.8115007230546357e-07
+-4.6429919201645730e-07
+-4.4789379856164625e-07
+-4.3192600465691602e-07
+-4.1638803664238095e-07
+-4.0127213531986045e-07
+-3.8657063744112023e-07
+-3.7227596676957541e-07
+-3.5838056255389447e-07
+-3.4487697720611392e-07
+-3.3175782396280106e-07
+-3.1901574341505840e-07
+-3.0664350787503074e-07
+-2.9463393016719737e-07
+-2.8297986887439852e-07
+-2.7167430787627152e-07
+-2.6071025339351692e-07
+-2.5008078074182626e-07
+-2.3977907479334966e-07
+-2.2979833484097152e-07
+-2.2013185808187936e-07
+-2.1077303423192582e-07
+-2.0171526861328840e-07
+-1.9295208254726232e-07
+-1.8447706244127140e-07
+-1.7628381992114235e-07
+-1.6836609305915838e-07
+-1.6071766065168347e-07
+-1.5333234692284851e-07
+-1.4620410629439587e-07
+-1.3932691733655356e-07
+-1.3269482771134250e-07
+-1.2630199937201908e-07
+-1.2014260917549308e-07
+-1.1421092749982211e-07
+-1.0850131681464157e-07
+-1.0300815499771020e-07
+-9.7725937660478474e-08
+-9.2649229357816345e-08
+-8.7772619338697250e-08
+-8.3090825864641359e-08
+-7.8598610696967405e-08
+-7.4290778463311288e-08
+-7.0162262399906119e-08
+-6.6208020619233521e-08
+-6.2423079788313074e-08
+-5.8802584907894501e-08
+-5.5341696589472333e-08
+-5.2035668881427849e-08
+-4.8879851708133441e-08
+-4.5869610012677854e-08
+-4.3000423895149382e-08
+-4.0267843818401467e-08
+-3.7667444262503642e-08
+-3.5194930481721464e-08
+-3.2846053887744298e-08
+-3.0616607678639640e-08
+-2.8502516311640542e-08
+-2.6499730690787694e-08
+-2.4604267933051898e-08
+-2.2812264443414122e-08
+-2.1119872685202808e-08
+-1.9523337997922507e-08
+-1.8019005028586210e-08
+-1.6603233355326938e-08
+-1.5272497775799305e-08
+-1.4023346530909694e-08
+-1.2852350855394536e-08
+-1.1756212112182239e-08
+-1.0731679733650897e-08
+-9.7755437149354270e-09
+-8.8847274674664280e-09
+-8.0561824459927638e-09
+-7.2869250084399515e-09
+-6.5740935823599945e-09
+-5.9148433158320401e-09
+-5.3064205399429650e-09
+-4.7461731846003816e-09
+-4.2314639929397345e-09
+-3.7597706250374997e-09
+-3.3286471423360674e-09
+-2.9356698423672955e-09
+-2.5785457142068967e-09
+-2.2550322622557339e-09
+-1.9629260559417251e-09
+-1.7001582029253022e-09
+-1.4646893371648879e-09
+-1.2545435431939900e-09
+-1.0678695219662837e-09
+-9.0283342802319255e-10
+-7.5769139168144858e-10
+-6.3080401994655157e-10
+-5.2054666164437089e-10
+-4.2540873611193757e-10
+-3.4395874967473463e-10
+-2.7478669847753259e-10
+-2.1661358887160230e-10
+-1.6821339931379100e-10
+-1.2839782507251499e-10
+-9.6114561601696226e-11
+-7.0342485153308032e-11
+-5.0122288755049836e-11
+-3.4621476854207399e-11
+-2.3025776574878514e-11
+-1.4609686346322449e-11
+-8.7551315856562178e-12
+-4.8587428339821842e-12
+-2.4298926743239553e-12
+-1.0594553574421227e-12
+-3.5942017377254515e-13
+-7.5328203575257183e-14
+-9.1928668596800282e-15
+3.7982983720854332e-15
+3.3185836266262136e-15
+-6.6076247544953018e-16
+-1.6617358075420771e-15
+-6.9348481800485303e-16
+2.9671652059633216e-16
+4.1920151988316882e-16
+1.1827334452579935e-16
+-1.0167503905680288e-16
+-1.0094598300871974e-16
+-1.4694348332235585e-17
+3.0823153979634180e-17
+2.3111561162365769e-17
+-3.1707109895448570e-20
+-8.6631878543430861e-18
+-4.9776450009429777e-18
+8.5433077976672627e-19
+2.3017026923971399e-18
+9.8606369096656220e-19
+-3.9853244669052705e-19
+-5.8280379757083670e-19
+-1.7070555338348585e-19
+1.3844907701316607e-19
+1.4087722572031553e-19
+2.2087023758966374e-20
+-4.2287900844432759e-20
+-3.2393862323693144e-20
+-3.5649764610655598e-22
+1.1946719656490583e-20
+7.0153921541417982e-21
+-1.0975747477967784e-21
+-3.1871596191225256e-21
+-1.4009218776401500e-21
+5.3439889334482396e-22
+8.1001657015439910e-22
+2.4597305667043201e-22
+-1.8837522751395619e-22
+-1.9654128358196704e-22
+-3.3006130839206680e-23
+5.7988735875196761e-23
+4.5386981906491283e-23
+1.0557408699800637e-24
+-1.6468818826683773e-23
+-9.8823343858782890e-24
+1.3994761603768909e-24
+4.4118809866947384e-24
+1.9887393046861727e-24
+-7.1530337127287315e-25
+-1.1254790307000498e-24
+-3.5387782055686390e-25
+2.5609436399559328e-25
+2.7411357943309630e-25
+4.9074903864305476e-26
+-7.9478850358579296e-26
+-6.3567788953661671e-26
+-2.2502625803921607e-27
+2.2694273457966628e-26
+1.3914004148690096e-26
+-1.7683893404752942e-27
+-6.1053277217021625e-27
+-2.8210664953176321e-27
+9.5558267105364565e-28
+1.5633351786609260e-27
+5.0837805773274872e-28
+-3.4785748144245219e-28
+-3.8218353265046433e-28
+-7.2643428386402826e-29
+1.0887642893324336e-28
+8.8998840735883350e-29
+4.2210576292303415e-30
+-3.1261218236085302e-29
+-1.9580984529515827e-29
+2.2101207710888026e-30
+8.4461373010009785e-30
+3.9988255436219550e-30
+-1.2738718278612740e-30
+-2.1708958728161062e-30
+-7.2934036419248110e-31
+4.7206939826501551e-31
+5.3269464816401667e-31
+1.0710823343278728e-31
+-1.4906763121919167e-31
+-1.2455902700877652e-31
+-7.3927147718382768e-33
+4.3045613592492265e-32
+2.7543169003180772e-32
+-2.7245213622788141e-33
+-1.1680701670870818e-32
+-5.6643009652632153e-33
+1.6942507982246273e-33
+3.0136847738432132e-33
+1.0450026412597264e-33
+-6.4001938278080267e-34
+-7.4225274483475272e-34
+-1.5737220228919511e-34
+2.0398130619078345e-34
+1.7426546027426748e-34
+1.2402783470379721e-35
+-5.9249122896722204e-35
+-3.8725297130504096e-35
+3.3000572299631623e-36
+1.6148821675374253e-35
+8.0180451508143730e-36
+-2.2476065950695445e-36
+-4.1824188643796891e-36
+-1.4954728427590984e-36
+8.6684277121802150e-37
+1.0339345301364687e-36
+2.3049610242871547e-37
+-2.7896341461542963e-37
+-2.4372292012100842e-37
+-2.0204003847880370e-38
+8.1519210200384682e-38
+5.4422813929999517e-38
+-3.9047837485946630e-39
+-2.2318873930781577e-38
+-1.1342497290187665e-38
+2.9733036610183469e-39
+5.8026825890129558e-39
+2.1376944035200822e-39
+-1.1727867534587461e-39
+-1.4397994766661157e-39
+-3.3663432503132927e-40
+3.8128096179477556e-40
+3.4074708324598241e-40
+3.2211373946029008e-41
+-1.1211401817520571e-40
+-7.6450232587827284e-41
+4.4717752275232981e-42
+3.0836175894122771e-41
+1.6035248388918914e-41
+-3.9210325448529153e-42
+-8.0482451646970291e-42
+-3.0524155689616277e-42
+1.5849001864242663e-42
+2.0043823896921349e-42
+4.9037644957048579e-43
+-5.2080153965555954e-43
+-4.7623342326653970e-43
+-5.0517875332169216e-44
+1.5412663890310214e-43
+1.0734749726262739e-43
+-4.8769879241084907e-45
+-4.2589703675787441e-44
+-2.2655874989374884e-44
+5.1527405723577108e-45
+1.1159463307259755e-44
+4.3540689114204029e-45
+-2.1392336097313334e-45
+-2.7895177625549452e-45
+-7.1264309674887775e-46
+7.1091702005596499e-46
+6.6536933347130747e-46
+7.8209727780937146e-47
+-2.1179097359886791e-46
+-1.5066885899880959e-46
+4.9044494304264192e-48
+5.8803427913617661e-47
+3.1991305509085901e-47
+-6.7447044734861225e-48
+-1.5468762400311636e-47
+-6.2047648005570100e-48
+2.8837004051310342e-48
+3.8810334479016800e-48
+1.0333994145483893e-48
+-9.6978164333471778e-49
+-9.2931361781138908e-49
+-1.1981747432432173e-49
+2.9090097951530071e-49
+2.1138731747415361e-49
+-4.1923298465586356e-51
+-8.1161746008618751e-50
+-4.5147753368908592e-50
+8.7891141737502694e-51
+2.1435678364599154e-50
+8.8339057084405962e-51
+-3.8818613325919813e-51
+-5.3980498130654474e-51
+-1.4955330180190123e-51
+1.3219742322480587e-51
+1.2975356610773276e-51
+1.8197284045875808e-52
+-3.9937967779654575e-52
+-2.9645671005042759e-52
+2.1528618518296803e-54
+1.1198231813789890e-52
+6.3679981584720099e-53
+-1.1394515288763383e-53
+-2.9695225057783178e-53
+-1.2565937831275146e-53
+5.2177750939374630e-54
+7.5058139555956134e-54
+2.1603225907208383e-54
+-1.8007502813874647e-54
+-1.8110757230925419e-54
+-2.7436239132856586e-55
+5.4805332881177047e-55
+4.1559768275042015e-55
+2.1499538676187242e-57
+-1.5445233713348333e-55
+-8.9771546914550392e-56
+1.4684753320652499e-56
+4.1124804169686850e-56
+1.7859588989284523e-56
+-7.0021949096967157e-57
+-1.0433488682542826e-56
+-3.1152416875319921e-57
+2.4510453255592283e-57
+2.5270587691388900e-57
+4.1108633953584131e-58
+-7.5171073770017420e-58
+-5.8239700003200910e-58
+-1.0183538304829920e-59
+2.1295248928730448e-58
+1.2648796640042366e-58
+-1.8793953634745360e-59
+-5.6936122017665290e-59
+-2.5362799525984943e-59
+9.3806510529245237e-60
+1.4498844785739204e-59
+4.4850806881347397e-60
+-3.3334852854559657e-60
+-3.5249749972896112e-60
+-6.1262579426932478e-61
+1.0305373014238977e-60
+8.1583412386253840e-61
+2.4213532343722831e-62
+-2.9350281176830964e-61
+-1.7813225593465615e-61
+2.3854709091579734e-62
+7.8801906591004825e-62
+3.5990306918737905e-62
+-1.2543557882741483e-62
+-2.0142310112937500e-62
+-6.4476018530908772e-63
+4.5297980774032336e-63
+4.9154259718970292e-63
+9.0868397529951829e-64
+-1.4120608374949359e-63
+-1.1424135578327656e-63
+-4.7705903903959634e-65
+4.0437121978733950e-64
+2.5074023674094642e-64
+-2.9977100101723826e-65
+-1.0903103625568317e-64
+-5.1033164656317947e-65
+1.6738752953872437e-65
+2.7974114374843456e-65
+9.2558212265228387e-66
+-6.1499843375754341e-66
+-6.8522238734507368e-66
+-1.3422207197782649e-66
+1.9338087056895405e-66
+1.5991444366124274e-66
+8.5923919900399205e-68
+-5.5690644948746745e-67
+-3.5277536377274394e-67
+3.7209813527860046e-68
+1.5080884656476698e-67
+7.2311887882213036e-68
+-2.2287466527518464e-68
+-3.8839673046856722e-68
+-1.3269687855237543e-68
+8.3418261517670276e-69
+9.5492096127826840e-69
+1.9752660429743040e-69
+-2.6468942434311971e-69
+-2.2376749102113155e-69
+-1.4679178087431781e-70
+7.6668291660877284e-70
+4.9610340518420704e-70
+-4.5472829531744762e-71
+-2.0852799476068284e-70
+-1.0239241048018632e-70
+2.9603420984527314e-71
+5.3909665064299910e-71
+1.9000602034621658e-71
+-1.1303651890072696e-71
+-1.3303653432163265e-71
+-2.8972802945607291e-72
+3.6208677437935230e-72
+3.1300611018383284e-72
+2.4217120719600610e-73
+-1.0550605100207767e-72
+-6.9734910134153229e-73
+5.4451429225747912e-74
+2.8824527152233561e-73
+1.4489047784453580e-73
+-3.9215210402407150e-74
+-7.4804621806265665e-74
+-2.7174631957025894e-74
+1.5301108778183209e-74
+1.8528600675380434e-74
+4.2369920587849501e-75
+-4.9503251963124637e-75
+-4.3768208158955899e-75
+-3.8973969760603101e-76
+1.4513155425699579e-75
+9.7979706287279595e-76
+-6.3422301482242689e-77
+-3.9830765468144180e-76
+-2.0489684241041823e-76
+5.1793401315302497e-77
+1.0376756527081758e-76
+3.8822198486085818e-77
+-2.0689200357190555e-77
+-2.5797787974093914e-77
+-6.1793889854236869e-78
+6.7637970181630435e-78
+6.1180998121913252e-78
+6.1568972733566869e-79
+-1.9955654884578342e-78
+-1.3760553977065674e-78
+7.0975465830955953e-80
+5.5021310915632521e-79
+2.8957595932515898e-79
+-6.8179700865718389e-80
+-1.4390161880014124e-79
+-5.5403922977073329e-80
+2.7941665432321704e-80
+3.5908086398949414e-80
+8.9900629438275801e-81
+-9.2357257853764262e-81
+-8.5492369209449296e-81
+-9.5868244008202263e-82
+2.7427458127383520e-81
+1.9317600996811723e-81
+-7.4593940594608964e-83
+-7.5979780165578816e-82
+-4.0900869048686748e-82
+8.9416009910383679e-83
+1.9949828776522075e-82
+7.8988963126608768e-83
+-3.7689138306560280e-83
+-4.9965742756095587e-83
+-1.3049600200415756e-83
+1.2602738851796267e-83
+1.1942474124987458e-83
+1.4756181368714444e-84
+-3.7680314170227398e-84
+-2.7107595983654163e-84
+6.9996944625396899e-86
+1.0488609871755826e-84
+5.7736827436748616e-85
+-1.1677383193823290e-85
+-2.7649193792871800e-85
+-1.1250752790036174e-85
+5.0768646953516449e-86
+6.9506015881223751e-86
+1.8902775923167862e-86
+-1.7185441910997129e-86
+-1.6677033416014740e-86
+-2.2498863158279015e-87
+5.1742657159185847e-87
+3.8023721172064009e-87
+-5.0127406981347066e-89
+-1.4473958814825020e-87
+-8.1457385128533883e-88
+1.5177184726740527e-88
+3.8308468281378554e-88
+1.6010474190891998e-88
+-6.8288953065287754e-89
+-9.6659356107776414e-89
+-2.7328823727549180e-89
+2.3417652802097819e-89
+2.3281000025634848e-89
+3.4033658336667718e-90
+-7.1020392349446364e-90
+-5.3314704361888315e-90
+3.6527942137709426e-93
+1.9966630037409701e-90
+1.1486149294329099e-90
+-1.9616871924160605e-91
+-5.3060872028037323e-91
+-2.2764115723241789e-91
+9.1714004003189570e-92
+1.3438072271195272e-91
+3.9440494633197379e-92
+-3.1885984065043606e-92
+-3.2489689612964627e-92
+-5.1138298079223511e-93
+9.7433960839965440e-93
+7.4725807705886811e-93
+8.7308158990200056e-95
+-2.7533903648913499e-93
+-1.6187920499731049e-93
+2.5192309258232008e-94
+7.3471906386460560e-94
+3.2340021574292981e-94
+-1.2296910901866154e-94
+-1.8676737367864010e-94
+-5.6825347912929796e-95
+4.3382576292877021e-95
+4.5326445530392193e-95
+7.6397286853240198e-96
+-1.3360582282750192e-95
+-1.0469599013294128e-95
+-2.5056945050761379e-97
+3.7955308661412110e-96
+2.2802675261567524e-96
+-3.2107418099700714e-97
+-1.0170317260183301e-96
+-4.5907845249112259e-97
+1.6457898147083114e-97
+2.5949991256636420e-97
+8.1747028044515497e-98
+-5.8975435000308874e-98
+-6.3215040178719410e-98
+-1.1356038386420508e-98
+1.8311414119311404e-98
+1.4663166257556474e-98
+5.2884973262151770e-100
+-5.2301842779664620e-99
+-3.2104550331887477e-99
+4.0548889392690671e-100
+1.4073816313480919e-99
+6.5118365543458587e-100
+-2.1983934634818004e-100
+-3.6045036779553726e-100
+-1.1742849303747995e-100
+8.0103266680935589e-101
+8.8136179260073776e-101
+1.6805991954934600e-101
+-2.5083682027965342e-101
+-2.0528900200191025e-101
+-9.8719774090702668e-103
+7.2044063172167459e-102
+4.5179196629807365e-102
+-5.0642847539394426e-103
+-1.9469426165609190e-102
+-9.2300798138159118e-103
+2.9302831193050220e-103
+5.0052399060018680e-103
+1.6845496263244886e-103
+-1.0870097799329747e-103
+-1.2284397645036726e-103
+-2.4774498992681477e-104
+3.4342112606079991e-104
+2.8730808267309631e-104
+1.7240028023208068e-105
+-9.9199991990019685e-105
+-6.3548604886778057e-105
+6.2377158776895870e-106
+2.6925077120725975e-105
+1.3073865314189477e-105
+-3.8967393710222739e-106
+-6.9482654461266465e-106
+-2.4134658135154728e-106
+1.4736585667706021e-106
+1.7116680331708460e-106
+3.6393861505771895e-107
+-4.6991718876932230e-107
+-4.0195391694369951e-107
+-2.8869042616710753e-108
+1.3653835949410975e-107
+8.9346172400249826e-108
+-7.5469598647159960e-109
+-3.7223810368974622e-108
+-1.8505862865102033e-108
+5.1687046889640594e-109
+9.6427218421384369e-109
+3.4536295529727376e-109
+-1.9958041958034656e-109
+-2.3842582724493431e-109
+-5.3295694336139656e-110
+6.4263434737376864e-110
+5.6215028796535184e-110
+4.6962658759164558e-111
+-1.8785541708543631e-110
+-1.2556034237297480e-110
+8.9162304375719433e-112
+5.1445110300467083e-111
+2.6177862163109567e-111
+-6.8364293237062808e-112
+-1.3378069279614482e-111
+-4.9364517305055845e-112
+2.7000471316905147e-112
+3.3201345720228819e-112
+7.7825946576761525e-113
+-8.7830726368663887e-113
+-7.8592279362864301e-113
+-7.4796595330337152e-114
+2.5835297702774438e-113
+1.7637591253698141e-113
+-1.0188836529040979e-114
+-7.1076343951878287e-114
+-3.7007308739813220e-114
+9.0138191843248519e-115
+1.8554891602878202e-114
+7.0483540413175822e-115
+-3.6485962165003598e-115
+-4.6219644709663902e-115
+-1.1335332603124684e-115
+1.1996632602943521e-115
+1.0983993160996840e-115
+1.1721371138543553e-116
+-3.5515713419034472e-116
+-2.4765220445448567e-116
+1.1074305575713482e-117
+9.8165947600890688e-117
+5.2285043226279390e-117
+-1.1842951734221121e-117
+-2.5727287443439813e-117
+-1.0053490064335770e-117
+4.9243711457059603e-118
+6.4323221599262194e-118
+1.6471096623838993e-118
+-1.6375327840869125e-118
+-1.5345980611183322e-118
+-1.8134816703539795e-119
+4.8802331747346233e-119
+3.4758797155510993e-119
+-1.1068820361225665e-120
+-1.3553466080630531e-119
+-7.3826916389941924e-120
+1.5498286888013437e-120
+3.5661425661024614e-120
+1.4325931685344538e-120
+-6.6376135812693050e-121
+-8.9491038850716758e-121
+-2.3882008962452560e-121
+2.2337150639551028e-121
+2.1433156857454149e-121
+2.7768106909210176e-122
+-6.7029706920418461e-122
+-4.8765180245537895e-122
+9.3316034430589299e-124
+1.8706456120743253e-122
+1.0418532777185009e-122
+-2.0190548961255749e-123
+-4.9416597664412575e-123
+-2.0395228940798662e-123
+8.9344384359596030e-124
+1.2446908797610142e-123
+3.4558166386880603e-124
+-3.0448127852825386e-124
+-2.9925131123330287e-124
+-4.2154854506361419e-125
+9.2023021754862083e-125
+6.8388427450379292e-125
+-4.4952137623089988e-127
+-2.5809578451927060e-125
+-1.4694659916960187e-125
+2.6167935994317325e-126
+6.8456640126275203e-126
+2.9010241625922108e-126
+-1.2008097359948938e-126
+-1.7306733356407178e-126
+-4.9914940829248432e-127
+4.1473712585935837e-127
+4.1768141734448056e-127
+6.3533298195212911e-128
+-1.2627656797614620e-127
+-9.5870715775681969e-128
+-5.6144704666453648e-130
+3.5597294921296529e-128
+2.0714892098234787e-128
+-3.3712116148831139e-129
+-9.4803664613121277e-129
+-4.1229395594258542e-129
+1.6113309791085230e-129
+2.4056941501978122e-129
+7.1972375074164001e-130
+-5.6448321844900198e-130
+-5.8279539013521747e-130
+-9.5163810788554955e-131
+1.7319636009741107e-130
+1.3434522725855091e-130
+2.4398148085003935e-132
+-4.9079172509714293e-131
+-2.9186494004649428e-131
+4.3127275785167272e-132
+1.3125065163900278e-131
+5.8548220910306909e-132
+-2.1584415396747455e-132
+-3.3430031065083001e-132
+-1.0361093962693176e-132
+7.6767879007408299e-133
+8.1292399974992042e-133
+1.4178072004015618e-133
+-2.3743187990532482e-133
+-1.8818973120740647e-133
+-5.7112436671672063e-135
+6.7642188730655438e-134
+4.1101968331259900e-134
+-5.4713434921571894e-135
+-1.8165338505097521e-134
+-8.3077824870052217e-135
+2.8858890202364004e-135
+4.6441405583444228e-135
+1.4893571335290963e-135
+-1.0431310782761659e-135
+-1.1335667429865159e-135
+-2.1024529106279284e-136
+3.2532473445480040e-136
+2.6351745581766904e-136
+1.1179151160489997e-137
+-9.3191468657757763e-137
+-5.7853875217004188e-137
+6.8713739856575959e-138
+2.5133273685785475e-137
+1.1779682222804216e-137
+-3.8506390233837920e-138
+-6.4497961125826668e-138
+-2.1378869165830932e-138
+1.4161562950524351e-138
+1.5801921182546030e-138
+3.1048728600819380e-139
+-4.4551678824430989e-139
+-3.6886249103656900e-139
+-2.0061732269838540e-140
+1.2834225421118672e-139
+8.1394739423899170e-140
+-8.5226505199934757e-141
+-3.4763045039472571e-140
+-1.6690677022786649e-140
+5.1264235176493682e-141
+8.9548380908714660e-141
+3.0647734178092210e-141
+-1.9207746139111218e-141
+-2.2021103807275655e-141
+-4.5684056932263524e-142
+6.0977994757840719e-142
+5.1613720902660268e-142
+3.4194872995059147e-143
+-1.7668249855742420e-142
+-1.1446127711433557e-142
+1.0405160662779096e-143
+4.8067144911342646e-143
+2.3632900120938101e-143
+-6.8082014741904179e-144
+-1.2429151130858592e-143
+-4.3880961075115891e-144
+2.6026123258796804e-144
+3.0678548365877120e-144
+6.6996484619962638e-145
+-8.3413484944998099e-145
+-7.2196038204498173e-145
+-5.6324971659701502e-146
+2.4313361914006530e-145
+1.6088881119695463e-145
+-1.2443412992382021e-146
+-6.6441292220095225e-146
+-3.3440485238958542e-146
+9.0173584874479545e-147
+1.7246334066557912e-146
+6.2754762874235303e-147
+-3.5227892305604236e-147
+-4.2726671036712946e-147
+-9.7960549669646534e-148
+1.1403621066672483e-147
+1.0095097183961088e-147
+9.0540261565869408e-149
+-3.3444166899203683e-148
+-2.2604877599372379e-148
+1.4466802706912299e-149
+9.1809222710616295e-149
+4.7288215434152077e-149
+-1.1907585657015204e-149
+-2.3923377439042463e-149
+-8.9647043599400670e-150
+4.7630080846361355e-150
+5.9488407144317193e-150
+1.4284980202711959e-150
+-1.5580592614131937e-150
+-1.4111072582948068e-150
+-1.4290346971212305e-151
+4.5984787768944447e-151
+3.1746148359966717e-151
+-1.6145955275183833e-152
+-1.2682103116881600e-151
+-6.6829272926438858e-152
+1.5671757815601556e-152
+3.3175625926573837e-152
+1.2792982963796457e-152
+-6.4322148979897616e-153
+-8.2800794450273086e-153
+-2.0779651083200021e-153
+2.1274035015888470e-153
+1.9718029729637338e-153
+2.2235921057495741e-154
+-6.3200847303208759e-154
+-4.4565444513752701e-154
+1.6892508974488011e-155
+1.7512574685444582e-154
+9.4389100788855244e-155
+-2.0548749409738503e-155
+-4.5992399451355666e-155
+-1.8237941882768780e-155
+8.6754509645822114e-156
+1.1521452541711053e-155
+3.0159271881096635e-156
+-2.9028689018757051e-156
+-2.7543683150904544e-156
+-3.4205957844697440e-157
+8.6824442891620696e-157
+6.2535571793902838e-157
+-1.5708933432560158e-158
+-2.4174712332309009e-157
+-1.3323815051316335e-157
+2.6829193429426821e-158
+6.3741428697510748e-158
+2.5975719846320688e-158
+-1.1685291809603553e-158
+-1.6026947635383694e-158
+-4.3682100032350599e-159
+3.9582720131398053e-159
+3.8462613765897093e-159
+5.2129509051710243e-160
+-1.1922490069143990e-159
+-8.7717226610779382e-160
+1.0956694653374137e-161
+3.3362171680816023e-160
+1.8800363271625284e-160
+-3.4876436755664266e-161
+-8.8417752908257273e-161
+-3.7065435723113896e-161
+1.5843516664598657e-161
+2.2719239641827366e-161
+6.6086672079205656e-162
+-6.1254782741406772e-162
+-7.0729636034381160e-162
+-1.4156105740313269e-162
+5.3280329474382519e-162
+7.6394190943291735e-162
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
+0.0000000000000000e+00
diff --git a/potentials/Ni.adp b/potentials/Ni.adp
new file mode 100644
index 000000000..7cc301c67
--- /dev/null
+++ b/potentials/Ni.adp
@@ -0,0 +1,43007 @@
+Nickel ADP potential: Mishin et al. Acta Mater 2005 pp 4029
+Data below r=1.5 A is extrapolated
+F(rho) data not extrapolated
+1 Ni
+3001 9.7054386687161695E-04 10000 5.1685168516851690E-04 5.1680000000000001E+00
+28 58.690000 3.520000 bcc
+0.0000000000000000E+00
+-3.0290737299999999E-02
+-5.0634721479999999E-02
+-6.9797312240000006E-02
+-8.8564051170000005E-02
+-1.0717802630000001E-01
+-1.2573466940000000E-01
+-1.4427463460000001E-01
+-1.6281478960000001E-01
+-1.8136070720000000E-01
+-1.9991233659999999E-01
+-2.1846679510000000E-01
+-2.3701981929999999E-01
+-2.5556654820000002E-01
+-2.7410195389999997E-01
+-2.9262107840000001E-01
+-3.1111916309999998E-01
+-3.2959171329999998E-01
+-3.4803452779999999E-01
+-3.6644370580000002E-01
+-3.8481564250000000E-01
+-4.0314701679999998E-01
+-4.2143477629999998E-01
+-4.3967611990000000E-01
+-4.5786848019999998E-01
+-4.7600950640000000E-01
+-4.9409704809999999E-01
+-5.1212913940000004E-01
+-5.3010398489999999E-01
+-5.4801994549999999E-01
+-5.6587552679999997E-01
+-5.8366936719999996E-01
+-6.0140022810000004E-01
+-6.1906698350000000E-01
+-6.3666861190000001E-01
+-6.5420418790000001E-01
+-6.7167287529999997E-01
+-6.8907391990000000E-01
+-7.0640664360000005E-01
+-7.2367043900000005E-01
+-7.4086476369999998E-01
+-7.5798913580000005E-01
+-7.7504312980000001E-01
+-7.9202637200000003E-01
+-8.0893853729999998E-01
+-8.2577934590000002E-01
+-8.4254855930000006E-01
+-8.5924597840000005E-01
+-8.7587144029999997E-01
+-8.9242481610000002E-01
+-9.0890600820000000E-01
+-9.2531494839999995E-01
+-9.4165159590000003E-01
+-9.5791593580000001E-01
+-9.7410797689999995E-01
+-9.9022775019999998E-01
+-1.0062753080000000E+00
+-1.0222507210000000E+00
+-1.0381540800000000E+00
+-1.0539854900000001E+00
+-1.0697450749999999E+00
+-1.0854329720000000E+00
+-1.1010493330000000E+00
+-1.1165943210000000E+00
+-1.1320681130000001E+00
+-1.1474708970000000E+00
+-1.1628028710000000E+00
+-1.1780642440000000E+00
+-1.1932552329999999E+00
+-1.2083760649999999E+00
+-1.2234269739999999E+00
+-1.2384082009999999E+00
+-1.2533199970000000E+00
+-1.2681626150000000E+00
+-1.2829363170000001E+00
+-1.2976413720000000E+00
+-1.3122780510000001E+00
+-1.3268466230000000E+00
+-1.3413473300000001E+00
+-1.3557803710000000E+00
+-1.3701459140000001E+00
+-1.3844440910000000E+00
+-1.3986750180000000E+00
+-1.4128387830000000E+00
+-1.4269354599999999E+00
+-1.4409651070000000E+00
+-1.4549277709999999E+00
+-1.4688234890000000E+00
+-1.4826522929999999E+00
+-1.4964142090000001E+00
+-1.5101092580000000E+00
+-1.5237374640000001E+00
+-1.5372988460000001E+00
+-1.5507934280000000E+00
+-1.5642212350000000E+00
+-1.5775822930000001E+00
+-1.5908766360000000E+00
+-1.6041043010000000E+00
+-1.6172653290000001E+00
+-1.6303597679999999E+00
+-1.6433876740000000E+00
+-1.6563491070000000E+00
+-1.6692441370000000E+00
+-1.6820728410000001E+00
+-1.6948353009999999E+00
+-1.7075316100000000E+00
+-1.7201618670000001E+00
+-1.7327261800000000E+00
+-1.7452246659999999E+00
+-1.7576574469999999E+00
+-1.7700246570000000E+00
+-1.7823264360000000E+00
+-1.7945629320000001E+00
+-1.8067343020000000E+00
+-1.8188407110000000E+00
+-1.8308823310000000E+00
+-1.8428593400000000E+00
+-1.8547719279999999E+00
+-1.8666202890000001E+00
+-1.8784046260000000E+00
+-1.8901251480000001E+00
+-1.9017820710000000E+00
+-1.9133756200000001E+00
+-1.9249060240000000E+00
+-1.9363735179999999E+00
+-1.9477783479999999E+00
+-1.9591207589999999E+00
+-1.9704010100000000E+00
+-1.9816193580000001E+00
+-1.9927760720000001E+00
+-2.0038714230000001E+00
+-2.0149056879999998E+00
+-2.0258791480000000E+00
+-2.0367920900000001E+00
+-2.0476448060000001E+00
+-2.0584375929999998E+00
+-2.0691707490000000E+00
+-2.0798445810000001E+00
+-2.0904593960000000E+00
+-2.1010155089999998E+00
+-2.1115132330000002E+00
+-2.1219528880000000E+00
+-2.1323347990000001E+00
+-2.1426592900000001E+00
+-2.1529266909999998E+00
+-2.1631373350000000E+00
+-2.1732915560000001E+00
+-2.1833896920000000E+00
+-2.1934320820000002E+00
+-2.2034190680000001E+00
+-2.2133509960000000E+00
+-2.2232282099999998E+00
+-2.2330510609999998E+00
+-2.2428198970000000E+00
+-2.2525350720000001E+00
+-2.2621969370000001E+00
+-2.2718058490000002E+00
+-2.2813621629999998E+00
+-2.2908662350000002E+00
+-2.3003184260000000E+00
+-2.3097190940000001E+00
+-2.3190685990000000E+00
+-2.3283673029999998E+00
+-2.3376155679999999E+00
+-2.3468137560000000E+00
+-2.3559622290000002E+00
+-2.3650613510000000E+00
+-2.3741114859999999E+00
+-2.3831129970000000E+00
+-2.3920662490000000E+00
+-2.4009716060000001E+00
+-2.4098294320000000E+00
+-2.4186400920000000E+00
+-2.4274039470000002E+00
+-2.4361213639999999E+00
+-2.4447927049999998E+00
+-2.4534183340000002E+00
+-2.4619986130000000E+00
+-2.4705339039999998E+00
+-2.4790245700000000E+00
+-2.4874709710000000E+00
+-2.4958734690000002E+00
+-2.5042324219999998E+00
+-2.5125481900000000E+00
+-2.5208211309999999E+00
+-2.5290516030000001E+00
+-2.5372399630000002E+00
+-2.5453865659999999E+00
+-2.5534917660000001E+00
+-2.5615559189999999E+00
+-2.5695793750000000E+00
+-2.5775624869999998E+00
+-2.5855056059999999E+00
+-2.5934090790000002E+00
+-2.6012732559999998E+00
+-2.6090984829999999E+00
+-2.6168851059999998E+00
+-2.6246334689999999E+00
+-2.6323439160000000E+00
+-2.6400167870000000E+00
+-2.6476524220000002E+00
+-2.6552511609999998E+00
+-2.6628133410000001E+00
+-2.6703392969999999E+00
+-2.6778293650000000E+00
+-2.6852838769999998E+00
+-2.6927031650000002E+00
+-2.7000875579999999E+00
+-2.7074373839999999E+00
+-2.7147529709999998E+00
+-2.7220346430000002E+00
+-2.7292827250000000E+00
+-2.7364975370000000E+00
+-2.7436794010000001E+00
+-2.7508286360000000E+00
+-2.7579455560000001E+00
+-2.7650304790000000E+00
+-2.7720837180000002E+00
+-2.7791055839999999E+00
+-2.7860963879999998E+00
+-2.7930564379999998E+00
+-2.7999860409999999E+00
+-2.8068855030000002E+00
+-2.8137551269999999E+00
+-2.8205952120000002E+00
+-2.8274060610000000E+00
+-2.8341879699999999E+00
+-2.8409412359999999E+00
+-2.8476661530000000E+00
+-2.8543630140000000E+00
+-2.8610321110000001E+00
+-2.8676737330000002E+00
+-2.8742881649999998E+00
+-2.8808756949999998E+00
+-2.8874366060000001E+00
+-2.8939711789999998E+00
+-2.9004796960000001E+00
+-2.9069624340000000E+00
+-2.9134196710000002E+00
+-2.9198516809999999E+00
+-2.9262587390000001E+00
+-2.9326411120000002E+00
+-2.9389990730000002E+00
+-2.9453328889999999E+00
+-2.9516428250000000E+00
+-2.9579291470000002E+00
+-2.9641921160000000E+00
+-2.9704319920000000E+00
+-2.9766490360000000E+00
+-2.9828435029999998E+00
+-2.9890156490000002E+00
+-2.9951657279999999E+00
+-3.0012939909999998E+00
+-3.0074006889999998E+00
+-3.0134860689999998E+00
+-3.0195503779999999E+00
+-3.0255938630000001E+00
+-3.0316167630000002E+00
+-3.0376193229999999E+00
+-3.0436017799999999E+00
+-3.0495643729999999E+00
+-3.0555073380000000E+00
+-3.0614309110000000E+00
+-3.0673353219999999E+00
+-3.0732208040000000E+00
+-3.0790875870000001E+00
+-3.0849358969999998E+00
+-3.0907659600000001E+00
+-3.0965780020000002E+00
+-3.1023722440000001E+00
+-3.1081489080000000E+00
+-3.1139082149999999E+00
+-3.1196503799999999E+00
+-3.1253756209999999E+00
+-3.1310841510000000E+00
+-3.1367761850000000E+00
+-3.1424519320000002E+00
+-3.1481116039999999E+00
+-3.1537554079999999E+00
+-3.1593835499999998E+00
+-3.1649962359999999E+00
+-3.1705936700000001E+00
+-3.1761760529999998E+00
+-3.1817435850000000E+00
+-3.1872964650000002E+00
+-3.1928348910000000E+00
+-3.1983590569999998E+00
+-3.2038691579999998E+00
+-3.2093653880000002E+00
+-3.2148479360000000E+00
+-3.2203169960000002E+00
+-3.2257727530000002E+00
+-3.2312153740000000E+00
+-3.2366450169999998E+00
+-3.2420618420000000E+00
+-3.2474659899999998E+00
+-3.2528575829999999E+00
+-3.2582367400000001E+00
+-3.2636035780000001E+00
+-3.2689581909999998E+00
+-3.2743006669999999E+00
+-3.2796310960000001E+00
+-3.2849495510000000E+00
+-3.2902560950000002E+00
+-3.2955507869999998E+00
+-3.3008336859999998E+00
+-3.3061048309999999E+00
+-3.3113642610000000E+00
+-3.3166120100000001E+00
+-3.3218481049999999E+00
+-3.3270725649999999E+00
+-3.3322854030000002E+00
+-3.3374866349999999E+00
+-3.3426762630000000E+00
+-3.3478542860000000E+00
+-3.3530207019999998E+00
+-3.3581755040000001E+00
+-3.3633186780000002E+00
+-3.3684502059999999E+00
+-3.3735700729999998E+00
+-3.3786782550000001E+00
+-3.3837747249999999E+00
+-3.3888594529999998E+00
+-3.3939324110000002E+00
+-3.3989935640000000E+00
+-3.4040428729999999E+00
+-3.4090802999999998E+00
+-3.4141058059999998E+00
+-3.4191193470000001E+00
+-3.4241208780000001E+00
+-3.4291103530000000E+00
+-3.4340877249999999E+00
+-3.4390529459999999E+00
+-3.4440059640000000E+00
+-3.4489467280000001E+00
+-3.4538751870000000E+00
+-3.4587912869999999E+00
+-3.4636949750000001E+00
+-3.4685861970000000E+00
+-3.4734648990000001E+00
+-3.4783310250000001E+00
+-3.4831845200000000E+00
+-3.4880253280000000E+00
+-3.4928533939999999E+00
+-3.4976686629999998E+00
+-3.5024710790000002E+00
+-3.5072605879999998E+00
+-3.5120371339999998E+00
+-3.5168006639999998E+00
+-3.5215511230000001E+00
+-3.5262884570000002E+00
+-3.5310126140000002E+00
+-3.5357235409999999E+00
+-3.5404211870000002E+00
+-3.5451055010000001E+00
+-3.5497764340000000E+00
+-3.5544339360000001E+00
+-3.5590779600000002E+00
+-3.5637084570000002E+00
+-3.5683253819999998E+00
+-3.5729286910000000E+00
+-3.5775183390000000E+00
+-3.5820942840000001E+00
+-3.5866564849999998E+00
+-3.5912049019999999E+00
+-3.5957394950000001E+00
+-3.6002602270000001E+00
+-3.6047670620000001E+00
+-3.6092599669999998E+00
+-3.6137389049999999E+00
+-3.6182038470000002E+00
+-3.6226547629999999E+00
+-3.6270916230000001E+00
+-3.6315143989999998E+00
+-3.6359230660000001E+00
+-3.6403176010000000E+00
+-3.6446979800000001E+00
+-3.6490641820000000E+00
+-3.6534161869999999E+00
+-3.6577539790000002E+00
+-3.6620775409999999E+00
+-3.6663868570000000E+00
+-3.6706819159999999E+00
+-3.6749627060000001E+00
+-3.6792292180000001E+00
+-3.6834814429999998E+00
+-3.6877193739999998E+00
+-3.6919430100000001E+00
+-3.6961523449999998E+00
+-3.7003473790000001E+00
+-3.7045281110000001E+00
+-3.7086945450000002E+00
+-3.7128466850000001E+00
+-3.7169845349999999E+00
+-3.7211081010000000E+00
+-3.7252173940000000E+00
+-3.7293124240000002E+00
+-3.7333932040000000E+00
+-3.7374597450000002E+00
+-3.7415120650000002E+00
+-3.7455501800000000E+00
+-3.7495741090000001E+00
+-3.7535838710000000E+00
+-3.7575794870000001E+00
+-3.7615609839999999E+00
+-3.7655283850000001E+00
+-3.7694817150000000E+00
+-3.7734210039999998E+00
+-3.7773462800000002E+00
+-3.7812575759999998E+00
+-3.7851549229999999E+00
+-3.7890383540000001E+00
+-3.7929079070000000E+00
+-3.7967636180000000E+00
+-3.8006055249999999E+00
+-3.8044336670000001E+00
+-3.8082480869999999E+00
+-3.8120488269999999E+00
+-3.8158359300000000E+00
+-3.8196094420000000E+00
+-3.8233694080000000E+00
+-3.8271158779999999E+00
+-3.8308489020000001E+00
+-3.8345685280000001E+00
+-3.8382748080000000E+00
+-3.8419677950000000E+00
+-3.8456475440000002E+00
+-3.8493141099999999E+00
+-3.8529675490000002E+00
+-3.8566079169999998E+00
+-3.8602352760000000E+00
+-3.8638496839999998E+00
+-3.8674512029999999E+00
+-3.8710398939999999E+00
+-3.8746158190000002E+00
+-3.8781790429999998E+00
+-3.8817296319999999E+00
+-3.8852676499999999E+00
+-3.8887931640000000E+00
+-3.8923062430000002E+00
+-3.8958069570000000E+00
+-3.8992953739999998E+00
+-3.9027715619999999E+00
+-3.9062355960000001E+00
+-3.9096875459999998E+00
+-3.9131274870000001E+00
+-3.9165554899999999E+00
+-3.9199716310000001E+00
+-3.9233759849999998E+00
+-3.9267686290000001E+00
+-3.9301496380000001E+00
+-3.9335190889999998E+00
+-3.9368770590000000E+00
+-3.9402236290000001E+00
+-3.9435588770000001E+00
+-3.9468828829999998E+00
+-3.9501957260000000E+00
+-3.9534974880000000E+00
+-3.9567882499999998E+00
+-3.9600680929999998E+00
+-3.9633370999999999E+00
+-3.9665953520000001E+00
+-3.9698429339999999E+00
+-3.9730799299999999E+00
+-3.9763064220000000E+00
+-3.9795224949999999E+00
+-3.9827282340000001E+00
+-3.9859237230000000E+00
+-3.9891090480000000E+00
+-3.9922842940000001E+00
+-3.9954495470000002E+00
+-3.9986048940000001E+00
+-4.0017504190000004E+00
+-4.0048862109999996E+00
+-4.0080123550000000E+00
+-4.0111289399999999E+00
+-4.0142360500000001E+00
+-4.0173337739999999E+00
+-4.0204221990000004E+00
+-4.0235014119999999E+00
+-4.0265715000000002E+00
+-4.0296325519999998E+00
+-4.0326846549999997E+00
+-4.0357278970000001E+00
+-4.0387623640000001E+00
+-4.0417881449999999E+00
+-4.0448053269999997E+00
+-4.0478139979999996E+00
+-4.0508142459999998E+00
+-4.0538061570000004E+00
+-4.0567898199999997E+00
+-4.0597653229999997E+00
+-4.0627327500000003E+00
+-4.0656921890000000E+00
+-4.0686437289999997E+00
+-4.0715874550000004E+00
+-4.0745234549999996E+00
+-4.0774518129999997E+00
+-4.0803726180000002E+00
+-4.0832859539999999E+00
+-4.0861919080000000E+00
+-4.0890905650000002E+00
+-4.0919820109999998E+00
+-4.0948663290000002E+00
+-4.0977436049999998E+00
+-4.1006139240000001E+00
+-4.1034773700000002E+00
+-4.1063340269999999E+00
+-4.1091839779999999E+00
+-4.1120273049999998E+00
+-4.1148640929999996E+00
+-4.1176944239999997E+00
+-4.1205183800000000E+00
+-4.1233360420000000E+00
+-4.1261474910000002E+00
+-4.1289528090000003E+00
+-4.1317520769999998E+00
+-4.1345453740000000E+00
+-4.1373327800000004E+00
+-4.1401143740000004E+00
+-4.1428902369999996E+00
+-4.1456604459999999E+00
+-4.1484250800000000E+00
+-4.1511842120000004E+00
+-4.1539379170000004E+00
+-4.1566862709999999E+00
+-4.1594293459999996E+00
+-4.1621672140000001E+00
+-4.1648999399999997E+00
+-4.1676275870000001E+00
+-4.1703502200000004E+00
+-4.1730679019999997E+00
+-4.1757806970000004E+00
+-4.1784886620000004E+00
+-4.1811918500000003E+00
+-4.1838903170000004E+00
+-4.1865841179999999E+00
+-4.1892733079999998E+00
+-4.1919579369999997E+00
+-4.1946380530000003E+00
+-4.1973137019999998E+00
+-4.1999849310000004E+00
+-4.2026517869999998E+00
+-4.2053143149999999E+00
+-4.2079725549999996E+00
+-4.2106265479999996E+00
+-4.2132763320000004E+00
+-4.2159219470000000E+00
+-4.2185634329999999E+00
+-4.2212008240000003E+00
+-4.2238341569999998E+00
+-4.2264634609999998E+00
+-4.2290887689999996E+00
+-4.2317101160000004E+00
+-4.2343275330000001E+00
+-4.2369410490000003E+00
+-4.2395506909999998E+00
+-4.2421564849999998E+00
+-4.2447584599999999E+00
+-4.2473566409999997E+00
+-4.2499510530000002E+00
+-4.2525417210000001E+00
+-4.2551286639999999E+00
+-4.2577119059999999E+00
+-4.2602914670000001E+00
+-4.2628673690000003E+00
+-4.2654396329999997E+00
+-4.2680082749999997E+00
+-4.2705733129999999E+00
+-4.2731347619999998E+00
+-4.2756926410000000E+00
+-4.2782469670000003E+00
+-4.2807977529999999E+00
+-4.2833450140000000E+00
+-4.2858887609999998E+00
+-4.2884290099999998E+00
+-4.2909657699999997E+00
+-4.2934990559999999E+00
+-4.2960288770000004E+00
+-4.2985552440000001E+00
+-4.3010781659999999E+00
+-4.3035976509999996E+00
+-4.3061137079999998E+00
+-4.3086263479999998E+00
+-4.3111355769999999E+00
+-4.3136413999999998E+00
+-4.3161438240000001E+00
+-4.3186428540000001E+00
+-4.3211384969999997E+00
+-4.3236307580000002E+00
+-4.3261196410000000E+00
+-4.3286051490000004E+00
+-4.3310872859999998E+00
+-4.3335660530000002E+00
+-4.3360414550000002E+00
+-4.3385134929999998E+00
+-4.3409821700000002E+00
+-4.3434474859999996E+00
+-4.3459094409999999E+00
+-4.3483680350000000E+00
+-4.3508232710000003E+00
+-4.3532751459999997E+00
+-4.3557236599999998E+00
+-4.3581688119999997E+00
+-4.3606106000000002E+00
+-4.3630490220000002E+00
+-4.3654840750000004E+00
+-4.3679157589999997E+00
+-4.3703440689999997E+00
+-4.3727690050000003E+00
+-4.3751905579999999E+00
+-4.3776087280000002E+00
+-4.3800235079999998E+00
+-4.3824348960000004E+00
+-4.3848428879999997E+00
+-4.3872474769999998E+00
+-4.3896486570000004E+00
+-4.3920464250000002E+00
+-4.3944407720000003E+00
+-4.3968316930000002E+00
+-4.3992191820000004E+00
+-4.4016032330000003E+00
+-4.4039838370000002E+00
+-4.4063609890000004E+00
+-4.4087346790000002E+00
+-4.4111048999999998E+00
+-4.4134716469999997E+00
+-4.4158349090000000E+00
+-4.4181946779999999E+00
+-4.4205509440000004E+00
+-4.4229037000000000E+00
+-4.4252529369999998E+00
+-4.4275986439999997E+00
+-4.4299408140000001E+00
+-4.4322794360000000E+00
+-4.4346145000000003E+00
+-4.4369459950000003E+00
+-4.4392739109999999E+00
+-4.4415982380000001E+00
+-4.4439189649999999E+00
+-4.4462360820000004E+00
+-4.4485495779999997E+00
+-4.4508594410000004E+00
+-4.4531656589999997E+00
+-4.4554682200000002E+00
+-4.4577671140000001E+00
+-4.4600623280000002E+00
+-4.4623538500000004E+00
+-4.4646416689999997E+00
+-4.4669257699999996E+00
+-4.4692061409999999E+00
+-4.4714827719999999E+00
+-4.4737556459999999E+00
+-4.4760247529999999E+00
+-4.4782900789999998E+00
+-4.4805516100000000E+00
+-4.4828093320000004E+00
+-4.4850632319999999E+00
+-4.4873132970000000E+00
+-4.4895595119999996E+00
+-4.4918018640000001E+00
+-4.4940403370000004E+00
+-4.4962749180000001E+00
+-4.4985055919999999E+00
+-4.5007323440000002E+00
+-4.5029551600000000E+00
+-4.5051740249999996E+00
+-4.5073889249999999E+00
+-4.5095998420000001E+00
+-4.5118067630000001E+00
+-4.5140096710000002E+00
+-4.5162085520000002E+00
+-4.5184033899999996E+00
+-4.5205941689999998E+00
+-4.5227808740000004E+00
+-4.5249634880000000E+00
+-4.5271419950000000E+00
+-4.5293163789999999E+00
+-4.5314866230000002E+00
+-4.5336527120000003E+00
+-4.5358146279999998E+00
+-4.5379723560000000E+00
+-4.5401258779999996E+00
+-4.5422751769999996E+00
+-4.5444202379999998E+00
+-4.5465610410000004E+00
+-4.5486975699999999E+00
+-4.5508298089999997E+00
+-4.5529577400000001E+00
+-4.5550813449999996E+00
+-4.5572006070000004E+00
+-4.5593155070000000E+00
+-4.5614260289999997E+00
+-4.5635321549999999E+00
+-4.5656338659999998E+00
+-4.5677311449999998E+00
+-4.5698239730000001E+00
+-4.5719123330000002E+00
+-4.5739962050000003E+00
+-4.5760755719999997E+00
+-4.5781504149999996E+00
+-4.5802207170000004E+00
+-4.5822864560000003E+00
+-4.5843476169999997E+00
+-4.5864041780000004E+00
+-4.5884561220000002E+00
+-4.5905034290000000E+00
+-4.5925460810000001E+00
+-4.5945840579999997E+00
+-4.5966173430000001E+00
+-4.5986459139999996E+00
+-4.6006697519999999E+00
+-4.6026888379999997E+00
+-4.6047031519999999E+00
+-4.6067126759999999E+00
+-4.6087173879999996E+00
+-4.6107172700000003E+00
+-4.6127123020000003E+00
+-4.6147024649999997E+00
+-4.6166877360000003E+00
+-4.6186680969999996E+00
+-4.6206435280000004E+00
+-4.6226140080000002E+00
+-4.6245795169999999E+00
+-4.6265400349999997E+00
+-4.6284955410000004E+00
+-4.6304460159999996E+00
+-4.6323914380000000E+00
+-4.6343317859999997E+00
+-4.6362670410000000E+00
+-4.6381971799999997E+00
+-4.6401221850000001E+00
+-4.6420420330000001E+00
+-4.6439567039999998E+00
+-4.6458661770000003E+00
+-4.6477704309999996E+00
+-4.6496694429999996E+00
+-4.6515631940000004E+00
+-4.6534516620000002E+00
+-4.6553348259999998E+00
+-4.6572126650000003E+00
+-4.6590851559999997E+00
+-4.6609522790000000E+00
+-4.6628140130000002E+00
+-4.6646703340000002E+00
+-4.6665212220000001E+00
+-4.6683666549999998E+00
+-4.6702066110000002E+00
+-4.6720410689999996E+00
+-4.6738700059999996E+00
+-4.6756934010000002E+00
+-4.6775112319999996E+00
+-4.6793234750000003E+00
+-4.6811301099999998E+00
+-4.6829311130000004E+00
+-4.6847264629999996E+00
+-4.6865161380000000E+00
+-4.6883001149999997E+00
+-4.6900783730000004E+00
+-4.6918508880000003E+00
+-4.6936176400000003E+00
+-4.6953786040000001E+00
+-4.6971337589999997E+00
+-4.6988830830000001E+00
+-4.7006265520000001E+00
+-4.7023641429999996E+00
+-4.7040958320000001E+00
+-4.7058215949999997E+00
+-4.7075414100000001E+00
+-4.7092552510000001E+00
+-4.7109630950000003E+00
+-4.7126649179999998E+00
+-4.7143606919999996E+00
+-4.7160503870000001E+00
+-4.7177339720000004E+00
+-4.7194114159999998E+00
+-4.7210826890000002E+00
+-4.7227477609999999E+00
+-4.7244066000000000E+00
+-4.7260591749999996E+00
+-4.7277054539999996E+00
+-4.7293453999999997E+00
+-4.7309789770000004E+00
+-4.7326061490000004E+00
+-4.7342268790000004E+00
+-4.7358411320000000E+00
+-4.7374488689999996E+00
+-4.7390500570000000E+00
+-4.7406446559999997E+00
+-4.7422326269999999E+00
+-4.7438139289999999E+00
+-4.7453885209999997E+00
+-4.7469563639999999E+00
+-4.7485174160000003E+00
+-4.7500716350000003E+00
+-4.7516189820000001E+00
+-4.7531594159999999E+00
+-4.7546928939999997E+00
+-4.7562193710000003E+00
+-4.7577388049999998E+00
+-4.7592511499999999E+00
+-4.7607563629999996E+00
+-4.7622544019999999E+00
+-4.7637452199999997E+00
+-4.7652287729999996E+00
+-4.7667050189999998E+00
+-4.7681739099999998E+00
+-4.7696354000000003E+00
+-4.7710894430000002E+00
+-4.7725359930000000E+00
+-4.7739750040000004E+00
+-4.7754064290000002E+00
+-4.7768302220000001E+00
+-4.7782463369999997E+00
+-4.7796547269999996E+00
+-4.7810553450000004E+00
+-4.7824481419999998E+00
+-4.7838330700000000E+00
+-4.7852100850000001E+00
+-4.7865791350000002E+00
+-4.7879401740000000E+00
+-4.7892931550000002E+00
+-4.7906380300000002E+00
+-4.7919747509999997E+00
+-4.7933032689999999E+00
+-4.7946235369999997E+00
+-4.7959355050000001E+00
+-4.7972391270000001E+00
+-4.7985343530000000E+00
+-4.7998211350000002E+00
+-4.8010994250000003E+00
+-4.8023691749999999E+00
+-4.8036303360000003E+00
+-4.8048828610000003E+00
+-4.8061267000000001E+00
+-4.8073618079999996E+00
+-4.8085881319999997E+00
+-4.8098056280000003E+00
+-4.8110142450000000E+00
+-4.8122139360000000E+00
+-4.8134046520000000E+00
+-4.8145863469999997E+00
+-4.8157589710000002E+00
+-4.8169224789999996E+00
+-4.8180768220000001E+00
+-4.8192219510000003E+00
+-4.8203578199999999E+00
+-4.8214843810000003E+00
+-4.8226015870000003E+00
+-4.8237093880000002E+00
+-4.8248077399999998E+00
+-4.8258965949999997E+00
+-4.8269759079999996E+00
+-4.8280456300000001E+00
+-4.8291057159999999E+00
+-4.8301561179999997E+00
+-4.8311967899999999E+00
+-4.8322276869999996E+00
+-4.8332487600000000E+00
+-4.8342599640000001E+00
+-4.8352612570000000E+00
+-4.8362525889999999E+00
+-4.8372339169999998E+00
+-4.8382051959999997E+00
+-4.8391663810000001E+00
+-4.8401174259999999E+00
+-4.8410582870000001E+00
+-4.8419889170000001E+00
+-4.8429092740000002E+00
+-4.8438193140000001E+00
+-4.8447189919999998E+00
+-4.8456082660000002E+00
+-4.8464870910000002E+00
+-4.8473554260000000E+00
+-4.8482132260000004E+00
+-4.8490604480000004E+00
+-4.8498970490000000E+00
+-4.8507229870000002E+00
+-4.8515382169999999E+00
+-4.8523427000000003E+00
+-4.8531363939999999E+00
+-4.8539192580000003E+00
+-4.8546912510000002E+00
+-4.8554523300000003E+00
+-4.8562024560000001E+00
+-4.8569415850000004E+00
+-4.8576696789999998E+00
+-4.8583866950000001E+00
+-4.8590925939999998E+00
+-4.8597873380000003E+00
+-4.8604708870000000E+00
+-4.8611432030000001E+00
+-4.8618042450000001E+00
+-4.8624539760000003E+00
+-4.8630923560000001E+00
+-4.8637193449999998E+00
+-4.8643349049999998E+00
+-4.8649389989999996E+00
+-4.8655315889999997E+00
+-4.8661126389999998E+00
+-4.8666821120000003E+00
+-4.8672399710000001E+00
+-4.8677861809999996E+00
+-4.8683207040000003E+00
+-4.8688435019999998E+00
+-4.8693545399999998E+00
+-4.8698537809999998E+00
+-4.8703411909999996E+00
+-4.8708167350000000E+00
+-4.8712803779999998E+00
+-4.8717320879999999E+00
+-4.8721718300000001E+00
+-4.8725995680000000E+00
+-4.8730152699999998E+00
+-4.8734188999999999E+00
+-4.8738104250000003E+00
+-4.8741898099999998E+00
+-4.8745570249999997E+00
+-4.8749120359999996E+00
+-4.8752548139999998E+00
+-4.8755853240000002E+00
+-4.8759035360000000E+00
+-4.8762094190000003E+00
+-4.8765029400000000E+00
+-4.8767840690000002E+00
+-4.8770527719999999E+00
+-4.8773090200000002E+00
+-4.8775527820000004E+00
+-4.8777840310000000E+00
+-4.8780027339999998E+00
+-4.8782088650000004E+00
+-4.8784023940000001E+00
+-4.8785832920000001E+00
+-4.8787515289999996E+00
+-4.8789070780000001E+00
+-4.8790499079999998E+00
+-4.8791799930000002E+00
+-4.8792973010000003E+00
+-4.8794018090000000E+00
+-4.8794934879999996E+00
+-4.8795723139999998E+00
+-4.8796382590000000E+00
+-4.8796912980000000E+00
+-4.8797314020000000E+00
+-4.8797585479999999E+00
+-4.8797727059999998E+00
+-4.8797738519999996E+00
+-4.8797619579999996E+00
+-4.8797370019999997E+00
+-4.8796989599999998E+00
+-4.8796478069999996E+00
+-4.8795835199999997E+00
+-4.8795060750000001E+00
+-4.8794154479999996E+00
+-4.8793116149999998E+00
+-4.8791945510000003E+00
+-4.8790642330000003E+00
+-4.8789206380000003E+00
+-4.8787637430000004E+00
+-4.8785935269999996E+00
+-4.8784099679999997E+00
+-4.8782130459999999E+00
+-4.8780027380000002E+00
+-4.8777790220000004E+00
+-4.8775418789999998E+00
+-4.8772912860000002E+00
+-4.8770272219999997E+00
+-4.8767496650000002E+00
+-4.8764585960000000E+00
+-4.8761539930000000E+00
+-4.8758358399999997E+00
+-4.8755041160000001E+00
+-4.8751588019999996E+00
+-4.8747998790000002E+00
+-4.8744273299999996E+00
+-4.8740411339999996E+00
+-4.8736412720000004E+00
+-4.8732277269999997E+00
+-4.8728004790000004E+00
+-4.8723595089999998E+00
+-4.8719048000000003E+00
+-4.8714363369999996E+00
+-4.8709541019999998E+00
+-4.8704580799999997E+00
+-4.8699482520000004E+00
+-4.8694246039999998E+00
+-4.8688871190000000E+00
+-4.8683357779999996E+00
+-4.8677705659999999E+00
+-4.8671914669999996E+00
+-4.8665984640000000E+00
+-4.8659915439999999E+00
+-4.8653706899999998E+00
+-4.8647358909999996E+00
+-4.8640871299999997E+00
+-4.8634243950000000E+00
+-4.8627476690000000E+00
+-4.8620569390000004E+00
+-4.8613521899999999E+00
+-4.8606334090000001E+00
+-4.8599005799999997E+00
+-4.8591536910000004E+00
+-4.8583927280000001E+00
+-4.8576176799999997E+00
+-4.8568285339999999E+00
+-4.8560252769999996E+00
+-4.8552078979999997E+00
+-4.8543763850000001E+00
+-4.8535307249999997E+00
+-4.8526709060000002E+00
+-4.8517969159999996E+00
+-4.8509087429999997E+00
+-4.8500063740000003E+00
+-4.8490897989999997E+00
+-4.8481590079999997E+00
+-4.8472139900000002E+00
+-4.8462547349999996E+00
+-4.8452812339999998E+00
+-4.8442934749999997E+00
+-4.8432914489999996E+00
+-4.8422751460000004E+00
+-4.8412445550000003E+00
+-4.8401996650000001E+00
+-4.8391404680000001E+00
+-4.8380669520000001E+00
+-4.8369791109999998E+00
+-4.8358769360000000E+00
+-4.8347604180000001E+00
+-4.8336295509999996E+00
+-4.8324843230000001E+00
+-4.8313247290000003E+00
+-4.8301507580000003E+00
+-4.8289624050000004E+00
+-4.8277596589999998E+00
+-4.8265425119999996E+00
+-4.8253109580000002E+00
+-4.8240649869999999E+00
+-4.8228045950000000E+00
+-4.8215297709999998E+00
+-4.8202405089999996E+00
+-4.8189368029999997E+00
+-4.8176186449999996E+00
+-4.8162860280000004E+00
+-4.8149389439999997E+00
+-4.8135773869999996E+00
+-4.8122013509999997E+00
+-4.8108108249999999E+00
+-4.8094058049999999E+00
+-4.8079862830000000E+00
+-4.8065522539999996E+00
+-4.8051037100000000E+00
+-4.8036406439999997E+00
+-4.8021630520000000E+00
+-4.8006709259999996E+00
+-4.7991642590000003E+00
+-4.7976430450000001E+00
+-4.7961072780000000E+00
+-4.7945569509999997E+00
+-4.7929920570000002E+00
+-4.7914125910000003E+00
+-4.7898185460000002E+00
+-4.7882099179999997E+00
+-4.7865867000000000E+00
+-4.7849488869999997E+00
+-4.7832964720000000E+00
+-4.7816294519999998E+00
+-4.7799478190000002E+00
+-4.7782515679999999E+00
+-4.7765406949999996E+00
+-4.7748151920000002E+00
+-4.7730750559999997E+00
+-4.7713202800000003E+00
+-4.7695508579999997E+00
+-4.7677667870000002E+00
+-4.7659680619999998E+00
+-4.7641546779999997E+00
+-4.7623266309999996E+00
+-4.7604839160000001E+00
+-4.7586265269999997E+00
+-4.7567544630000000E+00
+-4.7548677149999996E+00
+-4.7529662799999999E+00
+-4.7510501539999996E+00
+-4.7491193320000002E+00
+-4.7471738099999996E+00
+-4.7452135830000000E+00
+-4.7432386500000003E+00
+-4.7412490050000002E+00
+-4.7392446450000003E+00
+-4.7372255660000002E+00
+-4.7351917649999997E+00
+-4.7331432380000003E+00
+-4.7310799809999997E+00
+-4.7290019900000004E+00
+-4.7269092629999996E+00
+-4.7248017950000003E+00
+-4.7226795819999996E+00
+-4.7205426220000000E+00
+-4.7183909130000004E+00
+-4.7162244500000003E+00
+-4.7140432329999999E+00
+-4.7118472579999997E+00
+-4.7096365220000003E+00
+-4.7074110219999996E+00
+-4.7051707580000004E+00
+-4.7029157240000004E+00
+-4.7006459180000002E+00
+-4.6983613379999998E+00
+-4.6960619819999998E+00
+-4.6937478459999999E+00
+-4.6914189300000002E+00
+-4.6890752310000003E+00
+-4.6867167490000003E+00
+-4.6843434799999999E+00
+-4.6819554229999998E+00
+-4.6795525769999999E+00
+-4.6771349400000002E+00
+-4.6747025100000004E+00
+-4.6722552860000004E+00
+-4.6697932650000000E+00
+-4.6673164470000001E+00
+-4.6648248299999997E+00
+-4.6623184110000002E+00
+-4.6597971910000000E+00
+-4.6572611679999998E+00
+-4.6547103429999996E+00
+-4.6521447130000002E+00
+-4.6495642799999999E+00
+-4.6469690410000002E+00
+-4.6443589970000003E+00
+-4.6417341460000001E+00
+-4.6390944870000004E+00
+-4.6364400200000002E+00
+-4.6337707440000004E+00
+-4.6310866590000002E+00
+-4.6283877630000001E+00
+-4.6256740580000004E+00
+-4.6229455450000003E+00
+-4.6202022219999996E+00
+-4.6174440890000001E+00
+-4.6146711470000001E+00
+-4.6118833969999997E+00
+-4.6090808389999998E+00
+-4.6062634720000002E+00
+-4.6034312970000002E+00
+-4.6005843149999999E+00
+-4.5977225250000000E+00
+-4.5948459279999998E+00
+-4.5919545230000001E+00
+-4.5890483130000002E+00
+-4.5861272980000001E+00
+-4.5831914789999999E+00
+-4.5802408579999998E+00
+-4.5772754349999998E+00
+-4.5742952130000001E+00
+-4.5713001909999997E+00
+-4.5682903699999997E+00
+-4.5652657530000003E+00
+-4.5622263390000004E+00
+-4.5591721310000004E+00
+-4.5561031290000003E+00
+-4.5530193340000000E+00
+-4.5499207500000001E+00
+-4.5468073760000003E+00
+-4.5436792150000000E+00
+-4.5405362680000003E+00
+-4.5373785389999997E+00
+-4.5342060289999999E+00
+-4.5310187400000004E+00
+-4.5278166730000002E+00
+-4.5245998309999997E+00
+-4.5213682170000000E+00
+-4.5181218310000002E+00
+-4.5148606750000004E+00
+-4.5115847520000001E+00
+-4.5082940630000001E+00
+-4.5049886120000000E+00
+-4.5016684009999999E+00
+-4.4983334330000000E+00
+-4.4949837109999997E+00
+-4.4916192370000001E+00
+-4.4882400139999996E+00
+-4.4848460450000003E+00
+-4.4814373319999996E+00
+-4.4780138789999997E+00
+-4.4745756879999998E+00
+-4.4711227610000002E+00
+-4.4676551020000002E+00
+-4.4641727140000000E+00
+-4.4606755979999999E+00
+-4.4571637590000002E+00
+-4.4536372010000003E+00
+-4.4500959260000004E+00
+-4.4465399379999999E+00
+-4.4429692400000000E+00
+-4.4393838370000003E+00
+-4.4357837309999999E+00
+-4.4321689260000001E+00
+-4.4285394260000004E+00
+-4.4248952330000000E+00
+-4.4212363510000001E+00
+-4.4175627840000002E+00
+-4.4138745359999998E+00
+-4.4101716089999998E+00
+-4.4064540100000000E+00
+-4.4027217390000004E+00
+-4.3989748029999998E+00
+-4.3952132050000001E+00
+-4.3914369500000001E+00
+-4.3876460410000000E+00
+-4.3838404830000002E+00
+-4.3800202800000001E+00
+-4.3761854350000000E+00
+-4.3723359549999996E+00
+-4.3684718409999999E+00
+-4.3645930990000004E+00
+-4.3606997319999996E+00
+-4.3567917439999997E+00
+-4.3528691410000002E+00
+-4.3489319269999998E+00
+-4.3449801069999996E+00
+-4.3410136860000001E+00
+-4.3370326669999999E+00
+-4.3330370560000002E+00
+-4.3290268579999998E+00
+-4.3250020769999997E+00
+-4.3209627169999996E+00
+-4.3169087849999999E+00
+-4.3128402840000000E+00
+-4.3087572190000003E+00
+-4.3046595959999996E+00
+-4.3005474169999998E+00
+-4.2964206889999996E+00
+-4.2922794169999996E+00
+-4.2881236060000001E+00
+-4.2839532609999997E+00
+-4.2797683869999998E+00
+-4.2755689900000000E+00
+-4.2713550759999999E+00
+-4.2671266479999996E+00
+-4.2628837129999999E+00
+-4.2586262750000001E+00
+-4.2543543399999999E+00
+-4.2500679129999996E+00
+-4.2457669989999998E+00
+-4.2414516039999999E+00
+-4.2371217339999996E+00
+-4.2327773920000000E+00
+-4.2284185850000000E+00
+-4.2240453179999999E+00
+-4.2196575980000004E+00
+-4.2152554310000001E+00
+-4.2108388210000003E+00
+-4.2064077739999997E+00
+-4.2019622969999997E+00
+-4.1975023949999999E+00
+-4.1930280729999998E+00
+-4.1885393369999999E+00
+-4.1840361929999998E+00
+-4.1795186470000001E+00
+-4.1749867030000001E+00
+-4.1704403689999996E+00
+-4.1658796489999999E+00
+-4.1613045519999998E+00
+-4.1567150809999998E+00
+-4.1521112430000002E+00
+-4.1474930429999999E+00
+-4.1428604900000003E+00
+-4.1382135870000001E+00
+-4.1335523419999998E+00
+-4.1288767609999999E+00
+-4.1241868490000000E+00
+-4.1194826119999997E+00
+-4.1147640570000004E+00
+-4.1100311899999999E+00
+-4.1052840159999997E+00
+-4.1005225420000002E+00
+-4.0957467750000003E+00
+-4.0909567190000002E+00
+-4.0861523829999999E+00
+-4.0813337719999998E+00
+-4.0765008920000003E+00
+-4.0716537510000004E+00
+-4.0667923540000004E+00
+-4.0619167080000000E+00
+-4.0570268189999998E+00
+-4.0521226940000004E+00
+-4.0472043380000002E+00
+-4.0422717590000001E+00
+-4.0373249629999997E+00
+-4.0323639560000002E+00
+-4.0273887449999997E+00
+-4.0223993350000002E+00
+-4.0173957339999999E+00
+-4.0123779490000002E+00
+-4.0073459849999997E+00
+-4.0022998489999999E+00
+-3.9972395490000001E+00
+-3.9921650899999999E+00
+-3.9870764790000002E+00
+-3.9819737229999999E+00
+-3.9768568279999998E+00
+-3.9717258009999998E+00
+-3.9665806479999999E+00
+-3.9614213770000002E+00
+-3.9562479929999999E+00
+-3.9510605040000000E+00
+-3.9458589150000001E+00
+-3.9406432350000000E+00
+-3.9354134680000001E+00
+-3.9301696239999999E+00
+-3.9249117080000002E+00
+-3.9196397279999999E+00
+-3.9143536900000000E+00
+-3.9090536020000002E+00
+-3.9037394710000002E+00
+-3.8984113020000000E+00
+-3.8930691049999999E+00
+-3.8877128850000000E+00
+-3.8823426489999999E+00
+-3.8769584039999998E+00
+-3.8715601579999999E+00
+-3.8661479170000002E+00
+-3.8607216879999999E+00
+-3.8552814780000002E+00
+-3.8498272920000001E+00
+-3.8443591360000000E+00
+-3.8388770170000002E+00
+-3.8333809400000001E+00
+-3.8278709119999998E+00
+-3.8223469390000000E+00
+-3.8168090270000001E+00
+-3.8112571810000002E+00
+-3.8056914079999999E+00
+-3.8001117139999998E+00
+-3.7945181049999999E+00
+-3.7889105870000002E+00
+-3.7832891659999999E+00
+-3.7776538490000000E+00
+-3.7720046400000000E+00
+-3.7663415439999999E+00
+-3.7606645639999998E+00
+-3.7549737030000001E+00
+-3.7492689650000002E+00
+-3.7435503529999998E+00
+-3.7378178690000001E+00
+-3.7320715180000001E+00
+-3.7263113020000000E+00
+-3.7205372240000001E+00
+-3.7147492889999998E+00
+-3.7089474980000001E+00
+-3.7031318560000002E+00
+-3.6973023660000002E+00
+-3.6914590299999999E+00
+-3.6856018530000001E+00
+-3.6797308360000001E+00
+-3.6738459830000001E+00
+-3.6679472949999998E+00
+-3.6620347729999998E+00
+-3.6561084190000002E+00
+-3.6501682340000001E+00
+-3.6442142190000002E+00
+-3.6382463750000000E+00
+-3.6322647049999999E+00
+-3.6262692090000002E+00
+-3.6202598890000002E+00
+-3.6142367460000000E+00
+-3.6081997810000002E+00
+-3.6021489970000000E+00
+-3.5960843929999999E+00
+-3.5900059729999998E+00
+-3.5839137360000000E+00
+-3.5778076840000002E+00
+-3.5716878180000000E+00
+-3.5655541369999999E+00
+-3.5594066419999999E+00
+-3.5532453330000000E+00
+-3.5470702080000001E+00
+-3.5408812699999999E+00
+-3.5346785180000002E+00
+-3.5284619510000002E+00
+-3.5222315700000002E+00
+-3.5159873749999999E+00
+-3.5097293660000002E+00
+-3.5034575430000001E+00
+-3.4971719050000001E+00
+-3.4908724539999998E+00
+-3.4845591900000001E+00
+-3.4782321110000001E+00
+-3.4718912180000001E+00
+-3.4655365109999998E+00
+-3.4591679879999999E+00
+-3.4527856500000000E+00
+-3.4463894939999999E+00
+-3.4399795210000002E+00
+-3.4335557300000001E+00
+-3.4271181199999998E+00
+-3.4206666900000000E+00
+-3.4142014390000002E+00
+-3.4077223679999999E+00
+-3.4012294740000000E+00
+-3.3947227579999999E+00
+-3.3882022180000000E+00
+-3.3816678539999998E+00
+-3.3751196650000002E+00
+-3.3685576510000002E+00
+-3.3619818100000001E+00
+-3.3553921419999999E+00
+-3.3487886450000000E+00
+-3.3421713190000002E+00
+-3.3355401609999999E+00
+-3.3288951720000002E+00
+-3.3222363499999998E+00
+-3.3155636940000002E+00
+-3.3088772030000002E+00
+-3.3021768759999999E+00
+-3.2954627109999999E+00
+-3.2887347079999998E+00
+-3.2819928649999999E+00
+-3.2752371820000001E+00
+-3.2684676570000000E+00
+-3.2616842890000002E+00
+-3.2548870779999999E+00
+-3.2480760210000001E+00
+-3.2412511180000001E+00
+-3.2344123680000001E+00
+-3.2275597700000001E+00
+-3.2206933219999998E+00
+-3.2138130239999998E+00
+-3.2069188739999999E+00
+-3.2000108720000000E+00
+-3.1930890150000000E+00
+-3.1861533039999999E+00
+-3.1792037369999999E+00
+-3.1722403120000000E+00
+-3.1652630290000001E+00
+-3.1582718870000002E+00
+-3.1512668850000001E+00
+-3.1442480210000001E+00
+-3.1372152940000002E+00
+-3.1301687029999998E+00
+-3.1231082479999999E+00
+-3.1160339270000001E+00
+-3.1089457390000002E+00
+-3.1018436839999999E+00
+-3.0947277610000001E+00
+-3.0875979689999999E+00
+-3.0804543060000000E+00
+-3.0732967740000001E+00
+-3.0661253689999999E+00
+-3.0589400929999999E+00
+-3.0517409430000000E+00
+-3.0445279190000001E+00
+-3.0373010200000001E+00
+-3.0300602460000001E+00
+-3.0228055949999999E+00
+-3.0155370659999998E+00
+-3.0082546600000000E+00
+-3.0009583740000001E+00
+-2.9936482089999998E+00
+-2.9863241629999999E+00
+-2.9789862370000000E+00
+-2.9716344310000000E+00
+-2.9642687429999999E+00
+-2.9568891740000001E+00
+-2.9494957230000001E+00
+-2.9420883899999999E+00
+-2.9346671739999999E+00
+-2.9272320760000001E+00
+-2.9197830940000000E+00
+-2.9123202290000001E+00
+-2.9048434799999998E+00
+-2.8973528470000001E+00
+-2.8898483289999999E+00
+-2.8823299269999998E+00
+-2.8747976390000001E+00
+-2.8672514659999999E+00
+-2.8596914070000001E+00
+-2.8521174629999999E+00
+-2.8445296330000001E+00
+-2.8369279189999999E+00
+-2.8293123200000001E+00
+-2.8216828370000000E+00
+-2.8140394700000000E+00
+-2.8063822190000001E+00
+-2.7987110849999999E+00
+-2.7910260679999999E+00
+-2.7833271690000001E+00
+-2.7756143870000001E+00
+-2.7678877239999999E+00
+-2.7601471790000001E+00
+-2.7523927520000000E+00
+-2.7446244449999999E+00
+-2.7368422560000001E+00
+-2.7290461879999999E+00
+-2.7212362400000001E+00
+-2.7134124119999998E+00
+-2.7055747069999998E+00
+-2.6977231239999999E+00
+-2.6898576660000000E+00
+-2.6819783319999999E+00
+-2.6740851250000000E+00
+-2.6661780460000002E+00
+-2.6582570950000002E+00
+-2.6503222730000000E+00
+-2.6423735829999999E+00
+-2.6344110249999999E+00
+-2.6264345990000000E+00
+-2.6184443079999999E+00
+-2.6104401519999998E+00
+-2.6024221320000001E+00
+-2.5943902500000000E+00
+-2.5863445060000001E+00
+-2.5782849020000000E+00
+-2.5702114389999999E+00
+-2.5621241189999999E+00
+-2.5540229430000001E+00
+-2.5459079139999998E+00
+-2.5377790330000001E+00
+-2.5296363030000002E+00
+-2.5214797259999999E+00
+-2.5133093030000002E+00
+-2.5051250359999999E+00
+-2.4969269299999999E+00
+-2.4887149819999999E+00
+-2.4804891969999998E+00
+-2.4722495769999999E+00
+-2.4639961229999998E+00
+-2.4557288370000001E+00
+-2.4474477220000002E+00
+-2.4391527790000000E+00
+-2.4308440110000000E+00
+-2.4225214190000002E+00
+-2.4141850059999999E+00
+-2.4058347730000000E+00
+-2.3974707249999998E+00
+-2.3890928630000001E+00
+-2.3807011910000000E+00
+-2.3722957110000000E+00
+-2.3638764280000002E+00
+-2.3554433430000001E+00
+-2.3469964590000001E+00
+-2.3385357789999999E+00
+-2.3300613069999998E+00
+-2.3215730440000000E+00
+-2.3130709949999999E+00
+-2.3045551610000001E+00
+-2.2960255460000001E+00
+-2.2874821540000001E+00
+-2.2789249850000002E+00
+-2.2703540439999998E+00
+-2.2617693330000002E+00
+-2.2531708560000001E+00
+-2.2445586149999999E+00
+-2.2359326149999998E+00
+-2.2272928580000002E+00
+-2.2186393500000001E+00
+-2.2099720949999999E+00
+-2.2012910950000002E+00
+-2.1925963540000000E+00
+-2.1838878770000001E+00
+-2.1751656669999999E+00
+-2.1664297289999999E+00
+-2.1576800650000001E+00
+-2.1489166800000001E+00
+-2.1401395790000000E+00
+-2.1313487630000001E+00
+-2.1225442380000001E+00
+-2.1137260069999999E+00
+-2.1048940740000002E+00
+-2.0960484429999999E+00
+-2.0871891169999999E+00
+-2.0783161010000000E+00
+-2.0694293990000001E+00
+-2.0605290180000000E+00
+-2.0516149580000000E+00
+-2.0426872280000001E+00
+-2.0337458300000000E+00
+-2.0247907710000002E+00
+-2.0158220540000000E+00
+-2.0068396840000000E+00
+-1.9978436680000000E+00
+-1.9888340090000001E+00
+-1.9798107110000001E+00
+-1.9707737789999999E+00
+-1.9617232190000000E+00
+-1.9526590349999999E+00
+-1.9435812320000001E+00
+-1.9344898150000001E+00
+-1.9253847879999999E+00
+-1.9162661580000000E+00
+-1.9071339260000000E+00
+-1.8979880990000000E+00
+-1.8888286830000001E+00
+-1.8796556830000000E+00
+-1.8704691040000001E+00
+-1.8612689529999999E+00
+-1.8520552340000001E+00
+-1.8428279550000000E+00
+-1.8335871200000000E+00
+-1.8243327350000000E+00
+-1.8150648050000000E+00
+-1.8057833370000000E+00
+-1.7964883359999999E+00
+-1.7871798070000000E+00
+-1.7778577570000000E+00
+-1.7685221910000000E+00
+-1.7591731159999999E+00
+-1.7498105349999999E+00
+-1.7404344549999999E+00
+-1.7310448820000000E+00
+-1.7216418210000000E+00
+-1.7122252790000001E+00
+-1.7027952609999999E+00
+-1.6933517730000001E+00
+-1.6838948229999999E+00
+-1.6744244180000001E+00
+-1.6649405620000000E+00
+-1.6554432630000000E+00
+-1.6459325279999999E+00
+-1.6364083629999999E+00
+-1.6268707739999999E+00
+-1.6173197690000001E+00
+-1.6077553529999999E+00
+-1.5981775340000000E+00
+-1.5885863170000001E+00
+-1.5789817100000001E+00
+-1.5693637180000000E+00
+-1.5597323489999999E+00
+-1.5500876079999999E+00
+-1.5404295029999999E+00
+-1.5307580400000000E+00
+-1.5210732270000000E+00
+-1.5113750680000000E+00
+-1.5016635709999999E+00
+-1.4919387440000000E+00
+-1.4822005930000000E+00
+-1.4724491270000000E+00
+-1.4626843530000000E+00
+-1.4529062779999999E+00
+-1.4431149080000001E+00
+-1.4333102540000000E+00
+-1.4234923190000000E+00
+-1.4136611120000000E+00
+-1.4038166409999999E+00
+-1.3939589120000000E+00
+-1.3840879330000000E+00
+-1.3742037119999999E+00
+-1.3643062560000001E+00
+-1.3543955720000000E+00
+-1.3444716670000001E+00
+-1.3345345490000000E+00
+-1.3245842240000001E+00
+-1.3146207000000001E+00
+-1.3046439860000001E+00
+-1.2946540870000001E+00
+-1.2846510130000000E+00
+-1.2746347720000000E+00
+-1.2646053700000000E+00
+-1.2545628150000001E+00
+-1.2445071169999999E+00
+-1.2344382810000001E+00
+-1.2243563180000001E+00
+-1.2142612330000000E+00
+-1.2041530350000000E+00
+-1.1940317330000001E+00
+-1.1838973340000001E+00
+-1.1737498449999999E+00
+-1.1635892740000000E+00
+-1.1534156300000000E+00
+-1.1432289190000000E+00
+-1.1330291509999999E+00
+-1.1228163330000001E+00
+-1.1125904719999999E+00
+-1.1023515779999999E+00
+-1.0920996569999999E+00
+-1.0818347170000000E+00
+-1.0715567669999999E+00
+-1.0612658159999999E+00
+-1.0509618720000000E+00
+-1.0406449430000000E+00
+-1.0303150370000000E+00
+-1.0199721630000000E+00
+-1.0096163309999999E+00
+-9.9924754569999996E-01
+-9.8886581880000002E-01
+-9.7847115699999998E-01
+-9.6806356910000002E-01
+-9.5764306320000003E-01
+-9.4720964829999998E-01
+-9.3676333140000001E-01
+-9.2630412360000003E-01
+-9.1583203069999997E-01
+-9.0534706180000002E-01
+-8.9484922489999996E-01
+-8.8433852999999996E-01
+-8.7381498420000003E-01
+-8.6327859529999995E-01
+-8.5272937339999999E-01
+-8.4216732750000001E-01
+-8.3159246560000000E-01
+-8.2100479680000005E-01
+-8.1040433089999997E-01
+-7.9979107500000002E-01
+-7.8916503910000002E-01
+-7.7852623219999995E-01
+-7.6787466329999998E-01
+-7.5721033950000005E-01
+-7.4653327260000002E-01
+-7.3584346869999995E-01
+-7.2514093879999997E-01
+-7.1442569089999997E-01
+-7.0369773309999994E-01
+-6.9295707520000005E-01
+-6.8220372630000004E-01
+-6.7143769539999998E-01
+-6.6065898950000002E-01
+-6.4986761969999995E-01
+-6.3906359380000000E-01
+-6.2824692090000001E-01
+-6.1741761100000003E-01
+-6.0657567209999996E-01
+-5.9572111429999997E-01
+-5.8485394739999996E-01
+-5.7397417949999996E-01
+-5.6308182159999998E-01
+-5.5217688070000004E-01
+-5.4125936880000003E-01
+-5.3032929299999998E-01
+-5.1938666410000001E-01
+-5.0843149020000000E-01
+-4.9746378130000002E-01
+-4.8648354739999999E-01
+-4.7549079659999999E-01
+-4.6448553970000001E-01
+-4.5346778380000002E-01
+-4.4243754089999998E-01
+-4.3139481800000001E-01
+-4.2033962520000001E-01
+-4.0927197230000001E-01
+-3.9819186839999998E-01
+-3.8709932349999998E-01
+-3.7599434560000000E-01
+-3.6487694580000002E-01
+-3.5374713390000001E-01
+-3.4260491799999998E-01
+-3.3145030910000001E-01
+-3.2028331719999997E-01
+-3.0910395239999999E-01
+-2.9791222249999999E-01
+-2.8670813860000000E-01
+-2.7549170969999998E-01
+-2.6426294680000001E-01
+-2.5302185890000001E-01
+-2.4176845510000000E-01
+-2.3050274620000000E-01
+-2.1922474130000000E-01
+-2.0793444940000000E-01
+-1.9663188249999999E-01
+-1.8531704869999999E-01
+-1.7398995680000001E-01
+-1.6265061889999999E-01
+-1.5129904299999999E-01
+-1.3993524010000000E-01
+-1.2855921830000000E-01
+-1.1717098939999999E-01
+-1.0577056150000000E-01
+-9.4357946619999994E-02
+-8.2933154740000001E-02
+-7.1496193860000001E-02
+-6.0047075980000003E-02
+-4.8585811090000000E-02
+-3.7112408210000003E-02
+-2.5626878329999998E-02
+-1.4129230450000000E-02
+-2.6194765709999998E-03
+8.9023753100000002E-03
+2.0436314189999999E-02
+3.1982330070000002E-02
+4.3540411950000003E-02
+5.5110551830000000E-02
+6.6692737710000005E-02
+7.8286960589999996E-02
+8.9893209480000000E-02
+1.0151147639999999E-01
+1.1314174820000000E-01
+1.2478401710000001E-01
+1.3643827200000000E-01
+1.4810450289999999E-01
+1.5978269980000001E-01
+1.7147285160000000E-01
+1.8317494849999999E-01
+1.9488897940000000E-01
+2.0661493530000000E-01
+2.1835280520000000E-01
+2.3010257800000000E-01
+2.4186424390000000E-01
+2.5363779279999998E-01
+2.6542321369999999E-01
+2.7722049760000000E-01
+2.8902963240000001E-01
+3.0085060930000002E-01
+3.1268341719999998E-01
+3.2452804510000000E-01
+3.3638448399999998E-01
+3.4825272190000001E-01
+3.6013275070000000E-01
+3.7202455760000003E-01
+3.8392813450000002E-01
+3.9584346939999998E-01
+4.0777055229999998E-01
+4.1970937310000000E-01
+4.3165992100000000E-01
+4.4362218590000002E-01
+4.5559615679999999E-01
+4.6758182370000001E-01
+4.7957917449999998E-01
+4.9158820040000001E-01
+5.0360888930000003E-01
+5.1564123220000002E-01
+5.2768521710000005E-01
+5.3974083490000002E-01
+5.5180807379999997E-01
+5.6388692370000004E-01
+5.7597737360000001E-01
+5.8807941350000004E-01
+6.0019303329999996E-01
+6.1231822120000001E-01
+6.2445496710000004E-01
+6.3660326099999998E-01
+6.4876309190000003E-01
+6.6093444879999996E-01
+6.7311732160000004E-01
+6.8531170050000001E-01
+6.9751757339999998E-01
+7.0973493030000001E-01
+7.2196376019999997E-01
+7.3420405300000002E-01
+7.4645579890000002E-01
+7.5871898480000000E-01
+7.7099360169999998E-01
+7.8327963759999997E-01
+7.9557708340000000E-01
+8.0788592729999997E-01
+8.2020615919999995E-01
+8.3253776710000005E-01
+8.4488074199999996E-01
+8.5723507180000003E-01
+8.6960074769999995E-01
+8.8197775660000000E-01
+8.9436608849999999E-01
+9.0676573340000000E-01
+9.1917668129999996E-01
+9.3159891910000003E-01
+9.4403243800000003E-01
+9.5647722589999995E-01
+9.6893327380000005E-01
+9.8140056970000000E-01
+9.9387910349999997E-01
+1.0063688630000001E+00
+1.0188698400000000E+00
+1.0313820220000001E+00
+1.0439053990000000E+00
+1.0564399590000000E+00
+1.0689856920000000E+00
+1.0815425880000000E+00
+1.0941106340000000E+00
+1.1066898199999999E+00
+1.1192801370000001E+00
+1.1318815730000000E+00
+1.1444941170000000E+00
+1.1571177589999999E+00
+1.1697524870000000E+00
+1.1823982909999999E+00
+1.1950551590000000E+00
+1.2077230820000000E+00
+1.2204020480000000E+00
+1.2330920470000000E+00
+1.2457930669999999E+00
+1.2585050990000000E+00
+1.2712281310000000E+00
+1.2839621520000000E+00
+1.2967071520000000E+00
+1.3094631200000000E+00
+1.3222300440000001E+00
+1.3350079150000000E+00
+1.3477967209999999E+00
+1.3605964520000000E+00
+1.3734070970000001E+00
+1.3862286440000000E+00
+1.3990610840000000E+00
+1.4119044050000000E+00
+1.4247585960000000E+00
+1.4376236469999999E+00
+1.4504995469999999E+00
+1.4633862860000000E+00
+1.4762838510000000E+00
+1.4891922330000000E+00
+1.5021114209999999E+00
+1.5150414029999999E+00
+1.5279821700000000E+00
+1.5409337089999999E+00
+1.5538960110000000E+00
+1.5668690640000000E+00
+1.5798528590000001E+00
+1.5928473830000001E+00
+1.6058526270000000E+00
+1.6188685789999999E+00
+1.6318952280000001E+00
+1.6449325630000000E+00
+1.6579805750000001E+00
+1.6710392530000000E+00
+1.6841085840000001E+00
+1.6971885600000001E+00
+1.7102791680000000E+00
+1.7233803990000001E+00
+1.7364922400000000E+00
+1.7496146829999999E+00
+1.7627477140000001E+00
+1.7758913249999999E+00
+1.7890455050000000E+00
+1.8022102419999999E+00
+1.8153855260000000E+00
+1.8285713459999999E+00
+1.8417676910000000E+00
+1.8549745510000000E+00
+1.8681919130000000E+00
+1.8814197699999999E+00
+1.8946581080000000E+00
+1.9079069179999999E+00
+1.9211661890000000E+00
+1.9344359090000001E+00
+1.9477160689999999E+00
+1.9610066559999999E+00
+1.9743076610000001E+00
+1.9876190730000001E+00
+2.0009408820000001E+00
+2.0142730759999998E+00
+2.0276156450000000E+00
+2.0409685789999998E+00
+2.0543318660000001E+00
+2.0677054959999999E+00
+2.0810894580000001E+00
+2.0944837399999998E+00
+2.1078883350000002E+00
+2.1213032300000001E+00
+2.1347284150000001E+00
+2.1481638780000001E+00
+2.1616096100000002E+00
+2.1750655999999999E+00
+2.1885318360000001E+00
+2.2020083079999999E+00
+2.2154950059999998E+00
+2.2289919189999998E+00
+2.2424990370000000E+00
+2.2560163480000002E+00
+2.2695438420000000E+00
+2.2830815090000001E+00
+2.2966293370000002E+00
+2.3101873149999999E+00
+2.3237554349999998E+00
+2.3373336839999999E+00
+2.3509220530000001E+00
+2.3645205300000001E+00
+2.3781291059999998E+00
+2.3917477690000002E+00
+2.4053765100000000E+00
+2.4190153180000000E+00
+2.4326641809999998E+00
+2.4463230910000000E+00
+2.4599920370000001E+00
+2.4736710070000001E+00
+2.4873599920000000E+00
+2.5010589799999998E+00
+2.5147679620000001E+00
+2.5284869269999999E+00
+2.5422158630000000E+00
+2.5559547629999999E+00
+2.5697036130000002E+00
+2.5834624050000001E+00
+2.5972311270000001E+00
+2.6110097689999998E+00
+2.6247983200000000E+00
+2.6385967699999999E+00
+2.6524051090000000E+00
+2.6662233249999998E+00
+2.6800514089999998E+00
+2.6938893510000002E+00
+2.7077371399999999E+00
+2.7215947670000000E+00
+2.7354622229999999E+00
+2.7493394960000002E+00
+2.7632265789999999E+00
+2.7771234599999999E+00
+2.7910301309999999E+00
+2.8049465819999999E+00
+2.8188728020000000E+00
+2.8328087829999999E+00
+2.8467545150000002E+00
+2.8607099869999999E+00
+2.8746751910000001E+00
+2.8886501149999999E+00
+2.9026347520000000E+00
+2.9166290909999999E+00
+2.9306331229999998E+00
+2.9446468370000001E+00
+2.9586702240000000E+00
+2.9727032740000001E+00
+2.9867459780000001E+00
+3.0007983260000000E+00
+3.0148603070000002E+00
+3.0289319130000001E+00
+3.0430131340000002E+00
+3.0571039600000001E+00
+3.0712043819999999E+00
+3.0853143909999998E+00
+3.0994339769999999E+00
+3.1135631330000000E+00
+3.1277018470000000E+00
+3.1418501129999998E+00
+3.1560079220000001E+00
+3.1701752630000000E+00
+3.1843521290000001E+00
+3.1985385100000001E+00
+3.2127343970000002E+00
+3.2269397820000001E+00
+3.2411546549999999E+00
+3.2553790070000002E+00
+3.2696128299999998E+00
+3.2838561140000002E+00
+3.2981088509999998E+00
+3.3123710320000002E+00
+3.3266426480000000E+00
+3.3409236899999999E+00
+3.3552141480000000E+00
+3.3695140129999999E+00
+3.3838232790000000E+00
+3.3981419339999999E+00
+3.4124699700000001E+00
+3.4268073790000000E+00
+3.4411541510000001E+00
+3.4555102770000001E+00
+3.4698757489999998E+00
+3.4842505579999998E+00
+3.4986346970000000E+00
+3.5130281569999999E+00
+3.5274309289999999E+00
+3.5418430050000000E+00
+3.5562643779999998E+00
+3.5706950370000001E+00
+3.5851349760000000E+00
+3.5995841849999999E+00
+3.6140426560000001E+00
+3.6285103809999999E+00
+3.6429873530000001E+00
+3.6574735610000002E+00
+3.6719689980000001E+00
+3.6864736560000000E+00
+3.7009875249999999E+00
+3.7155105989999999E+00
+3.7300428669999999E+00
+3.7445843230000002E+00
+3.7591349570000001E+00
+3.7736947619999999E+00
+3.7882637280000000E+00
+3.8028418490000000E+00
+3.8174291139999998E+00
+3.8320255159999999E+00
+3.8466310469999998E+00
+3.8612456960000001E+00
+3.8758694590000000E+00
+3.8905023270000001E+00
+3.9051442910000000E+00
+3.9197953430000001E+00
+3.9344554770000002E+00
+3.9491246819999999E+00
+3.9638029530000001E+00
+3.9784902799999999E+00
+3.9931866569999999E+00
+4.0078920750000000E+00
+4.0226065259999997E+00
+4.0373300030000001E+00
+4.0520624969999997E+00
+4.0668040000000003E+00
+4.0815545059999998E+00
+4.0963140039999999E+00
+4.1110824890000002E+00
+4.1258599509999998E+00
+4.1406463840000001E+00
+4.1554417790000002E+00
+4.1702461279999996E+00
+4.1850594240000003E+00
+4.1998816569999997E+00
+4.2147128220000001E+00
+4.2295529079999996E+00
+4.2444019099999997E+00
+4.2592598180000003E+00
+4.2741266250000001E+00
+4.2890023240000001E+00
+4.3038869069999999E+00
+4.3187803660000004E+00
+4.3336826930000001E+00
+4.3485938810000002E+00
+4.3635139240000003E+00
+4.3784428120000003E+00
+4.3933805389999998E+00
+4.4083270969999999E+00
+4.4232824790000000E+00
+4.4382466770000004E+00
+4.4532196830000004E+00
+4.4682014890000001E+00
+4.4831920890000001E+00
+4.4981914749999996E+00
+4.5131996399999998E+00
+4.5282165750000001E+00
+4.5432422729999997E+00
+4.5582767270000000E+00
+4.5733199300000003E+00
+4.5883718719999997E+00
+4.6034325469999997E+00
+4.6185019489999997E+00
+4.6335800679999997E+00
+4.6486668980000001E+00
+4.6637624310000003E+00
+4.6788666589999997E+00
+4.6939795750000002E+00
+4.7091011710000004E+00
+4.7242314399999996E+00
+4.7393703750000000E+00
+4.7545179710000003E+00
+4.7696742160000003E+00
+4.7848391010000002E+00
+4.8000126260000000E+00
+4.8151947909999997E+00
+4.8303855660000004E+00
+4.8455849610000001E+00
+4.8607929550000000E+00
+4.8760095600000000E+00
+4.8912347550000002E+00
+4.9064685399999997E+00
+4.9217108950000004E+00
+4.9369618300000004E+00
+4.9522213250000000E+00
+4.9674893800000000E+00
+4.9827659840000003E+00
+4.9980511290000003E+00
+5.0133448139999999E+00
+5.0286470190000001E+00
+5.0439577540000000E+00
+5.0592769989999997E+00
+5.0746047540000001E+00
+5.0899409990000004E+00
+5.1052857429999996E+00
+5.1206389679999997E+00
+5.1360006729999998E+00
+5.1513708480000000E+00
+5.1667494930000002E+00
+5.1821365879999997E+00
+5.1975321330000002E+00
+5.2129361180000000E+00
+5.2283485430000001E+00
+5.2437693870000004E+00
+5.2591986620000002E+00
+5.2746363470000004E+00
+5.2900824320000002E+00
+5.3055369270000003E+00
+5.3209998120000002E+00
+5.3364710869999996E+00
+5.3519507419999997E+00
+5.3674387560000003E+00
+5.3829351509999999E+00
+5.3984398960000002E+00
+5.4139529910000004E+00
+5.4294744359999996E+00
+5.4450042109999996E+00
+5.4605423259999997E+00
+5.4760887609999997E+00
+5.4916435060000000E+00
+5.5072065600000002E+00
+5.5227779249999998E+00
+5.5383575799999996E+00
+5.5539455249999996E+00
+5.5695417500000000E+00
+5.5851462449999998E+00
+5.6007590100000000E+00
+5.6163800349999997E+00
+5.6320093189999998E+00
+5.6476468439999996E+00
+5.6632926090000000E+00
+5.6789466040000001E+00
+5.6946088289999999E+00
+5.7102792740000003E+00
+5.7259579289999998E+00
+5.7416447939999999E+00
+5.7573398579999999E+00
+5.7730431030000000E+00
+5.7887545480000000E+00
+5.8044741630000001E+00
+5.8202019480000002E+00
+5.8359379029999996E+00
+5.8516820180000000E+00
+5.8674342829999997E+00
+5.8831946879999997E+00
+5.8989632319999998E+00
+5.9147399070000004E+00
+5.9305247019999996E+00
+5.9463176270000000E+00
+5.9621186520000000E+00
+5.9779277869999996E+00
+5.9937450119999998E+00
+6.0095703269999996E+00
+6.0254037309999999E+00
+6.0412452060000001E+00
+6.0570947510000002E+00
+6.0729523660000000E+00
+6.0888180309999997E+00
+6.1046917460000003E+00
+6.1205735109999999E+00
+6.1364633059999996E+00
+6.1523611310000001E+00
+6.1682669749999999E+00
+6.1841808399999998E+00
+6.2001027049999999E+00
+6.2160325800000003E+00
+6.2319704549999999E+00
+6.2479163199999999E+00
+6.2638701650000002E+00
+6.2798319800000000E+00
+6.2958017740000001E+00
+6.3117795289999998E+00
+6.3277652340000001E+00
+6.3437588990000000E+00
+6.3597605039999996E+00
+6.3757700389999998E+00
+6.3917875139999998E+00
+6.4078129089999996E+00
+6.4238462130000000E+00
+6.4398874380000004E+00
+6.4559365629999999E+00
+6.4719935880000001E+00
+6.4880584929999996E+00
+6.5041312880000000E+00
+6.5202119630000004E+00
+6.5363005080000001E+00
+6.5523969129999999E+00
+6.5685011769999999E+00
+6.5846132920000002E+00
+6.6007332470000000E+00
+6.6168610420000000E+00
+6.6329966669999996E+00
+6.6491401220000004E+00
+6.6652913869999999E+00
+6.6814504719999999E+00
+6.6976173560000003E+00
+6.7137920409999996E+00
+6.7299745160000004E+00
+6.7461647810000001E+00
+6.7623628160000004E+00
+6.7785686309999997E+00
+6.7947822159999998E+00
+6.8110035609999997E+00
+6.8272326559999996E+00
+6.8434694900000004E+00
+6.8597140750000003E+00
+6.8759663900000003E+00
+6.8922264350000004E+00
+6.9084941999999998E+00
+6.9247696750000003E+00
+6.9410528600000001E+00
+6.9573437550000001E+00
+6.9736423390000004E+00
+6.9899486140000002E+00
+7.0062625690000004E+00
+7.0225841940000002E+00
+7.0389134990000004E+00
+7.0552504540000003E+00
+7.0715950789999997E+00
+7.0879473439999998E+00
+7.1043072580000004E+00
+7.1206748129999999E+00
+7.1370499880000002E+00
+7.1534327930000003E+00
+7.1698232180000003E+00
+7.1862212530000003E+00
+7.2026268980000001E+00
+7.2190401330000000E+00
+7.2354609679999999E+00
+7.2518893919999998E+00
+7.2683253870000000E+00
+7.2847689620000002E+00
+7.3012201069999998E+00
+7.3176788119999996E+00
+7.3341450669999997E+00
+7.3506188720000001E+00
+7.3671002269999999E+00
+7.3835891110000000E+00
+7.4000855259999998E+00
+7.4165894610000000E+00
+7.4331009159999999E+00
+7.4496198810000003E+00
+7.4661463560000003E+00
+7.4826803210000001E+00
+7.4992217859999997E+00
+7.5157707299999998E+00
+7.5323271549999999E+00
+7.5488910599999999E+00
+7.5654624249999998E+00
+7.5820412499999996E+00
+7.5986275350000003E+00
+7.6152212600000002E+00
+7.6318224250000002E+00
+7.6484310300000002E+00
+7.6650470640000004E+00
+7.6816705189999999E+00
+7.6983013939999996E+00
+7.7149396790000004E+00
+7.7315853639999998E+00
+7.7482384489999996E+00
+7.7648989339999996E+00
+7.7815667990000001E+00
+7.7982420330000002E+00
+7.8149246579999998E+00
+7.8316146430000000E+00
+7.8483119879999999E+00
+7.8650166830000003E+00
+7.8817287379999996E+00
+7.8984481329999996E+00
+7.9151748580000003E+00
+7.9319089229999999E+00
+7.9486503070000003E+00
+7.9653990019999998E+00
+7.9821550170000002E+00
+7.9989183419999996E+00
+8.0156889570000001E+00
+8.0324668720000005E+00
+8.0492520669999994E+00
+8.0660445519999993E+00
+8.0828443060000001E+00
+8.0996513310000005E+00
+8.1164656159999993E+00
+8.1332871610000002E+00
+8.1501159560000005E+00
+8.1669519909999995E+00
+8.1837952660000006E+00
+8.2006457810000004E+00
+8.2175035150000006E+00
+8.2343684699999997E+00
+8.2512406350000003E+00
+8.2681200199999996E+00
+8.2850065950000005E+00
+8.3019003799999993E+00
+8.3188013549999997E+00
+8.3357095099999992E+00
+8.3526248449999994E+00
+8.3695473590000002E+00
+8.3864770439999994E+00
+8.4034138889999994E+00
+8.4203578839999995E+00
+8.4373090390000005E+00
+8.4542673340000007E+00
+8.4712327789999993E+00
+8.4882053440000007E+00
+8.5051850479999995E+00
+8.5221718729999996E+00
+8.5391658079999999E+00
+8.5561668530000006E+00
+8.5731750079999998E+00
+8.5901902630000002E+00
+8.6072126180000001E+00
+8.6242420529999997E+00
+8.6412785680000006E+00
+8.6583221619999993E+00
+8.6753728270000003E+00
+8.6924305519999994E+00
+8.7094953369999999E+00
+8.7265671820000001E+00
+8.7436460670000002E+00
+8.7607319920000002E+00
+8.7778249570000000E+00
+8.7949249609999995E+00
+8.8120319760000001E+00
+8.8291460209999997E+00
+8.8462670760000002E+00
+8.8633951409999998E+00
+8.8805302160000004E+00
+8.8976722810000002E+00
+8.9148213460000001E+00
+8.9319773900000001E+00
+8.9491404249999995E+00
+8.9663104300000001E+00
+8.9834874150000008E+00
+9.0006713600000001E+00
+9.0178622649999998E+00
+9.0350601299999997E+00
+9.0522649449999992E+00
+9.0694766999999992E+00
+9.0866953939999995E+00
+9.1039210189999995E+00
+9.1211535739999992E+00
+9.1383930590000002E+00
+9.1556394539999992E+00
+9.1728927589999998E+00
+9.1901529740000001E+00
+9.2074200889999993E+00
+9.2246941029999991E+00
+9.2419750080000007E+00
+9.2592627929999995E+00
+9.2765574579999992E+00
+9.2938590029999997E+00
+9.3111674079999993E+00
+9.3284826830000007E+00
+9.3458048080000005E+00
+9.3631337929999994E+00
+9.3804696270000001E+00
+9.3978122919999993E+00
+9.4151618070000005E+00
+9.4325181520000001E+00
+9.4498813169999991E+00
+9.4672513120000001E+00
+9.4846281270000006E+00
+9.5020117420000005E+00
+9.5194021759999998E+00
+9.5367994009999997E+00
+9.5542034260000008E+00
+9.5716142509999997E+00
+9.5890318459999992E+00
+9.6064562309999992E+00
+9.6238873960000006E+00
+9.6413253310000009E+00
+9.6587700250000008E+00
+9.6762214800000006E+00
+9.6936796950000002E+00
+9.7111446600000004E+00
+9.7286163650000006E+00
+9.7460948100000007E+00
+9.7635799950000006E+00
+9.7810719099999996E+00
+9.7985705450000005E+00
+9.8160758989999994E+00
+9.8335879740000003E+00
+9.8511067489999995E+00
+9.8686322339999997E+00
+9.8861644190000000E+00
+9.9037032939999996E+00
+9.9212488590000003E+00
+9.9388011039999995E+00
+9.9563600379999997E+00
+9.9739256330000003E+00
+9.9914979079999995E+00
+1.0009076830000000E+01
+1.0026662430000000E+01
+1.0044254670000001E+01
+1.0061853579999999E+01
+1.0079459110000000E+01
+1.0097071300000000E+01
+1.0114690110000000E+01
+1.0132315560000000E+01
+1.0149947620000001E+01
+1.0167586310000001E+01
+1.0185231610000001E+01
+1.0202883529999999E+01
+1.0220542040000000E+01
+1.0238207170000001E+01
+1.0255878879999999E+01
+1.0273557179999999E+01
+1.0291242069999999E+01
+1.0308933540000000E+01
+1.0326631580000001E+01
+1.0344336210000000E+01
+1.0362047380000000E+01
+1.0379765129999999E+01
+1.0397489419999999E+01
+1.0415220280000000E+01
+1.0432957670000000E+01
+1.0450701609999999E+01
+1.0468452080000000E+01
+1.0486209080000000E+01
+1.0503972620000001E+01
+1.0521742670000000E+01
+1.0539519240000001E+01
+1.0557302320000000E+01
+1.0575091909999999E+01
+1.0592888000000000E+01
+1.0610690590000001E+01
+1.0628499670000000E+01
+1.0646315240000000E+01
+1.0664137289999999E+01
+1.0681965829999999E+01
+1.0699800829999999E+01
+1.0717642310000000E+01
+1.0735490250000000E+01
+1.0753344650000001E+01
+1.0771205500000001E+01
+1.0789072810000000E+01
+1.0806946560000000E+01
+1.0824826760000001E+01
+1.0842713379999999E+01
+1.0860606450000001E+01
+1.0878505929999999E+01
+1.0896411840000001E+01
+1.0914324160000000E+01
+1.0932242909999999E+01
+1.0950168050000000E+01
+1.0968099609999999E+01
+1.0986037550000001E+01
+1.1003981899999999E+01
+1.1021932619999999E+01
+1.1039889740000000E+01
+1.1057853229999999E+01
+1.1075823110000000E+01
+1.1093799340000000E+01
+1.1111781960000000E+01
+1.1129770920000000E+01
+1.1147766239999999E+01
+1.1165767910000000E+01
+1.1183775940000000E+01
+1.1201790290000000E+01
+1.1219810989999999E+01
+1.1237838020000000E+01
+1.1255871380000000E+01
+1.1273911070000000E+01
+1.1291957070000000E+01
+1.1310009389999999E+01
+1.1328068010000001E+01
+1.1346132949999999E+01
+1.1364204170000001E+01
+1.1382281710000001E+01
+1.1400365519999999E+01
+1.1418455639999999E+01
+1.1436552020000001E+01
+1.1454654700000001E+01
+1.1472763629999999E+01
+1.1490878850000000E+01
+1.1509000320000000E+01
+1.1527128060000001E+01
+1.1545262040000001E+01
+1.1563402280000000E+01
+1.1581548760000000E+01
+1.1599701500000000E+01
+1.1617860459999999E+01
+1.1636025660000000E+01
+1.1654197070000000E+01
+1.1672374730000000E+01
+1.1690558590000000E+01
+1.1708748670000000E+01
+1.1726944950000000E+01
+1.1745147449999999E+01
+1.1763356140000001E+01
+1.1781571030000000E+01
+1.1799792110000000E+01
+1.1818019380000001E+01
+1.1836252820000000E+01
+1.1854492450000000E+01
+1.1872738249999999E+01
+1.1890990220000001E+01
+1.1909248340000000E+01
+1.1927512640000000E+01
+1.1945783080000000E+01
+1.1964059680000000E+01
+1.1982342420000000E+01
+1.2000631300000000E+01
+1.2018926329999999E+01
+1.2037227480000000E+01
+1.2055534770000000E+01
+1.2073848170000000E+01
+1.2092167710000000E+01
+1.2110493340000000E+01
+1.2128825100000000E+01
+1.2147162959999999E+01
+1.2165506929999999E+01
+1.2183856980000000E+01
+1.2202213140000000E+01
+1.2220575380000000E+01
+1.2238943709999999E+01
+1.2257318110000000E+01
+1.2275698600000000E+01
+1.2294085150000001E+01
+1.2312477769999999E+01
+1.2330876450000000E+01
+1.2349281189999999E+01
+1.2367691980000000E+01
+1.2386108830000000E+01
+1.2404531710000001E+01
+1.2422960639999999E+01
+1.2441395600000000E+01
+1.2459836590000000E+01
+1.2478283610000000E+01
+1.2496736650000001E+01
+1.2515195710000000E+01
+1.2533660780000000E+01
+1.2552131859999999E+01
+1.2570608950000000E+01
+1.2589092030000000E+01
+1.2607581120000001E+01
+1.2626076189999999E+01
+1.2644577260000000E+01
+1.2663084300000000E+01
+1.2681597330000001E+01
+1.2700116319999999E+01
+1.2718641300000000E+01
+1.2737172230000001E+01
+1.2755709120000001E+01
+1.2774251980000001E+01
+1.2792800780000000E+01
+1.2811355539999999E+01
+1.2829916239999999E+01
+1.2848482880000001E+01
+1.2867055450000001E+01
+1.2885633970000001E+01
+1.2904218400000000E+01
+1.2922808760000001E+01
+1.2941405030000000E+01
+1.2960007230000000E+01
+1.2978615319999999E+01
+1.2997229330000000E+01
+1.3015849240000000E+01
+1.3034475049999999E+01
+1.3053106740000000E+01
+1.3071744330000000E+01
+1.3090387800000000E+01
+1.3109037150000001E+01
+1.3127692370000000E+01
+1.3146353469999999E+01
+1.3165020430000000E+01
+1.3183693260000000E+01
+1.3202371940000001E+01
+1.3221056490000000E+01
+1.3239746869999999E+01
+1.3258443110000000E+01
+1.3277145180000000E+01
+1.3295853100000000E+01
+1.3314566839999999E+01
+1.3333286420000000E+01
+1.3352011810000000E+01
+1.3370743030000000E+01
+1.3389480060000000E+01
+1.3408222920000000E+01
+1.3426971569999999E+01
+1.3445726029999999E+01
+1.3464486279999999E+01
+1.3483252340000000E+01
+1.3502024179999999E+01
+1.3520801820000001E+01
+1.3539585230000000E+01
+1.3558374420000000E+01
+1.3577169390000000E+01
+1.3595970120000000E+01
+1.3614776630000000E+01
+1.3633588890000000E+01
+1.3652406910000000E+01
+1.3671230680000001E+01
+1.3690060210000000E+01
+1.3708895480000001E+01
+1.3727736500000001E+01
+1.3746583240000000E+01
+1.3765435719999999E+01
+1.3784293920000000E+01
+1.3803157860000001E+01
+1.3822027510000000E+01
+1.3840902880000000E+01
+1.3859783950000001E+01
+1.3878670750000000E+01
+1.3897563229999999E+01
+1.3916461419999999E+01
+1.3935365300000001E+01
+1.3954274880000000E+01
+1.3973190130000001E+01
+1.3992111080000001E+01
+1.4011037699999999E+01
+1.4029970000000000E+01
+1.4048907959999999E+01
+1.4067851590000000E+01
+1.4086800880000000E+01
+1.4105755840000000E+01
+1.4124716440000000E+01
+1.4143682699999999E+01
+1.4162654590000001E+01
+1.4181632140000000E+01
+1.4200615320000001E+01
+1.4219604140000000E+01
+1.4238598580000000E+01
+1.4257598650000000E+01
+1.4276604340000000E+01
+1.4295615650000000E+01
+1.4314632570000001E+01
+1.4333655090000001E+01
+1.4352683230000000E+01
+1.4371716960000001E+01
+1.4390756300000000E+01
+1.4409801229999999E+01
+1.4428851750000000E+01
+1.4447907839999999E+01
+1.4466969530000000E+01
+1.4486036779999999E+01
+1.4505109620000001E+01
+1.4524188010000000E+01
+1.4543271980000000E+01
+1.4562361500000000E+01
+1.4581456590000000E+01
+1.4600557220000001E+01
+1.4619663409999999E+01
+1.4638775130000001E+01
+1.4657892400000000E+01
+1.4677015200000000E+01
+1.4696143540000000E+01
+1.4715277400000000E+01
+1.4734416789999999E+01
+1.4753561690000000E+01
+1.4772712120000000E+01
+1.4791868050000000E+01
+1.4811029500000000E+01
+1.4830196450000001E+01
+1.4849368900000000E+01
+1.4868546840000000E+01
+1.4887730290000000E+01
+1.4906919210000000E+01
+1.4926113630000000E+01
+1.4945313519999999E+01
+1.4964518900000000E+01
+1.4983729739999999E+01
+1.5002946059999999E+01
+1.5022167830000001E+01
+1.5041395079999999E+01
+1.5060627770000000E+01
+1.5079865930000000E+01
+1.5099109530000000E+01
+1.5118358580000001E+01
+1.5137613070000000E+01
+1.5156872990000000E+01
+1.5176138359999999E+01
+1.5195409150000000E+01
+1.5214685370000000E+01
+1.5233967000000000E+01
+1.5253254070000001E+01
+1.5272546540000000E+01
+1.5291844429999999E+01
+1.5311147710000000E+01
+1.5330456410000000E+01
+1.5349770500000000E+01
+1.5369089990000001E+01
+1.5388414859999999E+01
+1.5407745130000000E+01
+1.5427080770000000E+01
+1.5446421800000000E+01
+1.5465768199999999E+01
+1.5485119980000000E+01
+1.5504477120000001E+01
+1.5523839629999999E+01
+1.5543207490000000E+01
+1.5562580720000000E+01
+1.5581959299999999E+01
+1.5601343240000000E+01
+1.5620732510000000E+01
+1.5640127140000001E+01
+1.5659527110000001E+01
+1.5678932420000001E+01
+1.5698343050000000E+01
+1.5717759030000000E+01
+1.5737180320000000E+01
+1.5756606950000000E+01
+1.5776038890000001E+01
+1.5795476160000000E+01
+1.5814918730000000E+01
+1.5834366620000001E+01
+1.5853819809999999E+01
+1.5873278320000001E+01
+1.5892742119999999E+01
+1.5912211220000000E+01
+1.5931685610000001E+01
+1.5951165290000000E+01
+1.5970650259999999E+01
+1.5990140510000000E+01
+1.6009636050000001E+01
+1.6029136860000001E+01
+1.6048642950000001E+01
+1.6068154310000001E+01
+1.6087670939999999E+01
+1.6107192820000002E+01
+1.6126719980000001E+01
+1.6146252380000000E+01
+1.6165790040000001E+01
+1.6185332949999999E+01
+1.6204881109999999E+01
+1.6224434509999998E+01
+1.6243993159999999E+01
+1.6263557030000001E+01
+1.6283126150000001E+01
+1.6302700479999999E+01
+1.6322280050000000E+01
+1.6341864829999999E+01
+1.6361454840000000E+01
+1.6381050049999999E+01
+1.6400650469999999E+01
+1.6420256100000000E+01
+1.6439866930000001E+01
+1.6459482940000001E+01
+1.6479104159999999E+01
+1.6498730559999998E+01
+1.6518362150000002E+01
+1.6537998909999999E+01
+1.6557640849999999E+01
+1.6577287960000000E+01
+1.6596940239999999E+01
+1.6616597680000002E+01
+1.6636260279999998E+01
+1.6655928029999998E+01
+1.6675600939999999E+01
+1.6695278989999998E+01
+1.6714962190000001E+01
+1.6734650510000002E+01
+1.6754343989999999E+01
+1.6774042580000000E+01
+1.6793746290000001E+01
+1.6813455139999999E+01
+1.6833169099999999E+01
+1.6852888180000001E+01
+1.6872612360000002E+01
+1.6892341660000000E+01
+1.6912076050000000E+01
+1.6931815539999999E+01
+1.6951560120000000E+01
+1.6971309789999999E+01
+1.6991064540000000E+01
+1.7010824390000000E+01
+1.7030589299999999E+01
+1.7050359289999999E+01
+1.7070134339999999E+01
+1.7089914459999999E+01
+1.7109699639999999E+01
+1.7129489899999999E+01
+1.7149285209999999E+01
+1.7169085599999999E+01
+1.7188891040000001E+01
+1.7208701550000001E+01
+1.7228517109999999E+01
+1.7248337750000001E+01
+1.7268163439999999E+01
+1.7287994200000000E+01
+1.7307830010000000E+01
+1.7327670890000000E+01
+1.7347516819999999E+01
+1.7367367819999998E+01
+1.7387223870000000E+01
+1.7407084990000001E+01
+1.7426951160000002E+01
+1.7446822390000001E+01
+1.7466698670000000E+01
+1.7486580020000002E+01
+1.7506466410000002E+01
+1.7526357869999998E+01
+1.7546254380000001E+01
+1.7566155949999999E+01
+1.7586062559999998E+01
+1.7605974230000001E+01
+1.7625890960000000E+01
+1.7645812729999999E+01
+1.7665739570000000E+01
+1.7685671450000001E+01
+1.7705608389999998E+01
+1.7725550370000001E+01
+1.7745497409999999E+01
+1.7765449490000002E+01
+1.7785406640000001E+01
+1.7805368820000002E+01
+1.7825336060000001E+01
+1.7845308330000002E+01
+1.7865285669999999E+01
+1.7885268040000000E+01
+1.7905255470000000E+01
+1.7925247939999998E+01
+1.7945245440000001E+01
+1.7965247959999999E+01
+1.7985255490000000E+01
+1.8005268010000002E+01
+1.8025285510000000E+01
+1.8045307980000000E+01
+1.8065335409999999E+01
+1.8085367770000001E+01
+1.8105405070000000E+01
+1.8125447279999999E+01
+1.8145494410000001E+01
+1.8165546410000001E+01
+1.8185603300000000E+01
+1.8205665040000000E+01
+1.8225731650000000E+01
+1.8245803089999999E+01
+1.8265879360000000E+01
+1.8285960440000000E+01
+1.8306046330000001E+01
+1.8326136989999998E+01
+1.8346232440000001E+01
+1.8366332650000000E+01
+1.8386437610000002E+01
+1.8406547289999999E+01
+1.8426661719999998E+01
+1.8446780839999999E+01
+1.8466904660000001E+01
+1.8487033170000000E+01
+1.8507166340000001E+01
+1.8527304189999999E+01
+1.8547446669999999E+01
+1.8567593790000000E+01
+1.8587745529999999E+01
+1.8607901880000000E+01
+1.8628062809999999E+01
+1.8648228339999999E+01
+1.8668398430000000E+01
+1.8688573080000001E+01
+1.8708752270000002E+01
+1.8728935990000000E+01
+1.8749124230000000E+01
+1.8769316969999998E+01
+1.8789514210000000E+01
+1.8809715969999999E+01
+1.8829922280000002E+01
+1.8850133180000000E+01
+1.8870348700000001E+01
+1.8890568869999999E+01
+1.8910793720000001E+01
+1.8931023289999999E+01
+1.8951257609999999E+01
+1.8971496710000000E+01
+1.8991740629999999E+01
+1.9011989400000001E+01
+1.9032243040000001E+01
+1.9052501599999999E+01
+1.9072765109999999E+01
+1.9093033599999998E+01
+1.9113307089999999E+01
+1.9133585640000000E+01
+1.9153869250000000E+01
+1.9174157990000001E+01
+1.9194451860000001E+01
+1.9214750920000000E+01
+1.9235055169999999E+01
+1.9255364680000000E+01
+1.9275679449999998E+01
+1.9295999530000000E+01
+1.9316324949999998E+01
+1.9336655749999998E+01
+1.9356991950000001E+01
+1.9377333589999999E+01
+1.9397680699999999E+01
+1.9418033309999998E+01
+1.9438391469999999E+01
+1.9458755190000002E+01
+1.9479124519999999E+01
+1.9499499470000000E+01
+1.9519880100000002E+01
+1.9540266429999999E+01
+1.9560658490000002E+01
+1.9581056319999998E+01
+1.9601459949999999E+01
+1.9621869400000001E+01
+1.9642284730000000E+01
+1.9662705949999999E+01
+1.9683133080000001E+01
+1.9703566030000001E+01
+1.9724004669999999E+01
+1.9744448850000001E+01
+1.9764898460000001E+01
+1.9785353350000001E+01
+1.9805813400000002E+01
+1.9826278469999998E+01
+1.9846748439999999E+01
+1.9867223160000002E+01
+1.9887702520000001E+01
+1.9908186359999998E+01
+1.9928674579999999E+01
+1.9949167010000000E+01
+1.9969663550000000E+01
+1.9990164050000001E+01
+2.0010668389999999E+01
+2.0031176429999999E+01
+2.0051688039999998E+01
+2.0072203080000001E+01
+2.0092721439999998E+01
+2.0113242960000001E+01
+2.0133767530000000E+01
+2.0154294990000000E+01
+2.0174825240000001E+01
+2.0195358140000000E+01
+2.0215893540000000E+01
+2.0236431320000001E+01
+2.0256971350000001E+01
+2.0277513500000001E+01
+2.0298057629999999E+01
+2.0318603610000000E+01
+2.0339151309999998E+01
+2.0359700600000000E+01
+2.0380251330000000E+01
+2.0400803400000001E+01
+2.0421356650000000E+01
+2.0441910960000001E+01
+2.0462466190000001E+01
+2.0483022230000000E+01
+2.0503578910000002E+01
+2.0524136129999999E+01
+2.0544693740000000E+01
+2.0565251629999999E+01
+2.0585809630000000E+01
+4.0069918689567927E-02
+4.0129013151347412E-02
+4.0188064100443864E-02
+4.0247071549486133E-02
+4.0306035511102990E-02
+4.0364955997923294E-02
+4.0423833022575836E-02
+4.0482666597689475E-02
+4.0541456735893024E-02
+4.0600203449815297E-02
+4.0658906752085097E-02
+4.0717566655331307E-02
+4.0776183172182685E-02
+4.0834756315268103E-02
+4.0893286097216340E-02
+4.0951772530656246E-02
+4.1010215628216655E-02
+4.1068615402526376E-02
+4.1126971866214196E-02
+4.1185285031909005E-02
+4.1243554912239598E-02
+4.1301781519834789E-02
+4.1359964867323386E-02
+4.1418104967334252E-02
+4.1476201832496194E-02
+4.1534255475438028E-02
+4.1592265908788548E-02
+4.1650233145176636E-02
+4.1708157197231095E-02
+4.1766038077580732E-02
+4.1823875798854354E-02
+4.1881670373680853E-02
+4.1939421814688974E-02
+4.1997130134507614E-02
+4.2054795345765505E-02
+4.2112417461091539E-02
+4.2169996493114544E-02
+4.2227532454463299E-02
+4.2285025357766647E-02
+4.2342475215653423E-02
+4.2399882040752422E-02
+4.2457245845692521E-02
+4.2514566643102450E-02
+4.2571844445611115E-02
+4.2629079265847337E-02
+4.2686271116439876E-02
+4.2743420010017588E-02
+4.2800525959209343E-02
+4.2857588976643893E-02
+4.2914609074950101E-02
+4.2971586266756762E-02
+4.3028520564692724E-02
+4.3085411981386802E-02
+4.3142260529467825E-02
+4.3199066221564587E-02
+4.3255829070305965E-02
+4.3312549088320745E-02
+4.3369226288237722E-02
+4.3425860682685807E-02
+4.3482452284293725E-02
+4.3539001105690374E-02
+4.3595507159504512E-02
+4.3651970458365011E-02
+4.3708391014900691E-02
+4.3764768841740360E-02
+4.3821103951512813E-02
+4.3877396356846926E-02
+4.3933646070371514E-02
+4.3989853104715378E-02
+4.4046017472507318E-02
+4.4102139186376225E-02
+4.4158218258950874E-02
+4.4214254702860105E-02
+4.4270248530732706E-02
+4.4326199755197547E-02
+4.4382108388883450E-02
+4.4437974444419194E-02
+4.4493797934433622E-02
+4.4549578871555598E-02
+4.4605317268413880E-02
+4.4661013137637359E-02
+4.4716666491854767E-02
+4.4772277343695016E-02
+4.4827845705786906E-02
+4.4883371590759218E-02
+4.4938855011240807E-02
+4.4994295979860502E-02
+4.5049694509247111E-02
+4.5105050612029497E-02
+4.5160364300836399E-02
+4.5215635588296700E-02
+4.5270864487039250E-02
+4.5326051009692808E-02
+4.5381195168886203E-02
+4.5436296977248325E-02
+4.5491356447407920E-02
+4.5546373591993865E-02
+4.5601348423634940E-02
+4.5656280954959987E-02
+4.5711171198597848E-02
+4.5766019167177333E-02
+4.5820824873327219E-02
+4.5875588329676406E-02
+4.5930309548853687E-02
+4.5984988543487870E-02
+4.6039625326207777E-02
+4.6094219909642242E-02
+4.6148772306420102E-02
+4.6203282529170150E-02
+4.6257750590521229E-02
+4.6312176503102168E-02
+4.6366560279541773E-02
+4.6420901932468860E-02
+4.6475201474512270E-02
+4.6529458918300834E-02
+4.6583674276463365E-02
+4.6637847561628656E-02
+4.6691978786425579E-02
+4.6746067963482942E-02
+4.6800115105429557E-02
+4.6854120224894220E-02
+4.6908083334505815E-02
+4.6962004446893135E-02
+4.7015883574684995E-02
+4.7069720730510224E-02
+4.7123515926997657E-02
+4.7177269176776102E-02
+4.7230980492474414E-02
+4.7284649886721333E-02
+4.7338277372145764E-02
+4.7391862961376534E-02
+4.7445406667042396E-02
+4.7498908501772227E-02
+4.7552368478194842E-02
+4.7605786608939049E-02
+4.7659162906633704E-02
+4.7712497383907565E-02
+4.7765790053389511E-02
+4.7819040927708382E-02
+4.7872250019492926E-02
+4.7925417341372005E-02
+4.7978542905974496E-02
+4.8031626725929137E-02
+4.8084668813864799E-02
+4.8137669182410275E-02
+4.8190627844194409E-02
+4.8243544811846041E-02
+4.8296420097993960E-02
+4.8349253715266979E-02
+4.8402045676293984E-02
+4.8454795993703739E-02
+4.8507504680125088E-02
+4.8560171748186859E-02
+4.8612797210517852E-02
+4.8665381079746911E-02
+4.8717923368502870E-02
+4.8770424089414503E-02
+4.8822883255110687E-02
+4.8875300878220236E-02
+4.8927676971371931E-02
+4.8980011547194641E-02
+4.9032304618317188E-02
+4.9084556197368359E-02
+4.9136766296977025E-02
+4.9188934929771930E-02
+4.9241062108382000E-02
+4.9293147845435981E-02
+4.9345192153562707E-02
+4.9397195045391050E-02
+4.9449156533549796E-02
+4.9501076630667752E-02
+4.9552955349373790E-02
+4.9604792702296660E-02
+4.9656588702065241E-02
+4.9708343361308374E-02
+4.9760056692654805E-02
+4.9811728708733419E-02
+4.9863359422173049E-02
+4.9914948845602478E-02
+4.9966496991650518E-02
+5.0018003872946047E-02
+5.0069469502117839E-02
+5.0120893891794770E-02
+5.0172277054605578E-02
+5.0223619003179149E-02
+5.0274919750144337E-02
+5.0326179308129881E-02
+5.0377397689764625E-02
+5.0428574907677472E-02
+5.0479710974497147E-02
+5.0530805902852520E-02
+5.0581859705372399E-02
+5.0632872394685599E-02
+5.0683843983420990E-02
+5.0734774484207351E-02
+5.0785663909673498E-02
+5.0836512272448273E-02
+5.0887319585160518E-02
+5.0938085860439034E-02
+5.0988811110912635E-02
+5.1039495349210151E-02
+5.1090138587960424E-02
+5.1140740839792261E-02
+5.1191302117334456E-02
+5.1241822433215900E-02
+5.1292301800065360E-02
+5.1342740230511663E-02
+5.1393137737183653E-02
+5.1443494332710164E-02
+5.1493810029719991E-02
+5.1544084840841956E-02
+5.1594318778704906E-02
+5.1644511855937644E-02
+5.1694664085169012E-02
+5.1744775479027810E-02
+5.1794846050142861E-02
+5.1844875811143026E-02
+5.1894864774657067E-02
+5.1944812953313851E-02
+5.1994720359742209E-02
+5.2044587006570928E-02
+5.2094412906428869E-02
+5.2144198071944814E-02
+5.2193942515747591E-02
+5.2243646250466076E-02
+5.2293309288729037E-02
+5.2342931643165308E-02
+5.2392513326403739E-02
+5.2442054351073110E-02
+5.2491554729802298E-02
+5.2541014475220055E-02
+5.2590433599955244E-02
+5.2639812116636722E-02
+5.2689150037893262E-02
+5.2738447376353678E-02
+5.2787704144646855E-02
+5.2836920355401565E-02
+5.2886096021246637E-02
+5.2935231154810913E-02
+5.2984325768723188E-02
+5.3033379875612310E-02
+5.3082393488107116E-02
+5.3131366618836356E-02
+5.3180299280428944E-02
+5.3229191485513659E-02
+5.3278043246719323E-02
+5.3326854576674756E-02
+5.3375625488008782E-02
+5.3424355993350242E-02
+5.3473046105327958E-02
+5.3521695836570710E-02
+5.3570305199707388E-02
+5.3618874207366760E-02
+5.3667402872177666E-02
+5.3715891206768937E-02
+5.3764339223769414E-02
+5.3812746935807877E-02
+5.3861114355513176E-02
+5.3909441495514104E-02
+5.3957728368439539E-02
+5.4005974986918254E-02
+5.4054181363579083E-02
+5.4102347511050870E-02
+5.4150473441962430E-02
+5.4198559168942562E-02
+5.4246604704620151E-02
+5.4294610061623921E-02
+5.4342575252582764E-02
+5.4390500290125515E-02
+5.4438385186880933E-02
+5.4486229955477895E-02
+5.4534034608545230E-02
+5.4581799158711725E-02
+5.4629523618606221E-02
+5.4677208000857513E-02
+5.4724852318094472E-02
+5.4772456582945904E-02
+5.4820020808040597E-02
+5.4867545006007407E-02
+5.4915029189475176E-02
+5.4962473371072691E-02
+5.5009877563428788E-02
+5.5057241779172289E-02
+5.5104566030932001E-02
+5.5151850331336780E-02
+5.5199094693015427E-02
+5.5246299128596771E-02
+5.5293463650709640E-02
+5.5340588271982849E-02
+5.5387673005045227E-02
+5.5434717862525559E-02
+5.5481722857052738E-02
+5.5528688001255551E-02
+5.5575613307762804E-02
+5.5622498789203348E-02
+5.5669344458205997E-02
+5.5716150327399572E-02
+5.5762916409412874E-02
+5.5809642716874767E-02
+5.5856329262414059E-02
+5.5902976058659556E-02
+5.5949583118240095E-02
+5.5996150453784511E-02
+5.6042678077921626E-02
+5.6089166003280233E-02
+5.6135614242489147E-02
+5.6182022808177259E-02
+5.6228391712973336E-02
+5.6274720969506205E-02
+5.6321010590404702E-02
+5.6367260588297649E-02
+5.6413470975813867E-02
+5.6459641765582172E-02
+5.6505772970231412E-02
+5.6551864602390381E-02
+5.6597916674687929E-02
+5.6643929199752835E-02
+5.6689902190213942E-02
+5.6735835658700128E-02
+5.6781729617840136E-02
+5.6827584080262811E-02
+5.6873399058597021E-02
+5.6919174565471534E-02
+5.6964910613515211E-02
+5.7010607215356834E-02
+5.7056264383625245E-02
+5.7101882130949314E-02
+5.7147460469957785E-02
+5.7192999413279502E-02
+5.7238498973543356E-02
+5.7283959163378084E-02
+5.7329379995412558E-02
+5.7374761482275584E-02
+5.7420103636595970E-02
+5.7465406471002567E-02
+5.7510669998124195E-02
+5.7555894230589641E-02
+5.7601079181027776E-02
+5.7646224862067413E-02
+5.7691331286337355E-02
+5.7736398466466443E-02
+5.7781426415083458E-02
+5.7826415144817289E-02
+5.7871364668296732E-02
+5.7916274998150566E-02
+5.7961146147007675E-02
+5.8005978127496874E-02
+5.8050770952246949E-02
+5.8095524633886758E-02
+5.8140239185045114E-02
+5.8184914618350847E-02
+5.8229550946432757E-02
+5.8274148181919665E-02
+5.8318706337440421E-02
+5.8363225425623853E-02
+5.8407705459098749E-02
+5.8452146450493944E-02
+5.8496548412438294E-02
+5.8540911357560579E-02
+5.8585235298489663E-02
+5.8629520247854297E-02
+5.8673766218283380E-02
+5.8717973222405719E-02
+5.8762141272850101E-02
+5.8806270382245368E-02
+5.8850360563220377E-02
+5.8894411828403902E-02
+5.8938424190424797E-02
+5.8982397661911851E-02
+5.9026332255493918E-02
+5.9070227983799836E-02
+5.9114084859458377E-02
+5.9157902895098397E-02
+5.9201682103348738E-02
+5.9245422496838160E-02
+5.9289124088195547E-02
+5.9332786890049692E-02
+5.9376410915029432E-02
+5.9419996175763587E-02
+5.9463542684880959E-02
+5.9507050455010396E-02
+5.9550519498780721E-02
+5.9593949828820755E-02
+5.9637341457759306E-02
+5.9680694398225195E-02
+5.9724008662847272E-02
+5.9767284264254344E-02
+5.9810521215075220E-02
+5.9853719527938748E-02
+5.9896879215473736E-02
+5.9940000290309020E-02
+5.9983082765073407E-02
+6.0026126652395720E-02
+6.0069131964904821E-02
+6.0112098715229469E-02
+6.0155026915998520E-02
+6.0197916579840811E-02
+6.0240767719385149E-02
+6.0283580347260363E-02
+6.0326354476095259E-02
+6.0369090118518667E-02
+6.0411787287159430E-02
+6.0454445994646347E-02
+6.0497066253608248E-02
+6.0539648076673974E-02
+6.0582191476472314E-02
+6.0624696465632136E-02
+6.0667163056782214E-02
+6.0709591262551377E-02
+6.0751981095568508E-02
+6.0794332568462353E-02
+6.0836645693861754E-02
+6.0878920484395596E-02
+6.0921156952692623E-02
+6.0963355111381699E-02
+6.1005514973091646E-02
+6.1047636550451249E-02
+6.1089719856089394E-02
+6.1131764902634847E-02
+6.1173771702716442E-02
+6.1215740268963058E-02
+6.1257670614003445E-02
+6.1299562750466469E-02
+6.1341416690980921E-02
+6.1383232448175645E-02
+6.1425010034679470E-02
+6.1466749463121223E-02
+6.1508450746129678E-02
+6.1550113896333719E-02
+6.1591738926362140E-02
+6.1633325848843776E-02
+6.1674874676407421E-02
+6.1716385421681938E-02
+6.1757858097296128E-02
+6.1799292715878820E-02
+6.1840689290058801E-02
+6.1882047832464968E-02
+6.1923368355726094E-02
+6.1964650872471001E-02
+6.2005895395328525E-02
+6.2047101936927494E-02
+6.2088270509896709E-02
+6.2129401126865005E-02
+6.2170493800461232E-02
+6.2211548543314170E-02
+6.2252565368052667E-02
+6.2293544287305526E-02
+6.2334485313701601E-02
+6.2375388459869688E-02
+6.2416253738438621E-02
+6.2457081162037215E-02
+6.2497870743294305E-02
+6.2538622494838700E-02
+6.2579336429299248E-02
+6.2620012559304730E-02
+6.2660650897484002E-02
+6.2701251456465906E-02
+6.2741814248879216E-02
+6.2782339287352745E-02
+6.2822826584515407E-02
+6.2863276152995931E-02
+6.2903688005423189E-02
+6.2944062154425981E-02
+6.2984398612633136E-02
+6.3024697392673495E-02
+6.3064958507175861E-02
+6.3105181968769034E-02
+6.3145367790081910E-02
+6.3185515983743237E-02
+6.3225626562381884E-02
+6.3265699538626638E-02
+6.3305734925106355E-02
+6.3345732734449850E-02
+6.3385692979285924E-02
+6.3425615672243418E-02
+6.3465500825951177E-02
+6.3505348453037985E-02
+6.3545158566132687E-02
+6.3584931177864068E-02
+6.3624666300861027E-02
+6.3664363947752323E-02
+6.3704024131166784E-02
+6.3743646863733280E-02
+6.3783232158080586E-02
+6.3822780026837556E-02
+6.3862290482632977E-02
+6.3901763538095679E-02
+6.3941199205854532E-02
+6.3980597498538308E-02
+6.4019958428775836E-02
+6.4059282009195972E-02
+6.4098568252427518E-02
+6.4137817171099301E-02
+6.4177028777840123E-02
+6.4216203085278825E-02
+6.4255340106044251E-02
+6.4294439852765173E-02
+6.4333502338070447E-02
+6.4372527574588889E-02
+6.4411515574949341E-02
+6.4450466351780616E-02
+6.4489379917711517E-02
+6.4528256285370872E-02
+6.4567095467387522E-02
+6.4605897476390284E-02
+6.4644662325007957E-02
+6.4683390025869411E-02
+6.4722080591603434E-02
+6.4760734034838854E-02
+6.4799350368204514E-02
+6.4837929604329186E-02
+6.4876471755841769E-02
+6.4914976835371008E-02
+6.4953444855545772E-02
+6.4991875828994891E-02
+6.5030269768347151E-02
+6.5068626686231409E-02
+6.5106946595276480E-02
+6.5145229508111149E-02
+6.5183475437364302E-02
+6.5221684395664739E-02
+6.5259856395641247E-02
+6.5297991449922696E-02
+6.5336089571137887E-02
+6.5374150771915648E-02
+6.5412175064884809E-02
+6.5450162462674155E-02
+6.5488112977912558E-02
+6.5526026623228831E-02
+6.5563903411251748E-02
+6.5601743354610206E-02
+6.5639546465933007E-02
+6.5677312757848924E-02
+6.5715042242986826E-02
+6.5752734933975543E-02
+6.5790390843443874E-02
+6.5828009984020663E-02
+6.5865592368334669E-02
+6.5903138009014803E-02
+6.5940646918689866E-02
+6.5978119109988645E-02
+6.6015554595539969E-02
+6.6052953387972693E-02
+6.6090315499915619E-02
+6.6127640943997590E-02
+6.6164929732847377E-02
+6.6202181879093866E-02
+6.6239397395365857E-02
+6.6276576294292136E-02
+6.6313718588501575E-02
+6.6350824290623001E-02
+6.6387893413285187E-02
+6.6424925969117005E-02
+6.6461921970747240E-02
+6.6498881430804735E-02
+6.6535804361918333E-02
+6.6572690776716806E-02
+6.6609540687829025E-02
+6.6646354107883804E-02
+6.6683131049509931E-02
+6.6719871525336275E-02
+6.6756575547991637E-02
+6.6793243130104818E-02
+6.6829874284304688E-02
+6.6866469023220035E-02
+6.6903027359479686E-02
+6.6939549305712484E-02
+6.6976034874547230E-02
+6.7012484078612780E-02
+6.7048896930537893E-02
+6.7085273442951468E-02
+6.7121613628482291E-02
+6.7157917499759162E-02
+6.7194185069410939E-02
+6.7230416350066435E-02
+6.7266611354354452E-02
+6.7302770094903874E-02
+6.7338892584343460E-02
+6.7374978835302066E-02
+6.7411028860408492E-02
+6.7447042672291568E-02
+6.7483020283580136E-02
+6.7518961706903011E-02
+6.7554866954888992E-02
+6.7590736040166938E-02
+6.7626568975365661E-02
+6.7662365773113964E-02
+6.7698126446040702E-02
+6.7733851006774648E-02
+6.7769539467944673E-02
+6.7805191842179591E-02
+6.7840808142108217E-02
+6.7876388380359351E-02
+6.7911932569561878E-02
+6.7947440722344557E-02
+6.7982912851336258E-02
+6.8018348969165754E-02
+6.8053749088461915E-02
+6.8089113221853542E-02
+6.8124441381969464E-02
+6.8159733581438495E-02
+6.8194989832889477E-02
+6.8230210148951226E-02
+6.8265394542252542E-02
+6.8300543025422267E-02
+6.8335655611089230E-02
+6.8370732311882246E-02
+6.8405773140430129E-02
+6.8440778109361736E-02
+6.8475747231305839E-02
+6.8510680518891309E-02
+6.8545577984746947E-02
+6.8580439641501553E-02
+6.8615265501783984E-02
+6.8650055578223068E-02
+6.8684809883447592E-02
+6.8719528430086413E-02
+6.8754211230768345E-02
+6.8788858298122202E-02
+6.8823469644776814E-02
+6.8858045283360994E-02
+6.8892585226503572E-02
+6.8927089486833376E-02
+6.8961558076979221E-02
+6.8995991009569949E-02
+6.9030388297234360E-02
+6.9064749952601284E-02
+6.9099075988299549E-02
+6.9133366416957956E-02
+6.9167621251205347E-02
+6.9201840503670564E-02
+6.9236024186982381E-02
+6.9270172313769682E-02
+6.9304284896661239E-02
+6.9338361948285909E-02
+6.9372403481272493E-02
+6.9406409508249792E-02
+6.9440380041846689E-02
+6.9474315094691985E-02
+6.9508214679414454E-02
+6.9542078808642993E-02
+6.9575907495006376E-02
+6.9609700751133458E-02
+6.9643458589653012E-02
+6.9677181023193924E-02
+6.9710868064384979E-02
+6.9744519725855006E-02
+6.9778136020232806E-02
+6.9811716960147263E-02
+6.9845262558227150E-02
+6.9878772827101296E-02
+6.9912247779398529E-02
+6.9945687427747677E-02
+6.9979091784777556E-02
+7.0012460863117007E-02
+7.0045794675394818E-02
+7.0079093234239845E-02
+7.0112356552280902E-02
+7.0145584642146791E-02
+7.0178777516466367E-02
+7.0211935187868446E-02
+7.0245057668981842E-02
+7.0278144972435369E-02
+7.0311197110857843E-02
+7.0344214096878147E-02
+7.0377195943125040E-02
+7.0410142662227351E-02
+7.0443054266813937E-02
+7.0475930769513598E-02
+7.0508772182955162E-02
+7.0541578519767459E-02
+7.0574349792579288E-02
+7.0607086014019493E-02
+7.0639787196716902E-02
+7.0672453353300316E-02
+7.0705084496398576E-02
+7.0737680638640499E-02
+7.0770241792654912E-02
+7.0802767971070643E-02
+7.0835259186516480E-02
+7.0867715451621294E-02
+7.0900136779013884E-02
+7.0932523181323065E-02
+7.0964874671177680E-02
+7.0997191261206544E-02
+7.1029472964038470E-02
+7.1061719792302289E-02
+7.1093931758626827E-02
+7.1126108875640914E-02
+7.1158251155973365E-02
+7.1190358612252980E-02
+7.1222431257108615E-02
+7.1254469103169085E-02
+7.1286472163063191E-02
+7.1318440449419790E-02
+7.1350373974867695E-02
+7.1382272752035722E-02
+7.1414136793552685E-02
+7.1445966112047427E-02
+7.1477760720148747E-02
+7.1509520630485490E-02
+7.1541245855686469E-02
+7.1572936408380514E-02
+7.1604592301196451E-02
+7.1636213546763083E-02
+7.1667800157709252E-02
+7.1699352146663758E-02
+7.1730869526255459E-02
+7.1762352309113153E-02
+7.1793800507865657E-02
+7.1825214135141827E-02
+7.1856593203570462E-02
+7.1887937725780379E-02
+7.1919247714400419E-02
+7.1950523182059384E-02
+7.1981764141386115E-02
+7.2012970605009427E-02
+7.2044142585558149E-02
+7.2075280095661096E-02
+7.2106383147947109E-02
+7.2137451755044976E-02
+7.2168485929583553E-02
+7.2199485684191642E-02
+7.2230451031498083E-02
+7.2261381984131706E-02
+7.2292278554721284E-02
+7.2323140755895701E-02
+7.2353968600283758E-02
+7.2384762100514269E-02
+7.2415521269216049E-02
+7.2446246119017940E-02
+7.2476936662548758E-02
+7.2507592912437330E-02
+7.2538214881312471E-02
+7.2568802581803010E-02
+7.2599356026537776E-02
+7.2629875228145582E-02
+7.2660360199255258E-02
+7.2690810952495605E-02
+7.2721227500495492E-02
+7.2751609855883692E-02
+7.2781958031289062E-02
+7.2812272039340403E-02
+7.2842551892666557E-02
+7.2872797603896339E-02
+7.2903009185658577E-02
+7.2933186650582058E-02
+7.2963330011295652E-02
+7.2993439280428174E-02
+7.3023514470608425E-02
+7.3053555594465247E-02
+7.3083562664627455E-02
+7.3113535693723891E-02
+7.3143474694383329E-02
+7.3173379679234637E-02
+7.3203250660906632E-02
+7.3233087652028128E-02
+7.3262890665227939E-02
+7.3292659713134908E-02
+7.3322394808377864E-02
+7.3352095963585592E-02
+7.3381763191386951E-02
+7.3411396504410739E-02
+7.3440995915285801E-02
+7.3470561436640949E-02
+7.3500093081104986E-02
+7.3529590861306782E-02
+7.3559054789875122E-02
+7.3588484879438851E-02
+7.3617881142626768E-02
+7.3647243592067715E-02
+7.3676572240390509E-02
+7.3705867100223990E-02
+7.3735128184196932E-02
+7.3764355504938206E-02
+7.3793549075076639E-02
+7.3822708907241005E-02
+7.3851835014060174E-02
+7.3880927408162947E-02
+7.3909986102178152E-02
+7.3939011108734617E-02
+7.3968002440461145E-02
+7.3996960109986590E-02
+7.4025884129939754E-02
+7.4054774512949451E-02
+7.4083631271644537E-02
+7.4112454418653800E-02
+7.4141243966606082E-02
+7.4169999928130226E-02
+7.4198722315855004E-02
+7.4227411142409286E-02
+7.4256066420421860E-02
+7.4284688162521567E-02
+7.4313276381337223E-02
+7.4341831089497670E-02
+7.4370352299631709E-02
+7.4398840024368168E-02
+7.4427294276335876E-02
+7.4455715068163661E-02
+7.4484102412480324E-02
+7.4512456321914694E-02
+7.4540776809095613E-02
+7.4569063886651910E-02
+7.4597317567212371E-02
+7.4625537863405825E-02
+7.4653724787861142E-02
+7.4681878353207096E-02
+7.4709998572072514E-02
+7.4738085457086240E-02
+7.4766139020877087E-02
+7.4794159276073885E-02
+7.4822146235305448E-02
+7.4850099911200590E-02
+7.4878020316388155E-02
+7.4905907463496957E-02
+7.4933761365155824E-02
+7.4961582033993557E-02
+7.4989369482638998E-02
+7.5017123723720977E-02
+7.5044844769868307E-02
+7.5072532633709804E-02
+7.5100187327874296E-02
+7.5127808864990625E-02
+7.5155397257687592E-02
+7.5182952518594012E-02
+7.5210474660338741E-02
+7.5237963695550567E-02
+7.5265419636858330E-02
+7.5292842496890847E-02
+7.5320232288276959E-02
+7.5347589023645467E-02
+7.5374912715625214E-02
+7.5402203376845001E-02
+7.5429461019933655E-02
+7.5456685657520020E-02
+7.5483877302232882E-02
+7.5511035966701112E-02
+7.5538161663553496E-02
+7.5565254405418864E-02
+7.5592314204926056E-02
+7.5619341074703861E-02
+7.5646335027381148E-02
+7.5673296075586705E-02
+7.5700224231949359E-02
+7.5727119509097940E-02
+7.5753981919661276E-02
+7.5780811476268181E-02
+7.5807608191547485E-02
+7.5834372078128001E-02
+7.5861103148638573E-02
+7.5887801415708001E-02
+7.5914466891965099E-02
+7.5941099590038724E-02
+7.5967699522557691E-02
+7.5994266702150787E-02
+7.6020801141446895E-02
+7.6047302853074775E-02
+7.6073771849663296E-02
+7.6100208143841275E-02
+7.6126611748237497E-02
+7.6152982675480832E-02
+7.6179320938200082E-02
+7.6205626549024075E-02
+7.6231899520581639E-02
+7.6258139865501562E-02
+7.6284347596412713E-02
+7.6310522725943894E-02
+7.6336665266723919E-02
+7.6362775231381644E-02
+7.6388852632545856E-02
+7.6414897482845384E-02
+7.6440909794909084E-02
+7.6466889581365730E-02
+7.6492836854844176E-02
+7.6518751627973253E-02
+7.6544633913381746E-02
+7.6570483723698513E-02
+7.6596301071552367E-02
+7.6622085969572110E-02
+7.6647838430386625E-02
+7.6673558466624658E-02
+7.6699246090915066E-02
+7.6724901315886704E-02
+7.6750524154168331E-02
+7.6776114618388819E-02
+7.6801672721176995E-02
+7.6827198475161632E-02
+7.6852691892971600E-02
+7.6878152987235701E-02
+7.6903581770582749E-02
+7.6928978255641614E-02
+7.6954342455041069E-02
+7.6979674381409957E-02
+7.7004974047377092E-02
+7.7030241465571289E-02
+7.7055476648621418E-02
+7.7080679609156252E-02
+7.7105850359804620E-02
+7.7130988913195378E-02
+7.7156095281957313E-02
+7.7181169478719266E-02
+7.7206211516110054E-02
+7.7231221406758491E-02
+7.7256199163293432E-02
+7.7281144798343665E-02
+7.7306058324538018E-02
+7.7330939754505362E-02
+7.7355789100874442E-02
+7.7380606376274141E-02
+7.7405391593333248E-02
+7.7430144764680603E-02
+7.7454865902945022E-02
+7.7479555020755334E-02
+7.7504212130740352E-02
+7.7528837245528920E-02
+7.7553430377749838E-02
+7.7577991540031935E-02
+7.7602520745004039E-02
+7.7627018005294965E-02
+7.7651483333533555E-02
+7.7675916742348611E-02
+7.7700318244368960E-02
+7.7724687852223445E-02
+7.7749025578540853E-02
+7.7773331435950041E-02
+7.7797605437079809E-02
+7.7821847594558985E-02
+7.7846057921016398E-02
+7.7870236429080891E-02
+7.7894383131381237E-02
+7.7918498040546291E-02
+7.7942581169204883E-02
+7.7966632529985827E-02
+7.7990652135517924E-02
+7.8014639998430030E-02
+7.8038596131350946E-02
+7.8062520546909514E-02
+7.8086413257734535E-02
+7.8110274276454852E-02
+7.8134103615699294E-02
+7.8157901288096659E-02
+7.8181667306275765E-02
+7.8205401682865452E-02
+7.8229104430494564E-02
+7.8252775561791887E-02
+7.8276415089386250E-02
+7.8300023025906496E-02
+7.8323599383981438E-02
+7.8347144176239905E-02
+7.8370657415310685E-02
+7.8394139113822647E-02
+7.8417589284404607E-02
+7.8441007939685364E-02
+7.8464395092293748E-02
+7.8487750754858587E-02
+7.8511074940008710E-02
+7.8534367660372945E-02
+7.8557628928580078E-02
+7.8580858757258981E-02
+7.8604057159038454E-02
+7.8627224146547312E-02
+7.8650359732414382E-02
+7.8673463929268508E-02
+7.8696536749738477E-02
+7.8719578206453145E-02
+7.8742588312041312E-02
+7.8765567079131821E-02
+7.8788514520353473E-02
+7.8811430648335123E-02
+7.8834315475705546E-02
+7.8857169015093612E-02
+7.8879991279128120E-02
+7.8902782280437886E-02
+7.8925542031651766E-02
+7.8948270545398547E-02
+7.8970967834307057E-02
+7.8993633911006153E-02
+7.9016268788124608E-02
+7.9038872478291292E-02
+7.9061444994134991E-02
+7.9083986348284549E-02
+7.9106496553368780E-02
+7.9128975622016512E-02
+7.9151423566856574E-02
+7.9173840400517767E-02
+7.9196226135628947E-02
+7.9218580784818901E-02
+7.9240904360716471E-02
+7.9263196875950487E-02
+7.9285458343149762E-02
+7.9307688774943111E-02
+7.9329888183959377E-02
+7.9352056582827360E-02
+7.9374193984175917E-02
+7.9396300400633835E-02
+7.9418375844829942E-02
+7.9440420329393080E-02
+7.9462433866952065E-02
+7.9484416470135724E-02
+7.9506368151572859E-02
+7.9528288923892299E-02
+7.9550178799722898E-02
+7.9572037791693445E-02
+7.9593865912432768E-02
+7.9615663174569709E-02
+7.9637429590733069E-02
+7.9659165173551691E-02
+7.9680869935654375E-02
+7.9702543889669963E-02
+7.9724187048227257E-02
+7.9745799423955113E-02
+7.9767381029482332E-02
+7.9788931877437727E-02
+7.9810451980450142E-02
+7.9831941351148392E-02
+7.9853400002161304E-02
+7.9874827946117694E-02
+7.9896225195646389E-02
+7.9917591763376220E-02
+7.9938927661935985E-02
+7.9960232903954528E-02
+7.9981507502060664E-02
+8.0002751468883235E-02
+8.0023964817051027E-02
+8.0045147559192897E-02
+8.0066299707937647E-02
+8.0087421275914117E-02
+8.0108512275751109E-02
+8.0129572720077466E-02
+8.0150602621522002E-02
+8.0171601992713545E-02
+8.0192570846280911E-02
+8.0213509194852928E-02
+8.0234417051058410E-02
+8.0255294427526200E-02
+8.0276141336885098E-02
+8.0296957791763934E-02
+8.0317743804791536E-02
+8.0338499388596718E-02
+8.0359224555808323E-02
+8.0379919319055165E-02
+8.0400583690966046E-02
+8.0421217684169821E-02
+8.0441821311295292E-02
+8.0462394584971286E-02
+8.0482937517826619E-02
+8.0503450122490133E-02
+8.0523932411590643E-02
+8.0544384397756977E-02
+8.0564806093617936E-02
+8.0585197511802362E-02
+8.0605558664939070E-02
+8.0625889565656902E-02
+8.0646190226584646E-02
+8.0666460660351158E-02
+8.0686700879585238E-02
+8.0706910896915729E-02
+8.0727090724971445E-02
+8.0747240376381202E-02
+8.0767359863773827E-02
+8.0787449199778150E-02
+8.0807508397022984E-02
+8.0827537468137159E-02
+8.0847536425749489E-02
+8.0867505282488816E-02
+8.0887444050983942E-02
+8.0907352743863695E-02
+8.0927231373756917E-02
+8.0947079953292395E-02
+8.0966898495098999E-02
+8.0986687011805503E-02
+8.1006445516040762E-02
+8.1026174020433592E-02
+8.1045872537612806E-02
+8.1065541080207235E-02
+8.1085179660845705E-02
+8.1104788292157046E-02
+8.1124366986770058E-02
+8.1143915757313570E-02
+8.1163434616416424E-02
+8.1182923576707436E-02
+8.1202382650815419E-02
+8.1221811851369188E-02
+8.1241211190997586E-02
+8.1260580682329428E-02
+8.1279920337993541E-02
+8.1299230170618741E-02
+8.1318510192833857E-02
+8.1337760417267715E-02
+8.1356980856549119E-02
+8.1376171523306923E-02
+8.1395332430169914E-02
+8.1414463589766950E-02
+8.1433565014726816E-02
+8.1452636717678384E-02
+8.1471678711250439E-02
+8.1490691008071811E-02
+8.1509673620771328E-02
+8.1528626561977804E-02
+8.1547549844320083E-02
+8.1566443480426964E-02
+8.1585307482927277E-02
+8.1604141864449864E-02
+8.1622946637623511E-02
+8.1641721815077090E-02
+8.1660467409439372E-02
+8.1679183433339214E-02
+8.1697869899405445E-02
+8.1716526820266838E-02
+8.1735154208552277E-02
+8.1753752076890548E-02
+8.1772320437910495E-02
+8.1790859304240918E-02
+8.1809368688510659E-02
+8.1827848603348532E-02
+8.1846299061383368E-02
+8.1864720075243966E-02
+8.1883111657559182E-02
+8.1901473820957832E-02
+8.1919806578068716E-02
+8.1938109941520676E-02
+8.1956383923942541E-02
+8.1974628537963112E-02
+8.1992843796211232E-02
+8.2011029711315714E-02
+8.2029186295905387E-02
+8.2047313562609067E-02
+8.2065411524055581E-02
+8.2083480192873745E-02
+8.2101519581692400E-02
+8.2119529703140348E-02
+8.2137510569846417E-02
+8.2155462194439449E-02
+8.2173384589548232E-02
+8.2191277767801621E-02
+8.2209141741828445E-02
+8.2226976524257492E-02
+8.2244782127717603E-02
+8.2262558564837593E-02
+8.2280305848246305E-02
+8.2298023990572539E-02
+8.2315713004445124E-02
+8.2333372902492902E-02
+8.2351003697344674E-02
+8.2368605401629269E-02
+8.2386178027975515E-02
+8.2403721589012227E-02
+8.2421236097368233E-02
+8.2438721565672363E-02
+8.2456178006553416E-02
+8.2473605432640248E-02
+8.2491003856561648E-02
+8.2508373290946471E-02
+8.2525713748423532E-02
+8.2543025241621631E-02
+8.2560307783169612E-02
+8.2577561385696288E-02
+8.2594786061830489E-02
+8.2611981824201042E-02
+8.2629148685436762E-02
+8.2646286658166465E-02
+8.2663395755019006E-02
+8.2680475988623159E-02
+8.2697527371607793E-02
+8.2714549916601696E-02
+8.2731543636233709E-02
+8.2748508543132648E-02
+8.2765444649927356E-02
+8.2782351969246631E-02
+8.2799230513719305E-02
+8.2816080295974204E-02
+8.2832901328640143E-02
+8.2849693624345952E-02
+8.2866457195720444E-02
+8.2883192055392463E-02
+8.2899898215990822E-02
+8.2916575690144323E-02
+8.2933224490481822E-02
+8.2949844629632119E-02
+8.2966436120224057E-02
+8.2982998974886424E-02
+8.2999533206248088E-02
+8.3016038826937838E-02
+8.3032515849584515E-02
+8.3048964286816934E-02
+8.3065384151263924E-02
+8.3081775455554299E-02
+8.3098138212316888E-02
+8.3114472434180506E-02
+8.3130778133773994E-02
+8.3147055323726154E-02
+8.3163304016665815E-02
+8.3179524225221818E-02
+8.3195715962022965E-02
+8.3211879239698097E-02
+8.3228014070876002E-02
+8.3244120468185551E-02
+8.3260198444255529E-02
+8.3276248011714779E-02
+8.3292269183192116E-02
+8.3308261971316355E-02
+8.3324226388716338E-02
+8.3340162448020894E-02
+8.3356070161858808E-02
+8.3371949542858925E-02
+8.3387800603650086E-02
+8.3403623356861079E-02
+8.3419417815120758E-02
+8.3435183991057926E-02
+8.3450921897301411E-02
+8.3466631546480041E-02
+8.3482312951222645E-02
+8.3497966124158024E-02
+8.3513591077915020E-02
+8.3529187825122447E-02
+8.3544756378409121E-02
+8.3560296750403898E-02
+8.3575808953735564E-02
+8.3591293001032949E-02
+8.3606748904924894E-02
+8.3622176678040200E-02
+8.3637576333007710E-02
+8.3652947882456238E-02
+8.3668291339014600E-02
+8.3683606715311637E-02
+8.3698894023976150E-02
+8.3714153277636968E-02
+8.3729384488922934E-02
+8.3744587670462847E-02
+8.3759762834885537E-02
+8.3774909994819832E-02
+8.3790029162894547E-02
+8.3805120351738510E-02
+8.3820183573980550E-02
+8.3835218842249482E-02
+8.3850226169174119E-02
+8.3865205567383305E-02
+8.3880157049505855E-02
+8.3895080628170596E-02
+8.3909976316006329E-02
+8.3924844125641912E-02
+8.3939684069706130E-02
+8.3954496160827841E-02
+8.3969280411635858E-02
+8.3984036834758982E-02
+8.3998765442826057E-02
+8.4013466248465896E-02
+8.4028139264307342E-02
+8.4042784502979195E-02
+8.4057401977110285E-02
+8.4071991699329440E-02
+8.4086553682265475E-02
+8.4101087938547231E-02
+8.4115594480803496E-02
+8.4130073321663126E-02
+8.4144524473754936E-02
+8.4158947949707741E-02
+8.4173343762150368E-02
+8.4187711923711647E-02
+8.4202052447020379E-02
+8.4216365344705418E-02
+8.4230650629395568E-02
+8.4244908313719655E-02
+8.4259138410306494E-02
+8.4273340931784929E-02
+8.4287515890783760E-02
+8.4301663299931814E-02
+8.4315783171857936E-02
+8.4329875519190925E-02
+8.4343940354559624E-02
+8.4357977690592834E-02
+8.4371987539919382E-02
+8.4385969915168113E-02
+8.4399924828967826E-02
+8.4413852293947350E-02
+8.4427752322735514E-02
+8.4441624927961131E-02
+8.4455470122253046E-02
+8.4469287918240057E-02
+8.4483078328550981E-02
+8.4496841365814673E-02
+8.4510577042659935E-02
+8.4524285371715607E-02
+8.4537966365610479E-02
+8.4551620036973404E-02
+8.4565246398433200E-02
+8.4578845462618679E-02
+8.4592417242158671E-02
+8.4605961749681990E-02
+8.4619478997817479E-02
+8.4632968999193939E-02
+8.4646431766440211E-02
+8.4659867312185111E-02
+8.4673275649057467E-02
+8.4686656789686079E-02
+8.4700010746699805E-02
+8.4713337532727431E-02
+8.4726637160397814E-02
+8.4739909642339753E-02
+8.4753154991182092E-02
+8.4766373219553631E-02
+8.4779564340083213E-02
+8.4792728365399639E-02
+8.4805865308131750E-02
+8.4818975180908376E-02
+8.4832057996358318E-02
+8.4845113767110403E-02
+8.4858142505793474E-02
+8.4871144225036332E-02
+8.4884118937467806E-02
+8.4897066655716724E-02
+8.4909987392411901E-02
+8.4922881160182179E-02
+8.4935747971656358E-02
+8.4948587839463269E-02
+8.4961400776231738E-02
+8.4974186794590581E-02
+8.4986945907168640E-02
+8.4999678126594702E-02
+8.5012383465497637E-02
+8.5025061936506233E-02
+8.5037713552249303E-02
+8.5050338325355718E-02
+8.5062936268454264E-02
+8.5075507394173772E-02
+8.5088051715143068E-02
+8.5100569243990967E-02
+8.5113059993346299E-02
+8.5125523975837891E-02
+8.5137961204094545E-02
+8.5150371690745116E-02
+8.5162755448418406E-02
+8.5175112489743257E-02
+8.5187442827348456E-02
+8.5199746473862858E-02
+8.5212023441915280E-02
+8.5224273744134535E-02
+8.5236497393149452E-02
+8.5248694401588859E-02
+8.5260864782081558E-02
+8.5273008547256404E-02
+8.5285125709742199E-02
+8.5297216282167770E-02
+8.5309280277161947E-02
+8.5321317707353544E-02
+8.5333328585371376E-02
+8.5345312923844285E-02
+8.5357270735401086E-02
+8.5369202032670607E-02
+8.5381106828281664E-02
+8.5392985134863070E-02
+8.5404836965043668E-02
+8.5416662331452273E-02
+8.5428461246717713E-02
+8.5440233723468789E-02
+8.5451979774334358E-02
+8.5463699411943220E-02
+8.5475392648924203E-02
+8.5487059497906137E-02
+8.5498699971517836E-02
+8.5510314082388114E-02
+8.5521901843145814E-02
+8.5533463266419751E-02
+8.5544998364838754E-02
+8.5556507151031636E-02
+8.5567989637627212E-02
+8.5579445837254325E-02
+8.5590875762541790E-02
+8.5602279426118436E-02
+8.5613656840613062E-02
+8.5625008018654525E-02
+8.5636332972871626E-02
+8.5647631715893194E-02
+8.5658904260348057E-02
+8.5670150618865029E-02
+8.5681370804072926E-02
+8.5692564828600590E-02
+8.5703732705076835E-02
+8.5714874446130490E-02
+8.5725990064390370E-02
+8.5737079572485303E-02
+8.5748142983044104E-02
+8.5759180308695601E-02
+8.5770191562068623E-02
+8.5781176755791985E-02
+8.5792135902494515E-02
+8.5803069014805028E-02
+8.5813976105352352E-02
+8.5824857186765316E-02
+8.5835712271672734E-02
+8.5846541372703436E-02
+8.5857344502486235E-02
+8.5868121673649961E-02
+8.5878872898823441E-02
+8.5889598190635491E-02
+8.5900297561714939E-02
+8.5910971024690599E-02
+8.5921618592191301E-02
+8.5932240276845873E-02
+8.5942836091283142E-02
+8.5953406048131897E-02
+8.5963950160021008E-02
+8.5974468439579260E-02
+8.5984960899435511E-02
+8.5995427552218548E-02
+8.6005868410557212E-02
+8.6016283487080319E-02
+8.6026672794416711E-02
+8.6037036345195189E-02
+8.6047374152044581E-02
+8.6057686227593730E-02
+8.6067972584471422E-02
+8.6078233235306514E-02
+8.6088468192727807E-02
+8.6098677469364143E-02
+8.6108861077844323E-02
+8.6119019030797189E-02
+8.6129151340851556E-02
+8.6139258020636239E-02
+8.6149339082780066E-02
+8.6159394539911879E-02
+8.6169424404660480E-02
+8.6179428689654697E-02
+8.6189407407523344E-02
+8.6199360570895264E-02
+8.6209288192399272E-02
+8.6219190284664168E-02
+8.6229066860318809E-02
+8.6238917931992010E-02
+8.6248743512312584E-02
+8.6258543613909361E-02
+8.6268318249411155E-02
+8.6278067431446795E-02
+8.6287791172645109E-02
+8.6297489485634912E-02
+8.6307162383045033E-02
+8.6316809877504286E-02
+8.6326431981641499E-02
+8.6336028708085502E-02
+8.6345600069465123E-02
+8.6355146078409162E-02
+8.6364666747546448E-02
+8.6374162089505824E-02
+8.6383632116916090E-02
+8.6393076842406075E-02
+8.6402496278604621E-02
+8.6411890438140515E-02
+8.6421259333642614E-02
+8.6430602977739718E-02
+8.6439921383060669E-02
+8.6449214562234269E-02
+8.6458482527889360E-02
+8.6467725292654757E-02
+8.6476942869159287E-02
+8.6486135270031753E-02
+8.6495302507901009E-02
+8.6504444595395857E-02
+8.6513561545145126E-02
+8.6522653369777644E-02
+8.6531720081922225E-02
+8.6540761694207699E-02
+8.6549778219262880E-02
+8.6558769669716595E-02
+8.6567736058197675E-02
+8.6576677397334934E-02
+8.6585593699757199E-02
+8.6594484978093300E-02
+8.6603351244972052E-02
+8.6612192513022268E-02
+8.6621008794872778E-02
+8.6629800103152410E-02
+8.6638566450489993E-02
+8.6647307849514341E-02
+8.6656024312854268E-02
+8.6664715853138619E-02
+8.6673382482996206E-02
+8.6682024215055831E-02
+8.6690641061946364E-02
+8.6699233036296577E-02
+8.6707800150735329E-02
+8.6716342417891432E-02
+8.6724859850393701E-02
+8.6733352460870980E-02
+8.6741820261952068E-02
+8.6750263266265781E-02
+8.6758681486440989E-02
+8.6767074935106464E-02
+8.6775443624891063E-02
+8.6783787568423587E-02
+8.6792106778332864E-02
+8.6800401267247737E-02
+8.6808671047796993E-02
+8.6816916132609487E-02
+8.6825136534314035E-02
+8.6833332265539451E-02
+8.6841503338914550E-02
+8.6849649767068174E-02
+8.6857771562629138E-02
+8.6865868738226271E-02
+8.6873941306488386E-02
+8.6881989280044314E-02
+8.6890012671522882E-02
+8.6898011493552890E-02
+8.6905985758763182E-02
+8.6913935479782573E-02
+8.6921860669239903E-02
+8.6929761339763961E-02
+8.6937637503983603E-02
+8.6945489174527629E-02
+8.6953316364024882E-02
+8.6961119085104163E-02
+8.6968897350394314E-02
+8.6976651172524150E-02
+8.6984380564122499E-02
+8.6992085537818176E-02
+8.6999766106240009E-02
+8.7007422282016814E-02
+8.7015054077777432E-02
+8.7022661506150664E-02
+8.7030244579765340E-02
+8.7037803311250286E-02
+8.7045337713234333E-02
+8.7052847798346294E-02
+8.7060333579214985E-02
+8.7067795068469234E-02
+8.7075232278737882E-02
+8.7082645222649732E-02
+8.7090033912833612E-02
+8.7097398361918349E-02
+8.7104738582532759E-02
+8.7112054587305671E-02
+8.7119346388865898E-02
+8.7126613999842284E-02
+8.7133857432863629E-02
+8.7141076700558762E-02
+8.7148271815556511E-02
+8.7155442790485704E-02
+8.7162589637975157E-02
+8.7169712370653685E-02
+8.7176811001150128E-02
+8.7183885542093303E-02
+8.7190936006112024E-02
+8.7197962405835119E-02
+8.7204964753891417E-02
+8.7211943062909733E-02
+8.7218897345518895E-02
+8.7225827614347717E-02
+8.7232733882025043E-02
+8.7239616161179673E-02
+8.7246474464440449E-02
+8.7253308804436172E-02
+8.7260119193795685E-02
+8.7266905645147802E-02
+8.7273668171121352E-02
+8.7280406784345135E-02
+8.7287121497448009E-02
+8.7293812323058786E-02
+8.7300479273806270E-02
+8.7307122362319300E-02
+8.7313741601226694E-02
+8.7320337003157292E-02
+8.7326908580739881E-02
+8.7333456346603319E-02
+8.7339980313376420E-02
+8.7346480493687984E-02
+8.7352956900166867E-02
+8.7359409545441871E-02
+8.7365838442141824E-02
+8.7372243602895555E-02
+8.7378625040331892E-02
+8.7384982767079636E-02
+8.7391316795767615E-02
+8.7397627139024672E-02
+8.7403913809479608E-02
+8.7410176819761265E-02
+8.7416416182498458E-02
+8.7422631910320001E-02
+8.7428824015854723E-02
+8.7434992511731452E-02
+8.7441137410579003E-02
+8.7447258725026206E-02
+8.7453356467701873E-02
+8.7459430651234848E-02
+8.7465481288253932E-02
+8.7471508391387967E-02
+8.7477511973265754E-02
+8.7483492046516134E-02
+8.7489448623767924E-02
+8.7495381717649950E-02
+8.7501291340791029E-02
+8.7507177505819989E-02
+8.7513040225365657E-02
+8.7518879512056835E-02
+8.7524695378522366E-02
+8.7530487837391077E-02
+8.7536256901291770E-02
+8.7542002582853287E-02
+8.7547724894704443E-02
+8.7553423849474066E-02
+8.7559099459790971E-02
+8.7564751738283986E-02
+8.7570380697581940E-02
+8.7575986350313634E-02
+8.7581568709107910E-02
+8.7587127786593597E-02
+8.7592663595399495E-02
+8.7598176148154461E-02
+8.7603665457487281E-02
+8.7609131536026785E-02
+8.7614574396401829E-02
+8.7619994051241185E-02
+8.7625390513173723E-02
+8.7630763794828231E-02
+8.7636113908833566E-02
+8.7641440867818513E-02
+8.7646744684411929E-02
+8.7652025371242615E-02
+8.7657282940939399E-02
+8.7662517406131110E-02
+8.7667728779446563E-02
+8.7672917073514586E-02
+8.7678082300964008E-02
+8.7683224474423643E-02
+8.7688343606522307E-02
+8.7693439709888840E-02
+8.7698512797152045E-02
+8.7703562880940764E-02
+8.7708589973883824E-02
+8.7713594088610028E-02
+8.7718575237748203E-02
+8.7723533433927178E-02
+8.7728468689775782E-02
+8.7733381017922829E-02
+8.7738270430997134E-02
+8.7743136941627539E-02
+8.7747980562442859E-02
+8.7752801306071909E-02
+8.7757599185143517E-02
+8.7762374212286526E-02
+8.7767126400129722E-02
+8.7771855761301948E-02
+8.7776562308432032E-02
+8.7781246054148790E-02
+8.7785907011081049E-02
+8.7790545191857625E-02
+8.7795160609107345E-02
+8.7799753275459025E-02
+8.7804323203541507E-02
+8.7808870405983591E-02
+8.7813394895414121E-02
+8.7817896684461896E-02
+8.7822375785755774E-02
+8.7826832211924541E-02
+8.7831265975597039E-02
+8.7835677089402084E-02
+8.7840065565968503E-02
+8.7844431417925126E-02
+8.7848774657900752E-02
+8.7853095298524239E-02
+8.7857393352424387E-02
+8.7861668832230025E-02
+8.7865921750569967E-02
+8.7870152120073042E-02
+8.7874359953368092E-02
+8.7878545263083904E-02
+8.7882708061849335E-02
+8.7886848362293185E-02
+8.7890966177044283E-02
+8.7895061518731443E-02
+8.7899134399983522E-02
+8.7903184833429307E-02
+8.7907212831697626E-02
+8.7911218407417321E-02
+8.7915201573217194E-02
+8.7919162341726087E-02
+8.7923100725572814E-02
+8.7927016737386191E-02
+8.7930910389795058E-02
+8.7934781695428219E-02
+8.7938630666914500E-02
+8.7942457316882744E-02
+8.7946261657961752E-02
+8.7950043702780353E-02
+8.7953803463967375E-02
+8.7957540954151633E-02
+8.7961256185961956E-02
+8.7964949172027157E-02
+8.7968619924976080E-02
+8.7972268457437539E-02
+8.7975894782040348E-02
+8.7979498911413323E-02
+8.7983080858185320E-02
+8.7986640634985125E-02
+8.7990178254441581E-02
+8.7993693729183517E-02
+8.7997187071839733E-02
+8.8000658295039072E-02
+8.8004107411410348E-02
+8.8007534433582391E-02
+8.8010939374184027E-02
+8.8014322245844059E-02
+8.8017683061191315E-02
+8.8021021832854637E-02
+8.8024338573462840E-02
+8.8027633295644739E-02
+8.8030906012029161E-02
+8.8034156735244923E-02
+8.8037385477920865E-02
+8.8040592252685790E-02
+8.8043777072168539E-02
+8.8046939948997927E-02
+8.8050080895802768E-02
+8.8053199925211892E-02
+8.8056297049854126E-02
+8.8059372282358300E-02
+8.8062425635353214E-02
+8.8065457121467711E-02
+8.8068466753330604E-02
+8.8071454543570724E-02
+8.8074420504816883E-02
+8.8077364649697912E-02
+8.8080286990842638E-02
+8.8083187540879876E-02
+8.8086066312438441E-02
+8.8088923318147175E-02
+8.8091758570634893E-02
+8.8094572082530409E-02
+8.8097363866462566E-02
+8.8100133935060165E-02
+8.8102882300952048E-02
+8.8105608976767030E-02
+8.8108313975133926E-02
+8.8110997308681563E-02
+8.8113658990038785E-02
+8.8116299031834378E-02
+8.8118917446697184E-02
+8.8121514247256033E-02
+8.8124089446139753E-02
+8.8126643055977130E-02
+8.8129175089397035E-02
+8.8131685559028256E-02
+8.8134174477499633E-02
+8.8136641857439982E-02
+8.8139087711478131E-02
+8.8141512052242882E-02
+8.8143914892363090E-02
+8.8146296244467570E-02
+8.8148656121185137E-02
+8.8150994535144606E-02
+8.8153311498974818E-02
+8.8155607025304589E-02
+8.8157881126762733E-02
+8.8160133815978092E-02
+8.8162365105579482E-02
+8.8164575008195703E-02
+8.8166763536455611E-02
+8.8168930702988008E-02
+8.8171076520421734E-02
+8.8173201001385593E-02
+8.8175304158508411E-02
+8.8177386004419031E-02
+8.8179446551746254E-02
+8.8181485813118909E-02
+8.8183503801165825E-02
+8.8185500528515828E-02
+8.8187476007797722E-02
+8.8189430251640347E-02
+8.8191363272672518E-02
+8.8193275083523065E-02
+8.8195165696820801E-02
+8.8197035125194556E-02
+8.8198883381273158E-02
+8.8200710477685421E-02
+8.8202516427060174E-02
+8.8204301242026231E-02
+8.8206064935212422E-02
+8.8207807519247575E-02
+8.8209529006760490E-02
+8.8211229410380024E-02
+8.8212908742734977E-02
+8.8214567016454179E-02
+8.8216204244166457E-02
+8.8217820438500613E-02
+8.8219415612085503E-02
+8.8220989777549913E-02
+8.8222542947522700E-02
+8.8224075134632679E-02
+8.8225586351508650E-02
+8.8227076610779470E-02
+8.8228545925073926E-02
+8.8229994307020873E-02
+8.8231421769249127E-02
+8.8232828324387488E-02
+8.8234213985064799E-02
+8.8235578763909889E-02
+8.8236922673551571E-02
+8.8238245726618661E-02
+8.8239547935739987E-02
+8.8240829313544378E-02
+8.8242089872660662E-02
+8.8243329625717654E-02
+8.8244548585344168E-02
+8.8245746764169034E-02
+8.8246924174821079E-02
+8.8248080829929132E-02
+8.8249216742121994E-02
+8.8250331924028508E-02
+8.8251426388277487E-02
+8.8252500147497775E-02
+8.8253553214318159E-02
+8.8254585601367480E-02
+8.8255597321274581E-02
+8.8256588386668250E-02
+8.8257558810177328E-02
+8.8258508604430630E-02
+8.8259437782056999E-02
+8.8260346355685221E-02
+8.8261234337944167E-02
+8.8262101741462623E-02
+8.8262948578869418E-02
+8.8263774862793382E-02
+8.8264580605863341E-02
+8.8265365820708111E-02
+8.8266130519956520E-02
+8.8266874716237398E-02
+8.8267598422179544E-02
+8.8268301650411801E-02
+8.8268984413562984E-02
+8.8269646724261921E-02
+8.8270288595137428E-02
+8.8270910038818332E-02
+8.8271511067933461E-02
+8.8272091695111632E-02
+8.8272651932981672E-02
+8.8273191794172395E-02
+8.8273711291312645E-02
+8.8274210437031222E-02
+8.8274689243956955E-02
+8.8275147724718672E-02
+8.8275585891945188E-02
+8.8276003758265331E-02
+8.8276401336307930E-02
+8.8276778638701800E-02
+8.8277135678075769E-02
+8.8277472467058651E-02
+8.8277789018279290E-02
+8.8278085344366486E-02
+8.8278361457949067E-02
+8.8278617371655863E-02
+8.8278853098115687E-02
+8.8279068649957368E-02
+8.8279264039809735E-02
+8.8279439280301603E-02
+8.8279594384061799E-02
+8.8279729363719153E-02
+8.8279844231902466E-02
+8.8279939001240579E-02
+8.8280013684362307E-02
+8.8280068293896480E-02
+8.8280102842471911E-02
+8.8280117342717443E-02
+8.8280111807261877E-02
+8.8280086248734041E-02
+8.8280040679762764E-02
+8.8279975112976861E-02
+8.8279889561005173E-02
+8.8279784036476502E-02
+8.8279658552019677E-02
+8.8279513120263525E-02
+8.8279347753836876E-02
+8.8279162465368530E-02
+8.8278957267487329E-02
+8.8278732172822102E-02
+8.8278487194001651E-02
+8.8278222343654802E-02
+8.8277937634410400E-02
+8.8277633078897244E-02
+8.8277308689744177E-02
+8.8276964479580000E-02
+8.8276600461033541E-02
+8.8276216646733643E-02
+8.8275813049309121E-02
+8.8275389681388775E-02
+8.8274946555601447E-02
+8.8274483684575966E-02
+8.8274001080941147E-02
+8.8273498757325805E-02
+8.8272976726358782E-02
+8.8272435000668878E-02
+8.8271873592884936E-02
+8.8271292515635771E-02
+8.8270691781550198E-02
+8.8270071403257058E-02
+8.8269431393385167E-02
+8.8268771764563325E-02
+8.8268092529420389E-02
+8.8267393700585173E-02
+8.8266675290686492E-02
+8.8265937312353174E-02
+8.8265179778214034E-02
+8.8264402700897901E-02
+8.8263606093033589E-02
+8.8262789967249955E-02
+8.8261954336175771E-02
+8.8261099212439909E-02
+8.8260224608671153E-02
+8.8259330537498348E-02
+8.8258417011550308E-02
+8.8257484043455847E-02
+8.8256531645843822E-02
+8.8255559831343020E-02
+8.8254568612582282E-02
+8.8253558002190424E-02
+8.8252528012796289E-02
+8.8251478657028662E-02
+8.8250409947516401E-02
+8.8249321896888305E-02
+8.8248214517773205E-02
+8.8247087822799941E-02
+8.8245941824597302E-02
+8.8244776535794142E-02
+8.8243591969019264E-02
+8.8242388136901509E-02
+8.8241165052069678E-02
+8.8239922727152614E-02
+8.8238661174779132E-02
+8.8237380407578059E-02
+8.8236080438178197E-02
+8.8234761279208401E-02
+8.8233422943297474E-02
+8.8232065443074242E-02
+8.8230688791167536E-02
+8.8229293000206169E-02
+8.8227878082818956E-02
+8.8226444051634753E-02
+8.8224990919282348E-02
+8.8223518698390582E-02
+8.8222027401588271E-02
+8.8220517041504243E-02
+8.8218987630767326E-02
+8.8217439182006321E-02
+8.8215871707850071E-02
+8.8214285220927391E-02
+8.8212679733867122E-02
+8.8211055259298052E-02
+8.8209411809849037E-02
+8.8207749398148877E-02
+8.8206068036826416E-02
+8.8204367738510453E-02
+8.8202648515829832E-02
+8.8200910381413367E-02
+8.8199153347889886E-02
+8.8197377427888204E-02
+8.8195582634037137E-02
+8.8193768978965525E-02
+8.8191936475302199E-02
+8.8190085135675944E-02
+8.8188214972715617E-02
+8.8186325999050047E-02
+8.8184418227308020E-02
+8.8182491670118379E-02
+8.8180546340109953E-02
+8.8178582249911569E-02
+8.8176599412152029E-02
+8.8174597839460161E-02
+8.8172577544464809E-02
+8.8170538539794785E-02
+8.8168480838078891E-02
+8.8166404451945984E-02
+8.8164309394024865E-02
+8.8162195676944347E-02
+8.8160063313333287E-02
+8.8157912315820486E-02
+8.8155742697034772E-02
+8.8153554469604961E-02
+8.8151347646159881E-02
+8.8149122239328359E-02
+8.8146878261739212E-02
+8.8144615726021266E-02
+8.8142334644803352E-02
+8.8140035030714270E-02
+8.8137716896382862E-02
+8.8135380254437956E-02
+8.8133025117508354E-02
+8.8130651498222898E-02
+8.8128259409210402E-02
+8.8125848863099682E-02
+8.8123419872519579E-02
+8.8120972450098894E-02
+8.8118506608466485E-02
+8.8116022360251137E-02
+8.8113519718081693E-02
+8.8110998694586967E-02
+8.8108459302395789E-02
+8.8105901554136973E-02
+8.8103325462439347E-02
+8.8100731039931754E-02
+8.8098118299242981E-02
+8.8095487253001870E-02
+8.8092837913837249E-02
+8.8090170294377934E-02
+8.8087484407252739E-02
+8.8084780265090507E-02
+8.8082057880520051E-02
+8.8079317266170187E-02
+8.8076558434669744E-02
+8.8073781398647549E-02
+8.8070986170732418E-02
+8.8068172763553179E-02
+8.8065341189738647E-02
+8.8062491461917664E-02
+8.8059623592719030E-02
+8.8056737594771575E-02
+8.8053833480704141E-02
+8.8050911263145515E-02
+8.8047970954724553E-02
+8.8045012568070069E-02
+8.8042036115810879E-02
+8.8039041610575797E-02
+8.8036029064993665E-02
+8.8032998491693312E-02
+8.8029949903303539E-02
+8.8026883312453175E-02
+8.8023798731771047E-02
+8.8020696173885971E-02
+8.8017575651426788E-02
+8.8014437177022314E-02
+8.8011280763301350E-02
+8.8008106422892737E-02
+8.8004914168425305E-02
+8.8001704012527868E-02
+8.7998475967829254E-02
+8.7995230046958278E-02
+8.7991966262543769E-02
+8.7988684627214542E-02
+8.7985385153599438E-02
+8.7982067854327259E-02
+8.7978732742026833E-02
+8.7975379829326988E-02
+8.7972009128856554E-02
+8.7968620653244345E-02
+8.7965214415119189E-02
+8.7961790427109887E-02
+8.7958348701845296E-02
+8.7954889251954216E-02
+8.7951412090065489E-02
+8.7947917228807904E-02
+8.7944404680810329E-02
+8.7940874458701551E-02
+8.7937326575110414E-02
+8.7933761042665717E-02
+8.7930177873996318E-02
+8.7926577081731003E-02
+8.7922958678498628E-02
+8.7919322676927994E-02
+8.7915669089647930E-02
+8.7911997929287264E-02
+8.7908309208474811E-02
+8.7904602939839399E-02
+8.7900879136009857E-02
+8.7897137809614986E-02
+8.7893378973283642E-02
+8.7889602639644612E-02
+8.7885808821326752E-02
+8.7881997530958864E-02
+8.7878168781169774E-02
+8.7874322584588313E-02
+8.7870458953843295E-02
+8.7866577901563547E-02
+8.7862679440377886E-02
+8.7858763582915153E-02
+8.7854830341804149E-02
+8.7850879729673717E-02
+8.7846911759152657E-02
+8.7842926442869812E-02
+8.7838923793453996E-02
+8.7834903823534038E-02
+8.7830866545738753E-02
+8.7826811972696969E-02
+8.7822740117037501E-02
+8.7818650991389191E-02
+8.7814544608380840E-02
+8.7810420980641291E-02
+8.7806280120799343E-02
+8.7802122041483840E-02
+8.7797946755323597E-02
+8.7793754274947441E-02
+8.7789544612984188E-02
+8.7785317782062666E-02
+8.7781073794811690E-02
+8.7776812663860102E-02
+8.7772534401836702E-02
+8.7768239021370334E-02
+8.7763926535089798E-02
+8.7759596955623936E-02
+8.7755250295601578E-02
+8.7750886567651509E-02
+8.7746505784402601E-02
+8.7742107958483639E-02
+8.7737693102523454E-02
+8.7733261229150886E-02
+8.7728812350994737E-02
+8.7724346480683849E-02
+8.7719863630847023E-02
+8.7715363814113115E-02
+8.7710847043110912E-02
+8.7706313330469257E-02
+8.7701762688816964E-02
+8.7697195130782862E-02
+8.7692610668995780E-02
+8.7688009316084517E-02
+8.7683391084677931E-02
+8.7678755987404822E-02
+8.7674104036894018E-02
+8.7669435245774335E-02
+8.7664749626674601E-02
+8.7660047192223645E-02
+8.7655327955050294E-02
+8.7650591927783350E-02
+8.7645839123051655E-02
+8.7641069553484025E-02
+8.7636283231709272E-02
+8.7631480170356241E-02
+8.7626660382053745E-02
+8.7621823879430599E-02
+8.7616970675115646E-02
+8.7612100781737687E-02
+8.7607214211925563E-02
+8.7602310978308076E-02
+8.7597391093514068E-02
+8.7592454570172354E-02
+8.7587501420911762E-02
+8.7582531658361107E-02
+8.7577545295149217E-02
+8.7572542343904922E-02
+8.7567522817257035E-02
+8.7562486727834371E-02
+8.7557434088265773E-02
+8.7552364911180056E-02
+8.7547279209206033E-02
+8.7542176994972534E-02
+8.7537058281108401E-02
+8.7531923080242421E-02
+8.7526771405003437E-02
+8.7521603268020276E-02
+8.7516418681921754E-02
+8.7511217659336699E-02
+8.7506000212893925E-02
+8.7500766355222262E-02
+8.7495516098950524E-02
+8.7490249456707553E-02
+8.7484966441122150E-02
+8.7479667064823158E-02
+8.7474351340439391E-02
+8.7469019280599664E-02
+8.7463670897932805E-02
+8.7458306205067643E-02
+8.7452925214633007E-02
+8.7447527939257697E-02
+8.7442114391570555E-02
+8.7436684584200397E-02
+8.7431238529776051E-02
+8.7425776240926317E-02
+8.7420297730280067E-02
+8.7414803010466072E-02
+8.7409292094113189E-02
+8.7403764993850219E-02
+8.7398221722306005E-02
+8.7392662292109347E-02
+8.7387086715889101E-02
+8.7381495006274054E-02
+8.7375887175893049E-02
+8.7370263237374901E-02
+8.7364623203348452E-02
+8.7358967086442502E-02
+8.7353294899285880E-02
+8.7347606654507401E-02
+8.7341902364735921E-02
+8.7336182042600227E-02
+8.7330445700729148E-02
+8.7324693351751526E-02
+8.7318925008296175E-02
+8.7313140682991897E-02
+8.7307340388467547E-02
+8.7301524137351927E-02
+8.7295691942273879E-02
+8.7289843815862203E-02
+8.7283979770745729E-02
+8.7278099819553298E-02
+8.7272203974913712E-02
+8.7266292249455799E-02
+8.7260364655808387E-02
+8.7254421206600305E-02
+8.7248461914460354E-02
+8.7242486792017362E-02
+8.7236495851900187E-02
+8.7230489106737599E-02
+8.7224466569158457E-02
+8.7218428251791574E-02
+8.7212374167265780E-02
+8.7206304328209874E-02
+8.7200218747252714E-02
+8.7194117437023100E-02
+8.7188000410149846E-02
+8.7181867679261810E-02
+8.7175719256987777E-02
+8.7169555155956591E-02
+8.7163375388797079E-02
+8.7157179968138043E-02
+8.7150968906608325E-02
+8.7144742216836740E-02
+8.7138499911452116E-02
+8.7132242003083282E-02
+8.7125968504359039E-02
+8.7119679427908228E-02
+8.7113374786359665E-02
+8.7107054592342179E-02
+8.7100718858484583E-02
+8.7094367597415706E-02
+8.7088000821764364E-02
+8.7081618544159398E-02
+8.7075220777229623E-02
+8.7068807533603854E-02
+8.7062378825910919E-02
+8.7055934666779633E-02
+8.7049475068838825E-02
+8.7043000044717336E-02
+8.7036509607043955E-02
+8.7030003768447536E-02
+8.7023482541556896E-02
+8.7016945939000834E-02
+8.7010393973408193E-02
+8.7003826657407787E-02
+8.6997244003628460E-02
+8.6990646024699012E-02
+8.6984032733248270E-02
+8.6977404141905065E-02
+8.6970760263298211E-02
+8.6964101110056549E-02
+8.6957426694808881E-02
+8.6950737030184036E-02
+8.6944032128810828E-02
+8.6937312003318112E-02
+8.6930576666334677E-02
+8.6923826130489351E-02
+8.6917060408410990E-02
+8.6910279512728367E-02
+8.6903483456070338E-02
+8.6896672251065718E-02
+8.6889845910343336E-02
+8.6883004446531992E-02
+8.6876147872260542E-02
+8.6869276200157788E-02
+8.6862389442852558E-02
+8.6855487612973667E-02
+8.6848570723149957E-02
+8.6841638786010228E-02
+8.6834691814183323E-02
+8.6827729820298044E-02
+8.6820752816983246E-02
+8.6813760816867716E-02
+8.6806753832580311E-02
+8.6799731876749817E-02
+8.6792694962005090E-02
+8.6785643100974932E-02
+8.6778576306288172E-02
+8.6771494590573650E-02
+8.6764397966460155E-02
+8.6757286446576543E-02
+8.6750160043551613E-02
+8.6743018770014196E-02
+8.6735862638593120E-02
+8.6728691661917198E-02
+8.6721505852615274E-02
+8.6714305223316149E-02
+8.6707089786648650E-02
+8.6699859555241607E-02
+8.6692614541723834E-02
+8.6685354758724173E-02
+8.6678080218871412E-02
+8.6670790934794406E-02
+8.6663486919121971E-02
+8.6656168184482935E-02
+8.6648834743506098E-02
+8.6641486608820303E-02
+8.6634123793054366E-02
+8.6626746308837113E-02
+8.6619354168797361E-02
+8.6611947385563937E-02
+8.6604525971765670E-02
+8.6597089940031360E-02
+8.6589639302989865E-02
+8.6582174073269985E-02
+8.6574694263500562E-02
+8.6567199886310384E-02
+8.6559690954328306E-02
+8.6552167480183143E-02
+8.6544629476503709E-02
+8.6537076955918835E-02
+8.6529509931057347E-02
+8.6521928414548060E-02
+8.6514332419019790E-02
+8.6506721957101379E-02
+8.6499097041421641E-02
+8.6491457684609405E-02
+8.6483803899293485E-02
+8.6476135698102696E-02
+8.6468453093665881E-02
+8.6460756098611855E-02
+8.6453044725569445E-02
+8.6445318987167466E-02
+8.6437578896034734E-02
+8.6429824464800090E-02
+8.6422055706092349E-02
+8.6414272632540340E-02
+8.6406475256772863E-02
+8.6398663591418776E-02
+8.6390837649106877E-02
+8.6382997442465997E-02
+8.6375142984124964E-02
+8.6367274286712592E-02
+8.6359391362857696E-02
+8.6351494225189118E-02
+8.6343582886335674E-02
+8.6335657358926177E-02
+8.6327717655589470E-02
+8.6319763788954368E-02
+8.6311795771649685E-02
+8.6303813616304251E-02
+8.6295817335546893E-02
+8.6287806942006412E-02
+8.6279782448311665E-02
+8.6271743867091452E-02
+8.6263691210974602E-02
+8.6255624492589944E-02
+8.6247543724566278E-02
+8.6239448919532460E-02
+8.6231340090117292E-02
+8.6223217248949602E-02
+8.6215080408658218E-02
+8.6206929581871955E-02
+8.6198764781219642E-02
+8.6190586019330093E-02
+8.6182393308832136E-02
+8.6174186662354602E-02
+8.6165966092526289E-02
+8.6157731611976054E-02
+8.6149483233332699E-02
+8.6141220969225066E-02
+8.6132944832281941E-02
+8.6124654835132181E-02
+8.6116350990404600E-02
+8.6108033310728013E-02
+8.6099701808731263E-02
+8.6091356497043137E-02
+8.6082997388292490E-02
+8.6074624495108137E-02
+8.6066237830118908E-02
+8.6057837405953602E-02
+8.6049423235241063E-02
+8.6040995330610104E-02
+8.6032553704689554E-02
+8.6024098370108229E-02
+8.6015629339494970E-02
+8.6007146625478578E-02
+8.5998650240687882E-02
+8.5990140197751710E-02
+8.5981616509298892E-02
+8.5973079187958226E-02
+8.5964528246358557E-02
+8.5955963697128712E-02
+8.5947385552897493E-02
+8.5938793826293727E-02
+8.5930188529946258E-02
+8.5921569676483886E-02
+8.5912937278535453E-02
+8.5904291348729761E-02
+8.5895631899695651E-02
+8.5886958944061925E-02
+8.5878272494457439E-02
+8.5869572563510979E-02
+8.5860859163851402E-02
+8.5852132308107509E-02
+8.5843392008908115E-02
+8.5834638278882075E-02
+8.5825871130658191E-02
+8.5817090576865276E-02
+8.5808296630132175E-02
+8.5799489303087700E-02
+8.5790668608360682E-02
+8.5781834558579934E-02
+8.5772987166374270E-02
+8.5764126444372535E-02
+8.5755252405203555E-02
+8.5746365061496119E-02
+8.5737464425879081E-02
+8.5728550510981258E-02
+8.5719623329431477E-02
+8.5710682893858539E-02
+8.5701729216891287E-02
+8.5692762311158535E-02
+8.5683782189289112E-02
+8.5674788863911847E-02
+8.5665782347655539E-02
+8.5656762653149032E-02
+8.5647729793021141E-02
+8.5638683779900693E-02
+8.5629624626416517E-02
+8.5620552345197429E-02
+8.5611466948872242E-02
+8.5602368450069799E-02
+8.5593256861418901E-02
+8.5584132195548390E-02
+8.5574994465087081E-02
+8.5565843682663789E-02
+8.5556679860907356E-02
+8.5547503012446596E-02
+8.5538313149910325E-02
+8.5529110285927371E-02
+8.5519894433126548E-02
+8.5510665604136699E-02
+8.5501423811586638E-02
+8.5492169068105181E-02
+8.5482901386321170E-02
+8.5473620778863404E-02
+8.5464327258360714E-02
+8.5455020837441928E-02
+8.5445701528735860E-02
+8.5436369344871352E-02
+8.5427024298477205E-02
+8.5417666402182249E-02
+8.5408295668615311E-02
+8.5398912110405220E-02
+8.5389515740180791E-02
+8.5380106570570838E-02
+8.5370684614204204E-02
+8.5361249883709689E-02
+8.5351802391716136E-02
+8.5342342150852360E-02
+8.5332869173747189E-02
+8.5323383473029438E-02
+8.5313885061327935E-02
+8.5304373951271495E-02
+8.5294850155488947E-02
+8.5285313686609118E-02
+8.5275764557260825E-02
+8.5266202780072894E-02
+8.5256628367674142E-02
+8.5247041332693410E-02
+8.5237441687759499E-02
+8.5227829445501252E-02
+8.5218204618547469E-02
+8.5208567219526979E-02
+8.5198917261068624E-02
+8.5189254755801205E-02
+8.5179579716353565E-02
+8.5169892155354518E-02
+8.5160192085432879E-02
+8.5150479519217476E-02
+8.5140754469337138E-02
+8.5131016948420679E-02
+8.5121266969096915E-02
+8.5111504543994701E-02
+8.5101729685742825E-02
+8.5091942406970128E-02
+8.5082142720305426E-02
+8.5072330638377561E-02
+8.5062506173815319E-02
+8.5052669339247558E-02
+8.5042820147303078E-02
+8.5032958610610707E-02
+8.5023084741799287E-02
+8.5013198553497621E-02
+8.5003300058334536E-02
+8.4993389268938860E-02
+8.4983466197939408E-02
+8.4973530857964996E-02
+8.4963583261644465E-02
+8.4953623421606644E-02
+8.4943651350480334E-02
+8.4933667060894363E-02
+8.4923670565477560E-02
+8.4913661876858754E-02
+8.4903641007666744E-02
+8.4893607970530388E-02
+8.4883562778078486E-02
+8.4873505442939839E-02
+8.4863435977743332E-02
+8.4853354395117736E-02
+8.4843260707691881E-02
+8.4833154928094609E-02
+8.4823037068954735E-02
+8.4812907142901073E-02
+8.4802765162562466E-02
+8.4792611140567714E-02
+8.4782445089545647E-02
+8.4772267022125092E-02
+8.4762076950934878E-02
+8.4751874888603820E-02
+8.4741660847760733E-02
+8.4731434841034459E-02
+8.4721196881053798E-02
+8.4710946980447593E-02
+8.4700685151844660E-02
+8.4690411407873825E-02
+8.4680125761163905E-02
+8.4669828224343727E-02
+8.4659518810042106E-02
+8.4649197530887885E-02
+8.4638864399509864E-02
+8.4628519428536886E-02
+8.4618162630597751E-02
+8.4607794018321303E-02
+8.4597413604336341E-02
+8.4587021401271723E-02
+8.4576617421756248E-02
+8.4566201678418745E-02
+8.4555774183888030E-02
+8.4545334950792930E-02
+8.4534883991762275E-02
+8.4524421319424878E-02
+8.4513946946409582E-02
+8.4503460885345175E-02
+8.4492963148860512E-02
+8.4482453749584394E-02
+8.4471932700145663E-02
+8.4461400013173135E-02
+8.4450855701295624E-02
+8.4440299777141958E-02
+8.4429732253340967E-02
+8.4419153142521464E-02
+8.4408562457312278E-02
+8.4397960210342238E-02
+8.4387346414240144E-02
+8.4376721081634840E-02
+8.4366084225155152E-02
+8.4355435857429883E-02
+8.4344775991087875E-02
+8.4334104638757942E-02
+8.4323421813068913E-02
+8.4312727526649603E-02
+8.4302021792128840E-02
+8.4291304622135438E-02
+8.4280576029298240E-02
+8.4269836026246048E-02
+8.4259084625607703E-02
+8.4248321840012005E-02
+8.4237547682087799E-02
+8.4226762164463898E-02
+8.4215965299769130E-02
+8.4205157100632311E-02
+8.4194337579682255E-02
+8.4183506749547818E-02
+8.4172664622857787E-02
+8.4161811212241006E-02
+8.4150946530326301E-02
+8.4140070589742474E-02
+8.4129183403118368E-02
+8.4118284983082797E-02
+8.4107375342264590E-02
+8.4096454493292561E-02
+8.4085522448795538E-02
+8.4074579221402337E-02
+8.4063624823741787E-02
+8.4052659268442728E-02
+8.4041682568133949E-02
+8.4030694735444292E-02
+8.4019695783002585E-02
+8.4008685723437643E-02
+8.3997664569378294E-02
+8.3986632333453354E-02
+8.3975589028291650E-02
+8.3964534666521998E-02
+8.3953469260773239E-02
+8.3942392823674175E-02
+8.3931305367853634E-02
+8.3920206905940459E-02
+8.3909097450563450E-02
+8.3897977014351435E-02
+8.3886845609933230E-02
+8.3875703249937691E-02
+8.3864549946993605E-02
+8.3853385713729800E-02
+8.3842210562775119E-02
+8.3831024506758361E-02
+8.3819827558308371E-02
+8.3808619730053949E-02
+8.3797401034623936E-02
+8.3786171484647148E-02
+8.3774931092752414E-02
+8.3763679871568547E-02
+8.3752417833724377E-02
+8.3741144991848732E-02
+8.3729861358570426E-02
+8.3718566946518275E-02
+8.3707261768321120E-02
+8.3695945836607777E-02
+8.3684619164007060E-02
+8.3673281763147797E-02
+8.3661933646658818E-02
+8.3650574827168936E-02
+8.3639205317306994E-02
+8.3627825129701780E-02
+8.3616434276982149E-02
+8.3605032771776916E-02
+8.3593620626714896E-02
+8.3582197854424903E-02
+8.3570764467535794E-02
+8.3559320478676355E-02
+8.3547865900475443E-02
+8.3536400745561845E-02
+8.3524925026564403E-02
+8.3513438756111960E-02
+8.3501941946833302E-02
+8.3490434611357259E-02
+8.3478916762312685E-02
+8.3467388412328355E-02
+8.3455849574033139E-02
+8.3444300260055837E-02
+8.3432740483025264E-02
+8.3421170255570262E-02
+8.3409589590319647E-02
+8.3397998499902232E-02
+8.3386396996946846E-02
+8.3374785094082318E-02
+8.3363162803937477E-02
+8.3351530139141122E-02
+8.3339887112322097E-02
+8.3328233736109217E-02
+8.3316570023131295E-02
+8.3304895986017188E-02
+8.3293211637395684E-02
+8.3281516989895610E-02
+8.3269812056145795E-02
+8.3258096848775082E-02
+8.3246371380412271E-02
+8.3234635663686177E-02
+8.3222889711225656E-02
+8.3211133535659482E-02
+8.3199367149616538E-02
+8.3187590565725597E-02
+8.3175803796615502E-02
+8.3164006854915082E-02
+8.3152199753253150E-02
+8.3140382504258536E-02
+8.3128555120560055E-02
+8.3116717614786534E-02
+8.3104869999566788E-02
+8.3093012287529661E-02
+8.3081144491303952E-02
+8.3069266623518503E-02
+8.3057378696802131E-02
+8.3045480723783649E-02
+8.3033572717091886E-02
+8.3021654689355670E-02
+8.3009726653203830E-02
+8.2997788621265167E-02
+8.2985840606168523E-02
+8.2973882620542713E-02
+8.2961914677016552E-02
+8.2949936788218881E-02
+8.2937948966778516E-02
+8.2925951225324285E-02
+8.2913943576485002E-02
+8.2901926032889484E-02
+8.2889898607166571E-02
+8.2877861311945078E-02
+8.2865814159853821E-02
+8.2853757163521641E-02
+8.2841690335577339E-02
+8.2829613688649759E-02
+8.2817527235367699E-02
+8.2805430988360004E-02
+8.2793324960255488E-02
+8.2781209163682978E-02
+8.2769083611271305E-02
+8.2756948315649267E-02
+8.2744803289445695E-02
+8.2732648545289444E-02
+8.2720484095809288E-02
+8.2708309953634082E-02
+8.2696126131392642E-02
+8.2683932641713781E-02
+8.2671729497226343E-02
+8.2659516710559142E-02
+8.2647294294340992E-02
+8.2635062261200709E-02
+8.2622820623767149E-02
+8.2610569394669098E-02
+8.2598308586535399E-02
+8.2586038211994880E-02
+8.2573758283676343E-02
+8.2561468814208630E-02
+8.2549169816220555E-02
+8.2536861302340961E-02
+8.2524543285198634E-02
+8.2512215777422418E-02
+8.2499878791641140E-02
+8.2487532340483616E-02
+8.2475176436578673E-02
+8.2462811092555127E-02
+8.2450436321041806E-02
+8.2438052134667539E-02
+8.2425658546061140E-02
+8.2413255567851423E-02
+8.2400843212667232E-02
+8.2388421493137382E-02
+8.2375990421890685E-02
+8.2363550011555986E-02
+8.2351100274762085E-02
+8.2338641224137823E-02
+8.2326172872312017E-02
+8.2313695231913481E-02
+8.2301208315571056E-02
+8.2288712135913530E-02
+8.2276206705569774E-02
+8.2263692037168587E-02
+8.2251168143338785E-02
+8.2238635036709196E-02
+8.2226092729908648E-02
+8.2213541235565957E-02
+8.2200980566309964E-02
+8.2188410734769471E-02
+8.2175831753573306E-02
+8.2163243635350297E-02
+8.2150646392729260E-02
+8.2138040038339022E-02
+8.2125424584808412E-02
+8.2112800044766246E-02
+8.2100166430841351E-02
+8.2087523755662528E-02
+8.2074872031858648E-02
+8.2062211272058483E-02
+8.2049541488890890E-02
+8.2036862694984683E-02
+8.2024174902968677E-02
+8.2011478125471687E-02
+8.1998772375122569E-02
+8.1986057664550124E-02
+8.1973334006383167E-02
+8.1960601413250539E-02
+8.1947859897781042E-02
+8.1935109472603532E-02
+8.1922350150346809E-02
+8.1909581943639689E-02
+8.1896804865111014E-02
+8.1884018927389585E-02
+8.1871224143104243E-02
+8.1858420524883818E-02
+8.1845608085357111E-02
+8.1832786837152963E-02
+8.1819956792900189E-02
+8.1807117965227591E-02
+8.1794270366764038E-02
+8.1781414010138317E-02
+8.1768548907979258E-02
+8.1755675072915701E-02
+8.1742792517576449E-02
+8.1729901254590329E-02
+8.1717001296586170E-02
+8.1704092656192800E-02
+8.1691175346039022E-02
+8.1678249378753676E-02
+8.1665314766965577E-02
+8.1652371523303555E-02
+8.1639419660396437E-02
+8.1626459190873024E-02
+8.1613490127362159E-02
+8.1600512482492657E-02
+8.1587526268893346E-02
+8.1574531499193040E-02
+8.1561528186020568E-02
+8.1548516342004759E-02
+8.1535495979774428E-02
+8.1522467111958402E-02
+8.1509429751185497E-02
+8.1496383910084541E-02
+8.1483329601284363E-02
+8.1470266837413777E-02
+8.1457195631101612E-02
+8.1444115994976682E-02
+8.1431027941667816E-02
+8.1417931483803843E-02
+8.1404826634013577E-02
+8.1391713404925847E-02
+8.1378591809169468E-02
+8.1365461859373267E-02
+8.1352323568166060E-02
+8.1339176948176703E-02
+8.1326022012033969E-02
+8.1312858772366714E-02
+8.1299687241803753E-02
+8.1286507432973915E-02
+8.1273319358506013E-02
+8.1260123031028877E-02
+8.1246918463171322E-02
+8.1233705667562175E-02
+8.1220484656830266E-02
+8.1207255443604395E-02
+8.1194018040513419E-02
+8.1180772460186137E-02
+8.1167518715251380E-02
+8.1154256818337975E-02
+8.1140986782074737E-02
+8.1127708619090494E-02
+8.1114422342014061E-02
+8.1101127963474268E-02
+8.1087825496099927E-02
+8.1074514952519897E-02
+8.1061196345362949E-02
+8.1047869687257940E-02
+8.1034534990833698E-02
+8.1021192268719011E-02
+8.1007841533542735E-02
+8.0994482797933684E-02
+8.0981116074520673E-02
+8.0967741375932531E-02
+8.0954358714798086E-02
+8.0940968103746153E-02
+8.0927569555405546E-02
+8.0914163082405122E-02
+8.0900748697373667E-02
+8.0887326412940025E-02
+8.0873896241733009E-02
+8.0860458196381449E-02
+8.0847012289514159E-02
+8.0833558533759967E-02
+8.0820096941747702E-02
+8.0806627526106178E-02
+8.0793150299464225E-02
+8.0779665274450657E-02
+8.0766172463694316E-02
+8.0752671879824003E-02
+8.0739163535468547E-02
+8.0725647443256762E-02
+8.0712123615817505E-02
+8.0698592065779562E-02
+8.0685052805771776E-02
+8.0671505848422975E-02
+8.0657951206361947E-02
+8.0644388892217561E-02
+8.0630818918618605E-02
+8.0617241298193920E-02
+8.0603656043572336E-02
+8.0590063167382653E-02
+8.0576462682253699E-02
+8.0562854600814318E-02
+8.0549238935693310E-02
+8.0535615699519517E-02
+8.0521984904921740E-02
+8.0508346564528807E-02
+8.0494700690969562E-02
+8.0481047296872804E-02
+8.0467386394867377E-02
+8.0453717997582080E-02
+8.0440042117645758E-02
+8.0426358767687223E-02
+8.0412667960335291E-02
+8.0398969708218804E-02
+8.0385264023966563E-02
+8.0371550920207410E-02
+8.0357830409570161E-02
+8.0344102504683629E-02
+8.0330367218176657E-02
+8.0316624562678060E-02
+8.0302874550816652E-02
+8.0289117195221263E-02
+8.0275352508520720E-02
+8.0261580503343824E-02
+8.0247801192319432E-02
+8.0234014588076344E-02
+8.0220220703243389E-02
+8.0206419550449395E-02
+8.0192611142323178E-02
+8.0178795491493565E-02
+8.0164972610589372E-02
+8.0151142512239440E-02
+8.0137305209072571E-02
+8.0123460713717592E-02
+8.0109609038803334E-02
+8.0095750196958609E-02
+8.0081884200812262E-02
+8.0068011062993091E-02
+8.0054130796129927E-02
+8.0040243412851597E-02
+8.0026348925786930E-02
+8.0012447347564741E-02
+7.9998538690813845E-02
+7.9984622968163083E-02
+7.9970700192241256E-02
+7.9956770375677208E-02
+7.9942833531099752E-02
+7.9928889671137704E-02
+7.9914938808419905E-02
+7.9900980955575157E-02
+7.9887016125232316E-02
+7.9873044330020168E-02
+7.9859065582567557E-02
+7.9845079895503282E-02
+7.9831087281456201E-02
+7.9817087753055113E-02
+7.9803081322928848E-02
+7.9789068003706234E-02
+7.9775047808016100E-02
+7.9761020748487232E-02
+7.9746986837748501E-02
+7.9732946088428708E-02
+7.9718898513156666E-02
+7.9704844124561205E-02
+7.9690782935271154E-02
+7.9676714956051289E-02
+7.9662640179466268E-02
+7.9648558588023957E-02
+7.9634470176030925E-02
+7.9620374955446674E-02
+7.9606272935452471E-02
+7.9592164107605654E-02
+7.9578048459823122E-02
+7.9563925993592396E-02
+7.9549796720297342E-02
+7.9535660645825762E-02
+7.9521517765034827E-02
+7.9507368071255843E-02
+7.9493211556296878E-02
+7.9479048211865772E-02
+7.9464878038681255E-02
+7.9450701045979372E-02
+7.9436517240280960E-02
+7.9422326620388062E-02
+7.9408129184470988E-02
+7.9393924935061616E-02
+7.9379713876387800E-02
+7.9365496001970334E-02
+7.9351271292254735E-02
+7.9337039735340550E-02
+7.9322801347732438E-02
+7.9308556150069334E-02
+7.9294304143583669E-02
+7.9280045317838235E-02
+7.9265779663490868E-02
+7.9251507173181746E-02
+7.9237227841916447E-02
+7.9222941674560982E-02
+7.9208648678620458E-02
+7.9194348859550803E-02
+7.9180042221173697E-02
+7.9165728761948120E-02
+7.9151408469386494E-02
+7.9137081332775083E-02
+7.9122747360301074E-02
+7.9108406566503003E-02
+7.9094058949044393E-02
+7.9079704488605254E-02
+7.9065343174677380E-02
+7.9050975022657954E-02
+7.9036600049455688E-02
+7.9022218248578302E-02
+7.9007829602320612E-02
+7.8993434105341417E-02
+7.8979031768462257E-02
+7.8964622600128390E-02
+7.8950206596310551E-02
+7.8935783751051106E-02
+7.8921354068616681E-02
+7.8906917559658910E-02
+7.8892474221363001E-02
+7.8878024028070662E-02
+7.8863566960823417E-02
+7.8849103043662855E-02
+7.8834632311401642E-02
+7.8820154761687397E-02
+7.8805670361374675E-02
+7.8791179091313196E-02
+7.8776680965176357E-02
+7.8762175998158740E-02
+7.8747664186902072E-02
+7.8733145521169251E-02
+7.8718620005276074E-02
+7.8704087659134767E-02
+7.8689548490691569E-02
+7.8675002470924918E-02
+7.8660449569023932E-02
+7.8645889797813895E-02
+7.8631323192523916E-02
+7.8616749763573163E-02
+7.8602169486789358E-02
+7.8587582342889178E-02
+7.8572988341366570E-02
+7.8558387497417156E-02
+7.8543779810233666E-02
+7.8529165268120829E-02
+7.8514543864577194E-02
+7.8499915602804490E-02
+7.8485280485861203E-02
+7.8470638510806087E-02
+7.8455989673307164E-02
+7.8441333979302350E-02
+7.8426671443767679E-02
+7.8412002071145376E-02
+7.8397325840384488E-02
+7.8382642731235824E-02
+7.8367952754807041E-02
+7.8353255934917196E-02
+7.8338552273753248E-02
+7.8323841748793518E-02
+7.8309124346650258E-02
+7.8294400086560342E-02
+7.8279668991028270E-02
+7.8264931052877962E-02
+7.8250186248496556E-02
+7.8235434566009524E-02
+7.8220676011103121E-02
+7.8205910590489855E-02
+7.8191138309293320E-02
+7.8176359171905019E-02
+7.8161573178321078E-02
+7.8146780325367857E-02
+7.8131980613519447E-02
+7.8117174050374882E-02
+7.8102360640327953E-02
+7.8087540365362251E-02
+7.8072713201155788E-02
+7.8057879153849666E-02
+7.8043038258196182E-02
+7.8028190531579236E-02
+7.8013335944907489E-02
+7.7998474467191076E-02
+7.7983606107581996E-02
+7.7968730893080651E-02
+7.7953848832184272E-02
+7.7938959910830538E-02
+7.7924064117119954E-02
+7.7909161450909786E-02
+7.7894251914978369E-02
+7.7879335517043138E-02
+7.7864412267582006E-02
+7.7849482164909597E-02
+7.7834545188190218E-02
+7.7819601321975782E-02
+7.7804650582397050E-02
+7.7789692992868989E-02
+7.7774728553525796E-02
+7.7759757246506508E-02
+7.7744779062800792E-02
+7.7729794012462577E-02
+7.7714802104641739E-02
+7.7699803329040168E-02
+7.7684797668937752E-02
+7.7669785126326871E-02
+7.7654765721924146E-02
+7.7639739468617061E-02
+7.7624706356016551E-02
+7.7609666371562788E-02
+7.7594619516687974E-02
+7.7579565799429678E-02
+7.7564505218356103E-02
+7.7549437759748652E-02
+7.7534363415967505E-02
+7.7519282204085591E-02
+7.7504194144264946E-02
+7.7489099228628275E-02
+7.7473997431655062E-02
+7.7458888746275795E-02
+7.7443773196769372E-02
+7.7428650803311044E-02
+7.7413521552027784E-02
+7.7398385419911897E-02
+7.7383242401886099E-02
+7.7368092507679981E-02
+7.7352935747584770E-02
+7.7337772132149832E-02
+7.7322601668840529E-02
+7.7307424344931833E-02
+7.7292240140275567E-02
+7.7277049050686802E-02
+7.7261851088997552E-02
+7.7246646265276914E-02
+7.7231434579239464E-02
+7.7216216028229229E-02
+7.7200990605026457E-02
+7.7185758300274271E-02
+7.7170519115656408E-02
+7.7155273068062871E-02
+7.7140020170208115E-02
+7.7124760414475177E-02
+7.7109493789138173E-02
+7.7094220292265300E-02
+7.7078939928557938E-02
+7.7063652700415736E-02
+7.7048358605904962E-02
+7.7033057642966238E-02
+7.7017749811204544E-02
+7.7002435110806816E-02
+7.6987113542814900E-02
+7.6971785109016866E-02
+7.6956449809946051E-02
+7.6941107643145490E-02
+7.6925758606880904E-02
+7.6910402707436362E-02
+7.6895039954088404E-02
+7.6879670343759074E-02
+7.6864293859360749E-02
+7.6848910490344605E-02
+7.6833520248722378E-02
+7.6818123149974590E-02
+7.6802719201122860E-02
+7.6787308404296706E-02
+7.6771890752697594E-02
+7.6756466226530276E-02
+7.6741034811895412E-02
+7.6725596523546741E-02
+7.6710151382207895E-02
+7.6694699388977564E-02
+7.6679240530804660E-02
+7.6663774801469436E-02
+7.6648302208359859E-02
+7.6632822759388000E-02
+7.6617336456907215E-02
+7.6601843301084882E-02
+7.6586343286599551E-02
+7.6570836403016623E-02
+7.6555322646299523E-02
+7.6539802028891143E-02
+7.6524274563052982E-02
+7.6508740240611883E-02
+7.6493199044620833E-02
+7.6477650975832701E-02
+7.6462096056399850E-02
+7.6446534300712132E-02
+7.6430965693169539E-02
+7.6415390213721776E-02
+7.6399807860717525E-02
+7.6384218643466492E-02
+7.6368622572079645E-02
+7.6353019657691160E-02
+7.6337409906453449E-02
+7.6321793301998911E-02
+7.6306169823251627E-02
+7.6290539472259958E-02
+7.6274902268842454E-02
+7.6259258224378026E-02
+7.6243607332158417E-02
+7.6227949583939358E-02
+7.6212284975409758E-02
+7.6196613504200844E-02
+7.6180935179080395E-02
+7.6165250019871636E-02
+7.6149558033900916E-02
+7.6133859193786041E-02
+7.6118153471603806E-02
+7.6102440881757036E-02
+7.6086721458579323E-02
+7.6070995211048709E-02
+7.6055262115420311E-02
+7.6039522153261749E-02
+7.6023775332712373E-02
+7.6008021666952141E-02
+7.5992261159242888E-02
+7.5976493806561976E-02
+7.5960719606351368E-02
+7.5944938556992220E-02
+7.5929150658453251E-02
+7.5913355917854489E-02
+7.5897554343889229E-02
+7.5881745936048989E-02
+7.5865930686279295E-02
+7.5850108587743839E-02
+7.5834279636735974E-02
+7.5818443832440768E-02
+7.5802601189998514E-02
+7.5786751729876492E-02
+7.5770895447326625E-02
+7.5755032310905010E-02
+7.5739162302781840E-02
+7.5723285447826999E-02
+7.5707401775179872E-02
+7.5691511284639870E-02
+7.5675613960923691E-02
+7.5659709795952448E-02
+7.5643798791671241E-02
+7.5627880950348947E-02
+7.5611956272730541E-02
+7.5596024759401526E-02
+7.5580086413486097E-02
+7.5564141239782140E-02
+7.5548189239361130E-02
+7.5532230406629569E-02
+7.5516264736973635E-02
+7.5500292234309430E-02
+7.5484312905032727E-02
+7.5468326751037040E-02
+7.5452333770286178E-02
+7.5436333961767188E-02
+7.5420327327149289E-02
+7.5404313868155784E-02
+7.5388293584254348E-02
+7.5372266473971147E-02
+7.5356232536222589E-02
+7.5340191770369741E-02
+7.5324144177750338E-02
+7.5308089765703343E-02
+7.5292028541795633E-02
+7.5275960504805936E-02
+7.5259885648738423E-02
+7.5243803972637746E-02
+7.5227715482960603E-02
+7.5211620183503081E-02
+7.5195518064732320E-02
+7.5179409114938714E-02
+7.5163293339291892E-02
+7.5147170755027873E-02
+7.5131041370110063E-02
+7.5114905174452795E-02
+7.5098762158907706E-02
+7.5082612330565401E-02
+7.5066455701381762E-02
+7.5050292269141172E-02
+7.5034122018477353E-02
+7.5017944943777531E-02
+7.5001761064889025E-02
+7.4985570401470289E-02
+7.4969372942723086E-02
+7.4953168664659758E-02
+7.4936957562864823E-02
+7.4920739656467686E-02
+7.4904514961249724E-02
+7.4888283477372961E-02
+7.4872045201486173E-02
+7.4855800127135316E-02
+7.4839548246138130E-02
+7.4823289556742889E-02
+7.4807024067206504E-02
+7.4790751785124926E-02
+7.4774472711377535E-02
+7.4758186844837635E-02
+7.4741894182081492E-02
+7.4725594717983609E-02
+7.4709288455666961E-02
+7.4692975415004886E-02
+7.4676655611920481E-02
+7.4660329026942140E-02
+7.4643995628956197E-02
+7.4627655417436475E-02
+7.4611308422112638E-02
+7.4594954662854165E-02
+7.4578594129890527E-02
+7.4562226810428497E-02
+7.4545852706598331E-02
+7.4529471827539898E-02
+7.4513084174580330E-02
+7.4496689739017033E-02
+7.4480288515113902E-02
+7.4463880509939212E-02
+7.4447465732727369E-02
+7.4431044185223477E-02
+7.4414615864453706E-02
+7.4398180767664121E-02
+7.4381738892586619E-02
+7.4365290239616438E-02
+7.4348834821555243E-02
+7.4332372653756501E-02
+7.4315903733250269E-02
+7.4299428042160678E-02
+7.4282945570890505E-02
+7.4266456328647867E-02
+7.4249960325345532E-02
+7.4233457559763863E-02
+7.4216948026607929E-02
+7.4200431728220925E-02
+7.4183908674992236E-02
+7.4167378873890077E-02
+7.4150842321049945E-02
+7.4134299011325899E-02
+7.4117748945112569E-02
+7.4101192125609977E-02
+7.4084628553583637E-02
+7.4068058226459135E-02
+7.4051481143315084E-02
+7.4034897310416584E-02
+7.4018306735281036E-02
+7.4001709419843603E-02
+7.3985105362294037E-02
+7.3968494561245587E-02
+7.3951877016180806E-02
+7.3935252726605699E-02
+7.3918621691695344E-02
+7.3901983910792030E-02
+7.3885339388159776E-02
+7.3868688132320351E-02
+7.3852030147731645E-02
+7.3835365429150590E-02
+7.3818693971808236E-02
+7.3802015783578701E-02
+7.3785330877216282E-02
+7.3768639252966353E-02
+7.3751940897047105E-02
+7.3735235800913762E-02
+7.3718523974272823E-02
+7.3701805429053982E-02
+7.3685080165375075E-02
+7.3668348176919543E-02
+7.3651609461207065E-02
+7.3634864021406260E-02
+7.3618111860714625E-02
+7.3601352980644741E-02
+7.3584587382841168E-02
+7.3567815076497525E-02
+7.3551036076082363E-02
+7.3534250382319283E-02
+7.3517457969865543E-02
+7.3500658818047113E-02
+7.3483852947514694E-02
+7.3467040391516053E-02
+7.3450221153764289E-02
+7.3433395210689867E-02
+7.3416562546541025E-02
+7.3399723167384967E-02
+7.3382877083014081E-02
+7.3366024306336972E-02
+7.3349164851243903E-02
+7.3332298718059200E-02
+7.3315425890931374E-02
+7.3298546357990713E-02
+7.3281660123505954E-02
+7.3264767194876707E-02
+7.3247867577783246E-02
+7.3230961276871703E-02
+7.3214048295414585E-02
+7.3197128634586939E-02
+7.3180202294609129E-02
+7.3163269272302822E-02
+7.3146329564109921E-02
+7.3129383174594276E-02
+7.3112430114457436E-02
+7.3095470387412723E-02
+7.3078503982833054E-02
+7.3061530891488938E-02
+7.3044551122482690E-02
+7.3027564691241761E-02
+7.3010571605075902E-02
+7.2993571863297121E-02
+7.2976565462253756E-02
+7.2959552391357554E-02
+7.2942532641402616E-02
+7.2925506223345773E-02
+7.2908473157411210E-02
+7.2891433448124598E-02
+7.2874387080018019E-02
+7.2857334043122876E-02
+7.2840274351329323E-02
+7.2823208022261679E-02
+7.2806135056716847E-02
+7.2789055444982140E-02
+7.2771969179953655E-02
+7.2754876259080253E-02
+7.2737776683132582E-02
+7.2720670466524653E-02
+7.2703557626522960E-02
+7.2686438161608580E-02
+7.2669312055072682E-02
+7.2652179298907174E-02
+7.2635039904703727E-02
+7.2617893885300350E-02
+7.2600741245374731E-02
+7.2583581986267159E-02
+7.2566416105593265E-02
+7.2549243597082244E-02
+7.2532064457210499E-02
+7.2514878690744911E-02
+7.2497686303447217E-02
+7.2480487297078969E-02
+7.2463281671389601E-02
+7.2446069427887477E-02
+7.2428850570479333E-02
+7.2411625103697669E-02
+7.2394393033795412E-02
+7.2377154366746466E-02
+7.2359909100175410E-02
+7.2342657226190987E-02
+7.2325398742067615E-02
+7.2308133654307827E-02
+7.2290861968910228E-02
+7.2273583684607720E-02
+7.2256298798138358E-02
+7.2239007311561007E-02
+7.2221709231530998E-02
+7.2204404565201635E-02
+7.2187093320521464E-02
+7.2169775503688735E-02
+7.2152451108183857E-02
+7.2135120122482979E-02
+7.2117782543878822E-02
+7.2100438379501100E-02
+7.2083087637172472E-02
+7.2065730325255040E-02
+7.2048366450752785E-02
+7.2030996006948872E-02
+7.2013618979890157E-02
+7.1996235369519296E-02
+7.1978845195877036E-02
+7.1961448474096870E-02
+7.1944045193107459E-02
+7.1926635336855158E-02
+7.1909218911352435E-02
+7.1891795938195752E-02
+7.1874366426939951E-02
+7.1856930364006547E-02
+7.1839487736518548E-02
+7.1822038549203743E-02
+7.1804582812604476E-02
+7.1787120534468882E-02
+7.1769651719966451E-02
+7.1752176371842030E-02
+7.1734694487130476E-02
+7.1717206062433730E-02
+7.1699711097494415E-02
+7.1682209593557311E-02
+7.1664701554988927E-02
+7.1647186989846318E-02
+7.1629665903281695E-02
+7.1612138290301303E-02
+7.1594604144892104E-02
+7.1577063471652311E-02
+7.1559516281282376E-02
+7.1541962578730509E-02
+7.1524402360011244E-02
+7.1506835622345499E-02
+7.1489262371498274E-02
+7.1471682615242921E-02
+7.1454096356736135E-02
+7.1436503595623008E-02
+7.1418904329625277E-02
+7.1401298552800710E-02
+7.1383686261868209E-02
+7.1366067471657177E-02
+7.1348442202647758E-02
+7.1330810455104449E-02
+7.1313172209538797E-02
+7.1295527456502639E-02
+7.1277876215060765E-02
+7.1260218506188883E-02
+7.1242554329290539E-02
+7.1224883673506892E-02
+7.1207206529591213E-02
+7.1189522890411180E-02
+7.1171832755993425E-02
+7.1154136150887282E-02
+7.1136433102039792E-02
+7.1118723603660200E-02
+7.1101007629805563E-02
+7.1083285171460134E-02
+7.1065556247756415E-02
+7.1047820876479720E-02
+7.1030079056974338E-02
+7.1012330783328859E-02
+7.0994576051719049E-02
+7.0976814860040233E-02
+7.0959047212403772E-02
+7.0941273126065033E-02
+7.0923492615577913E-02
+7.0905705667863958E-02
+7.0887912260072475E-02
+7.0870112392984810E-02
+7.0852306091983147E-02
+7.0834493376198723E-02
+7.0816674243965941E-02
+7.0798848689663796E-02
+7.0781016704846461E-02
+7.0763178279981909E-02
+7.0745333420425133E-02
+7.0727482151535695E-02
+7.0709624490938983E-02
+7.0691760422002911E-02
+7.0673889922264491E-02
+7.0656012995804165E-02
+7.0638129664202229E-02
+7.0620239938738311E-02
+7.0602343812203580E-02
+7.0584441278003715E-02
+7.0566532341947083E-02
+7.0548617013373852E-02
+7.0530695295328683E-02
+7.0512767185459652E-02
+7.0494832683328831E-02
+7.0476891793257460E-02
+7.0458944519826511E-02
+7.0440990864905351E-02
+7.0423030829242977E-02
+7.0405064413760474E-02
+7.0387091619575140E-02
+7.0369112450382285E-02
+7.0351126917613971E-02
+7.0333135032258687E-02
+7.0315136787630142E-02
+7.0297132167679119E-02
+7.0279121169115555E-02
+7.0261103807031738E-02
+7.0243080095988675E-02
+7.0225050042717133E-02
+7.0207013651425607E-02
+7.0188970919024554E-02
+7.0170921837307457E-02
+7.0152866402645980E-02
+7.0134804620118632E-02
+7.0116736495859297E-02
+7.0098662036585935E-02
+7.0080581248871177E-02
+7.0062494132575745E-02
+7.0044400681449154E-02
+7.0026300895738400E-02
+7.0008194792067754E-02
+6.9990082386531594E-02
+6.9971963673441204E-02
+6.9953838637794127E-02
+6.9935707276080269E-02
+6.9917569598379484E-02
+6.9899425614083285E-02
+6.9881275327837139E-02
+6.9863118742940183E-02
+6.9844955858751903E-02
+6.9826786672415334E-02
+6.9808611185204802E-02
+6.9790429404730625E-02
+6.9772241338205546E-02
+6.9754046988822760E-02
+6.9735846358668419E-02
+6.9717639449528662E-02
+6.9699426262950795E-02
+6.9681206798817882E-02
+6.9662981053724066E-02
+6.9644749025831204E-02
+6.9626510724660612E-02
+6.9608266163504143E-02
+6.9590015348634876E-02
+6.9571758279495313E-02
+6.9553494954029113E-02
+6.9535225367007070E-02
+6.9516949514661461E-02
+6.9498667408810874E-02
+6.9480379068249304E-02
+6.9462084496478296E-02
+6.9443783677769377E-02
+6.9425476602510403E-02
+6.9407163286525547E-02
+6.9388843749521215E-02
+6.9370517993279535E-02
+6.9352186008545549E-02
+6.9333847790385331E-02
+6.9315503341147888E-02
+6.9297152664993297E-02
+6.9278795771397089E-02
+6.9260432670951264E-02
+6.9242063367469464E-02
+6.9223687859326158E-02
+6.9205306144111176E-02
+6.9186918218076432E-02
+6.9168524079512725E-02
+6.9150123740526773E-02
+6.9131717218085309E-02
+6.9113304517665078E-02
+6.9094885632849587E-02
+6.9076460558620378E-02
+6.9058029295396908E-02
+6.9039591844877915E-02
+6.9021148211643985E-02
+6.9002698401693707E-02
+6.8984242419224878E-02
+6.8965780266016297E-02
+6.8947311945208006E-02
+6.8928837465635495E-02
+6.8910356836261455E-02
+6.8891870051675033E-02
+6.8873377097154145E-02
+6.8854877972394007E-02
+6.8836372702334156E-02
+6.8817861308440545E-02
+6.8799343782307801E-02
+6.8780820107093507E-02
+6.8762290281109459E-02
+6.8743754315592501E-02
+6.8725212219711354E-02
+6.8706663997014208E-02
+6.8688109650432830E-02
+6.8669549183954501E-02
+6.8650982601965171E-02
+6.8632409907830233E-02
+6.8613831103788644E-02
+6.8595246189647324E-02
+6.8576655158105945E-02
+6.8558058002916866E-02
+6.8539454739835068E-02
+6.8520845396092045E-02
+6.8502229978155138E-02
+6.8483608462809570E-02
+6.8464980833628508E-02
+6.8446347110381708E-02
+6.8427707319924841E-02
+6.8409061463416215E-02
+6.8390409524056686E-02
+6.8371751496114727E-02
+6.8353087394987286E-02
+6.8334417235746250E-02
+6.8315741019482221E-02
+6.8297058742623165E-02
+6.8278370401708241E-02
+6.8259675993397662E-02
+6.8240975519733654E-02
+6.8222268995777907E-02
+6.8203556436152765E-02
+6.8184837838255033E-02
+6.8166113192358865E-02
+6.8147382503782258E-02
+6.8128645795497988E-02
+6.8109903080092918E-02
+6.8091154333585910E-02
+6.8072399529025648E-02
+6.8053638683186479E-02
+6.8034871837616834E-02
+6.8016099007232447E-02
+6.7997320166158712E-02
+6.7978535292824105E-02
+6.7959744398735061E-02
+6.7940947503583607E-02
+6.7922144617109589E-02
+6.7903335741591409E-02
+6.7884520877963359E-02
+6.7865700024865722E-02
+6.7846873181353184E-02
+6.7828040350418964E-02
+6.7809201536516900E-02
+6.7790356745204103E-02
+6.7771505983096558E-02
+6.7752649254222780E-02
+6.7733786555794692E-02
+6.7714917885307355E-02
+6.7696043251023977E-02
+6.7677162666078358E-02
+6.7658276136117107E-02
+6.7639383657416605E-02
+6.7620485228116659E-02
+6.7601580854802806E-02
+6.7582670545316983E-02
+6.7563754301374457E-02
+6.7544832120929543E-02
+6.7525904002659398E-02
+6.7506969946496659E-02
+6.7488029955369205E-02
+6.7469084045497174E-02
+6.7450132235690519E-02
+6.7431174525178508E-02
+6.7412210897638686E-02
+6.7393241345880220E-02
+6.7374265882844633E-02
+6.7355284522896006E-02
+6.7336297273422038E-02
+6.7317304138993297E-02
+6.7298305120722463E-02
+6.7279300216174592E-02
+6.7260289424701677E-02
+6.7241272751064451E-02
+6.7222250200393519E-02
+6.7203221773064301E-02
+6.7184187467191195E-02
+6.7165147286425572E-02
+6.7146101241790615E-02
+6.7127049343778195E-02
+6.7107991599033537E-02
+6.7088928012465465E-02
+6.7069858578903893E-02
+6.7050783286716542E-02
+6.7031702136425675E-02
+6.7012615149662780E-02
+6.6993522344975701E-02
+6.6974423715294981E-02
+6.6955319246613174E-02
+6.6936208942062383E-02
+6.6917092819286497E-02
+6.6897970889131006E-02
+6.6878843146112699E-02
+6.6859709584040528E-02
+6.6840570206906619E-02
+6.6821425022932632E-02
+6.6802274041746865E-02
+6.6783117274499107E-02
+6.6763954727210306E-02
+6.6744786390418448E-02
+6.6725612253923164E-02
+6.6706432327062429E-02
+6.6687246629412708E-02
+6.6668055167640863E-02
+6.6648857930028338E-02
+6.6629654909596908E-02
+6.6610446123720954E-02
+6.6591231593882985E-02
+6.6572011316381616E-02
+6.6552785270086692E-02
+6.6533553450995264E-02
+6.6514315887197417E-02
+6.6495072604061317E-02
+6.6475823594128083E-02
+6.6456568839912564E-02
+6.6437308340559706E-02
+6.6418042110228517E-02
+6.6398770160995296E-02
+6.6379492498628956E-02
+6.6360209127338560E-02
+6.6340920046782478E-02
+6.6321625254721100E-02
+6.6302324751954217E-02
+6.6283018542830613E-02
+6.6263706632367733E-02
+6.6244389027077411E-02
+6.6225065733358415E-02
+6.6205736753519692E-02
+6.6186402087601737E-02
+6.6167061740016922E-02
+6.6147715721800310E-02
+6.6128364041162041E-02
+6.6109006691925709E-02
+6.6089643665206699E-02
+6.6070274968174011E-02
+6.6050900619876729E-02
+6.6031520630850035E-02
+6.6012134994395608E-02
+6.5992743704044510E-02
+6.5973346766106500E-02
+6.5953944191118566E-02
+6.5934535982841602E-02
+6.5915122138533094E-02
+6.5895702660797403E-02
+6.5876277566681254E-02
+6.5856846872733868E-02
+6.5837410573775346E-02
+6.5817968654806255E-02
+6.5798521113829694E-02
+6.5779067965034507E-02
+6.5759609221539381E-02
+6.5740144889355270E-02
+6.5720674972409784E-02
+6.5701199468521099E-02
+6.5681718371907255E-02
+6.5662231685917408E-02
+6.5642739428633551E-02
+6.5623241614142375E-02
+6.5603738232140038E-02
+6.5584229266696492E-02
+6.5564714723091749E-02
+6.5545194623381917E-02
+6.5525668984597232E-02
+6.5506137812290671E-02
+6.5486601108901921E-02
+6.5467058866555544E-02
+6.5447511073996767E-02
+6.5427957733117284E-02
+6.5408398859252426E-02
+6.5388834465141224E-02
+6.5369264554688347E-02
+6.5349689130235172E-02
+6.5330108193668898E-02
+6.5310521746725192E-02
+6.5290929794194250E-02
+6.5271332344898292E-02
+6.5251729405960232E-02
+6.5232120977245928E-02
+6.5212507056950336E-02
+6.5192887643213737E-02
+6.5173262734268919E-02
+6.5153632338521991E-02
+6.5133996481777048E-02
+6.5114355184270278E-02
+6.5094708430430220E-02
+6.5075056195354086E-02
+6.5055398482937607E-02
+6.5035735321317567E-02
+6.5016066727776420E-02
+6.4996392693633109E-02
+6.4976713209780226E-02
+6.4957028287666599E-02
+6.4937337946486789E-02
+6.4917642188382224E-02
+6.4897940996924308E-02
+6.4878234364608045E-02
+6.4858522313057457E-02
+6.4838804866859626E-02
+6.4819082028805236E-02
+6.4799353790102654E-02
+6.4779620145343331E-02
+6.4759881094025668E-02
+6.4740136639176535E-02
+6.4720386796293800E-02
+6.4700631583071988E-02
+6.4680871005880658E-02
+6.4661105063199734E-02
+6.4641333751453187E-02
+6.4621557063604673E-02
+6.4601774996498787E-02
+6.4581987569466107E-02
+6.4562194808064341E-02
+6.4542396715270831E-02
+6.4522593273820927E-02
+6.4502784475388042E-02
+6.4482970334730855E-02
+6.4463150868366542E-02
+6.4443326081221497E-02
+6.4423495973244232E-02
+6.4403660546698202E-02
+6.4383819806551196E-02
+6.4363973758285550E-02
+6.4344122408535792E-02
+6.4324265763426550E-02
+6.4304403821788619E-02
+6.4284536578430154E-02
+6.4264664035707422E-02
+6.4244786207344001E-02
+6.4224903105869161E-02
+6.4205014734802918E-02
+6.4185121095193906E-02
+6.4165222186887444E-02
+6.4145318008872632E-02
+6.4125408564288264E-02
+6.4105493864392085E-02
+6.4085573920221975E-02
+6.4065648736240238E-02
+6.4045718314685890E-02
+6.4025782659907937E-02
+6.4005841778266917E-02
+6.3985895673246695E-02
+6.3965944340766731E-02
+6.3945987777165827E-02
+6.3926025991245500E-02
+6.3906058997448958E-02
+6.3886086804445005E-02
+6.3866109413748318E-02
+6.3846126827833735E-02
+6.3826139053939399E-02
+6.3806146099491506E-02
+6.3786147963066434E-02
+6.3766144637977723E-02
+6.3746136125324468E-02
+6.3726122438741137E-02
+6.3706103591154625E-02
+6.3686079587171610E-02
+6.3666050429075069E-02
+6.3646016119804374E-02
+6.3625976662821937E-02
+6.3605932062520160E-02
+6.3585882325195353E-02
+6.3565827456913249E-02
+6.3545767460873745E-02
+6.3525702339303533E-02
+6.3505632097068332E-02
+6.3485556741714952E-02
+6.3465476278830937E-02
+6.3445390708307667E-02
+6.3425300029903736E-02
+6.3405204250347943E-02
+6.3385103379743402E-02
+6.3364997424397981E-02
+6.3344886385608631E-02
+6.3324770264900632E-02
+6.3304649065872964E-02
+6.3284522792663070E-02
+6.3264391450175969E-02
+6.3244255043837141E-02
+6.3224113580860636E-02
+6.3203967071486317E-02
+6.3183815524518780E-02
+6.3163658940305137E-02
+6.3143497316768479E-02
+6.3123330654520915E-02
+6.3103158956444194E-02
+6.3082982228384071E-02
+6.3062800482615589E-02
+6.3042613730450323E-02
+6.3022421971134598E-02
+6.3002225199366962E-02
+6.2982023418883204E-02
+6.2961816643205964E-02
+6.2941604884102623E-02
+6.2921388146755575E-02
+6.2901166434389796E-02
+6.2880939743394398E-02
+6.2860708066804230E-02
+6.2840471410471402E-02
+6.2820229798194335E-02
+6.2799983248072261E-02
+6.2779731750636780E-02
+6.2759475291128727E-02
+6.2739213873478111E-02
+6.2718947514458459E-02
+6.2698676224657052E-02
+6.2678400002979751E-02
+6.2658118849822475E-02
+6.2637832779894112E-02
+6.2617541811511399E-02
+6.2597245942612720E-02
+6.2576945153000871E-02
+6.2556639437379477E-02
+6.2536328827361612E-02
+6.2516013354184732E-02
+6.2495693008284427E-02
+6.2475367763218194E-02
+6.2455037616630141E-02
+6.2434702593964227E-02
+6.2414362715787215E-02
+6.2394017982474966E-02
+6.2373668391268212E-02
+6.2353313947527723E-02
+6.2332954661082775E-02
+6.2312590534461421E-02
+6.2292221559252785E-02
+6.2271847731931930E-02
+6.2251469073284181E-02
+6.2231085608903371E-02
+6.2210697342175970E-02
+6.2190304260218529E-02
+6.2169906357946739E-02
+6.2149503646098718E-02
+6.2129096135699100E-02
+6.2108683829163513E-02
+6.2088266726193657E-02
+6.2067844832953058E-02
+6.2047418161740357E-02
+6.2026986723131922E-02
+6.2006550522709626E-02
+6.1986109564509687E-02
+6.1965663846704142E-02
+6.1945213364917415E-02
+6.1924758120541532E-02
+6.1904298122051268E-02
+6.1883833380292644E-02
+6.1863363912659557E-02
+6.1842889735765232E-02
+6.1822410843174309E-02
+6.1801927214785862E-02
+6.1781438847749011E-02
+6.1760945766860892E-02
+6.1740447995019120E-02
+6.1719945535450606E-02
+6.1699438385913269E-02
+6.1678926545517362E-02
+6.1658410014453026E-02
+6.1637888796064522E-02
+6.1617362900154071E-02
+6.1596832336481021E-02
+6.1576297109683646E-02
+6.1555757222536416E-02
+6.1535212679259779E-02
+6.1514663485537413E-02
+6.1494109646096147E-02
+6.1473551162882271E-02
+6.1452988038419296E-02
+6.1432420283908495E-02
+6.1411847914584566E-02
+6.1391270935479227E-02
+6.1370689338281416E-02
+6.1350103118553254E-02
+6.1329512289150359E-02
+6.1308916865843270E-02
+6.1288316852753752E-02
+6.1267712246601783E-02
+6.1247103052162299E-02
+6.1226489288030941E-02
+6.1205870969058628E-02
+6.1185248085429411E-02
+6.1164620621060657E-02
+6.1143988580389996E-02
+6.1123351984936306E-02
+6.1102710850880530E-02
+6.1082065181465139E-02
+6.1061414978407481E-02
+6.1040760244762411E-02
+6.1020100984178968E-02
+6.0999437201770541E-02
+6.0978768904222311E-02
+6.0958096097015850E-02
+6.0937418781896110E-02
+6.0916736960338488E-02
+6.0896050637481366E-02
+6.0875359820395970E-02
+6.0854664516062106E-02
+6.0833964731308289E-02
+6.0813260472884031E-02
+6.0792551747274541E-02
+6.0771838560782152E-02
+6.0751120918207287E-02
+6.0730398823309995E-02
+6.0709672278994514E-02
+6.0688941286659269E-02
+6.0668205849148941E-02
+6.0647465977682377E-02
+6.0626721685875594E-02
+6.0605972981231437E-02
+6.0585219865822014E-02
+6.0564462340109974E-02
+6.0543700401203576E-02
+6.0522934047890962E-02
+6.0502163294241670E-02
+6.0481388160492700E-02
+6.0460608654630460E-02
+6.0439824770596472E-02
+6.0419036504406373E-02
+6.0398243860967718E-02
+6.0377446846971092E-02
+6.0356645469592768E-02
+6.0335839736358206E-02
+6.0315029658796773E-02
+6.0294215254353814E-02
+6.0273396534147594E-02
+6.0252573480845915E-02
+6.0231746072440681E-02
+6.0210914325196534E-02
+6.0190078283147985E-02
+6.0169237964966163E-02
+6.0148393339318346E-02
+6.0127544378142404E-02
+6.0106691103604580E-02
+6.0085833554136825E-02
+6.0064971742197215E-02
+6.0044105655722033E-02
+6.0023235289351017E-02
+6.0002360657077598E-02
+5.9981481773709849E-02
+5.9960598637335404E-02
+5.9939711238800868E-02
+5.9918819584329278E-02
+5.9897923698915993E-02
+5.9877023599997012E-02
+5.9856119275834452E-02
+5.9835210710823379E-02
+5.9814297913102665E-02
+5.9793380904952377E-02
+5.9772459700536983E-02
+5.9751534300927202E-02
+5.9730604706780356E-02
+5.9709670922068747E-02
+5.9688732951792021E-02
+5.9667790802427352E-02
+5.9646844481579295E-02
+5.9625893993418271E-02
+5.9604939335001182E-02
+5.9583980505688167E-02
+5.9563017524030822E-02
+5.9542050414858813E-02
+5.9521079182317589E-02
+5.9500103809775308E-02
+5.9479124289164506E-02
+5.9458140638041182E-02
+5.9437152876810680E-02
+5.9416161014024332E-02
+5.9395165052316623E-02
+5.9374164990935431E-02
+5.9353160824791494E-02
+5.9332152553817422E-02
+5.9311140197072766E-02
+5.9290123776202491E-02
+5.9269103293053939E-02
+5.9248078736916128E-02
+5.9227050106449457E-02
+5.9206017416401878E-02
+5.9184980680860477E-02
+5.9163939903294729E-02
+5.9142895084414490E-02
+5.9121846232286009E-02
+5.9100793361041210E-02
+5.9079736478644160E-02
+5.9058675579123830E-02
+5.9037610656659148E-02
+5.9016541718435143E-02
+5.8995468776842620E-02
+5.8974391844373690E-02
+5.8953310933609490E-02
+5.8932226052389833E-02
+5.8911137194804078E-02
+5.8890044354160537E-02
+5.8868947538878842E-02
+5.8847846765181192E-02
+5.8826742043435298E-02
+5.8805633375831945E-02
+5.8784520763665256E-02
+5.8763404207073051E-02
+5.8742283707092474E-02
+5.8721159279575399E-02
+5.8700030950308769E-02
+5.8678898728842632E-02
+5.8657762595294781E-02
+5.8636622533375385E-02
+5.8615478561287307E-02
+5.8594330707468778E-02
+5.8573178983475305E-02
+5.8552023385972700E-02
+5.8530863913296725E-02
+5.8509700568898475E-02
+5.8488533357879700E-02
+5.8467362291780609E-02
+5.8446187384571399E-02
+5.8425008640677886E-02
+5.8403826053659388E-02
+5.8382639620914951E-02
+5.8361449353603871E-02
+5.8340255265072000E-02
+5.8319057364048354E-02
+5.8297855656681927E-02
+5.8276650149446114E-02
+5.8255440849333165E-02
+5.8234227762569368E-02
+5.8213010892027024E-02
+5.8191790239751205E-02
+5.8170565808382896E-02
+5.8149337601023698E-02
+5.8128105623899702E-02
+5.8106869889189824E-02
+5.8085630408220991E-02
+5.8064387183829641E-02
+5.8043140216267795E-02
+5.8021889513137324E-02
+5.8000635088926139E-02
+5.7979376952259278E-02
+5.7958115096379229E-02
+5.7936849514718058E-02
+5.7915580220109807E-02
+5.7894307234030808E-02
+5.7873030570182983E-02
+5.7851750232800404E-02
+5.7830466222982477E-02
+5.7809178533272922E-02
+5.7787887156308851E-02
+5.7766592104396226E-02
+5.7745293401413406E-02
+5.7723991060258467E-02
+5.7702685076385207E-02
+5.7681375446666384E-02
+5.7660062181094089E-02
+5.7638745292878116E-02
+5.7617424788598791E-02
+5.7596100669718327E-02
+5.7574772939679275E-02
+5.7553441606237918E-02
+5.7532106677465812E-02
+5.7510768160170728E-02
+5.7489426060613517E-02
+5.7468080383270247E-02
+5.7446731130838175E-02
+5.7425378307815196E-02
+5.7404021923744809E-02
+5.7382661988311101E-02
+5.7361298505490578E-02
+5.7339931476589452E-02
+5.7318560907464809E-02
+5.7297186809862490E-02
+5.7275809193686071E-02
+5.7254428060857322E-02
+5.7233043412009937E-02
+5.7211655253446174E-02
+5.7190263595056821E-02
+5.7168868445143552E-02
+5.7147469809258361E-02
+5.7126067692667759E-02
+5.7104662100521675E-02
+5.7083253037962127E-02
+5.7061840510577860E-02
+5.7040424524327837E-02
+5.7019005085554797E-02
+5.6997582201414231E-02
+5.6976155879019358E-02
+5.6954726124517976E-02
+5.6933292943677348E-02
+5.6911856342343178E-02
+5.6890416326445994E-02
+5.6868972902105908E-02
+5.6847526075976984E-02
+5.6826075854572194E-02
+5.6804622242310615E-02
+5.6783165242594774E-02
+5.6761704862179865E-02
+5.6740241112433920E-02
+5.6718774002979977E-02
+5.6697303535453110E-02
+5.6675829710130562E-02
+5.6654352534270230E-02
+5.6632872019829014E-02
+5.6611388175391436E-02
+5.6589901003377525E-02
+5.6568410506363416E-02
+5.6546916691004007E-02
+5.6525419565240577E-02
+5.6503919136593334E-02
+5.6482415412209497E-02
+5.6460908398440209E-02
+5.6439398099810183E-02
+5.6417884520882214E-02
+5.6396367668292584E-02
+5.6374847549542383E-02
+5.6353324171646187E-02
+5.6331797541064210E-02
+5.6310267663495082E-02
+5.6288734542378920E-02
+5.6267198181362998E-02
+5.6245658590247959E-02
+5.6224115782149281E-02
+5.6202569764460780E-02
+5.6181020536161225E-02
+5.6159468097711225E-02
+5.6137912458438445E-02
+5.6116353629692403E-02
+5.6094791619214900E-02
+5.6073226432137753E-02
+5.6051658073296269E-02
+5.6030086547072692E-02
+5.6008511858388822E-02
+5.5986934015435280E-02
+5.5965353027391536E-02
+5.5943768900661398E-02
+5.5922181639059890E-02
+5.5900591247291971E-02
+5.5878997732529037E-02
+5.5857401102263581E-02
+5.5835801363560894E-02
+5.5814198523277354E-02
+5.5792592587783255E-02
+5.5770983562865174E-02
+5.5749371454399149E-02
+5.5727756268672268E-02
+5.5706138011979642E-02
+5.5684516689814133E-02
+5.5662892307221573E-02
+5.5641264871023804E-02
+5.5619634390817546E-02
+5.5598000875105823E-02
+5.5576364326480665E-02
+5.5554724746350294E-02
+5.5533082142896512E-02
+5.5511436529484044E-02
+5.5489787915275215E-02
+5.5468136300637662E-02
+5.5446481686251374E-02
+5.5424824080999704E-02
+5.5403163496600648E-02
+5.5381499940435605E-02
+5.5359833415577347E-02
+5.5338163926221380E-02
+5.5316491480054582E-02
+5.5294816085078830E-02
+5.5273137747174433E-02
+5.5251456471232932E-02
+5.5229772263716718E-02
+5.5208085133109208E-02
+5.5186395087537768E-02
+5.5164702133394021E-02
+5.5143006276562073E-02
+5.5121307521541860E-02
+5.5099605871994063E-02
+5.5077901334274260E-02
+5.5056193919232742E-02
+5.5034483636730969E-02
+5.5012770489907138E-02
+5.4991054480226731E-02
+5.4969335614520602E-02
+5.4947613904002726E-02
+5.4925889357679530E-02
+5.4904161979493701E-02
+5.4882431773123352E-02
+5.4860698744799041E-02
+5.4838962901783077E-02
+5.4817224251944026E-02
+5.4795482803787161E-02
+5.4773738564792333E-02
+5.4751991539419023E-02
+5.4730241731838353E-02
+5.4708489148400458E-02
+5.4686733796580192E-02
+5.4664975683623829E-02
+5.4643214816452561E-02
+5.4621451201755065E-02
+5.4599684845421902E-02
+5.4577915753192117E-02
+5.4556143931286057E-02
+5.4534369386257657E-02
+5.4512592125452126E-02
+5.4490812157604263E-02
+5.4469029490865191E-02
+5.4447244129672695E-02
+5.4425456077465170E-02
+5.4403665341042823E-02
+5.4381871930129985E-02
+5.4360075852604592E-02
+5.4338277111840826E-02
+5.4316475711332746E-02
+5.4294671659799953E-02
+5.4272864968051310E-02
+5.4251055643490566E-02
+5.4229243689684910E-02
+5.4207429110850844E-02
+5.4185611913822138E-02
+5.4163792105979769E-02
+5.4141969695155376E-02
+5.4120144689411523E-02
+5.4098317095870124E-02
+5.4076486920283086E-02
+5.4054654168285636E-02
+5.4032818845476574E-02
+5.4010980957554182E-02
+5.3989140511686615E-02
+5.3967297516093943E-02
+5.3945451978531733E-02
+5.3923603905834928E-02
+5.3901753304601452E-02
+5.3879900180687300E-02
+5.3858044539731871E-02
+5.3836186388123333E-02
+5.3814325732944382E-02
+5.3792462581208768E-02
+5.3770596939693945E-02
+5.3748728815138473E-02
+5.3726858214258606E-02
+5.3704985143767370E-02
+5.3683109610599043E-02
+5.3661231621952556E-02
+5.3639351184640048E-02
+5.3617468304150137E-02
+5.3595582985868209E-02
+5.3573695236920481E-02
+5.3551805065456239E-02
+5.3529912479363687E-02
+5.3508017486106070E-02
+5.3486120092426613E-02
+5.3464220302059377E-02
+5.3442318118266170E-02
+5.3420413549579153E-02
+5.3398506608536712E-02
+5.3376597304145235E-02
+5.3354685638085438E-02
+5.3332771612315109E-02
+5.3310855235639672E-02
+5.3288936519211967E-02
+5.3267015470547595E-02
+5.3245092093570076E-02
+5.3223166393539911E-02
+5.3201238379668558E-02
+5.3179308061217664E-02
+5.3157375442634207E-02
+5.3135440526168268E-02
+5.3113503318806439E-02
+5.3091563833586639E-02
+5.3069622081135394E-02
+5.3047678062180741E-02
+5.3025731776116809E-02
+5.3003783231886696E-02
+5.2981832444369582E-02
+5.2959879423259922E-02
+5.2937924169545743E-02
+5.2915966684982954E-02
+5.2894006978807154E-02
+5.2872045062218841E-02
+5.2850080942442069E-02
+5.2828114623470736E-02
+5.2806146110760614E-02
+5.2784175413118417E-02
+5.2762202539301209E-02
+5.2740227494977719E-02
+5.2718250284692729E-02
+5.2696270915202195E-02
+5.2674289395586743E-02
+5.2652305733862634E-02
+5.2630319934708771E-02
+5.2608332002678955E-02
+5.2586341946368943E-02
+5.2564349776385598E-02
+5.2542355500230530E-02
+5.2520359121171367E-02
+5.2498360643262514E-02
+5.2476360074683870E-02
+5.2454357424433745E-02
+5.2432352699561161E-02
+5.2410345905819743E-02
+5.2388337049968280E-02
+5.2366326140575993E-02
+5.2344313185853829E-02
+5.2322298191257756E-02
+5.2300281161501275E-02
+5.2278262103646389E-02
+5.2256241026785326E-02
+5.2234217938673048E-02
+5.2212192843831016E-02
+5.2190165746954287E-02
+5.2168136657040828E-02
+5.2146105584763534E-02
+5.2124072537058419E-02
+5.2102037516678329E-02
+5.2080000527939763E-02
+5.2057961580593691E-02
+5.2035920685001784E-02
+5.2013877847555900E-02
+5.1991833072498855E-02
+5.1969786365814105E-02
+5.1947737736031174E-02
+5.1925687191466778E-02
+5.1903634738762514E-02
+5.1881580384174064E-02
+5.1859524134497965E-02
+5.1837465996912857E-02
+5.1815405978156377E-02
+5.1793344084122839E-02
+5.1771280321164369E-02
+5.1749214698641910E-02
+5.1727147226742182E-02
+5.1705077911727695E-02
+5.1683006756246951E-02
+5.1660933765106977E-02
+5.1638858948762897E-02
+5.1616782317739821E-02
+5.1594703876758949E-02
+5.1572623628069643E-02
+5.1550541578230545E-02
+5.1528457738940880E-02
+5.1506372120633970E-02
+5.1484284728627573E-02
+5.1462195567362153E-02
+5.1440104642979309E-02
+5.1418011962623723E-02
+5.1395917533729282E-02
+5.1373821364155463E-02
+5.1351723461597179E-02
+5.1329623832871790E-02
+5.1307522484556792E-02
+5.1285419423228173E-02
+5.1263314655463944E-02
+5.1241208188251078E-02
+5.1219100029396301E-02
+5.1196990186717022E-02
+5.1174878667519158E-02
+5.1152765478863250E-02
+5.1130650626494169E-02
+5.1108534114869063E-02
+5.1086415950144848E-02
+5.1064296143101075E-02
+5.1042174704672427E-02
+5.1020051641014010E-02
+5.0997926956050446E-02
+5.0975800655999853E-02
+5.0953672750002760E-02
+5.0931543246406211E-02
+5.0909412150116011E-02
+5.0887279465604403E-02
+5.0865145200915736E-02
+5.0843009366299423E-02
+5.0820871969945260E-02
+5.0798733016609698E-02
+5.0776592511260307E-02
+5.0754450461351235E-02
+5.0732306875064623E-02
+5.0710161760559716E-02
+5.0688015125971084E-02
+5.0665866978388936E-02
+5.0643717322669694E-02
+5.0621566163919385E-02
+5.0599413510645404E-02
+5.0577259372607757E-02
+5.0555103757737786E-02
+5.0532946672053929E-02
+5.0510788121786679E-02
+5.0488628114018400E-02
+5.0466466655888241E-02
+5.0444303753735452E-02
+5.0422139413526953E-02
+5.0399973642815385E-02
+5.0377806451295283E-02
+5.0355637847872593E-02
+5.0333467837914071E-02
+5.0311296426128020E-02
+5.0289123619343692E-02
+5.0266949425801961E-02
+5.0244773853576577E-02
+5.0222596910404239E-02
+5.0200418603795156E-02
+5.0178238940288437E-02
+5.0156057926172483E-02
+5.0133875568718150E-02
+5.0111691876041163E-02
+5.0089506855828463E-02
+5.0067320514723068E-02
+5.0045132859236494E-02
+5.0022943895974718E-02
+5.0000753631600260E-02
+4.9978562073254372E-02
+4.9956369228610360E-02
+4.9934175105404474E-02
+4.9911979711479926E-02
+4.9889783054590325E-02
+4.9867585141461467E-02
+4.9845385978273801E-02
+4.9823185572031414E-02
+4.9800983930928980E-02
+4.9778781062877406E-02
+4.9756576974268087E-02
+4.9734371671211010E-02
+4.9712165161181598E-02
+4.9689957452615612E-02
+4.9667748552987161E-02
+4.9645538467938406E-02
+4.9623327203529487E-02
+4.9601114769175572E-02
+4.9578901175213720E-02
+4.9556686427814335E-02
+4.9534470529333838E-02
+4.9512253484642811E-02
+4.9490035305108343E-02
+4.9467816002253466E-02
+4.9445595581577344E-02
+4.9423374046027813E-02
+4.9401151402884230E-02
+4.9378927664562422E-02
+4.9356702841329807E-02
+4.9334476935516347E-02
+4.9312249948476522E-02
+4.9290021887996673E-02
+4.9267792765587508E-02
+4.9245562591209484E-02
+4.9223331372380413E-02
+4.9201099115978003E-02
+4.9178865826995002E-02
+4.9156631510155889E-02
+4.9134396173728230E-02
+4.9112159828636315E-02
+4.9089922482870668E-02
+4.9067684138448787E-02
+4.9045444798262339E-02
+4.9023204474431606E-02
+4.9000963182080949E-02
+4.8978720928971924E-02
+4.8956477715681727E-02
+4.8934233545049999E-02
+4.8911988426623525E-02
+4.8889742370752290E-02
+4.8867495385553357E-02
+4.8845247478072465E-02
+4.8822998655118008E-02
+4.8800748923207814E-02
+4.8778498289077536E-02
+4.8756246760286025E-02
+4.8733994344577737E-02
+4.8711741049768963E-02
+4.8689486883711622E-02
+4.8667231853637798E-02
+4.8644975965768167E-02
+4.8622719226555144E-02
+4.8600461643966676E-02
+4.8578203226317743E-02
+4.8555943980408488E-02
+4.8533683911827497E-02
+4.8511423027492055E-02
+4.8489161337219089E-02
+4.8466898850513321E-02
+4.8444635572586908E-02
+4.8422371507147850E-02
+4.8400106661819237E-02
+4.8377841048290626E-02
+4.8355574676443427E-02
+4.8333307550557300E-02
+4.8311039674497500E-02
+4.8288771056942965E-02
+4.8266501708934401E-02
+4.8244231637784268E-02
+4.8221960845782931E-02
+4.8199689336806059E-02
+4.8177417121974410E-02
+4.8155144213767140E-02
+4.8132870620621070E-02
+4.8110596348291693E-02
+4.8088321402287366E-02
+4.8066045787770337E-02
+4.8043769510514783E-02
+4.8021492579535988E-02
+4.7999215004704540E-02
+4.7976936793094269E-02
+4.7954657949391931E-02
+4.7932378480365370E-02
+4.7910098397688630E-02
+4.7887817712581666E-02
+4.7865536428599628E-02
+4.7843254546332932E-02
+4.7820972072276605E-02
+4.7798689019459321E-02
+4.7776405399431628E-02
+4.7754121218283978E-02
+4.7731836481219383E-02
+4.7709551194690426E-02
+4.7687265365829130E-02
+4.7664979001781807E-02
+4.7642692109705335E-02
+4.7620404697153423E-02
+4.7598116773269986E-02
+4.7575828347385843E-02
+4.7553539426031813E-02
+4.7531250013775124E-02
+4.7508960116493720E-02
+4.7486669742572353E-02
+4.7464378900364756E-02
+4.7442087596591423E-02
+4.7419795837573289E-02
+4.7397503632533616E-02
+4.7375210993332736E-02
+4.7352917928864126E-02
+4.7330624440573454E-02
+4.7308330529968537E-02
+4.7286036207115759E-02
+4.7263741485725201E-02
+4.7241446374766308E-02
+4.7219150877615114E-02
+4.7196854998783101E-02
+4.7174558747476211E-02
+4.7152262133611816E-02
+4.7129965164756600E-02
+4.7107667847112150E-02
+4.7085370186749617E-02
+4.7063072189567359E-02
+4.7040773862248066E-02
+4.7018475214921106E-02
+4.6996176258388964E-02
+4.6973876999756414E-02
+4.6951577443357831E-02
+4.6929277594672830E-02
+4.6906977461581484E-02
+4.6884677052273435E-02
+4.6862376375098318E-02
+4.6840075438455323E-02
+4.6817774250571188E-02
+4.6795472819503629E-02
+4.6773171152468693E-02
+4.6750869254510635E-02
+4.6728567130698263E-02
+4.6706264789043390E-02
+4.6683962238929809E-02
+4.6661659488932840E-02
+4.6639356546605670E-02
+4.6617053419140082E-02
+4.6594750112700652E-02
+4.6572446633419695E-02
+4.6550142989512953E-02
+4.6527839190464493E-02
+4.6505535244443043E-02
+4.6483231157455507E-02
+4.6460926935628449E-02
+4.6438622586557100E-02
+4.6416318118241900E-02
+4.6394013538365253E-02
+4.6371708854355383E-02
+4.6349404073688899E-02
+4.6327099203959513E-02
+4.6304794252760240E-02
+4.6282489227586265E-02
+4.6260184135903173E-02
+4.6237878985372682E-02
+4.6215573783858474E-02
+4.6193268538879492E-02
+4.6170963256967644E-02
+4.6148657944563694E-02
+4.6126352608784421E-02
+4.6104047257105076E-02
+4.6081741897674604E-02
+4.6059436539535897E-02
+4.6037131191230457E-02
+4.6014825859206257E-02
+4.5992520549514103E-02
+4.5970215269269518E-02
+4.5947910026290256E-02
+4.5925604828476504E-02
+4.5903299683849291E-02
+4.5880994600085434E-02
+4.5858689583087482E-02
+4.5836384638383569E-02
+4.5814079774596235E-02
+4.5791775002974315E-02
+4.5769470332698861E-02
+4.5747165768090244E-02
+4.5724861313434166E-02
+4.5702556977267252E-02
+4.5680252769789674E-02
+4.5657948698798807E-02
+4.5635644769447564E-02
+4.5613340987943007E-02
+4.5591037364045461E-02
+4.5568733907699208E-02
+4.5546430624448797E-02
+4.5524127517544845E-02
+4.5501824594182193E-02
+4.5479521867184333E-02
+4.5457219348049145E-02
+4.5434917041277931E-02
+4.5412614949827020E-02
+4.5390313079265845E-02
+4.5368011437015028E-02
+4.5345710032286844E-02
+4.5323408877524944E-02
+4.5301107983985518E-02
+4.5278807354706754E-02
+4.5256506990322930E-02
+4.5234206897948902E-02
+4.5211907090569478E-02
+4.5189607579419644E-02
+4.5167308370993982E-02
+4.5145009470964531E-02
+4.5122710884125429E-02
+4.5100412615003936E-02
+4.5078114671842563E-02
+4.5055817067228027E-02
+4.5033519811997560E-02
+4.5011222910594520E-02
+4.4988926366634686E-02
+4.4966630188241645E-02
+4.4944334386089461E-02
+4.4922038968213819E-02
+4.4899743938615788E-02
+4.4877449302075552E-02
+4.4855155068148043E-02
+4.4832861247535417E-02
+4.4810567849054114E-02
+4.4788274880105533E-02
+4.4765982347311870E-02
+4.4743690255829686E-02
+4.4721398611092512E-02
+4.4699107421112168E-02
+4.4676816694825629E-02
+4.4654526441263373E-02
+4.4632236669542462E-02
+4.4609947387606839E-02
+4.4587658600358064E-02
+4.4565370312615094E-02
+4.4543082532346789E-02
+4.4520795268983018E-02
+4.4498508531162849E-02
+4.4476222326530535E-02
+4.4453936662270342E-02
+4.4431651544199244E-02
+4.4409366978139381E-02
+4.4387082973167201E-02
+4.4364799540322748E-02
+4.4342516688266734E-02
+4.4320234421781131E-02
+4.4297952745728425E-02
+4.4275671666958442E-02
+4.4253391193019985E-02
+4.4231111333468916E-02
+4.4208832099441500E-02
+4.4186553499439542E-02
+4.4164275536338636E-02
+4.4141998213317248E-02
+4.4119721539829307E-02
+4.4097445527590075E-02
+4.4075170184968177E-02
+4.4052895516894057E-02
+4.4030621529333729E-02
+4.4008348231554251E-02
+4.3986075633091273E-02
+4.3963803740959463E-02
+4.3941532560928018E-02
+4.3919262099684421E-02
+4.3896992365145146E-02
+4.3874723365233632E-02
+4.3852455107587250E-02
+4.3830187599751116E-02
+4.3807920848959035E-02
+4.3785654862252235E-02
+4.3763389647568339E-02
+4.3741125214390268E-02
+4.3718861571636028E-02
+4.3696598724677072E-02
+4.3674336677946499E-02
+4.3652075438586325E-02
+4.3629815016030304E-02
+4.3607555419228478E-02
+4.3585296655882566E-02
+4.3563038733346222E-02
+4.3540781657784904E-02
+4.3518525434959758E-02
+4.3496270072856044E-02
+4.3474015581888889E-02
+4.3451761971711550E-02
+4.3429509249350726E-02
+4.3407257421185293E-02
+4.3385006492099663E-02
+4.3362756466253975E-02
+4.3340507351479644E-02
+4.3318259160796610E-02
+4.3296011905559956E-02
+4.3273765588975097E-02
+4.3251520212762469E-02
+4.3229275785559233E-02
+4.3207032320794557E-02
+4.3184789828675012E-02
+4.3162548313324778E-02
+4.3140307778876487E-02
+4.3118068232963234E-02
+4.3095829684321234E-02
+4.3073592140617026E-02
+4.3051355608555254E-02
+4.3029120095653524E-02
+4.3006885611463611E-02
+4.2984652165301382E-02
+4.2962419762632958E-02
+4.2940188407347271E-02
+4.2917958106659923E-02
+4.2895728871660273E-02
+4.2873500712422428E-02
+4.2851273635096859E-02
+4.2829047645211754E-02
+4.2806822749852258E-02
+4.2784598956995316E-02
+4.2762376274629567E-02
+4.2740154710745333E-02
+4.2717934272921851E-02
+4.2695714966988402E-02
+4.2673496798538386E-02
+4.2651279776426909E-02
+4.2629063911912880E-02
+4.2606849213908393E-02
+4.2584635686626009E-02
+4.2562423334485261E-02
+4.2540212166200908E-02
+4.2518002191896401E-02
+4.2495793419238030E-02
+4.2473585853536465E-02
+4.2451379501132466E-02
+4.2429174371256831E-02
+4.2406970473291269E-02
+4.2384767814234135E-02
+4.2362566399989116E-02
+4.2340366237184145E-02
+4.2318167333350906E-02
+4.2295969696368216E-02
+4.2273773335109018E-02
+4.2251578258486980E-02
+4.2229384473565279E-02
+4.2207191986288424E-02
+4.2185000803350199E-02
+4.2162810932669825E-02
+4.2140622382167550E-02
+4.2118435159264778E-02
+4.2096249271270897E-02
+4.2074064725968273E-02
+4.2051881531508288E-02
+4.2029699695217887E-02
+4.2007519222681873E-02
+4.1985340119875633E-02
+4.1963162396520204E-02
+4.1940986063626555E-02
+4.1918811129016791E-02
+4.1896637597257480E-02
+4.1874465473481080E-02
+4.1852294764780237E-02
+4.1830125478857672E-02
+4.1807957625732931E-02
+4.1785791216491883E-02
+4.1763626258533373E-02
+4.1741462754390404E-02
+4.1719300707994372E-02
+4.1697140129619926E-02
+4.1674981030680548E-02
+4.1652823418888561E-02
+4.1630667299558798E-02
+4.1608512678916215E-02
+4.1586359564809203E-02
+4.1564207965246881E-02
+4.1542057888248371E-02
+4.1519909341751107E-02
+4.1497762332236385E-02
+4.1475616864968402E-02
+4.1453472947059859E-02
+4.1431330589831845E-02
+4.1409189804178494E-02
+4.1387050594390788E-02
+4.1364912962276172E-02
+4.1342776915073792E-02
+4.1320642465926621E-02
+4.1298509626069776E-02
+4.1276378400240038E-02
+4.1254248792321417E-02
+4.1232120809281056E-02
+4.1209994459719859E-02
+4.1187869751711334E-02
+4.1165746692568041E-02
+4.1143625289614329E-02
+4.1121505550445386E-02
+4.1099387482711906E-02
+4.1077271093923451E-02
+4.1055156391493701E-02
+4.1033043383033721E-02
+4.1010932076517660E-02
+4.0988822479688637E-02
+4.0966714598866805E-02
+4.0944608439997456E-02
+4.0922504010798007E-02
+4.0900401320571218E-02
+4.0878300377922394E-02
+4.0856201189659269E-02
+4.0834103762211256E-02
+4.0812008101179034E-02
+4.0789914211920415E-02
+4.0767822103362196E-02
+4.0745731788555319E-02
+4.0723643278117928E-02
+4.0701556574251493E-02
+4.0679471678174761E-02
+4.0657388597780286E-02
+4.0635307344727069E-02
+4.0613227928876179E-02
+4.0591150357337999E-02
+4.0569074636863760E-02
+4.0547000773636488E-02
+4.0524928773834311E-02
+4.0502858645677639E-02
+4.0480790398882506E-02
+4.0458724041621499E-02
+4.0436659579000181E-02
+4.0414597016085033E-02
+4.0392536359721662E-02
+4.0370477617457073E-02
+4.0348420798404075E-02
+4.0326365913163992E-02
+4.0304312970774504E-02
+4.0282261976130704E-02
+4.0260212933830634E-02
+4.0238165851205925E-02
+4.0216120736835267E-02
+4.0194077598454989E-02
+4.0172036442757075E-02
+4.0149997277066529E-02
+4.0127960111073065E-02
+4.0105924954545048E-02
+4.0083891812723586E-02
+4.0061860688153018E-02
+4.0039831586708166E-02
+4.0017804519624979E-02
+3.9995779497644109E-02
+3.9973756527086464E-02
+3.9951735613147819E-02
+3.9929716763018201E-02
+3.9907699985448589E-02
+3.9885685288107015E-02
+3.9863672676327219E-02
+3.9841662155870490E-02
+3.9819653736884376E-02
+3.9797647430977155E-02
+3.9775643245143870E-02
+3.9753641181699724E-02
+3.9731641244989839E-02
+3.9709643445478345E-02
+3.9687647794278372E-02
+3.9665654299276189E-02
+3.9643662966732877E-02
+3.9621673802041797E-02
+3.9599686809475641E-02
+3.9577701994875397E-02
+3.9555719370069409E-02
+3.9533738947696115E-02
+3.9511760733945217E-02
+3.9489784730872474E-02
+3.9467810943524508E-02
+3.9445839382140656E-02
+3.9423870056674117E-02
+3.9401902973225295E-02
+3.9379938136886394E-02
+3.9357975555561781E-02
+3.9336015239500650E-02
+3.9314057197110182E-02
+3.9292101432553621E-02
+3.9270147950200028E-02
+3.9248196759524817E-02
+3.9226247871946958E-02
+3.9204301295691746E-02
+3.9182357035531259E-02
+3.9160415096447604E-02
+3.9138475484540754E-02
+3.9116538206428152E-02
+3.9094603271560245E-02
+3.9072670690831902E-02
+3.9050740472465879E-02
+3.9028812620941662E-02
+3.9006887141189578E-02
+3.8984964040988695E-02
+3.8963043328758648E-02
+3.8941125012207936E-02
+3.8919209098557693E-02
+3.8897295595283182E-02
+3.8875384510337174E-02
+3.8853475851482563E-02
+3.8831569625222384E-02
+3.8809665837710609E-02
+3.8787764496276675E-02
+3.8765865609294646E-02
+3.8743969184409574E-02
+3.8722075227451629E-02
+3.8700183744393511E-02
+3.8678294744085254E-02
+3.8656408236528682E-02
+3.8634524228960285E-02
+3.8612642725434999E-02
+3.8590763731252781E-02
+3.8568887256174633E-02
+3.8547013310395430E-02
+3.8525141899805909E-02
+3.8503273027920983E-02
+3.8481406701460399E-02
+3.8459542931942620E-02
+3.8437681729912417E-02
+3.8415823100190795E-02
+3.8393967046400898E-02
+3.8372113576417330E-02
+3.8350262701212737E-02
+3.8328414429041689E-02
+3.8306568762771352E-02
+3.8284725705743629E-02
+3.8262885267444195E-02
+3.8241047459367641E-02
+3.8219212290022224E-02
+3.8197379765084152E-02
+3.8175549890454033E-02
+3.8153722672884763E-02
+3.8131898119326733E-02
+3.8110076237224462E-02
+3.8088257034251408E-02
+3.8066440518106363E-02
+3.8044626696517390E-02
+3.8022815577015340E-02
+3.8001007166460619E-02
+3.7979201471542441E-02
+3.7957398498630258E-02
+3.7935598253918866E-02
+3.7913800744767030E-02
+3.7892005980378951E-02
+3.7870213969655057E-02
+3.7848424719389241E-02
+3.7826638235796115E-02
+3.7804854525311717E-02
+3.7783073594548418E-02
+3.7761295450577888E-02
+3.7739520101409400E-02
+3.7717747554961933E-02
+3.7695977817904382E-02
+3.7674210896470557E-02
+3.7652446797685764E-02
+3.7630685529374458E-02
+3.7608927099351985E-02
+3.7587171515313302E-02
+3.7565418784864357E-02
+3.7543668915041732E-02
+3.7521921912593917E-02
+3.7500177783993720E-02
+3.7478436535358144E-02
+3.7456698173435672E-02
+3.7434962707345601E-02
+3.7413230146518581E-02
+3.7391500497784703E-02
+3.7369773766305452E-02
+3.7348049957545877E-02
+3.7326329077529523E-02
+3.7304611133053570E-02
+3.7282896134404324E-02
+3.7261184092663616E-02
+3.7239475014524341E-02
+3.7217768903035207E-02
+3.7196065762769924E-02
+3.7174365601906706E-02
+3.7152668429014844E-02
+3.7130974252078293E-02
+3.7109283078808911E-02
+3.7087594915953537E-02
+3.7065909769224831E-02
+3.7044227645350446E-02
+3.7022548554159637E-02
+3.7000872505515141E-02
+3.6979199504552904E-02
+3.6957529553989128E-02
+3.6935862659794157E-02
+3.6914198832478047E-02
+3.6892538081683988E-02
+3.6870880412391352E-02
+3.6849225828721723E-02
+3.6827574338268193E-02
+3.6805925950988264E-02
+3.6784280675518893E-02
+3.6762638518038432E-02
+3.6740999484614581E-02
+3.6719363582076919E-02
+3.6697730817487985E-02
+3.6676101197643654E-02
+3.6654474729104471E-02
+3.6632851418679002E-02
+3.6611231273779368E-02
+3.6589614302018680E-02
+3.6568000511814726E-02
+3.6546389911840213E-02
+3.6524782508083789E-02
+3.6503178303468227E-02
+3.6481577302690929E-02
+3.6459979516508978E-02
+3.6438384956361806E-02
+3.6416793628869452E-02
+3.6395205537976420E-02
+3.6373620689480073E-02
+3.6352039091956986E-02
+3.6330460753797283E-02
+3.6308885681681211E-02
+3.6287313881875338E-02
+3.6265745361090923E-02
+3.6244180126362081E-02
+3.6222618184517441E-02
+3.6201059541977144E-02
+3.6179504205333557E-02
+3.6157952182402350E-02
+3.6136403481370920E-02
+3.6114858109307160E-02
+3.6093316072225511E-02
+3.6071777376784457E-02
+3.6050242031369174E-02
+3.6028710044308743E-02
+3.6007181421469435E-02
+3.5985656167636847E-02
+3.5964134289295575E-02
+3.5942615795002388E-02
+3.5921100692879140E-02
+3.5899588989173337E-02
+3.5878080689897777E-02
+3.5856575802721745E-02
+3.5835074336285334E-02
+3.5813576297801721E-02
+3.5792081692219181E-02
+3.5770590524855310E-02
+3.5749102803572561E-02
+3.5727618536864195E-02
+3.5706137731982363E-02
+3.5684660395216339E-02
+3.5663186533101035E-02
+3.5641716152726426E-02
+3.5620249261113485E-02
+3.5598785864457319E-02
+3.5577325968731803E-02
+3.5555869581915589E-02
+3.5534416713995313E-02
+3.5512967373496657E-02
+3.5491521564765871E-02
+3.5470079291707431E-02
+3.5448640560329890E-02
+3.5427205377694823E-02
+3.5405773751656974E-02
+3.5384345691087733E-02
+3.5362921204574425E-02
+3.5341500299440616E-02
+3.5320082982557836E-02
+3.5298669258864851E-02
+3.5277259132093702E-02
+3.5255852608155537E-02
+3.5234449696647414E-02
+3.5213050407024708E-02
+3.5191654746366700E-02
+3.5170262721007442E-02
+3.5148874336761914E-02
+3.5127489599020283E-02
+3.5106108514026735E-02
+3.5084731089923528E-02
+3.5063357334903185E-02
+3.5041987255853745E-02
+3.5020620859152592E-02
+3.4999258151433940E-02
+3.4977899139607596E-02
+3.4956543830551252E-02
+3.4935192231011165E-02
+3.4913844347726715E-02
+3.4892500187586363E-02
+3.4871159757549730E-02
+3.4849823064265879E-02
+3.4828490113955474E-02
+3.4807160913303138E-02
+3.4785835470904830E-02
+3.4764513795540318E-02
+3.4743195892516517E-02
+3.4721881764804251E-02
+3.4700571418072292E-02
+3.4679264862893570E-02
+3.4657962109270912E-02
+3.4636663161627217E-02
+3.4615368022793469E-02
+3.4594076699429259E-02
+3.4572789201562322E-02
+3.4551505538380885E-02
+3.4530225716838711E-02
+3.4508949743339581E-02
+3.4487677622672484E-02
+3.4466409359007306E-02
+3.4445144958573204E-02
+3.4423884429939773E-02
+3.4402627781320992E-02
+3.4381375019435813E-02
+3.4360126150710275E-02
+3.4338881181530556E-02
+3.4317640118279299E-02
+3.4296402968311969E-02
+3.4275169740411511E-02
+3.4253940442584417E-02
+3.4232715079147637E-02
+3.4211493653704197E-02
+3.4190276173171885E-02
+3.4169062646859927E-02
+3.4147853082555225E-02
+3.4126647485037784E-02
+3.4105445859299047E-02
+3.4084248213386230E-02
+3.4063054556290807E-02
+3.4041864894703511E-02
+3.4020679233161780E-02
+3.3999497577376393E-02
+3.3978319936204225E-02
+3.3957146318500067E-02
+3.3935976729445254E-02
+3.3914811172607667E-02
+3.3893649653667486E-02
+3.3872492180867193E-02
+3.3851338762570231E-02
+3.3830189407032647E-02
+3.3809044122249242E-02
+3.3787902913713683E-02
+3.3766765785449494E-02
+3.3745632742776456E-02
+3.3724503793071479E-02
+3.3703378943743915E-02
+3.3682258201550991E-02
+3.3661141573080894E-02
+3.3640029065107942E-02
+3.3618920684549407E-02
+3.3597816438203511E-02
+3.3576716332618564E-02
+3.3555620374450430E-02
+3.3534528571180805E-02
+3.3513440930499148E-02
+3.3492357457850543E-02
+3.3471278156445863E-02
+3.3450203031429059E-02
+3.3429132093386257E-02
+3.3408065352992351E-02
+3.3387002814285215E-02
+3.3365944478194749E-02
+3.3344890350554490E-02
+3.3323840443532801E-02
+3.3302794767975999E-02
+3.3281753328523095E-02
+3.3260716128573418E-02
+3.3239683173176771E-02
+3.3218654468443819E-02
+3.3197630021353369E-02
+3.3176609840302858E-02
+3.3155593933343920E-02
+3.3134582306232105E-02
+3.3113574964112380E-02
+3.3092571913371345E-02
+3.3071573161414652E-02
+3.3050578715251556E-02
+3.3029588580962804E-02
+3.3008602764408972E-02
+3.2987621270818016E-02
+3.2966644105265133E-02
+3.2945671275339837E-02
+3.2924702791297576E-02
+3.2903738661912388E-02
+3.2882778891333141E-02
+3.2861823483209499E-02
+3.2840872444068560E-02
+3.2819925781911112E-02
+3.2798983503652374E-02
+3.2778045614703197E-02
+3.2757112120661493E-02
+3.2736183028258529E-02
+3.2715258344518210E-02
+3.2694338076726885E-02
+3.2673422232335179E-02
+3.2652510817599387E-02
+3.2631603836647503E-02
+3.2610701293993016E-02
+3.2589803197255088E-02
+3.2568909555001198E-02
+3.2548020374947730E-02
+3.2527135664062991E-02
+3.2506255428589821E-02
+3.2485379673142238E-02
+3.2464508402365269E-02
+3.2443641622724881E-02
+3.2422779341462711E-02
+3.2401921565908952E-02
+3.2381068303490156E-02
+3.2360219560862755E-02
+3.2339375342295903E-02
+3.2318535651928840E-02
+3.2297700497040525E-02
+3.2276869886626945E-02
+3.2256043828271221E-02
+3.2235222327468664E-02
+3.2214405389639579E-02
+3.2193593020575360E-02
+3.2172785226223133E-02
+3.2151982013350219E-02
+3.2131183389309988E-02
+3.2110389360838001E-02
+3.2089599933473961E-02
+3.2068815112843228E-02
+3.2048034905782015E-02
+3.2027259319520794E-02
+3.2006488360850342E-02
+3.1985722036149689E-02
+3.1964960351051216E-02
+3.1944203309368861E-02
+3.1923450915282647E-02
+3.1902703177801292E-02
+3.1881960107995509E-02
+3.1861221712714938E-02
+3.1840487993726185E-02
+3.1819758954230247E-02
+3.1799034603161552E-02
+3.1778314950254662E-02
+3.1757600001273811E-02
+3.1736889759658542E-02
+3.1716184230556485E-02
+3.1695483421817335E-02
+3.1674787341070341E-02
+3.1654095993939167E-02
+3.1633409385595321E-02
+3.1612727522730505E-02
+3.1592050413196071E-02
+3.1571378063732870E-02
+3.1550710478773454E-02
+3.1530047662806739E-02
+3.1509389622312804E-02
+3.1488736364516455E-02
+3.1468087896911440E-02
+3.1447444227254491E-02
+3.1426805362026175E-02
+3.1406171304277065E-02
+3.1385542057028377E-02
+3.1364917627637816E-02
+3.1344298025514632E-02
+3.1323683258180572E-02
+3.1303073330726044E-02
+3.1282468248479960E-02
+3.1261868018178818E-02
+3.1241272646670471E-02
+3.1220682138535159E-02
+3.1200096496964553E-02
+3.1179515728329329E-02
+3.1158939844302097E-02
+3.1138368855079205E-02
+3.1117802761478033E-02
+3.1097241562039454E-02
+3.1076685263597179E-02
+3.1056133879745904E-02
+3.1035587420589428E-02
+3.1015045888253320E-02
+3.0994509284622912E-02
+3.0973977616709378E-02
+3.0953450893443077E-02
+3.0932929121201717E-02
+3.0912412303667171E-02
+3.0891900445521606E-02
+3.0871393554669606E-02
+3.0850891639227555E-02
+3.0830394704164835E-02
+3.0809902752883297E-02
+3.0789415791434550E-02
+3.0768933829496133E-02
+3.0748456875657446E-02
+3.0727984933376272E-02
+3.0707518005167675E-02
+3.0687056096980799E-02
+3.0666599217065452E-02
+3.0646147372707773E-02
+3.0625700569416003E-02
+3.0605258812686581E-02
+3.0584822108882814E-02
+3.0564390464579632E-02
+3.0543963885189006E-02
+3.0523542375114381E-02
+3.0503125939617879E-02
+3.0482714586024546E-02
+3.0462308321796198E-02
+3.0441907153334120E-02
+3.0421511086574635E-02
+3.0401120126943633E-02
+3.0380734279296242E-02
+3.0360353548811128E-02
+3.0339977941749190E-02
+3.0319607464520022E-02
+3.0299242122985966E-02
+3.0278881922722389E-02
+3.0258526870074985E-02
+3.0238176972510702E-02
+3.0217832237168812E-02
+3.0197492669488776E-02
+3.0177158274440268E-02
+3.0156829056516000E-02
+3.0136505019884435E-02
+3.0116186170640172E-02
+3.0095872518520989E-02
+3.0075564072527653E-02
+3.0055260835402015E-02
+3.0034962807984993E-02
+3.0014669995837271E-02
+2.9994382408887708E-02
+2.9974100055728748E-02
+2.9953822941240816E-02
+2.9933551069743828E-02
+2.9913284445580595E-02
+2.9893023073180036E-02
+2.9872766959426859E-02
+2.9852516114137879E-02
+2.9832270545487899E-02
+2.9812030255697820E-02
+2.9791795246207762E-02
+2.9771565522980416E-02
+2.9751341094621159E-02
+2.9731121968459447E-02
+2.9710908149801003E-02
+2.9690699644070274E-02
+2.9670496457973962E-02
+2.9650298598418012E-02
+2.9630106070051836E-02
+2.9609918875814361E-02
+2.9589737020354404E-02
+2.9569560511847656E-02
+2.9549389358330642E-02
+2.9529223564522738E-02
+2.9509063134050904E-02
+2.9488908073242445E-02
+2.9468758391083427E-02
+2.9448614094654588E-02
+2.9428475185695809E-02
+2.9408341665786247E-02
+2.9388213542235930E-02
+2.9368090825048002E-02
+2.9347973521723161E-02
+2.9327861636558723E-02
+2.9307755173867439E-02
+2.9287654138746469E-02
+2.9267558536531593E-02
+2.9247468373299522E-02
+2.9227383655583587E-02
+2.9207304389296581E-02
+2.9187230579318109E-02
+2.9167162230607585E-02
+2.9147099348956113E-02
+2.9127041940441488E-02
+2.9106990011819305E-02
+2.9086943570385822E-02
+2.9066902621588942E-02
+2.9046867166870768E-02
+2.9026837208242503E-02
+2.9006812754631114E-02
+2.8986793817498604E-02
+2.8966780403969106E-02
+2.8946772516613175E-02
+2.8926770158656797E-02
+2.8906773335794750E-02
+2.8886782054066109E-02
+2.8866796318724984E-02
+2.8846816134634485E-02
+2.8826841507202185E-02
+2.8806872442576854E-02
+2.8786908947029777E-02
+2.8766951027095984E-02
+2.8746998689236615E-02
+2.8727051938246127E-02
+2.8707110777812499E-02
+2.8687175212383689E-02
+2.8667245247777477E-02
+2.8647320890316484E-02
+2.8627402148178546E-02
+2.8607489029871130E-02
+2.8587581539285794E-02
+2.8567679676332350E-02
+2.8547783443695875E-02
+2.8527892850737962E-02
+2.8508007907201319E-02
+2.8488128619042843E-02
+2.8468254990626534E-02
+2.8448387026128914E-02
+2.8428524729523726E-02
+2.8408668105426093E-02
+2.8388817160432907E-02
+2.8368971901351729E-02
+2.8349132333440920E-02
+2.8329298461129689E-02
+2.8309470289908076E-02
+2.8289647826807623E-02
+2.8269831078338560E-02
+2.8250020048407192E-02
+2.8230214740416749E-02
+2.8210415159883914E-02
+2.8190621313825121E-02
+2.8170833208552667E-02
+2.8151050848999510E-02
+2.8131274240038102E-02
+2.8111503387037797E-02
+2.8091738295517473E-02
+2.8071978970620932E-02
+2.8052225417148295E-02
+2.8032477640475145E-02
+2.8012735647422769E-02
+2.7992999444711755E-02
+2.7973269036709051E-02
+2.7953544426776184E-02
+2.7933825619848893E-02
+2.7914112622737776E-02
+2.7894405442026086E-02
+2.7874704083200533E-02
+2.7855008551436914E-02
+2.7835318851012873E-02
+2.7815634985700451E-02
+2.7795956960457228E-02
+2.7776284782071288E-02
+2.7756618457148514E-02
+2.7736957990821761E-02
+2.7717303387863660E-02
+2.7697654653652693E-02
+2.7678011794022184E-02
+2.7658374814119552E-02
+2.7638743717698186E-02
+2.7619118508723599E-02
+2.7599499193377196E-02
+2.7579885778595856E-02
+2.7560278270215576E-02
+2.7540676672993366E-02
+2.7521080991930586E-02
+2.7501491232789905E-02
+2.7481907401268671E-02
+2.7462329501555478E-02
+2.7442757537162514E-02
+2.7423191513280942E-02
+2.7403631437229157E-02
+2.7384077315609743E-02
+2.7364529152043158E-02
+2.7344986949753083E-02
+2.7325450714799755E-02
+2.7305920454983763E-02
+2.7286396175987580E-02
+2.7266877879983480E-02
+2.7247365569606868E-02
+2.7227859251184851E-02
+2.7208358932038740E-02
+2.7188864618097063E-02
+2.7169376314163489E-02
+2.7149894025143520E-02
+2.7130417756228781E-02
+2.7110947512730174E-02
+2.7091483300478659E-02
+2.7072025125438017E-02
+2.7052572991846741E-02
+2.7033126902145706E-02
+2.7013686859815620E-02
+2.6994252871503584E-02
+2.6974824944260446E-02
+2.6955403083844955E-02
+2.6935987295345933E-02
+2.6916577583463195E-02
+2.6897173952380421E-02
+2.6877776406485820E-02
+2.6858384951072876E-02
+2.6838999591649492E-02
+2.6819620333746932E-02
+2.6800247182905891E-02
+2.6780880144148055E-02
+2.6761519221589227E-02
+2.6742164419453110E-02
+2.6722815742966116E-02
+2.6703473197669109E-02
+2.6684136789096705E-02
+2.6664806522776235E-02
+2.6645482403827640E-02
+2.6626164436441477E-02
+2.6606852624806190E-02
+2.6587546973973981E-02
+2.6568247489366283E-02
+2.6548954176674491E-02
+2.6529667041887636E-02
+2.6510386090199456E-02
+2.6491111324355662E-02
+2.6471842746978603E-02
+2.6452580363841186E-02
+2.6433324182407320E-02
+2.6414074208759877E-02
+2.6394830446978296E-02
+2.6375592900996347E-02
+2.6356361574783261E-02
+2.6337136472458635E-02
+2.6317917600015700E-02
+2.6298704964761672E-02
+2.6279498572576328E-02
+2.6260298426629788E-02
+2.6241104529910041E-02
+2.6221916886018205E-02
+2.6202735498895839E-02
+2.6183560375121706E-02
+2.6164391523681742E-02
+2.6145228951436842E-02
+2.6126072659842993E-02
+2.6106922650047038E-02
+2.6087778926864702E-02
+2.6068641496728742E-02
+2.6049510365547115E-02
+2.6030385538599512E-02
+2.6011267020934155E-02
+2.5992154816966588E-02
+2.5973048931014063E-02
+2.5953949367692884E-02
+2.5934856131786588E-02
+2.5915769227683100E-02
+2.5896688659163097E-02
+2.5877614430531905E-02
+2.5858546548590131E-02
+2.5839485020632404E-02
+2.5820429851314664E-02
+2.5801381043306242E-02
+2.5782338599878593E-02
+2.5763302525596839E-02
+2.5744272825288989E-02
+2.5725249504424078E-02
+2.5706232568669253E-02
+2.5687222022962232E-02
+2.5668217871530247E-02
+2.5649220118694818E-02
+2.5630228769100760E-02
+2.5611243827406000E-02
+2.5592265297960153E-02
+2.5573293184983321E-02
+2.5554327493321503E-02
+2.5535368228608024E-02
+2.5516415396354089E-02
+2.5497469001472695E-02
+2.5478529048619906E-02
+2.5459595541050664E-02
+2.5440668481181591E-02
+2.5421747873570794E-02
+2.5402833726280886E-02
+2.5383926046548391E-02
+2.5365024836267624E-02
+2.5346130096046002E-02
+2.5327241830745920E-02
+2.5308360048638262E-02
+2.5289484756331117E-02
+2.5270615956698890E-02
+2.5251753652375426E-02
+2.5232897847475250E-02
+2.5214048546711193E-02
+2.5195205755431861E-02
+2.5176369479642587E-02
+2.5157539724643553E-02
+2.5138716493676206E-02
+2.5119899789782137E-02
+2.5101089617352985E-02
+2.5082285981455656E-02
+2.5063488886709343E-02
+2.5044698337127250E-02
+2.5025914337081814E-02
+2.5007136892443875E-02
+2.4988366009275117E-02
+2.4969601691727603E-02
+2.4950843942699103E-02
+2.4932092765785095E-02
+2.4913348165830167E-02
+2.4894610147734173E-02
+2.4875878716049779E-02
+2.4857153875221309E-02
+2.4838435629690979E-02
+2.4819723983899963E-02
+2.4801018942440349E-02
+2.4782320510246470E-02
+2.4763628692095224E-02
+2.4744943491380837E-02
+2.4726264910984484E-02
+2.4707592955412753E-02
+2.4688927630966133E-02
+2.4670268943364645E-02
+2.4651616896309542E-02
+2.4632971493101820E-02
+2.4614332736826009E-02
+2.4595700630485710E-02
+2.4577075178846157E-02
+2.4558456389183223E-02
+2.4539844268290312E-02
+2.4521238820257418E-02
+2.4502640048417818E-02
+2.4484047955059936E-02
+2.4465462541758479E-02
+2.4446883812369508E-02
+2.4428311774998220E-02
+2.4409746437217585E-02
+2.4391187801266499E-02
+2.4372635867786197E-02
+2.4354090641075420E-02
+2.4335552128756117E-02
+2.4317020336597540E-02
+2.4298495265580231E-02
+2.4279976916756624E-02
+2.4261465296889793E-02
+2.4242960415121605E-02
+2.4224462275973743E-02
+2.4205970878533576E-02
+2.4187486223718527E-02
+2.4169008319332240E-02
+2.4150537174062254E-02
+2.4132072791577985E-02
+2.4113615172680042E-02
+2.4095164320120384E-02
+2.4076720239665336E-02
+2.4058282936770852E-02
+2.4039852414472995E-02
+2.4021428675334886E-02
+2.4003011724483641E-02
+2.3984601568955280E-02
+2.3966198213917767E-02
+2.3947801660758012E-02
+2.3929411911131727E-02
+2.3911028970812476E-02
+2.3892652846927896E-02
+2.3874283543936097E-02
+2.3855921063709661E-02
+2.3837565408524500E-02
+2.3819216581979188E-02
+2.3800874588030076E-02
+2.3782539431780610E-02
+2.3764211118872804E-02
+2.3745889654808262E-02
+2.3727575044909112E-02
+2.3709267293521161E-02
+2.3690966401657784E-02
+2.3672672369975844E-02
+2.3654385203096852E-02
+2.3636104908066710E-02
+2.3617831490493943E-02
+2.3599564953604799E-02
+2.3581305300481251E-02
+2.3563052534540989E-02
+2.3544806659368245E-02
+2.3526567679647847E-02
+2.3508335600936108E-02
+2.3490110427551541E-02
+2.3471892161150292E-02
+2.3453680803668799E-02
+2.3435476360888940E-02
+2.3417278839955022E-02
+2.3399088245224273E-02
+2.3380904578180546E-02
+2.3362727841140161E-02
+2.3344558039100651E-02
+2.3326395177416123E-02
+2.3308239260541406E-02
+2.3290090292449158E-02
+2.3271948275968440E-02
+2.3253813212412315E-02
+2.3235685104441954E-02
+2.3217563960105138E-02
+2.3199449788150611E-02
+2.3181342590802397E-02
+2.3163242366038644E-02
+2.3145149115365436E-02
+2.3127062846500245E-02
+2.3108983566736307E-02
+2.3090911278204635E-02
+2.3072845981647466E-02
+2.3054787681498153E-02
+2.3036736385319292E-02
+2.3018692098763404E-02
+2.3000654822952587E-02
+2.2982624558714658E-02
+2.2964601309063071E-02
+2.2946585077953018E-02
+2.2928575870521165E-02
+2.2910573693195525E-02
+2.2892578551440151E-02
+2.2874590447649695E-02
+2.2856609383813901E-02
+2.2838635363436933E-02
+2.2820668390832723E-02
+2.2802708470004100E-02
+2.2784755604502237E-02
+2.2766809797968406E-02
+2.2748871054539127E-02
+2.2730939378381724E-02
+2.2713014772458278E-02
+2.2695097238897812E-02
+2.2677186780915511E-02
+2.2659283403755923E-02
+2.2641387112607454E-02
+2.2623497911194158E-02
+2.2605615802779581E-02
+2.2587740791133955E-02
+2.2569872880484714E-02
+2.2552012074596239E-02
+2.2534158376076668E-02
+2.2516311787511588E-02
+2.2498472312557260E-02
+2.2480639955334846E-02
+2.2462814719778856E-02
+2.2444996609603821E-02
+2.2427185628515169E-02
+2.2409381780229151E-02
+2.2391585068485768E-02
+2.2373795497240397E-02
+2.2356013070562463E-02
+2.2338237791969692E-02
+2.2320469664145533E-02
+2.2302708689855923E-02
+2.2284954872514796E-02
+2.2267208215789699E-02
+2.2249468724496749E-02
+2.2231736404296539E-02
+2.2214011259349142E-02
+2.2196293290829196E-02
+2.2178582499992060E-02
+2.2160878890552183E-02
+2.2143182467074557E-02
+2.2125493233573528E-02
+2.2107811193532625E-02
+2.2090136350603421E-02
+2.2072468708926558E-02
+2.2054808272568671E-02
+2.2037155044410783E-02
+2.2019509026804437E-02
+2.2001870223079669E-02
+2.1984238637785244E-02
+2.1966614275006027E-02
+2.1948997136974683E-02
+2.1931387225759144E-02
+2.1913784545948056E-02
+2.1896189103646289E-02
+2.1878600903017922E-02
+2.1861019945071638E-02
+2.1843446231083693E-02
+2.1825879764868258E-02
+2.1808320550941163E-02
+2.1790768593403620E-02
+2.1773223896026154E-02
+2.1755686462362381E-02
+2.1738156295530317E-02
+2.1720633398493189E-02
+2.1703117773596507E-02
+2.1685609423039019E-02
+2.1668108351156644E-02
+2.1650614564472433E-02
+2.1633128067709662E-02
+2.1615648860344724E-02
+2.1598176941651833E-02
+2.1580712316783816E-02
+2.1563254993768745E-02
+2.1545804977583360E-02
+2.1528362269141725E-02
+2.1510926869493470E-02
+2.1493498781213805E-02
+2.1476078007367099E-02
+2.1458664552651288E-02
+2.1441258422812068E-02
+2.1423859622003594E-02
+2.1406468151621522E-02
+2.1389084013083717E-02
+2.1371707209255061E-02
+2.1354337743459465E-02
+2.1336975619252914E-02
+2.1319620840388267E-02
+2.1302273410780639E-02
+2.1284933334694865E-02
+2.1267600616186905E-02
+2.1250275257604815E-02
+2.1232957260616598E-02
+2.1215646627364967E-02
+2.1198343360512857E-02
+2.1181047463422434E-02
+2.1163758941448334E-02
+2.1146477800039858E-02
+2.1129204042156364E-02
+2.1111937669421283E-02
+2.1094678683370439E-02
+2.1077427085434180E-02
+2.1060182877855819E-02
+2.1042946066124956E-02
+2.1025716656287084E-02
+2.1008494651202143E-02
+2.0991280051526451E-02
+2.0974072859295118E-02
+2.0956873079145549E-02
+2.0939680715680472E-02
+2.0922495771846829E-02
+2.0905318250076500E-02
+2.0888148153412084E-02
+2.0870985485443555E-02
+2.0853830249158295E-02
+2.0836682446053169E-02
+2.0819542077723373E-02
+2.0802409148039398E-02
+2.0785283661822921E-02
+2.0768165622585568E-02
+2.0751055032314815E-02
+2.0733951893692683E-02
+2.0716856211877768E-02
+2.0699767992069146E-02
+2.0682687235005222E-02
+2.0665613938929742E-02
+2.0648548105120963E-02
+2.0631489739451496E-02
+2.0614438847822981E-02
+2.0597395434656666E-02
+2.0580359503836590E-02
+2.0563331057205411E-02
+2.0546310095101192E-02
+2.0529296618946775E-02
+2.0512290632350872E-02
+2.0495292139005760E-02
+2.0478301141640332E-02
+2.0461317642695914E-02
+2.0444341645752494E-02
+2.0427373155478414E-02
+2.0410412175754435E-02
+2.0393458708330436E-02
+2.0376512754765992E-02
+2.0359574317754814E-02
+2.0342643400527646E-02
+2.0325720006565712E-02
+2.0308804139655776E-02
+2.0291895802798679E-02
+2.0274994996253130E-02
+2.0258101720067537E-02
+2.0241215978311675E-02
+2.0224337777477629E-02
+2.0207467122180484E-02
+2.0190604013981043E-02
+2.0173748454254122E-02
+2.0156900444774636E-02
+2.0140059987529737E-02
+2.0123227086032768E-02
+2.0106401744996314E-02
+2.0089583968273702E-02
+2.0072773757860103E-02
+2.0055971115521480E-02
+2.0039176043041906E-02
+2.0022388542269776E-02
+2.0005608616418816E-02
+1.9988836270092278E-02
+1.9972071507370296E-02
+1.9955314330725546E-02
+1.9938564742205081E-02
+1.9921822742579923E-02
+1.9905088332048574E-02
+1.9888361513364095E-02
+1.9871642292642495E-02
+1.9854930675379235E-02
+1.9838226663963003E-02
+1.9821530260016526E-02
+1.9804841464507710E-02
+1.9788160277999723E-02
+1.9771486702682122E-02
+1.9754820743526733E-02
+1.9738162405223445E-02
+1.9721511689751111E-02
+1.9704868598338157E-02
+1.9688233133565762E-02
+1.9671605299149408E-02
+1.9654985098332949E-02
+1.9638372533231575E-02
+1.9621767605810657E-02
+1.9605170318052138E-02
+1.9588580671973738E-02
+1.9571998670369069E-02
+1.9555424316872041E-02
+1.9538857614657373E-02
+1.9522298565425356E-02
+1.9505747170791447E-02
+1.9489203434049151E-02
+1.9472667359348977E-02
+1.9456138949153459E-02
+1.9439618203551445E-02
+1.9423105123355541E-02
+1.9406599712916698E-02
+1.9390101977307832E-02
+1.9373611919721808E-02
+1.9357129542046901E-02
+1.9340654845829627E-02
+1.9324187832043111E-02
+1.9307728501929175E-02
+1.9291276858465167E-02
+1.9274832905184010E-02
+1.9258396645354305E-02
+1.9241968082007597E-02
+1.9225547218022207E-02
+1.9209134055931686E-02
+1.9192728598055084E-02
+1.9176330845539585E-02
+1.9159940799073610E-02
+1.9143558460853551E-02
+1.9127183834817006E-02
+1.9110816924436225E-02
+1.9094457731410719E-02
+1.9078106257261414E-02
+1.9061762505182624E-02
+1.9045426479291524E-02
+1.9029098182192665E-02
+1.9012777614219999E-02
+1.8996464776179757E-02
+1.8980159671651769E-02
+1.8963862304807486E-02
+1.8947572677857273E-02
+1.8931290791568838E-02
+1.8915016647021960E-02
+1.8898750245966822E-02
+1.8882491590660844E-02
+1.8866240685799521E-02
+1.8849997536774223E-02
+1.8833762145569453E-02
+1.8817534510930507E-02
+1.8801314632970995E-02
+1.8785102515617307E-02
+1.8768898163140851E-02
+1.8752701577864940E-02
+1.8736512761233448E-02
+1.8720331715542767E-02
+1.8704158444141375E-02
+1.8687992949484398E-02
+1.8671835230784792E-02
+1.8655685287034603E-02
+1.8639543122190488E-02
+1.8623408743181236E-02
+1.8607282154655076E-02
+1.8591163357571359E-02
+1.8575052352399823E-02
+1.8558949138877161E-02
+1.8542853716749502E-02
+1.8526766089106101E-02
+1.8510686261648646E-02
+1.8494614238412307E-02
+1.8478550019836105E-02
+1.8462493606265670E-02
+1.8446445000196619E-02
+1.8430404204875274E-02
+1.8414371222151428E-02
+1.8398346052460903E-02
+1.8382328697106983E-02
+1.8366319159930741E-02
+1.8350317444935007E-02
+1.8334323553903024E-02
+1.8318337487532293E-02
+1.8302359247098898E-02
+1.8286388834645284E-02
+1.8270426252714151E-02
+1.8254471505478456E-02
+1.8238524597151813E-02
+1.8222585528111554E-02
+1.8206654296285128E-02
+1.8190730901707315E-02
+1.8174815348050932E-02
+1.8158907639360098E-02
+1.8143007779774064E-02
+1.8127115773254154E-02
+1.8111231620251161E-02
+1.8095355318295404E-02
+1.8079486867300758E-02
+1.8063626272653139E-02
+1.8047773539946584E-02
+1.8031928671327850E-02
+1.8016091667538762E-02
+1.8000262528940030E-02
+1.7984441255486865E-02
+1.7968627848036510E-02
+1.7952822310141520E-02
+1.7937024645707837E-02
+1.7921234857412843E-02
+1.7905452947278702E-02
+1.7889678917101595E-02
+1.7873912768371480E-02
+1.7858154502505229E-02
+1.7842404120722619E-02
+1.7826661624272121E-02
+1.7810927015377748E-02
+1.7795200296927317E-02
+1.7779481471116312E-02
+1.7763770538866162E-02
+1.7748067501243622E-02
+1.7732372360775905E-02
+1.7716685120406639E-02
+1.7701005781958695E-02
+1.7685334346260233E-02
+1.7669670814671194E-02
+1.7654015189891105E-02
+1.7638367474663921E-02
+1.7622727670676637E-02
+1.7607095779160493E-02
+1.7591471801355701E-02
+1.7575855738514886E-02
+1.7560247592221568E-02
+1.7544647365093986E-02
+1.7529055059844763E-02
+1.7513470678134239E-02
+1.7497894221035076E-02
+1.7482325689974321E-02
+1.7466765086913857E-02
+1.7451212413537236E-02
+1.7435667670179972E-02
+1.7420130857106485E-02
+1.7404601978503909E-02
+1.7389081041399128E-02
+1.7373568048775056E-02
+1.7358062995694958E-02
+1.7342565877833220E-02
+1.7327076699374364E-02
+1.7311595467304410E-02
+1.7296122185010886E-02
+1.7280656852475821E-02
+1.7265199470226762E-02
+1.7249750040510492E-02
+1.7234308565566084E-02
+1.7218875045527174E-02
+1.7203449479635178E-02
+1.7188031869807989E-02
+1.7172622221235299E-02
+1.7157220537731936E-02
+1.7141826817822250E-02
+1.7126441059336927E-02
+1.7111063264531517E-02
+1.7095693438303316E-02
+1.7080331584094995E-02
+1.7064977702995171E-02
+1.7049631795840521E-02
+1.7034293863268341E-02
+1.7018963905885972E-02
+1.7003641924699275E-02
+1.6988327921028876E-02
+1.6973021896763009E-02
+1.6957723854941088E-02
+1.6942433798354233E-02
+1.6927151727432060E-02
+1.6911877641794519E-02
+1.6896611542794100E-02
+1.6881353433528187E-02
+1.6866103316732960E-02
+1.6850861193957657E-02
+1.6835627066487828E-02
+1.6820400935075534E-02
+1.6805182800217876E-02
+1.6789972662718807E-02
+1.6774770523783112E-02
+1.6759576385088161E-02
+1.6744390249920114E-02
+1.6729212121635122E-02
+1.6714042000206486E-02
+1.6698879883470276E-02
+1.6683725771859653E-02
+1.6668579670238149E-02
+1.6653441583060570E-02
+1.6638311510748866E-02
+1.6623189452607542E-02
+1.6608075409622985E-02
+1.6592969384175243E-02
+1.6577871378037276E-02
+1.6562781391554100E-02
+1.6547699425012018E-02
+1.6532625479552587E-02
+1.6517559556686399E-02
+1.6502501658609923E-02
+1.6487451788252658E-02
+1.6472409947965481E-02
+1.6457376138314567E-02
+1.6442350359567478E-02
+1.6427332612201851E-02
+1.6412322896817769E-02
+1.6397321214551369E-02
+1.6382327567278681E-02
+1.6367341956727430E-02
+1.6352364383840367E-02
+1.6337394849520518E-02
+1.6322433356567217E-02
+1.6307479909048808E-02
+1.6292534508463519E-02
+1.6277597151651692E-02
+1.6262667836182763E-02
+1.6247746565938526E-02
+1.6232833346630164E-02
+1.6217928179973407E-02
+1.6203031064155399E-02
+1.6188141998261227E-02
+1.6173260983772496E-02
+1.6158388022684201E-02
+1.6143523118182342E-02
+1.6128666273861631E-02
+1.6113817490310371E-02
+1.6098976764688893E-02
+1.6084144095434436E-02
+1.6069319485541030E-02
+1.6054502938715784E-02
+1.6039694457007519E-02
+1.6024894041531446E-02
+1.6010101693257252E-02
+1.5995317412955526E-02
+1.5980541201324933E-02
+1.5965773058831154E-02
+1.5951012985949153E-02
+1.5936260984117500E-02
+1.5921517055470989E-02
+1.5906781201483353E-02
+1.5892053422332030E-02
+1.5877333718308222E-02
+1.5862622091157460E-02
+1.5847918543077121E-02
+1.5833223075167078E-02
+1.5818535687495944E-02
+1.5803856380641339E-02
+1.5789185156561608E-02
+1.5774522017277717E-02
+1.5759866963664854E-02
+1.5745219996080934E-02
+1.5730581115150532E-02
+1.5715950321824858E-02
+1.5701327616941697E-02
+1.5686713000894088E-02
+1.5672106474097273E-02
+1.5657508038176168E-02
+1.5642917695461937E-02
+1.5628335447181917E-02
+1.5613761292815642E-02
+1.5599195232513989E-02
+1.5584637270112627E-02
+1.5570087410119846E-02
+1.5555545651641928E-02
+1.5541011989619763E-02
+1.5526486422531342E-02
+1.5511968956311527E-02
+1.5497459596627424E-02
+1.5482958342055026E-02
+1.5468465188718509E-02
+1.5453980137026745E-02
+1.5439503191678167E-02
+1.5425034355921578E-02
+1.5410573628599305E-02
+1.5396121008164792E-02
+1.5381676495901242E-02
+1.5367240094451404E-02
+1.5352811805452359E-02
+1.5338391629230496E-02
+1.5323979566146806E-02
+1.5309575616997783E-02
+1.5295179782668488E-02
+1.5280792063941295E-02
+1.5266412461533357E-02
+1.5252040976181097E-02
+1.5237677608655078E-02
+1.5223322359721722E-02
+1.5208975230112195E-02
+1.5194636220551918E-02
+1.5180305331847093E-02
+1.5165982564869769E-02
+1.5151667920331950E-02
+1.5137361398591872E-02
+1.5123063000169574E-02
+1.5108772726935936E-02
+1.5094490581240553E-02
+1.5080216563903218E-02
+1.5065950674113756E-02
+1.5051692911445777E-02
+1.5037443276808666E-02
+1.5023201771329023E-02
+1.5008968395936777E-02
+1.4994743151452262E-02
+1.4980526038395064E-02
+1.4966317056872614E-02
+1.4952116207536770E-02
+1.4937923493250724E-02
+1.4923738917049225E-02
+1.4909562477459410E-02
+1.4895394169982212E-02
+1.4881233993592756E-02
+1.4867081953568301E-02
+1.4852938054952971E-02
+1.4838802298222716E-02
+1.4824674682357278E-02
+1.4810555205848336E-02
+1.4796443866765771E-02
+1.4782340664858420E-02
+1.4768245603830499E-02
+1.4754158687421528E-02
+1.4740079915681945E-02
+1.4726009287142065E-02
+1.4711946801838294E-02
+1.4697892461519932E-02
+1.4683846267356644E-02
+1.4669808218439478E-02
+1.4655778313752293E-02
+1.4641756555100086E-02
+1.4627742945813047E-02
+1.4613737486695848E-02
+1.4599740174830298E-02
+1.4585751008314895E-02
+1.4571769990676083E-02
+1.4557797126527017E-02
+1.4543832416158645E-02
+1.4529875856745929E-02
+1.4515927447021274E-02
+1.4501987188814746E-02
+1.4488055083896683E-02
+1.4474131131778197E-02
+1.4460215331291945E-02
+1.4446307683333305E-02
+1.4432408190724251E-02
+1.4418516855289325E-02
+1.4404633676175435E-02
+1.4390758652403871E-02
+1.4376891785148232E-02
+1.4363033076497250E-02
+1.4349182526378011E-02
+1.4335340132105157E-02
+1.4321505892339154E-02
+1.4307679810723223E-02
+1.4293861891541360E-02
+1.4280052134991388E-02
+1.4266250538851980E-02
+1.4252457101653472E-02
+1.4238671823149123E-02
+1.4224894703643189E-02
+1.4211125745416050E-02
+1.4197364951119180E-02
+1.4183612320744615E-02
+1.4169867852240387E-02
+1.4156131544474924E-02
+1.4142403398294937E-02
+1.4128683414918812E-02
+1.4114971596351746E-02
+1.4101267944815817E-02
+1.4087572460849017E-02
+1.4073885143313000E-02
+1.4060205990808759E-02
+1.4046535001433174E-02
+1.4032872173703454E-02
+1.4019217510235825E-02
+1.4005571015558698E-02
+1.3991932691062589E-02
+1.3978302534093143E-02
+1.3964680542747146E-02
+1.3951066718742388E-02
+1.3937461064340054E-02
+1.3923863578818802E-02
+1.3910274259594914E-02
+1.3896693106229775E-02
+1.3883120121901564E-02
+1.3869555309310794E-02
+1.3855998667248706E-02
+1.3842450193463135E-02
+1.3828909887704825E-02
+1.3815377751368331E-02
+1.3801853785806194E-02
+1.3788337992174198E-02
+1.3774830371345628E-02
+1.3761330922543270E-02
+1.3747839644363926E-02
+1.3734356536100467E-02
+1.3720881597784720E-02
+1.3707414829734607E-02
+1.3693956232986419E-02
+1.3680505808610331E-02
+1.3667063556847778E-02
+1.3653629477507661E-02
+1.3640203570315101E-02
+1.3626785834885826E-02
+1.3613376271202919E-02
+1.3599974880684739E-02
+1.3586581664915694E-02
+1.3573196623285299E-02
+1.3559819753715761E-02
+1.3546451055556847E-02
+1.3533090530739299E-02
+1.3519738180901892E-02
+1.3506394004828871E-02
+1.3493058000501748E-02
+1.3479730167901648E-02
+1.3466410508754578E-02
+1.3453099024222336E-02
+1.3439795714020663E-02
+1.3426500577721077E-02
+1.3413213615313722E-02
+1.3399934826960573E-02
+1.3386664212666079E-02
+1.3373401772256628E-02
+1.3360147505709552E-02
+1.3346901413494910E-02
+1.3333663496011058E-02
+1.3320433752071937E-02
+1.3307212179652689E-02
+1.3293998778755945E-02
+1.3280793552349103E-02
+1.3267596502843211E-02
+1.3254407629403664E-02
+1.3241226930387368E-02
+1.3228054404486390E-02
+1.3214890050641180E-02
+1.3201733868582727E-02
+1.3188585859527554E-02
+1.3175446024700908E-02
+1.3162314364464441E-02
+1.3149190878841876E-02
+1.3136075567008262E-02
+1.3122968427352328E-02
+1.3109869459170221E-02
+1.3096778664085557E-02
+1.3083696043763988E-02
+1.3070621597530621E-02
+1.3057555323679913E-02
+1.3044497221453099E-02
+1.3031447291232680E-02
+1.3018405533366027E-02
+1.3005371947862695E-02
+1.2992346534654130E-02
+1.2979329293583586E-02
+1.2966320224448893E-02
+1.2953319327457531E-02
+1.2940326603453046E-02
+1.2927342052687732E-02
+1.2914365672563903E-02
+1.2901397459950540E-02
+1.2888437415469691E-02
+1.2875485542608886E-02
+1.2862541843272396E-02
+1.2849606316018808E-02
+1.2836678959126373E-02
+1.2823759771601013E-02
+1.2810848752736010E-02
+1.2797945902280734E-02
+1.2785051220435169E-02
+1.2772164707328060E-02
+1.2759286362847807E-02
+1.2746416186884567E-02
+1.2733554179661393E-02
+1.2720700341542514E-02
+1.2707854672149190E-02
+1.2695017170153367E-02
+1.2682187834547293E-02
+1.2669366665675421E-02
+1.2656553664087428E-02
+1.2643748829276305E-02
+1.2630952160072380E-02
+1.2618163655559398E-02
+1.2605383315257259E-02
+1.2592611139199929E-02
+1.2579847129664128E-02
+1.2567091289277483E-02
+1.2554343615548334E-02
+1.2541604101827707E-02
+1.2528872745087901E-02
+1.2516149550377848E-02
+1.2503434522776311E-02
+1.2490727660838537E-02
+1.2478028960645229E-02
+1.2465338420567214E-02
+1.2452656041392139E-02
+1.2439981823908302E-02
+1.2427315768578206E-02
+1.2414657875601937E-02
+1.2402008143389725E-02
+1.2389366569456500E-02
+1.2376733152577580E-02
+1.2364107893251128E-02
+1.2351490791996040E-02
+1.2338881848942095E-02
+1.2326281064089417E-02
+1.2313688436980332E-02
+1.2301103966846623E-02
+1.2288527652673058E-02
+1.2275959493019059E-02
+1.2263399486875312E-02
+1.2250847635649258E-02
+1.2238303941378030E-02
+1.2225768403609982E-02
+1.2213241019733971E-02
+1.2200721787669320E-02
+1.2188210706724722E-02
+1.2175707776462902E-02
+1.2163212996851700E-02
+1.2150726368026298E-02
+1.2138247890032755E-02
+1.2125777562816553E-02
+1.2113315386352496E-02
+1.2100861360721126E-02
+1.2088415485707103E-02
+1.2075977758103099E-02
+1.2063548173134764E-02
+1.2051126730148579E-02
+1.2038713434478637E-02
+1.2026308290204514E-02
+1.2013911294377034E-02
+1.2001522442432222E-02
+1.1989141732194224E-02
+1.1976769163203668E-02
+1.1964404735799182E-02
+1.1952048451750295E-02
+1.1939700312423855E-02
+1.1927360316116735E-02
+1.1915028460148877E-02
+1.1902704743211642E-02
+1.1890389165263412E-02
+1.1878081725837122E-02
+1.1865782423298551E-02
+1.1853491256220089E-02
+1.1841208226020163E-02
+1.1828933335300836E-02
+1.1816666583536764E-02
+1.1804407966468203E-02
+1.1792157480849389E-02
+1.1779915127470680E-02
+1.1767680907740620E-02
+1.1755454820942431E-02
+1.1743236865133249E-02
+1.1731027039754408E-02
+1.1718825346405398E-02
+1.1706631785816185E-02
+1.1694446354098562E-02
+1.1682269046480806E-02
+1.1670099863808311E-02
+1.1657938811180733E-02
+1.1645785890132017E-02
+1.1633641094822173E-02
+1.1621504419662988E-02
+1.1609375865742309E-02
+1.1597255436445922E-02
+1.1585143132078193E-02
+1.1573038949910403E-02
+1.1560942887502602E-02
+1.1548854943515220E-02
+1.1536775117108124E-02
+1.1524703410006091E-02
+1.1512639825062879E-02
+1.1500584361296775E-02
+1.1488537012850355E-02
+1.1476497775399693E-02
+1.1464466651115361E-02
+1.1452443643216835E-02
+1.1440428750705811E-02
+1.1428421969968870E-02
+1.1416423299400558E-02
+1.1404432740761205E-02
+1.1392450295181765E-02
+1.1380475959356696E-02
+1.1368509728916310E-02
+1.1356551603383634E-02
+1.1344601585432214E-02
+1.1332659676449209E-02
+1.1320725874867966E-02
+1.1308800178527017E-02
+1.1296882583914047E-02
+1.1284973087149267E-02
+1.1273071688360586E-02
+1.1261178391868312E-02
+1.1249293199995250E-02
+1.1237416108853825E-02
+1.1225547113944247E-02
+1.1213686214916960E-02
+1.1201833413515253E-02
+1.1189988709873479E-02
+1.1178152101929463E-02
+1.1166323587505618E-02
+1.1154503164575945E-02
+1.1142690831294721E-02
+1.1130886587579009E-02
+1.1119090434509184E-02
+1.1107302371966181E-02
+1.1095522397692077E-02
+1.1083750509499085E-02
+1.1071986706647744E-02
+1.1060230988836918E-02
+1.1048483355434454E-02
+1.1036743805522796E-02
+1.1025012338282410E-02
+1.1013288953140134E-02
+1.1001573649472159E-02
+1.0989866426073429E-02
+1.0978167281475276E-02
+1.0966476213628762E-02
+1.0954793219840591E-02
+1.0943118298691846E-02
+1.0931451452731037E-02
+1.0919792684664427E-02
+1.0908141991638124E-02
+1.0896499367816188E-02
+1.0884864810536295E-02
+1.0873238321745800E-02
+1.0861619902829729E-02
+1.0850009551445152E-02
+1.0838407264515923E-02
+1.0826813041778916E-02
+1.0815226884955389E-02
+1.0803648793986976E-02
+1.0792078765408945E-02
+1.0780516795844030E-02
+1.0768962884420762E-02
+1.0757417031100920E-02
+1.0745879235558545E-02
+1.0734349497201513E-02
+1.0722827815034433E-02
+1.0711314187097087E-02
+1.0699808611460906E-02
+1.0688311087500350E-02
+1.0676821615141977E-02
+1.0665340193341232E-02
+1.0653866819899705E-02
+1.0642401493021217E-02
+1.0630944212435500E-02
+1.0619494978039134E-02
+1.0608053788270904E-02
+1.0596620640736770E-02
+1.0585195534158662E-02
+1.0573778468984978E-02
+1.0562369445033141E-02
+1.0550968458737701E-02
+1.0539575505918664E-02
+1.0528190586862553E-02
+1.0516813705217495E-02
+1.0505444861703682E-02
+1.0494084051032412E-02
+1.0482731268107722E-02
+1.0471386513133637E-02
+1.0460049788133913E-02
+1.0448721092887111E-02
+1.0437400424974506E-02
+1.0426087782222570E-02
+1.0414783163341924E-02
+1.0403486567122248E-02
+1.0392197991842237E-02
+1.0380917435558674E-02
+1.0369644897136526E-02
+1.0358380376462001E-02
+1.0347123873044588E-02
+1.0335875384850811E-02
+1.0324634909658950E-02
+1.0313402446893650E-02
+1.0302177996982386E-02
+1.0290961558762933E-02
+1.0279753128451667E-02
+1.0268552702884768E-02
+1.0257360282927260E-02
+1.0246175870417373E-02
+1.0234999463925030E-02
+1.0223831059392492E-02
+1.0212670654174048E-02
+1.0201518248793178E-02
+1.0190373843663000E-02
+1.0179237435940442E-02
+1.0168109021632623E-02
+1.0156988599574189E-02
+1.0145876171542806E-02
+1.0134771738181527E-02
+1.0123675296558280E-02
+1.0112586843278995E-02
+1.0101506376340282E-02
+1.0090433894457506E-02
+1.0079369396730988E-02
+1.0068312882770245E-02
+1.0057264351959338E-02
+1.0046223802703088E-02
+1.0035191233196485E-02
+1.0024166641870605E-02
+1.0013150027312514E-02
+1.0002141388046731E-02
+9.9911407224837281E-03
+9.9801480290688405E-03
+9.9691633064799140E-03
+9.9581865534718629E-03
+9.9472177688736813E-03
+9.9362569515768443E-03
+9.9253041002172540E-03
+9.9143592128438963E-03
+9.9034222875040399E-03
+9.8924933227850943E-03
+9.8815723174957796E-03
+9.8706592703609024E-03
+9.8597541800115283E-03
+9.8488570451510851E-03
+9.8379678647153614E-03
+9.8270866375751217E-03
+9.8162133615879409E-03
+9.8053480340778067E-03
+9.7944906532557770E-03
+9.7836412186093225E-03
+9.7727997294636930E-03
+9.7619661840962733E-03
+9.7511405805557044E-03
+9.7403229173525698E-03
+9.7295131933214755E-03
+9.7187114070289085E-03
+9.7079175565305108E-03
+9.6971316399707651E-03
+9.6863536562743543E-03
+9.6755836045864258E-03
+9.6648214832321024E-03
+9.6540672897885392E-03
+9.6433210222638729E-03
+9.6325826797832824E-03
+9.6218522615301068E-03
+9.6111297658927741E-03
+9.6004151909081566E-03
+9.5897085346634617E-03
+9.5790097953072362E-03
+9.5683189711521042E-03
+9.5576360610298006E-03
+9.5469610638186913E-03
+9.5362939778104085E-03
+9.5256348009616649E-03
+9.5149835315655289E-03
+9.5043401684338450E-03
+9.4937047103635912E-03
+9.4830771558987274E-03
+9.4724575034867402E-03
+9.4618457511680600E-03
+9.4512418966802673E-03
+9.4406459382387498E-03
+9.4300578750213110E-03
+9.4194777061074268E-03
+9.4089054293463974E-03
+9.3983410421564096E-03
+9.3877845422176628E-03
+9.3772359274671199E-03
+9.3666951965708824E-03
+9.3561623500688033E-03
+9.3456373883823874E-03
+9.3351203086140099E-03
+9.3246111063304670E-03
+9.3141097785503883E-03
+9.3036163241246861E-03
+9.2931307423062895E-03
+9.2826530333398934E-03
+9.2721831973788318E-03
+9.2617212312055587E-03
+9.2512671295523520E-03
+9.2408208897016113E-03
+9.2303825131258791E-03
+9.2199520007931485E-03
+9.2095293495467884E-03
+9.1991145551683379E-03
+9.1887076155861367E-03
+9.1783085304468891E-03
+9.1679172989030944E-03
+9.1575339189578463E-03
+9.1471583885294784E-03
+9.1367907059218233E-03
+9.1264308695682209E-03
+9.1160788774333028E-03
+9.1057347269970224E-03
+9.0953984160849124E-03
+9.0850699435500587E-03
+9.0747493083683014E-03
+9.0644365090434414E-03
+9.0541315438322379E-03
+9.0438344106774111E-03
+9.0335451071051152E-03
+9.0232636308923402E-03
+9.0129899808583588E-03
+9.0027241559977496E-03
+8.9924661544984706E-03
+8.9822159740179531E-03
+8.9719736123667331E-03
+8.9617390676366860E-03
+8.9515123380041733E-03
+8.9412934219275930E-03
+8.9310823179424344E-03
+8.9208790243950082E-03
+8.9106835394692548E-03
+8.9004958611278995E-03
+8.8903159868448517E-03
+8.8801439142261688E-03
+8.8699796422217203E-03
+8.8598231702849729E-03
+8.8496744964598525E-03
+8.8395336172375737E-03
+8.8294005296958092E-03
+8.8192752329065670E-03
+8.8091577262264312E-03
+8.7990480082069857E-03
+8.7889460769532204E-03
+8.7788519300447190E-03
+8.7687655643203834E-03
+8.7586869771421709E-03
+8.7486161681894561E-03
+8.7385531375328996E-03
+8.7284978827800990E-03
+8.7184503998173953E-03
+8.7084106855831404E-03
+8.6983787390246189E-03
+8.6883545592174542E-03
+8.6783381447617641E-03
+8.6683294940760932E-03
+8.6583286051339879E-03
+8.6483354755051631E-03
+8.6383501027950792E-03
+8.6283724847313545E-03
+8.6184026191098561E-03
+8.6084405040904657E-03
+8.5984861379970121E-03
+8.5885395192535317E-03
+8.5786006464004614E-03
+8.5686695177735143E-03
+8.5587461310298266E-03
+8.5488304837056401E-03
+8.5389225734872100E-03
+8.5290223981506260E-03
+8.5191299556492094E-03
+8.5092452442029360E-03
+8.4993682621459649E-03
+8.4894990082073733E-03
+8.4796374811317299E-03
+8.4697836783643923E-03
+8.4599375963841893E-03
+8.4500992324590112E-03
+8.4402685854579971E-03
+8.4304456541939524E-03
+8.4206304360742966E-03
+8.4108229280773356E-03
+8.4010231287810922E-03
+8.3912310383075003E-03
+8.3814466555707564E-03
+8.3716699761921826E-03
+8.3619009956888805E-03
+8.3521397128892491E-03
+8.3423861281324372E-03
+8.3326402399193297E-03
+8.3229020444479072E-03
+8.3131715383538609E-03
+8.3034487202789282E-03
+8.2937335891982260E-03
+8.2840261430135766E-03
+8.2743263789770132E-03
+8.2646342950815008E-03
+8.2549498905312400E-03
+8.2452731640320492E-03
+8.2356041114833196E-03
+8.2259427281844225E-03
+8.2162890127286878E-03
+8.2066429663245170E-03
+8.1970045884519095E-03
+8.1873738747995223E-03
+8.1777508210020625E-03
+8.1681354253370520E-03
+8.1585276870542664E-03
+8.1489276044160088E-03
+8.1393351746674239E-03
+8.1297503952709113E-03
+8.1201732644207384E-03
+8.1106037803621162E-03
+8.1010419407047882E-03
+8.0914877427547462E-03
+8.0819411844913515E-03
+8.0724022647908258E-03
+8.0628709820777262E-03
+8.0533473328769176E-03
+8.0438313134379730E-03
+8.0343229219595504E-03
+8.0248221579080920E-03
+8.0153290198600215E-03
+8.0058435048222330E-03
+7.9963656098185464E-03
+7.9868953327244443E-03
+7.9774326716584021E-03
+7.9679776243832181E-03
+7.9585301883616580E-03
+7.9490903614580048E-03
+7.9396581424611805E-03
+7.9302335300084903E-03
+7.9208165208778467E-03
+7.9114071111329610E-03
+7.9020052981599066E-03
+7.8926110807939470E-03
+7.8832244577273919E-03
+7.8738454270081155E-03
+7.8644739864831351E-03
+7.8551101332490023E-03
+7.8457538640177328E-03
+7.8364051764082052E-03
+7.8270640693262269E-03
+7.8177305414180755E-03
+7.8084045899126054E-03
+7.7990862117385115E-03
+7.7897754044981490E-03
+7.7804721662633140E-03
+7.7711764949735494E-03
+7.7618883883078449E-03
+7.7526078439816119E-03
+7.7433348600530506E-03
+7.7340694346390857E-03
+7.7248115647977319E-03
+7.7155612466341334E-03
+7.7063184772338386E-03
+7.6970832561233911E-03
+7.6878555829079627E-03
+7.6786354551659827E-03
+7.6694228695852514E-03
+7.6602178228154958E-03
+7.6510203114667765E-03
+7.6418303327808494E-03
+7.6326478860215307E-03
+7.6234729706701979E-03
+7.6143055843677582E-03
+7.6051457237064964E-03
+7.5959933857052053E-03
+7.5868485680436097E-03
+7.5777112684253080E-03
+7.5685814844228391E-03
+7.5594592136115722E-03
+7.5503444541038574E-03
+7.5412372044046981E-03
+7.5321374621414930E-03
+7.5230452232040810E-03
+7.5139604837890428E-03
+7.5048832430069145E-03
+7.4958135009101914E-03
+7.4867512555338127E-03
+7.4776965029737050E-03
+7.4686492395459048E-03
+7.4596094623347892E-03
+7.4505771687145535E-03
+7.4415523573669335E-03
+7.4325350275423908E-03
+7.4235251769305417E-03
+7.4145228012824334E-03
+7.4055278969991350E-03
+7.3965404631187387E-03
+7.3875604990242053E-03
+7.3785880017277986E-03
+7.3696229668133864E-03
+7.3606653913341263E-03
+7.3517152747334972E-03
+7.3427726161186925E-03
+7.3338374120689460E-03
+7.3249096585244105E-03
+7.3159893527487288E-03
+7.3070764930522874E-03
+7.2981710774302688E-03
+7.2892731031583696E-03
+7.2803825675037941E-03
+7.2714994682382163E-03
+7.2626238033135998E-03
+7.2537555703977991E-03
+7.2448947668677134E-03
+7.2360413900423139E-03
+7.2271954371171008E-03
+7.2183569053326730E-03
+7.2095257924867946E-03
+7.2007020966491399E-03
+7.1918858155998622E-03
+7.1830769467343143E-03
+7.1742754873615902E-03
+7.1654814345706915E-03
+7.1566947854546188E-03
+7.1479155377507913E-03
+7.1391436896145744E-03
+7.1303792390179288E-03
+7.1216221836067793E-03
+7.1128725207744489E-03
+7.1041302468278274E-03
+7.0953953578449481E-03
+7.0866678517138171E-03
+7.0779477278450752E-03
+7.0692349847783758E-03
+7.0605296189996895E-03
+7.0518316268054267E-03
+7.0431410050830166E-03
+7.0344577509997919E-03
+7.0257818627735159E-03
+7.0171133397631379E-03
+7.0084521804550139E-03
+6.9997983805875508E-03
+6.9911519356014905E-03
+6.9825128428286426E-03
+6.9738811006109921E-03
+6.9652567072456886E-03
+6.9566396609535433E-03
+6.9480299595156602E-03
+6.9394275990009120E-03
+6.9308325751932312E-03
+6.9222448856459604E-03
+6.9136645291386382E-03
+6.9050915041408319E-03
+6.8965258085114320E-03
+6.8879674397046503E-03
+6.8794163933768443E-03
+6.8708726647397520E-03
+6.8623362518259083E-03
+6.8538071551946548E-03
+6.8452853737601353E-03
+6.8367709022889188E-03
+6.8282637354219466E-03
+6.8197638712459334E-03
+6.8112713093129796E-03
+6.8027860480462379E-03
+6.7943080845547449E-03
+6.7858374157420080E-03
+6.7773740380926602E-03
+6.7689179481517786E-03
+6.7604691438806503E-03
+6.7520276240248351E-03
+6.7435933860361648E-03
+6.7351664254166428E-03
+6.7267467381562302E-03
+6.7183343229898530E-03
+6.7099291792427638E-03
+6.7015313043110383E-03
+6.6931406941700593E-03
+6.6847573456233159E-03
+6.6763812571516579E-03
+6.6680124270961502E-03
+6.6596508519021361E-03
+6.6512965274033191E-03
+6.6429494506648132E-03
+6.6346096199276809E-03
+6.6262770330458845E-03
+6.6179516867629984E-03
+6.6096335777810133E-03
+6.6013227038342484E-03
+6.5930190631283310E-03
+6.5847226535290992E-03
+6.5764334724803504E-03
+6.5681515170836246E-03
+6.5598767833652989E-03
+6.5516092672729537E-03
+6.5433489663610832E-03
+6.5350958791550156E-03
+6.5268500037523932E-03
+6.5186113375467637E-03
+6.5103798777141056E-03
+6.5021556207265985E-03
+6.4939385629502579E-03
+6.4857287022089070E-03
+6.4775260374674145E-03
+6.4693305665324587E-03
+6.4611422847384260E-03
+6.4529611875471385E-03
+6.4447872730883865E-03
+6.4366205404421013E-03
+6.4284609872798572E-03
+6.4203086098403792E-03
+6.4121634046335153E-03
+6.4040253690875876E-03
+6.3958945007902106E-03
+6.3877707973571474E-03
+6.3796542564063825E-03
+6.3715448750859350E-03
+6.3634426499273545E-03
+6.3553475776654223E-03
+6.3472596559293170E-03
+6.3391788824780793E-03
+6.3311052542022947E-03
+6.3230387674404016E-03
+6.3149794193733200E-03
+6.3069272086302653E-03
+6.2988821335331104E-03
+6.2908441902122100E-03
+6.2828133742228315E-03
+6.2747896827214950E-03
+6.2667731142053828E-03
+6.2587636667137255E-03
+6.2507613371760896E-03
+6.2427661223615882E-03
+6.2347780189662694E-03
+6.2267970236792626E-03
+6.2188231337922993E-03
+6.2108563472485692E-03
+6.2028966615871248E-03
+6.1949440730651815E-03
+6.1869985778989682E-03
+6.1790601740511165E-03
+6.1711288603850034E-03
+6.1632046345003718E-03
+6.1552874922203649E-03
+6.1473774295424067E-03
+6.1394744436646153E-03
+6.1315785321027355E-03
+6.1236896926727914E-03
+6.1158079233891880E-03
+6.1079332214136629E-03
+6.1000655823545136E-03
+6.0922050020890380E-03
+6.0843514787700340E-03
+6.0765050112251374E-03
+6.0686655969552474E-03
+6.0608332322773942E-03
+6.0530079136540942E-03
+6.0451896379921993E-03
+6.0373784023293872E-03
+6.0295742041750139E-03
+6.0217770412287607E-03
+6.0139869107683581E-03
+6.0062038095848513E-03
+5.9984277344185552E-03
+5.9906586819347728E-03
+5.9828966488694778E-03
+5.9751416327971452E-03
+5.9673936317544817E-03
+5.9596526430676930E-03
+5.9519186629979869E-03
+5.9441916880429288E-03
+5.9364717160595038E-03
+5.9287587451583397E-03
+5.9210527719953058E-03
+5.9133537921643269E-03
+5.9056618022260126E-03
+5.8979768006593740E-03
+5.8902987858564845E-03
+5.8826277544777837E-03
+5.8749637025910899E-03
+5.8673066265835828E-03
+5.8596565231475066E-03
+5.8520133894575709E-03
+5.8443772238842267E-03
+5.8367480247703126E-03
+5.8291257888095950E-03
+5.8215105119440985E-03
+5.8139021905283667E-03
+5.8063008214274056E-03
+5.7987064017368745E-03
+5.7911189292262424E-03
+5.7835384017298425E-03
+5.7759648162576151E-03
+5.7683981693240315E-03
+5.7608384576316599E-03
+5.7532856781922145E-03
+5.7457398280705545E-03
+5.7382009044480188E-03
+5.7306689045274048E-03
+5.7231438253353729E-03
+5.7156256637610862E-03
+5.7081144167608995E-03
+5.7006100814374905E-03
+5.6931126548944904E-03
+5.6856221341310288E-03
+5.6781385161060998E-03
+5.6706617977572964E-03
+5.6631919760008302E-03
+5.6557290478331402E-03
+5.6482730104715304E-03
+5.6408238611402681E-03
+5.6333815968126243E-03
+5.6259462143367989E-03
+5.6185177105297929E-03
+5.6110960821690288E-03
+5.6036813261578248E-03
+5.5962734398654363E-03
+5.5888724207214368E-03
+5.5814782656302591E-03
+5.5740909711609063E-03
+5.5667105341184967E-03
+5.5593369517165630E-03
+5.5519702211403107E-03
+5.5446103392458321E-03
+5.5372573028013581E-03
+5.5299111087770752E-03
+5.5225717543112675E-03
+5.5152392365056657E-03
+5.5079135523699316E-03
+5.5005946988763285E-03
+5.4932826728330266E-03
+5.4859774709867005E-03
+5.4786790902048273E-03
+5.4713875274848937E-03
+5.4641027798563377E-03
+5.4568248444230635E-03
+5.4495537182846776E-03
+5.4422893983811123E-03
+5.4350318815682523E-03
+5.4277811647132027E-03
+5.4205372446998164E-03
+5.4133001184374398E-03
+5.4060697829299790E-03
+5.3988462351978921E-03
+5.3916294721803645E-03
+5.3844194907607199E-03
+5.3772162878157580E-03
+5.3700198602125255E-03
+5.3628302048434797E-03
+5.3556473187391087E-03
+5.3484711989648069E-03
+5.3413018423994017E-03
+5.3341392457565487E-03
+5.3269834058400946E-03
+5.3198343196804642E-03
+5.3126919843274794E-03
+5.3055563967369492E-03
+5.2984275538209575E-03
+5.2913054523944401E-03
+5.2841900891614363E-03
+5.2770814609389982E-03
+5.2699795649166353E-03
+5.2628843983147083E-03
+5.2557959579467529E-03
+5.2487142403994727E-03
+5.2416392423890032E-03
+5.2345709608267255E-03
+5.2275093926723278E-03
+5.2204545350219211E-03
+5.2134063849791417E-03
+5.2063649392571050E-03
+5.1993301942855775E-03
+5.1923021467499345E-03
+5.1852807938395969E-03
+5.1782661327631927E-03
+5.1712581605159189E-03
+5.1642568740084055E-03
+5.1572622699400938E-03
+5.1502743448115394E-03
+5.1432930952890468E-03
+5.1363185184770850E-03
+5.1293506115086844E-03
+5.1223893712156188E-03
+5.1154347942951733E-03
+5.1084868775881018E-03
+5.1015456181107231E-03
+5.0946110128099100E-03
+5.0876830583638094E-03
+5.0807617514153176E-03
+5.0738470888299289E-03
+5.0669390676057234E-03
+5.0600376846673687E-03
+5.0531429368209655E-03
+5.0462548208606104E-03
+5.0393733335731212E-03
+5.0324984717520435E-03
+5.0256302323246262E-03
+5.0187686123210791E-03
+5.0119136086133652E-03
+5.0050652177428970E-03
+4.9982234362668659E-03
+4.9913882610831623E-03
+4.9845596892127159E-03
+4.9777377175781960E-03
+4.9709223430032387E-03
+4.9641135622702625E-03
+4.9573113720620164E-03
+4.9505157690720074E-03
+4.9437267502201263E-03
+4.9369443125332826E-03
+4.9301684528713684E-03
+4.9233991678768012E-03
+4.9166364542410452E-03
+4.9098803088844060E-03
+4.9031307287527972E-03
+4.8963877104940875E-03
+4.8896512505690430E-03
+4.8829213457232071E-03
+4.8761979931857598E-03
+4.8694811901008137E-03
+4.8627709329788181E-03
+4.8560672181622560E-03
+4.8493700423783356E-03
+4.8426794026729999E-03
+4.8359952960512062E-03
+4.8293177194069538E-03
+4.8226466695717295E-03
+4.8159821430659852E-03
+4.8093241362991493E-03
+4.8026726460283350E-03
+4.7960276693825802E-03
+4.7893892033482720E-03
+4.7827572444459543E-03
+4.7761317891623191E-03
+4.7695128344298230E-03
+4.7629003774073610E-03
+4.7562944149131718E-03
+4.7496949432924316E-03
+4.7431019590087357E-03
+4.7365154591173199E-03
+4.7299354407770175E-03
+4.7233619006510769E-03
+4.7167948350674005E-03
+4.7102342406214939E-03
+4.7036801143997579E-03
+4.6971324534654203E-03
+4.6905912544967301E-03
+4.6840565140518478E-03
+4.6775282287681540E-03
+4.6710063953529562E-03
+4.6644910105051434E-03
+4.6579820708981699E-03
+4.6514795732432732E-03
+4.6449835145421772E-03
+4.6384938919074737E-03
+4.6320107020580712E-03
+4.6255339412645813E-03
+4.6190636059429335E-03
+4.6125996930358850E-03
+4.6061421995571630E-03
+4.5996911222203323E-03
+4.5932464575729219E-03
+4.5868082022757859E-03
+4.5803763531590807E-03
+4.5739509070269850E-03
+4.5675318605196240E-03
+4.5611192102437779E-03
+4.5547129529334637E-03
+4.5483130854145565E-03
+4.5419196044433280E-03
+4.5355325066390789E-03
+4.5291517886308650E-03
+4.5227774471883527E-03
+4.5164094791256080E-03
+4.5100478811676611E-03
+4.5036926499559026E-03
+4.4973437821421627E-03
+4.4910012744126026E-03
+4.4846651234559456E-03
+4.4783353259403632E-03
+4.4720118785256417E-03
+4.4656947779049367E-03
+4.4593840208118924E-03
+4.4530796040177217E-03
+4.4467815244108476E-03
+4.4404897788601063E-03
+4.4342043637731190E-03
+4.4279252752888040E-03
+4.4216525099648324E-03
+4.4153860650205613E-03
+4.4091259375702262E-03
+4.4028721240014458E-03
+4.3966246205332784E-03
+4.3903834238974634E-03
+4.3841485312207749E-03
+4.3779199393638316E-03
+4.3716976446230484E-03
+4.3654816433213138E-03
+4.3592719323528439E-03
+4.3530685088074249E-03
+4.3468713693953697E-03
+4.3406805104478866E-03
+4.3344959283950065E-03
+4.3283176199765917E-03
+4.3221455819682066E-03
+4.3159798110161095E-03
+4.3098203037072553E-03
+4.3036670567773378E-03
+4.2975200671541633E-03
+4.2913793316351539E-03
+4.2852448465057671E-03
+4.2791166079828285E-03
+4.2729946128062125E-03
+4.2668788580461463E-03
+4.2607693405690957E-03
+4.2546660568923709E-03
+4.2485690035153597E-03
+4.2424781770104376E-03
+4.2363935739766993E-03
+4.2303151910940201E-03
+4.2242430251084309E-03
+4.2181770726890779E-03
+4.2121173303330253E-03
+4.2060637945634128E-03
+4.2000164622182116E-03
+4.1939753302464812E-03
+4.1879403952372685E-03
+4.1819116533968366E-03
+4.1758891010954570E-03
+4.1698727352288151E-03
+4.1638625527438073E-03
+4.1578585502089760E-03
+4.1518607239982791E-03
+4.1458690706122642E-03
+4.1398835867275455E-03
+4.1339042690762022E-03
+4.1279311145544784E-03
+4.1219641200594655E-03
+4.1160032820074313E-03
+4.1100485964916241E-03
+4.1041000599001658E-03
+4.0981576691572147E-03
+4.0922214211826062E-03
+4.0862913125892233E-03
+4.0803673398930171E-03
+4.0744494996396898E-03
+4.0685377884012910E-03
+4.0626322028139584E-03
+4.0567327396611938E-03
+4.0508393956987286E-03
+4.0449521673432557E-03
+4.0390710508756734E-03
+4.0331960428183497E-03
+4.0273271399673500E-03
+4.0214643390771307E-03
+4.0156076367283801E-03
+4.0097570294722424E-03
+4.0039125138972070E-03
+3.9980740866126839E-03
+3.9922417442339424E-03
+3.9864154833845001E-03
+3.9805953006689897E-03
+3.9747811926112726E-03
+3.9689731557150708E-03
+3.9631711864934731E-03
+3.9573752814678100E-03
+3.9515854373217219E-03
+3.9458016510469547E-03
+3.9400239195353081E-03
+3.9342522389341703E-03
+3.9284866051666999E-03
+3.9227270148079387E-03
+3.9169734650408771E-03
+3.9112259528251061E-03
+3.9054844745051286E-03
+3.8997490263517030E-03
+3.8940196047896050E-03
+3.8882962063193005E-03
+3.8825788276282856E-03
+3.8768674656286185E-03
+3.8711621171242392E-03
+3.8654627785168908E-03
+3.8597694461356513E-03
+3.8540821164183632E-03
+3.8484007858694343E-03
+3.8427254511126693E-03
+3.8370561089563909E-03
+3.8313927561404578E-03
+3.8257353890306157E-03
+3.8200840039094401E-03
+3.8144385973655857E-03
+3.8087991662224944E-03
+3.8031657072027623E-03
+3.7975382168120592E-03
+3.7919166915220291E-03
+3.7863011277579949E-03
+3.7806915219320458E-03
+3.7750878705441670E-03
+3.7694901701817501E-03
+3.7638984174957523E-03
+3.7583126092967578E-03
+3.7527327423672071E-03
+3.7471588130472450E-03
+3.7415908174709108E-03
+3.7360287521027978E-03
+3.7304726138327978E-03
+3.7249223994570055E-03
+3.7193781053393104E-03
+3.7138397277703427E-03
+3.7083072632982132E-03
+3.7027807086329333E-03
+3.6972600604068370E-03
+3.6917453151191172E-03
+3.6862364692577098E-03
+3.6807335193169036E-03
+3.6752364617989143E-03
+3.6697452933050073E-03
+3.6642600105171452E-03
+3.6587806100297090E-03
+3.6533070882421633E-03
+3.6478394415433708E-03
+3.6423776664178476E-03
+3.6369217593910192E-03
+3.6314717170678004E-03
+3.6260275361369239E-03
+3.6205892132047742E-03
+3.6151567446307876E-03
+3.6097301267605836E-03
+3.6043093562041079E-03
+3.5988944297042987E-03
+3.5934853438252040E-03
+3.5880820948853277E-03
+3.5826846792642517E-03
+3.5772930936418933E-03
+3.5719073347492514E-03
+3.5665273990631925E-03
+3.5611532828908345E-03
+3.5557849826848274E-03
+3.5504224951610633E-03
+3.5450658170098591E-03
+3.5397149446526901E-03
+3.5343698744332110E-03
+3.5290306028391443E-03
+3.5236971264835841E-03
+3.5183694419104864E-03
+3.5130475454939864E-03
+3.5077314336151274E-03
+3.5024211028683960E-03
+3.4971165499358739E-03
+3.4918177714252006E-03
+3.4865247638599136E-03
+3.4812375237324141E-03
+3.4759560474533343E-03
+3.4706803314309004E-03
+3.4654103721987873E-03
+3.4601461663581459E-03
+3.4548877104111464E-03
+3.4496350007150204E-03
+3.4443880336757836E-03
+3.4391468059460830E-03
+3.4339113142288209E-03
+3.4286815550524838E-03
+3.4234575248201751E-03
+3.4182392199275089E-03
+3.4130266367611108E-03
+3.4078197717512977E-03
+3.4026186215742474E-03
+3.3974231829759561E-03
+3.3922334524153774E-03
+3.3870494260854951E-03
+3.3818711003188637E-03
+3.3766984718187525E-03
+3.3715315373135024E-03
+3.3663702932975170E-03
+3.3612147361595100E-03
+3.3560648622887662E-03
+3.3509206680759260E-03
+3.3457821499845194E-03
+3.3406493047177157E-03
+3.3355221289968510E-03
+3.3304006192228066E-03
+3.3252847716100280E-03
+3.3201745825379957E-03
+3.3150700486454512E-03
+3.3099711665392378E-03
+3.3048779325879785E-03
+3.2997903431139660E-03
+3.2947083947239158E-03
+3.2896320842403220E-03
+3.2845614082329523E-03
+3.2794963627510651E-03
+3.2744369438950783E-03
+3.2693831484382966E-03
+3.2643349733786440E-03
+3.2592924152197674E-03
+3.2542554699773688E-03
+3.2492241338429408E-03
+3.2441984035293733E-03
+3.2391782758059385E-03
+3.2341637472077852E-03
+3.2291548141547572E-03
+3.2241514729811844E-03
+3.2191537199134394E-03
+3.2141615513087457E-03
+3.2091749640108433E-03
+3.2041939549238654E-03
+3.1992185204241237E-03
+3.1942486565589932E-03
+3.1892843596016880E-03
+3.1843256262065272E-03
+3.1793724530168269E-03
+3.1744248364553394E-03
+3.1694827728869523E-03
+3.1645462587950109E-03
+3.1596152907591457E-03
+3.1546898653285298E-03
+3.1497699789806957E-03
+3.1448556281615508E-03
+3.1399468091745726E-03
+3.1350435182774766E-03
+3.1301457519822859E-03
+3.1252535070681068E-03
+3.1203667801890898E-03
+3.1154855676082728E-03
+3.1106098655539517E-03
+3.1057396705529245E-03
+3.1008749792816753E-03
+3.0960157882371398E-03
+3.0911620936710320E-03
+3.0863138918873377E-03
+3.0814711794544310E-03
+3.0766339529925330E-03
+3.0718022089899159E-03
+3.0669759438466835E-03
+3.0621551539888919E-03
+3.0573398358910583E-03
+3.0525299860206436E-03
+3.0477256007842308E-03
+3.0429266765772678E-03
+3.0381332099424260E-03
+3.0333451975493400E-03
+3.0285626359055086E-03
+3.0237855211355641E-03
+3.0190138493817963E-03
+3.0142476172762911E-03
+3.0094868216463625E-03
+3.0047314590244878E-03
+2.9999815256128988E-03
+2.9952370177018686E-03
+2.9904979319029840E-03
+2.9857642648638705E-03
+2.9810360129968148E-03
+2.9763131725859216E-03
+2.9715957399799992E-03
+2.9668837116232469E-03
+2.9621770839940872E-03
+2.9574758536800279E-03
+2.9527800172809873E-03
+2.9480895711908005E-03
+2.9434045116573746E-03
+2.9387248350604199E-03
+2.9340505380330288E-03
+2.9293816171890416E-03
+2.9247180688848121E-03
+2.9200598893953321E-03
+2.9154070751176496E-03
+2.9107596225613815E-03
+2.9061175282050675E-03
+2.9014807884403747E-03
+2.8968493996710766E-03
+2.8922233584879691E-03
+2.8876026615577296E-03
+2.8829873052861731E-03
+2.8783772857683756E-03
+2.8737725992307259E-03
+2.8691732423877419E-03
+2.8645792120224832E-03
+2.8599905046000343E-03
+2.8554071163992352E-03
+2.8508290437172000E-03
+2.8462562828828206E-03
+2.8416888302758110E-03
+2.8371266824861116E-03
+2.8325698361459433E-03
+2.8280182876644117E-03
+2.8234720332818387E-03
+2.8189310693657156E-03
+2.8143953925467572E-03
+2.8098649994439256E-03
+2.8053398864223639E-03
+2.8008200497596993E-03
+2.7963054858422213E-03
+2.7917961911629549E-03
+2.7872921622053353E-03
+2.7827933954156820E-03
+2.7782998872346158E-03
+2.7738116341054077E-03
+2.7693286324730593E-03
+2.7648508787994435E-03
+2.7603783695677279E-03
+2.7559111012313521E-03
+2.7514490701346941E-03
+2.7469922726066974E-03
+2.7425407050708232E-03
+2.7380943640094857E-03
+2.7336532458936331E-03
+2.7292173471738976E-03
+2.7247866642956041E-03
+2.7203611936880397E-03
+2.7159409317800438E-03
+2.7115258750699703E-03
+2.7071160201116388E-03
+2.7027113633135199E-03
+2.6983119007696495E-03
+2.6939176286328377E-03
+2.6895285436842539E-03
+2.6851446429289028E-03
+2.6807659228451973E-03
+2.6763923793612339E-03
+2.6720240085661034E-03
+2.6676608070764166E-03
+2.6633027715805978E-03
+2.6589498985887978E-03
+2.6546021845188514E-03
+2.6502596257489677E-03
+2.6459222186049451E-03
+2.6415899594480533E-03
+2.6372628447871500E-03
+2.6329408711501068E-03
+2.6286240348735229E-03
+2.6243123321691825E-03
+2.6200057594755730E-03
+2.6157043136316024E-03
+2.6114079913864127E-03
+2.6071167888324408E-03
+2.6028307018852725E-03
+2.5985497269928335E-03
+2.5942738610608630E-03
+2.5900031007649290E-03
+2.5857374422196991E-03
+2.5814768815266248E-03
+2.5772214152292184E-03
+2.5729710400470055E-03
+2.5687257524628160E-03
+2.5644855486958362E-03
+2.5602504250590899E-03
+2.5560203781911837E-03
+2.5517954047567866E-03
+2.5475755010897004E-03
+2.5433606633455132E-03
+2.5391508878111440E-03
+2.5349461709647018E-03
+2.5307465093135388E-03
+2.5265518994233151E-03
+2.5223623378644667E-03
+2.5181778210749111E-03
+2.5139983453983192E-03
+2.5098239071635587E-03
+2.5056545026756177E-03
+2.5014901282848809E-03
+2.4973307806021440E-03
+2.4931764563099396E-03
+2.4890271517711122E-03
+2.4848828630558485E-03
+2.4807435864343101E-03
+2.4766093186924403E-03
+2.4724800566278209E-03
+2.4683557965544602E-03
+2.4642365345767434E-03
+2.4601222669941416E-03
+2.4560129903379909E-03
+2.4519087011289856E-03
+2.4478093958098203E-03
+2.4437150708087581E-03
+2.4396257225683519E-03
+2.4355413475396063E-03
+2.4314619421816142E-03
+2.4273875029656306E-03
+2.4233180263471860E-03
+2.4192535087091296E-03
+2.4151939464131418E-03
+2.4111393358003949E-03
+2.4070896731971715E-03
+2.4030449550099284E-03
+2.3990051778055399E-03
+2.3949703381588713E-03
+2.3909404325806387E-03
+2.3869154575512658E-03
+2.3828954093959962E-03
+2.3788802842889126E-03
+2.3748700785144196E-03
+2.3708647886623510E-03
+2.3668644113556776E-03
+2.3628689430882604E-03
+2.3588783802912837E-03
+2.3548927193550902E-03
+2.3509119566191066E-03
+2.3469360884457004E-03
+2.3429651112884852E-03
+2.3389990216209342E-03
+2.3350378159162212E-03
+2.3310814906466679E-03
+2.3271300422361058E-03
+2.3231834670293760E-03
+2.3192417613767391E-03
+2.3153049216877546E-03
+2.3113729443969100E-03
+2.3074458260610455E-03
+2.3035235633345466E-03
+2.2996061527097646E-03
+2.2956935903284945E-03
+2.2917858723549367E-03
+2.2878829953759407E-03
+2.2839849561288659E-03
+2.2800917510244667E-03
+2.2762033761342614E-03
+2.2723198276929091E-03
+2.2684411024368484E-03
+2.2645671971494780E-03
+2.2606981082676177E-03
+2.2568338320528556E-03
+2.2529743648189455E-03
+2.2491197029514713E-03
+2.2452698428478356E-03
+2.2414247809308791E-03
+2.2375845136373197E-03
+2.2337490374998185E-03
+2.2299183491135467E-03
+2.2260924449861146E-03
+2.2222713214710443E-03
+2.2184549749014416E-03
+2.2146434015853167E-03
+2.2108365978348375E-03
+2.2070345601739516E-03
+2.2032372853072273E-03
+2.1994447697500736E-03
+2.1956570095746832E-03
+2.1918740008893944E-03
+2.1880957404618851E-03
+2.1843222253142458E-03
+2.1805534519424518E-03
+2.1767894162603345E-03
+2.1730301143450437E-03
+2.1692755428551662E-03
+2.1655256985214657E-03
+2.1617805777340042E-03
+2.1580401767013731E-03
+2.1543044918132699E-03
+2.1505735197203798E-03
+2.1468472570269600E-03
+2.1431257000704032E-03
+2.1394088451306588E-03
+2.1356966886143715E-03
+2.1319892270174291E-03
+2.1282864568189955E-03
+2.1245883744638139E-03
+2.1208949763928896E-03
+2.1172062590473924E-03
+2.1135222188699769E-03
+2.1098428523314071E-03
+2.1061681559279614E-03
+2.1024981260975434E-03
+2.0988327591340027E-03
+2.0951720513435459E-03
+2.0915159992793693E-03
+2.0878645995981776E-03
+2.0842178487670907E-03
+2.0805757430298203E-03
+2.0769382787060118E-03
+2.0733054524013869E-03
+2.0696772607562883E-03
+2.0660537001790050E-03
+2.0624347669447908E-03
+2.0588204574121301E-03
+2.0552107680685216E-03
+2.0516056954029264E-03
+2.0480052358639485E-03
+2.0444093858899446E-03
+2.0408181419280815E-03
+2.0372315004321202E-03
+2.0336494578546385E-03
+2.0300720106455178E-03
+2.0264991552544714E-03
+2.0229308881321898E-03
+2.0193672057296748E-03
+2.0158081044971171E-03
+2.0122535808839602E-03
+2.0087036313408916E-03
+2.0051582523219406E-03
+2.0016174402801424E-03
+1.9980811916566351E-03
+1.9945495028877562E-03
+1.9910223704400630E-03
+1.9874997908180107E-03
+1.9839817604772616E-03
+1.9804682756963399E-03
+1.9769593327442314E-03
+1.9734549282053142E-03
+1.9699550588560813E-03
+1.9664597212810746E-03
+1.9629689117491929E-03
+1.9594826265388826E-03
+1.9560008621061580E-03
+1.9525236149559894E-03
+1.9490508815539688E-03
+1.9455826583342037E-03
+1.9421189417387437E-03
+1.9386597282282547E-03
+1.9352050142610652E-03
+1.9317547962662991E-03
+1.9283090706647184E-03
+1.9248678339482566E-03
+1.9214310826822321E-03
+1.9179988134107012E-03
+1.9145710226090864E-03
+1.9111477067276892E-03
+1.9077288621041949E-03
+1.9043144850230975E-03
+1.9009045719258185E-03
+1.8974991194634799E-03
+1.8940981242206423E-03
+1.8907015824806020E-03
+1.8873094904813738E-03
+1.8839218447561298E-03
+1.8805386420314648E-03
+1.8771598789482466E-03
+1.8737855519934097E-03
+1.8704156575873115E-03
+1.8670501918948113E-03
+1.8636891510278866E-03
+1.8603325315622058E-03
+1.8569803304672922E-03
+1.8536325444623697E-03
+1.8502891696727743E-03
+1.8469502021989620E-03
+1.8436156385218071E-03
+1.8402854752776138E-03
+1.8369597090675716E-03
+1.8336383364536950E-03
+1.8303213539338889E-03
+1.8270087578205177E-03
+1.8237005444111591E-03
+1.8203967101851363E-03
+1.8170972517198329E-03
+1.8138021655881023E-03
+1.8105114483549880E-03
+1.8072250965440952E-03
+1.8039431065161415E-03
+1.8006654745948514E-03
+1.7973921971513914E-03
+1.7941232705914157E-03
+1.7908586914383519E-03
+1.7875984564313864E-03
+1.7843425622582204E-03
+1.7810910052066637E-03
+1.7778437814498468E-03
+1.7746008875200153E-03
+1.7713623202743262E-03
+1.7681280763450881E-03
+1.7648981517929768E-03
+1.7616725426854505E-03
+1.7584512457522725E-03
+1.7552342580004368E-03
+1.7520215759848116E-03
+1.7488131957302795E-03
+1.7456091133968862E-03
+1.7424093256737773E-03
+1.7392138293345113E-03
+1.7360226209388097E-03
+1.7328356969213423E-03
+1.7296530536148411E-03
+1.7264746872001759E-03
+1.7233005939969843E-03
+1.7201307709735754E-03
+1.7169652152200956E-03
+1.7138039230841094E-03
+1.7106468903613609E-03
+1.7074941132418126E-03
+1.7043455887170047E-03
+1.7012013137424169E-03
+1.6980612845278800E-03
+1.6949254970394249E-03
+1.6917939477285736E-03
+1.6886666335151196E-03
+1.6855435511937533E-03
+1.6824246971864822E-03
+1.6793100678519903E-03
+1.6761996595184390E-03
+1.6730934685034984E-03
+1.6699914912603482E-03
+1.6668937244109111E-03
+1.6638001646134338E-03
+1.6607108086146986E-03
+1.6576256531348884E-03
+1.6545446943973966E-03
+1.6514679283258207E-03
+1.6483953512036289E-03
+1.6453269599009822E-03
+1.6422627512736666E-03
+1.6392027218666383E-03
+1.6361468681339434E-03
+1.6330951865058266E-03
+1.6300476733939341E-03
+1.6270043252668382E-03
+1.6239651387137519E-03
+1.6209301103102180E-03
+1.6178992364526714E-03
+1.6148725134780340E-03
+1.6118499379405389E-03
+1.6088315066173622E-03
+1.6058172161412952E-03
+1.6028070627172777E-03
+1.5998010425353414E-03
+1.5967991522808464E-03
+1.5938013888807806E-03
+1.5908077489561771E-03
+1.5878182287203592E-03
+1.5848328244284537E-03
+1.5818515325934208E-03
+1.5788743497929625E-03
+1.5759012726669268E-03
+1.5729322978943207E-03
+1.5699674220273554E-03
+1.5670066413993107E-03
+1.5640499523839209E-03
+1.5610973516615111E-03
+1.5581488359898128E-03
+1.5552044018276509E-03
+1.5522640453813059E-03
+1.5493277629860115E-03
+1.5463955512842833E-03
+1.5434674069595197E-03
+1.5405433266885641E-03
+1.5376233071380003E-03
+1.5347073447704192E-03
+1.5317954358256736E-03
+1.5288875766283228E-03
+1.5259837637877553E-03
+1.5230839939706239E-03
+1.5201882638865905E-03
+1.5172965702624057E-03
+1.5144089095423623E-03
+1.5115252777721509E-03
+1.5086456711331814E-03
+1.5057700864640939E-03
+1.5028985207444390E-03
+1.5000309706703551E-03
+1.4971674327391834E-03
+1.4943079033398468E-03
+1.4914523786701372E-03
+1.4886008550149940E-03
+1.4857533292312564E-03
+1.4829097983416681E-03
+1.4800702589192506E-03
+1.4772347071319955E-03
+1.4744031392500650E-03
+1.4715755518236440E-03
+1.4687519414481596E-03
+1.4659323047484282E-03
+1.4631166383596930E-03
+1.4603049388417326E-03
+1.4574972026665611E-03
+1.4546934263393019E-03
+1.4518936064860874E-03
+1.4490977397505652E-03
+1.4463058227119072E-03
+1.4435178519109505E-03
+1.4407338238113657E-03
+1.4379537347615952E-03
+1.4351775811736096E-03
+1.4324053597703718E-03
+1.4296370673458094E-03
+1.4268727005273976E-03
+1.4241122558185384E-03
+1.4213557296715174E-03
+1.4186031184444830E-03
+1.4158544185379511E-03
+1.4131096266569918E-03
+1.4103687396067209E-03
+1.4076317540206451E-03
+1.4048986663676591E-03
+1.4021694731180029E-03
+1.3994441707624794E-03
+1.3967227558131727E-03
+1.3940052249219793E-03
+1.3912915748004839E-03
+1.3885818019585530E-03
+1.3858759026561002E-03
+1.3831738732859699E-03
+1.3804757107477997E-03
+1.3777814120078491E-03
+1.3750909735841602E-03
+1.3724043917236945E-03
+1.3697216628484189E-03
+1.3670427836666502E-03
+1.3643677508686568E-03
+1.3616965609445266E-03
+1.3590292103359658E-03
+1.3563656956219873E-03
+1.3537060134896826E-03
+1.3510501605467498E-03
+1.3483981332289394E-03
+1.3457499279920021E-03
+1.3431055415473775E-03
+1.3404649706958152E-03
+1.3378282120505782E-03
+1.3351952620335580E-03
+1.3325661171247232E-03
+1.3299407739875710E-03
+1.3273192292965049E-03
+1.3247014795548702E-03
+1.3220875211843331E-03
+1.3194773507603833E-03
+1.3168709650619090E-03
+1.3142683608238456E-03
+1.3116695345691235E-03
+1.3090744827717101E-03
+1.3064832019007721E-03
+1.3038956884238821E-03
+1.3013119389305473E-03
+1.2987319502184387E-03
+1.2961557190390468E-03
+1.2935832418170304E-03
+1.2910145148984744E-03
+1.2884495350011984E-03
+1.2858882991546089E-03
+1.2833308041119216E-03
+1.2807770459884549E-03
+1.2782270209162386E-03
+1.2756807257101135E-03
+1.2731381574459062E-03
+1.2705993127499124E-03
+1.2680641877597051E-03
+1.2655327788211870E-03
+1.2630050829668883E-03
+1.2604810972927851E-03
+1.2579608183270077E-03
+1.2554442422983291E-03
+1.2529313656041729E-03
+1.2504221848824576E-03
+1.2479166968073106E-03
+1.2454148981246159E-03
+1.2429167855800174E-03
+1.2404223556888782E-03
+1.2379316048090278E-03
+1.2354445295035647E-03
+1.2329611267150769E-03
+1.2304813933327558E-03
+1.2280053257510927E-03
+1.2255329202168375E-03
+1.2230641732602677E-03
+1.2205990816656841E-03
+1.2181376421899000E-03
+1.2156798515027155E-03
+1.2132257062597910E-03
+1.2107752031063838E-03
+1.2083283386795233E-03
+1.2058851095046953E-03
+1.2034455119785210E-03
+1.2010095426092696E-03
+1.1985771982808550E-03
+1.1961484759111362E-03
+1.1937233720223464E-03
+1.1913018829164972E-03
+1.1888840051688999E-03
+1.1864697357668872E-03
+1.1840590715921906E-03
+1.1816520089376814E-03
+1.1792485439793528E-03
+1.1768486734383245E-03
+1.1744523944362060E-03
+1.1720597038411286E-03
+1.1696705980104730E-03
+1.1672850733039355E-03
+1.1649031264276224E-03
+1.1625247542009923E-03
+1.1601499532581997E-03
+1.1577787200569376E-03
+1.1554110511816746E-03
+1.1530469435584306E-03
+1.1506863940993180E-03
+1.1483293991947070E-03
+1.1459759550045765E-03
+1.1436260581125061E-03
+1.1412797056245671E-03
+1.1389368945090000E-03
+1.1365976211575451E-03
+1.1342618818763843E-03
+1.1319296733637802E-03
+1.1296009925534710E-03
+1.1272758362180163E-03
+1.1249542008681384E-03
+1.1226360830253032E-03
+1.1203214793658379E-03
+1.1180103866091015E-03
+1.1157028014604400E-03
+1.1133987206139561E-03
+1.1110981407251210E-03
+1.1088010583699482E-03
+1.1065074701235376E-03
+1.1042173726159429E-03
+1.1019307625028754E-03
+1.0996476365552686E-03
+1.0973679916607372E-03
+1.0950918245690568E-03
+1.0928191316390537E-03
+1.0905499092225732E-03
+1.0882841541651755E-03
+1.0860218635495571E-03
+1.0837630341352471E-03
+1.0815076622564214E-03
+1.0792557443165785E-03
+1.0770072770762622E-03
+1.0747622573773542E-03
+1.0725206820623924E-03
+1.0702825479719338E-03
+1.0680478517582361E-03
+1.0658165897541039E-03
+1.0635887583705457E-03
+1.0613643545512640E-03
+1.0591433753758127E-03
+1.0569258174746902E-03
+1.0547116771036412E-03
+1.0525009507441699E-03
+1.0502936354039461E-03
+1.0480897280963348E-03
+1.0458892254070961E-03
+1.0436921237572648E-03
+1.0414984197834917E-03
+1.0393081103556190E-03
+1.0371211922869036E-03
+1.0349376621909565E-03
+1.0327575166648672E-03
+1.0305807524848317E-03
+1.0284073665184172E-03
+1.0262373554664867E-03
+1.0240707157963306E-03
+1.0219074440410178E-03
+1.0197475370585323E-03
+1.0175909917589125E-03
+1.0154378047034082E-03
+1.0132879722166139E-03
+1.0111414909811166E-03
+1.0089983583357817E-03
+1.0068585715025168E-03
+1.0047221267274076E-03
+1.0025890199725892E-03
+1.0004592478568678E-03
+9.9833280758347990E-04
+9.9620969619528595E-04
+9.9408991030649498E-04
+9.9197344648830894E-04
+9.8986030144761769E-04
+9.8775047194858559E-04
+9.8564395471468016E-04
+9.8354074642233776E-04
+9.8144084374922032E-04
+9.7934424338503114E-04
+9.7725094203126792E-04
+9.7516093648198287E-04
+9.7307422358196847E-04
+9.7099080008881879E-04
+9.6891066262983969E-04
+9.6683380784267823E-04
+9.6476023245287796E-04
+9.6268993320985680E-04
+9.6062290687388280E-04
+9.5855915021314693E-04
+9.5649865998655647E-04
+9.5444143293477537E-04
+9.5238746579216630E-04
+9.5033675526928676E-04
+9.4828929806929792E-04
+9.4624509091474824E-04
+9.4420413054656913E-04
+9.4216641371011101E-04
+9.4013193716006741E-04
+9.3810069765573871E-04
+9.3607269198062420E-04
+9.3404791692841321E-04
+9.3202636925920359E-04
+9.3000804569193978E-04
+9.2799294294361771E-04
+9.2598105773307167E-04
+9.2397238678071575E-04
+9.2196692681976858E-04
+9.1996467459221835E-04
+9.1796562690658477E-04
+9.1596978067648731E-04
+9.1397713275444248E-04
+9.1198767967540857E-04
+9.1000141790879678E-04
+9.0801834429123031E-04
+9.0603845594505468E-04
+9.0406174979552575E-04
+9.0208822234582426E-04
+9.0011787009992806E-04
+8.9815068988281321E-04
+8.9618667863654094E-04
+8.9422583322453072E-04
+8.9226815043062216E-04
+8.9031362700993410E-04
+8.8836225964906924E-04
+8.8641404503308021E-04
+8.8446897992931121E-04
+8.8252706114554894E-04
+8.8058828548176406E-04
+8.7865264972733221E-04
+8.7672015066918611E-04
+8.7479078508793560E-04
+8.7286454976561291E-04
+8.7094144151740409E-04
+8.6902145717940998E-04
+8.6710459355827767E-04
+8.6519084741037804E-04
+8.6328021547645332E-04
+8.6137269444503035E-04
+8.5946828099979305E-04
+8.5756697200978118E-04
+8.5566876449764604E-04
+8.5377365536622098E-04
+8.5188164124407853E-04
+8.4999271875282401E-04
+8.4810688470766287E-04
+8.4622413599999514E-04
+8.4434446948022381E-04
+8.4246788195455004E-04
+8.4059437020884650E-04
+8.3872393097622047E-04
+8.3685656099583808E-04
+8.3499225714661390E-04
+8.3313101637775145E-04
+8.3127283548563953E-04
+8.2941771105403731E-04
+8.2756563975158639E-04
+8.2571661863738545E-04
+8.2387064483467490E-04
+8.2202771507905816E-04
+8.2018782584270314E-04
+8.1835097380289360E-04
+8.1651715601509830E-04
+8.1468636951449898E-04
+8.1285861102484483E-04
+8.1103387717716680E-04
+8.0921216475860218E-04
+8.0739347069449477E-04
+8.0557779189380100E-04
+8.0376512521564700E-04
+8.0195546750427631E-04
+8.0014881554976930E-04
+7.9834516611909743E-04
+7.9654451598425288E-04
+7.9474686192310010E-04
+7.9295220075089831E-04
+7.9116052939857951E-04
+7.8937184480919740E-04
+7.8758614382485790E-04
+7.8580342323157192E-04
+7.8402367984982521E-04
+7.8224691055195957E-04
+7.8047311219726293E-04
+7.7870228157316120E-04
+7.7693441545463886E-04
+7.7516951070361875E-04
+7.7340756424490713E-04
+7.7164857293880143E-04
+7.6989253351899102E-04
+7.6813944274629756E-04
+7.6638929761367841E-04
+7.6464209518439872E-04
+7.6289783230477904E-04
+7.6115650561682003E-04
+7.5941811184742324E-04
+7.5768264795748777E-04
+7.5595011092788084E-04
+7.5422049761529966E-04
+7.5249380482080648E-04
+7.5077002939293979E-04
+7.4904916823828941E-04
+7.4733121824531381E-04
+7.4561617623011053E-04
+7.4390403900167232E-04
+7.4219480345385450E-04
+7.4048846653080420E-04
+7.3878502513833558E-04
+7.3708447612090826E-04
+7.3538681631895913E-04
+7.3369204257906395E-04
+7.3200015175197081E-04
+7.3031114072569724E-04
+7.2862500641711857E-04
+7.2694174572558723E-04
+7.2526135551298086E-04
+7.2358383263563392E-04
+7.2190917394408176E-04
+7.2023737629150824E-04
+7.1856843664217440E-04
+7.1690235207153789E-04
+7.1523911953658050E-04
+7.1357873566146152E-04
+7.1192119706619931E-04
+7.1026650079336682E-04
+7.0861464408560591E-04
+7.0696562390484049E-04
+7.0531943684797309E-04
+7.0367607958707942E-04
+7.0203554915153463E-04
+7.0039784264089690E-04
+6.9876295703938114E-04
+6.9713088925633633E-04
+6.9550163611781636E-04
+6.9387519431229644E-04
+6.9225156059041356E-04
+6.9063073206540918E-04
+6.8901270594374662E-04
+6.8739747916847721E-04
+6.8578504846509376E-04
+6.8417541062263624E-04
+6.8256856258360735E-04
+6.8096450129985725E-04
+6.7936322365194581E-04
+6.7776472649555661E-04
+6.7616900677843611E-04
+6.7457606154662389E-04
+6.7298588780878208E-04
+6.7139848245165309E-04
+6.6981384234329202E-04
+6.6823196438024356E-04
+6.6665284547398683E-04
+6.6507648253572970E-04
+6.6350287247611398E-04
+6.6193201222185043E-04
+6.6036389876172278E-04
+6.5879852909500429E-04
+6.5723590016476981E-04
+6.5567600887573218E-04
+6.5411885212807825E-04
+6.5256442681518618E-04
+6.5101272984823412E-04
+6.4946375823410351E-04
+6.4791750900484134E-04
+6.4637397908745987E-04
+6.4483316531670698E-04
+6.4329506458596212E-04
+6.4175967393327496E-04
+6.4022699040286544E-04
+6.3869701093765326E-04
+6.3716973243802108E-04
+6.3564515182521690E-04
+6.3412326604437403E-04
+6.3260407205514998E-04
+6.3108756685825490E-04
+6.2957374745802172E-04
+6.2806261081725775E-04
+6.2655415387547690E-04
+6.2504837356750084E-04
+6.2354526682163194E-04
+6.2204483057694217E-04
+6.2054706181925636E-04
+6.1905195754661808E-04
+6.1755951475868213E-04
+6.1606973045603411E-04
+6.1458260161314701E-04
+6.1309812515462513E-04
+6.1161629801101305E-04
+6.1013711717703431E-04
+6.0866057966867614E-04
+6.0718668248313707E-04
+6.0571542259993155E-04
+6.0424679697691362E-04
+6.0278080251942691E-04
+6.0131743614752335E-04
+5.9985669495337475E-04
+5.9839857610396779E-04
+5.9694307664164220E-04
+5.9549019345766477E-04
+5.9403992343840797E-04
+5.9259226348407253E-04
+5.9114721051437349E-04
+5.8970476162329203E-04
+5.8826491400640714E-04
+5.8682766471696869E-04
+5.8539301058361149E-04
+5.8396094846223368E-04
+5.8253147541707372E-04
+5.8110458856543048E-04
+5.7968028495075207E-04
+5.7825856155945530E-04
+5.7683941537937402E-04
+5.7542284340419525E-04
+5.7400884262927211E-04
+5.7259741005557423E-04
+5.7118854268713994E-04
+5.6978223755036329E-04
+5.6837849169388876E-04
+5.6697730215302371E-04
+5.6557866592471518E-04
+5.6418258000362140E-04
+5.6278904141768542E-04
+5.6139804721086375E-04
+5.6000959441897832E-04
+5.5862368006723740E-04
+5.5724030117643316E-04
+5.5585945475406038E-04
+5.5448113780739755E-04
+5.5310534737514332E-04
+5.5173208051588496E-04
+5.5036133428265665E-04
+5.4899310571872675E-04
+5.4762739186184101E-04
+5.4626418972775626E-04
+5.4490349632752640E-04
+5.4354530870289711E-04
+5.4218962392083253E-04
+5.4083643904334535E-04
+5.3948575112006591E-04
+5.3813755719650503E-04
+5.3679185430211061E-04
+5.3544863946131485E-04
+5.3410790973303177E-04
+5.3276966221274069E-04
+5.3143389397701903E-04
+5.3010060204306008E-04
+5.2876978342487261E-04
+5.2744143520195479E-04
+5.2611555448687456E-04
+5.2479213834754821E-04
+5.2347118379030921E-04
+5.2215268783690593E-04
+5.2083664758519142E-04
+5.1952306014793040E-04
+5.1821192259669975E-04
+5.1690323197533139E-04
+5.1559698534115004E-04
+5.1429317977641433E-04
+5.1299181236552779E-04
+5.1169288019081174E-04
+5.1039638033309638E-04
+5.0910230985845432E-04
+5.0781066582013246E-04
+5.0652144529100504E-04
+5.0523464539065739E-04
+5.0395026323762232E-04
+5.0266829589709541E-04
+5.0138874041289502E-04
+5.0011159386477357E-04
+4.9883685337314559E-04
+4.9756451604873666E-04
+4.9629457896571748E-04
+4.9502703919445908E-04
+4.9376189383590157E-04
+4.9249914000789187E-04
+4.9123877482365431E-04
+4.8998079538939789E-04
+4.8872519880327253E-04
+4.8747198213251974E-04
+4.8622114244079208E-04
+4.8497267685096267E-04
+4.8372658252830096E-04
+4.8248285660350461E-04
+4.8124149613992752E-04
+4.8000249820633598E-04
+4.7876585994295357E-04
+4.7753157851214060E-04
+4.7629965102742984E-04
+4.7507007455693839E-04
+4.7384284619382533E-04
+4.7261796309788350E-04
+4.7139542243156726E-04
+4.7017522130096061E-04
+4.6895735678753944E-04
+4.6774182600454415E-04
+4.6652862610353693E-04
+4.6531775423375084E-04
+4.6410920752922008E-04
+4.6290298311931426E-04
+4.6169907811742316E-04
+4.6049748962799465E-04
+4.5929821478718464E-04
+4.5810125078061306E-04
+4.5690659478451860E-04
+4.5571424391471391E-04
+4.5452419527215228E-04
+4.5333644598498444E-04
+4.5215099320230096E-04
+4.5096783408132569E-04
+4.4978696579464947E-04
+4.4860838551022587E-04
+4.4743209035745681E-04
+4.4625807745316248E-04
+4.4508634395082954E-04
+4.4391688704025259E-04
+4.4274970389712932E-04
+4.4158479165547465E-04
+4.4042214744585521E-04
+4.3926176842663795E-04
+4.3810365176989903E-04
+4.3694779465661880E-04
+4.3579419427906401E-04
+4.3464284781451147E-04
+4.3349375238450796E-04
+4.3234690510504848E-04
+4.3120230316894453E-04
+4.3005994381692652E-04
+4.2891982424419237E-04
+4.2778194156929938E-04
+4.2664629292012531E-04
+4.2551287550307457E-04
+4.2438168654557521E-04
+4.2325272323786304E-04
+4.2212598273981620E-04
+4.2100146221875226E-04
+4.1987915885999597E-04
+4.1875906985135023E-04
+4.1764119238133434E-04
+4.1652552363897750E-04
+4.1541206081891532E-04
+4.1430080112168829E-04
+4.1319174174724282E-04
+4.1208487989301409E-04
+4.1098021275622640E-04
+4.0987773753609709E-04
+4.0877745143278442E-04
+4.0767935164276388E-04
+4.0658343535747860E-04
+4.0548969977385142E-04
+4.0439814211107073E-04
+4.0330875959207143E-04
+4.0222154942066741E-04
+4.0113650878802459E-04
+4.0005363490412091E-04
+3.9897292501258594E-04
+3.9789437635327632E-04
+3.9681798612928738E-04
+3.9574375153287098E-04
+3.9467166977180847E-04
+3.9360173806743702E-04
+3.9253395364837021E-04
+3.9146831375899043E-04
+3.9040481564228582E-04
+3.8934345651626148E-04
+3.8828423358904109E-04
+3.8722714408732147E-04
+3.8617218525868112E-04
+3.8511935434421820E-04
+3.8406864856176917E-04
+3.8302006512820402E-04
+3.8197360129321191E-04
+3.8092925432424538E-04
+3.7988702147068041E-04
+3.7884689995539190E-04
+3.7780888700629772E-04
+3.7677297988041134E-04
+3.7573917584066499E-04
+3.7470747212964202E-04
+3.7367786597548538E-04
+3.7265035462479722E-04
+3.7162493535957146E-04
+3.7060160545849597E-04
+3.6958036216069336E-04
+3.6856120269293828E-04
+3.6754412430540026E-04
+3.6652912426992501E-04
+3.6551619986124672E-04
+3.6450534835923924E-04
+3.6349656704170416E-04
+3.6248985316521211E-04
+3.6148520397726117E-04
+3.6048261674102996E-04
+3.5948208873850065E-04
+3.5848361724867859E-04
+3.5748719953720807E-04
+3.5649283286955092E-04
+3.5550051453750442E-04
+3.5451024184796846E-04
+3.5352201208291051E-04
+3.5253582248547498E-04
+3.5155167030916963E-04
+3.5056955286759183E-04
+3.4958946748838310E-04
+3.4861141146307913E-04
+3.4763538205572929E-04
+3.4666137654230825E-04
+3.4568939222417110E-04
+3.4471942640493269E-04
+3.4375147638355630E-04
+3.4278553945702914E-04
+3.4182161291629169E-04
+3.4085969404634936E-04
+3.3989978014597468E-04
+3.3894186855106342E-04
+3.3798595659736324E-04
+3.3703204157062376E-04
+3.3608012073345643E-04
+3.3513019138330905E-04
+3.3418225086211069E-04
+3.3323629650973272E-04
+3.3229232564867516E-04
+3.3135033559637865E-04
+3.3041032365629144E-04
+3.2947228712324714E-04
+3.2853622330335669E-04
+3.2760212952151447E-04
+3.2667000310881739E-04
+3.2573984141732445E-04
+3.2481164180308056E-04
+3.2388540158639662E-04
+3.2296111805862345E-04
+3.2203878852729860E-04
+3.2111841033651462E-04
+3.2019998083667486E-04
+3.1928349738814430E-04
+3.1836895735378753E-04
+3.1745635806145579E-04
+3.1654569680229468E-04
+3.1563697088945119E-04
+3.1473017770336129E-04
+3.1382531463173489E-04
+3.1292237902260398E-04
+3.1202136820376582E-04
+3.1112227951116692E-04
+3.1022511029201968E-04
+3.0932985789923251E-04
+3.0843651970428350E-04
+3.0754509308111318E-04
+3.0665557538020466E-04
+3.0576796393652248E-04
+3.0488225610071071E-04
+3.0399844925145606E-04
+3.0311654076886971E-04
+3.0223652802587806E-04
+3.0135840839304095E-04
+3.0048217923910330E-04
+2.9960783793121304E-04
+2.9873538183085741E-04
+2.9786480828662953E-04
+2.9699611465323352E-04
+2.9612929833956557E-04
+2.9526435677575163E-04
+2.9440128735003143E-04
+2.9354008740383180E-04
+2.9268075428900969E-04
+2.9182328539658568E-04
+2.9096767812439810E-04
+2.9011392986472108E-04
+2.8926203800694810E-04
+2.8841199994932996E-04
+2.8756381310292289E-04
+2.8671747487371357E-04
+2.8587298264306528E-04
+2.8503033378750201E-04
+2.8418952570259345E-04
+2.8335055579745383E-04
+2.8251342147831966E-04
+2.8167812014550406E-04
+2.8084464919924637E-04
+2.8001300604293098E-04
+2.7918318808191431E-04
+2.7835519273943676E-04
+2.7752901745517537E-04
+2.7670465965436559E-04
+2.7588211672527384E-04
+2.7506138605561082E-04
+2.7424246507009898E-04
+2.7342535120949317E-04
+2.7261004189661720E-04
+2.7179653453291152E-04
+2.7098482653091635E-04
+2.7017491534338895E-04
+2.6936679842746802E-04
+2.6856047320136437E-04
+2.6775593706090793E-04
+2.6695318742646541E-04
+2.6615222175649459E-04
+2.6535303750976463E-04
+2.6455563213225304E-04
+2.6376000306515786E-04
+2.6296614773066402E-04
+2.6217406353667625E-04
+2.6138374791201846E-04
+2.6059519832804661E-04
+2.5980841225956475E-04
+2.5902338717196635E-04
+2.5824012052597979E-04
+2.5745860975496902E-04
+2.5667885226554680E-04
+2.5590084548897867E-04
+2.5512458692431971E-04
+2.5435007407460406E-04
+2.5357730438678764E-04
+2.5280627528183227E-04
+2.5203698421201172E-04
+2.5126942866938957E-04
+2.5050360614338062E-04
+2.4973951410520471E-04
+2.4897715002156163E-04
+2.4821651135305939E-04
+2.4745759555662146E-04
+2.4670040009769286E-04
+2.4594492245575030E-04
+2.4519116011228326E-04
+2.4443911055212171E-04
+2.4368877126110957E-04
+2.4294013972568765E-04
+2.4219321343274782E-04
+2.4144798986642848E-04
+2.4070446650494769E-04
+2.3996264082951698E-04
+2.3922251034507767E-04
+2.3848407256491744E-04
+2.3774732498037137E-04
+2.3701226505989595E-04
+2.3627889028476990E-04
+2.3554719817543818E-04
+2.3481718625514202E-04
+2.3408885201225643E-04
+2.3336219291806594E-04
+2.3263720647495094E-04
+2.3191389022732891E-04
+2.3119224171020834E-04
+2.3047225841212445E-04
+2.2975393781380146E-04
+2.2903727743349295E-04
+2.2832227481420016E-04
+2.2760892747940965E-04
+2.2689723291778352E-04
+2.2618718862464738E-04
+2.2547879214646776E-04
+2.2477204104376689E-04
+2.2406693284121297E-04
+2.2336346503271494E-04
+2.2266163512935880E-04
+2.2196144068372696E-04
+2.2126287924886782E-04
+2.2056594834178020E-04
+2.1987064546557627E-04
+2.1917696815486627E-04
+2.1848491397922975E-04
+2.1779448050130592E-04
+2.1710566525727973E-04
+2.1641846577840417E-04
+2.1573287959633812E-04
+2.1504890424325695E-04
+2.1436653726598443E-04
+2.1368577623232307E-04
+2.1300661870922709E-04
+2.1232906225371803E-04
+2.1165310441933737E-04
+2.1097874274670980E-04
+2.1030597476750625E-04
+2.0963479803354969E-04
+2.0896521013453835E-04
+2.0829720865874716E-04
+2.0763079116440554E-04
+2.0696595520037665E-04
+2.0630269833039682E-04
+2.0564101813180737E-04
+2.0498091217509076E-04
+2.0432237801275508E-04
+2.0366541320171696E-04
+2.0301001535094954E-04
+2.0235618209093353E-04
+2.0170391099941267E-04
+2.0105319959175976E-04
+2.0040404540584144E-04
+1.9975644606400923E-04
+1.9911039920142800E-04
+1.9846590241004279E-04
+1.9782295325680957E-04
+1.9718154931896122E-04
+1.9654168818988588E-04
+1.9590336746511502E-04
+1.9526658474358852E-04
+1.9463133762504146E-04
+1.9399762370735882E-04
+1.9336544058705613E-04
+1.9273478586323285E-04
+1.9210565714020909E-04
+1.9147805202457602E-04
+1.9085196813261294E-04
+1.9022740308359553E-04
+1.8960435448584303E-04
+1.8898281993702155E-04
+1.8836279704182037E-04
+1.8774428342445052E-04
+1.8712727671168708E-04
+1.8651177452567013E-04
+1.8589777448633880E-04
+1.8528527421344282E-04
+1.8467427132651899E-04
+1.8406476344682009E-04
+1.8345674820158112E-04
+1.8285022321985276E-04
+1.8224518613630853E-04
+1.8164163458910483E-04
+1.8103956621557470E-04
+1.8043897865162352E-04
+1.7983986953304225E-04
+1.7924223649568260E-04
+1.7864607717548041E-04
+1.7805138920948312E-04
+1.7745817023569240E-04
+1.7686641790296592E-04
+1.7627612988315599E-04
+1.7568730384499132E-04
+1.7509993741922497E-04
+1.7451402822311698E-04
+1.7392957390317650E-04
+1.7334657213625109E-04
+1.7276502059852627E-04
+1.7218491696041258E-04
+1.7160625888939390E-04
+1.7102904403647112E-04
+1.7045327004452354E-04
+1.6987893456680311E-04
+1.6930603527052032E-04
+1.6873456982653096E-04
+1.6816453591564601E-04
+1.6759593122124740E-04
+1.6702875342969429E-04
+1.6646300022917168E-04
+1.6589866929560122E-04
+1.6533575828357229E-04
+1.6477426485186653E-04
+1.6421418669086346E-04
+1.6365552150023445E-04
+1.6309826696971262E-04
+1.6254242078055751E-04
+1.6198798062196028E-04
+1.6143494420170287E-04
+1.6088330922511067E-04
+1.6033307336360924E-04
+1.5978423427610527E-04
+1.5923678966336423E-04
+1.5869073727234161E-04
+1.5814607483297490E-04
+1.5760280001701979E-04
+1.5706091049060928E-04
+1.5652040396856642E-04
+1.5598127819169773E-04
+1.5544353088041941E-04
+1.5490715972574524E-04
+1.5437216242304185E-04
+1.5383853669415781E-04
+1.5330628026692170E-04
+1.5277539086049345E-04
+1.5224586618800621E-04
+1.5171770396981638E-04
+1.5119090193988944E-04
+1.5066545783009577E-04
+1.5014136935311920E-04
+1.4961863421648271E-04
+1.4909725015222551E-04
+1.4857721491467275E-04
+1.4805852625091170E-04
+1.4754118188849033E-04
+1.4702517955447343E-04
+1.4651051699355715E-04
+1.4599719195774064E-04
+1.4548520218332506E-04
+1.4497454538815131E-04
+1.4446521930336050E-04
+1.4395722170626872E-04
+1.4345055037979352E-04
+1.4294520306995287E-04
+1.4244117750169535E-04
+1.4193847141585130E-04
+1.4143708257774876E-04
+1.4093700875181204E-04
+1.4043824768977077E-04
+1.3994079714119305E-04
+1.3944465487374105E-04
+1.3894981866859448E-04
+1.3845628630000998E-04
+1.3796405552792993E-04
+1.3747312411226898E-04
+1.3698348982248552E-04
+1.3649515043169145E-04
+1.3600810371793413E-04
+1.3552234746402794E-04
+1.3503787945053455E-04
+1.3455469745164556E-04
+1.3407279924285948E-04
+1.3359218261792204E-04
+1.3311284537847811E-04
+1.3263478529994960E-04
+1.3215800012494230E-04
+1.3168248761856813E-04
+1.3120824563077482E-04
+1.3073527202279788E-04
+1.3026356457915796E-04
+1.2979312103747684E-04
+1.2932393916424565E-04
+1.2885601677374673E-04
+1.2838935168237270E-04
+1.2792394169615671E-04
+1.2745978461899059E-04
+1.2699687826834508E-04
+1.2653522047246114E-04
+1.2607480904763284E-04
+1.2561564178432727E-04
+1.2515771647488008E-04
+1.2470103094366379E-04
+1.2424558302695488E-04
+1.2379137055128019E-04
+1.2333839133310041E-04
+1.2288664318559577E-04
+1.2243612391412206E-04
+1.2198683132765044E-04
+1.2153876327736009E-04
+1.2109191763494040E-04
+1.2064629223897621E-04
+1.2020188488382239E-04
+1.1975869337434858E-04
+1.1931671556574904E-04
+1.1887594932298578E-04
+1.1843639248842238E-04
+1.1799804288972014E-04
+1.1756089836720396E-04
+1.1712495678347432E-04
+1.1669021599463508E-04
+1.1625667381357130E-04
+1.1582432804371164E-04
+1.1539317655729180E-04
+1.1496321728485507E-04
+1.1453444811676964E-04
+1.1410686684864633E-04
+1.1368047127740235E-04
+1.1325525929572411E-04
+1.1283122883348140E-04
+1.1240837776079333E-04
+1.1198670388216198E-04
+1.1156620502140996E-04
+1.1114687906992648E-04
+1.1072872393109012E-04
+1.1031173750329993E-04
+1.0989591768169766E-04
+1.0948126233394042E-04
+1.0906776928881729E-04
+1.0865543638998033E-04
+1.0824426155198736E-04
+1.0783424270345686E-04
+1.0742537772628307E-04
+1.0701766446993445E-04
+1.0661110081358107E-04
+1.0620568469224166E-04
+1.0580141403398707E-04
+1.0539828669771091E-04
+1.0499630052194790E-04
+1.0459545339622522E-04
+1.0419574325618418E-04
+1.0379716803150123E-04
+1.0339972563345354E-04
+1.0300341396782983E-04
+1.0260823092035458E-04
+1.0221417436885522E-04
+1.0182124221980284E-04
+1.0142943241312456E-04
+1.0103874288093433E-04
+1.0064917152433971E-04
+1.0026071624097474E-04
+9.9873374955596422E-05
+9.9487145608315408E-05
+9.9102026125888387E-05
+9.8718014414646613E-05
+9.8335108386024710E-05
+9.7953305980525736E-05
+9.7572605145278390E-05
+9.7193003811110542E-05
+9.6814499896751406E-05
+9.6437091327374440E-05
+9.6060776041380515E-05
+9.5685551980031509E-05
+9.5311417092173783E-05
+9.4938369328841901E-05
+9.4566406629991616E-05
+9.4195526924932535E-05
+9.3825728151024181E-05
+9.3457008267507470E-05
+9.3089365235696480E-05
+9.2722797005895334E-05
+9.2357301523510353E-05
+9.1992876743739630E-05
+9.1629520633974273E-05
+9.1267231159325668E-05
+9.0906006274484865E-05
+9.0545843932583398E-05
+9.0186742094073481E-05
+8.9828698723978342E-05
+8.9471711792927995E-05
+8.9115779280456574E-05
+8.8760899165391934E-05
+8.8407069419635021E-05
+8.8054288013531611E-05
+8.7702552924215767E-05
+8.7351862134199085E-05
+8.7002213623497735E-05
+8.6653605366587762E-05
+8.6306035339161986E-05
+8.5959501528752821E-05
+8.5614001927489456E-05
+8.5269534529277231E-05
+8.4926097329836376E-05
+8.4583688323535769E-05
+8.4242305500781503E-05
+8.3901946852473375E-05
+8.3562610379383129E-05
+8.3224294087111923E-05
+8.2886995976054823E-05
+8.2550714039673675E-05
+8.2215446276485301E-05
+8.1881190705353741E-05
+8.1547945348697012E-05
+8.1215708215571543E-05
+8.0884477306409735E-05
+8.0554250630729320E-05
+8.0225026213866959E-05
+7.9896802080628039E-05
+7.9569576245518489E-05
+7.9243346720392360E-05
+7.8918111526121311E-05
+7.8593868691210258E-05
+7.8270616247047282E-05
+7.7948352230950631E-05
+7.7627074678804719E-05
+7.7306781611604535E-05
+7.6987471044910908E-05
+7.6669141011771020E-05
+7.6351789564310744E-05
+7.6035414754020014E-05
+7.5720014627657796E-05
+7.5405587229888211E-05
+7.5092130594193627E-05
+7.4779642748366910E-05
+7.4468121734227387E-05
+7.4157565613415942E-05
+7.3847972448730779E-05
+7.3539340301645670E-05
+7.3231667232302128E-05
+7.2924951287844730E-05
+7.2619190506537768E-05
+7.2314382942821766E-05
+7.2010526681037348E-05
+7.1707619804398895E-05
+7.1405660373229148E-05
+7.1104646440854922E-05
+7.0804576071446888E-05
+7.0505447338938885E-05
+7.0207258319636908E-05
+6.9910007094701915E-05
+6.9613691744623157E-05
+6.9318310339979331E-05
+6.9023860947613934E-05
+6.8730341652682085E-05
+6.8437750561598450E-05
+6.8146085772463765E-05
+6.7855345353211110E-05
+6.7565527368836596E-05
+6.7276629914453766E-05
+6.6988651102286442E-05
+6.6701589038629082E-05
+6.6415441820587569E-05
+6.6130207543890052E-05
+6.5845884301619280E-05
+6.5562470186698068E-05
+6.5279963299665698E-05
+6.4998361746743295E-05
+6.4717663637937014E-05
+6.4437867090374551E-05
+6.4158970221313302E-05
+6.3880971144044269E-05
+6.3603867970433870E-05
+6.3327658811871321E-05
+6.3052341779307511E-05
+6.2777914991892555E-05
+6.2504376589829575E-05
+6.2231724712780774E-05
+6.1959957470426167E-05
+6.1689072959282223E-05
+6.1419069305071152E-05
+6.1149944669662624E-05
+6.0881697207537162E-05
+6.0614325040378435E-05
+6.0347826284485078E-05
+6.0082199073351376E-05
+5.9817441551002304E-05
+5.9553551864781782E-05
+5.9290528167101380E-05
+5.9028368608709621E-05
+5.8767071330695509E-05
+5.8506634472157313E-05
+5.8247056184018002E-05
+5.7988334626524780E-05
+5.7730467958327895E-05
+5.7473454334226121E-05
+5.7217291909289666E-05
+5.6961978843209292E-05
+5.6707513297527025E-05
+5.6453893436095068E-05
+5.6201117425115373E-05
+5.5949183432121417E-05
+5.5698089628008121E-05
+5.5447834184366195E-05
+5.5198415273820867E-05
+5.4949831069578144E-05
+5.4702079747426482E-05
+5.4455159486536580E-05
+5.4209068467222183E-05
+5.3963804873129969E-05
+5.3719366888711982E-05
+5.3475752698946390E-05
+5.3232960489194142E-05
+5.2990988448097982E-05
+5.2749834769884177E-05
+5.2509497648991556E-05
+5.2269975278246946E-05
+5.2031265850402013E-05
+5.1793367565427378E-05
+5.1556278629351544E-05
+5.1319997246173980E-05
+5.1084521614965929E-05
+5.0849849935819710E-05
+5.0615980419977756E-05
+5.0382911283085579E-05
+5.0150640737440521E-05
+4.9919166991702863E-05
+4.9688488256994422E-05
+4.9458602752212406E-05
+4.9229508697727461E-05
+4.9001204314341413E-05
+4.8773687823155510E-05
+4.8546957448419930E-05
+4.8321011418786571E-05
+4.8095847963106104E-05
+4.7871465309718114E-05
+4.7647861687218709E-05
+4.7425035329081160E-05
+4.7202984472160822E-05
+4.6981707354117794E-05
+4.6761202213944308E-05
+4.6541467291408781E-05
+4.6322500829623726E-05
+4.6104301072922965E-05
+4.5886866268004345E-05
+4.5670194663680772E-05
+4.5454284509753717E-05
+4.5239134058197857E-05
+4.5024741561690880E-05
+4.4811105275676165E-05
+4.4598223456891299E-05
+4.4386094364902494E-05
+4.4174716262534582E-05
+4.3964087413196718E-05
+4.3754206081570294E-05
+4.3545070532834690E-05
+4.3336679034593555E-05
+4.3129029855891976E-05
+4.2922121269209403E-05
+4.2715951552121040E-05
+4.2510518982022062E-05
+4.2305821833784141E-05
+4.2101858382208800E-05
+4.1898626910420451E-05
+4.1696125707659053E-05
+4.1494353061054797E-05
+4.1293307253368492E-05
+4.1092986568402661E-05
+4.0893389298707314E-05
+4.0694513739883622E-05
+4.0496358187039280E-05
+4.0298920934809789E-05
+4.0102200280045529E-05
+3.9906194525282804E-05
+3.9710901973743922E-05
+3.9516320927074140E-05
+3.9322449686371657E-05
+3.9129286559098808E-05
+3.8936829860535617E-05
+3.8745077905060938E-05
+3.8554029002390594E-05
+3.8363681461978594E-05
+3.8174033601044165E-05
+3.7985083741510094E-05
+3.7796830205106845E-05
+3.7609271313160169E-05
+3.7422405388083151E-05
+3.7236230757386758E-05
+3.7050745750086385E-05
+3.6865948696141373E-05
+3.6681837926260146E-05
+3.6498411772186114E-05
+3.6315668567762926E-05
+3.6133606648362242E-05
+3.5952224357067474E-05
+3.5771520039754966E-05
+3.5591492039620418E-05
+3.5412138697143017E-05
+3.5233458355231157E-05
+3.5055449363746729E-05
+3.4878110074000757E-05
+3.4701438839579799E-05
+3.4525434015216486E-05
+3.4350093956383284E-05
+3.4175417019507451E-05
+3.4001401562427795E-05
+3.3828045947882552E-05
+3.3655348539970996E-05
+3.3483307705691823E-05
+3.3311921813913606E-05
+3.3141189233403375E-05
+3.2971108332701737E-05
+3.2801677481697763E-05
+3.2632895056957487E-05
+3.2464759437102214E-05
+3.2297269001202565E-05
+3.2130422128712145E-05
+3.1964217200402128E-05
+3.1798652599932010E-05
+3.1633726712129357E-05
+3.1469437926943989E-05
+3.1305784636388271E-05
+3.1142765232367010E-05
+3.0980378106664622E-05
+3.0818621652543362E-05
+3.0657494267595346E-05
+3.0496994350575461E-05
+3.0337120303610408E-05
+3.0177870530636715E-05
+3.0019243436773230E-05
+2.9861237428758167E-05
+2.9703850914369493E-05
+2.9547082304971764E-05
+2.9390930012924271E-05
+2.9235392452127342E-05
+2.9080468037561083E-05
+2.8926155186325528E-05
+2.8772452319312524E-05
+2.8619357858281780E-05
+2.8466870227462741E-05
+2.8314987852047505E-05
+2.8163709160215317E-05
+2.8013032582799873E-05
+2.7862956550693833E-05
+2.7713479494714869E-05
+2.7564599846808227E-05
+2.7416316046991112E-05
+2.7268626538685009E-05
+2.7121529762916156E-05
+2.6975024157953621E-05
+2.6829108164739752E-05
+2.6683780233073894E-05
+2.6539038814305876E-05
+2.6394882358029457E-05
+2.6251309312933061E-05
+2.6108318132245544E-05
+2.5965907275938815E-05
+2.5824075203897826E-05
+2.5682820373355191E-05
+2.5542141241363230E-05
+2.5402036272140492E-05
+2.5262503935148601E-05
+2.5123542699045181E-05
+2.4985151030704980E-05
+2.4847327398221836E-05
+2.4710070277686576E-05
+2.4573378147862151E-05
+2.4437249484969820E-05
+2.4301682762831027E-05
+2.4166676458481781E-05
+2.4032229057335314E-05
+2.3898339046356966E-05
+2.3765004914399325E-05
+2.3632225151156433E-05
+2.3499998245302063E-05
+2.3368322684260508E-05
+2.3237196958451594E-05
+2.3106619568625745E-05
+2.2976589017396704E-05
+2.2847103804136727E-05
+2.2718162426330756E-05
+2.2589763385481456E-05
+2.2461905189475964E-05
+2.2334586347073200E-05
+2.2207805368416785E-05
+2.2081560764156024E-05
+2.1955851046686135E-05
+2.1830674729780680E-05
+2.1706030329521479E-05
+2.1581916366661106E-05
+2.1458331362833948E-05
+2.1335273841525236E-05
+2.1212742326988991E-05
+2.1090735345259893E-05
+2.0969251424163985E-05
+2.0848289092783950E-05
+2.0727846883392725E-05
+2.0607923329425088E-05
+2.0488516969498952E-05
+2.0369626344761488E-05
+2.0251249995472701E-05
+2.0133386460718331E-05
+2.0016034281240179E-05
+1.9899192004047285E-05
+1.9782858177824954E-05
+1.9667031354304600E-05
+1.9551710087157209E-05
+1.9436892928891724E-05
+1.9322578430009005E-05
+1.9208765143202665E-05
+1.9095451632701936E-05
+1.8982636465992633E-05
+1.8870318206749681E-05
+1.8758495415499720E-05
+1.8647166656045205E-05
+1.8536330499602881E-05
+1.8425985518467134E-05
+1.8316130285528004E-05
+1.8206763374041837E-05
+1.8097883360574582E-05
+1.7989488825236206E-05
+1.7881578348803511E-05
+1.7774150513483156E-05
+1.7667203902200854E-05
+1.7560737102007914E-05
+1.7454748702147577E-05
+1.7349237292852827E-05
+1.7244201465697901E-05
+1.7139639813413780E-05
+1.7035550932835711E-05
+1.6931933421999810E-05
+1.6828785881565887E-05
+1.6726106913996637E-05
+1.6623895122589264E-05
+1.6522149112077661E-05
+1.6420867488412903E-05
+1.6320048863093821E-05
+1.6219691849422429E-05
+1.6119795060804718E-05
+1.6020357110748591E-05
+1.5921376615172092E-05
+1.5822852195654185E-05
+1.5724782474630629E-05
+1.5627166074848184E-05
+1.5530001619298081E-05
+1.5433287734224660E-05
+1.5337023049579581E-05
+1.5241206196931930E-05
+1.5145835812255466E-05
+1.5050910532240360E-05
+1.4956428992222764E-05
+1.4862389826862626E-05
+1.4768791675192729E-05
+1.4675633182696231E-05
+1.4582912995668978E-05
+1.4490629761632613E-05
+1.4398782128582594E-05
+1.4307368746641591E-05
+1.4216388267496368E-05
+1.4125839344572155E-05
+1.4035720634555505E-05
+1.3946030795258669E-05
+1.3856768488730929E-05
+1.3767932378503516E-05
+1.3679521128357813E-05
+1.3591533402315565E-05
+1.3503967866877318E-05
+1.3416823194754939E-05
+1.3330098059759952E-05
+1.3243791136760043E-05
+1.3157901101129529E-05
+1.3072426629002303E-05
+1.2987366397432024E-05
+1.2902719086298069E-05
+1.2818483384733514E-05
+1.2734657983370363E-05
+1.2651241568299897E-05
+1.2568232822994544E-05
+1.2485630437116839E-05
+1.2403433110100218E-05
+1.2321639541384170E-05
+1.2240248426612540E-05
+1.2159258460738085E-05
+1.2078668344295626E-05
+1.1998476782159647E-05
+1.1918682480805136E-05
+1.1839284149747331E-05
+1.1760280499055472E-05
+1.1681670239898445E-05
+1.1603452083988023E-05
+1.1525624746124710E-05
+1.1448186944200701E-05
+1.1371137397266655E-05
+1.1294474827131306E-05
+1.1218197956346460E-05
+1.1142305509797754E-05
+1.1066796213599168E-05
+1.0991668797148788E-05
+1.0916921994075796E-05
+1.0842554538472627E-05
+1.0768565165087785E-05
+1.0694952609134591E-05
+1.0621715609459829E-05
+1.0548852907256507E-05
+1.0476363245686102E-05
+1.0404245371141361E-05
+1.0332498030796454E-05
+1.0261119974096854E-05
+1.0190109951278417E-05
+1.0119466714382576E-05
+1.0049189016955059E-05
+9.9792756150597011E-06
+9.9097252701636905E-06
+9.8405367445577411E-06
+9.7717088012415467E-06
+9.7032402035967999E-06
+9.6351297175913404E-06
+9.5673761119459430E-06
+9.4999781570993637E-06
+9.4329346280587694E-06
+9.3662443006866527E-06
+9.2999059511647240E-06
+9.2339183559190557E-06
+9.1682802948221436E-06
+9.1029905524818935E-06
+9.0380479143922860E-06
+8.9734511681364236E-06
+8.9091991019905053E-06
+8.8452905066210690E-06
+8.7817241743398363E-06
+8.7184988992657701E-06
+8.6556134786866563E-06
+8.5930667109083011E-06
+8.5308573978022176E-06
+8.4689843424700075E-06
+8.4074463495414367E-06
+8.3462422249956064E-06
+8.2853707765356367E-06
+8.2248308157843501E-06
+8.1646211553355025E-06
+8.1047406106578899E-06
+8.0451879985047575E-06
+7.9859621373688240E-06
+7.9270618477090073E-06
+7.8684859516268591E-06
+7.8102332759762994E-06
+7.7523026485519306E-06
+7.6946928973822636E-06
+7.6374028506990257E-06
+7.5804313405085231E-06
+7.5237772043411075E-06
+7.4674392802064398E-06
+7.4114164062814228E-06
+7.3557074211353045E-06
+7.3003111681196816E-06
+7.2452264940524723E-06
+7.1904522462493239E-06
+7.1359872728265969E-06
+7.0818304228597742E-06
+7.0279805502541661E-06
+6.9744365106367758E-06
+6.9211971607733544E-06
+6.8682613584996272E-06
+6.8156279639607839E-06
+6.7632958429720347E-06
+6.7112638621482104E-06
+6.6595308875656548E-06
+6.6080957851991592E-06
+6.5569574257526956E-06
+6.5061146856352833E-06
+6.4555664412799878E-06
+6.4053115680691619E-06
+6.3553489418036423E-06
+6.3056774449209124E-06
+6.2562959638005135E-06
+6.2072033843677953E-06
+6.1583985917575776E-06
+6.1098804724784390E-06
+6.0616479194437483E-06
+6.0136998274428864E-06
+5.9660350927473075E-06
+5.9186526127802158E-06
+5.8715512862981331E-06
+5.8247300147080214E-06
+5.7781877003848976E-06
+5.7319232495652040E-06
+5.6859355699996054E-06
+5.6402235714277701E-06
+5.5947861655679880E-06
+5.5496222654769261E-06
+5.5047307875647888E-06
+5.4601106491517261E-06
+5.4157607704475270E-06
+5.3716800731213237E-06
+5.3278674808312240E-06
+5.2843219197765462E-06
+5.2410423172430006E-06
+5.1980276037927266E-06
+5.1552767109715587E-06
+5.1127885732182528E-06
+5.0705621268289042E-06
+5.0285963097096752E-06
+4.9868900623950538E-06
+4.9454423263857783E-06
+4.9042520466070335E-06
+4.8633181691414052E-06
+4.8226396423414168E-06
+4.7822154164308269E-06
+4.7420444433156562E-06
+4.7021256784331629E-06
+4.6624580780812902E-06
+4.6230406011150760E-06
+4.5838722075044843E-06
+4.5449518598662696E-06
+4.5062785236172868E-06
+4.4678511652500304E-06
+4.4296687539550963E-06
+4.3917302597828918E-06
+4.3540346561278093E-06
+4.3165809181621932E-06
+4.2793680228150603E-06
+4.2423949493966829E-06
+4.2056606783082498E-06
+4.1691641934691689E-06
+4.1329044798430313E-06
+4.0968805249130064E-06
+4.0610913178864476E-06
+4.0255358498340866E-06
+3.9902131150744438E-06
+3.9551221087962057E-06
+3.9202618289406813E-06
+3.8856312744842244E-06
+3.8512294472257735E-06
+3.8170553514350308E-06
+3.7831079927073068E-06
+3.7493863795218073E-06
+3.7158895212129401E-06
+3.6826164302129396E-06
+3.6495661203445401E-06
+3.6167376076927376E-06
+3.5841299108861383E-06
+3.5517420497584157E-06
+3.5195730474284118E-06
+3.4876219279271516E-06
+3.4558877179903654E-06
+3.4243694458959866E-06
+3.3930661420789265E-06
+3.3619768400907003E-06
+3.3311005743984336E-06
+3.3004363822209814E-06
+3.2699833017109795E-06
+3.2397403741059285E-06
+3.2097066428770117E-06
+3.1798811529444592E-06
+3.1502629518778604E-06
+3.1208510882002869E-06
+3.0916446140659932E-06
+3.0626425829797903E-06
+3.0338440505889759E-06
+3.0052480745354237E-06
+2.9768537139086944E-06
+2.9486600312053566E-06
+2.9206660898490095E-06
+2.8928709563058712E-06
+2.8652736984842106E-06
+2.8378733863914340E-06
+2.8106690925434959E-06
+2.7836598905921071E-06
+2.7568448574441654E-06
+2.7302230709860156E-06
+2.7037936123141132E-06
+2.6775555644490886E-06
+2.6515080119639403E-06
+2.6256500417997715E-06
+2.5999807419612791E-06
+2.5744992042462983E-06
+2.5492045216556893E-06
+2.5240957895357369E-06
+2.4991721050425783E-06
+2.4744325670485173E-06
+2.4498762778000284E-06
+2.4255023404561060E-06
+2.4013098611787505E-06
+2.3772979473413851E-06
+2.3534657087678677E-06
+2.3298122577069528E-06
+2.3063367077209086E-06
+2.2830381755896583E-06
+2.2599157790052320E-06
+2.2369686387562140E-06
+2.2141958771854224E-06
+2.1915966187389025E-06
+2.1691699905344864E-06
+2.1469151207921456E-06
+2.1248311410163034E-06
+2.1029171836788804E-06
+2.0811723839700644E-06
+2.0595958788226895E-06
+2.0381868072205753E-06
+2.0169443114928703E-06
+1.9958675348665105E-06
+1.9749556233370300E-06
+1.9542077239024836E-06
+1.9336229865560561E-06
+1.9132005637418359E-06
+1.8929396092292028E-06
+1.8728392794927084E-06
+1.8528987319226495E-06
+1.8331171275089578E-06
+1.8134936287424723E-06
+1.7940274002732282E-06
+1.7747176090218727E-06
+1.7555634232571433E-06
+1.7365640147792247E-06
+1.7177185563348911E-06
+1.6990262234869676E-06
+1.6804861933018269E-06
+1.6620976449476900E-06
+1.6438597604323110E-06
+1.6257717228489145E-06
+1.6078327186439004E-06
+1.5900419352925592E-06
+1.5723985631298505E-06
+1.5549017944322238E-06
+1.5375508232487059E-06
+1.5203448466892258E-06
+1.5032830627970157E-06
+1.4863646727796240E-06
+1.4695888789957901E-06
+1.4529548864468153E-06
+1.4364619024341967E-06
+1.4201091356922016E-06
+1.4038957980833822E-06
+1.3878211024180649E-06
+1.3718842650031140E-06
+1.3560845036866452E-06
+1.3404210383139227E-06
+1.3248930909615549E-06
+1.3094998849946228E-06
+1.2942406473516087E-06
+1.2791146059778994E-06
+1.2641209919217818E-06
+1.2492590379788012E-06
+1.2345279788048518E-06
+1.2199270517216015E-06
+1.2054554951218118E-06
+1.1911125509182469E-06
+1.1768974621247436E-06
+1.1628094744901091E-06
+1.1488478357369063E-06
+1.1350117953488845E-06
+1.1213006060418905E-06
+1.1077135214377395E-06
+1.0942497981640648E-06
+1.0809086940164243E-06
+1.0676894696843575E-06
+1.0545913885346986E-06
+1.0416137151651130E-06
+1.0287557169621336E-06
+1.0160166622085969E-06
+1.0033958227042214E-06
+9.9089247189757711E-07
+9.7850588538889516E-07
+9.6623534133406952E-07
+9.5408011906427994E-07
+9.4203950126971009E-07
+9.3011277162870253E-07
+9.1829921692009290E-07
+9.0659812577715686E-07
+8.9500878870503011E-07
+8.8353049905822365E-07
+8.7216255122086107E-07
+8.6090424302326463E-07
+8.4975487342286912E-07
+8.3871374408033250E-07
+8.2778015872880997E-07
+8.1695342281688979E-07
+8.0623284513274228E-07
+7.9561773538344580E-07
+7.8510740633698749E-07
+7.7470117199871451E-07
+7.6439834906116053E-07
+7.5419825686038011E-07
+7.4410021602961348E-07
+7.3410355033378906E-07
+7.2420758445948930E-07
+7.1441164638553297E-07
+7.0471506573163680E-07
+6.9511717426006036E-07
+6.8561730643841403E-07
+6.7621479787357438E-07
+6.6690898756300989E-07
+6.5769921552550727E-07
+6.4858482487543706E-07
+6.3956516069223876E-07
+6.3063956982384014E-07
+6.2180740197434663E-07
+6.1306800789221696E-07
+6.0442074199167308E-07
+5.9586495991737938E-07
+5.8740001979202233E-07
+5.7902528175761432E-07
+5.7074010764497430E-07
+5.6254386278187207E-07
+5.5443591345035755E-07
+5.4641562911867357E-07
+5.3848238059842046E-07
+5.3063554116304666E-07
+5.2287448666046123E-07
+5.1519859425831227E-07
+5.0760724451523747E-07
+5.0009981894772744E-07
+4.9267570221551304E-07
+4.8533428064259740E-07
+4.7807494270228695E-07
+4.7089707975298757E-07
+4.6380008426150834E-07
+4.5678335210633829E-07
+4.4984628021431567E-07
+4.4298826848349211E-07
+4.3620871881745664E-07
+4.2950703492488721E-07
+4.2288262361312964E-07
+4.1633489267922734E-07
+4.0986325334240247E-07
+4.0346711805224142E-07
+3.9714590195894780E-07
+3.9089902255025133E-07
+3.8472589882463144E-07
+3.7862595306776293E-07
+3.7259860851151395E-07
+3.6664329171983775E-07
+3.6075943073452432E-07
+3.5494645598246297E-07
+3.4920380054172802E-07
+3.4353089876073769E-07
+3.3792718841977060E-07
+3.3239210828105913E-07
+3.2692510024404008E-07
+3.2152560796916980E-07
+3.1619307720144139E-07
+3.1092695665899075E-07
+3.0572669614098446E-07
+3.0059174889368896E-07
+2.9552156925602801E-07
+2.9051561449160364E-07
+2.8557334396137995E-07
+2.8069421878576696E-07
+2.7587770329024159E-07
+2.7112326278065837E-07
+2.6643036598363881E-07
+2.6179848291596118E-07
+2.5722708623191497E-07
+2.5271565101254043E-07
+2.4826365381284060E-07
+2.4387057458061709E-07
+2.3953589422146589E-07
+2.3525909693853996E-07
+2.3103966848220164E-07
+2.2687709692715629E-07
+2.2277087309446836E-07
+2.1872048904524169E-07
+2.1472544035674023E-07
+2.1078522362304459E-07
+2.0689933852965954E-07
+2.0306728660325195E-07
+1.9928857138248745E-07
+1.9556269945433998E-07
+1.9188917847631552E-07
+1.8826751964218515E-07
+1.8469723530193395E-07
+1.8117784064421338E-07
+1.7770885302085733E-07
+1.7428979149453142E-07
+1.7092017843470941E-07
+1.6759953719138641E-07
+1.6432739455462337E-07
+1.6110327867765414E-07
+1.5792672027692554E-07
+1.5479725257593036E-07
+1.5171441023231290E-07
+1.4867773139288369E-07
+1.4568675518020145E-07
+1.4274102398331292E-07
+1.3984008181463729E-07
+1.3698347497019109E-07
+1.3417075261393355E-07
+1.3140146509900367E-07
+1.2867516629052576E-07
+1.2599141110091216E-07
+1.2334975756351389E-07
+1.2074976568377207E-07
+1.1819099738754025E-07
+1.1567301768882173E-07
+1.1319539265387757E-07
+1.1075769193722002E-07
+1.0835948641598438E-07
+1.0600034977500811E-07
+1.0367985797275288E-07
+1.0139758860378547E-07
+9.9153122611751501E-08
+9.6946041922598454E-08
+9.4775931942105357E-08
+9.2642379528014414E-08
+9.0544974033340335E-08
+8.8483307405510301E-08
+8.6456972978318020E-08
+8.4465567642688606E-08
+8.2508689288109891E-08
+8.0585939059857060E-08
+7.8696919817248824E-08
+7.6841236633443348E-08
+7.5018497536375005E-08
+7.3228311716505649E-08
+7.1470291944577024E-08
+6.9744052083400514E-08
+6.8049209058768608E-08
+6.6385381852382120E-08
+6.4752191323758533E-08
+6.3149261538474673E-08
+6.1576217594041876E-08
+6.0032688157468506E-08
+5.8518303171491160E-08
+5.7032695364927129E-08
+5.5575499864421187E-08
+5.4146353374627317E-08
+5.2744896017523444E-08
+5.1370768898627600E-08
+5.0023616584907976E-08
+4.8703085170182478E-08
+4.7408823215993472E-08
+4.6140482011285367E-08
+4.4897714169819019E-08
+4.3680175870988625E-08
+4.2487524314376957E-08
+4.1319419976464438E-08
+4.0175525162077451E-08
+3.9055504313917110E-08
+3.7959024906009665E-08
+3.6885755546601572E-08
+3.5835368471682633E-08
+3.4807537058771332E-08
+3.3801937708221364E-08
+3.2818248975779787E-08
+3.1856151238818242E-08
+3.0915328174770870E-08
+2.9995464482902133E-08
+2.9096248442583249E-08
+2.8217369675561873E-08
+2.7358520537668847E-08
+2.6519395885967688E-08
+2.5699692104064112E-08
+2.4899109070983037E-08
+2.4117347659916912E-08
+2.3354112198376755E-08
+2.2609108625133710E-08
+2.1882045288510795E-08
+2.1172633367554306E-08
+2.0480585324630079E-08
+1.9805617244235977E-08
+1.9147446262456073E-08
+1.8505792766993109E-08
+1.7880379070622431E-08
+1.7270929563521603E-08
+1.6677171764773835E-08
+1.6098834302492423E-08
+1.5535649463666866E-08
+1.4987350730056162E-08
+1.4453674568325066E-08
+1.3934359706561301E-08
+1.3429146634614714E-08
+1.2937779226486110E-08
+1.2460002373056446E-08
+1.1995564556761548E-08
+1.1544215676214430E-08
+1.1105708308847815E-08
+1.0679797637220186E-08
+1.0266240321664285E-08
+9.8647965955417552E-09
+9.4752277021165834E-09
+9.0972983216374280E-09
+8.7307748317899885E-09
+8.3754259635767138E-09
+8.0310233864621537E-09
+7.6973400146873315E-09
+7.3741524343282016E-09
+7.0612383196436033E-09
+6.7583785662903493E-09
+6.4653560945417070E-09
+6.1819558421144049E-09
+5.9079659734818731E-09
+5.6431757420881947E-09
+5.3873780875038043E-09
+5.1403672033293462E-09
+4.9019402233904631E-09
+4.6718966488059959E-09
+4.4500376850971491E-09
+4.2361680068748094E-09
+4.0300933055269846E-09
+3.8316228675867074E-09
+3.6405674738335173E-09
+3.4567405308062599E-09
+3.2799581594975672E-09
+3.1100379084695907E-09
+2.9468009634269509E-09
+2.7900695409134002E-09
+2.6396692830401005E-09
+2.4954276244364112E-09
+2.3571742898322502E-09
+2.2247420427823886E-09
+2.0979648578936294E-09
+1.9766804318094848E-09
+1.8607275929541803E-09
+1.7499483556785178E-09
+1.6441868607328526E-09
+1.5432892064474067E-09
+1.4471048148864479E-09
+1.3554841814370679E-09
+1.2682815074443349E-09
+1.1853523127741092E-09
+1.1065550116955543E-09
+1.0317504953567838E-09
+9.6080130240527892E-10
+8.9357352113818461E-10
+8.2993426174423119E-10
+7.6975422997690995E-10
+7.1290570941731815E-10
+6.5926355213010325E-10
+6.0870543272240160E-10
+5.6111040728941775E-10
+5.1636123347238485E-10
+4.7434172637979906E-10
+4.3493910600519401E-10
+3.9804248168282196E-10
+3.6354319171961963E-10
+3.3133571705868044E-10
+3.0131571927621377E-10
+2.7338262297431223E-10
+2.4743703356504616E-10
+2.2338270543977930E-10
+2.0112562558507132E-10
+1.8057367776073524E-10
+1.6163816280207742E-10
+1.4423144437514660E-10
+1.2826960866823061E-10
+1.1367013099245353E-10
+1.0035333076435870E-10
+8.8242114453893185E-11
+7.7260981333563132E-11
+6.7338059414798230E-11
+5.8402509029938659E-11
+5.0387080318949032E-11
+4.3226189075409649E-11
+3.6856760935599544E-11
+3.1218653270911080E-11
+2.6253061802947050E-11
+2.1904943657724451E-11
+1.8120345795644439E-11
+1.4848694978908011E-11
+1.2041407856701085E-11
+9.6520682967366322E-12
+7.6375060085854840E-12
+5.9557052272264676E-12
+4.5684473540379521E-12
+3.4387497760183598E-12
+2.5327421664576602E-12
+1.8188986331067647E-12
+1.2675207651160692E-12
+8.5240064359752175E-13
+5.4839808310236725E-13
+3.3417856365135441E-13
+1.8988920008789678E-13
+9.8267529741170064E-14
+4.4556738485030801E-14
+1.5915537527962123E-14
+4.2006131159619414E-15
+2.0194880235886256E-15
+1.9796850254619370E-15
+0.0000000000000000E+00
+1.5153406509907930E-03
+3.0369579249289419E-03
+4.5648417413541370E-03
+6.0989820247555025E-03
+7.6393687045716177E-03
+9.1859917151904825E-03
+1.0738840995949560E-02
+1.2297906491135756E-02
+1.3863178149985384E-02
+1.5434645926684242E-02
+1.7012299780367571E-02
+1.8596129675119998E-02
+2.0186125579975660E-02
+2.1782277468918070E-02
+2.3384575320880271E-02
+2.4993009119744680E-02
+2.6607568854343146E-02
+2.8228244518456971E-02
+2.9855026110816970E-02
+3.1487903635103343E-02
+3.3126867099945681E-02
+3.4771906518923076E-02
+3.6423011910564122E-02
+3.8080173298346738E-02
+3.9743380710698342E-02
+4.1412624180995741E-02
+4.3087893747565303E-02
+4.4769179453682757E-02
+4.6456471347573233E-02
+4.8149759482411382E-02
+4.9849033916321298E-02
+5.1554284712376421E-02
+5.3265501938599774E-02
+5.4982675667963637E-02
+5.6705795978389956E-02
+5.8434852952749972E-02
+6.0169836678864372E-02
+6.1910737249503300E-02
+6.3657544762386400E-02
+6.5410249320182717E-02
+6.7168841030510712E-02
+6.8933310005938289E-02
+7.0703646363982894E-02
+7.2479840227111209E-02
+7.4261881722739634E-02
+7.6049760983233752E-02
+7.7843468145908715E-02
+7.9642993353029184E-02
+8.1448326751809047E-02
+8.3259458494411839E-02
+8.5076378737950487E-02
+8.6899077644487302E-02
+8.8727545381034126E-02
+9.0561772119552048E-02
+9.2401748036951878E-02
+9.4247463315093705E-02
+9.6098908140786962E-02
+9.7956072705790889E-02
+9.9818947206813710E-02
+1.0168752184551345E-01
+1.0356178682849726E-01
+1.0544173236732207E-01
+1.0732734867849407E-01
+1.0921862598346886E-01
+1.1111555450865147E-01
+1.1301812448539660E-01
+1.1492632615000807E-01
+1.1684014974373942E-01
+1.1875958551279336E-01
+1.2068462370832232E-01
+1.2261525458642808E-01
+1.2455146840816163E-01
+1.2649325543952372E-01
+1.2844060595146456E-01
+1.3039351021988344E-01
+1.3235195852562948E-01
+1.3431594115450080E-01
+1.3628544839724557E-01
+1.3826047054956089E-01
+1.4024099791209366E-01
+1.4222702079043972E-01
+1.4421852949514496E-01
+1.4621551434170435E-01
+1.4821796565056236E-01
+1.5022587374711285E-01
+1.5223922896169936E-01
+1.5425802162961455E-01
+1.5628224209110089E-01
+1.5831188069134974E-01
+1.6034692778050247E-01
+1.6238737371364978E-01
+1.6443320885083146E-01
+1.6648442355703696E-01
+1.6854100820220552E-01
+1.7060295316122515E-01
+1.7267024881393381E-01
+1.7474288554511849E-01
+1.7682085374451631E-01
+1.7890414380681305E-01
+1.8099274613164446E-01
+1.8308665112359535E-01
+1.8518584919220030E-01
+1.8729033075194326E-01
+1.8940008622225743E-01
+1.9151510602752556E-01
+1.9363538059708008E-01
+1.9576090036520238E-01
+1.9789165577112364E-01
+2.0002763725902462E-01
+2.0216883527803498E-01
+2.0431524028223438E-01
+2.0646684273065158E-01
+2.0862363308726478E-01
+2.1078560182100203E-01
+2.1295273940574022E-01
+2.1512503632030605E-01
+2.1730248304847569E-01
+2.1948507007897480E-01
+2.2167278790547809E-01
+2.2386562702660984E-01
+2.2606357794594439E-01
+2.2826663117200455E-01
+2.3047477721826345E-01
+2.3268800660314279E-01
+2.3490630985001448E-01
+2.3712967748719971E-01
+2.3935810004796870E-01
+2.4159156807054133E-01
+2.4383007209808744E-01
+2.4607360267872533E-01
+2.4832215036552366E-01
+2.5057570571649979E-01
+2.5283425929462106E-01
+2.5509780166780421E-01
+2.5736632340891502E-01
+2.5963981509576889E-01
+2.6191826731113099E-01
+2.6420167064271571E-01
+2.6649001568318686E-01
+2.6878329303015708E-01
+2.7108149328618991E-01
+2.7338460705879702E-01
+2.7569262496044017E-01
+2.7800553760852997E-01
+2.8032333562542733E-01
+2.8264600963844205E-01
+2.8497355027983334E-01
+2.8730594818680988E-01
+2.8964319400153032E-01
+2.9198527837110200E-01
+2.9433219194758209E-01
+2.9668392538797689E-01
+2.9904046935424278E-01
+3.0140181451328513E-01
+3.0376795153695862E-01
+3.0613887110206756E-01
+3.0851456389036602E-01
+3.1089502058855689E-01
+3.1328023188829279E-01
+3.1567018848617601E-01
+3.1806488108375813E-01
+3.2046430038753987E-01
+3.2286843710897195E-01
+3.2527728196445377E-01
+3.2769082567533486E-01
+3.3010905896791420E-01
+3.3253197257343953E-01
+3.3495955722810866E-01
+3.3739180367306898E-01
+3.3982870265441639E-01
+3.4227024492319741E-01
+3.4471642123540680E-01
+3.4716722235198982E-01
+3.4962263903884094E-01
+3.5208266206680316E-01
+3.5454728221167037E-01
+3.5701649025418503E-01
+3.5949027698003871E-01
+3.6196863317987321E-01
+3.6445154964927956E-01
+3.6693901718879812E-01
+3.6943102660391841E-01
+3.7192756870507981E-01
+3.7442863430767137E-01
+3.7693421423203066E-01
+3.7944429930344575E-01
+3.8195888035215309E-01
+3.8447794821333958E-01
+3.8700149372714127E-01
+3.8952950773864298E-01
+3.9206198109787971E-01
+3.9459890465983599E-01
+3.9714026928444507E-01
+3.9968606583659044E-01
+4.0223628518610427E-01
+4.0479091820776864E-01
+4.0734995578131539E-01
+4.0991338879142503E-01
+4.1248120812772748E-01
+4.1505340468480351E-01
+4.1762996936218166E-01
+4.2021089306434078E-01
+4.2279616670070841E-01
+4.2538578118566328E-01
+4.2797972743853119E-01
+4.3057799638358918E-01
+4.3318057895006296E-01
+4.3578746607212748E-01
+4.3839864868890838E-01
+4.4101411774447885E-01
+4.4363386418786305E-01
+4.4625787897303398E-01
+4.4888615305891427E-01
+4.5151867740937551E-01
+4.5415544299323940E-01
+4.5679644078427656E-01
+4.5944166176120760E-01
+4.6209109690770162E-01
+4.6474473721237852E-01
+4.6740257366880650E-01
+4.7006459727550381E-01
+4.7273079903593801E-01
+4.7540116995852510E-01
+4.7807570105663277E-01
+4.8075438334857606E-01
+4.8343720785762045E-01
+4.8612416561198063E-01
+4.8881524764482087E-01
+4.9151044499425461E-01
+4.9420974870334466E-01
+4.9691314982010354E-01
+4.9962063939749346E-01
+5.0233220849342586E-01
+5.0504784817076109E-01
+5.0776754949730940E-01
+5.1049130354583117E-01
+5.1321910139403470E-01
+5.1595093412457860E-01
+5.1868679282507180E-01
+5.2142666858807052E-01
+5.2417055251108269E-01
+5.2691843569656349E-01
+5.2967030925191982E-01
+5.3242616428950651E-01
+5.3518599192662786E-01
+5.3794978328553822E-01
+5.4071752949344143E-01
+5.4348922168249003E-01
+5.4626485098978683E-01
+5.4904440855738290E-01
+5.5182788553228057E-01
+5.5461527306643010E-01
+5.5740656231673180E-01
+5.6020174444503501E-01
+5.6300081061813900E-01
+5.6580375200779254E-01
+5.6861055979069308E-01
+5.7142122514848837E-01
+5.7423573926777538E-01
+5.7705409334010016E-01
+5.7987627856195822E-01
+5.8270228613479536E-01
+5.8553210726500549E-01
+5.8836573316393348E-01
+5.9120315504787180E-01
+5.9404436413806405E-01
+5.9688935166070267E-01
+5.9973810884692924E-01
+6.0259062693283472E-01
+6.0544689715946054E-01
+6.0830691077279642E-01
+6.1117065902378220E-01
+6.1403813316830647E-01
+6.1690932446720781E-01
+6.1978422418627432E-01
+6.2266282359624392E-01
+6.2554511397280199E-01
+6.2843108659658609E-01
+6.3132073275318146E-01
+6.3421404373312296E-01
+6.3711101083189559E-01
+6.4001162534993294E-01
+6.4291587859261856E-01
+6.4582376187028590E-01
+6.4873526649821622E-01
+6.5165038379664220E-01
+6.5456910509074517E-01
+6.5749142171065467E-01
+6.6041732499145245E-01
+6.6334680627316589E-01
+6.6627985690077629E-01
+6.6921646822421088E-01
+6.7215663159834704E-01
+6.7510033838301331E-01
+6.7804757994298559E-01
+6.8099834764799072E-01
+6.8395263287270358E-01
+6.8691042699674976E-01
+6.8987172140470399E-01
+6.9283650748608938E-01
+6.9580477663537987E-01
+6.9877652025199866E-01
+7.0175172974031752E-01
+7.0473039650965863E-01
+7.0771251197429264E-01
+7.1069806755344023E-01
+7.1368705467127203E-01
+7.1667946475690691E-01
+7.1967528924441393E-01
+7.2267451957281181E-01
+7.2567714718606835E-01
+7.2868316353310014E-01
+7.3169256006777483E-01
+7.3470532824890811E-01
+7.3772145954026580E-01
+7.4074094541056235E-01
+7.4376377733346288E-01
+7.4678994678758071E-01
+7.4981944525648025E-01
+7.5285226422867302E-01
+7.5588839519762219E-01
+7.5892782966173911E-01
+7.6197055912438494E-01
+7.6501657509387022E-01
+7.6806586908345498E-01
+7.7111843261134849E-01
+7.7417425720071054E-01
+7.7723333437964759E-01
+7.8029565568121950E-01
+7.8336121264343295E-01
+7.8642999680924375E-01
+7.8950199972655866E-01
+7.9257721294823280E-01
+7.9565562803207179E-01
+7.9873723654082973E-01
+8.0182203004221042E-01
+8.0491000010886760E-01
+8.0800113831840359E-01
+8.1109543625337077E-01
+8.1419288550127045E-01
+8.1729347765455407E-01
+8.2039720431062257E-01
+8.2350405707182495E-01
+8.2661402754546143E-01
+8.2972710734378041E-01
+8.3284328808398045E-01
+8.3596256138820924E-01
+8.3908491888356340E-01
+8.4221035220209073E-01
+8.4533885298078659E-01
+8.4847041286159630E-01
+8.5160502349141498E-01
+8.5474267652208702E-01
+8.5788336361040685E-01
+8.6102707641811671E-01
+8.6417380661190979E-01
+8.6732354586342875E-01
+8.7047628584926451E-01
+8.7363201825095860E-01
+8.7679073475500080E-01
+8.7995242705283161E-01
+8.8311708684084045E-01
+8.8628470582036589E-01
+8.8945527569769611E-01
+8.9262878818406943E-01
+8.9580523499567200E-01
+8.9898460785364132E-01
+9.0216689848406229E-01
+9.0535209861797183E-01
+9.0854019999135416E-01
+9.1173119434514271E-01
+9.1492507342522322E-01
+9.1812182898242711E-01
+9.2132145277253852E-01
+9.2452393655628828E-01
+9.2772927209935852E-01
+9.3093745117238047E-01
+9.3414846555093423E-01
+9.3736230701554968E-01
+9.4057896735170654E-01
+9.4379843834983301E-01
+9.4702071180530811E-01
+9.5024577951845834E-01
+9.5347363329456158E-01
+9.5670426494384453E-01
+9.5993766628148258E-01
+9.6317382912760152E-01
+9.6641274530727617E-01
+9.6965440665053082E-01
+9.7289880499233927E-01
+9.7614593217262446E-01
+9.7939578003625904E-01
+9.8264834043306537E-01
+9.8590360521781506E-01
+9.8916156625022866E-01
+9.9242221539497666E-01
+9.9568554452167923E-01
+9.9895154550490517E-01
+1.0022202102241742E+00
+1.0054915305639529E+00
+1.0087654984136598E+00
+1.0120421056676621E+00
+1.0153213442252760E+00
+1.0186032059907673E+00
+1.0218876828733521E+00
+1.0251747667871942E+00
+1.0284644496514090E+00
+1.0317567233900589E+00
+1.0350515799321580E+00
+1.0383490112116684E+00
+1.0416490091675026E+00
+1.0449515657435215E+00
+1.0482566728885367E+00
+1.0515643225563083E+00
+1.0548745067055461E+00
+1.0581872172999078E+00
+1.0615024463080052E+00
+1.0648201857033939E+00
+1.0681404274645823E+00
+1.0714631635750276E+00
+1.0747883860231362E+00
+1.0781160868022637E+00
+1.0814462579107154E+00
+1.0847788913517462E+00
+1.0881139791335610E+00
+1.0914515132693121E+00
+1.0947914857771035E+00
+1.0981338886799881E+00
+1.1014787140059670E+00
+1.1048259537879921E+00
+1.1081756000639633E+00
+1.1115276448767331E+00
+1.1148820802740995E+00
+1.1182388983088118E+00
+1.1215980910385692E+00
+1.1249596505260195E+00
+1.1283235688387607E+00
+1.1316898380493388E+00
+1.1350584502352505E+00
+1.1384293974789428E+00
+1.1418026718678091E+00
+1.1451782654941955E+00
+1.1485561704553964E+00
+1.1519363788536543E+00
+1.1553188827961629E+00
+1.1587036743950643E+00
+1.1620907457674508E+00
+1.1654800890353638E+00
+1.1688716963257944E+00
+1.1722655597706815E+00
+1.1756616715069164E+00
+1.1790600236763380E+00
+1.1824606084257343E+00
+1.1858634179068430E+00
+1.1892684442763530E+00
+1.1926756796959002E+00
+1.1960851163320714E+00
+1.1994967463564015E+00
+1.2029105619453764E+00
+1.2063265552804316E+00
+1.2097447185479497E+00
+1.2131650439392649E+00
+1.2165875236506611E+00
+1.2200121498833696E+00
+1.2234389148435727E+00
+1.2268678107424016E+00
+1.2302988297959372E+00
+1.2337319642252103E+00
+1.2371672062561989E+00
+1.2406045481198336E+00
+1.2440439820519931E+00
+1.2474855002935046E+00
+1.2509290950901450E+00
+1.2543747586926428E+00
+1.2578224833566733E+00
+1.2612722613428624E+00
+1.2647240849167856E+00
+1.2681779463489671E+00
+1.2716338379148810E+00
+1.2750917518949514E+00
+1.2785516805745500E+00
+1.2820136162440010E+00
+1.2854775511985754E+00
+1.2889434777384938E+00
+1.2924113881689283E+00
+1.2958812747999979E+00
+1.2993531299467729E+00
+1.3028269459292718E+00
+1.3063027150724635E+00
+1.3097804297062663E+00
+1.3132600821655471E+00
+1.3167416647901227E+00
+1.3202251699247600E+00
+1.3237105899191730E+00
+1.3271979171280295E+00
+1.3306871439109422E+00
+1.3341782626324752E+00
+1.3376712656621428E+00
+1.3411661453744077E+00
+1.3446628941486822E+00
+1.3481615043693278E+00
+1.3516619684256557E+00
+1.3551642787119274E+00
+1.3586684276273522E+00
+1.3621744075760898E+00
+1.3656822109672504E+00
+1.3691918302148904E+00
+1.3727032577380196E+00
+1.3762164859605941E+00
+1.3797315073115211E+00
+1.3832483142246572E+00
+1.3867668991388076E+00
+1.3902872544977274E+00
+1.3938093727501206E+00
+1.3973332463496435E+00
+1.4008588677548970E+00
+1.4043862294294356E+00
+1.4079153238417597E+00
+1.4114461434653232E+00
+1.4149786807785270E+00
+1.4185129282647202E+00
+1.4220488784122038E+00
+1.4255865237142284E+00
+1.4291258566689915E+00
+1.4326668697796423E+00
+1.4362095555542780E+00
+1.4397539065059464E+00
+1.4432999151526447E+00
+1.4468475740173179E+00
+1.4503968756278618E+00
+1.4539478125171226E+00
+1.4575003772228947E+00
+1.4610545622879205E+00
+1.4646103602598943E+00
+1.4681677636914601E+00
+1.4717267651402091E+00
+1.4752873571686818E+00
+1.4788495323443716E+00
+1.4824132832397177E+00
+1.4859786024321111E+00
+1.4895454825038901E+00
+1.4931139160423448E+00
+1.4966838956397128E+00
+1.5002554138931827E+00
+1.5038284634048904E+00
+1.5074030367819242E+00
+1.5109791266363193E+00
+1.5145567255850614E+00
+1.5181358262500861E+00
+1.5217164212582768E+00
+1.5252985032414685E+00
+1.5288820648364436E+00
+1.5324670986849356E+00
+1.5360535974336262E+00
+1.5396415537341479E+00
+1.5432309602430807E+00
+1.5468218096219561E+00
+1.5504140945372542E+00
+1.5540078076604036E+00
+1.5576029416677837E+00
+1.5611994892407228E+00
+1.5647974430654983E+00
+1.5683967958333385E+00
+1.5719975402404185E+00
+1.5755996689878653E+00
+1.5792031747817548E+00
+1.5828080503331106E+00
+1.5864142883579098E+00
+1.5900218815770732E+00
+1.5936308227164755E+00
+1.5972411045069397E+00
+1.6008527196842368E+00
+1.6044656609890908E+00
+1.6080799211671710E+00
+1.6116954929690970E+00
+1.6153123691504412E+00
+1.6189305424717215E+00
+1.6225500056984077E+00
+1.6261707516009158E+00
+1.6297927729546162E+00
+1.6334160625398253E+00
+1.6370406131418089E+00
+1.6406664175507837E+00
+1.6442934685619153E+00
+1.6479217589753188E+00
+1.6515512815960578E+00
+1.6551820292341461E+00
+1.6588139947045477E+00
+1.6624471708271762E+00
+1.6660815504268911E+00
+1.6697171263335058E+00
+1.6733538913817811E+00
+1.6769918384114284E+00
+1.6806309602671057E+00
+1.6842712497984234E+00
+1.6879126998599401E+00
+1.6915553033111639E+00
+1.6951990530165530E+00
+1.6988439418455141E+00
+1.7024899626724039E+00
+1.7061371083765293E+00
+1.7097853718421436E+00
+1.7134347459584542E+00
+1.7170852236196130E+00
+1.7207367977247257E+00
+1.7243894611778450E+00
+1.7280432068879730E+00
+1.7316980277690621E+00
+1.7353539167400147E+00
+1.7390108667246806E+00
+1.7426688706518609E+00
+1.7463279214553047E+00
+1.7499880120737121E+00
+1.7536491354507320E+00
+1.7573112845349612E+00
+1.7609744522799493E+00
+1.7646386316441924E+00
+1.7683038155911375E+00
+1.7719699970891798E+00
+1.7756371691116644E+00
+1.7793053246368875E+00
+1.7829744566480925E+00
+1.7866445581334736E+00
+1.7903156220861733E+00
+1.7939876415042855E+00
+1.7976606093908511E+00
+1.8013345187538619E+00
+1.8050093626062580E+00
+1.8086851339659318E+00
+1.8123618258557221E+00
+1.8160394313034174E+00
+1.8197179433417574E+00
+1.8233973550084297E+00
+1.8270776593460731E+00
+1.8307588494022728E+00
+1.8344409182295660E+00
+1.8381238588854392E+00
+1.8418076644323278E+00
+1.8454923279376159E+00
+1.8491778424736374E+00
+1.8528642011176775E+00
+1.8565513969519685E+00
+1.8602394230636921E+00
+1.8639282725449815E+00
+1.8676179384929184E+00
+1.8713084140095333E+00
+1.8749996922018055E+00
+1.8786917661816660E+00
+1.8823846290659940E+00
+1.8860782739766180E+00
+1.8897726940403152E+00
+1.8934678823888145E+00
+1.8971638321587925E+00
+1.9008605364918756E+00
+1.9045579885346382E+00
+1.9082561814386088E+00
+1.9119551083602595E+00
+1.9156547624610154E+00
+1.9193551369072508E+00
+1.9230562248702872E+00
+1.9267580195263985E+00
+1.9304605140568063E+00
+1.9341637016476818E+00
+1.9378675754901462E+00
+1.9415721287802694E+00
+1.9452773547190712E+00
+1.9489832465125214E+00
+1.9526897973715378E+00
+1.9563970005119897E+00
+1.9601048491546926E+00
+1.9638133365254151E+00
+1.9675224558548736E+00
+1.9712322003787328E+00
+1.9749425633376085E+00
+1.9786535379770660E+00
+1.9823651175476191E+00
+1.9860772953047308E+00
+1.9897900645088158E+00
+1.9935034184252343E+00
+1.9972173503242998E+00
+2.0009318534812732E+00
+2.0046469211763660E+00
+2.0083625466947370E+00
+2.0120787233264976E+00
+2.0157954443667054E+00
+2.0195127031153692E+00
+2.0232304928774489E+00
+2.0269488069628498E+00
+2.0306676386864297E+00
+2.0343869813679953E+00
+2.0381068283323018E+00
+2.0418271729090542E+00
+2.0455480084329070E+00
+2.0492693282434655E+00
+2.0529911256852831E+00
+2.0567133941078621E+00
+2.0604361268656550E+00
+2.0641593173180639E+00
+2.0678829588294407E+00
+2.0716070447690846E+00
+2.0753315685112472E+00
+2.0790565234351281E+00
+2.0827819029248755E+00
+2.0865077003695891E+00
+2.0902339091633162E+00
+2.0939605227050540E+00
+2.0976875343987507E+00
+2.1014149376533005E+00
+2.1051427258825499E+00
+2.1088708925052955E+00
+2.1125994309452807E+00
+2.1163283346311994E+00
+2.1200575969966957E+00
+2.1237872114803622E+00
+2.1275171715257417E+00
+2.1312474705813256E+00
+2.1349781021005554E+00
+2.1387090595418212E+00
+2.1424403363684648E+00
+2.1461719260487739E+00
+2.1499038220559896E+00
+2.1536360178682985E+00
+2.1573685069688389E+00
+2.1611012828456992E+00
+2.1648343389919154E+00
+2.1685676689054740E+00
+2.1723012660893111E+00
+2.1760351240513107E+00
+2.1797692363043084E+00
+2.1835035963660880E+00
+2.1872381977593824E+00
+2.1909730340118760E+00
+2.1947080986561995E+00
+2.1984433852299357E+00
+2.2021788872756156E+00
+2.2059145983407196E+00
+2.2096505119776784E+00
+2.2133866217438700E+00
+2.2171229212016264E+00
+2.2208594039182232E+00
+2.2245960634658899E+00
+2.2283328934218032E+00
+2.2320698873680898E+00
+2.2358070388918265E+00
+2.2395443415850389E+00
+2.2432817890447003E+00
+2.2470193748727385E+00
+2.2507570926760256E+00
+2.2544949360663842E+00
+2.2582328986605886E+00
+2.2619709740803606E+00
+2.2657091559523725E+00
+2.2694474379082443E+00
+2.2731858135845475E+00
+2.2769242766228026E+00
+2.2806628206694786E+00
+2.2844014393759937E+00
+2.2881401263987171E+00
+2.2918788753989672E+00
+2.2956176800430117E+00
+2.2993565340020639E+00
+2.3030954309522937E+00
+2.3068343645748155E+00
+2.3105733285556949E+00
+2.3143123165859452E+00
+2.3180513223615304E+00
+2.3217903395833654E+00
+2.3255293619573116E+00
+2.3292683831941816E+00
+2.3330073970097378E+00
+2.3367463971246902E+00
+2.3404853772647010E+00
+2.3442243311603783E+00
+2.3479632525472831E+00
+2.3517021351659237E+00
+2.3554409727617576E+00
+2.3591797590851948E+00
+2.3629184878915908E+00
+2.3666571529412530E+00
+2.3703957479994373E+00
+2.3741342668363488E+00
+2.3778727032271436E+00
+2.3816110509519257E+00
+2.3853493037957483E+00
+2.3890874555486157E+00
+2.3928255000054808E+00
+2.3965634309662445E+00
+2.4003012422357601E+00
+2.4040389276238274E+00
+2.4077764809451976E+00
+2.4115138960195703E+00
+2.4152511666715957E+00
+2.4189882867308721E+00
+2.4227252500319474E+00
+2.4264620504143215E+00
+2.4301986817224379E+00
+2.4339351378056966E+00
+2.4376714125184424E+00
+2.4414074997199706E+00
+2.4451433932745270E+00
+2.4488790870513051E+00
+2.4526145749244490E+00
+2.4563498507730523E+00
+2.4600849084811571E+00
+2.4638197419377570E+00
+2.4675543450367923E+00
+2.4712887116771540E+00
+2.4750228357626836E+00
+2.4787567112021702E+00
+2.4824903319093536E+00
+2.4862236918029228E+00
+2.4899567848065156E+00
+2.4936896048487203E+00
+2.4974221458630734E+00
+2.5011544017880620E+00
+2.5048863665671215E+00
+2.5086180341486388E+00
+2.5123493984859473E+00
+2.5160804535373322E+00
+2.5198111932660270E+00
+2.5235416116402143E+00
+2.5272717026330294E+00
+2.5310014602225506E+00
+2.5347308783918119E+00
+2.5384599511287953E+00
+2.5421886724264282E+00
+2.5459170362825927E+00
+2.5496450367001184E+00
+2.5533726676867827E+00
+2.5570999232553153E+00
+2.5608267974233918E+00
+2.5645532842136407E+00
+2.5682793776536395E+00
+2.5720050717759122E+00
+2.5757303606179347E+00
+2.5794552382221334E+00
+2.5831796986358815E+00
+2.5869037359115032E+00
+2.5906273441062702E+00
+2.5943505172824066E+00
+2.5980732495070846E+00
+2.6017955348524260E+00
+2.6055173673954997E+00
+2.6092387412183289E+00
+2.6129596504078814E+00
+2.6166800890560773E+00
+2.6204000512597863E+00
+2.6241195311208241E+00
+2.6278385227459609E+00
+2.6315570202469125E+00
+2.6352750177403452E+00
+2.6389925093478754E+00
+2.6427094891960690E+00
+2.6464259514164392E+00
+2.6501418901454539E+00
+2.6538572995245220E+00
+2.6575721737000100E+00
+2.6612865068232296E+00
+2.6650002930504417E+00
+2.6687135265428608E+00
+2.6724262014666440E+00
+2.6761383119929043E+00
+2.6798498522977017E+00
+2.6835608165620433E+00
+2.6872711989718896E+00
+2.6909809937181484E+00
+2.6946901949966766E+00
+2.6983987970082830E+00
+2.7021067939587216E+00
+2.7058141800586997E+00
+2.7095209495238737E+00
+2.7132270965748462E+00
+2.7169326154371727E+00
+2.7206375003413568E+00
+2.7243417455228509E+00
+2.7280453452220592E+00
+2.7317482936843311E+00
+2.7354505851599704E+00
+2.7391522139042279E+00
+2.7428531741773026E+00
+2.7465534602443440E+00
+2.7502530663754539E+00
+2.7539519868456788E+00
+2.7576502159350165E+00
+2.7613477479284163E+00
+2.7650445771157739E+00
+2.7687406977919369E+00
+2.7724361042566992E+00
+2.7761307908148072E+00
+2.7798247517759567E+00
+2.7835179814547897E+00
+2.7872104741709016E+00
+2.7909022242488359E+00
+2.7945932260180832E+00
+2.7982834738130871E+00
+2.8019729619732372E+00
+2.8056616848428755E+00
+2.8093496367712936E+00
+2.8130368121127289E+00
+2.8167232052263720E+00
+2.8204088104763616E+00
+2.8240936222317847E+00
+2.8277776348666790E+00
+2.8314608427600323E+00
+2.8351432402957806E+00
+2.8388248218628100E+00
+2.8425055818549545E+00
+2.8461855146710007E+00
+2.8498646147146811E+00
+2.8535428763946800E+00
+2.8572202941246312E+00
+2.8608968623231159E+00
+2.8645725754136664E+00
+2.8682474278247647E+00
+2.8719214139898406E+00
+2.8755945283472748E+00
+2.8792667653403976E+00
+2.8829381194174868E+00
+2.8866085850317722E+00
+2.8902781566414317E+00
+2.8939468287095917E+00
+2.8976145957043307E+00
+2.9012814520986736E+00
+2.9049473923705964E+00
+2.9086124110030260E+00
+2.9122765024838344E+00
+2.9159396613058477E+00
+2.9196018819668392E+00
+2.9232631589695313E+00
+2.9269234868215954E+00
+2.9305828600356572E+00
+2.9342412731292833E+00
+2.9378987206249967E+00
+2.9415551970502691E+00
+2.9452106969375169E+00
+2.9488652148241123E+00
+2.9525187452523713E+00
+2.9561712827695632E+00
+2.9598228219279052E+00
+2.9634733572845655E+00
+2.9671228834016570E+00
+2.9707713948462486E+00
+2.9744188861903549E+00
+2.9780653520109390E+00
+2.9817107868899160E+00
+2.9853551854141496E+00
+2.9889985421754530E+00
+2.9926408517705880E+00
+2.9962821088012661E+00
+2.9999223078741490E+00
+3.0035614436008480E+00
+3.0071995105979221E+00
+3.0108365034868823E+00
+3.0144724168941863E+00
+3.0181072454512434E+00
+3.0217409837944120E+00
+3.0253736265649973E+00
+3.0290051684092587E+00
+3.0326356039784015E+00
+3.0362649279285803E+00
+3.0398931349209013E+00
+3.0435202196214193E+00
+3.0471461767011387E+00
+3.0507710008360109E+00
+3.0543946867069400E+00
+3.0580172289997809E+00
+3.0616386224053302E+00
+3.0652588616193435E+00
+3.0688779413425196E+00
+3.0724958562805087E+00
+3.0761126011439104E+00
+3.0797281706482749E+00
+3.0833425595140995E+00
+3.0869557624668325E+00
+3.0905677742368693E+00
+3.0941785895595593E+00
+3.0977882031751984E+00
+3.1013966098290302E+00
+3.1050038042712513E+00
+3.1086097812570079E+00
+3.1122145355463902E+00
+3.1158180619044447E+00
+3.1194203551011639E+00
+3.1230214099114884E+00
+3.1266212211153110E+00
+3.1302197834974730E+00
+3.1338170918477641E+00
+3.1374131409609265E+00
+3.1410079256366474E+00
+3.1446014406795677E+00
+3.1481936808992748E+00
+3.1517846411103054E+00
+3.1553743161321486E+00
+3.1589627007892407E+00
+3.1625497899109667E+00
+3.1661355783316645E+00
+3.1697200608906169E+00
+3.1733032324320596E+00
+3.1768850878051778E+00
+3.1804656218641010E+00
+3.1840448294679153E+00
+3.1876227054806519E+00
+3.1911992447712922E+00
+3.1947744422137685E+00
+3.1983482926869597E+00
+3.2019207910746981E+00
+3.2054919322657618E+00
+3.2090617111538791E+00
+3.2126301226377283E+00
+3.2161971616209399E+00
+3.2197628230120872E+00
+3.2233271017247009E+00
+3.2268899926772532E+00
+3.2304514907931727E+00
+3.2340115910008338E+00
+3.2375702882335586E+00
+3.2411275774296233E+00
+3.2446834535322515E+00
+3.2482379114896149E+00
+3.2517909462548364E+00
+3.2553425527859865E+00
+3.2588927260460876E+00
+3.2624414610031107E+00
+3.2659887526299736E+00
+3.2695345959045463E+00
+3.2730789858096503E+00
+3.2766219173330500E+00
+3.2801633854674654E+00
+3.2837033852105648E+00
+3.2872419115649634E+00
+3.2907789595382266E+00
+3.2943145241428704E+00
+3.2978486003963603E+00
+3.3013811833211113E+00
+3.3049122679444842E+00
+3.3084418492987959E+00
+3.3119699224213082E+00
+3.3154964823542317E+00
+3.3190215241447301E+00
+3.3225450428449133E+00
+3.3260670335118414E+00
+3.3295874912075254E+00
+3.3331064109989237E+00
+3.3366237879579455E+00
+3.3401396171614497E+00
+3.3436538936912434E+00
+3.3471666126340840E+00
+3.3506777690816780E+00
+3.3541873581306811E+00
+3.3576953748826988E+00
+3.3612018144442861E+00
+3.3647066719269483E+00
+3.3682099424471383E+00
+3.3717116211262592E+00
+3.3752117030906645E+00
+3.3787101834716564E+00
+3.3822070574054850E+00
+3.3857023200333525E+00
+3.3891959665014078E+00
+3.3926879919607535E+00
+3.3961783915674375E+00
+3.3996671604824580E+00
+3.4031542938717649E+00
+3.4066397869062537E+00
+3.4101236347617729E+00
+3.4136058326191185E+00
+3.4170863756640375E+00
+3.4205652590872240E+00
+3.4240424780843242E+00
+3.4275180278559305E+00
+3.4309919036075889E+00
+3.4344641005497922E+00
+3.4379346138979803E+00
+3.4414034388725487E+00
+3.4448705706988378E+00
+3.4483360046071376E+00
+3.4517997358326902E+00
+3.4552617596156838E+00
+3.4587220712012590E+00
+3.4621806658395040E+00
+3.4656375387854568E+00
+3.4690926852991049E+00
+3.4725461006453862E+00
+3.4759977800941861E+00
+3.4794477189203414E+00
+3.4828959124036376E+00
+3.4863423558288091E+00
+3.4897870444855412E+00
+3.4932299736684653E+00
+3.4966711386771654E+00
+3.5001105348161761E+00
+3.5035481573949765E+00
+3.5069840017280001E+00
+3.5104180631346287E+00
+3.5138503369391896E+00
+3.5172808184709647E+00
+3.5207095030641837E+00
+3.5241363860580237E+00
+3.5275614627966139E+00
+3.5309847286290306E+00
+3.5344061789093022E+00
+3.5378258089964056E+00
+3.5412436142542645E+00
+3.5446595900517566E+00
+3.5480737317627056E+00
+3.5514860347658859E+00
+3.5548964944450208E+00
+3.5583051061887834E+00
+3.5617118653907966E+00
+3.5651167674496329E+00
+3.5685198077688125E+00
+3.5719209817568083E+00
+3.5753202848270385E+00
+3.5787177123978733E+00
+3.5821132598926329E+00
+3.5855069227395857E+00
+3.5888986963719480E+00
+3.5922885762278898E+00
+3.5956765577505272E+00
+3.5990626363879268E+00
+3.6024468075931035E+00
+3.6058290668240232E+00
+3.6092094095436003E+00
+3.6125878312197002E+00
+3.6159643273251354E+00
+3.6193388933376704E+00
+3.6227115247400152E+00
+3.6260822170198335E+00
+3.6294509656697369E+00
+3.6328177661872858E+00
+3.6361826140749893E+00
+3.6395455048403091E+00
+3.6429064339956532E+00
+3.6462653970583800E+00
+3.6496223895507995E+00
+3.6529774070001673E+00
+3.6563304449386909E+00
+3.6596814989035256E+00
+3.6630305644367782E+00
+3.6663776370855050E+00
+3.6697227124017084E+00
+3.6730657859423439E+00
+3.6764068532693162E+00
+3.6797459099494758E+00
+3.6830829515546282E+00
+3.6864179736615226E+00
+3.6897509718518609E+00
+3.6930819417122951E+00
+3.6964108788344237E+00
+3.6997377788147974E+00
+3.7030626372549165E+00
+3.7063854497612274E+00
+3.7097062119451305E+00
+3.7130249194229705E+00
+3.7163415678160461E+00
+3.7196561527506034E+00
+3.7229686698578370E+00
+3.7262791147738934E+00
+3.7295874831398668E+00
+3.7328937706018013E+00
+3.7361979728106918E+00
+3.7395000854224794E+00
+3.7428001040980563E+00
+3.7460980245032665E+00
+3.7493938423088986E+00
+3.7526875531906958E+00
+3.7559791528293474E+00
+3.7592686369104920E+00
+3.7625560011247208E+00
+3.7658412411675704E+00
+3.7691243527395297E+00
+3.7724053315460360E+00
+3.7756841732974764E+00
+3.7789608737091860E+00
+3.7822354285014521E+00
+3.7855078333995080E+00
+3.7887780841335403E+00
+3.7920461764386828E+00
+3.7953121060550186E+00
+3.7985758687275788E+00
+3.8018374602063489E+00
+3.8050968762462580E+00
+3.8083541126071903E+00
+3.8116091650539738E+00
+3.8148620293563895E+00
+3.8181127012891687E+00
+3.8213611766319873E+00
+3.8246074511694759E+00
+3.8278515206912127E+00
+3.8310933809917231E+00
+3.8343330278704855E+00
+3.8375704571319260E+00
+3.8408056645854205E+00
+3.8440386460452936E+00
+3.8472693973308187E+00
+3.8504979142662221E+00
+3.8537241926806769E+00
+3.8569482284083034E+00
+3.8601700172881763E+00
+3.8633895551643183E+00
+3.8666068378856981E+00
+3.8698218613062392E+00
+3.8730346212848086E+00
+3.8762451136852270E+00
+3.8794533343762647E+00
+3.8826592792316386E+00
+3.8858629441300168E+00
+3.8890643249550174E+00
+3.8922634175952062E+00
+3.8954602179441009E+00
+3.8986547219001650E+00
+3.9018469253668155E+00
+3.9050368242524169E+00
+3.9082244144702809E+00
+3.9114096919386721E+00
+3.9145926525808052E+00
+3.9177732923248398E+00
+3.9209516071038899E+00
+3.9241275928560153E+00
+3.9273012455242262E+00
+3.9304725610564843E+00
+3.9336415354056977E+00
+3.9368081645297255E+00
+3.9399724443913771E+00
+3.9431343709584090E+00
+3.9462939402035300E+00
+3.9494511481043961E+00
+3.9526059906436122E+00
+3.9557584638087357E+00
+3.9589085635922707E+00
+3.9620562859916721E+00
+3.9652016270093440E+00
+3.9683445826526391E+00
+3.9714851489338607E+00
+3.9746233218702613E+00
+3.9777590974840416E+00
+3.9808924718023526E+00
+3.9840234408572974E+00
+3.9871520006859229E+00
+3.9902781473302311E+00
+3.9934018768371686E+00
+3.9965231852586358E+00
+3.9996420686514798E+00
+4.0027585230774960E+00
+4.0058725446034336E+00
+4.0089841293009885E+00
+4.0120932732468040E+00
+4.0151999725224767E+00
+4.0183042232145523E+00
+4.0214060214145233E+00
+4.0245053632188332E+00
+4.0276022447288735E+00
+4.0306966620509881E+00
+4.0337886112964680E+00
+4.0368780885815543E+00
+4.0399650900274375E+00
+4.0430496117602583E+00
+4.0461316499111053E+00
+4.0492112006160186E+00
+4.0522882600159846E+00
+4.0553628242569415E+00
+4.0584348894897779E+00
+4.0615044518703289E+00
+4.0645715075593802E+00
+4.0676360527226700E+00
+4.0706980835308810E+00
+4.0737575961596475E+00
+4.0768145867895553E+00
+4.0798690516061349E+00
+4.0829209867998717E+00
+4.0859703885661958E+00
+4.0890172531054896E+00
+4.0920615766230846E+00
+4.0951033553292593E+00
+4.0981425854392475E+00
+4.1011792631732265E+00
+4.1042133847563225E+00
+4.1072449464186178E+00
+4.1102739443951375E+00
+4.1133003749258608E+00
+4.1163242342557131E+00
+4.1193455186345700E+00
+4.1223642243172574E+00
+4.1253803475635520E+00
+4.1283938846381742E+00
+4.1314048318108014E+00
+4.1344131853560544E+00
+4.1374189415535074E+00
+4.1404220966876828E+00
+4.1434226470480509E+00
+4.1464205889290335E+00
+4.1494159186300017E+00
+4.1524086324552725E+00
+4.1553987267141181E+00
+4.1583861977207572E+00
+4.1613710417943564E+00
+4.1643532552590345E+00
+4.1673328344438580E+00
+4.1703097756828447E+00
+4.1732840753149585E+00
+4.1762557296841170E+00
+4.1792247351391829E+00
+4.1821910880339725E+00
+4.1851547847272483E+00
+4.1881158215827234E+00
+4.1910741949690626E+00
+4.1940299012598752E+00
+4.1969829368337237E+00
+4.1999332980741189E+00
+4.2028809813695220E+00
+4.2058259831133418E+00
+4.2087682997039382E+00
+4.2117079275446203E+00
+4.2146448630436453E+00
+4.2175791026142218E+00
+4.2205106426745074E+00
+4.2234394796476060E+00
+4.2263656099615758E+00
+4.2292890300494212E+00
+4.2322097363490983E+00
+4.2351277253035091E+00
+4.2380429933605095E+00
+4.2409555369729004E+00
+4.2438653525984380E+00
+4.2467724366998212E+00
+4.2496767857447022E+00
+4.2525783962056822E+00
+4.2554772645603105E+00
+4.2583733872910887E+00
+4.2612667608854657E+00
+4.2641573818358385E+00
+4.2670452466395581E+00
+4.2699303517989193E+00
+4.2728126938211703E+00
+4.2756922692185064E+00
+4.2785690745080762E+00
+4.2814431062119720E+00
+4.2843143608572412E+00
+4.2871828349758765E+00
+4.2900485251048224E+00
+4.2929114277859712E+00
+4.2957715395661644E+00
+4.2986288569971967E+00
+4.3014833766358080E+00
+4.3043350950436894E+00
+4.3071840087874813E+00
+4.3100301144387725E+00
+4.3128734085741041E+00
+4.3157138877749626E+00
+4.3185515486277879E+00
+4.3213863877239653E+00
+4.3242184016598344E+00
+4.3270475870366800E+00
+4.3298739404607396E+00
+4.3326974585431959E+00
+4.3355181379001859E+00
+4.3383359751527930E+00
+4.3411509669270503E+00
+4.3439631098539406E+00
+4.3467724005693986E+00
+4.3495788357143033E+00
+4.3523824119344887E+00
+4.3551831258807336E+00
+4.3579809742087701E+00
+4.3607759535792772E+00
+4.3635680606578822E+00
+4.3663572921151665E+00
+4.3691436446266563E+00
+4.3719271148728298E+00
+4.3747076995391136E+00
+4.3774853953158850E+00
+4.3802601988984691E+00
+4.3830321069871419E+00
+4.3858011162871273E+00
+4.3885672235085984E+00
+4.3913304253666805E+00
+4.3940907185814453E+00
+4.3968480998779169E+00
+4.3996025659860667E+00
+4.4023541136408149E+00
+4.4051027395820324E+00
+4.4078484405545417E+00
+4.4105912133081091E+00
+4.4133310545974567E+00
+4.4160679611822511E+00
+4.4188019298271115E+00
+4.4215329573016051E+00
+4.4242610403802471E+00
+4.4269861758425080E+00
+4.4297083604727989E+00
+4.4324275910604864E+00
+4.4351438643998859E+00
+4.4378571772902626E+00
+4.4405675265358271E+00
+4.4432749089457459E+00
+4.4459793213341277E+00
+4.4486807605200367E+00
+4.4513792233274838E+00
+4.4540747065854296E+00
+4.4567672071277835E+00
+4.4594567217934076E+00
+4.4621432474261082E+00
+4.4648267808746454E+00
+4.4675073189927268E+00
+4.4701848586390085E+00
+4.4728593966770998E+00
+4.4755309299755552E+00
+4.4781994554078803E+00
+4.4808649698525311E+00
+4.4835274701929126E+00
+4.4861869533173770E+00
+4.4888434161192308E+00
+4.4914968554967238E+00
+4.4941472683530614E+00
+4.4967946515963915E+00
+4.4994390021398178E+00
+4.5020803169013925E+00
+4.5047185928041129E+00
+4.5073538267759297E+00
+4.5099860157497416E+00
+4.5126151566633990E+00
+4.5152412464596976E+00
+4.5178642820863848E+00
+4.5204842604961577E+00
+4.5231011786466642E+00
+4.5257150335004965E+00
+4.5283258220252032E+00
+4.5309335411932770E+00
+4.5335381879821623E+00
+4.5361397593742536E+00
+4.5387382523568931E+00
+4.5413336639223711E+00
+4.5439259910679324E+00
+4.5465152307957659E+00
+4.5491013801130142E+00
+4.5516844360317670E+00
+4.5542643955690618E+00
+4.5568412557468898E+00
+4.5594150135921891E+00
+4.5619856661368470E+00
+4.5645532104177002E+00
+4.5671176434765384E+00
+4.5696789623600926E+00
+4.5722371641200548E+00
+4.5747922458130539E+00
+4.5773442045006796E+00
+4.5798930372494624E+00
+4.5824387411308871E+00
+4.5849813132213857E+00
+4.5875207506023425E+00
+4.5900570503600866E+00
+4.5925902095859001E+00
+4.5951202253760153E+00
+4.5976470948316095E+00
+4.6001708150588154E+00
+4.6026913831687084E+00
+4.6052087962773189E+00
+4.6077230515056247E+00
+4.6102341459795522E+00
+4.6127420768299796E+00
+4.6152468411927314E+00
+4.6177484362085846E+00
+4.6202468590232639E+00
+4.6227421067874417E+00
+4.6252341766567442E+00
+4.6277230657917450E+00
+4.6302087713579656E+00
+4.6326912905258792E+00
+4.6351706204709062E+00
+4.6376467583734193E+00
+4.6401197014187394E+00
+4.6425894467971336E+00
+4.6450559917038241E+00
+4.6475193333389786E+00
+4.6499794689077154E+00
+4.6524363956201027E+00
+4.6548901106911584E+00
+4.6573406113408478E+00
+4.6597878947940883E+00
+4.6622319582807439E+00
+4.6646727990356300E+00
+4.6671104142985129E+00
+4.6695448013141041E+00
+4.6719759573320685E+00
+4.6744038796070173E+00
+4.6768285653985151E+00
+4.6792500119710709E+00
+4.6816682165941472E+00
+4.6840831765421544E+00
+4.6864948890944529E+00
+4.6889033515353500E+00
+4.6913085611541074E+00
+4.6937105152449314E+00
+4.6961092111069807E+00
+4.6985046460443627E+00
+4.7008968173661332E+00
+4.7032857223862985E+00
+4.7056713584238157E+00
+4.7080537228025854E+00
+4.7104328128514661E+00
+4.7128086259042616E+00
+4.7151811592997221E+00
+4.7175504103815529E+00
+4.7199163764984062E+00
+4.7222790550038818E+00
+4.7246384432565316E+00
+4.7269945386198575E+00
+4.7293473384623068E+00
+4.7316968401572810E+00
+4.7340430410831278E+00
+4.7363859386231466E+00
+4.7387255301655831E+00
+4.7410618131036371E+00
+4.7433947848354521E+00
+4.7457244427641259E+00
+4.7480507842977042E+00
+4.7503738068491819E+00
+4.7526935078365016E+00
+4.7550098846825604E+00
+4.7573229348151989E+00
+4.7596326556672093E+00
+4.7619390446763354E+00
+4.7642420992852683E+00
+4.7665418169416487E+00
+4.7688381950980672E+00
+4.7711312312120642E+00
+4.7734209227461291E+00
+4.7757072671676992E+00
+4.7779902619491628E+00
+4.7802699045678585E+00
+4.7825461925060742E+00
+4.7848191232510446E+00
+4.7870886942949573E+00
+4.7893549031349467E+00
+4.7916177472730981E+00
+4.7938772242164456E+00
+4.7961333314769723E+00
+4.7983860665716120E+00
+4.8006354270222484E+00
+4.8028814103557114E+00
+4.8051240141037841E+00
+4.8073632358031979E+00
+4.8095990729956304E+00
+4.8118315232277151E+00
+4.8140605840510284E+00
+4.8162862530221009E+00
+4.8185085277024093E+00
+4.8207274056583822E+00
+4.8229428844613969E+00
+4.8251549616877787E+00
+4.8273636349188047E+00
+4.8295689017406991E+00
+4.8317707597446375E+00
+4.8339692065267448E+00
+4.8361642396880926E+00
+4.8383558568347063E+00
+4.8405440555775563E+00
+4.8427288335325676E+00
+4.8449101883206094E+00
+4.8470881175675018E+00
+4.8492626189040191E+00
+4.8514336899658757E+00
+4.8536013283937445E+00
+4.8557655318332440E+00
+4.8579262979349416E+00
+4.8600836243543553E+00
+4.8622375087519503E+00
+4.8643879487931452E+00
+4.8665349421483048E+00
+4.8686784864927448E+00
+4.8708185795067305E+00
+4.8729552188754752E+00
+4.8750884022891423E+00
+4.8772181274428457E+00
+4.8793443920366482E+00
+4.8814671937755616E+00
+4.8835865303695467E+00
+4.8857023995335149E+00
+4.8878147989873257E+00
+4.8899237264557902E+00
+4.8920291796686657E+00
+4.8941311563606620E+00
+4.8962296542714379E+00
+4.8983246711456010E+00
+4.9004162047327062E+00
+4.9025042527872618E+00
+4.9045888130687221E+00
+4.9066698833414941E+00
+4.9087474613749320E+00
+4.9108215449433388E+00
+4.9128921318259691E+00
+4.9149592198070247E+00
+4.9170228066756616E+00
+4.9190828902259778E+00
+4.9211394682570271E+00
+4.9231925385728088E+00
+4.9252420989822747E+00
+4.9272881472993229E+00
+4.9293306813428028E+00
+4.9313696989365150E+00
+4.9334051979092042E+00
+4.9354371760945712E+00
+4.9374656313312606E+00
+4.9394905614628692E+00
+4.9415119643379439E+00
+4.9435298378099803E+00
+4.9455441797374196E+00
+4.9475549879836604E+00
+4.9495622604170419E+00
+4.9515659949108617E+00
+4.9535661893433591E+00
+4.9555628415977262E+00
+4.9575559495621055E+00
+4.9595455111295870E+00
+4.9615315241982119E+00
+4.9635139866709688E+00
+4.9654928964557969E+00
+4.9674682514655855E+00
+4.9694400496181705E+00
+4.9714082888363418E+00
+4.9733729670478359E+00
+4.9753340821853396E+00
+4.9772916321864846E+00
+4.9792456149938618E+00
+4.9811960285550025E+00
+4.9831428708223910E+00
+4.9850861397534620E+00
+4.9870258333105966E+00
+4.9889619494611290E+00
+4.9908944861773410E+00
+4.9928234414364621E+00
+4.9947488132206752E+00
+4.9966705995171097E+00
+4.9985887983178445E+00
+5.0005034076199095E+00
+5.0024144254252825E+00
+5.0043218497408919E+00
+5.0062256785786161E+00
+5.0081259099552797E+00
+5.0100225418926607E+00
+5.0119155724174833E+00
+5.0138049995614242E+00
+5.0156908213611073E+00
+5.0175730358581081E+00
+5.0194516410989474E+00
+5.0213266351351002E+00
+5.0231980160229863E+00
+5.0250657818239803E+00
+5.0269299306044042E+00
+5.0287904604355251E+00
+5.0306473693935656E+00
+5.0325006555596943E+00
+5.0343503170200314E+00
+5.0361963518656427E+00
+5.0380387581925508E+00
+5.0398775341017172E+00
+5.0417126776990635E+00
+5.0435441870954545E+00
+5.0453720604067041E+00
+5.0471962957535794E+00
+5.0490168912617941E+00
+5.0508338450620132E+00
+5.0526471552898480E+00
+5.0544568200858642E+00
+5.0562628375955709E+00
+5.0580652059694335E+00
+5.0598639233628608E+00
+5.0616589879362142E+00
+5.0634503978548011E+00
+5.0652381512888871E+00
+5.0670222464136758E+00
+5.0688026814093279E+00
+5.0705794544609502E+00
+5.0723525637586011E+00
+5.0741220074972855E+00
+5.0758877838769623E+00
+5.0776498911025358E+00
+5.0794083273838613E+00
+5.0811630909357408E+00
+5.0829141799779327E+00
+5.0846615927351371E+00
+5.0864053274370082E+00
+5.0881453823181477E+00
+5.0898817556181069E+00
+5.0916144455813885E+00
+5.0933434504574420E+00
+5.0950687685006688E+00
+5.0967903979704152E+00
+5.0985083371309834E+00
+5.1002225842516209E+00
+5.1019331376065233E+00
+5.1036399954748424E+00
+5.1053431561406715E+00
+5.1070426178930566E+00
+5.1087383790259944E+00
+5.1104304378384287E+00
+5.1121187926342557E+00
+5.1138034417223190E+00
+5.1154843834164128E+00
+5.1171616160352764E+00
+5.1188351379026047E+00
+5.1205049473470385E+00
+5.1221710427021705E+00
+5.1238334223065403E+00
+5.1254920845036365E+00
+5.1271470276418993E+00
+5.1287982500747198E+00
+5.1304457501604332E+00
+5.1320895262623303E+00
+5.1337295767486442E+00
+5.1353658999925651E+00
+5.1369984943722278E+00
+5.1386273582707185E+00
+5.1402524900760715E+00
+5.1418738881812720E+00
+5.1434915509842520E+00
+5.1451054768878963E+00
+5.1467156643000385E+00
+5.1483221116334583E+00
+5.1499248173058909E+00
+5.1515237797400131E+00
+5.1531189973634586E+00
+5.1547104686088057E+00
+5.1562981919135842E+00
+5.1578821657202747E+00
+5.1594623884763031E+00
+5.1610388586340470E+00
+5.1626115746508354E+00
+5.1641805349889438E+00
+5.1657457381155991E+00
+5.1673071825029755E+00
+5.1688648666281996E+00
+5.1704187889733442E+00
+5.1719689480254329E+00
+5.1735153422764402E+00
+5.1750579702232891E+00
+5.1765968303678509E+00
+5.1781319212169468E+00
+5.1796632412823485E+00
+5.1811907890807758E+00
+5.1827145631339002E+00
+5.1842345619683403E+00
+5.1857507841156636E+00
+5.1872632281123892E+00
+5.1887718924999859E+00
+5.1902767758248691E+00
+5.1917778766384055E+00
+5.1932751934969144E+00
+5.1947687249616559E+00
+5.1962584695988481E+00
+5.1977444259796552E+00
+5.1992265926801915E+00
+5.2007049682815181E+00
+5.2021795513696487E+00
+5.2036503405355461E+00
+5.2051173343751209E+00
+5.2065805314892346E+00
+5.2080399304836975E+00
+5.2094955299692698E+00
+5.2109473285616614E+00
+5.2123953248815278E+00
+5.2138395175544812E+00
+5.2152799052110774E+00
+5.2167164864868241E+00
+5.2181492600221775E+00
+5.2195782244625413E+00
+5.2210033784582750E+00
+5.2224247206646810E+00
+5.2238422497420149E+00
+5.2252559643554788E+00
+5.2266658631752279E+00
+5.2280719448763628E+00
+5.2294742081389360E+00
+5.2308726516479496E+00
+5.2322672740933545E+00
+5.2336580741700507E+00
+5.2350450505778889E+00
+5.2364282020216670E+00
+5.2378075272111353E+00
+5.2391830248609903E+00
+5.2405546936908802E+00
+5.2419225324254040E+00
+5.2432865397941040E+00
+5.2446467145314797E+00
+5.2460030553769759E+00
+5.2473555610749862E+00
+5.2487042303748552E+00
+5.2500490620308771E+00
+5.2513900548022949E+00
+5.2527272074533018E+00
+5.2540605187530369E+00
+5.2553899874755956E+00
+5.2567156124000167E+00
+5.2580373923102908E+00
+5.2593553259953572E+00
+5.2606694122491060E+00
+5.2619796498703764E+00
+5.2632860376629544E+00
+5.2645885744355789E+00
+5.2658872590019374E+00
+5.2671820901806656E+00
+5.2684730667953499E+00
+5.2697601876745237E+00
+5.2710434516516740E+00
+5.2723228575652357E+00
+5.2735984042585891E+00
+5.2748700905800705E+00
+5.2761379153829608E+00
+5.2774018775254916E+00
+5.2786619758708460E+00
+5.2799182092871542E+00
+5.2811705766474955E+00
+5.2824190768299006E+00
+5.2836637087173477E+00
+5.2849044711977680E+00
+5.2861413631640355E+00
+5.2873743835139813E+00
+5.2886035311503798E+00
+5.2898288049809592E+00
+5.2910502039183953E+00
+5.2922677268803113E+00
+5.2934813727892847E+00
+5.2946911405728381E+00
+5.2958970291634451E+00
+5.2970990374985298E+00
+5.2982971645204637E+00
+5.2994914091765679E+00
+5.3006817704191151E+00
+5.3018682472053262E+00
+5.3030508384973709E+00
+5.3042295432623696E+00
+5.3054043604723899E+00
+5.3065752891044520E+00
+5.3077423281405229E+00
+5.3089054765675208E+00
+5.3100647333773114E+00
+5.3112200975667134E+00
+5.3123715681374897E+00
+5.3135191440963583E+00
+5.3146628244549809E+00
+5.3158026082299736E+00
+5.3169384944429003E+00
+5.3180704821202731E+00
+5.3191985702935547E+00
+5.3203227579991568E+00
+5.3214430442784408E+00
+5.3225594281777182E+00
+5.3236719087482474E+00
+5.3247804850462384E+00
+5.3258851561328528E+00
+5.3269859210741979E+00
+5.3280827789413294E+00
+5.3291757288102586E+00
+5.3302647697619374E+00
+5.3313499008822758E+00
+5.3324311212621307E+00
+5.3335084299973037E+00
+5.3345818261885514E+00
+5.3356513089415776E+00
+5.3367168773670350E+00
+5.3377785305805281E+00
+5.3388362677026082E+00
+5.3398900878587767E+00
+5.3409399901794874E+00
+5.3419859738001376E+00
+5.3430280378610790E+00
+5.3440661815076131E+00
+5.3451004038899850E+00
+5.3461307041633974E+00
+5.3471570814879952E+00
+5.3481795350288754E+00
+5.3491980639560888E+00
+5.3502126674446275E+00
+5.3512233446744384E+00
+5.3522300948304178E+00
+5.3532329171024085E+00
+5.3542318106852074E+00
+5.3552267747785542E+00
+5.3562178085871448E+00
+5.3572049113206202E+00
+5.3581880821935721E+00
+5.3591673204255423E+00
+5.3601426252410214E+00
+5.3611139958694487E+00
+5.3620814315452154E+00
+5.3630449315076589E+00
+5.3640044950010681E+00
+5.3649601212746827E+00
+5.3659118095826868E+00
+5.3668595591842188E+00
+5.3678033693433660E+00
+5.3687432393291621E+00
+5.3696791684155940E+00
+5.3706111558815950E+00
+5.3715392010110499E+00
+5.3724633030927906E+00
+5.3733834614206000E+00
+5.3742996752932131E+00
+5.3752119440143105E+00
+5.3761202668925216E+00
+5.3770246432414286E+00
+5.3779250723795622E+00
+5.3788215536303996E+00
+5.3797140863223722E+00
+5.3806026697888578E+00
+5.3814873033681820E+00
+5.3823679864036249E+00
+5.3832447182434136E+00
+5.3841174982407205E+00
+5.3849863257536752E+00
+5.3858512001453516E+00
+5.3867121207837725E+00
+5.3875690870419142E+00
+5.3884220982976982E+00
+5.3892711539339988E+00
+5.3901162533386371E+00
+5.3909573959043859E+00
+5.3917945810289654E+00
+5.3926278081150461E+00
+5.3934570765702494E+00
+5.3942823858071431E+00
+5.3951037352432483E+00
+5.3959211243010303E+00
+5.3967345524079091E+00
+5.3975440189962516E+00
+5.3983495235033745E+00
+5.3991510653715435E+00
+5.3999486440479743E+00
+5.4007422589848320E+00
+5.4015319096392318E+00
+5.4023175954732361E+00
+5.4030993159538596E+00
+5.4038770705530652E+00
+5.4046508587477637E+00
+5.4054206800198159E+00
+5.4061865338560366E+00
+5.4069484197481836E+00
+5.4077063371929679E+00
+5.4084602856920485E+00
+5.4092102647520335E+00
+5.4099562738844824E+00
+5.4106983126059029E+00
+5.4114363804377525E+00
+5.4121704769064367E+00
+5.4129006015433125E+00
+5.4136267538846843E+00
+5.4143489334718078E+00
+5.4150671398508896E+00
+5.4157813725730790E+00
+5.4164916311944831E+00
+5.4171979152761525E+00
+5.4179002243840912E+00
+5.4185985580892488E+00
+5.4192929159675280E+00
+5.4199832975997788E+00
+5.4206697025718000E+00
+5.4213521304743422E+00
+5.4220305809031046E+00
+5.4227050534587349E+00
+5.4233755477468302E+00
+5.4240420633779385E+00
+5.4247045999675567E+00
+5.4253631571361298E+00
+5.4260177345090534E+00
+5.4266683317166740E+00
+5.4273149483942840E+00
+5.4279575841821277E+00
+5.4285962387253992E+00
+5.4292309116742405E+00
+5.4298616026837445E+00
+5.4304883114139511E+00
+5.4311110375298535E+00
+5.4317297807013905E+00
+5.4323445406034523E+00
+5.4329553169158800E+00
+5.4335621093234590E+00
+5.4341649175159308E+00
+5.4347637411879797E+00
+5.4353585800392468E+00
+5.4359494337743159E+00
+5.4365363021027244E+00
+5.4371191847389566E+00
+5.4376980814024476E+00
+5.4382729918175832E+00
+5.4388439157136945E+00
+5.4394108528250671E+00
+5.4399738028909326E+00
+5.4405327656554734E+00
+5.4410877408678200E+00
+5.4416387282820553E+00
+5.4421857276572085E+00
+5.4427287387572596E+00
+5.4432677613511382E+00
+5.4438027952127213E+00
+5.4443338401208399E+00
+5.4448608958592706E+00
+5.4453839622167397E+00
+5.4459030389869243E+00
+5.4464181259684494E+00
+5.4469292229648927E+00
+5.4474363297847770E+00
+5.4479394462415760E+00
+5.4484385721537167E+00
+5.4489337073445689E+00
+5.4494248516424566E+00
+5.4499120048806509E+00
+5.4503951668973754E+00
+5.4508743375357991E+00
+5.4513495166440435E+00
+5.4518207040751774E+00
+5.4522878996872208E+00
+5.4527511033431422E+00
+5.4532103149108604E+00
+5.4536655342632416E+00
+5.4541167612781036E+00
+5.4545639958382122E+00
+5.4550072378312846E+00
+5.4554464871499864E+00
+5.4558817436919300E+00
+5.4563130073596824E+00
+5.4567402780607548E+00
+5.4571635557076128E+00
+5.4575828402176656E+00
+5.4579981315132793E+00
+5.4584094295217627E+00
+5.4588167341753779E+00
+5.4592200454113335E+00
+5.4596193631717913E+00
+5.4600146874038593E+00
+5.4604060180595964E+00
+5.4607933550960110E+00
+5.4611766984750609E+00
+5.4615560481636516E+00
+5.4619314041336411E+00
+5.4623027663618346E+00
+5.4626701348299882E+00
+5.4630335095248057E+00
+5.4633928904379410E+00
+5.4637482775659993E+00
+5.4640996709105316E+00
+5.4644470704780428E+00
+5.4647904762799824E+00
+5.4651298883327533E+00
+5.4654653066577064E+00
+5.4657967312811415E+00
+5.4661241622343084E+00
+5.4664475995534056E+00
+5.4667670432795843E+00
+5.4670824934589390E+00
+5.4673939501425188E+00
+5.4677014133863224E+00
+5.4680048832512931E+00
+5.4683043598033292E+00
+5.4685998431132736E+00
+5.4688913332569236E+00
+5.4691788303150215E+00
+5.4694623343732607E+00
+5.4697418455222859E+00
+5.4700173638576883E+00
+5.4702888894800106E+00
+5.4705564224947443E+00
+5.4708199630123282E+00
+5.4710795111481554E+00
+5.4713350670225642E+00
+5.4715866307608421E+00
+5.4718342024932305E+00
+5.4720777823549156E+00
+5.4723173704860359E+00
+5.4725529670316782E+00
+5.4727845721418777E+00
+5.4730121859716210E+00
+5.4732358086808439E+00
+5.4734554404344307E+00
+5.4736710814022143E+00
+5.4738827317589802E+00
+5.4740903916844585E+00
+5.4742940613633362E+00
+5.4744937409852410E+00
+5.4746894307447569E+00
+5.4748811308414114E+00
+5.4750688414796880E+00
+5.4752525628690156E+00
+5.4754322952237731E+00
+5.4756080387632871E+00
+5.4757797937118386E+00
+5.4759475602986534E+00
+5.4761113387579075E+00
+5.4762711293287296E+00
+5.4764269322551939E+00
+5.4765787477863253E+00
+5.4767265761760990E+00
+5.4768704176834389E+00
+5.4770102725722181E+00
+5.4771461411112616E+00
+5.4772780235743390E+00
+5.4774059202401739E+00
+5.4775298313924372E+00
+5.4776497573197487E+00
+5.4777656983156797E+00
+5.4778776546787498E+00
+5.4779856267124263E+00
+5.4780896147251301E+00
+5.4781896190302293E+00
+5.4782856399460371E+00
+5.4783776777958249E+00
+5.4784657329078073E+00
+5.4785498056151498E+00
+5.4786298962559670E+00
+5.4787060051733265E+00
+5.4787781327152381E+00
+5.4788462792346673E+00
+5.4789104450895261E+00
+5.4789706306426789E+00
+5.4790268362619354E+00
+5.4790790623200580E+00
+5.4791273091947588E+00
+5.4791715772686933E+00
+5.4792118669294751E+00
+5.4792481785696623E+00
+5.4792805125867625E+00
+5.4793088693832335E+00
+5.4793332493664835E+00
+5.4793536529488698E+00
+5.4793700805476977E+00
+5.4793825325852223E+00
+5.4793910094886504E+00
+5.4793955116901341E+00
+5.4793960396267787E+00
+5.4793925937406387E+00
+5.4793851744787165E+00
+5.4793737822929618E+00
+5.4793584176402792E+00
+5.4793390809825198E+00
+5.4793157727864834E+00
+5.4792884935239190E+00
+5.4792572436715288E+00
+5.4792220237109595E+00
+5.4791828341288094E+00
+5.4791396754166275E+00
+5.4790925480709118E+00
+5.4790414525931066E+00
+5.4789863894896103E+00
+5.4789273592717675E+00
+5.4788643624558730E+00
+5.4787973995631720E+00
+5.4787264711198578E+00
+5.4786515776570743E+00
+5.4785727197109146E+00
+5.4784898978224197E+00
+5.4784031125375812E+00
+5.4783123644073424E+00
+5.4782176539875929E+00
+5.4781189818391720E+00
+5.4780163485278690E+00
+5.4779097546244246E+00
+5.4777992007045251E+00
+5.4776846873488081E+00
+5.4775662151428630E+00
+5.4774437846772255E+00
+5.4773173965473818E+00
+5.4771870513537655E+00
+5.4770527497017651E+00
+5.4769144922017121E+00
+5.4767722794688929E+00
+5.4766261121235384E+00
+5.4764759907908331E+00
+5.4763219161009085E+00
+5.4761638886888457E+00
+5.4760019091946761E+00
+5.4758359782633814E+00
+5.4756660965448916E+00
+5.4754922646940836E+00
+5.4753144833707896E+00
+5.4751327532397847E+00
+5.4749470749707987E+00
+5.4747574492385080E+00
+5.4745638767225406E+00
+5.4743663581074706E+00
+5.4741648940828256E+00
+5.4739594853430775E+00
+5.4737501325876536E+00
+5.4735368365209274E+00
+5.4733195978522211E+00
+5.4730984172958070E+00
+5.4728732955709098E+00
+5.4726442334016969E+00
+5.4724112315172944E+00
+5.4721742906517683E+00
+5.4719334115441427E+00
+5.4716885949383833E+00
+5.4714398415834111E+00
+5.4711871522330924E+00
+5.4709305276462468E+00
+5.4706699685866429E+00
+5.4704054758229930E+00
+5.4701370501289661E+00
+5.4698646922831768E+00
+5.4695884030691904E+00
+5.4693081832755208E+00
+5.4690240336956313E+00
+5.4687359551279373E+00
+5.4684439483757989E+00
+5.4681480142475314E+00
+5.4678481535563925E+00
+5.4675443671205946E+00
+5.4672366557633003E+00
+5.4669250203126163E+00
+5.4666094616016041E+00
+5.4662899804682716E+00
+5.4659665777555784E+00
+5.4656392543114301E+00
+5.4653080109886840E+00
+5.4649728486451483E+00
+5.4646337681435790E+00
+5.4642907703516785E+00
+5.4639438561421052E+00
+5.4635930263924610E+00
+5.4632382819853014E+00
+5.4628796238081296E+00
+5.4625170527533964E+00
+5.4621505697185055E+00
+5.4617801756058073E+00
+5.4614058713226035E+00
+5.4610276577811447E+00
+5.4606455358986299E+00
+5.4602595065972102E+00
+5.4598695708039813E+00
+5.4594757294509941E+00
+5.4590779834752441E+00
+5.4586763338186808E+00
+5.4582707814281992E+00
+5.4578613272556451E+00
+5.4574479722578140E+00
+5.4570307173964521E+00
+5.4566095636382519E+00
+5.4561845119548584E+00
+5.4557555633228629E+00
+5.4553227187238100E+00
+5.4548859791441906E+00
+5.4544453455754471E+00
+5.4540008190139693E+00
+5.4535524004610982E+00
+5.4531000909231233E+00
+5.4526438914112854E+00
+5.4521838029417697E+00
+5.4517198265357178E+00
+5.4512519632192165E+00
+5.4507802140233022E+00
+5.4503045799839605E+00
+5.4498250621421294E+00
+5.4493416615436914E+00
+5.4488543792394850E+00
+5.4483632162852915E+00
+5.4478681737418446E+00
+5.4473692526748296E+00
+5.4468664541548772E+00
+5.4463597792575706E+00
+5.4458492290634410E+00
+5.4453348046579677E+00
+5.4448165071315824E+00
+5.4442943375796649E+00
+5.4437682971025438E+00
+5.4432383868054988E+00
+5.4427046077987571E+00
+5.4421669611974961E+00
+5.4416254481218429E+00
+5.4410800696968744E+00
+5.4405308270526165E+00
+5.4399777213240439E+00
+5.4394207536510821E+00
+5.4388599251786047E+00
+5.4382952370564350E+00
+5.4377266904393471E+00
+5.4371542864870621E+00
+5.4365780263642538E+00
+5.4359979112405412E+00
+5.4354139422904977E+00
+5.4348261206936428E+00
+5.4342344476344442E+00
+5.4336389243023238E+00
+5.4330395518916488E+00
+5.4324363316017381E+00
+5.4318292646368587E+00
+5.4312183522062254E+00
+5.4306035955240084E+00
+5.4299849958093214E+00
+5.4293625542862305E+00
+5.4287362721837491E+00
+5.4281061507358430E+00
+5.4274721911814234E+00
+5.4268343947643567E+00
+5.4261927627334519E+00
+5.4255472963424740E+00
+5.4248979968501319E+00
+5.4242448655200866E+00
+5.4235879036209500E+00
+5.4229271124262821E+00
+5.4222624932145882E+00
+5.4215940472693323E+00
+5.4209217758789174E+00
+5.4202456803367030E+00
+5.4195657619409978E+00
+5.4188820219950546E+00
+5.4181944618070821E+00
+5.4175030826902342E+00
+5.4168078859626156E+00
+5.4161088729472802E+00
+5.4154060449722330E+00
+5.4146994033704248E+00
+5.4139889494797595E+00
+5.4132746846430893E+00
+5.4125566102082132E+00
+5.4118347275278849E+00
+5.4111090379598030E+00
+5.4103795428666173E+00
+5.4096462436159261E+00
+5.4089091415802795E+00
+5.4081682381371738E+00
+5.4074235346690589E+00
+5.4066750325633288E+00
+5.4059227332123321E+00
+5.4051666380133616E+00
+5.4044067483686664E+00
+5.4036430656854373E+00
+5.4028755913758220E+00
+5.4021043268569100E+00
+5.4013292735507479E+00
+5.4005504328843257E+00
+5.3997678062895860E+00
+5.3989813952034202E+00
+5.3981912010676689E+00
+5.3973972253291231E+00
+5.3965994694395203E+00
+5.3957979348555511E+00
+5.3949926230388527E+00
+5.3941835354560155E+00
+5.3933706735785742E+00
+5.3925540388830173E+00
+5.3917336328507810E+00
+5.3909094569682496E+00
+5.3900815127267601E+00
+5.3892498016225945E+00
+5.3884143251569894E+00
+5.3875750848361275E+00
+5.3867320821711413E+00
+5.3858853186781115E+00
+5.3850347958780738E+00
+5.3841805152970066E+00
+5.3833224784658400E+00
+5.3824606869204557E+00
+5.3815951422016832E+00
+5.3807258458553022E+00
+5.3798527994320384E+00
+5.3789760044875718E+00
+5.3780954625825288E+00
+5.3772111752824880E+00
+5.3763231441579720E+00
+5.3754313707844608E+00
+5.3745358567423773E+00
+5.3736366036170944E+00
+5.3727336129989389E+00
+5.3718268864831815E+00
+5.3709164256700488E+00
+5.3700022321647092E+00
+5.3690843075772872E+00
+5.3681626535228508E+00
+5.3672372716214252E+00
+5.3663081634979770E+00
+5.3653753307824257E+00
+5.3644387751096430E+00
+5.3634984981194442E+00
+5.3625545014565983E+00
+5.3616067867708237E+00
+5.3606553557167853E+00
+5.3597002099541005E+00
+5.3587413511473336E+00
+5.3577787809660000E+00
+5.3568125010845673E+00
+5.3558425131824441E+00
+5.3548688189439977E+00
+5.3538914200585399E+00
+5.3529103182203324E+00
+5.3519255151285856E+00
+5.3509370124874645E+00
+5.3499448120060764E+00
+5.3489489153984824E+00
+5.3479493243836931E+00
+5.3469460406856646E+00
+5.3459390660333064E+00
+5.3449284021604768E+00
+5.3439140508059841E+00
+5.3428960137135846E+00
+5.3418742926319815E+00
+5.3408488893148327E+00
+5.3398198055207446E+00
+5.3387870430132685E+00
+5.3377506035609104E+00
+5.3367104889371229E+00
+5.3356667009203074E+00
+5.3346192412938205E+00
+5.3335681118459579E+00
+5.3325133143699768E+00
+5.3314548506640724E+00
+5.3303927225313972E+00
+5.3293269317800505E+00
+5.3282574802230798E+00
+5.3271843696784869E+00
+5.3261076019692162E+00
+5.3250271789231656E+00
+5.3239431023731827E+00
+5.3228553741570623E+00
+5.3217639961175500E+00
+5.3206689701023420E+00
+5.3195702979640815E+00
+5.3184679815603628E+00
+5.3173620227537306E+00
+5.3162524234116741E+00
+5.3151391854066388E+00
+5.3140223106160152E+00
+5.3129018009221429E+00
+5.3117776582123142E+00
+5.3106498843787691E+00
+5.3095184813186966E+00
+5.3083834509342340E+00
+5.3072447951324717E+00
+5.3061025158254456E+00
+5.3049566149301448E+00
+5.3038070943685041E+00
+5.3026539560674104E+00
+5.3014972019586999E+00
+5.3003368339791557E+00
+5.2991728540705143E+00
+5.2980052641794568E+00
+5.2968340662576194E+00
+5.2956592622615828E+00
+5.2944808541528792E+00
+5.2932988438979907E+00
+5.2921132334683474E+00
+5.2909240248403329E+00
+5.2897312199952724E+00
+5.2885348209194492E+00
+5.2873348296040881E+00
+5.2861312480453710E+00
+5.2849240782444245E+00
+5.2837133222073254E+00
+5.2824989819451007E+00
+5.2812810594737245E+00
+5.2800595568141233E+00
+5.2788344759921735E+00
+5.2776058190386994E+00
+5.2763735879894709E+00
+5.2751377848852146E+00
+5.2738984117716026E+00
+5.2726554706992568E+00
+5.2714089637237489E+00
+5.2701588929055987E+00
+5.2689052603102784E+00
+5.2676480680082074E+00
+5.2663873180747531E+00
+5.2651230125902364E+00
+5.2638551536399243E+00
+5.2625837433140346E+00
+5.2613087837077357E+00
+5.2600302769211433E+00
+5.2587482250593203E+00
+5.2574626302322880E+00
+5.2561734945550063E+00
+5.2548808201473909E+00
+5.2535846091343066E+00
+5.2522848636455652E+00
+5.2509815858159303E+00
+5.2496747777851134E+00
+5.2483644416977757E+00
+5.2470505797035294E+00
+5.2457331939569318E+00
+5.2444122866174956E+00
+5.2430878598496804E+00
+5.2417599158228931E+00
+5.2404284567114914E+00
+5.2390934846947852E+00
+5.2377550019570300E+00
+5.2364130106874320E+00
+5.2350675130801481E+00
+5.2337185113342821E+00
+5.2323660076538916E+00
+5.2310100042479766E+00
+5.2296505033304950E+00
+5.2282875071203465E+00
+5.2269210178413870E+00
+5.2255510377224157E+00
+5.2241775689971846E+00
+5.2228006139043952E+00
+5.2214201746876974E+00
+5.2200362535956915E+00
+5.2186488528819268E+00
+5.2172579748049017E+00
+5.2158636216280616E+00
+5.2144657956198088E+00
+5.2130644990534876E+00
+5.2116597342073945E+00
+5.2102515033647752E+00
+5.2088398088138250E+00
+5.2074246528476911E+00
+5.2060060377644630E+00
+5.2045839658671893E+00
+5.2031584394638593E+00
+5.2017294608674165E+00
+5.2002970323957536E+00
+5.1988611563717129E+00
+5.1974218351230830E+00
+5.1959790709826050E+00
+5.1945328662879691E+00
+5.1930832233818123E+00
+5.1916301446117270E+00
+5.1901736323302483E+00
+5.1887136888948646E+00
+5.1872503166680133E+00
+5.1857835180170797E+00
+5.1843132953144000E+00
+5.1828396509372601E+00
+5.1813625872678939E+00
+5.1798821066934861E+00
+5.1783982116061695E+00
+5.1769109044030275E+00
+5.1754201874860941E+00
+5.1739260632623481E+00
+5.1724285341437231E+00
+5.1709276025471000E+00
+5.1694232708943071E+00
+5.1679155416121265E+00
+5.1664044171322852E+00
+5.1648898998914632E+00
+5.1633719923312880E+00
+5.1618506968983358E+00
+5.1603260160441362E+00
+5.1587979522251635E+00
+5.1572665079028441E+00
+5.1557316855435520E+00
+5.1541934876186142E+00
+5.1526519166043014E+00
+5.1511069749818414E+00
+5.1495586652374037E+00
+5.1480069898621128E+00
+5.1464519513520406E+00
+5.1448935522082060E+00
+5.1433317949365804E+00
+5.1417666820480870E+00
+5.1401982160585922E+00
+5.1386263994889161E+00
+5.1370512348648276E+00
+5.1354727247170437E+00
+5.1338908715812330E+00
+5.1323056779980121E+00
+5.1307171465129464E+00
+5.1291252796765523E+00
+5.1275300800442949E+00
+5.1259315501765892E+00
+5.1243296926387973E+00
+5.1227245100012349E+00
+5.1211160048391635E+00
+5.1195041797327967E+00
+5.1178890372672958E+00
+5.1162705800327721E+00
+5.1146488106242867E+00
+5.1130237316418476E+00
+5.1113953456904166E+00
+5.1097636553799024E+00
+5.1081286633251635E+00
+5.1064903721460073E+00
+5.1048487844671913E+00
+5.1032039029184224E+00
+5.1015557301343559E+00
+5.0999042687545995E+00
+5.0982495214237060E+00
+5.0965914907911820E+00
+5.0949301795114810E+00
+5.0932655902440045E+00
+5.0915977256531084E+00
+5.0899265884080931E+00
+5.0882521811832113E+00
+5.0865745066576631E+00
+5.0848935675155991E+00
+5.0832093664461215E+00
+5.0815219061432773E+00
+5.0798311893060673E+00
+5.0781372186384388E+00
+5.0764399968492908E+00
+5.0747395266524693E+00
+5.0730358107667719E+00
+5.0713288519159443E+00
+5.0696186528286820E+00
+5.0679052162386311E+00
+5.0661885448843851E+00
+5.0644686415094879E+00
+5.0627455088624336E+00
+5.0610191496966657E+00
+5.0592895667705742E+00
+5.0575567628475024E+00
+5.0558207406957418E+00
+5.0540815030885309E+00
+5.0523390528040633E+00
+5.0505933926254754E+00
+5.0488445253408578E+00
+5.0470924537432484E+00
+5.0453371806306331E+00
+5.0435787088059527E+00
+5.0418170410770919E+00
+5.0400521802568878E+00
+5.0382841291631237E+00
+5.0365128906185372E+00
+5.0347384674508104E+00
+5.0329608624925806E+00
+5.0311800785814276E+00
+5.0293961185598857E+00
+5.0276089852754389E+00
+5.0258186815805148E+00
+5.0240252103324989E+00
+5.0222285743937185E+00
+5.0204287766314568E+00
+5.0186258199179390E+00
+5.0168197071303480E+00
+5.0150104411508085E+00
+5.0131980248664014E+00
+5.0113824611691529E+00
+5.0095637529560397E+00
+5.0077419031289878E+00
+5.0059169145948710E+00
+5.0040887902655173E+00
+5.0022575330576995E+00
+5.0004231458931425E+00
+4.9985856316985169E+00
+4.9967449934054491E+00
+4.9949012339505092E+00
+4.9930543562752181E+00
+4.9912043633260499E+00
+4.9893512580544215E+00
+4.9874950434167058E+00
+4.9856357223742194E+00
+4.9837732978932348E+00
+4.9819077729449663E+00
+4.9800391505055845E+00
+4.9781674335562061E+00
+4.9762926250828956E+00
+4.9744147280766731E+00
+4.9725337455334992E+00
+4.9706496804542937E+00
+4.9687625358449168E+00
+4.9668723147161851E+00
+4.9649790200838595E+00
+4.9630826549686553E+00
+4.9611832223962340E+00
+4.9592807253972060E+00
+4.9573751670071333E+00
+4.9554665502665252E+00
+4.9535548782208432E+00
+4.9516401539204962E+00
+4.9497223804208428E+00
+4.9478015607821915E+00
+4.9458776980697987E+00
+4.9439507953538717E+00
+4.9420208557095693E+00
+4.9400878822169965E+00
+4.9381518779612081E+00
+4.9362128460322081E+00
+4.9342707895249527E+00
+4.9323257115393453E+00
+4.9303776151802392E+00
+4.9284265035574357E+00
+4.9264723797856886E+00
+4.9245152469846980E+00
+4.9225551082791164E+00
+4.9205919667985425E+00
+4.9186258256775277E+00
+4.9166566880555713E+00
+4.9146845570771207E+00
+4.9127094358915757E+00
+4.9107313276532825E+00
+4.9087502355215396E+00
+4.9067661626605918E+00
+4.9047791122396367E+00
+4.9027890874328186E+00
+4.9007960914192328E+00
+4.8988001273829243E+00
+4.8968011985128861E+00
+4.8947993080030612E+00
+4.8927944590523422E+00
+4.8907866548645709E+00
+4.8887758986485403E+00
+4.8867621936179892E+00
+4.8847455429916105E+00
+4.8827259499930422E+00
+4.8807034178508735E+00
+4.8786779497986439E+00
+4.8766495490748420E+00
+4.8746182189229046E+00
+4.8725839625912188E+00
+4.8705467833331220E+00
+4.8685066844068965E+00
+4.8664636690757828E+00
+4.8644177406079629E+00
+4.8623689022765726E+00
+4.8603171573596926E+00
+4.8582625091403582E+00
+4.8562049609065525E+00
+4.8541445159512060E+00
+4.8520811775722024E+00
+4.8500149490723699E+00
+4.8479458337594910E+00
+4.8458738349462926E+00
+4.8437989559504580E+00
+4.8417212000946126E+00
+4.8396405707063366E+00
+4.8375570711181561E+00
+4.8354707046675474E+00
+4.8333814746969406E+00
+4.8312893845537070E+00
+4.8291944375901750E+00
+4.8270966371636188E+00
+4.8249959866362619E+00
+4.8228924893752785E+00
+4.8207861487527905E+00
+4.8186769681458728E+00
+4.8165649509365451E+00
+4.8144501005117810E+00
+4.8123324202634974E+00
+4.8102119135885708E+00
+4.8080885838888143E+00
+4.8059624345710024E+00
+4.8038334690468512E+00
+4.8017016907330277E+00
+4.7995671030511522E+00
+4.7974297094277896E+00
+4.7952895132944580E+00
+4.7931465180876209E+00
+4.7910007272486963E+00
+4.7888521442240464E+00
+4.7867007724649859E+00
+4.7845466154277805E+00
+4.7823896765736409E+00
+4.7802299593687314E+00
+4.7780674672841617E+00
+4.7759022037959955E+00
+4.7737341723852422E+00
+4.7715633765378636E+00
+4.7693898197447657E+00
+4.7672135055018119E+00
+4.7650344373098079E+00
+4.7628526186745139E+00
+4.7606680531066372E+00
+4.7584807441218322E+00
+4.7562906952407085E+00
+4.7540979099888174E+00
+4.7519023918966701E+00
+4.7497041444997166E+00
+4.7475031713383631E+00
+4.7452994759579630E+00
+4.7430930619088185E+00
+4.7408839327461827E+00
+4.7386720920302583E+00
+4.7364575433261953E+00
+4.7342402902040943E+00
+4.7320203362390059E+00
+4.7297976850109302E+00
+4.7275723401048158E+00
+4.7253443051105624E+00
+4.7231135836230163E+00
+4.7208801792419761E+00
+4.7186440955721869E+00
+4.7164053362233487E+00
+4.7141639048101034E+00
+4.7119198049520481E+00
+4.7096730402737279E+00
+4.7074236144046351E+00
+4.7051715309792135E+00
+4.7029167936368568E+00
+4.7006594060219085E+00
+4.6983993717836592E+00
+4.6961366945763485E+00
+4.6938713780591703E+00
+4.6916034258962629E+00
+4.6893328417567171E+00
+4.6870596293145708E+00
+4.6847837922488136E+00
+4.6825053342433813E+00
+4.6802242589871632E+00
+4.6779405701739956E+00
+4.6756542715026654E+00
+4.6733653666769079E+00
+4.6710738594054071E+00
+4.6687797534017994E+00
+4.6664830523846677E+00
+4.6641837600775462E+00
+4.6618818802089166E+00
+4.6595774165122119E+00
+4.6572703727258151E+00
+4.6549607525930554E+00
+4.6526485598622163E+00
+4.6503337982865238E+00
+4.6480164716241621E+00
+4.6456965836382560E+00
+4.6433741380968865E+00
+4.6410491387730808E+00
+4.6387215894448159E+00
+4.6363914938950206E+00
+4.6340588559115679E+00
+4.6317236792872851E+00
+4.6293859678199478E+00
+4.6270457253122803E+00
+4.6247029555719559E+00
+4.6223576624115985E+00
+4.6200098496487820E+00
+4.6176595211060247E+00
+4.6153066806108045E+00
+4.6129513319955384E+00
+4.6105934790975978E+00
+4.6082331257593028E+00
+4.6058702758279235E+00
+4.6035049331556772E+00
+4.6011371015997353E+00
+4.5987667850222138E+00
+4.5963939872901793E+00
+4.5940187122756511E+00
+4.5916409638555908E+00
+4.5892607459119192E+00
+4.5868780623314978E+00
+4.5844929170061430E+00
+4.5821053138326189E+00
+4.5797152567126362E+00
+4.5773227495528621E+00
+4.5749277962649053E+00
+4.5725304007653289E+00
+4.5701305669756422E+00
+4.5677282988223089E+00
+4.5653236002367370E+00
+4.5629164751552862E+00
+4.5605069275192678E+00
+4.5580949612749357E+00
+4.5556805803735019E+00
+4.5532637887711189E+00
+4.5508445904289001E+00
+4.5484229893128960E+00
+4.5459989893941142E+00
+4.5435725946485102E+00
+4.5411438090569858E+00
+4.5387126366053989E+00
+4.5362790812845502E+00
+4.5338431470901943E+00
+4.5314048380230307E+00
+4.5289641580887148E+00
+4.5265211112978427E+00
+4.5240757016659705E+00
+4.5216279332135940E+00
+4.5191778099661644E+00
+4.5167253359540807E+00
+4.5142705152126901E+00
+4.5118133517822931E+00
+4.5093538497081331E+00
+4.5068920130404093E+00
+4.5044278458342673E+00
+4.5019613521498023E+00
+4.4994925360520588E+00
+4.4970214016110317E+00
+4.4945479529016668E+00
+4.4920721940038542E+00
+4.4895941290024393E+00
+4.4871137619872101E+00
+4.4846310970529144E+00
+4.4821461382992380E+00
+4.4796588898308238E+00
+4.4771693557572627E+00
+4.4746775401930909E+00
+4.4721834472577999E+00
+4.4696870810758274E+00
+4.4671884457765616E+00
+4.4646875454943373E+00
+4.4621843843684443E+00
+4.4596789665431160E+00
+4.4571712961675392E+00
+4.4546613773958503E+00
+4.4521492143871297E+00
+4.4496348113054163E+00
+4.4471181723196871E+00
+4.4445993016038807E+00
+4.4420782033368758E+00
+4.4395548817025059E+00
+4.4370293408895511E+00
+4.4345015850917413E+00
+4.4319716185077569E+00
+4.4294394453412274E+00
+4.4269050698007328E+00
+4.4243684960997998E+00
+4.4218297284569053E+00
+4.4192887710954780E+00
+4.4167456282438939E+00
+4.4142003041354805E+00
+4.4116528030085096E+00
+4.4091031291062102E+00
+4.4065512866767538E+00
+4.4039972799732645E+00
+4.4014411132538172E+00
+4.3988827907814327E+00
+4.3963223168240848E+00
+4.3937596956546932E+00
+4.3911949315511309E+00
+4.3886280287962158E+00
+4.3860589916777206E+00
+4.3834878244883626E+00
+4.3809145315258107E+00
+4.3783391170926853E+00
+4.3757615855090419E+00
+4.3731819412219322E+00
+4.3706001887563977E+00
+4.3680163328523216E+00
+4.3654303785646089E+00
+4.3628423308154503E+00
+4.3602521938465566E+00
+4.3576599717847673E+00
+4.3550656695979937E+00
+4.3524692928668260E+00
+4.3498708464533200E+00
+4.3472703338002141E+00
+4.3446677584633351E+00
+4.3420631255312196E+00
+4.3394564405966785E+00
+4.3368477085053918E+00
+4.3342369333954505E+00
+4.3316241196493541E+00
+4.3290092723326037E+00
+4.3263923965151596E+00
+4.3237734964543986E+00
+4.3211525760528104E+00
+4.3185296398278732E+00
+4.3159046930499940E+00
+4.3132777408523184E+00
+4.3106487877389439E+00
+4.3080178381045293E+00
+4.3053848965489001E+00
+4.3027499677953633E+00
+4.3001130564247507E+00
+4.2974741667870200E+00
+4.2948333033054524E+00
+4.2921904708105520E+00
+4.2895456742534339E+00
+4.2868989186210031E+00
+4.2842502089263332E+00
+4.2815995497302506E+00
+4.2789469446548996E+00
+4.2762923974865883E+00
+4.2736359136912538E+00
+4.2709774993156282E+00
+4.2683171591792224E+00
+4.2656548968635839E+00
+4.2629907162699610E+00
+4.2603246223088158E+00
+4.2576566200548100E+00
+4.2549867145064155E+00
+4.2523149106164455E+00
+4.2496412129209773E+00
+4.2469656254128498E+00
+4.2442881523165088E+00
+4.2416087988143660E+00
+4.2389275702477205E+00
+4.2362444712474359E+00
+4.2335595059928464E+00
+4.2308726789313758E+00
+4.2281839949718236E+00
+4.2254934590084652E+00
+4.2228010756325887E+00
+4.2201068493593992E+00
+4.2174107849124729E+00
+4.2147128871890116E+00
+4.2120131609826972E+00
+4.2093116108417226E+00
+4.2066082412671699E+00
+4.2039030566435747E+00
+4.2011960613318786E+00
+4.1984872602314782E+00
+4.1957766588188630E+00
+4.1930642622339818E+00
+4.1903500745457132E+00
+4.1876340997162123E+00
+4.1849163424580924E+00
+4.1821968078777241E+00
+4.1794755009034388E+00
+4.1767524262100784E+00
+4.1740275884497784E+00
+4.1713009922459818E+00
+4.1685726422175531E+00
+4.1658425429719506E+00
+4.1631106991109403E+00
+4.1603771152963569E+00
+4.1576417962945253E+00
+4.1549047468954150E+00
+4.1521659719369248E+00
+4.1494254762642937E+00
+4.1466832645110854E+00
+4.1439393411242591E+00
+4.1411937106131873E+00
+4.1384463776434712E+00
+4.1356973469233331E+00
+4.1329466232785750E+00
+4.1301942115846622E+00
+4.1274401166128438E+00
+4.1246843430144873E+00
+4.1219268954598469E+00
+4.1191677786890981E+00
+4.1164069974506772E+00
+4.1136445564081301E+00
+4.1108804601778708E+00
+4.1081147133025695E+00
+4.1053473202147588E+00
+4.1025782854964810E+00
+4.0998076143768332E+00
+4.0970353121963337E+00
+4.0942613834559838E+00
+4.0914858320499370E+00
+4.0887086623876083E+00
+4.0859298798895871E+00
+4.0831494899163410E+00
+4.0803674968300214E+00
+4.0775839046708882E+00
+4.0747987179480347E+00
+4.0720119416127449E+00
+4.0692235806093091E+00
+4.0664336398140009E+00
+4.0636421240562033E+00
+4.0608490378627327E+00
+4.0580543856323024E+00
+4.0552581720498715E+00
+4.0524604021480366E+00
+4.0496610808441602E+00
+4.0468602125894702E+00
+4.0440578017840272E+00
+4.0412538532825177E+00
+4.0384483722086983E+00
+4.0356413633520063E+00
+4.0328328309679486E+00
+4.0300227793935735E+00
+4.0272112135275293E+00
+4.0243981384191612E+00
+4.0215835589719253E+00
+4.0187674799761233E+00
+4.0159499060945070E+00
+4.0131308417300797E+00
+4.0103102913185511E+00
+4.0074882596656929E+00
+4.0046647517098481E+00
+4.0018397722035273E+00
+3.9990133257128422E+00
+3.9961854168766666E+00
+3.9933560505449144E+00
+3.9905252315947428E+00
+3.9876929648102393E+00
+3.9848592549278488E+00
+3.9820241065213358E+00
+3.9791875239532195E+00
+3.9763495117702123E+00
+3.9735100752205428E+00
+3.9706692196313558E+00
+3.9678269493889142E+00
+3.9649832682886510E+00
+3.9621381808009897E+00
+3.9592916925408312E+00
+3.9564438089873342E+00
+3.9535945344238095E+00
+3.9507438728084976E+00
+3.9478918286263243E+00
+3.9450384067985427E+00
+3.9421836122552483E+00
+3.9393274499119748E+00
+3.9364699246706247E+00
+3.9336110413354981E+00
+3.9307508046608222E+00
+3.9278892190466612E+00
+3.9250262885155980E+00
+3.9221620174865595E+00
+3.9192964115696309E+00
+3.9164294764455181E+00
+3.9135612164889735E+00
+3.9106916354083086E+00
+3.9078207376082301E+00
+3.9049485284590788E+00
+3.9020750131942039E+00
+3.8992001962350007E+00
+3.8963240818548059E+00
+3.8934466748887204E+00
+3.8905679805511340E+00
+3.8876880036370811E+00
+3.8848067481758171E+00
+3.8819242182817053E+00
+3.8790404189057437E+00
+3.8761553552677066E+00
+3.8732690325191736E+00
+3.8703814557507092E+00
+3.8674926296707275E+00
+3.8646025580929790E+00
+3.8617112449043662E+00
+3.8588186953786190E+00
+3.8559249153503701E+00
+3.8530299096737832E+00
+3.8501336820873244E+00
+3.8472362366035151E+00
+3.8443375782637279E+00
+3.8414377122879908E+00
+3.8385366436727382E+00
+3.8356343772858184E+00
+3.8327309177062130E+00
+3.8298262690894100E+00
+3.8269204357595394E+00
+3.8240134228681284E+00
+3.8211052357332069E+00
+3.8181958789771198E+00
+3.8152853567213265E+00
+3.8123736733775107E+00
+3.8094608339288185E+00
+3.8065468433949197E+00
+3.8036317066241425E+00
+3.8007154283941986E+00
+3.7977980131951581E+00
+3.7948794652488052E+00
+3.7919597890701278E+00
+3.7890389899282799E+00
+3.7861170731164595E+00
+3.7831940432084856E+00
+3.7802699044588008E+00
+3.7773446613467554E+00
+3.7744183186245892E+00
+3.7714908810299832E+00
+3.7685623531893473E+00
+3.7656327397194009E+00
+3.7627020453475706E+00
+3.7597702748700534E+00
+3.7568374331554608E+00
+3.7539035251818165E+00
+3.7509685558039410E+00
+3.7480325292733681E+00
+3.7450954497218909E+00
+3.7421573219664448E+00
+3.7392181513515448E+00
+3.7362779428707391E+00
+3.7333367007710172E+00
+3.7303944292821050E+00
+3.7274511330578677E+00
+3.7245068169138049E+00
+3.7215614857177872E+00
+3.7186151443895170E+00
+3.7156677977797159E+00
+3.7127194505417225E+00
+3.7097701072741138E+00
+3.7068197723730516E+00
+3.7038684501478221E+00
+3.7009161452882475E+00
+3.6979628629730894E+00
+3.6950086082176488E+00
+3.6920533853294399E+00
+3.6890971985198644E+00
+3.6861400526739456E+00
+3.6831819530997141E+00
+3.6802229046380486E+00
+3.6772629113378206E+00
+3.6743019773571564E+00
+3.6713401077230263E+00
+3.6683773076961006E+00
+3.6654135820692777E+00
+3.6624489352516667E+00
+3.6594833716654427E+00
+3.6565168957819156E+00
+3.6535495121432109E+00
+3.6505812256888723E+00
+3.6476120414996900E+00
+3.6446419641801424E+00
+3.6416709978293089E+00
+3.6386991468210601E+00
+3.6357264163818068E+00
+3.6327528118119092E+00
+3.6297783376959414E+00
+3.6268029982517218E+00
+3.6238267978769003E+00
+3.6208497412183593E+00
+3.6178718329681523E+00
+3.6148930779127322E+00
+3.6119134808529334E+00
+3.6089330464544127E+00
+3.6059517792929112E+00
+3.6029696839809269E+00
+3.5999867651964896E+00
+3.5970030276062515E+00
+3.5940184757703064E+00
+3.5910331142329257E+00
+3.5880469478307271E+00
+3.5850599816551978E+00
+3.5820722204417264E+00
+3.5790836680731513E+00
+3.5760943284826059E+00
+3.5731042067760939E+00
+3.5701133085359880E+00
+3.5671216386729250E+00
+3.5641292013371739E+00
+3.5611360007372133E+00
+3.5581420413796772E+00
+3.5551473278606349E+00
+3.5521518650607216E+00
+3.5491556580142190E+00
+3.5461587114446553E+00
+3.5431610296184264E+00
+3.5401626168597073E+00
+3.5371634778696750E+00
+3.5341636174524744E+00
+3.5311630404605161E+00
+3.5281617517795385E+00
+3.5251597560160666E+00
+3.5221570572430383E+00
+3.5191536596189805E+00
+3.5161495680910444E+00
+3.5131447878577515E+00
+3.5101393236772380E+00
+3.5071331798977416E+00
+3.5041263608879687E+00
+3.5011188711016987E+00
+3.4981107150412036E+00
+3.4951018974562600E+00
+3.4920924232086707E+00
+3.4890822970907931E+00
+3.4860715238101521E+00
+3.4830601079794907E+00
+3.4800480539076912E+00
+3.4770353658728368E+00
+3.4740220484598550E+00
+3.4710081064363782E+00
+3.4679935445448855E+00
+3.4649783674830941E+00
+3.4619625799213085E+00
+3.4589461864148134E+00
+3.4559291914910677E+00
+3.4529115997023698E+00
+3.4498934156209278E+00
+3.4468746438287465E+00
+3.4438552889232539E+00
+3.4408353554938889E+00
+3.4378148480569601E+00
+3.4347937711136374E+00
+3.4317721293859473E+00
+3.4287499278143772E+00
+3.4257271711254207E+00
+3.4227038634454825E+00
+3.4196800088806873E+00
+3.4166556121548481E+00
+3.4136306782845112E+00
+3.4106052119778103E+00
+3.4075792175452526E+00
+3.4045526993658064E+00
+3.4015256621454952E+00
+3.3984981106431236E+00
+3.3954700493688081E+00
+3.3924414826792475E+00
+3.3894124151074378E+00
+3.3863828514801875E+00
+3.3833527965453700E+00
+3.3803222545337839E+00
+3.3772912295608899E+00
+3.3742597263320739E+00
+3.3712277500333387E+00
+3.3681953054653508E+00
+3.3651623965617019E+00
+3.3621290272849405E+00
+3.3590952024932190E+00
+3.3560609273795272E+00
+3.3530262066329408E+00
+3.3499910444104604E+00
+3.3469554450022336E+00
+3.3439194131453620E+00
+3.3408829535989732E+00
+3.3378460706012660E+00
+3.3348087681337120E+00
+3.3317710506699014E+00
+3.3287329233550005E+00
+3.3256943912190997E+00
+3.3226554586621990E+00
+3.3196161299497762E+00
+3.3165764095097692E+00
+3.3135363018797892E+00
+3.3104958115433174E+00
+3.3074549428823894E+00
+3.3044137003257439E+00
+3.3013720885820383E+00
+3.2983301124305382E+00
+3.2952877762790411E+00
+3.2922450842136741E+00
+3.2892020405793589E+00
+3.2861586503399374E+00
+3.2831149184718167E+00
+3.2800708494201034E+00
+3.2770264474088755E+00
+3.2739817166959830E+00
+3.2709366615777422E+00
+3.2678912864757179E+00
+3.2648455961823943E+00
+3.2617995955154178E+00
+3.2587532888384745E+00
+3.2557066802731573E+00
+3.2526597743050103E+00
+3.2496125759494037E+00
+3.2465650900297671E+00
+3.2435173204062875E+00
+3.2404692707676324E+00
+3.2374209457830694E+00
+3.2343723508204985E+00
+3.2313234907033461E+00
+3.2282743691979761E+00
+3.2252249901169630E+00
+3.2221753581579069E+00
+3.2191254783092300E+00
+3.2160753552993278E+00
+3.2130249936153392E+00
+3.2099743975360195E+00
+3.2069235708437684E+00
+3.2038725174248106E+00
+3.2008212424843712E+00
+3.1977697517847741E+00
+3.1947180498225523E+00
+3.1916661395794317E+00
+3.1886140244731020E+00
+3.1855617096381348E+00
+3.1825092004938935E+00
+3.1794565017480445E+00
+3.1764036176899464E+00
+3.1733505525765189E+00
+3.1702973106214642E+00
+3.1672438960333231E+00
+3.1641903130063049E+00
+3.1611365657678911E+00
+3.1580826590689126E+00
+3.1550285980571009E+00
+3.1519743874374089E+00
+3.1489200310013552E+00
+3.1458655325519778E+00
+3.1428108965958725E+00
+3.1397561278883237E+00
+3.1367012309582627E+00
+3.1336462101113920E+00
+3.1305910696575610E+00
+3.1275358139383678E+00
+3.1244804473259471E+00
+3.1214249743801177E+00
+3.1183693997474968E+00
+3.1153137278884815E+00
+3.1122579630253808E+00
+3.1092021093563713E+00
+3.1061461710428495E+00
+3.1030901522757834E+00
+3.1000340576479366E+00
+3.0969778919997673E+00
+3.0939216597773336E+00
+3.0908653647695625E+00
+3.0878090109132499E+00
+3.0847526031229995E+00
+3.0816961465514807E+00
+3.0786396455078955E+00
+3.0755831036182677E+00
+3.0725265247895073E+00
+3.0694699135717673E+00
+3.0664132745878945E+00
+3.0633566123804092E+00
+3.0602999314526533E+00
+3.0572432360725106E+00
+3.0541865302612163E+00
+3.0511298181666078E+00
+3.0480731043239695E+00
+3.0450163933201617E+00
+3.0419596895803815E+00
+3.0389029974451511E+00
+3.0358463211341462E+00
+3.0327896647036208E+00
+3.0297330323227269E+00
+3.0266764286248393E+00
+3.0236198583139444E+00
+3.0205633255930979E+00
+3.0175068343329774E+00
+3.0144503885657139E+00
+3.0113939926157713E+00
+3.0083376509081114E+00
+3.0052813682174100E+00
+3.0022251493794552E+00
+2.9991689983108687E+00
+2.9961129181367721E+00
+2.9930569127040068E+00
+2.9900009875734503E+00
+2.9869451483003053E+00
+2.9838893987442772E+00
+2.9808337420818662E+00
+2.9777781822107130E+00
+2.9747227238349634E+00
+2.9716673715870550E+00
+2.9686121297478616E+00
+2.9655570025186107E+00
+2.9625019939602559E+00
+2.9594471080632192E+00
+2.9563923490882269E+00
+2.9533377216854477E+00
+2.9502832303839259E+00
+2.9472288790909094E+00
+2.9441746716183643E+00
+2.9411206125924849E+00
+2.9380667072127693E+00
+2.9350129598749812E+00
+2.9319593734451299E+00
+2.9289059509921205E+00
+2.9258526975992112E+00
+2.9227996189702585E+00
+2.9197467195414584E+00
+2.9166940025833932E+00
+2.9136414717271406E+00
+2.9105891315929648E+00
+2.9075369868489300E+00
+2.9044850414016663E+00
+2.9014332988413463E+00
+2.8983817635048204E+00
+2.8953304406163052E+00
+2.8922793349639524E+00
+2.8892284497414447E+00
+2.8861777879549102E+00
+2.8831273539955071E+00
+2.8800771530576768E+00
+2.8770271898523538E+00
+2.8739774683313346E+00
+2.8709279923502957E+00
+2.8678787656204450E+00
+2.8648297918672534E+00
+2.8617810755826643E+00
+2.8587326218375990E+00
+2.8556844352858297E+00
+2.8526365197161168E+00
+2.8495888788389352E+00
+2.8465415165004768E+00
+2.8434944366103365E+00
+2.8404476433651773E+00
+2.8374011412426605E+00
+2.8343549346989785E+00
+2.8313090280991045E+00
+2.8282634257315764E+00
+2.8252181313798843E+00
+2.8221731485982193E+00
+2.8191284813580029E+00
+2.8160841341589875E+00
+2.8130401114002557E+00
+2.8099964170051370E+00
+2.8069530548511890E+00
+2.8039100294462238E+00
+2.8008673456820721E+00
+2.7978250077462943E+00
+2.7947830186635256E+00
+2.7917413816433974E+00
+2.7887001012606980E+00
+2.7856591824463970E+00
+2.7826186294117674E+00
+2.7795784457888151E+00
+2.7765386354841231E+00
+2.7734992030235390E+00
+2.7704601529159212E+00
+2.7674214890501738E+00
+2.7643832150835452E+00
+2.7613453348788708E+00
+2.7583078525136608E+00
+2.7552707720852063E+00
+2.7522340977147537E+00
+2.7491978335467193E+00
+2.7461619838761337E+00
+2.7431265530664213E+00
+2.7400915450768459E+00
+2.7370569633217414E+00
+2.7340228114145577E+00
+2.7309890938560355E+00
+2.7279558153070664E+00
+2.7249229798267387E+00
+2.7218905910765860E+00
+2.7188586528770804E+00
+2.7158271693371310E+00
+2.7127961445899973E+00
+2.7097655827383420E+00
+2.7067354878684071E+00
+2.7037058639219578E+00
+2.7006767147172801E+00
+2.6976480441740862E+00
+2.6946198564503678E+00
+2.6915921557019966E+00
+2.6885649458356888E+00
+2.6855382306618143E+00
+2.6825120141659506E+00
+2.6794863005280343E+00
+2.6764610938703131E+00
+2.6734363981066362E+00
+2.6704122171183253E+00
+2.6673885548361076E+00
+2.6643654152185521E+00
+2.6613428022281358E+00
+2.6583207198317429E+00
+2.6552991719822576E+00
+2.6522781625696124E+00
+2.6492576954854257E+00
+2.6462377748370889E+00
+2.6432184048834797E+00
+2.6401995896861137E+00
+2.6371813329316964E+00
+2.6341636383240443E+00
+2.6311465098740814E+00
+2.6281299516867751E+00
+2.6251139676609774E+00
+2.6220985615073542E+00
+2.6190837370305586E+00
+2.6160694982791233E+00
+2.6130558493160665E+00
+2.6100427940330690E+00
+2.6070303362451086E+00
+2.6040184797231065E+00
+2.6010072281861536E+00
+2.5979965854927896E+00
+2.5949865559589074E+00
+2.5919771439357633E+00
+2.5889683531819494E+00
+2.5859601871174664E+00
+2.5829526494791897E+00
+2.5799457444930214E+00
+2.5769394763106033E+00
+2.5739338485781387E+00
+2.5709288648264788E+00
+2.5679245288828736E+00
+2.5649208447971588E+00
+2.5619178164452738E+00
+2.5589154473453752E+00
+2.5559137410833013E+00
+2.5529127018782183E+00
+2.5499123341611063E+00
+2.5469126419724515E+00
+2.5439136289722484E+00
+2.5409152987527146E+00
+2.5379176547680466E+00
+2.5349207005177696E+00
+2.5319244400287486E+00
+2.5289288775716687E+00
+2.5259340171350009E+00
+2.5229398623505044E+00
+2.5199464168664734E+00
+2.5169536844638656E+00
+2.5139616689476281E+00
+2.5109703740577771E+00
+2.5079798034960161E+00
+2.5049899610582420E+00
+2.5020008506934812E+00
+2.4990124763528350E+00
+2.4960248419260953E+00
+2.4930379512627661E+00
+2.4900518078364815E+00
+2.4870664148215442E+00
+2.4840817757623688E+00
+2.4810978950048836E+00
+2.4781147768869007E+00
+2.4751324250459534E+00
+2.4721508428607617E+00
+2.4691700339761513E+00
+2.4661900023130259E+00
+2.4632107517283659E+00
+2.4602322858619683E+00
+2.4572546083129776E+00
+2.4542777226464194E+00
+2.4513016324162398E+00
+2.4483263414085497E+00
+2.4453518537194716E+00
+2.4423781733722905E+00
+2.4394053040337225E+00
+2.4364332492843666E+00
+2.4334620126567277E+00
+2.4304915976521517E+00
+2.4275220077894493E+00
+2.4245532466177808E+00
+2.4215853177869415E+00
+2.4186182254296402E+00
+2.4156519737926763E+00
+2.4126865664610153E+00
+2.4097220064554445E+00
+2.4067582970771988E+00
+2.4037954423031098E+00
+2.4008334461605405E+00
+2.3978723123820416E+00
+2.3949120445782350E+00
+2.3919526463367164E+00
+2.3889941212199535E+00
+2.3860364727539909E+00
+2.3830797043572960E+00
+2.3801238194758043E+00
+2.3771688219885472E+00
+2.3742147160018110E+00
+2.3712615052291652E+00
+2.3683091928212869E+00
+2.3653577820217784E+00
+2.3624072766158690E+00
+2.3594576805021878E+00
+2.3565089972759186E+00
+2.3535612303206643E+00
+2.3506143831919522E+00
+2.3476684597703734E+00
+2.3447234638807997E+00
+2.3417793988544120E+00
+2.3388362678783197E+00
+2.3358940745364745E+00
+2.3329528227733780E+00
+2.3300125163589267E+00
+2.3270731586060176E+00
+2.3241347527941301E+00
+2.3211973024482950E+00
+2.3182608112029985E+00
+2.3153252827010675E+00
+2.3123907205943053E+00
+2.3094571284442686E+00
+2.3065245095182783E+00
+2.3035928670801007E+00
+2.3006622049442367E+00
+2.2977325272338955E+00
+2.2948038374896087E+00
+2.2918761383619559E+00
+2.2889494327284909E+00
+2.2860237247604465E+00
+2.2830990189038247E+00
+2.2801753185388498E+00
+2.2772526262508967E+00
+2.2743309451238436E+00
+2.2714102792627515E+00
+2.2684906327482142E+00
+2.2655720088218749E+00
+2.2626544104464235E+00
+2.2597378410425502E+00
+2.2568223044741731E+00
+2.2539078044327492E+00
+2.2509943441132689E+00
+2.2480819266667718E+00
+2.2451705555183148E+00
+2.2422602342214781E+00
+2.2393509662766937E+00
+2.2364427551168249E+00
+2.2335356041869927E+00
+2.2306295169868187E+00
+2.2277244970183174E+00
+2.2248205476727669E+00
+2.2219176722726566E+00
+2.2190158740807195E+00
+2.2161151562642178E+00
+2.2132155221055978E+00
+2.2103169754566054E+00
+2.2074195202822242E+00
+2.2045231597264885E+00
+2.2016278962816536E+00
+2.1987337329908669E+00
+2.1958406740960164E+00
+2.1929487237982723E+00
+2.1900578850942694E+00
+2.1871681605430937E+00
+2.1842795532959025E+00
+2.1813920671142619E+00
+2.1785057056511099E+00
+2.1756204721779291E+00
+2.1727363699181548E+00
+2.1698534022399567E+00
+2.1669715725815233E+00
+2.1640908842397821E+00
+2.1612113403229056E+00
+2.1583329439814212E+00
+2.1554556985692224E+00
+2.1525796074875601E+00
+2.1497046741335102E+00
+2.1468309019005942E+00
+2.1439582940907700E+00
+2.1410868538477357E+00
+2.1382165843300198E+00
+2.1353474888448689E+00
+2.1324795707531665E+00
+2.1296128335379931E+00
+2.1267472807849335E+00
+2.1238829157577928E+00
+2.1210197409872418E+00
+2.1181577590789216E+00
+2.1152969738110152E+00
+2.1124373894131949E+00
+2.1095790092725117E+00
+2.1067218358513200E+00
+2.1038658718425762E+00
+2.1010111207656648E+00
+2.0981575862552502E+00
+2.0953052715910481E+00
+2.0924541798638616E+00
+2.0896043142547360E+00
+2.0867556780747343E+00
+2.0839082745883486E+00
+2.0810621068335120E+00
+2.0782171778037517E+00
+2.0753734906422592E+00
+2.0725310485976758E+00
+2.0696898549670970E+00
+2.0668499131320233E+00
+2.0640112263823944E+00
+2.0611737974682023E+00
+2.0583376289972541E+00
+2.0555027242903221E+00
+2.0526690873118141E+00
+2.0498367216843558E+00
+2.0470056301499593E+00
+2.0441758153762772E+00
+2.0413472804303390E+00
+2.0385200285510616E+00
+2.0356940628577984E+00
+2.0328693863295335E+00
+2.0300460020343087E+00
+2.0272239133486174E+00
+2.0244031236681934E+00
+2.0215836359615666E+00
+2.0187654529564947E+00
+2.0159485776328117E+00
+2.0131330133544361E+00
+2.0103187634807571E+00
+2.0075058312135390E+00
+2.0046942196902031E+00
+2.0018839317244628E+00
+1.9990749698909833E+00
+1.9962673370323354E+00
+1.9934610365274650E+00
+1.9906560717858623E+00
+1.9878524460310518E+00
+1.9850501624070664E+00
+1.9822492237639597E+00
+1.9794496326695523E+00
+1.9766513919191875E+00
+1.9738545049237164E+00
+1.9710589751456238E+00
+1.9682648056823595E+00
+1.9654719994558749E+00
+1.9626805592347465E+00
+1.9598904875983933E+00
+1.9571017873367855E+00
+1.9543144620011248E+00
+1.9515285152201816E+00
+1.9487439496896191E+00
+1.9459607675429014E+00
+1.9431789715395908E+00
+1.9403985654579377E+00
+1.9376195529300853E+00
+1.9348419364928817E+00
+1.9320657184087191E+00
+1.9292909015578181E+00
+1.9265174893098245E+00
+1.9237454848887792E+00
+1.9209748911848294E+00
+1.9182057110396646E+00
+1.9154379472532010E+00
+1.9126716026149766E+00
+1.9099066800430649E+00
+1.9071431825870948E+00
+1.9043811132494957E+00
+1.9016204748851639E+00
+1.8988612703320531E+00
+1.8961035024959041E+00
+1.8933471743163193E+00
+1.8905922887192705E+00
+1.8878388486122877E+00
+1.8850868568754215E+00
+1.8823363162914020E+00
+1.8795872296252991E+00
+1.8768395996956344E+00
+1.8740934293568976E+00
+1.8713487215390803E+00
+1.8686054793001468E+00
+1.8658637056419713E+00
+1.8631234032263657E+00
+1.8603845746235237E+00
+1.8576472226263072E+00
+1.8549113502154089E+00
+1.8521769603127289E+00
+1.8494440556948926E+00
+1.8467126391325823E+00
+1.8439827134868392E+00
+1.8412542816501309E+00
+1.8385273463634189E+00
+1.8358019102025585E+00
+1.8330779758411684E+00
+1.8303555462664296E+00
+1.8276346244952912E+00
+1.8249152132869364E+00
+1.8221973152632323E+00
+1.8194809330743893E+00
+1.8167660694122469E+00
+1.8140527270083655E+00
+1.8113409087383414E+00
+1.8086306175036995E+00
+1.8059218560787273E+00
+1.8032146271488818E+00
+1.8005089333639610E+00
+1.7978047773117867E+00
+1.7951021616201712E+00
+1.7924010891634348E+00
+1.7897015628841193E+00
+1.7870035854703639E+00
+1.7843071593819504E+00
+1.7816122871776463E+00
+1.7789189716725553E+00
+1.7762272157009784E+00
+1.7735370219643671E+00
+1.7708483931061614E+00
+1.7681613317667317E+00
+1.7654758405831732E+00
+1.7627919222046347E+00
+1.7601095793188897E+00
+1.7574288146131998E+00
+1.7547496306931853E+00
+1.7520720301187811E+00
+1.7493960155001420E+00
+1.7467215895234645E+00
+1.7440487548748909E+00
+1.7413775142134686E+00
+1.7387078701853695E+00
+1.7360398253552072E+00
+1.7333733822276780E+00
+1.7307085433661804E+00
+1.7280453114513052E+00
+1.7253836891578922E+00
+1.7227236790504907E+00
+1.7200652836575743E+00
+1.7174085055693866E+00
+1.7147533474351799E+00
+1.7120998118444755E+00
+1.7094479012277042E+00
+1.7067976180161839E+00
+1.7041489648429184E+00
+1.7015019444310768E+00
+1.6988565593649567E+00
+1.6962128120568853E+00
+1.6935707049600803E+00
+1.6909302407032276E+00
+1.6882914219321314E+00
+1.6856542510748735E+00
+1.6830187304291973E+00
+1.6803848624421718E+00
+1.6777526498023250E+00
+1.6751220951752150E+00
+1.6724932010229234E+00
+1.6698659697525622E+00
+1.6672404038180684E+00
+1.6646165057102080E+00
+1.6619942779070762E+00
+1.6593737228583658E+00
+1.6567548430201049E+00
+1.6541376409092783E+00
+1.6515221190611058E+00
+1.6489082798963546E+00
+1.6462961257193249E+00
+1.6436856588855411E+00
+1.6410768819056063E+00
+1.6384697973038225E+00
+1.6358644074989679E+00
+1.6332607148580034E+00
+1.6306587217821735E+00
+1.6280584307182728E+00
+1.6254598441021431E+00
+1.6228629643185914E+00
+1.6202677937381942E+00
+1.6176743347027447E+00
+1.6150825895360952E+00
+1.6124925606261804E+00
+1.6099042504706331E+00
+1.6073176615449944E+00
+1.6047327961646496E+00
+1.6021496565975821E+00
+1.5995682451407691E+00
+1.5969885641156520E+00
+1.5944106158745743E+00
+1.5918344028371971E+00
+1.5892599274114332E+00
+1.5866871918684573E+00
+1.5841161984272547E+00
+1.5815469493982275E+00
+1.5789794471909444E+00
+1.5764136941902669E+00
+1.5738496926942283E+00
+1.5712874449763234E+00
+1.5687269532332329E+00
+1.5661682196237312E+00
+1.5636112464501302E+00
+1.5610560362160855E+00
+1.5585025913531807E+00
+1.5559509139517202E+00
+1.5534010060358989E+00
+1.5508528698588557E+00
+1.5483065078309490E+00
+1.5457619222643346E+00
+1.5432191152873691E+00
+1.5406780890532497E+00
+1.5381388459494718E+00
+1.5356013884249133E+00
+1.5330657186385961E+00
+1.5305318384910593E+00
+1.5279997500498956E+00
+1.5254694558022244E+00
+1.5229409582344646E+00
+1.5204142593941155E+00
+1.5178893611461595E+00
+1.5153662656008851E+00
+1.5128449751521849E+00
+1.5103254921384073E+00
+1.5078078186737798E+00
+1.5052919568379273E+00
+1.5027779088059603E+00
+1.5002656768055560E+00
+1.4977552629838424E+00
+1.4952466693672308E+00
+1.4927398980084288E+00
+1.4902349511136910E+00
+1.4877318309231311E+00
+1.4852305395875398E+00
+1.4827310791916966E+00
+1.4802334518057176E+00
+1.4777376594746863E+00
+1.4752437042565747E+00
+1.4727515883004090E+00
+1.4702613137833918E+00
+1.4677728828074890E+00
+1.4652862974031275E+00
+1.4628015596234527E+00
+1.4603186715873213E+00
+1.4578376354099494E+00
+1.4553584531018982E+00
+1.4528811266261830E+00
+1.4504056579893174E+00
+1.4479320492515946E+00
+1.4454603025000092E+00
+1.4429904199017207E+00
+1.4405224036182616E+00
+1.4380562555734251E+00
+1.4355919775490453E+00
+1.4331295714679466E+00
+1.4306690394802346E+00
+1.4282103837327498E+00
+1.4257536062675495E+00
+1.4232987090919720E+00
+1.4208456941404057E+00
+1.4183945632901713E+00
+1.4159453184600523E+00
+1.4134979616584056E+00
+1.4110524948960819E+00
+1.4086089201338738E+00
+1.4061672393147491E+00
+1.4037274544133787E+00
+1.4012895674364847E+00
+1.3988535803450730E+00
+1.3964194949726150E+00
+1.3939873131490994E+00
+1.3915570368583032E+00
+1.3891286681573032E+00
+1.3867022089998362E+00
+1.3842776612042036E+00
+1.3818550265975362E+00
+1.3794343070737145E+00
+1.3770155045427857E+00
+1.3745986209315286E+00
+1.3721836581771563E+00
+1.3697706182035854E+00
+1.3673595029123453E+00
+1.3649503141676689E+00
+1.3625430536650920E+00
+1.3601377230635976E+00
+1.3577343242790498E+00
+1.3553328594409437E+00
+1.3529333305376228E+00
+1.3505357392315409E+00
+1.3481400871765690E+00
+1.3457463762600335E+00
+1.3433546084579031E+00
+1.3409647856117306E+00
+1.3385769094181588E+00
+1.3361909815987607E+00
+1.3338070039701921E+00
+1.3314249783585261E+00
+1.3290449065237349E+00
+1.3266667901921418E+00
+1.3242906311649545E+00
+1.3219164313481755E+00
+1.3195441926065063E+00
+1.3171739166151915E+00
+1.3148056050113621E+00
+1.3124392595413061E+00
+1.3100748820256782E+00
+1.3077124742438875E+00
+1.3053520378988139E+00
+1.3029935746882391E+00
+1.3006370863281593E+00
+1.2982825745427977E+00
+1.2959300411086403E+00
+1.2935794878481641E+00
+1.2912309164892919E+00
+1.2888843285336855E+00
+1.2865397254916802E+00
+1.2841971091707693E+00
+1.2818564814987632E+00
+1.2795178441831274E+00
+1.2771811986784836E+00
+1.2748465465050460E+00
+1.2725138894337018E+00
+1.2701832292664064E+00
+1.2678545676362820E+00
+1.2655279060827598E+00
+1.2632032462483858E+00
+1.2608805899303608E+00
+1.2585599388669659E+00
+1.2562412944997541E+00
+1.2539246582141341E+00
+1.2516100317034862E+00
+1.2492974168846545E+00
+1.2469868154635440E+00
+1.2446782287307017E+00
+1.2423716580041406E+00
+1.2400671050260181E+00
+1.2377645716740597E+00
+1.2354640595752011E+00
+1.2331655701193298E+00
+1.2308691047745339E+00
+1.2285746652315617E+00
+1.2262822531814410E+00
+1.2239918700573587E+00
+1.2217035171799635E+00
+1.2194171960999289E+00
+1.2171329086493288E+00
+1.2148506565372121E+00
+1.2125704410037730E+00
+1.2102922632276698E+00
+1.2080161247858534E+00
+1.2057420274922597E+00
+1.2034699730121703E+00
+1.2011999627716503E+00
+1.1989319981786823E+00
+1.1966660806578200E+00
+1.1944022116417061E+00
+1.1921403926254872E+00
+1.1898806251524032E+00
+1.1876229107005538E+00
+1.1853672506124833E+00
+1.1831136462530338E+00
+1.1808620992272771E+00
+1.1786126112190745E+00
+1.1763651836667992E+00
+1.1741198177618861E+00
+1.1718765147682355E+00
+1.1696352761771305E+00
+1.1673961035141234E+00
+1.1651589982788273E+00
+1.1629239619545360E+00
+1.1606909959052791E+00
+1.1584601013407256E+00
+1.1562312795368026E+00
+1.1540045320481915E+00
+1.1517798604692988E+00
+1.1495572661357787E+00
+1.1473367502183998E+00
+1.1451183139987089E+00
+1.1429019589498650E+00
+1.1406876865355884E+00
+1.1384754980887060E+00
+1.1362653949041488E+00
+1.1340573783153676E+00
+1.1318514496874221E+00
+1.1296476103545527E+00
+1.1274458615824110E+00
+1.1252462046332341E+00
+1.1230486408117342E+00
+1.1208531714411238E+00
+1.1186597979000377E+00
+1.1164685216263597E+00
+1.1142793439773280E+00
+1.1120922660697037E+00
+1.1099072889956061E+00
+1.1077244140222839E+00
+1.1055436425082403E+00
+1.1033649757998192E+00
+1.1011884152258407E+00
+1.0990139620669621E+00
+1.0968416174252638E+00
+1.0946713823777208E+00
+1.0925032582400069E+00
+1.0903372464888634E+00
+1.0881733484417371E+00
+1.0860115651256124E+00
+1.0838518975813891E+00
+1.0816943470839735E+00
+1.0795389149783157E+00
+1.0773856025174178E+00
+1.0752344108728833E+00
+1.0730853412055976E+00
+1.0709383946594055E+00
+1.0687935723824904E+00
+1.0666508755768513E+00
+1.0645103054649043E+00
+1.0623718632099073E+00
+1.0602355499078335E+00
+1.0581013666600445E+00
+1.0559693145985323E+00
+1.0538393948681788E+00
+1.0517116086895348E+00
+1.0495859573230863E+00
+1.0474624419234513E+00
+1.0453410634893241E+00
+1.0432218230377450E+00
+1.0411047217176981E+00
+1.0389897607059142E+00
+1.0368769411002337E+00
+1.0347662639409341E+00
+1.0326577302898596E+00
+1.0305513412537393E+00
+1.0284470979355194E+00
+1.0263450013937772E+00
+1.0242450526730364E+00
+1.0221472528615083E+00
+1.0200516030882629E+00
+1.0179581044308617E+00
+1.0158667578352827E+00
+1.0137775642456222E+00
+1.0116905247532348E+00
+1.0096056405140998E+00
+1.0075229126118410E+00
+1.0054423420422223E+00
+1.0033639297829615E+00
+1.0012876767720638E+00
+9.9921358394412818E-01
+9.9714165229526974E-01
+9.9507188285794768E-01
+9.9300427666986768E-01
+9.9093883477689670E-01
+9.8887555819865103E-01
+9.8681444783838890E-01
+9.8475550457266492E-01
+9.8269872937939862E-01
+9.8064412331432826E-01
+9.7859168737181568E-01
+9.7654142241796382E-01
+9.7449332931754773E-01
+9.7244740902759041E-01
+9.7040366253685162E-01
+9.6836209079410551E-01
+9.6632269470807242E-01
+9.6428547518066121E-01
+9.6225043310237612E-01
+9.6021756936406266E-01
+9.5818688488321635E-01
+9.5615838058890545E-01
+9.5413205738018025E-01
+9.5210791611765810E-01
+9.5008595766478598E-01
+9.4806618290763867E-01
+9.4604859273242448E-01
+9.4403318798018632E-01
+9.4201996946299915E-01
+9.4000893801662899E-01
+9.3800009451819355E-01
+9.3599343984454475E-01
+9.3398897485719556E-01
+9.3198670040934117E-01
+9.2998661730750487E-01
+9.2798872631956686E-01
+9.2599302823205931E-01
+9.2399952387644269E-01
+9.2200821408740830E-01
+9.2001909968891937E-01
+9.1803218149774113E-01
+9.1604746027615713E-01
+9.1406493672865030E-01
+9.1208461159594389E-01
+9.1010648573395425E-01
+9.0813056000370873E-01
+9.0615683513783429E-01
+9.0418531180264039E-01
+9.0221599072883008E-01
+9.0024887273692222E-01
+8.9828395862436783E-01
+8.9632124907863431E-01
+8.9436074476380656E-01
+8.9240244639536526E-01
+8.9044635472315037E-01
+8.8849247049045443E-01
+8.8654079442886313E-01
+8.8459132726407164E-01
+8.8264406970316667E-01
+8.8069902244409959E-01
+8.7875618614482598E-01
+8.7681556142811112E-01
+8.7487714894980984E-01
+8.7294094944776057E-01
+8.7100696365590891E-01
+8.6907519220731466E-01
+8.6714563569270031E-01
+8.6521829474595813E-01
+8.6329317005022943E-01
+8.6137026227961921E-01
+8.5944957207514427E-01
+8.5753110006970223E-01
+8.5561484689024669E-01
+8.5370081315953006E-01
+8.5178899949044973E-01
+8.4987940648225313E-01
+8.4797203473068983E-01
+8.4606688482610493E-01
+8.4416395735802341E-01
+8.4226325293871407E-01
+8.4036477219625028E-01
+8.3846851573423686E-01
+8.3657448411045954E-01
+8.3468267787027184E-01
+8.3279309752506392E-01
+8.3090574357756397E-01
+8.2902061661360482E-01
+8.2713771729639418E-01
+8.2525704622854179E-01
+8.2337860385622264E-01
+8.2150239061683927E-01
+8.1962840707169493E-01
+8.1775665383545915E-01
+8.1588713145070269E-01
+8.1401984037312780E-01
+8.1215478106318117E-01
+8.1029195401781873E-01
+8.0843135974199976E-01
+8.0657299875757416E-01
+8.0471687159525462E-01
+8.0286297875282919E-01
+8.0101132067748559E-01
+7.9916189781223801E-01
+7.9731471060627235E-01
+7.9546975951060139E-01
+7.9362704499472769E-01
+7.9178656754189358E-01
+7.8994832761488021E-01
+7.8811232563586608E-01
+7.8627856202229685E-01
+7.8444703720009745E-01
+7.8261775159723834E-01
+7.8079070564003006E-01
+7.7896589975312269E-01
+7.7714333435545102E-01
+7.7532300985358005E-01
+7.7350492664798531E-01
+7.7168908511632517E-01
+7.6987548562484209E-01
+7.6806412856007289E-01
+7.6625501433515431E-01
+7.6444814334867262E-01
+7.6264351594527147E-01
+7.6084113245937213E-01
+7.5904099325943608E-01
+7.5724309873450635E-01
+7.5544744924742591E-01
+7.5365404511806600E-01
+7.5186288666336520E-01
+7.5007397421158128E-01
+7.4828730809278798E-01
+7.4650288863060110E-01
+7.4472071614302260E-01
+7.4294079095075372E-01
+7.4116311338267182E-01
+7.3938768376166675E-01
+7.3761450237352066E-01
+7.3584356948830876E-01
+7.3407488537599119E-01
+7.3230845030654712E-01
+7.3054426455731680E-01
+7.2878232842983948E-01
+7.2702264222410973E-01
+7.2526520619994628E-01
+7.2351002059551928E-01
+7.2175708565161689E-01
+7.2000640161349694E-01
+7.1825796872797332E-01
+7.1651178725126530E-01
+7.1476785743682159E-01
+7.1302617949152125E-01
+7.1128675359056570E-01
+7.0954957994023338E-01
+7.0781465880432182E-01
+7.0608199043564734E-01
+7.0435157500720669E-01
+7.0262341266725825E-01
+7.0089750359913405E-01
+6.9917384801648719E-01
+6.9745244611268253E-01
+6.9573329803401118E-01
+6.9401640392879382E-01
+6.9230176401485910E-01
+6.9058937853561286E-01
+6.8887924765334496E-01
+6.8717137143918305E-01
+6.8546574997696064E-01
+6.8376238340817286E-01
+6.8206127188477517E-01
+6.8036241556614918E-01
+6.7866581461456088E-01
+6.7697146917037709E-01
+6.7527937934291415E-01
+6.7358954523576819E-01
+6.7190196694446891E-01
+6.7021664456055574E-01
+6.6853357816702663E-01
+6.6685276784036751E-01
+6.6517421367336405E-01
+6.6349791579153428E-01
+6.6182387430857714E-01
+6.6015208926049995E-01
+6.5848256065793265E-01
+6.5681528856038751E-01
+6.5515027307258866E-01
+6.5348751427517804E-01
+6.5182701218746419E-01
+6.5016876682326208E-01
+6.4851277823567399E-01
+6.4685904649359149E-01
+6.4520757163415177E-01
+6.4355835365672720E-01
+6.4191139255805518E-01
+6.4026668833769340E-01
+6.3862424099646697E-01
+6.3698405055661911E-01
+6.3534611705183897E-01
+6.3371044049006697E-01
+6.3207702084013206E-01
+6.3044585806817766E-01
+6.2881695214936306E-01
+6.2719030305983015E-01
+6.2556591077293355E-01
+6.2394377525939382E-01
+6.2232389648463193E-01
+6.2070627440542681E-01
+6.1909090896949348E-01
+6.1747780008548603E-01
+6.1586694764936156E-01
+6.1425835162103903E-01
+6.1265201202355346E-01
+6.1104792883524028E-01
+6.0944610191163107E-01
+6.0784653109406772E-01
+6.0624921628394846E-01
+6.0465415741052597E-01
+6.0306135439679853E-01
+6.0147080715809320E-01
+5.9988251559643957E-01
+5.9829647957332821E-01
+5.9671269894168022E-01
+5.9513117357479084E-01
+5.9355190335805375E-01
+5.9197488817664878E-01
+5.9040012791637375E-01
+5.8882762245325027E-01
+5.8725737162348546E-01
+5.8568937525067410E-01
+5.8412363316644100E-01
+5.8256014520856059E-01
+5.8099891120716640E-01
+5.7943993097782132E-01
+5.7788320433850537E-01
+5.7632873114418837E-01
+5.7477651126090124E-01
+5.7322654449645349E-01
+5.7167883059753644E-01
+5.7013336933220404E-01
+5.6859016054118949E-01
+5.6704920406706327E-01
+5.6551049966918288E-01
+5.6397404706396392E-01
+5.6243984600959029E-01
+5.6090789632217997E-01
+5.5937819780226383E-01
+5.5785075018079922E-01
+5.5632555317481025E-01
+5.5480260655064084E-01
+5.5328191010683847E-01
+5.5176346362111783E-01
+5.5024726683497394E-01
+5.4873331947561732E-01
+5.4722162122391316E-01
+5.4571217174795783E-01
+5.4420497077511787E-01
+5.4270001808379398E-01
+5.4119731342317468E-01
+5.3969685647378463E-01
+5.3819864690388919E-01
+5.3670268437428215E-01
+5.3520896854356204E-01
+5.3371749913067013E-01
+5.3222827592229716E-01
+5.3074129865556052E-01
+5.2925656690945411E-01
+5.2777408024337802E-01
+5.2629383833024113E-01
+5.2481584090356326E-01
+5.2334008764841289E-01
+5.2186657817979065E-01
+5.2039531211937684E-01
+5.1892628914434757E-01
+5.1745950893937775E-01
+5.1599497111939407E-01
+5.1453267524909574E-01
+5.1307262091982153E-01
+5.1161480777685397E-01
+5.1015923546446640E-01
+5.0870590359725021E-01
+5.0725481177756315E-01
+5.0580595959163643E-01
+5.0435934661068293E-01
+5.0291497241640204E-01
+5.0147283662075670E-01
+5.0003293883239264E-01
+4.9859527861295266E-01
+4.9715985550209524E-01
+4.9572666904902984E-01
+4.9429571881488593E-01
+4.9286700437272407E-01
+4.9144052533694643E-01
+4.9001628131790992E-01
+4.8859427181341397E-01
+4.8717449625523801E-01
+4.8575695413307762E-01
+4.8434164502833027E-01
+4.8292856851981408E-01
+4.8151772414742439E-01
+4.8010911143707619E-01
+4.7870272988700152E-01
+4.7729857897390843E-01
+4.7589665818288551E-01
+4.7449696701908767E-01
+4.7309950498876080E-01
+4.7170427159980721E-01
+4.7031126635801696E-01
+4.6892048873792086E-01
+4.6753193818330852E-01
+4.6614561414102484E-01
+4.6476151607285443E-01
+4.6337964344562210E-01
+4.6199999575984485E-01
+4.6062257252931216E-01
+4.5924737320089232E-01
+4.5787439713710459E-01
+4.5650364371981084E-01
+4.5513511242312205E-01
+4.5376880273429460E-01
+4.5240471407867566E-01
+4.5104284584230175E-01
+4.4968319743023211E-01
+4.4832576828114429E-01
+4.4697055782933226E-01
+4.4561756548114645E-01
+4.4426679063276986E-01
+4.4291823267237013E-01
+4.4157189098114064E-01
+4.4022776493138210E-01
+4.3888585387924356E-01
+4.3754615718693218E-01
+4.3620867427862037E-01
+4.3487340459814422E-01
+4.3354034750870729E-01
+4.3220950228927946E-01
+4.3088086824794763E-01
+4.2955444479021659E-01
+4.2823023132764210E-01
+4.2690822719011096E-01
+4.2558843166498589E-01
+4.2427084405817045E-01
+4.2295546370184156E-01
+4.2164228993228625E-01
+4.2033132210003193E-01
+4.1902255955501561E-01
+4.1771600161817424E-01
+4.1641164759012977E-01
+4.1510949675315911E-01
+4.1380954835975547E-01
+4.1251180167387846E-01
+4.1121625604095335E-01
+4.0992291082628540E-01
+4.0863176531748391E-01
+4.0734281873484884E-01
+4.0605607030553226E-01
+4.0477151928032468E-01
+4.0348916491950071E-01
+4.0220900653703195E-01
+4.0093104346504532E-01
+3.9965527495086306E-01
+3.9838170014767671E-01
+3.9711031824949894E-01
+3.9584112859340426E-01
+3.9457413052352858E-01
+3.9330932321218631E-01
+3.9204670573869482E-01
+3.9078627728557508E-01
+3.8952803718606954E-01
+3.8827198475293012E-01
+3.8701811917499590E-01
+3.8576643960943791E-01
+3.8451694523050300E-01
+3.8326963522402202E-01
+3.8202450878745897E-01
+3.8078156514151040E-01
+3.7954080349538288E-01
+3.7830222299110272E-01
+3.7706582274998224E-01
+3.7583160196167026E-01
+3.7459955987826277E-01
+3.7336969571224354E-01
+3.7214200857657009E-01
+3.7091649757084705E-01
+3.6969316181911649E-01
+3.6847200045620798E-01
+3.6725301265276200E-01
+3.6603619762216749E-01
+3.6482155454145099E-01
+3.6360908246628243E-01
+3.6239878043794849E-01
+3.6119064761922404E-01
+3.5998468324133831E-01
+3.5878088644640510E-01
+3.5757925623997405E-01
+3.5637979164454409E-01
+3.5518249181379674E-01
+3.5398735592996461E-01
+3.5279438309448868E-01
+3.5160357234720740E-01
+3.5041492274264319E-01
+3.4922843336991249E-01
+3.4804410332124280E-01
+3.4686193169301610E-01
+3.4568191757938493E-01
+3.4450406002343048E-01
+3.4332835801836453E-01
+3.4215481059731179E-01
+3.4098341690714495E-01
+3.3981417609607439E-01
+3.3864708718990494E-01
+3.3748214915543617E-01
+3.3631936098234588E-01
+3.3515872169022670E-01
+3.3400023030891779E-01
+3.3284388590283071E-01
+3.3168968753831024E-01
+3.3053763423809418E-01
+3.2938772499693281E-01
+3.2823995881226731E-01
+3.2709433468809912E-01
+3.2595085162814641E-01
+3.2480950863988134E-01
+3.2367030472840774E-01
+3.2253323886848601E-01
+3.2139831001010860E-01
+3.2026551712815554E-01
+3.1913485925462937E-01
+3.1800633541487444E-01
+3.1687994455715929E-01
+3.1575568559924094E-01
+3.1463355747842991E-01
+3.1351355915253776E-01
+3.1239568958594555E-01
+3.1127994776291684E-01
+3.1016633266367538E-01
+3.0905484321877813E-01
+3.0794547833284097E-01
+3.0683823693228524E-01
+3.0573311797389385E-01
+3.0463012040417797E-01
+3.0352924312932605E-01
+3.0243048504703707E-01
+3.0133384508685507E-01
+3.0023932219831195E-01
+2.9914691530241599E-01
+2.9805662327166399E-01
+2.9696844497613067E-01
+2.9588237930686406E-01
+2.9479842516102295E-01
+2.9371658145529062E-01
+2.9263684712262977E-01
+2.9155922106655902E-01
+2.9048370212533758E-01
+2.8941028912912675E-01
+2.8833898092646332E-01
+2.8726977637330042E-01
+2.8620267435762109E-01
+2.8513767380304078E-01
+2.8407477360617078E-01
+2.8301397258131311E-01
+2.8195526953099320E-01
+2.8089866330810737E-01
+2.7984415279085256E-01
+2.7879173680766900E-01
+2.7774141411656472E-01
+2.7669318349838523E-01
+2.7564704385437055E-01
+2.7460299410636368E-01
+2.7356103307035967E-01
+2.7252115948722250E-01
+2.7148337213573792E-01
+2.7044766987007096E-01
+2.6941405153648723E-01
+2.6838251590386014E-01
+2.6735306171626089E-01
+2.6632568777121535E-01
+2.6530039291474194E-01
+2.6427717596123296E-01
+2.6325603564711525E-01
+2.6223697070749385E-01
+2.6121997996603652E-01
+2.6020506228095192E-01
+2.5919221640131929E-01
+2.5818144094801815E-01
+2.5717273459140794E-01
+2.5616609619056890E-01
+2.5516152463139641E-01
+2.5415901870394125E-01
+2.5315857714097734E-01
+2.5216019863792360E-01
+2.5116388183569588E-01
+2.5016962539878224E-01
+2.4917742812082624E-01
+2.4818728882253227E-01
+2.4719920623551772E-01
+2.4621317902401238E-01
+2.4522920588385519E-01
+2.4424728557914441E-01
+2.4326741687028605E-01
+2.4228959845995363E-01
+2.4131382902858114E-01
+2.4034010725738553E-01
+2.3936843182830572E-01
+2.3839880142432132E-01
+2.3743121473484308E-01
+2.3646567045012390E-01
+2.3550216727309944E-01
+2.3454070391059983E-01
+2.3358127903815151E-01
+2.3262389129265396E-01
+2.3166853932247167E-01
+2.3071522182985554E-01
+2.2976393752156535E-01
+2.2881468504483285E-01
+2.2786746300950206E-01
+2.2692227005069160E-01
+2.2597910484694730E-01
+2.2503796607065829E-01
+2.2409885235532190E-01
+2.2316176232095425E-01
+2.2222669457852298E-01
+2.2129364773142318E-01
+2.2036262041097998E-01
+2.1943361131073941E-01
+2.1850661911530506E-01
+2.1758164241507735E-01
+2.1665867976458678E-01
+2.1573772976471392E-01
+2.1481879106437049E-01
+2.1390186229405947E-01
+2.1298694203093374E-01
+2.1207402884239168E-01
+2.1116312130683057E-01
+2.1025421800771918E-01
+2.0934731755741695E-01
+2.0844241860758325E-01
+2.0753951978052776E-01
+2.0663861958543664E-01
+2.0573971651141873E-01
+2.0484280914332922E-01
+2.0394789612784681E-01
+2.0305497607285319E-01
+2.0216404751899633E-01
+2.0127510899665296E-01
+2.0038815902725032E-01
+1.9950319613168474E-01
+1.9862021889888462E-01
+1.9773922597512728E-01
+1.9686021594149866E-01
+1.9598318723051911E-01
+1.9510813827070186E-01
+1.9423506761356274E-01
+1.9336397385902004E-01
+1.9249485558174290E-01
+1.9162771132869891E-01
+1.9076253962469800E-01
+1.8989933893724681E-01
+1.8903810772894331E-01
+1.8817884453251943E-01
+1.8732154791636690E-01
+1.8646621639385016E-01
+1.8561284840072084E-01
+1.8476144239036982E-01
+1.8391199691724505E-01
+1.8306451055193027E-01
+1.8221898176837176E-01
+1.8137540897236301E-01
+1.8053379061722805E-01
+1.7969412524867609E-01
+1.7885641140545183E-01
+1.7802064754518515E-01
+1.7718683209763003E-01
+1.7635496350741353E-01
+1.7552504023248647E-01
+1.7469706074395566E-01
+1.7387102354699116E-01
+1.7304692714007866E-01
+1.7222476994971617E-01
+1.7140455037008825E-01
+1.7058626682017411E-01
+1.6976991774856906E-01
+1.6895550161062187E-01
+1.6814301688312078E-01
+1.6733246204064300E-01
+1.6652383551040653E-01
+1.6571713569122162E-01
+1.6491236097927628E-01
+1.6410950976858790E-01
+1.6330858046874902E-01
+1.6250957156449025E-01
+1.6171248155198215E-01
+1.6091730882651428E-01
+1.6012405170757779E-01
+1.5933270855099277E-01
+1.5854327779012031E-01
+1.5775575786271875E-01
+1.5697014719013155E-01
+1.5618644418416314E-01
+1.5540464721018560E-01
+1.5462475458874844E-01
+1.5384676467876066E-01
+1.5307067594698009E-01
+1.5229648685971467E-01
+1.5152419575893236E-01
+1.5075380092847138E-01
+1.4998530071537891E-01
+1.4921869354647327E-01
+1.4845397783074432E-01
+1.4769115190430945E-01
+1.4693021408805149E-01
+1.4617116272718539E-01
+1.4541399618118808E-01
+1.4465871282676943E-01
+1.4390531106959664E-01
+1.4315378929368008E-01
+1.4240414577927576E-01
+1.4165637878052201E-01
+1.4091048663741212E-01
+1.4016646775759029E-01
+1.3942432051434192E-01
+1.3868404320741953E-01
+1.3794563412968422E-01
+1.3720909160036585E-01
+1.3647441394678822E-01
+1.3574159948399020E-01
+1.3501064651445516E-01
+1.3428155335434039E-01
+1.3355431836353340E-01
+1.3282893989626443E-01
+1.3210541621056149E-01
+1.3138374551687088E-01
+1.3066392611074479E-01
+1.2994595640188758E-01
+1.2922983476221114E-01
+1.2851555940113954E-01
+1.2780312849815137E-01
+1.2709254034412115E-01
+1.2638379330149008E-01
+1.2567688568497581E-01
+1.2497181572688372E-01
+1.2426858166609302E-01
+1.2356718182327177E-01
+1.2286761453772892E-01
+1.2216987806176155E-01
+1.2147397057373567E-01
+1.2077989029745841E-01
+1.2008763556717904E-01
+1.1939720471341872E-01
+1.1870859595325420E-01
+1.1802180745816337E-01
+1.1733683746294024E-01
+1.1665368427197689E-01
+1.1597234617553483E-01
+1.1529282141604186E-01
+1.1461510822182182E-01
+1.1393920478960710E-01
+1.1326510929909163E-01
+1.1259281998133824E-01
+1.1192233514120779E-01
+1.1125365307020971E-01
+1.1058677199153480E-01
+1.0992169010850526E-01
+1.0925840560903841E-01
+1.0859691666973094E-01
+1.0793722148646051E-01
+1.0727931829294564E-01
+1.0662320532346217E-01
+1.0596888080330967E-01
+1.0531634295265860E-01
+1.0466558998058130E-01
+1.0401662008585630E-01
+1.0336943145514529E-01
+1.0272402225028590E-01
+1.0208039063405916E-01
+1.0143853481572726E-01
+1.0079845302276071E-01
+1.0016014345788538E-01
+9.9523604295352980E-02
+9.8888833705429960E-02
+9.8255829855973600E-02
+9.7624590915914633E-02
+9.6995115087685865E-02
+9.6367400590945979E-02
+9.5741445593781949E-02
+9.5117248187656267E-02
+9.4494806478034474E-02
+9.3874118664622211E-02
+9.3255182968597056E-02
+9.2637997583717241E-02
+9.2022560682499935E-02
+9.1408870410680881E-02
+9.0796924864923523E-02
+9.0186722145415357E-02
+8.9578260415676958E-02
+8.8971537858504687E-02
+8.8366552620798788E-02
+8.7763302814920827E-02
+8.7161786572745703E-02
+8.6562002083695994E-02
+8.5963947534254237E-02
+8.5367621031173430E-02
+8.4773020643225311E-02
+8.4180144462743481E-02
+8.3588990612111710E-02
+8.2999557222076220E-02
+8.2411842451259987E-02
+8.1825844459989736E-02
+8.1241561381739893E-02
+8.0658991332301852E-02
+8.0078132406882857E-02
+7.9498982669603716E-02
+7.8921540189361580E-02
+7.8345803077929418E-02
+7.7771769457583115E-02
+7.7199437449125621E-02
+7.6628805171607015E-02
+7.6059870732240839E-02
+7.5492632216250091E-02
+7.4927087708431400E-02
+7.4363235319203191E-02
+7.3801073164991918E-02
+7.3240599308087476E-02
+7.2681811755575587E-02
+7.2124708548575056E-02
+7.1569287833010697E-02
+7.1015547763560782E-02
+7.0463486433149758E-02
+6.9913101902331409E-02
+6.9364392221089213E-02
+6.8817355426585056E-02
+6.8271989567393235E-02
+6.7728292743412424E-02
+6.7186263060592319E-02
+6.6645898577996410E-02
+6.6107197323295799E-02
+6.5570157325542444E-02
+6.5034776618818152E-02
+6.4501053251160206E-02
+6.3968985345615181E-02
+6.3438571040228667E-02
+6.2909808362479822E-02
+6.2382695246510189E-02
+6.1857229675145925E-02
+6.1333409749467466E-02
+6.0811233578920862E-02
+6.0290699234128317E-02
+5.9771804767236404E-02
+5.9254548196625095E-02
+5.8738927504256147E-02
+5.8224940685013653E-02
+5.7712585781969368E-02
+5.7201860844098902E-02
+5.6692763909971043E-02
+5.6185293011290473E-02
+5.5679446171651929E-02
+5.5175221404352985E-02
+5.4672616725415561E-02
+5.4171630171389505E-02
+5.3672259778537179E-02
+5.3174503536470692E-02
+5.2678359402078254E-02
+5.2183825372643010E-02
+5.1690899522278871E-02
+5.1199579917895463E-02
+5.0709864554531497E-02
+5.0221751402243567E-02
+4.9735238435926560E-02
+4.9250323634612972E-02
+4.8767004990557326E-02
+4.8285280530555440E-02
+4.7805148276613585E-02
+4.7326606193280607E-02
+4.6849652221007204E-02
+4.6374284369641354E-02
+4.5900500729781780E-02
+4.5428299346108050E-02
+4.4957678108708148E-02
+4.4488634887608236E-02
+4.4021167673939571E-02
+4.3555274526200526E-02
+4.3090953469659271E-02
+4.2628202479923098E-02
+4.2167019520572037E-02
+4.1707402528787615E-02
+4.1249349435886130E-02
+4.0792858212801930E-02
+4.0337926859086722E-02
+3.9884553370006785E-02
+3.9432735733441387E-02
+3.8982471925022626E-02
+3.8533759865719358E-02
+3.8086597458337902E-02
+3.7640982661831260E-02
+3.7196913488585018E-02
+3.6754387925498844E-02
+3.6313403892540494E-02
+3.5873959304731237E-02
+3.5436052134222053E-02
+3.4999680377370307E-02
+3.4564841991588685E-02
+3.4131534886746133E-02
+3.3699756979534951E-02
+3.3269506225283969E-02
+3.2840780584854158E-02
+3.2413578009231912E-02
+3.1987896442286758E-02
+3.1563733816879457E-02
+3.1141088049922685E-02
+3.0719957061588830E-02
+3.0300338801250409E-02
+2.9882231224184284E-02
+2.9465632273883321E-02
+2.9050539883894590E-02
+2.8636951963921475E-02
+2.8224866377273304E-02
+2.7814281000030958E-02
+2.7405193832754967E-02
+2.6997602916737366E-02
+2.6591506177502538E-02
+2.6186901423024378E-02
+2.5783786495710174E-02
+2.5382159350657747E-02
+2.4982017958026119E-02
+2.4583360268940851E-02
+2.4186184222705728E-02
+2.3790487712055941E-02
+2.3396268569563301E-02
+2.3003524649818311E-02
+2.2612253908586472E-02
+2.2222454317248366E-02
+2.1834123780081312E-02
+2.1447260157411673E-02
+2.1061861337188188E-02
+2.0677925257204063E-02
+2.0295449848368733E-02
+1.9914432992752251E-02
+1.9534872557459188E-02
+1.9156766435332730E-02
+1.8780112540320078E-02
+1.8404908771561378E-02
+1.8031152996743766E-02
+1.7658843083464198E-02
+1.7287976938306988E-02
+1.6918552481649727E-02
+1.6550567617759235E-02
+1.6184020233640246E-02
+1.5818908209887260E-02
+1.5455229415240974E-02
+1.5092981714616363E-02
+1.4732162973747468E-02
+1.4372771058284654E-02
+1.4014803860825664E-02
+1.3658259312515832E-02
+1.3303135325450036E-02
+1.2949429732360072E-02
+1.2597140349875441E-02
+1.2246265058422492E-02
+1.1896801781440636E-02
+1.1548748416393280E-02
+1.1202102814038184E-02
+1.0856862823589403E-02
+1.0513026321112871E-02
+1.0170591188290961E-02
+9.8295552757714112E-03
+9.4899164063863995E-03
+9.1516724358262965E-03
+8.8148213032259465E-03
+8.4793609396144089E-03
+8.1452891446936477E-03
+7.8126036630565467E-03
+7.4813023310524298E-03
+7.1513830911451451E-03
+6.8228438665235858E-03
+6.4956825060963185E-03
+6.1698968423593552E-03
+5.8454847064749902E-03
+5.5224439284050934E-03
+5.2007723689516498E-03
+4.8804679359156448E-03
+4.5615285145760680E-03
+4.2439518863967469E-03
+3.9277358123805490E-03
+3.6128781717850514E-03
+3.2993769295035086E-03
+2.9872299740083658E-03
+2.6764350443466401E-03
+2.3669898856853513E-03
+2.0588923840178311E-03
+1.7521404697275324E-03
+1.4467319991395846E-03
+1.1426647581957760E-03
+8.3993655192063463E-04
+5.3854524435418627E-04
+2.3848870386163689E-04
+-6.0235225602447817E-05
+-3.5762871315548055E-04
+-6.5369394665958742E-04
+-9.4843313630027190E-04
+-1.2418484660032586E-03
+-1.5339420212700616E-03
+-1.8247158806852480E-03
+-2.1141722524250775E-03
+-2.4023134227946176E-03
+-2.6891416099009916E-03
+-2.9746589207597786E-03
+-3.2588674616063876E-03
+-3.5417693721909683E-03
+-3.8233668067840076E-03
+-4.1036619734988490E-03
+-4.3826571228507494E-03
+-4.6603544699131859E-03
+-4.9367561518198939E-03
+-5.2118643070713771E-03
+-5.4856811306967105E-03
+-5.7582088384316868E-03
+-6.0294496011160286E-03
+-6.2994055442365483E-03
+-6.5680788146209928E-03
+-6.8354716187816137E-03
+-7.1015861705755468E-03
+-7.3664246473550930E-03
+-7.6299892101115135E-03
+-7.8922820409560949E-03
+-8.1533053489643084E-03
+-8.4130613405086485E-03
+-8.6715521999352167E-03
+-8.9287801076517841E-03
+-9.1847472372690499E-03
+-9.4394557590837883E-03
+-9.6929078625936898E-03
+-9.9451057682390081E-03
+-1.0196051689407144E-02
+-1.0445747782748762E-02
+-1.0694196191829687E-02
+-1.0941399104170533E-02
+-1.1187358744229383E-02
+-1.1432077325331977E-02
+-1.1675557031066819E-02
+-1.1917800044826368E-02
+-1.2158808563698805E-02
+-1.2398584791325730E-02
+-1.2637130924144951E-02
+-1.2874449150674457E-02
+-1.3110541665547277E-02
+-1.3345410678189800E-02
+-1.3579058399780122E-02
+-1.3811487018234748E-02
+-1.4042698710433349E-02
+-1.4272695661538846E-02
+-1.4501480067469912E-02
+-1.4729054132633580E-02
+-1.4955420085266300E-02
+-1.5180580156246947E-02
+-1.5404536516404428E-02
+-1.5627291296724629E-02
+-1.5848846688029390E-02
+-1.6069204988499067E-02
+-1.6288368480156433E-02
+-1.6506339293508483E-02
+-1.6723119517178458E-02
+-1.6938711350388765E-02
+-1.7153117090534766E-02
+-1.7366338998190928E-02
+-1.7578379236087429E-02
+-1.7789239959751377E-02
+-1.7998923361731776E-02
+-1.8207431652442266E-02
+-1.8414767063114058E-02
+-1.8620931848363179E-02
+-1.8825928238475894E-02
+-1.9029758379213665E-02
+-1.9232424411296273E-02
+-1.9433928570895011E-02
+-1.9634273147539825E-02
+-1.9833460359326205E-02
+-2.0031492316857847E-02
+-2.0228371162235803E-02
+-2.0424099198805050E-02
+-2.0618678762118925E-02
+-2.0812112029234508E-02
+-2.1004401062820852E-02
+-2.1195548019204782E-02
+-2.1385555237683603E-02
+-2.1574425046611063E-02
+-2.1762159587347847E-02
+-2.1948760942875737E-02
+-2.2134231308119135E-02
+-2.2318572983673575E-02
+-2.2501788232653731E-02
+-2.2683879209921674E-02
+-2.2864848068421425E-02
+-2.3044697062182325E-02
+-2.3223428490561512E-02
+-2.3401044574600193E-02
+-2.3577547439285973E-02
+-2.3752939235913234E-02
+-2.3927222218572710E-02
+-2.4100398659253001E-02
+-2.4272470774974336E-02
+-2.4443440750960149E-02
+-2.4613310793472360E-02
+-2.4782083141325548E-02
+-2.4949760024056987E-02
+-2.5116343609766882E-02
+-2.5281836055953310E-02
+-2.5446239598529524E-02
+-2.5609556534615673E-02
+-2.5771789120474824E-02
+-2.5932939522982399E-02
+-2.6093009904275835E-02
+-2.6252002454531607E-02
+-2.6409919377349184E-02
+-2.6566762914724325E-02
+-2.6722535347110495E-02
+-2.6877238924265526E-02
+-2.7030875804917438E-02
+-2.7183448141754815E-02
+-2.7334958150061490E-02
+-2.7485408076906973E-02
+-2.7634800167801635E-02
+-2.7783136665308041E-02
+-2.7930419787342932E-02
+-2.8076651658629534E-02
+-2.8221834398747814E-02
+-2.8365970291804359E-02
+-2.8509061726362184E-02
+-2.8651110969459652E-02
+-2.8792120079886335E-02
+-2.8932091135406707E-02
+-2.9071026393955816E-02
+-2.9208928165335397E-02
+-2.9345798696316705E-02
+-2.9481640181853532E-02
+-2.9616454817892813E-02
+-2.9750244803507738E-02
+-2.9883012344698236E-02
+-3.0014759679595212E-02
+-3.0145489058440330E-02
+-3.0275202680370428E-02
+-3.0403902689794735E-02
+-3.0531591264036165E-02
+-3.0658270679590593E-02
+-3.0783943222328497E-02
+-3.0908611088782300E-02
+-3.1032276430573082E-02
+-3.1154941441890932E-02
+-3.1276608375377248E-02
+-3.1397279466289951E-02
+-3.1516956860616500E-02
+-3.1635642694146031E-02
+-3.1753339226873997E-02
+-3.1870048803265515E-02
+-3.1985773685659039E-02
+-3.2100515984843217E-02
+-3.2214277820620425E-02
+-3.2327061433223891E-02
+-3.2438869098899120E-02
+-3.2549703015932845E-02
+-3.2659565314334220E-02
+-3.2768458173763039E-02
+-3.2876383892984577E-02
+-3.2983344772493380E-02
+-3.3089342994592832E-02
+-3.3194380693247635E-02
+-3.3298460032503280E-02
+-3.3401583210526865E-02
+-3.3503752441989720E-02
+-3.3604969982887339E-02
+-3.3705238093892469E-02
+-3.3804558988962764E-02
+-3.3902934856577902E-02
+-3.4000367872791704E-02
+-3.4096860194861821E-02
+-3.4192413993986953E-02
+-3.4287031499484609E-02
+-3.4380714955099353E-02
+-3.4473466576125773E-02
+-3.4565288557788953E-02
+-3.4656183098252386E-02
+-3.4746152400317733E-02
+-3.4835198668042570E-02
+-3.4923324101226651E-02
+-3.5010530900416961E-02
+-3.5096821285478974E-02
+-3.5182197494450479E-02
+-3.5266661737995905E-02
+-3.5350216153425824E-02
+-3.5432862875186155E-02
+-3.5514604090383241E-02
+-3.5595442011998511E-02
+-3.5675378877579662E-02
+-3.5754416953790377E-02
+-3.5832558475737693E-02
+-3.5909805563174746E-02
+-3.5986160322953278E-02
+-3.6061624963010831E-02
+-3.6136201751986792E-02
+-3.6209892931738118E-02
+-3.6282700699789582E-02
+-3.6354627236369542E-02
+-3.6425674655488065E-02
+-3.6495845061675407E-02
+-3.6565140674344430E-02
+-3.6633563801867219E-02
+-3.6701116704259261E-02
+-3.6767801536153201E-02
+-3.6833620440603579E-02
+-3.6898575559462507E-02
+-3.6962669037933875E-02
+-3.7025903080941648E-02
+-3.7088279952946161E-02
+-3.7149801887883159E-02
+-3.7210471027583236E-02
+-3.7270289507249421E-02
+-3.7329259521017857E-02
+-3.7387383292027898E-02
+-3.7444663014338846E-02
+-3.7501100843742682E-02
+-3.7556698935397453E-02
+-3.7611459446474996E-02
+-3.7665384542461607E-02
+-3.7718476462617369E-02
+-3.7770737492515936E-02
+-3.7822169818802119E-02
+-3.7872775460563696E-02
+-3.7922556470237560E-02
+-3.7971515129414248E-02
+-3.8019653780323605E-02
+-3.8066974612955579E-02
+-3.8113479692560182E-02
+-3.8159171128304976E-02
+-3.8204051130893459E-02
+-3.8248121920476205E-02
+-3.8291385682603360E-02
+-3.8333844589546306E-02
+-3.8375500796048775E-02
+-3.8416356438164448E-02
+-3.8456413656410761E-02
+-3.8495674603294706E-02
+-3.8534141441442564E-02
+-3.8571816391494283E-02
+-3.8608701703615585E-02
+-3.8644799555912546E-02
+-3.8680112026638763E-02
+-3.8714641213560115E-02
+-3.8748389312033636E-02
+-3.8781358538140950E-02
+-3.8813551057711844E-02
+-3.8844969003302268E-02
+-3.8875614522712626E-02
+-3.8905489790515203E-02
+-3.8934596981167947E-02
+-3.8962938247198479E-02
+-3.8990515735221436E-02
+-3.9017331589833115E-02
+-3.9043387954139128E-02
+-3.9068686981368908E-02
+-3.9093230845990146E-02
+-3.9117021720171917E-02
+-3.9140061729354657E-02
+-3.9162352981833883E-02
+-3.9183897633735698E-02
+-3.9204697895043050E-02
+-3.9224755957016119E-02
+-3.9244073940515996E-02
+-3.9262653954586738E-02
+-3.9280498111607727E-02
+-3.9297608527233158E-02
+-3.9313987348193614E-02
+-3.9329636765679847E-02
+-3.9344558967010064E-02
+-3.9358756103562792E-02
+-3.9372230315493820E-02
+-3.9384983698575807E-02
+-3.9397018317475344E-02
+-3.9408336284275876E-02
+-3.9418939800731467E-02
+-3.9428831067497179E-02
+-3.9438012216126146E-02
+-3.9446485355146735E-02
+-3.9454252584357349E-02
+-3.9461315995649199E-02
+-3.9467677713256530E-02
+-3.9473339940069373E-02
+-3.9478304875240136E-02
+-3.9482574589161011E-02
+-3.9486151097758763E-02
+-3.9489036516901908E-02
+-3.9491233082585619E-02
+-3.9492742989435087E-02
+-3.9493568267644864E-02
+-3.9493710928655307E-02
+-3.9493173128498683E-02
+-3.9491957108200575E-02
+-3.9490065016709611E-02
+-3.9487498856992223E-02
+-3.9484260657020202E-02
+-3.9480352605688523E-02
+-3.9475776928750005E-02
+-3.9470535719051736E-02
+-3.9464630968197828E-02
+-3.9458064739529480E-02
+-3.9450839245209000E-02
+-3.9442956690853112E-02
+-3.9434419128021765E-02
+-3.9425228556056201E-02
+-3.9415387052699841E-02
+-3.9404896773549816E-02
+-3.9393759864563505E-02
+-3.9381978434192326E-02
+-3.9369554584972655E-02
+-3.9356490410932574E-02
+-3.9342788002526538E-02
+-3.9328449437346855E-02
+-3.9313476776058141E-02
+-3.9297872097599398E-02
+-3.9281637545468852E-02
+-3.9264775271026058E-02
+-3.9247287338089021E-02
+-3.9229175756561666E-02
+-3.9210442594437338E-02
+-3.9191090016288066E-02
+-3.9171120170714516E-02
+-3.9150535081071296E-02
+-3.9129336740096152E-02
+-3.9107527229639311E-02
+-3.9085108704564948E-02
+-3.9062083277280876E-02
+-3.9038452961648012E-02
+-3.9014219776384675E-02
+-3.8989385845698714E-02
+-3.8963953333164623E-02
+-3.8937924319189195E-02
+-3.8911300796222383E-02
+-3.8884084786881878E-02
+-3.8856278408943970E-02
+-3.8827883788991512E-02
+-3.8798902971555874E-02
+-3.8769337960245370E-02
+-3.8739190792156007E-02
+-3.8708463549874103E-02
+-3.8677158315509781E-02
+-3.8645277152399314E-02
+-3.8612822122184996E-02
+-3.8579795305880932E-02
+-3.8546198797535382E-02
+-3.8512034640307065E-02
+-3.8477304785663739E-02
+-3.8442011206979036E-02
+-3.8406156031284527E-02
+-3.8369741429504889E-02
+-3.8332769460440133E-02
+-3.8295242085580314E-02
+-3.8257161301090040E-02
+-3.8218529188764484E-02
+-3.8179347830850939E-02
+-3.8139619220704787E-02
+-3.8099345318454637E-02
+-3.8058528180362552E-02
+-3.8017169970570842E-02
+-3.7975272802967606E-02
+-3.7932838616630112E-02
+-3.7889869328499956E-02
+-3.7846366950882109E-02
+-3.7802333549753160E-02
+-3.7757771202280896E-02
+-3.7712682000291181E-02
+-3.7667068004127058E-02
+-3.7620931135756014E-02
+-3.7574273294240262E-02
+-3.7527096532301095E-02
+-3.7479403012612489E-02
+-3.7431194811024193E-02
+-3.7382473833608557E-02
+-3.7333241992651173E-02
+-3.7283501331540438E-02
+-3.7233253936424945E-02
+-3.7182501831887878E-02
+-3.7131246985608476E-02
+-3.7079491389921330E-02
+-3.7027237101181262E-02
+-3.6974486174482048E-02
+-3.6921240573970858E-02
+-3.6867502224979636E-02
+-3.6813273097277985E-02
+-3.6758555213671169E-02
+-3.6703350597671235E-02
+-3.6647661261356657E-02
+-3.6591489212495817E-02
+-3.6534836426516275E-02
+-3.6477704860743913E-02
+-3.6420096491481160E-02
+-3.6362013323867716E-02
+-3.6303457364330778E-02
+-3.6244430609072696E-02
+-3.6184935050782352E-02
+-3.6124972655615435E-02
+-3.6064545369912326E-02
+-3.6003655152156408E-02
+-3.5942303984727378E-02
+-3.5880493855356195E-02
+-3.5818226759562831E-02
+-3.5755504694349502E-02
+-3.5692329604299293E-02
+-3.5628703382382193E-02
+-3.5564627956725041E-02
+-3.5500105351937164E-02
+-3.5435137601744791E-02
+-3.5369726676670453E-02
+-3.5303874517496239E-02
+-3.5237583062741724E-02
+-3.5170854247868699E-02
+-3.5103690007088635E-02
+-3.5036092267250941E-02
+-3.4968062959364540E-02
+-3.4899604067019009E-02
+-3.4830717606725188E-02
+-3.4761405544620233E-02
+-3.4691669761982624E-02
+-3.4621512154131145E-02
+-3.4550934714958174E-02
+-3.4479939461441143E-02
+-3.4408528296211466E-02
+-3.4336703029534489E-02
+-3.4264465539443956E-02
+-3.4191817853831401E-02
+-3.4118762004603356E-02
+-3.4045299918205318E-02
+-3.3971433480089207E-02
+-3.3897164561833955E-02
+-3.3822495020538496E-02
+-3.3747426759003149E-02
+-3.3671961809038295E-02
+-3.3596102208140563E-02
+-3.3519849835487968E-02
+-3.3443206490981557E-02
+-3.3366174040024552E-02
+-3.3288754437127394E-02
+-3.3210949629700573E-02
+-3.3132761510363894E-02
+-3.3054191961084327E-02
+-3.2975242879332303E-02
+-3.2895916173565763E-02
+-3.2816213762232940E-02
+-3.2736137579864523E-02
+-3.2655689548083691E-02
+-3.2574871509255067E-02
+-3.2493685285072120E-02
+-3.2412132759662211E-02
+-3.2330215871362186E-02
+-3.2247936545691816E-02
+-3.2165296672705068E-02
+-3.2082298135120847E-02
+-3.1998942792008378E-02
+-3.1915232493964447E-02
+-3.1831169109505265E-02
+-3.1746754527020436E-02
+-3.1661990633828151E-02
+-3.1576879307978305E-02
+-3.1491422427190024E-02
+-3.1405621872679854E-02
+-3.1319479527380144E-02
+-3.1232997231980961E-02
+-3.1146176765572218E-02
+-3.1059019934953021E-02
+-3.0971528675100200E-02
+-3.0883704947560285E-02
+-3.0795550619955106E-02
+-3.0707067493490947E-02
+-3.0618257389129978E-02
+-3.0529122166348198E-02
+-3.0439663681458649E-02
+-3.0349883744775531E-02
+-3.0259784154758045E-02
+-3.0169366767201240E-02
+-3.0078633490751780E-02
+-2.9987586199748558E-02
+-2.9896226677297175E-02
+-2.9804556702902604E-02
+-2.9712578123800262E-02
+-2.9620292816921950E-02
+-2.9527702613364838E-02
+-2.9434809289328762E-02
+-2.9341614644045035E-02
+-2.9248120559388701E-02
+-2.9154328924328447E-02
+-2.9060241517731383E-02
+-2.8965860055811265E-02
+-2.8871186332115426E-02
+-2.8776222259551103E-02
+-2.8680969726604895E-02
+-2.8585430466464824E-02
+-2.8489606178492496E-02
+-2.8393498674255259E-02
+-2.8297109850551845E-02
+-2.8200441558190396E-02
+-2.8103495550318137E-02
+-2.8006273573554400E-02
+-2.7908777398741088E-02
+-2.7811008807814810E-02
+-2.7712969615359503E-02
+-2.7614661667913622E-02
+-2.7516086777193634E-02
+-2.7417246657594395E-02
+-2.7318143020098825E-02
+-2.7218777667173032E-02
+-2.7119152444946053E-02
+-2.7019269168024124E-02
+-2.6919129610428357E-02
+-2.6818735534856718E-02
+-2.6718088670364532E-02
+-2.6617190742279181E-02
+-2.6516043506072111E-02
+-2.6414648736383998E-02
+-2.6313008197183761E-02
+-2.6211123633648074E-02
+-2.6108996803128909E-02
+-2.6006629523844815E-02
+-2.5904023625186599E-02
+-2.5801180814733187E-02
+-2.5698102702257909E-02
+-2.5594790979432715E-02
+-2.5491247517586985E-02
+-2.5387474180673403E-02
+-2.5283472633636474E-02
+-2.5179244469772231E-02
+-2.5074791409437251E-02
+-2.4970115305618084E-02
+-2.4865217970704543E-02
+-2.4760101082793157E-02
+-2.4654766304267165E-02
+-2.4549215356866407E-02
+-2.4443449992826636E-02
+-2.4337471943919064E-02
+-2.4231282913580478E-02
+-2.4124884605607022E-02
+-2.4018278729426804E-02
+-2.3911466997313061E-02
+-2.3804451129275584E-02
+-2.3697232850612714E-02
+-2.3589813862758231E-02
+-2.3482195824375798E-02
+-2.3374380402501088E-02
+-2.3266369323595677E-02
+-2.3158164332445122E-02
+-2.3049767152940218E-02
+-2.2941179491042345E-02
+-2.2832403026202985E-02
+-2.2723439377111767E-02
+-2.2614290167603305E-02
+-2.2504957108041259E-02
+-2.2395441943415612E-02
+-2.2285746359107749E-02
+-2.2175871974076111E-02
+-2.2065820436145335E-02
+-2.1955593488527443E-02
+-2.1845192882066038E-02
+-2.1734620262529519E-02
+-2.1623877219567877E-02
+-2.1512965378779343E-02
+-2.1401886417626612E-02
+-2.1290642007875529E-02
+-2.1179233778733566E-02
+-2.1067663355039075E-02
+-2.0955932435278421E-02
+-2.0844042769822713E-02
+-2.0731996035580246E-02
+-2.0619793769491600E-02
+-2.0507437517403370E-02
+-2.0394928951739704E-02
+-2.0282269784773422E-02
+-2.0169461658171132E-02
+-2.0056506149089482E-02
+-1.9943404866864137E-02
+-1.9830159503668014E-02
+-1.9716771752624498E-02
+-1.9603243216194905E-02
+-1.9489575457773772E-02
+-1.9375770063406267E-02
+-1.9261828645907385E-02
+-1.9147752823507742E-02
+-1.9033544224545638E-02
+-1.8919204478157040E-02
+-1.8804735192321433E-02
+-1.8690137963547831E-02
+-1.8575414410326913E-02
+-1.8460566184348843E-02
+-1.8345594912754320E-02
+-1.8230502100539545E-02
+-1.8115289229971666E-02
+-1.7999957923525836E-02
+-1.7884509909303483E-02
+-1.7768946843615015E-02
+-1.7653270233673937E-02
+-1.7537481577817159E-02
+-1.7421582420768016E-02
+-1.7305574327164140E-02
+-1.7189458916250816E-02
+-1.7073237860401720E-02
+-1.6956912780146941E-02
+-1.6840485152887923E-02
+-1.6723956447832592E-02
+-1.6607328246305519E-02
+-1.6490602182061383E-02
+-1.6373779833601214E-02
+-1.6256862709249177E-02
+-1.6139852329230622E-02
+-1.6022750268201272E-02
+-1.5905558111340250E-02
+-1.5788277420736928E-02
+-1.5670909744263502E-02
+-1.5553456610134202E-02
+-1.5435919514234946E-02
+-1.5318299966354858E-02
+-1.5200599551371638E-02
+-1.5082819870515816E-02
+-1.4964962425433992E-02
+-1.4847028638293444E-02
+-1.4729019996757037E-02
+-1.4610938131262744E-02
+-1.4492784662772316E-02
+-1.4374561033212814E-02
+-1.4256268621658597E-02
+-1.4137908950285669E-02
+-1.4019483689713529E-02
+-1.3900994437574653E-02
+-1.3782442565867978E-02
+-1.3663829429346394E-02
+-1.3545156564996682E-02
+-1.3426425600775812E-02
+-1.3307638072258222E-02
+-1.3188795390009599E-02
+-1.3069898978526482E-02
+-1.2950950344433946E-02
+-1.2831951013857061E-02
+-1.2712902508076086E-02
+-1.2593806344891293E-02
+-1.2474663990195589E-02
+-1.2355476819138110E-02
+-1.2236246228818403E-02
+-1.2116973768082889E-02
+-1.1997661026862040E-02
+-1.1878309471824212E-02
+-1.1758920464498930E-02
+-1.1639495414797267E-02
+-1.1520035848979092E-02
+-1.1400543296512298E-02
+-1.1281019194900403E-02
+-1.1161464944868258E-02
+-1.1041881967745507E-02
+-1.0922271707638362E-02
+-1.0802635616029174E-02
+-1.0682975161143199E-02
+-1.0563291808718768E-02
+-1.0443586965630254E-02
+-1.0323862008420332E-02
+-1.0204118371168839E-02
+-1.0084357570008312E-02
+-9.9645810950517791E-03
+-9.8447903040548134E-03
+-9.7249865285623637E-03
+-9.6051711834013315E-03
+-9.4853457420575622E-03
+-9.3655116433292180E-03
+-9.2456702586860267E-03
+-9.1258229629723880E-03
+-9.0059711848011082E-03
+-8.8861163704849425E-03
+-8.7662599484755726E-03
+-8.6464033309491713E-03
+-8.5265479035721466E-03
+-8.4066949877986026E-03
+-8.2868459118789848E-03
+-8.1670021184577519E-03
+-8.0471650983051316E-03
+-7.9273362466831081E-03
+-7.8075168462589028E-03
+-7.6877082090636940E-03
+-7.5679117605482104E-03
+-7.4481289406268603E-03
+-7.3283610984939086E-03
+-7.2086095321138291E-03
+-7.0888755920653461E-03
+-6.9691607093269265E-03
+-6.8494663081170902E-03
+-6.7297937517134792E-03
+-6.6101443846215916E-03
+-6.4905195084132500E-03
+-6.3709203930179112E-03
+-6.2513483569407472E-03
+-6.1318048153959767E-03
+-6.0122911834401592E-03
+-5.8928088056184576E-03
+-5.7733590013195309E-03
+-5.6539430814278356E-03
+-5.5345623486922459E-03
+-5.4152181281472153E-03
+-5.2959118022694917E-03
+-5.1766447481609414E-03
+-5.0574182229312934E-03
+-4.9382334302620363E-03
+-4.8190916785513160E-03
+-4.6999944073003314E-03
+-4.5809430166906789E-03
+-4.4619387403792539E-03
+-4.3429827857505137E-03
+-4.2240764598133760E-03
+-4.1052211308968802E-03
+-3.9864181329802295E-03
+-3.8676687424476449E-03
+-3.7489742314061876E-03
+-3.6303358737074425E-03
+-3.5117549461550759E-03
+-3.3932327555524825E-03
+-3.2747706326164343E-03
+-3.1563698688822661E-03
+-3.0380316708471852E-03
+-2.9197572496928955E-03
+-2.8015479093803398E-03
+-2.6834049877966469E-03
+-2.5653297683535968E-03
+-2.4473234782038406E-03
+-2.3293873559368000E-03
+-2.2115226777921840E-03
+-2.0937307222639498E-03
+-1.9760127266343717E-03
+-1.8583699087382243E-03
+-1.7408035273623894E-03
+-1.6233148957328766E-03
+-1.5059052944280200E-03
+-1.3885758668386195E-03
+-1.2713277388181534E-03
+-1.1541622003920209E-03
+-1.0370806483943390E-03
+-9.2008435866237144E-04
+-8.0317439441123873E-04
+-6.8635184634164073E-04
+-5.6961804402485270E-04
+-4.5297438045620417E-04
+-3.3642205251728892E-04
+-2.1996209078459838E-04
+-1.0359562503145576E-04
+1.2675980082841952E-05
+1.2885135997253472E-04
+2.4492937070156944E-04
+3.6090895530803115E-04
+4.7678896383752050E-04
+5.9256814407187815E-04
+7.0824524738481536E-04
+8.2381905292273092E-04
+9.3928835354291774E-04
+1.0546520260862622E-03
+1.1699089902826546E-03
+1.2850580657803982E-03
+1.4000979300921852E-03
+1.5150273052066214E-03
+1.6298451355058192E-03
+1.7445504068361616E-03
+1.8591419295748888E-03
+1.9736183917814700E-03
+2.0879785704780249E-03
+2.2022214117232634E-03
+2.3163458575862208E-03
+2.4303507342843611E-03
+2.5442348303485740E-03
+2.6579969599269679E-03
+2.7716359603999724E-03
+2.8851506956800413E-03
+2.9985400926406257E-03
+3.1118030762012053E-03
+3.2249384933780482E-03
+3.3379451573328179E-03
+3.4508219064953720E-03
+3.5635676090962297E-03
+3.6761811389048821E-03
+3.7886613834646932E-03
+3.9010072351531428E-03
+4.0132176121409147E-03
+4.1252914463358612E-03
+4.2372276233532949E-03
+4.3490249590128352E-03
+4.4606822890329639E-03
+4.5721985612027947E-03
+4.6835727493856087E-03
+4.7948037780409384E-03
+4.9058905345633922E-03
+5.0168319032388642E-03
+5.1276267646355031E-03
+5.2382740058772373E-03
+5.3487725571161196E-03
+5.4591213627690699E-03
+5.5693193526162562E-03
+5.6793654423110736E-03
+5.7892585544775353E-03
+5.8989976322140793E-03
+6.0085816218687395E-03
+6.1180094733813053E-03
+6.2272801376402785E-03
+6.3363925509673080E-03
+6.4453456317286450E-03
+6.5541382970394080E-03
+6.6627694650629368E-03
+6.7712380621141521E-03
+6.8795431056980156E-03
+6.9876836677632264E-03
+7.0956587344828664E-03
+7.2034671531199801E-03
+7.3111077903539644E-03
+7.4185796620409019E-03
+7.5258818219049008E-03
+7.6330132518612048E-03
+7.7399728767908738E-03
+7.8467596465028946E-03
+7.9533725670787852E-03
+8.0598106455098094E-03
+8.1660728532614458E-03
+8.2721581503399956E-03
+8.3780655562235157E-03
+8.4837941513412774E-03
+8.5893429744501350E-03
+8.6947109423741575E-03
+8.7998969628676361E-03
+8.9049000475443368E-03
+9.0097192595026063E-03
+9.1143536453736906E-03
+9.2188022296659997E-03
+9.3230640249085620E-03
+9.4271380065278493E-03
+9.5310231487388004E-03
+9.6347185176061511E-03
+9.7382232383208343E-03
+9.8415363754801068E-03
+9.9446568883761449E-03
+1.0047583737331158E-02
+1.0150315941027527E-02
+1.0252852538735400E-02
+1.0355192621229104E-02
+1.0457335322525125E-02
+1.0559279726150606E-02
+1.0661024800016508E-02
+1.0762569517166077E-02
+1.0863912992545088E-02
+1.0965054394698163E-02
+1.1065992780652947E-02
+1.1166727085697568E-02
+1.1267256301320741E-02
+1.1367579604890831E-02
+1.1467696193688261E-02
+1.1567605136821802E-02
+1.1667305434995008E-02
+1.1766796115619142E-02
+1.1866076244882475E-02
+1.1965144908606409E-02
+1.2064001260204852E-02
+1.2162644464231305E-02
+1.2261073617398154E-02
+1.2359287769232260E-02
+1.2457285992525855E-02
+1.2555067404823018E-02
+1.2652631126315072E-02
+1.2749976267828287E-02
+1.2847101936546588E-02
+1.2944007235292524E-02
+1.3040691262987623E-02
+1.3137153140287801E-02
+1.3233392040962608E-02
+1.3329407133277986E-02
+1.3425197492423822E-02
+1.3520762156016617E-02
+1.3616100265951836E-02
+1.3711211085435951E-02
+1.3806093837214478E-02
+1.3900747594728983E-02
+1.3995171411653263E-02
+1.4089364442820414E-02
+1.4183325899861690E-02
+1.4277054946268519E-02
+1.4370550672510555E-02
+1.4463812187970613E-02
+1.4556838709426699E-02
+1.4649629477054713E-02
+1.4742183662505829E-02
+1.4834500386664127E-02
+1.4926578794449386E-02
+1.5018418080496788E-02
+1.5110017441334391E-02
+1.5201376053332327E-02
+1.5292493086115220E-02
+1.5383367723675040E-02
+1.5473999163761753E-02
+1.5564386607456024E-02
+1.5654529263620254E-02
+1.5744426339438952E-02
+1.5834077021985769E-02
+1.5923480489312362E-02
+1.6012635940620929E-02
+1.6101542601412968E-02
+1.6190199695570937E-02
+1.6278606436853877E-02
+1.6366762036864158E-02
+1.6454665710459091E-02
+1.6542316674407222E-02
+1.6629714151282223E-02
+1.6716857373144326E-02
+1.6803745573970234E-02
+1.6890377993930929E-02
+1.6976753875001575E-02
+1.7062872463944705E-02
+1.7148733011157873E-02
+1.7234334757097906E-02
+1.7319676921713670E-02
+1.7404758728467119E-02
+1.7489579440012372E-02
+1.7574138333366202E-02
+1.7658434678848690E-02
+1.7742467739933116E-02
+1.7826236779543547E-02
+1.7909741060585918E-02
+1.7992979845830339E-02
+1.8075952399301733E-02
+1.8158657985739030E-02
+1.8241095880892726E-02
+1.8323265375110420E-02
+1.8405165759266560E-02
+1.8486796323439952E-02
+1.8568156357163274E-02
+1.8649245148731917E-02
+1.8730061985565181E-02
+1.8810606159417344E-02
+1.8890876969713359E-02
+1.8970873717804981E-02
+1.9050595712088288E-02
+1.9130042262828235E-02
+1.9209212679306802E-02
+1.9288106269934126E-02
+1.9366722345272983E-02
+1.9445060221161749E-02
+1.9523119215908120E-02
+1.9600898661124175E-02
+1.9678397893421243E-02
+1.9755616243705556E-02
+1.9832553036710259E-02
+1.9909207599103741E-02
+1.9985579264786647E-02
+2.0061667370137242E-02
+2.0137471264199402E-02
+2.0212990302415478E-02
+2.0288223830782531E-02
+2.0363171182114143E-02
+2.0437831696465306E-02
+2.0512204747115098E-02
+2.0586289713840786E-02
+2.0660085957801368E-02
+2.0733592827280590E-02
+2.0806809681736264E-02
+2.0879735901667456E-02
+2.0952370866358531E-02
+2.1024713938098519E-02
+2.1096764474835012E-02
+2.1168521861793278E-02
+2.1239985508541788E-02
+2.1311154813654764E-02
+2.1382029147852793E-02
+2.1452607880927878E-02
+2.1522890406591777E-02
+2.1592876128801206E-02
+2.1662564451800159E-02
+2.1731954780159771E-02
+2.1801046520643515E-02
+2.1869839087451770E-02
+2.1938331894813441E-02
+2.2006524344791101E-02
+2.2074415832692026E-02
+2.2142005769158604E-02
+2.2209293587963821E-02
+2.2276278723970772E-02
+2.2342960609455748E-02
+2.2409338675181304E-02
+2.2475412342772470E-02
+2.2541181027144967E-02
+2.2606644155439639E-02
+2.2671801179070188E-02
+2.2736651552073880E-02
+2.2801194728606748E-02
+2.2865430162237441E-02
+2.2929357296499829E-02
+2.2992975565391444E-02
+2.3056284415893996E-02
+2.3119283329430522E-02
+2.3181971788201527E-02
+2.3244349240060684E-02
+2.3306415117584103E-02
+2.3368168881069830E-02
+2.3429610025029007E-02
+2.3490738038628854E-02
+2.3551552386333611E-02
+2.3612052529981109E-02
+2.3672237961031978E-02
+2.3732108188602635E-02
+2.3791662707691091E-02
+2.3850900990585958E-02
+2.3909822512098531E-02
+2.3968426768384083E-02
+2.4026713261905204E-02
+2.4084681501371760E-02
+2.4142331000298969E-02
+2.4199661263541037E-02
+2.4256671777958021E-02
+2.4313362034512169E-02
+2.4369731563798631E-02
+2.4425779910272699E-02
+2.4481506595568900E-02
+2.4536911118188478E-02
+2.4591992986244891E-02
+2.4646751737242283E-02
+2.4701186912761266E-02
+2.4755298048113366E-02
+2.4809084675499124E-02
+2.4862546330804060E-02
+2.4915682554819647E-02
+2.4968492888815096E-02
+2.5020976875051074E-02
+2.5073134056376407E-02
+2.5124963981388557E-02
+2.5176466202402551E-02
+2.5227640276808294E-02
+2.5278485770610194E-02
+2.5329002250029722E-02
+2.5379189278875947E-02
+2.5429046420233373E-02
+2.5478573239235188E-02
+2.5527769302715352E-02
+2.5576634180757910E-02
+2.5625167450722946E-02
+2.5673368692696111E-02
+2.5721237499034089E-02
+2.5768773466387274E-02
+2.5815976176276938E-02
+2.5862845193920563E-02
+2.5909380096297951E-02
+2.5955580497451353E-02
+2.6001446016140520E-02
+2.6046976253809053E-02
+2.6092170802774789E-02
+2.6137029260551409E-02
+2.6181551232061256E-02
+2.6225736326384440E-02
+2.6269584167075095E-02
+2.6313094380157030E-02
+2.6356266579296555E-02
+2.6399100369695231E-02
+2.6441595364661154E-02
+2.6483751192565182E-02
+2.6525567485605590E-02
+2.6567043888210278E-02
+2.6608180047930214E-02
+2.6648975597434024E-02
+2.6689430156174854E-02
+2.6729543354787593E-02
+2.6769314851635282E-02
+2.6808744307051824E-02
+2.6847831367481097E-02
+2.6886575673582682E-02
+2.6924976874276911E-02
+2.6963034628007525E-02
+2.7000748596442147E-02
+2.7038118449929979E-02
+2.7075143858816288E-02
+2.7111824477527784E-02
+2.7148159951912575E-02
+2.7184149952591528E-02
+2.7219794187118073E-02
+2.7255092354849676E-02
+2.7290044108480429E-02
+2.7324649092047487E-02
+2.7358907000366004E-02
+2.7392817565264575E-02
+2.7426380495068552E-02
+2.7459595451196608E-02
+2.7492462096227816E-02
+2.7524980129763708E-02
+2.7557149264199998E-02
+2.7588969209739515E-02
+2.7620439674500522E-02
+2.7651560369888348E-02
+2.7682331015947585E-02
+2.7712751331338270E-02
+2.7742821014215123E-02
+2.7772539754013649E-02
+2.7801907266910630E-02
+2.7830923301811770E-02
+2.7859587602017212E-02
+2.7887899885390002E-02
+2.7915859865837233E-02
+2.7943467272509563E-02
+2.7970721843804343E-02
+2.7997623323344371E-02
+2.8024171462838133E-02
+2.8050366011373049E-02
+2.8076206703166941E-02
+2.8101693269434198E-02
+2.8126825460020675E-02
+2.8151603039291324E-02
+2.8176025769048593E-02
+2.8200093405064405E-02
+2.8223805701959703E-02
+2.8247162412073829E-02
+2.8270163287844381E-02
+2.8292808104523174E-02
+2.8315096660325240E-02
+2.8337028740698697E-02
+2.8358604093763576E-02
+2.8379822467391590E-02
+2.8400683659446570E-02
+2.8421187491594127E-02
+2.8441333752689871E-02
+2.8461122188725027E-02
+2.8480552557608910E-02
+2.8499624670750592E-02
+2.8518338350098624E-02
+2.8536693399912005E-02
+2.8554689613102827E-02
+2.8572326784183717E-02
+2.8589604710690272E-02
+2.8606523195176748E-02
+2.8623082063125756E-02
+2.8639281145172647E-02
+2.8655120242084411E-02
+2.8670599129941288E-02
+2.8685717612410740E-02
+2.8700475555525733E-02
+2.8714872825039976E-02
+2.8728909230604883E-02
+2.8742584560518401E-02
+2.8755898633256238E-02
+2.8768851299704700E-02
+2.8781442409467541E-02
+2.8793671803770210E-02
+2.8805539321955172E-02
+2.8817044799982955E-02
+2.8828188072272033E-02
+2.8838968983785660E-02
+2.8849387394097158E-02
+2.8859443163275881E-02
+2.8869136149097356E-02
+2.8878466209011931E-02
+2.8887433203186017E-02
+2.8896036993643535E-02
+2.8904277441581552E-02
+2.8912154406627862E-02
+2.8919667752679512E-02
+2.8926817366591986E-02
+2.8933603141333322E-02
+2.8940024944682060E-02
+2.8946082622198534E-02
+2.8951776036049977E-02
+2.8957105089240060E-02
+2.8962069690318695E-02
+2.8966669745328962E-02
+2.8970905158496096E-02
+2.8974775811321941E-02
+2.8978281559396041E-02
+2.8981422273921125E-02
+2.8984197879082768E-02
+2.8986608307051472E-02
+2.8988653467220869E-02
+2.8990333256295017E-02
+2.8991647575307432E-02
+2.8992596331859286E-02
+2.8993179438188812E-02
+2.8993396823495710E-02
+2.8993248420237466E-02
+2.8992734144262608E-02
+2.8991853899442595E-02
+2.8990607602865648E-02
+2.8988995197424809E-02
+2.8987016625866883E-02
+2.8984671813512039E-02
+2.8981960680622927E-02
+2.8978883167252320E-02
+2.8975439232067780E-02
+2.8971628825375410E-02
+2.8967451874500630E-02
+2.8962908307366256E-02
+2.8957998083064245E-02
+2.8952721174573624E-02
+2.8947077539579803E-02
+2.8941067117094762E-02
+2.8934689850105087E-02
+2.8927945698475593E-02
+2.8920834626798772E-02
+2.8913356611714770E-02
+2.8905511636895344E-02
+2.8897299672131158E-02
+2.8888720665206844E-02
+2.8879774572309887E-02
+2.8870461395581457E-02
+2.8860781147562371E-02
+2.8850733802595840E-02
+2.8840319305523981E-02
+2.8829537619699776E-02
+2.8818388747856433E-02
+2.8806872696214327E-02
+2.8794989462509055E-02
+2.8782739041258866E-02
+2.8770121424143154E-02
+2.8757136600017188E-02
+2.8743784566137701E-02
+2.8730065342559310E-02
+2.8715978950876700E-02
+2.8701525393422456E-02
+2.8686704663379817E-02
+2.8671516763011721E-02
+2.8655961706365137E-02
+2.8640039513255167E-02
+2.8623750221102945E-02
+2.8607093868825473E-02
+2.8590070466183410E-02
+2.8572680004710076E-02
+2.8554922502028107E-02
+2.8536798019860341E-02
+2.8518306616430070E-02
+2.8499448312454607E-02
+2.8480223118910908E-02
+2.8460631070722543E-02
+2.8440672222600463E-02
+2.8420346625100661E-02
+2.8399654318237391E-02
+2.8378595342403366E-02
+2.8357169748840023E-02
+2.8335377593203457E-02
+2.8313218931416233E-02
+2.8290693819664980E-02
+2.8267802315615199E-02
+2.8244544480909427E-02
+2.8220920378618970E-02
+2.8196930077226706E-02
+2.8172573647915113E-02
+2.8147851152921708E-02
+2.8122762642088437E-02
+2.8097308175470948E-02
+2.8071487855571800E-02
+2.8045301792105536E-02
+2.8018750055674425E-02
+2.7991832690581742E-02
+2.7964549765191728E-02
+2.7936901391617992E-02
+2.7908887681996213E-02
+2.7880508724544607E-02
+2.7851764600454843E-02
+2.7822655401451693E-02
+2.7793181228525747E-02
+2.7763342177714066E-02
+2.7733138332523138E-02
+2.7702569780504907E-02
+2.7671636649126436E-02
+2.7640339081915818E-02
+2.7608677191460405E-02
+2.7576651055172284E-02
+2.7544260763021140E-02
+2.7511506449400727E-02
+2.7478388254391674E-02
+2.7444906289053553E-02
+2.7411060648730404E-02
+2.7376851450176733E-02
+2.7342278841695267E-02
+2.7307342971163155E-02
+2.7272043973749584E-02
+2.7236381980870701E-02
+2.7200357115807240E-02
+2.7163969496090543E-02
+2.7127219250201916E-02
+2.7090106527569064E-02
+2.7052631479413430E-02
+2.7014794253079535E-02
+2.6976594994873718E-02
+2.6938033854774474E-02
+2.6899110986207925E-02
+2.6859826541860282E-02
+2.6820180671951889E-02
+2.6780173527046081E-02
+2.6739805262069288E-02
+2.6699076034316305E-02
+2.6657986010177114E-02
+2.6616535366962138E-02
+2.6574724277823862E-02
+2.6532552899492051E-02
+2.6490021388040273E-02
+2.6447129926766753E-02
+2.6403878714959937E-02
+2.6360267933147680E-02
+2.6316297732113723E-02
+2.6271968269061960E-02
+2.6227279740584687E-02
+2.6182232353105794E-02
+2.6136826294187322E-02
+2.6091061736960710E-02
+2.6044938865237569E-02
+2.5998457885098629E-02
+2.5951619002254490E-02
+2.5904422403064474E-02
+2.5856868268031019E-02
+2.5808956804371293E-02
+2.5760688245884390E-02
+2.5712062809535551E-02
+2.5663080663777555E-02
+2.5613741975905220E-02
+2.5564046967956423E-02
+2.5513995888262302E-02
+2.5463588966614440E-02
+2.5412826408690335E-02
+2.5361708423009853E-02
+2.5310235233324336E-02
+2.5258407065447089E-02
+2.5206224128172257E-02
+2.5153686619963141E-02
+2.5100794767841019E-02
+2.5047548846477068E-02
+2.4993949121577961E-02
+2.4939995793660016E-02
+2.4885689046855737E-02
+2.4831029113306088E-02
+2.4776016264592957E-02
+2.4720650765257264E-02
+2.4664932861707584E-02
+2.4608862796498533E-02
+2.4552440801531114E-02
+2.4495667105318811E-02
+2.4438541954092150E-02
+2.4381065612845729E-02
+2.4323238344118654E-02
+2.4265060400362404E-02
+2.4206532033499387E-02
+2.4147653505009622E-02
+2.4088425081398732E-02
+2.4028847026306765E-02
+2.3968919599301173E-02
+2.3908643063783392E-02
+2.3848017698281290E-02
+2.3787043784091338E-02
+2.3725721589673218E-02
+2.3664051374924003E-02
+2.3602033402991780E-02
+2.3539667942887293E-02
+2.3476955270882734E-02
+2.3413895696450686E-02
+2.3350489537583455E-02
+2.3286737070627134E-02
+2.3222638535647031E-02
+2.3158194197337202E-02
+2.3093404380115121E-02
+2.3028269411384816E-02
+2.2962789579140309E-02
+2.2896965155258121E-02
+2.2830796424073149E-02
+2.2764283684002604E-02
+2.2697427240525522E-02
+2.2630227417975983E-02
+2.2562684540251416E-02
+2.2494798890603140E-02
+2.2426570730697096E-02
+2.2358000365858877E-02
+2.2289088165233163E-02
+2.2219834483949669E-02
+2.2150239597956745E-02
+2.2080303767768979E-02
+2.2010027318040679E-02
+2.1939410619453658E-02
+2.1868454014079278E-02
+2.1797157787626170E-02
+2.1725522229164185E-02
+2.1653547679842466E-02
+2.1581234497895240E-02
+2.1508583022063526E-02
+2.1435593572978282E-02
+2.1362266478189746E-02
+2.1288602083740289E-02
+2.1214600737000811E-02
+2.1140262772520121E-02
+2.1065588519296012E-02
+2.0990578309697316E-02
+2.0915232480113628E-02
+2.0839551372243591E-02
+2.0763535343876639E-02
+2.0687184756257210E-02
+2.0610499969833614E-02
+2.0533481344555075E-02
+2.0456129231308882E-02
+2.0378443966760487E-02
+2.0300425892666573E-02
+2.0222075377746573E-02
+2.0143392797801769E-02
+2.0064378520209557E-02
+1.9985032905953819E-02
+1.9905356315469983E-02
+1.9825349108111467E-02
+1.9745011646313496E-02
+1.9664344310250381E-02
+1.9583347486349548E-02
+1.9502021550727271E-02
+1.9420366869290634E-02
+1.9338383810374549E-02
+1.9256072749440637E-02
+1.9173434064988486E-02
+1.9090468148745463E-02
+1.9007175398774771E-02
+1.8923556204553087E-02
+1.8839610944448831E-02
+1.8755339998668612E-02
+1.8670743755742802E-02
+1.8585822606164527E-02
+1.8500576939238740E-02
+1.8415007143731094E-02
+1.8329113615121118E-02
+1.8242896759801803E-02
+1.8156356985458259E-02
+1.8069494699935271E-02
+1.7982310310526363E-02
+1.7894804211161835E-02
+1.7806976785010264E-02
+1.7718828431988538E-02
+1.7630359588496465E-02
+1.7541570690106222E-02
+1.7452462135128945E-02
+1.7363034308285522E-02
+1.7273287616652835E-02
+1.7183222490876244E-02
+1.7092839363210568E-02
+1.7002138666696701E-02
+1.6911120831202681E-02
+1.6819786255467043E-02
+1.6728135323138927E-02
+1.6636168454515432E-02
+1.6543886119784024E-02
+1.6451288779771218E-02
+1.6358376845229641E-02
+1.6265150717734017E-02
+1.6171610829491895E-02
+1.6077757633275808E-02
+1.5983591569585686E-02
+1.5889113056337785E-02
+1.5794322516952071E-02
+1.5699220413392858E-02
+1.5603807218476887E-02
+1.5508083375634835E-02
+1.5412049302842417E-02
+1.5315705428922903E-02
+1.5219052209270480E-02
+1.5122090102806933E-02
+1.5024819565244362E-02
+1.4927241050924066E-02
+1.4829355008042295E-02
+1.4731161877875293E-02
+1.4632662111704008E-02
+1.4533856191815160E-02
+1.4434744602348828E-02
+1.4335327786608275E-02
+1.4235606166155726E-02
+1.4135580194392677E-02
+1.4035250371009687E-02
+1.3934617188363559E-02
+1.3833681093031550E-02
+1.3732442522887614E-02
+1.3630901952687438E-02
+1.3529059883570237E-02
+1.3426916802375797E-02
+1.3324473167635284E-02
+1.3221729439064724E-02
+1.3118686098613523E-02
+1.3015343635804925E-02
+1.2911702535567771E-02
+1.2807763278595320E-02
+1.2703526342765815E-02
+1.2598992198890826E-02
+1.2494161319866312E-02
+1.2389034200081965E-02
+1.2283611343476433E-02
+1.2177893243472340E-02
+1.2071880380824072E-02
+1.1965573241405023E-02
+1.1858972329517607E-02
+1.1752078152217578E-02
+1.1644891203355193E-02
+1.1537411969255661E-02
+1.1429640941896546E-02
+1.1321578621927177E-02
+1.1213225511111683E-02
+1.1104582111705185E-02
+1.0995648926882474E-02
+1.0886426467683953E-02
+1.0776915251181851E-02
+1.0667115786823752E-02
+1.0557028568062817E-02
+1.0446654090571340E-02
+1.0335992872801110E-02
+1.0225045441316888E-02
+1.0113812312969038E-02
+1.0002293995050362E-02
+9.8904909994423796E-03
+9.7784038506298528E-03
+9.6660330748168707E-03
+9.5533791932488378E-03
+9.4404427249724088E-03
+9.3272241888903082E-03
+9.2137241036386961E-03
+9.0999429913345385E-03
+8.9858813855053267E-03
+8.8715398214211424E-03
+8.7569188227384579E-03
+8.6420189061525449E-03
+8.5268406013484632E-03
+8.4113844593060368E-03
+8.2956510269075953E-03
+8.1796408210808857E-03
+8.0633543525582795E-03
+7.9467921704982694E-03
+7.8299548552052210E-03
+7.7128429652459874E-03
+7.5954570101614211E-03
+7.4777974972441621E-03
+7.3598649580351675E-03
+7.2416599346878463E-03
+7.1231829920641717E-03
+7.0044347187405579E-03
+6.8854156841472317E-03
+6.7661263996381853E-03
+6.6465673725451145E-03
+6.5267391615319390E-03
+6.4066423514204489E-03
+6.2862775098958910E-03
+6.1656451810477454E-03
+6.0447459098736684E-03
+5.9235802501179545E-03
+5.8021487585359884E-03
+5.6804520000904250E-03
+5.5584905453176514E-03
+5.4362649610972666E-03
+5.3137758074235349E-03
+5.1910236413302644E-03
+5.0680090069610221E-03
+4.9447324468334464E-03
+4.8211945427874435E-03
+4.6973959105991153E-03
+4.5733371428480557E-03
+4.4490187758286703E-03
+4.3244413455435860E-03
+4.1996054378134803E-03
+4.0745116583352885E-03
+3.9491605791084489E-03
+3.8235527344731911E-03
+3.6976886805078790E-03
+3.5715690445071824E-03
+3.4451944592703409E-03
+3.3185654798852031E-03
+3.1916826199965670E-03
+3.0645464423624418E-03
+2.9371575808917736E-03
+2.8095166606253541E-03
+2.6816242470492089E-03
+2.5534808930530676E-03
+2.4250871812459924E-03
+2.2964437154716112E-03
+2.1675510954573588E-03
+2.0384099120263981E-03
+1.9090207546180894E-03
+1.7793842088513036E-03
+1.6495008599890153E-03
+1.5193713068733406E-03
+1.3889961608391226E-03
+1.2583760241730889E-03
+1.1275114752432396E-03
+9.9640309334407713E-04
+8.6505148900307472E-04
+7.3345728648459036E-04
+6.0162109539388614E-04
+4.6954350779703999E-04
+3.3722511474252621E-04
+2.0466650641961799E-04
+7.1868275604029409E-05
+-6.1168959701078245E-05
+-1.9444456683258510E-04
+-3.2795792845378952E-04
+-4.6170845123866868E-04
+-5.9569554024347640E-04
+-7.2991858585391776E-04
+-8.6437697400953387E-04
+-9.9907008810819599E-04
+-1.1339973095355290E-03
+-1.2691580215386275E-03
+-1.4045516115841837E-03
+-1.5401774658932792E-03
+-1.6760349622184356E-03
+-1.8121234752384511E-03
+-1.9484423851961364E-03
+-2.0849910777780362E-03
+-2.2217689401795057E-03
+-2.3587753636017130E-03
+-2.4960097365588725E-03
+-2.6334714233715723E-03
+-2.7711597770033263E-03
+-2.9090741659344452E-03
+-3.0472139784314088E-03
+-3.1855785965169718E-03
+-3.3241673769401721E-03
+-3.4629796732783599E-03
+-3.6020148684752793E-03
+-3.7412723633843330E-03
+-3.8807515417465049E-03
+-4.0204517591415226E-03
+-4.1603723683547606E-03
+-4.3005127226834359E-03
+-4.4408721761589358E-03
+-4.5814500967609464E-03
+-4.7222458636134038E-03
+-4.8632588502990895E-03
+-5.0044884183596695E-03
+-5.1459339274614038E-03
+-5.2875947371419834E-03
+-5.4294702066463923E-03
+-5.5715596953328211E-03
+-5.7138625626889806E-03
+-5.8563781633500173E-03
+-5.9991058390123763E-03
+-6.1420449317908113E-03
+-6.2851948095562918E-03
+-6.4285548526957798E-03
+-6.5721244232844461E-03
+-6.7159028587959989E-03
+-6.8598894996361511E-03
+-7.0040837047895335E-03
+-7.1484848360319295E-03
+-7.2930922397774480E-03
+-7.4379052521614279E-03
+-7.5829232151290379E-03
+-7.7281454813895416E-03
+-7.8735714034261824E-03
+-8.0192003286831508E-03
+-8.1650316025797774E-03
+-8.3110645675215609E-03
+-8.4572985632786757E-03
+-8.6037329327108975E-03
+-8.7503670264443747E-03
+-8.8972001940469080E-03
+-9.0442317726890653E-03
+-9.1914610944017691E-03
+-9.3388874983065875E-03
+-9.4865103314421620E-03
+-9.6343289341751792E-03
+-9.7823426263323465E-03
+-9.9305507271154926E-03
+-1.0078952588819733E-02
+-1.0227547581061751E-02
+-1.0376335047760412E-02
+-1.0525314295985131E-02
+-1.0674484637634284E-02
+-1.0823845416702222E-02
+-1.0973395983418475E-02
+-1.1123135667441091E-02
+-1.1273063783848535E-02
+-1.1423179658374697E-02
+-1.1573482637500486E-02
+-1.1723972064188347E-02
+-1.1874647251825918E-02
+-1.2025507504828146E-02
+-1.2176552152155592E-02
+-1.2327780545140535E-02
+-1.2479192023058323E-02
+-1.2630785894365412E-02
+-1.2782561465394223E-02
+-1.2934518062997507E-02
+-1.3086655022790439E-02
+-1.3238971676248965E-02
+-1.3391467349995079E-02
+-1.3544141366941364E-02
+-1.3696993039803870E-02
+-1.3850021679899448E-02
+-1.4003226608355249E-02
+-1.4156607151707846E-02
+-1.4310162629834505E-02
+-1.4463892352579742E-02
+-1.4617795630417903E-02
+-1.4771871781520909E-02
+-1.4926120126030661E-02
+-1.5080539986694310E-02
+-1.5235130688050796E-02
+-1.5389891545945068E-02
+-1.5544821859291708E-02
+-1.5699920928259503E-02
+-1.5855188073768504E-02
+-1.6010622623882448E-02
+-1.6166223904999902E-02
+-1.6321991241844414E-02
+-1.6477923942584110E-02
+-1.6634021273031530E-02
+-1.6790282500256559E-02
+-1.6946706957838793E-02
+-1.7103294009871435E-02
+-1.7260042988937952E-02
+-1.7416953187952392E-02
+-1.7574023894914768E-02
+-1.7731254390514050E-02
+-1.7888643957834807E-02
+-1.8046191927280835E-02
+-1.8203897657820552E-02
+-1.8361760467151673E-02
+-1.8519779605482626E-02
+-1.8677954332409531E-02
+-1.8836283981386967E-02
+-1.8994767904342832E-02
+-1.9153405410286369E-02
+-1.9312195773753527E-02
+-1.9471138277389034E-02
+-1.9630232223566330E-02
+-1.9789476917257916E-02
+-1.9948871665936035E-02
+-2.0108415777586191E-02
+-2.0268108555277910E-02
+-2.0427949297006618E-02
+-2.0587937300929414E-02
+-2.0748071867049876E-02
+-2.0908352294207365E-02
+-2.1068777871231591E-02
+-2.1229347881998359E-02
+-2.1390061624216420E-02
+-2.1550918414270356E-02
+-2.1711917562370561E-02
+-2.1873058351942594E-02
+-2.2034340061096124E-02
+-2.2195761982685153E-02
+-2.2357323419124754E-02
+-2.2519023670156832E-02
+-2.2680862030906329E-02
+-2.2842837796254910E-02
+-2.3004950263705387E-02
+-2.3167198730471242E-02
+-2.3329582479227964E-02
+-2.3492100780236076E-02
+-2.3654752918449914E-02
+-2.3817538213542589E-02
+-2.3980455983254129E-02
+-2.4143505502131048E-02
+-2.4306686027725802E-02
+-2.4469996847867381E-02
+-2.4633437283827130E-02
+-2.4797006644856789E-02
+-2.4960704199846973E-02
+-2.5124529212131298E-02
+-2.5288480966220203E-02
+-2.5452558757957749E-02
+-2.5616761885983868E-02
+-2.5781089652934113E-02
+-2.5945541353251646E-02
+-2.6110116248555530E-02
+-2.6274813595114365E-02
+-2.6439632690702985E-02
+-2.6604572861960107E-02
+-2.6769633413851721E-02
+-2.6934813610528432E-02
+-2.7100112714420425E-02
+-2.7265530004109997E-02
+-2.7431064763465188E-02
+-2.7596716279521007E-02
+-2.7762483842143623E-02
+-2.7928366740056290E-02
+-2.8094364259545011E-02
+-2.8260475686485660E-02
+-2.8426700308679616E-02
+-2.8593037414142909E-02
+-2.8759486278239561E-02
+-2.8926046161579535E-02
+-2.9092716332816106E-02
+-2.9259496090048902E-02
+-2.9426384735227268E-02
+-2.9593381552720913E-02
+-2.9760485816630412E-02
+-2.9927696804796389E-02
+-3.0095013801137455E-02
+-3.0262436086322911E-02
+-3.0429962926168116E-02
+-3.0597593583994005E-02
+-3.0765327348832989E-02
+-3.0933163528756275E-02
+-3.1101101416489103E-02
+-3.1269140273978327E-02
+-3.1437279364015025E-02
+-3.1605517976881096E-02
+-3.1773855411088979E-02
+-3.1942290935721429E-02
+-3.2110823791418185E-02
+-3.2279453238904340E-02
+-3.2448178594663930E-02
+-3.2616999176827130E-02
+-3.2785914248777033E-02
+-3.2954923048715612E-02
+-3.3124024846570503E-02
+-3.3293218952141698E-02
+-3.3462504665012251E-02
+-3.3631881241851701E-02
+-3.3801347932850334E-02
+-3.3970904021742104E-02
+-3.4140548812431996E-02
+-3.4310281586249797E-02
+-3.4480101587840394E-02
+-3.4650008069956703E-02
+-3.4820000339592261E-02
+-3.4990077715918957E-02
+-3.5160239467695732E-02
+-3.5330484823533952E-02
+-3.5500813036981597E-02
+-3.5671223416934794E-02
+-3.5841715272114938E-02
+-3.6012287868475754E-02
+-3.6182940456093042E-02
+-3.6353672303911531E-02
+-3.6524482700333573E-02
+-3.6695370929949622E-02
+-3.6866336264998342E-02
+-3.7037377976403309E-02
+-3.7208495344572774E-02
+-3.7379687654023698E-02
+-3.7550954169965942E-02
+-3.7722294132061747E-02
+-3.7893706796635084E-02
+-3.8065191489289399E-02
+-3.8236747545015874E-02
+-3.8408374223078648E-02
+-3.8580070733296751E-02
+-3.8751836319404522E-02
+-3.8923670285332564E-02
+-3.9095571935714543E-02
+-3.9267540550616688E-02
+-3.9439575402073927E-02
+-3.9611675759366277E-02
+-3.9783840889380223E-02
+-3.9956070060275434E-02
+-4.0128362543757651E-02
+-4.0300717612742745E-02
+-4.0473134547053376E-02
+-4.0645612629033184E-02
+-4.0818151138835086E-02
+-4.0990749354243142E-02
+-4.1163406549870767E-02
+-4.1336121992032335E-02
+-4.1508894946447807E-02
+-4.1681724690300855E-02
+-4.1854610506599527E-02
+-4.2027551670773627E-02
+-4.2200547447625754E-02
+-4.2373597104373668E-02
+-4.2546699922173629E-02
+-4.2719855185182849E-02
+-4.2893062175212271E-02
+-4.3066320172227709E-02
+-4.3239628447900302E-02
+-4.3412986259076157E-02
+-4.3586392864887087E-02
+-4.3759847546745098E-02
+-4.3933349593144308E-02
+-4.4106898291478611E-02
+-4.4280492928077703E-02
+-4.4454132781121501E-02
+-4.4627817109813568E-02
+-4.4801545172014068E-02
+-4.4975316238283054E-02
+-4.5149129584907126E-02
+-4.5322984499605465E-02
+-4.5496880283454534E-02
+-4.5670816228136964E-02
+-4.5844791593770591E-02
+-4.6018805634829199E-02
+-4.6192857615140526E-02
+-4.6366946803928298E-02
+-4.6541072481311861E-02
+-4.6715233943931872E-02
+-4.6889430485906082E-02
+-4.7063661385933805E-02
+-4.7237925917510581E-02
+-4.7412223342542824E-02
+-4.7586552914375829E-02
+-4.7760913908310151E-02
+-4.7935305643467159E-02
+-4.8109727433429693E-02
+-4.8284178532438993E-02
+-4.8458658174764677E-02
+-4.8633165624649748E-02
+-4.8807700175166037E-02
+-4.8982261120896722E-02
+-4.9156847757911161E-02
+-4.9331459378835762E-02
+-4.9506095249866933E-02
+-4.9680754625184197E-02
+-4.9855436779937375E-02
+-5.0030141015467683E-02
+-5.0204866625386646E-02
+-5.0379612872147553E-02
+-5.0554379014113471E-02
+-5.0729164340702924E-02
+-5.0903968159892267E-02
+-5.1078789759305500E-02
+-5.1253628393695877E-02
+-5.1428483322635353E-02
+-5.1603353842708734E-02
+-5.1778239259473550E-02
+-5.1953138857027847E-02
+-5.2128051902435593E-02
+-5.2302977672914031E-02
+-5.2477915468338313E-02
+-5.2652864586490995E-02
+-5.2827824296427198E-02
+-5.3002793856797542E-02
+-5.3177772544994402E-02
+-5.3352759657614823E-02
+-5.3527754490686898E-02
+-5.3702756336919774E-02
+-5.3877764486475042E-02
+-5.4052778215219026E-02
+-5.4227796791951152E-02
+-5.4402819497216155E-02
+-5.4577845627264837E-02
+-5.4752874476333306E-02
+-5.4927905328255679E-02
+-5.5102937464851683E-02
+-5.5277970175605103E-02
+-5.5453002754755704E-02
+-5.5628034487550618E-02
+-5.5803064643978627E-02
+-5.5978092499398079E-02
+-5.6153117364383213E-02
+-5.6328138558270464E-02
+-5.6503155368976980E-02
+-5.6678167057883151E-02
+-5.6853172896149801E-02
+-5.7028172179149642E-02
+-5.7203164206926026E-02
+-5.7378148290581833E-02
+-5.7553123744179320E-02
+-5.7728089845683325E-02
+-5.7903045833803228E-02
+-5.8077990970297255E-02
+-5.8252924591657110E-02
+-5.8427846042092543E-02
+-5.8602754613211905E-02
+-5.8777649568443543E-02
+-5.8952530177720300E-02
+-5.9127395720652426E-02
+-5.9302245487767961E-02
+-5.9477078810873031E-02
+-5.9651895027834224E-02
+-5.9826693426541233E-02
+-6.0001473260168046E-02
+-6.0176233796326278E-02
+-6.0350974330584589E-02
+-6.0525694167035446E-02
+-6.0700392640587852E-02
+-6.0875069092836812E-02
+-6.1049722803338285E-02
+-6.1224352996015655E-02
+-6.1398958936153179E-02
+-6.1573539993236989E-02
+-6.1748095537835043E-02
+-6.1922624840750340E-02
+-6.2097127130771347E-02
+-6.2271601689291398E-02
+-6.2446047858908491E-02
+-6.2620464972522924E-02
+-6.2794852322178019E-02
+-6.2969209192159786E-02
+-6.3143534872611970E-02
+-6.3317828657217148E-02
+-6.3492089859080877E-02
+-6.3666317820513699E-02
+-6.3840511872060607E-02
+-6.4014671285274022E-02
+-6.4188795319143954E-02
+-6.4362883279748095E-02
+-6.4536934507778990E-02
+-6.4710948324699355E-02
+-6.4884924013250717E-02
+-6.5058860858867723E-02
+-6.5232758189304407E-02
+-6.5406615345484725E-02
+-6.5580431634962591E-02
+-6.5754206333404036E-02
+-6.5927938733250757E-02
+-6.6101628173706933E-02
+-6.6275273996147771E-02
+-6.6448875503644464E-02
+-6.6622431981468958E-02
+-6.6795942723715016E-02
+-6.6969407035565809E-02
+-6.7142824230224607E-02
+-6.7316193646663594E-02
+-6.7489514626450225E-02
+-6.7662786482833553E-02
+-6.7836008511792001E-02
+-6.8009180016102427E-02
+-6.8182300309998264E-02
+-6.8355368710667538E-02
+-6.8528384545238311E-02
+-6.8701347142272065E-02
+-6.8874255812303956E-02
+-6.9047109851675087E-02
+-6.9219908571261410E-02
+-6.9392651313355827E-02
+-6.9565337419656870E-02
+-6.9737966205741506E-02
+-6.9910536977580304E-02
+-7.0083049052892185E-02
+-7.0255501761364900E-02
+-7.0427894429798549E-02
+-7.0600226376184932E-02
+-7.0772496917446845E-02
+-7.0944705376237871E-02
+-7.1116851077953014E-02
+-7.1288933350308267E-02
+-7.1460951524147068E-02
+-7.1632904929706420E-02
+-7.1804792895083083E-02
+-7.1976614747820647E-02
+-7.2148369817571681E-02
+-7.2320057435166882E-02
+-7.2491676926068865E-02
+-7.2663227606810807E-02
+-7.2834708797779896E-02
+-7.3006119843692957E-02
+-7.3177460095376318E-02
+-7.3348728884841632E-02
+-7.3519925528282182E-02
+-7.3691049347376927E-02
+-7.3862099677501986E-02
+-7.4033075856785646E-02
+-7.4203977230983653E-02
+-7.4374803148352348E-02
+-7.4545552946498769E-02
+-7.4716225951528104E-02
+-7.4886821494824146E-02
+-7.5057338925590966E-02
+-7.5227777593415063E-02
+-7.5398136824057230E-02
+-7.5568415930962710E-02
+-7.5738614251247699E-02
+-7.5908731155405432E-02
+-7.6078766006590248E-02
+-7.6248718130308230E-02
+-7.6418586844640007E-02
+-7.6588371493753291E-02
+-7.6758071439689268E-02
+-7.6927686038992318E-02
+-7.7097214637847314E-02
+-7.7266656579336082E-02
+-7.7436011197236740E-02
+-7.7605277823063146E-02
+-7.7774455807196219E-02
+-7.7943544516813110E-02
+-7.8112543313374277E-02
+-7.8281451543773833E-02
+-7.8450268552639077E-02
+-7.8618993685237726E-02
+-7.8787626287163834E-02
+-7.8956165710863571E-02
+-7.9124611316725754E-02
+-7.9292962465308384E-02
+-7.9461218516967635E-02
+-7.9629378830727737E-02
+-7.9797442755175460E-02
+-7.9965409633072707E-02
+-8.0133278819857323E-02
+-8.0301049690095494E-02
+-8.0468721613685970E-02
+-8.0636293935237524E-02
+-8.0803765994375817E-02
+-8.0971137157278036E-02
+-8.1138406809471347E-02
+-8.1305574323228463E-02
+-8.1472639044569223E-02
+-8.1639600320549663E-02
+-8.1806457522408060E-02
+-8.1973210029491650E-02
+-8.2139857217080128E-02
+-8.2306398456548413E-02
+-8.2472833112849891E-02
+-8.2639160535460637E-02
+-8.2805380074019427E-02
+-8.2971491099842962E-02
+-8.3137492994120807E-02
+-8.3303385137585867E-02
+-8.3469166910412021E-02
+-8.3634837689182118E-02
+-8.3800396839138536E-02
+-8.3965843723807929E-02
+-8.4131177716333327E-02
+-8.4296398195545061E-02
+-8.4461504539597040E-02
+-8.4626496125620218E-02
+-8.4791372331048179E-02
+-8.4956132536068374E-02
+-8.5120776121404826E-02
+-8.5285302467186339E-02
+-8.5449710953002952E-02
+-8.5614000957381184E-02
+-8.5778171856995766E-02
+-8.5942223030916018E-02
+-8.6106153875530445E-02
+-8.6269963792753909E-02
+-8.6433652165418859E-02
+-8.6597218357068864E-02
+-8.6760661741353329E-02
+-8.6923981722275917E-02
+-8.7087177706323446E-02
+-8.7250249079849559E-02
+-8.7413195219238488E-02
+-8.7576015506498156E-02
+-8.7738709331160306E-02
+-8.7901276087424568E-02
+-8.8063715185309532E-02
+-8.8226026035994567E-02
+-8.8388208024807721E-02
+-8.8550260520539090E-02
+-8.8712182910058626E-02
+-8.8873974611478501E-02
+-8.9035635040807248E-02
+-8.9197163590150494E-02
+-8.9358559644833371E-02
+-8.9519822601404911E-02
+-8.9680951865729136E-02
+-8.9841946842929968E-02
+-9.0002806936200080E-02
+-9.0163531548715953E-02
+-9.0324120086601872E-02
+-9.0484571956982604E-02
+-9.0644886566315697E-02
+-9.0805063320360965E-02
+-9.0965101624173955E-02
+-9.1125000881370835E-02
+-9.1284760496733452E-02
+-9.1444379889707397E-02
+-9.1603858487097872E-02
+-9.1763195703748079E-02
+-9.1922390937891674E-02
+-9.2081443590799145E-02
+-9.2240353081101054E-02
+-9.2399118831033036E-02
+-9.2557740257352181E-02
+-9.2716216772999183E-02
+-9.2874547794061416E-02
+-9.3032732742652863E-02
+-9.3190771041371620E-02
+-9.3348662113069761E-02
+-9.3506405380577515E-02
+-9.3664000267993111E-02
+-9.3821446200495762E-02
+-9.3978742599528237E-02
+-9.4135888877971238E-02
+-9.4292884450118547E-02
+-9.4449728750406595E-02
+-9.4606421221576836E-02
+-9.4762961299578341E-02
+-9.4919348412581622E-02
+-9.5075581986595409E-02
+-9.5231661442733748E-02
+-9.5387586202521177E-02
+-9.5543355702681965E-02
+-9.5698969388307922E-02
+-9.5854426699582565E-02
+-9.6009727069407996E-02
+-9.6164869930955313E-02
+-9.6319854721740206E-02
+-9.6474680880278274E-02
+-9.6629347845674327E-02
+-9.6783855057402446E-02
+-9.6938201955860212E-02
+-9.7092387983440873E-02
+-9.7246412582586664E-02
+-9.7400275195792307E-02
+-9.7553975265665144E-02
+-9.7707512240085545E-02
+-9.7860885571893805E-02
+-9.8014094710893007E-02
+-9.8167139099091624E-02
+-9.8320018178602878E-02
+-9.8472731403007482E-02
+-9.8625278230873345E-02
+-9.8777658115167172E-02
+-9.8929870502052195E-02
+-9.9081914839868460E-02
+-9.9233790586205253E-02
+-9.9385497200713019E-02
+-9.9537034146202102E-02
+-9.9688400887163714E-02
+-9.9839596880280865E-02
+-9.9990621570028027E-02
+-1.0014147440597544E-01
+-1.0029215486622065E-01
+-1.0044266243490450E-01
+-1.0059299656860210E-01
+-1.0074315670247305E-01
+-1.0089314228871134E-01
+-1.0104295281593352E-01
+-1.0119258777343060E-01
+-1.0134204662852557E-01
+-1.0149132884031875E-01
+-1.0164043387099936E-01
+-1.0178936118588679E-01
+-1.0193811025557398E-01
+-1.0208668056493869E-01
+-1.0223507159890330E-01
+-1.0238328282442044E-01
+-1.0253131369991930E-01
+-1.0267916370076456E-01
+-1.0282683232443748E-01
+-1.0297431906306101E-01
+-1.0312162338468167E-01
+-1.0326874475343345E-01
+-1.0341568265276524E-01
+-1.0356243657835379E-01
+-1.0370900602045978E-01
+-1.0385539046005166E-01
+-1.0400158937845161E-01
+-1.0414760226377512E-01
+-1.0429342860571088E-01
+-1.0443906788846236E-01
+-1.0458451959168463E-01
+-1.0472978320315314E-01
+-1.0487485822903324E-01
+-1.0501974417541064E-01
+-1.0516444053299287E-01
+-1.0530894678643754E-01
+-1.0545326242649426E-01
+-1.0559738695046185E-01
+-1.0574131985637339E-01
+-1.0588506064385396E-01
+-1.0602860881325911E-01
+-1.0617196387031880E-01
+-1.0631512532343261E-01
+-1.0645809267859344E-01
+-1.0660086543851906E-01
+-1.0674344310478769E-01
+-1.0688582517606934E-01
+-1.0702801115113139E-01
+-1.0717000054072084E-01
+-1.0731179286364692E-01
+-1.0745338763378683E-01
+-1.0759478435606243E-01
+-1.0773598253676459E-01
+-1.0787698169492141E-01
+-1.0801778135318175E-01
+-1.0815838102742184E-01
+-1.0829878022752690E-01
+-1.0843897846702796E-01
+-1.0857897526876895E-01
+-1.0871877015558086E-01
+-1.0885836264189083E-01
+-1.0899775223896328E-01
+-1.0913693847420770E-01
+-1.0927592089345081E-01
+-1.0941469903310408E-01
+-1.0955327239759688E-01
+-1.0969164048831860E-01
+-1.0982980283865651E-01
+-1.0996775899962669E-01
+-1.1010550851052039E-01
+-1.1024305089318315E-01
+-1.1038038567065199E-01
+-1.1051751237729844E-01
+-1.1065443055010814E-01
+-1.1079113972336860E-01
+-1.1092763942940002E-01
+-1.1106392920598950E-01
+-1.1120000860163864E-01
+-1.1133587716402600E-01
+-1.1147153443026024E-01
+-1.1160697993392583E-01
+-1.1174221321397045E-01
+-1.1187723381437568E-01
+-1.1201204128040147E-01
+-1.1214663516030328E-01
+-1.1228101500289377E-01
+-1.1241518035873560E-01
+-1.1254913077908615E-01
+-1.1268286581492333E-01
+-1.1281638501692064E-01
+-1.1294968793511186E-01
+-1.1308277411786366E-01
+-1.1321564311451456E-01
+-1.1334829448964404E-01
+-1.1348072781666609E-01
+-1.1361294265632665E-01
+-1.1374493854942697E-01
+-1.1387671504118421E-01
+-1.1400827170489107E-01
+-1.1413960812037396E-01
+-1.1427072384962612E-01
+-1.1440161844086179E-01
+-1.1453229145314059E-01
+-1.1466274246858761E-01
+-1.1479297106856166E-01
+-1.1492297681367487E-01
+-1.1505275925750245E-01
+-1.1518231797146082E-01
+-1.1531165254479614E-01
+-1.1544076255936593E-01
+-1.1556964757534882E-01
+-1.1569830715244404E-01
+-1.1582674087698740E-01
+-1.1595494834785273E-01
+-1.1608292914837520E-01
+-1.1621068284178912E-01
+-1.1633820899661756E-01
+-1.1646550720548830E-01
+-1.1659257706513265E-01
+-1.1671941815886505E-01
+-1.1684603006148664E-01
+-1.1697241235491905E-01
+-1.1709856463332097E-01
+-1.1722448649049524E-01
+-1.1735017751351080E-01
+-1.1747563728788642E-01
+-1.1760086540867006E-01
+-1.1772586147872055E-01
+-1.1785062509736392E-01
+-1.1797515585589047E-01
+-1.1809945334582934E-01
+-1.1822351716785813E-01
+-1.1834734692600156E-01
+-1.1847094221907445E-01
+-1.1859430264035803E-01
+-1.1871742778933896E-01
+-1.1884031728442927E-01
+-1.1896297074477173E-01
+-1.1908538776693485E-01
+-1.1920756793606686E-01
+-1.1932951085670936E-01
+-1.1945121616022715E-01
+-1.1957268347306947E-01
+-1.1969391239568393E-01
+-1.1981490252383459E-01
+-1.1993565347411896E-01
+-1.2005616487714736E-01
+-1.2017643635566304E-01
+-1.2029646751802434E-01
+-1.2041625797397491E-01
+-1.2053580734859666E-01
+-1.2065511527129209E-01
+-1.2077418136197064E-01
+-1.2089300523222520E-01
+-1.2101158650212421E-01
+-1.2112992481234644E-01
+-1.2124801980401656E-01
+-1.2136587110160992E-01
+-1.2148347832273161E-01
+-1.2160084109347545E-01
+-1.2171795904958875E-01
+-1.2183483182734373E-01
+-1.2195145906329442E-01
+-1.2206784039365413E-01
+-1.2218397545176674E-01
+-1.2229986386944722E-01
+-1.2241550528512792E-01
+-1.2253089934700412E-01
+-1.2264604570167567E-01
+-1.2276094398632913E-01
+-1.2287559383646345E-01
+-1.2298999489892777E-01
+-1.2310414682869462E-01
+-1.2321804927520699E-01
+-1.2333170187716093E-01
+-1.2344510427567638E-01
+-1.2355825613249155E-01
+-1.2367115711539606E-01
+-1.2378380687229334E-01
+-1.2389620503254076E-01
+-1.2400835123978728E-01
+-1.2412024517529974E-01
+-1.2423188652130274E-01
+-1.2434327492446225E-01
+-1.2445441001602127E-01
+-1.2456529145423012E-01
+-1.2467591892998833E-01
+-1.2478629212481616E-01
+-1.2489641068296749E-01
+-1.2500627424413074E-01
+-1.2511588248167765E-01
+-1.2522523508874145E-01
+-1.2533433174575456E-01
+-1.2544317211301256E-01
+-1.2555175585083156E-01
+-1.2566008262771833E-01
+-1.2576815211507072E-01
+-1.2587596399472983E-01
+-1.2598351795650875E-01
+-1.2609081368378117E-01
+-1.2619785084654289E-01
+-1.2630462911461185E-01
+-1.2641114816689450E-01
+-1.2651740768594155E-01
+-1.2662340736236743E-01
+-1.2672914689478085E-01
+-1.2683462597474865E-01
+-1.2693984427427218E-01
+-1.2704480146457559E-01
+-1.2714949723747326E-01
+-1.2725393129474535E-01
+-1.2735810333847189E-01
+-1.2746201307105906E-01
+-1.2756566019125354E-01
+-1.2766904438494281E-01
+-1.2777216533628383E-01
+-1.2787502274303739E-01
+-1.2797761631151716E-01
+-1.2807994574590303E-01
+-1.2818201074666644E-01
+-1.2828381101396261E-01
+-1.2838534624842826E-01
+-1.2848661615141418E-01
+-1.2858762043472061E-01
+-1.2868835881867904E-01
+-1.2878883102045247E-01
+-1.2888903674988622E-01
+-1.2898897571489903E-01
+-1.2908864761761835E-01
+-1.2918805215836299E-01
+-1.2928718905107389E-01
+-1.2938605802410494E-01
+-1.2948465880541996E-01
+-1.2958299112003252E-01
+-1.2968105469153068E-01
+-1.2977884923610661E-01
+-1.2987637446623046E-01
+-1.2997363010123253E-01
+-1.3007061586988133E-01
+-1.3016733150065951E-01
+-1.3026377671857969E-01
+-1.3035995124869698E-01
+-1.3045585482754291E-01
+-1.3055148719927812E-01
+-1.3064684809993424E-01
+-1.3074193725094943E-01
+-1.3083675437532799E-01
+-1.3093129921204860E-01
+-1.3102557150504940E-01
+-1.3111957099662205E-01
+-1.3121329742761614E-01
+-1.3130675054026136E-01
+-1.3139993008019085E-01
+-1.3149283579171933E-01
+-1.3158546740708124E-01
+-1.3167782465417924E-01
+-1.3176990728442201E-01
+-1.3186171507568825E-01
+-1.3195324779631207E-01
+-1.3204450518113636E-01
+-1.3213548696030350E-01
+-1.3222619288067486E-01
+-1.3231662269840905E-01
+-1.3240677617314847E-01
+-1.3249665306948741E-01
+-1.3258625315338848E-01
+-1.3267557619500003E-01
+-1.3276462196409100E-01
+-1.3285339021132811E-01
+-1.3294188067375157E-01
+-1.3303009310210401E-01
+-1.3311802727364566E-01
+-1.3320568296850052E-01
+-1.3329305996655982E-01
+-1.3338015804698111E-01
+-1.3346697697637652E-01
+-1.3355351650972802E-01
+-1.3363977640945904E-01
+-1.3372575645762494E-01
+-1.3381145643840331E-01
+-1.3389687612977730E-01
+-1.3398201530701140E-01
+-1.3406687374893603E-01
+-1.3415145123867731E-01
+-1.3423574755833745E-01
+-1.3431976248592337E-01
+-1.3440349579947425E-01
+-1.3448694728644783E-01
+-1.3457011673981303E-01
+-1.3465300395055971E-01
+-1.3473560870652551E-01
+-1.3481793079607662E-01
+-1.3489997001124412E-01
+-1.3498172614505813E-01
+-1.3506319899086733E-01
+-1.3514438834227366E-01
+-1.3522529399569197E-01
+-1.3530591575324161E-01
+-1.3538625341739011E-01
+-1.3546630678878116E-01
+-1.3554607566739751E-01
+-1.3562555985397040E-01
+-1.3570475914997637E-01
+-1.3578367336025390E-01
+-1.3586230229854057E-01
+-1.3594064577834442E-01
+-1.3601870359975354E-01
+-1.3609647555677001E-01
+-1.3617396145891325E-01
+-1.3625116113554220E-01
+-1.3632807441323361E-01
+-1.3640470110425654E-01
+-1.3648104101838565E-01
+-1.3655709397313756E-01
+-1.3663285979081932E-01
+-1.3670833828858137E-01
+-1.3678352927495793E-01
+-1.3685843256398708E-01
+-1.3693304799967548E-01
+-1.3700737543292574E-01
+-1.3708141468287149E-01
+-1.3715516554286353E-01
+-1.3722862782654685E-01
+-1.3730180139295467E-01
+-1.3737468610161863E-01
+-1.3744728177771742E-01
+-1.3751958823356120E-01
+-1.3759160529749542E-01
+-1.3766333281475360E-01
+-1.3773477062814768E-01
+-1.3780591857136013E-01
+-1.3787677647793203E-01
+-1.3794734419437393E-01
+-1.3801762157370967E-01
+-1.3808760846173632E-01
+-1.3815730469437665E-01
+-1.3822671010953153E-01
+-1.3829582455532768E-01
+-1.3836464788274541E-01
+-1.3843317994816404E-01
+-1.3850142061151102E-01
+-1.3856936972659484E-01
+-1.3863702713634715E-01
+-1.3870439268620444E-01
+-1.3877146624002057E-01
+-1.3883824766684108E-01
+-1.3890473682412957E-01
+-1.3897093355932999E-01
+-1.3903683772698855E-01
+-1.3910244919879083E-01
+-1.3916776784745816E-01
+-1.3923279353633269E-01
+-1.3929752612503432E-01
+-1.3936196547948845E-01
+-1.3942611147268805E-01
+-1.3948996397673100E-01
+-1.3955352285985706E-01
+-1.3961678799016808E-01
+-1.3967975924141815E-01
+-1.3974243649050130E-01
+-1.3980481961578714E-01
+-1.3986690849773056E-01
+-1.3992870301587743E-01
+-1.3999020304540652E-01
+-1.4005140846131267E-01
+-1.4011231915105352E-01
+-1.4017293501090566E-01
+-1.4023325592759617E-01
+-1.4029328176955441E-01
+-1.4035301240858047E-01
+-1.4041244774593198E-01
+-1.4047158769182383E-01
+-1.4053043213520205E-01
+-1.4058898094541408E-01
+-1.4064723400540033E-01
+-1.4070519123339670E-01
+-1.4076285254849852E-01
+-1.4082021783651433E-01
+-1.4087728696897156E-01
+-1.4093405983899493E-01
+-1.4099053636549977E-01
+-1.4104671646463515E-01
+-1.4110260003854869E-01
+-1.4115818698650895E-01
+-1.4121347720747290E-01
+-1.4126847060036654E-01
+-1.4132316707282153E-01
+-1.4137756654586672E-01
+-1.4143166893838738E-01
+-1.4148547415483784E-01
+-1.4153898209676122E-01
+-1.4159219268077747E-01
+-1.4164510583494588E-01
+-1.4169772148198304E-01
+-1.4175003953329796E-01
+-1.4180205990007644E-01
+-1.4185378250005595E-01
+-1.4190520725367656E-01
+-1.4195633408813754E-01
+-1.4200716293726837E-01
+-1.4205769373219590E-01
+-1.4210792639614264E-01
+-1.4215786085101167E-01
+-1.4220749701832047E-01
+-1.4225683481978810E-01
+-1.4230587419093185E-01
+-1.4235461508474537E-01
+-1.4240305744761228E-01
+-1.4245120119869850E-01
+-1.4249904625340140E-01
+-1.4254659255147822E-01
+-1.4259384004784811E-01
+-1.4264078869065314E-01
+-1.4268743841651046E-01
+-1.4273378916119339E-01
+-1.4277984086143608E-01
+-1.4282559345532272E-01
+-1.4287104689788471E-01
+-1.4291620115782586E-01
+-1.4296105619252636E-01
+-1.4300561193422984E-01
+-1.4304986831599628E-01
+-1.4309382529644724E-01
+-1.4313748284366726E-01
+-1.4318084091245431E-01
+-1.4322389944370587E-01
+-1.4326665838664407E-01
+-1.4330911771579127E-01
+-1.4335127740755502E-01
+-1.4339313741596699E-01
+-1.4343469768395120E-01
+-1.4347595816902214E-01
+-1.4351691884848716E-01
+-1.4355757969784150E-01
+-1.4359794068036028E-01
+-1.4363800175738917E-01
+-1.4367776290144380E-01
+-1.4371722409241086E-01
+-1.4375638530214752E-01
+-1.4379524648819156E-01
+-1.4383380761205025E-01
+-1.4387206866241711E-01
+-1.4391002963564992E-01
+-1.4394769051144274E-01
+-1.4398505125514391E-01
+-1.4402211183649022E-01
+-1.4405887223628319E-01
+-1.4409533243848899E-01
+-1.4413149243789122E-01
+-1.4416735223332433E-01
+-1.4420291180966330E-01
+-1.4423817113624138E-01
+-1.4427313018926805E-01
+-1.4430778896813881E-01
+-1.4434214747539686E-01
+-1.4437620570169984E-01
+-1.4440996363143421E-01
+-1.4444342125917506E-01
+-1.4447657859420288E-01
+-1.4450943564188562E-01
+-1.4454199238698204E-01
+-1.4457424881091449E-01
+-1.4460620491955714E-01
+-1.4463786073606491E-01
+-1.4466921627207377E-01
+-1.4470027151697307E-01
+-1.4473102646157354E-01
+-1.4476148111739218E-01
+-1.4479163550255797E-01
+-1.4482148962682670E-01
+-1.4485104349228550E-01
+-1.4488029710557013E-01
+-1.4490925048505973E-01
+-1.4493790365079104E-01
+-1.4496625662164694E-01
+-1.4499430941589050E-01
+-1.4502206204727044E-01
+-1.4504951452418491E-01
+-1.4507666686004089E-01
+-1.4510351908537661E-01
+-1.4513007123306748E-01
+-1.4515632332389047E-01
+-1.4518227537172235E-01
+-1.4520792739805496E-01
+-1.4523327943613126E-01
+-1.4525833151917630E-01
+-1.4528308367578993E-01
+-1.4530753593366219E-01
+-1.4533168832479762E-01
+-1.4535554088447009E-01
+-1.4537909364620891E-01
+-1.4540234663983240E-01
+-1.4542529989666414E-01
+-1.4544795345906472E-01
+-1.4547030737329100E-01
+-1.4549236168233567E-01
+-1.4551411642599710E-01
+-1.4553557164223596E-01
+-1.4555672736442415E-01
+-1.4557758362806095E-01
+-1.4559814049100167E-01
+-1.4561839802128618E-01
+-1.4563835626787722E-01
+-1.4565801525560415E-01
+-1.4567737501850433E-01
+-1.4569643562789575E-01
+-1.4571519716057160E-01
+-1.4573365966333449E-01
+-1.4575182316467056E-01
+-1.4576968771462123E-01
+-1.4578725339878751E-01
+-1.4580452029691565E-01
+-1.4582148844581569E-01
+-1.4583815787220172E-01
+-1.4585452864079768E-01
+-1.4587060084686376E-01
+-1.4588637456927428E-01
+-1.4590184985007737E-01
+-1.4591702673244331E-01
+-1.4593190529586839E-01
+-1.4594648563326124E-01
+-1.4596076781961062E-01
+-1.4597475191125811E-01
+-1.4598843796960223E-01
+-1.4600182607251577E-01
+-1.4601491630028512E-01
+-1.4602770872868345E-01
+-1.4604020343128066E-01
+-1.4605240048375709E-01
+-1.4606429996461406E-01
+-1.4607590195365625E-01
+-1.4608720653457771E-01
+-1.4609821379246360E-01
+-1.4610892381736271E-01
+-1.4611933670256202E-01
+-1.4612945253408532E-01
+-1.4613927138514937E-01
+-1.4614879333092479E-01
+-1.4615801846246615E-01
+-1.4616694687583795E-01
+-1.4617557866663267E-01
+-1.4618391393005070E-01
+-1.4619195276105063E-01
+-1.4619969525394089E-01
+-1.4620714150359163E-01
+-1.4621429160876717E-01
+-1.4622114566984074E-01
+-1.4622770378533848E-01
+-1.4623396605172920E-01
+-1.4623993256795748E-01
+-1.4624560344053372E-01
+-1.4625097877717563E-01
+-1.4625605868290883E-01
+-1.4626084326140434E-01
+-1.4626533261926677E-01
+-1.4626952686726363E-01
+-1.4627342611556232E-01
+-1.4627703047032467E-01
+-1.4628034003752807E-01
+-1.4628335493298442E-01
+-1.4628607527945864E-01
+-1.4628850119702300E-01
+-1.4629063280038535E-01
+-1.4629247020384487E-01
+-1.4629401352219348E-01
+-1.4629526287063935E-01
+-1.4629621836790346E-01
+-1.4629688013592929E-01
+-1.4629724829920146E-01
+-1.4629732298793749E-01
+-1.4629710433285048E-01
+-1.4629659246138396E-01
+-1.4629578749952138E-01
+-1.4629468957093406E-01
+-1.4629329879656114E-01
+-1.4629161530293341E-01
+-1.4628963923487900E-01
+-1.4628737073917142E-01
+-1.4628480994410920E-01
+-1.4628195696748755E-01
+-1.4627881193646783E-01
+-1.4627537499259707E-01
+-1.4627164627942596E-01
+-1.4626762594356735E-01
+-1.4626331413232713E-01
+-1.4625871098983134E-01
+-1.4625381665780640E-01
+-1.4624863127289589E-01
+-1.4624315496167486E-01
+-1.4623738785573873E-01
+-1.4623133012215495E-01
+-1.4622498193963837E-01
+-1.4621834346087587E-01
+-1.4621141481329131E-01
+-1.4620419613164540E-01
+-1.4619668757232196E-01
+-1.4618888929482807E-01
+-1.4618080145514301E-01
+-1.4617242420774568E-01
+-1.4616375771087456E-01
+-1.4615480212745402E-01
+-1.4614555761889292E-01
+-1.4613602434001741E-01
+-1.4612620244505514E-01
+-1.4611609209627086E-01
+-1.4610569346091354E-01
+-1.4609500670372166E-01
+-1.4608403198515971E-01
+-1.4607276946782591E-01
+-1.4606121932557772E-01
+-1.4604938173487680E-01
+-1.4603725686027386E-01
+-1.4602484485687467E-01
+-1.4601214589073003E-01
+-1.4599916015145320E-01
+-1.4598588782807800E-01
+-1.4597232908665206E-01
+-1.4595848408507583E-01
+-1.4594435299653383E-01
+-1.4592993601000659E-01
+-1.4591523331077783E-01
+-1.4590024507154808E-01
+-1.4588497146494134E-01
+-1.4586941268062240E-01
+-1.4585356891661042E-01
+-1.4583744035668175E-01
+-1.4582102716548853E-01
+-1.4580432951378594E-01
+-1.4578734759960721E-01
+-1.4577008162661728E-01
+-1.4575253178876799E-01
+-1.4573469827362559E-01
+-1.4571658126595524E-01
+-1.4569818094577111E-01
+-1.4567949749699308E-01
+-1.4566053112483679E-01
+-1.4564128204042995E-01
+-1.4562175044076242E-01
+-1.4560193651082437E-01
+-1.4558184044197067E-01
+-1.4556146244063178E-01
+-1.4554080271434452E-01
+-1.4551986146340951E-01
+-1.4549863888530448E-01
+-1.4547713517956240E-01
+-1.4545535054797223E-01
+-1.4543328519549420E-01
+-1.4541093933593330E-01
+-1.4538831318354728E-01
+-1.4536540694052993E-01
+-1.4534222080287748E-01
+-1.4531875497877403E-01
+-1.4529500969373041E-01
+-1.4527098516982012E-01
+-1.4524668160968834E-01
+-1.4522209921258986E-01
+-1.4519723819546637E-01
+-1.4517209878765530E-01
+-1.4514668121150814E-01
+-1.4512098567588758E-01
+-1.4509501239105893E-01
+-1.4506876158198345E-01
+-1.4504223347836206E-01
+-1.4501542830481981E-01
+-1.4498834628139123E-01
+-1.4496098762842627E-01
+-1.4493335256722181E-01
+-1.4490544131983882E-01
+-1.4487725411201424E-01
+-1.4484879117139060E-01
+-1.4482005273173715E-01
+-1.4479103903395116E-01
+-1.4476175031482880E-01
+-1.4473218679637784E-01
+-1.4470234869905776E-01
+-1.4467223625629427E-01
+-1.4464184970900745E-01
+-1.4461118929531444E-01
+-1.4458025524887158E-01
+-1.4454904780482747E-01
+-1.4451756720582173E-01
+-1.4448581369596808E-01
+-1.4445378751010635E-01
+-1.4442148887628109E-01
+-1.4438891803497886E-01
+-1.4435607525133887E-01
+-1.4432296078790563E-01
+-1.4428957487496352E-01
+-1.4425591773245583E-01
+-1.4422198960378024E-01
+-1.4418779075497512E-01
+-1.4415332144558318E-01
+-1.4411858191569032E-01
+-1.4408357240387071E-01
+-1.4404829316021225E-01
+-1.4401274444048257E-01
+-1.4397692650631574E-01
+-1.4394083962656556E-01
+-1.4390448406408404E-01
+-1.4386786005912008E-01
+-1.4383096784887242E-01
+-1.4379380768892380E-01
+-1.4375637984624140E-01
+-1.4371868458887643E-01
+-1.4368072218625186E-01
+-1.4364249290506714E-01
+-1.4360399699832122E-01
+-1.4356523471607008E-01
+-1.4352620632229812E-01
+-1.4348691209210049E-01
+-1.4344735229857905E-01
+-1.4340752720980532E-01
+-1.4336743709223129E-01
+-1.4332708220539689E-01
+-1.4328646280696622E-01
+-1.4324557917068778E-01
+-1.4320443158681873E-01
+-1.4316302033930872E-01
+-1.4312134569223608E-01
+-1.4307940790751086E-01
+-1.4303720725649238E-01
+-1.4299474401546575E-01
+-1.4295201846408859E-01
+-1.4290903088638010E-01
+-1.4286578156527685E-01
+-1.4282227077814719E-01
+-1.4277849880161789E-01
+-1.4273446591724137E-01
+-1.4269017240983822E-01
+-1.4264561856242189E-01
+-1.4260080465467276E-01
+-1.4255573096818427E-01
+-1.4251039779498809E-01
+-1.4246480542991286E-01
+-1.4241895415825773E-01
+-1.4237284425730365E-01
+-1.4232647601055953E-01
+-1.4227984971586985E-01
+-1.4223296567176585E-01
+-1.4218582416738493E-01
+-1.4213842548844580E-01
+-1.4209076992946343E-01
+-1.4204285779455486E-01
+-1.4199468938340609E-01
+-1.4194626498074320E-01
+-1.4189758487107071E-01
+-1.4184864936097644E-01
+-1.4179945876861347E-01
+-1.4175001339394636E-01
+-1.4170031351103360E-01
+-1.4165035940197937E-01
+-1.4160015138804866E-01
+-1.4154968979874658E-01
+-1.4149897494277100E-01
+-1.4144800711434960E-01
+-1.4139678660714611E-01
+-1.4134531371417974E-01
+-1.4129358873391692E-01
+-1.4124161199343788E-01
+-1.4118938382788521E-01
+-1.4113690454275557E-01
+-1.4108417441688123E-01
+-1.4103119374515416E-01
+-1.4097796286308295E-01
+-1.4092448210843608E-01
+-1.4087075179116587E-01
+-1.4081677220944017E-01
+-1.4076254367053836E-01
+-1.4070806649236317E-01
+-1.4065334099372176E-01
+-1.4059836749399332E-01
+-1.4054314631260528E-01
+-1.4048767776692236E-01
+-1.4043196217331355E-01
+-1.4037599985388302E-01
+-1.4031979113927767E-01
+-1.4026333635830615E-01
+-1.4020663582834875E-01
+-1.4014968986457332E-01
+-1.4009249879204075E-01
+-1.4003506294317850E-01
+-1.3997738264575391E-01
+-1.3991945821788906E-01
+-1.3986128997994537E-01
+-1.3980287827066323E-01
+-1.3974422343455264E-01
+-1.3968532579728113E-01
+-1.3962618566646814E-01
+-1.3956680336254748E-01
+-1.3950717924046691E-01
+-1.3944731365742330E-01
+-1.3938720694437431E-01
+-1.3932685942037215E-01
+-1.3926627141415326E-01
+-1.3920544326647749E-01
+-1.3914437531716933E-01
+-1.3908306789984234E-01
+-1.3902152134782986E-01
+-1.3895973600419739E-01
+-1.3889771221794148E-01
+-1.3883545033182645E-01
+-1.3877295067837078E-01
+-1.3871021359201374E-01
+-1.3864723941953774E-01
+-1.3858402851145157E-01
+-1.3852058121919747E-01
+-1.3845689789495672E-01
+-1.3839297888409283E-01
+-1.3832882451746445E-01
+-1.3826443512817696E-01
+-1.3819981107345367E-01
+-1.3813495271922935E-01
+-1.3806986041746189E-01
+-1.3800453450582606E-01
+-1.3793897532784591E-01
+-1.3787318324457676E-01
+-1.3780715861878587E-01
+-1.3774090180119428E-01
+-1.3767441313676140E-01
+-1.3760769297695055E-01
+-1.3754074168178657E-01
+-1.3747355961133734E-01
+-1.3740614712315855E-01
+-1.3733850457444521E-01
+-1.3727063232317047E-01
+-1.3720253072789051E-01
+-1.3713420014744770E-01
+-1.3706564094100795E-01
+-1.3699685346773499E-01
+-1.3692783808587972E-01
+-1.3685859515433282E-01
+-1.3678912504543689E-01
+-1.3671942814284196E-01
+-1.3664950481840743E-01
+-1.3657935541662386E-01
+-1.3650898028197997E-01
+-1.3643837978252185E-01
+-1.3636755429588701E-01
+-1.3629650419650169E-01
+-1.3622522985525362E-01
+-1.3615373164167449E-01
+-1.3608200992142400E-01
+-1.3601006506053692E-01
+-1.3593789743352383E-01
+-1.3586550741943751E-01
+-1.3579289539345626E-01
+-1.3572006172517698E-01
+-1.3564700678556998E-01
+-1.3557373095207634E-01
+-1.3550023460354479E-01
+-1.3542651811448636E-01
+-1.3535258185648499E-01
+-1.3527842620270641E-01
+-1.3520405152913079E-01
+-1.3512945821346081E-01
+-1.3505464664008540E-01
+-1.3497961719559351E-01
+-1.3490437026389290E-01
+-1.3482890622650556E-01
+-1.3475322546356547E-01
+-1.3467732835180304E-01
+-1.3460121526849253E-01
+-1.3452488659720926E-01
+-1.3444834272447498E-01
+-1.3437158403934810E-01
+-1.3429461093376877E-01
+-1.3421742379767787E-01
+-1.3414002301373093E-01
+-1.3406240896347435E-01
+-1.3398458203013805E-01
+-1.3390654259815077E-01
+-1.3382829105996866E-01
+-1.3374982781991504E-01
+-1.3367115327912821E-01
+-1.3359226782049641E-01
+-1.3351317182281605E-01
+-1.3343386567312104E-01
+-1.3335434976461141E-01
+-1.3327462449307995E-01
+-1.3319469025887315E-01
+-1.3311454746249171E-01
+-1.3303419650140061E-01
+-1.3295363777200292E-01
+-1.3287287166796030E-01
+-1.3279189858033805E-01
+-1.3271071890290534E-01
+-1.3262933303627111E-01
+-1.3254774138255979E-01
+-1.3246594434601072E-01
+-1.3238394233169454E-01
+-1.3230173573537329E-01
+-1.3221932494129743E-01
+-1.3213671034264329E-01
+-1.3205389236478957E-01
+-1.3197087143704955E-01
+-1.3188764795593494E-01
+-1.3180422229836852E-01
+-1.3172059485749424E-01
+-1.3163676605259925E-01
+-1.3155273630148587E-01
+-1.3146850600387427E-01
+-1.3138407555546214E-01
+-1.3129944536682209E-01
+-1.3121461586023395E-01
+-1.3112958745100636E-01
+-1.3104436053908089E-01
+-1.3095893552438062E-01
+-1.3087331281741152E-01
+-1.3078749283281074E-01
+-1.3070147598512802E-01
+-1.3061526268881032E-01
+-1.3052885335537803E-01
+-1.3044224838798432E-01
+-1.3035544819110850E-01
+-1.3026845319075062E-01
+-1.3018126382322526E-01
+-1.3009388050509252E-01
+-1.3000630362686494E-01
+-1.2991853358587185E-01
+-1.2983057081015303E-01
+-1.2974241573393586E-01
+-1.2965406878010077E-01
+-1.2956553036425122E-01
+-1.2947680090102565E-01
+-1.2938788080347463E-01
+-1.2929877048653823E-01
+-1.2920947037433383E-01
+-1.2911998089355009E-01
+-1.2903030246446051E-01
+-1.2894043550202888E-01
+-1.2885038042656113E-01
+-1.2876013767030747E-01
+-1.2866970766504890E-01
+-1.2857909082777744E-01
+-1.2848828756995070E-01
+-1.2839729831143576E-01
+-1.2830612348118348E-01
+-1.2821476351095643E-01
+-1.2812321883900674E-01
+-1.2803148990249280E-01
+-1.2793957711646511E-01
+-1.2784748088471409E-01
+-1.2775520162787843E-01
+-1.2766273979015252E-01
+-1.2757009581478498E-01
+-1.2747727013384275E-01
+-1.2738426317631857E-01
+-1.2729107536480636E-01
+-1.2719770711764991E-01
+-1.2710415886204546E-01
+-1.2701043104118478E-01
+-1.2691652409808327E-01
+-1.2682243846508540E-01
+-1.2672817457125554E-01
+-1.2663373284679411E-01
+-1.2653911372294938E-01
+-1.2644431763378070E-01
+-1.2634934501961811E-01
+-1.2625419632007603E-01
+-1.2615887196201425E-01
+-1.2606337236741325E-01
+-1.2596769797367113E-01
+-1.2587184923589165E-01
+-1.2577582660208519E-01
+-1.2567963049442124E-01
+-1.2558326133307413E-01
+-1.2548671956666149E-01
+-1.2539000565963404E-01
+-1.2529312005642443E-01
+-1.2519606317134377E-01
+-1.2509883542478109E-01
+-1.2500143727227456E-01
+-1.2490386917717136E-01
+-1.2480613158064123E-01
+-1.2470822490771705E-01
+-1.2461014959417985E-01
+-1.2451190609709040E-01
+-1.2441349487160074E-01
+-1.2431491634740124E-01
+-1.2421617094649194E-01
+-1.2411725911369056E-01
+-1.2401818131545890E-01
+-1.2391893801190805E-01
+-1.2381952964450678E-01
+-1.2371995665156059E-01
+-1.2362021946814922E-01
+-1.2352031852839374E-01
+-1.2342025428049411E-01
+-1.2332002718982676E-01
+-1.2321963771767475E-01
+-1.2311908630745071E-01
+-1.2301837339900067E-01
+-1.2291749943248427E-01
+-1.2281646484849916E-01
+-1.2271527009767703E-01
+-1.2261391564639018E-01
+-1.2251240195813690E-01
+-1.2241072947638436E-01
+-1.2230889863975794E-01
+-1.2220690989687184E-01
+-1.2210476370419879E-01
+-1.2200246051748931E-01
+-1.2190000079032695E-01
+-1.2179738497595587E-01
+-1.2169461352613205E-01
+-1.2159168689210889E-01
+-1.2148860552313824E-01
+-1.2138536986645862E-01
+-1.2128198037459481E-01
+-1.2117843751428856E-01
+-1.2107474175313253E-01
+-1.2097089354448384E-01
+-1.2086689333494155E-01
+-1.2076274157728845E-01
+-1.2065843873234924E-01
+-1.2055398525892581E-01
+-1.2044938160596295E-01
+-1.2034462822169871E-01
+-1.2023972557010597E-01
+-1.2013467412521313E-01
+-1.2002947434928948E-01
+-1.1992412668431600E-01
+-1.1981863157535359E-01
+-1.1971298949107002E-01
+-1.1960720090655401E-01
+-1.1950126628200879E-01
+-1.1939518606531496E-01
+-1.1928896071074840E-01
+-1.1918259068723902E-01
+-1.1907607646352646E-01
+-1.1896941849317542E-01
+-1.1886261722440181E-01
+-1.1875567312155919E-01
+-1.1864858666632430E-01
+-1.1854135833323524E-01
+-1.1843398857312268E-01
+-1.1832647783374356E-01
+-1.1821882657224680E-01
+-1.1811103525098320E-01
+-1.1800310433857226E-01
+-1.1789503431217055E-01
+-1.1778682564354005E-01
+-1.1767847878038985E-01
+-1.1756999416714391E-01
+-1.1746137227852979E-01
+-1.1735261360991554E-01
+-1.1724371863686807E-01
+-1.1713468779839900E-01
+-1.1702552153704454E-01
+-1.1691622033276935E-01
+-1.1680678467655163E-01
+-1.1669721503517061E-01
+-1.1658751185402280E-01
+-1.1647767558867590E-01
+-1.1636770672011086E-01
+-1.1625760573025569E-01
+-1.1614737308068009E-01
+-1.1603700922482083E-01
+-1.1592651463064527E-01
+-1.1581588978272601E-01
+-1.1570513515880232E-01
+-1.1559425121196301E-01
+-1.1548323839323324E-01
+-1.1537209717857254E-01
+-1.1526082805786517E-01
+-1.1514943150973005E-01
+-1.1503790799580649E-01
+-1.1492625797709144E-01
+-1.1481448191691966E-01
+-1.1470258028012661E-01
+-1.1459055354164142E-01
+-1.1447840218378580E-01
+-1.1436612668401251E-01
+-1.1425372750988086E-01
+-1.1414120512918062E-01
+-1.1402856001630288E-01
+-1.1391579264756824E-01
+-1.1380290348858335E-01
+-1.1368989299488765E-01
+-1.1357676163216565E-01
+-1.1346350989233028E-01
+-1.1335013826810787E-01
+-1.1323664722608373E-01
+-1.1312303722134885E-01
+-1.1300930872240279E-01
+-1.1289546221407497E-01
+-1.1278149817798094E-01
+-1.1266741708114379E-01
+-1.1255321938883150E-01
+-1.1243890557824920E-01
+-1.1232447613375790E-01
+-1.1220993153331267E-01
+-1.1209527224449986E-01
+-1.1198049873640750E-01
+-1.1186561148819589E-01
+-1.1175061098127233E-01
+-1.1163549768588538E-01
+-1.1152027206372413E-01
+-1.1140493458594795E-01
+-1.1128948574335708E-01
+-1.1117392602656755E-01
+-1.1105825590949299E-01
+-1.1094247585986787E-01
+-1.1082658634333595E-01
+-1.1071058782347254E-01
+-1.1059448077494678E-01
+-1.1047826570224287E-01
+-1.1036194310904025E-01
+-1.1024551344996369E-01
+-1.1012897715671861E-01
+-1.1001233470171572E-01
+-1.0989558661020159E-01
+-1.0977873339322253E-01
+-1.0966177549754083E-01
+-1.0954471335944041E-01
+-1.0942754745895632E-01
+-1.0931027830397466E-01
+-1.0919290638577951E-01
+-1.0907543216688521E-01
+-1.0895785611058875E-01
+-1.0884017869640865E-01
+-1.0872240040865903E-01
+-1.0860452172768563E-01
+-1.0848654313060327E-01
+-1.0836846509698773E-01
+-1.0825028811174682E-01
+-1.0813201265829392E-01
+-1.0801363920461778E-01
+-1.0789516821323872E-01
+-1.0777660016111507E-01
+-1.0765793554061766E-01
+-1.0753917484052344E-01
+-1.0742031853660941E-01
+-1.0730136710326901E-01
+-1.0718232102186030E-01
+-1.0706318077729406E-01
+-1.0694394684517797E-01
+-1.0682461968816401E-01
+-1.0670519977605718E-01
+-1.0658568760931217E-01
+-1.0646608369323840E-01
+-1.0634638849915551E-01
+-1.0622660247550501E-01
+-1.0610672609074584E-01
+-1.0598675984975471E-01
+-1.0586670425333378E-01
+-1.0574655976073123E-01
+-1.0562632682002475E-01
+-1.0550600591798202E-01
+-1.0538559757540540E-01
+-1.0526510229215001E-01
+-1.0514452051597373E-01
+-1.0502385269261121E-01
+-1.0490309930464173E-01
+-1.0478226085036177E-01
+-1.0466133782356353E-01
+-1.0454033071281937E-01
+-1.0441923999935873E-01
+-1.0429806614205217E-01
+-1.0417680959872168E-01
+-1.0405547085720182E-01
+-1.0393405042188060E-01
+-1.0381254877956315E-01
+-1.0369096639086367E-01
+-1.0356930372091207E-01
+-1.0344756126157305E-01
+-1.0332573951046828E-01
+-1.0320383894693190E-01
+-1.0308186003712907E-01
+-1.0295980325234154E-01
+-1.0283766907397947E-01
+-1.0271545798574158E-01
+-1.0259317047678464E-01
+-1.0247080703762390E-01
+-1.0234836814493660E-01
+-1.0222585426245841E-01
+-1.0210326586066534E-01
+-1.0198060342784961E-01
+-1.0185786745342948E-01
+-1.0173505841330856E-01
+-1.0161217677761518E-01
+-1.0148922302572483E-01
+-1.0136619764818289E-01
+-1.0124310113195921E-01
+-1.0111993394940177E-01
+-1.0099669657055158E-01
+-1.0087338947140899E-01
+-1.0075001313164456E-01
+-1.0062656803236338E-01
+-1.0050305465671223E-01
+-1.0037947348784228E-01
+-1.0025582500740825E-01
+-1.0013210969637584E-01
+-1.0000832802926053E-01
+-9.9884480475671847E-02
+-9.9760567509243586E-02
+-9.9636589611838827E-02
+-9.9512547266541976E-02
+-9.9388440956745469E-02
+-9.9264271165824147E-02
+-9.9140038370965328E-02
+-9.9015743043190080E-02
+-9.8891385656864006E-02
+-9.8766966695677291E-02
+-9.8642486643322994E-02
+-9.8517945969537848E-02
+-9.8393345137781418E-02
+-9.8268684627615302E-02
+-9.8143964939314488E-02
+-9.8019186565262276E-02
+-9.7894349964224706E-02
+-9.7769455590016055E-02
+-9.7644503923779838E-02
+-9.7519495463942882E-02
+-9.7394430695912984E-02
+-9.7269310082779822E-02
+-9.7144134089556036E-02
+-9.7018903199822204E-02
+-9.6893617901834664E-02
+-9.6768278666927693E-02
+-9.6642885952616317E-02
+-9.6517440228903989E-02
+-9.6391941993628882E-02
+-9.6266391744057753E-02
+-9.6140789949075572E-02
+-9.6015137066715731E-02
+-9.5889433562256321E-02
+-9.5763679908686047E-02
+-9.5637876584897641E-02
+-9.5512024085282712E-02
+-9.5386122903799345E-02
+-9.5260173504674209E-02
+-9.5134176337060880E-02
+-9.5008131864099718E-02
+-9.4882040568193299E-02
+-9.4755902931565564E-02
+-9.4629719429822540E-02
+-9.4503490537449233E-02
+-9.4377216732801611E-02
+-9.4250898496873958E-02
+-9.4124536305710063E-02
+-9.3998130626295084E-02
+-9.3871681924396419E-02
+-9.3745190663517927E-02
+-9.3618657307439818E-02
+-9.3492082335787222E-02
+-9.3365466242050790E-02
+-9.3238809509637838E-02
+-9.3112112597113370E-02
+-9.2985375962277697E-02
+-9.2858600081033985E-02
+-9.2731785436586750E-02
+-9.2604932497462433E-02
+-9.2478041715557124E-02
+-9.2351113551771224E-02
+-9.2224148497075956E-02
+-9.2097147045349645E-02
+-9.1970109661464489E-02
+-9.1843036794490143E-02
+-9.1715928905309968E-02
+-9.1588786472199812E-02
+-9.1461609972774860E-02
+-9.1334399875630856E-02
+-9.1207156647412552E-02
+-9.1079880757784296E-02
+-9.0952572678632437E-02
+-9.0825232880057089E-02
+-9.0697861828485202E-02
+-9.0570459990207339E-02
+-9.0443027832171258E-02
+-9.0315565821786056E-02
+-9.0188074428537865E-02
+-9.0060554123853803E-02
+-8.9933005375404426E-02
+-8.9805428641016663E-02
+-8.9677824378798121E-02
+-8.9550193059106345E-02
+-8.9422535157701752E-02
+-8.9294851141439591E-02
+-8.9167141466397606E-02
+-8.9039406593315135E-02
+-8.8911646999995611E-02
+-8.8783863165626073E-02
+-8.8656055545558346E-02
+-8.8528224581328724E-02
+-8.8400370728675334E-02
+-8.8272494465588852E-02
+-8.8144596270221517E-02
+-8.8016676612256178E-02
+-8.7888735958255360E-02
+-8.7760774760997237E-02
+-8.7632793462794401E-02
+-8.7504792517268573E-02
+-8.7376772401283526E-02
+-8.7248733592137168E-02
+-8.7120676552080917E-02
+-8.6992601737890946E-02
+-8.6864509605000972E-02
+-8.6736400607527978E-02
+-8.6608275203731377E-02
+-8.6480133862733441E-02
+-8.6351977053899923E-02
+-8.6223805232831241E-02
+-8.6095618848713584E-02
+-8.5967418356710665E-02
+-8.5839204219633272E-02
+-8.5710976898538974E-02
+-8.5582736846004009E-02
+-8.5454484513830462E-02
+-8.5326220364690675E-02
+-8.5197944868108902E-02
+-8.5069658486569388E-02
+-8.4941361670578086E-02
+-8.4813054870378574E-02
+-8.4684738539636789E-02
+-8.4556413133226899E-02
+-8.4428079106981968E-02
+-8.4299736917542292E-02
+-8.4171387018716445E-02
+-8.4043029857904156E-02
+-8.3914665883945486E-02
+-8.3786295559306320E-02
+-8.3657919351353083E-02
+-8.3529537712409230E-02
+-8.3401151078906832E-02
+-8.3272759893629991E-02
+-8.3144364619318109E-02
+-8.3015965720473428E-02
+-8.2887563644716195E-02
+-8.2759158831221827E-02
+-8.2630751728024490E-02
+-8.2502342795251163E-02
+-8.2373932490819229E-02
+-8.2245521260399509E-02
+-8.2117109547500858E-02
+-8.1988697803221433E-02
+-8.1860286483711575E-02
+-8.1731876034085327E-02
+-8.1603466879636322E-02
+-8.1475059451697446E-02
+-8.1346654222082510E-02
+-8.1218251673660286E-02
+-8.1089852253596786E-02
+-8.0961456378036478E-02
+-8.0833064473113989E-02
+-8.0704676990226085E-02
+-8.0576294383810906E-02
+-8.0447917103713074E-02
+-8.0319545597808920E-02
+-8.0191180309933982E-02
+-8.0062821679370705E-02
+-7.9934470146419787E-02
+-7.9806126154854315E-02
+-7.9677790148609567E-02
+-7.9549462565520299E-02
+-7.9421143840266509E-02
+-7.9292834414226160E-02
+-7.9164534738454584E-02
+-7.9036245262197241E-02
+-7.8907966423624729E-02
+-7.8779698657832589E-02
+-7.8651442394869084E-02
+-7.8523198061315927E-02
+-7.8394966095069046E-02
+-7.8266746955336988E-02
+-7.8138541097988387E-02
+-7.8010348946808236E-02
+-7.7882170915775956E-02
+-7.7754007439667830E-02
+-7.7625858972526093E-02
+-7.7497725959908323E-02
+-7.7369608824308836E-02
+-7.7241507986826399E-02
+-7.7113423883248919E-02
+-7.6985356955890760E-02
+-7.6857307640488814E-02
+-7.6729276364848387E-02
+-7.6601263560391319E-02
+-7.6473269671544455E-02
+-7.6345295143174549E-02
+-7.6217340395777392E-02
+-7.6089405835848625E-02
+-7.5961491887128668E-02
+-7.5833599000193402E-02
+-7.5705727621498964E-02
+-7.5577878168696974E-02
+-7.5450051052652276E-02
+-7.5322246699042708E-02
+-7.5194465544898961E-02
+-7.5066708026418419E-02
+-7.4938974577355960E-02
+-7.4811265628016904E-02
+-7.4683581589253964E-02
+-7.4555922865871385E-02
+-7.4428289884229740E-02
+-7.4300683091933939E-02
+-7.4173102926346351E-02
+-7.4045549795025076E-02
+-7.3918024103882929E-02
+-7.3790526283788280E-02
+-7.3663056777142369E-02
+-7.3535616004472809E-02
+-7.3408204358340293E-02
+-7.3280822242887081E-02
+-7.3153470109042204E-02
+-7.3026148413734268E-02
+-7.2898857564079961E-02
+-7.2771597936324928E-02
+-7.2644369932506003E-02
+-7.2517173997828713E-02
+-7.2390010575240041E-02
+-7.2262880077377523E-02
+-7.2135782908373372E-02
+-7.2008719477443375E-02
+-7.1881690197985834E-02
+-7.1754695486233838E-02
+-7.1627735764052070E-02
+-7.1500811451767884E-02
+-7.1373922954449248E-02
+-7.1247070671783805E-02
+-7.1120255015954398E-02
+-7.0993476412250914E-02
+-7.0866735281949991E-02
+-7.0740032032869257E-02
+-7.0613367070345823E-02
+-7.0486740797670797E-02
+-7.0360153617308713E-02
+-7.0233605938025329E-02
+-7.0107098177070060E-02
+-6.9980630749541459E-02
+-6.9854204059671368E-02
+-6.9727818509748310E-02
+-6.9601474508276695E-02
+-6.9475172467879473E-02
+-6.9348912792594447E-02
+-6.9222695871119538E-02
+-6.9096522095007107E-02
+-6.8970391877571591E-02
+-6.8844305638459877E-02
+-6.8718263785379888E-02
+-6.8592266715726380E-02
+-6.8466314827004771E-02
+-6.8340408517545345E-02
+-6.8214548185871735E-02
+-6.8088734230197859E-02
+-6.7962967048740081E-02
+-6.7837247040780702E-02
+-6.7711574606771199E-02
+-6.7585950145838278E-02
+-6.7460374052567926E-02
+-6.7334846721228525E-02
+-6.7209368550080625E-02
+-6.7083939939512074E-02
+-6.6958561283018747E-02
+-6.6833232964051470E-02
+-6.6707955369695177E-02
+-6.6582728904526919E-02
+-6.6457553976666445E-02
+-6.6332430980663035E-02
+-6.6207360301408488E-02
+-6.6082342321120022E-02
+-6.5957377417257393E-02
+-6.5832465971350757E-02
+-6.5707608389352593E-02
+-6.5582805084154080E-02
+-6.5458056439719220E-02
+-6.5333362813415050E-02
+-6.5208724575918642E-02
+-6.5084142132855974E-02
+-6.4959615892154252E-02
+-6.4835146238856320E-02
+-6.4710733547981264E-02
+-6.4586378199299438E-02
+-6.4462080578252146E-02
+-6.4337841069565901E-02
+-6.4213660054218108E-02
+-6.4089537912127695E-02
+-6.3965475019031645E-02
+-6.3841471748376150E-02
+-6.3717528479295543E-02
+-6.3593645599622425E-02
+-6.3469823496308350E-02
+-6.3346062548738771E-02
+-6.3222363134010862E-02
+-6.3098725624374782E-02
+-6.2975150388453832E-02
+-6.2851637797347482E-02
+-6.2728188227140491E-02
+-6.2604802054457773E-02
+-6.2481479654959204E-02
+-6.2358221404032015E-02
+-6.2235027676767619E-02
+-6.2111898847964253E-02
+-6.1988835288882382E-02
+-6.1865837361269438E-02
+-6.1742905426998618E-02
+-6.1620039860433962E-02
+-6.1497241041733555E-02
+-6.1374509341305401E-02
+-6.1251845117143155E-02
+-6.1129248729111518E-02
+-6.1006720546070300E-02
+-6.0884260938487228E-02
+-6.0761870271639241E-02
+-6.0639548907632693E-02
+-6.0517297209788545E-02
+-6.0395115543402295E-02
+-6.0273004273626994E-02
+-6.0150963763595966E-02
+-6.0028994375614118E-02
+-5.9907096466601070E-02
+-5.9785270389154981E-02
+-5.9663516497161520E-02
+-5.9541835147362894E-02
+-5.9420226698386744E-02
+-5.9298691517783969E-02
+-5.9177229975949368E-02
+-5.9055842425498460E-02
+-5.8934529200501053E-02
+-5.8813290642894783E-02
+-5.8692127119008737E-02
+-5.8571038997548987E-02
+-5.8450026630000963E-02
+-5.8329090359252198E-02
+-5.8208230534290202E-02
+-5.8087447512362174E-02
+-5.7966741649549569E-02
+-5.7846113295000008E-02
+-5.7725562795718374E-02
+-5.7605090491281118E-02
+-5.7484696716460289E-02
+-5.7364381813902951E-02
+-5.7244146140061319E-02
+-5.7123990050667824E-02
+-5.7003913890311987E-02
+-5.6883918000305171E-02
+-5.6764002724333282E-02
+-5.6644168408123259E-02
+-5.6524415391824900E-02
+-5.6404744002530004E-02
+-5.6285154569199650E-02
+-5.6165647445204497E-02
+-5.6046222993370587E-02
+-5.5926881554418183E-02
+-5.5807623444484762E-02
+-5.5688448986245691E-02
+-5.5569358525752045E-02
+-5.5450352411591797E-02
+-5.5331430974032453E-02
+-5.5212594533600196E-02
+-5.5093843420821444E-02
+-5.4975177980645690E-02
+-5.4856598554208304E-02
+-5.4738105462383564E-02
+-5.4619699022506074E-02
+-5.4501379571611837E-02
+-5.4383147460597046E-02
+-5.4265003024965140E-02
+-5.4146946570887505E-02
+-5.4028978405827814E-02
+-5.3911098861116134E-02
+-5.3793308275867903E-02
+-5.3675606982516874E-02
+-5.3557995307366331E-02
+-5.3440473570665260E-02
+-5.3323042078251663E-02
+-5.3205701137584716E-02
+-5.3088451083221258E-02
+-5.2971292261236737E-02
+-5.2854224998007418E-02
+-5.2737249596555916E-02
+-5.2620366361789600E-02
+-5.2503575608835507E-02
+-5.2386877655273160E-02
+-5.2270272821717811E-02
+-5.2153761430510946E-02
+-5.2037343798786537E-02
+-5.1921020235626426E-02
+-5.1804791051261075E-02
+-5.1688656563482205E-02
+-5.1572617091087423E-02
+-5.1456672936518698E-02
+-5.1340824390011364E-02
+-5.1225071756616003E-02
+-5.1109415371329854E-02
+-5.0993855566030866E-02
+-5.0878392633279514E-02
+-5.0763026852594706E-02
+-5.0647758527450459E-02
+-5.0532587984661384E-02
+-5.0417515538833273E-02
+-5.0302541469937144E-02
+-5.0187666057357277E-02
+-5.0072889619512131E-02
+-4.9958212492625380E-02
+-4.9843634982520257E-02
+-4.9729157356635419E-02
+-4.9614779891956770E-02
+-4.9500502906909639E-02
+-4.9386326726256806E-02
+-4.9272251644375098E-02
+-4.9158277936939929E-02
+-4.9044405888014550E-02
+-4.8930635795706279E-02
+-4.8816967959260292E-02
+-4.8703402676840646E-02
+-4.8589940245824373E-02
+-4.8476580954859787E-02
+-4.8363325085611003E-02
+-4.8250172921598056E-02
+-4.8137124750588269E-02
+-4.8024180862108801E-02
+-4.7911341552827225E-02
+-4.7798607121678036E-02
+-4.7685977853853513E-02
+-4.7573454020293039E-02
+-4.7461035897032412E-02
+-4.7348723776056680E-02
+-4.7236517950335601E-02
+-4.7124418696856789E-02
+-4.7012426284714526E-02
+-4.6900540990588699E-02
+-4.6788763101360736E-02
+-4.6677092903563616E-02
+-4.6565530679497584E-02
+-4.6454076709934129E-02
+-4.6342731268252564E-02
+-4.6231494622963665E-02
+-4.6120367041586098E-02
+-4.6009348789995685E-02
+-4.5898440137288533E-02
+-4.5787641369139848E-02
+-4.5676952775462895E-02
+-4.5566374628452033E-02
+-4.5455907185167246E-02
+-4.5345550705584138E-02
+-4.5235305457282923E-02
+-4.5125171709329372E-02
+-4.5015149733256120E-02
+-4.4905239801474622E-02
+-4.4795442180971146E-02
+-4.4685757132731263E-02
+-4.4576184916902371E-02
+-4.4466725791868937E-02
+-4.4357380016344698E-02
+-4.4248147854540648E-02
+-4.4139029573563450E-02
+-4.4030025434247083E-02
+-4.3921135688406492E-02
+-4.3812360589734207E-02
+-4.3703700401971406E-02
+-4.3595155390493176E-02
+-4.3486725808168494E-02
+-4.3378411899128021E-02
+-4.3270213912421363E-02
+-4.3162132106472031E-02
+-4.3054166739871405E-02
+-4.2946318066293669E-02
+-4.2838586337523840E-02
+-4.2730971799479593E-02
+-4.2623474692756028E-02
+-4.2516095261421930E-02
+-4.2408833758329822E-02
+-4.2301690436559895E-02
+-4.2194665540849954E-02
+-4.2087759312356268E-02
+-4.1980971994250070E-02
+-4.1874303832071601E-02
+-4.1767755069833636E-02
+-4.1661325946015536E-02
+-4.1555016698324246E-02
+-4.1448827567283644E-02
+-4.1342758795032651E-02
+-4.1236810620872207E-02
+-4.1130983279722692E-02
+-4.1025277006486865E-02
+-4.0919692037323069E-02
+-4.0814228608582484E-02
+-4.0708886953734431E-02
+-4.0603667304108193E-02
+-4.0498569891467003E-02
+-4.0393594948459885E-02
+-4.0288742707231699E-02
+-4.0184013396071930E-02
+-4.0079407241983132E-02
+-3.9974924473010015E-02
+-3.9870565318207575E-02
+-3.9766330005239645E-02
+-3.9662218757926360E-02
+-3.9558231799486740E-02
+-3.9454369352807099E-02
+-3.9350631640662603E-02
+-3.9247018886050707E-02
+-3.9143531312227989E-02
+-3.9040169141198712E-02
+-3.8936932590409846E-02
+-3.8833821876405897E-02
+-3.8730837216055553E-02
+-3.8627978826449631E-02
+-3.8525246924400527E-02
+-3.8422641726217427E-02
+-3.8320163447538781E-02
+-3.8217812300875467E-02
+-3.8115588497864145E-02
+-3.8013492249890847E-02
+-3.7911523768149623E-02
+-3.7809683262955175E-02
+-3.7707970942704207E-02
+-3.7606387015481205E-02
+-3.7504931688633572E-02
+-3.7403605169224245E-02
+-3.7302407663314184E-02
+-3.7201339375930557E-02
+-3.7100400511106267E-02
+-3.6999591270129660E-02
+-3.6898911854072326E-02
+-3.6798362465781304E-02
+-3.6697943308946011E-02
+-3.6597654583693670E-02
+-3.6497496485382794E-02
+-3.6397469209731165E-02
+-3.6297572954854827E-02
+-3.6197807919231995E-02
+-3.6098174298486330E-02
+-3.5998672286377167E-02
+-3.5899302076048890E-02
+-3.5800063859596602E-02
+-3.5700957828796245E-02
+-3.5601984174139345E-02
+-3.5503143085686160E-02
+-3.5404434752243662E-02
+-3.5305859361560915E-02
+-3.5207417101310909E-02
+-3.5109108158998197E-02
+-3.5010932721737040E-02
+-3.4912890973892975E-02
+-3.4814983098684103E-02
+-3.4717209277986605E-02
+-3.4619569692204318E-02
+-3.4522064522147768E-02
+-3.4424693949960200E-02
+-3.4327458157631961E-02
+-3.4230357323093957E-02
+-3.4133391622114845E-02
+-3.4036561230538526E-02
+-3.3939866324325475E-02
+-3.3843307079156011E-02
+-3.3746883669412038E-02
+-3.3650596269087098E-02
+-3.3554445050841195E-02
+-3.3458430186399393E-02
+-3.3362551845935465E-02
+-3.3266810196759797E-02
+-3.3171205406279394E-02
+-3.3075737643861625E-02
+-3.2980407079384280E-02
+-3.2885213879365008E-02
+-3.2790158207281365E-02
+-3.2695240226295670E-02
+-3.2600460099006669E-02
+-3.2505817987981224E-02
+-3.2411314055902064E-02
+-3.2316948465447193E-02
+-3.2222721376795153E-02
+-3.2128632947198213E-02
+-3.2034683333754956E-02
+-3.1940872693511958E-02
+-3.1847201183419750E-02
+-3.1753668959265131E-02
+-3.1660276176154030E-02
+-3.1567022987595346E-02
+-3.1473909544677166E-02
+-3.1380935998393221E-02
+-3.1288102500067951E-02
+-3.1195409201004182E-02
+-3.1102856250524905E-02
+-3.1010443796481803E-02
+-3.0918171985969304E-02
+-3.0826040964627790E-02
+-3.0734050877818390E-02
+-3.0642201870102477E-02
+-3.0550494085715349E-02
+-3.0458927667490358E-02
+-3.0367502756912298E-02
+-3.0276219495033955E-02
+-3.0185078021876765E-02
+-3.0094078477084302E-02
+-3.0003220998414782E-02
+-2.9912505722749422E-02
+-2.9821932786666793E-02
+-2.9731502326366462E-02
+-2.9641214477219954E-02
+-2.9551069371760587E-02
+-2.9461067141892849E-02
+-2.9371207919040399E-02
+-2.9281491834341339E-02
+-2.9191919018753898E-02
+-2.9102489602933070E-02
+-2.9013203716473774E-02
+-2.8924061484122181E-02
+-2.8835063029411547E-02
+-2.8746208478367601E-02
+-2.8657497958987272E-02
+-2.8568931596663908E-02
+-2.8480509511183742E-02
+-2.8392231822083915E-02
+-2.8304098651601543E-02
+-2.8216110122877742E-02
+-2.8128266355561603E-02
+-2.8040567465722307E-02
+-2.7953013569358597E-02
+-2.7865604782679004E-02
+-2.7778341221795715E-02
+-2.7691223001534808E-02
+-2.7604250236066642E-02
+-2.7517423038627149E-02
+-2.7430741521214049E-02
+-2.7344205795158314E-02
+-2.7257815969581860E-02
+-2.7171572153059313E-02
+-2.7085474453512268E-02
+-2.6999522978430997E-02
+-2.6913717834464373E-02
+-2.6828059126813616E-02
+-2.6742546960345170E-02
+-2.6657181438896158E-02
+-2.6571962665885223E-02
+-2.6486890742749233E-02
+-2.6401965769252085E-02
+-2.6317187845153533E-02
+-2.6232557070301244E-02
+-2.6148073544086645E-02
+-2.6063737362695877E-02
+-2.5979548621031693E-02
+-2.5895507414442218E-02
+-2.5811613838763334E-02
+-2.5727867988741982E-02
+-2.5644269955795950E-02
+-2.5560819830765736E-02
+-2.5477517704720686E-02
+-2.5394363668820485E-02
+-2.5311357812348761E-02
+-2.5228500221938992E-02
+-2.5145790983996680E-02
+-2.5063230184775458E-02
+-2.4980817910385048E-02
+-2.4898554245438829E-02
+-2.4816439273506682E-02
+-2.4734473077592734E-02
+-2.4652655739695040E-02
+-2.4570987341043921E-02
+-2.4489467959319715E-02
+-2.4408097671146853E-02
+-2.4326876555286606E-02
+-2.4245804692416262E-02
+-2.4164882160797471E-02
+-2.4084109032726390E-02
+-2.4003485379934762E-02
+-2.3923011276353694E-02
+-2.3842686796783460E-02
+-2.3762512013111584E-02
+-2.3682486993840478E-02
+-2.3602611807642070E-02
+-2.3522886524321444E-02
+-2.3443311213644707E-02
+-2.3363885942721908E-02
+-2.3284610777126256E-02
+-2.3205485781294860E-02
+-2.3126511017986590E-02
+-2.3047686550049615E-02
+-2.2969012441288100E-02
+-2.2890488755493044E-02
+-2.2812115552624839E-02
+-2.2733892889811796E-02
+-2.2655820825123605E-02
+-2.2577899418596892E-02
+-2.2500128729587034E-02
+-2.2422508812253800E-02
+-2.2345039718986347E-02
+-2.2267721503654823E-02
+-2.2190554221545457E-02
+-2.2113537926414184E-02
+-2.2036672667943999E-02
+-2.1959958495243417E-02
+-2.1883395457970706E-02
+-2.1806983605994968E-02
+-2.1730722987638802E-02
+-2.1654613649313068E-02
+-2.1578655637045085E-02
+-2.1502848995965412E-02
+-2.1427193770803786E-02
+-2.1351690004066511E-02
+-2.1276337736898264E-02
+-2.1201137010224486E-02
+-2.1126087864655800E-02
+-2.1051190340389343E-02
+-2.0976444475884808E-02
+-2.0901850309037646E-02
+-2.0827407876741880E-02
+-2.0753117215093854E-02
+-2.0678978359339087E-02
+-2.0604991343005037E-02
+-2.0531156199175407E-02
+-2.0457472959569803E-02
+-2.0383941655350103E-02
+-2.0310562316855008E-02
+-2.0237334973584684E-02
+-2.0164259654575224E-02
+-2.0091336387709133E-02
+-2.0018565200360827E-02
+-1.9945946117361932E-02
+-1.9873479162278985E-02
+-1.9801164359098053E-02
+-1.9729001732371500E-02
+-1.9656991305864908E-02
+-1.9585133100354746E-02
+-1.9513427135802563E-02
+-1.9441873430755735E-02
+-1.9370472002833164E-02
+-1.9299222869366511E-02
+-1.9228126047237035E-02
+-1.9157181553126516E-02
+-1.9086389403015824E-02
+-1.9015749612481512E-02
+-1.8945262194052466E-02
+-1.8874927157694170E-02
+-1.8804744513504727E-02
+-1.8734714272080448E-02
+-1.8664836443899654E-02
+-1.8595111038307691E-02
+-1.8525538064099387E-02
+-1.8456117527937490E-02
+-1.8386849434177351E-02
+-1.8317733787218991E-02
+-1.8248770591973110E-02
+-1.8179959853086788E-02
+-1.8111301572098178E-02
+-1.8042795748880180E-02
+-1.7974442383360070E-02
+-1.7906241475571873E-02
+-1.7838193025147189E-02
+-1.7770297030167664E-02
+-1.7702553488142956E-02
+-1.7634962394341397E-02
+-1.7567523742473817E-02
+-1.7500237526508072E-02
+-1.7433103740954567E-02
+-1.7366122379841697E-02
+-1.7299293434452485E-02
+-1.7232616895049822E-02
+-1.7166092749972810E-02
+-1.7099720985840072E-02
+-1.7033501590280171E-02
+-1.6967434553508760E-02
+-1.6901519865159299E-02
+-1.6835757508172736E-02
+-1.6770147462648214E-02
+-1.6704689711175700E-02
+-1.6639384239237612E-02
+-1.6574231031218675E-02
+-1.6509230067592851E-02
+-1.6444381327814461E-02
+-1.6379684789096474E-02
+-1.6315140427387600E-02
+-1.6250748219913430E-02
+-1.6186508145842035E-02
+-1.6122420183191773E-02
+-1.6058484304551607E-02
+-1.5994700481173116E-02
+-1.5931068685963810E-02
+-1.5867588893026131E-02
+-1.5804261074434989E-02
+-1.5741085198308948E-02
+-1.5678061232397629E-02
+-1.5615189145084564E-02
+-1.5552468904904982E-02
+-1.5489900479377932E-02
+-1.5427483835049192E-02
+-1.5365218937425157E-02
+-1.5303105749516313E-02
+-1.5241144233733298E-02
+-1.5179334351105210E-02
+-1.5117676062017775E-02
+-1.5056169327503002E-02
+-1.4994814109400532E-02
+-1.4933610368296353E-02
+-1.4872558060454228E-02
+-1.4811657141216534E-02
+-1.4750907566171279E-02
+-1.4690309291027954E-02
+-1.4629862270733481E-02
+-1.4569566459046161E-02
+-1.4509421809086674E-02
+-1.4449428271703041E-02
+-1.4389585797077675E-02
+-1.4329894335506077E-02
+-1.4270353837355134E-02
+-1.4210964251658452E-02
+-1.4151725524729184E-02
+-1.4092637602467751E-02
+-1.4033700430512917E-02
+-1.3974913954315122E-02
+-1.3916278117846225E-02
+-1.3857792863580473E-02
+-1.3799458133738104E-02
+-1.3741273870104678E-02
+-1.3683240014110530E-02
+-1.3625356505124657E-02
+-1.3567623281452560E-02
+-1.3510040280729755E-02
+-1.3452607439740366E-02
+-1.3395324694869346E-02
+-1.3338191981381305E-02
+-1.3281209234210854E-02
+-1.3224376387823918E-02
+-1.3167693376336581E-02
+-1.3111160131616709E-02
+-1.3054776581767376E-02
+-1.2998542655060109E-02
+-1.2942458282545827E-02
+-1.2886523395884874E-02
+-1.2830737923307804E-02
+-1.2775101790169998E-02
+-1.2719614921692208E-02
+-1.2664277243055468E-02
+-1.2609088679166280E-02
+-1.2554049153419193E-02
+-1.2499158588534247E-02
+-1.2444416906353390E-02
+-1.2389824027778057E-02
+-1.2335379873286305E-02
+-1.2281084362353522E-02
+-1.2226937414004270E-02
+-1.2172938945205838E-02
+-1.2119088871803145E-02
+-1.2065387109350312E-02
+-1.2011833573032406E-02
+-1.1958428177786907E-02
+-1.1905170837844922E-02
+-1.1852061467033151E-02
+-1.1799099976746412E-02
+-1.1746286276687177E-02
+-1.1693620276639260E-02
+-1.1641101886641575E-02
+-1.1588731016152544E-02
+-1.1536507571681686E-02
+-1.1484431458783001E-02
+-1.1432502583868400E-02
+-1.1380720854101356E-02
+-1.1329086175248497E-02
+-1.1277598449790573E-02
+-1.1226257579576876E-02
+-1.1175063465679782E-02
+-1.1124016008812828E-02
+-1.1073115110008592E-02
+-1.1022360670677035E-02
+-1.0971752590779225E-02
+-1.0921290765797424E-02
+-1.0870975090538968E-02
+-1.0820805462229839E-02
+-1.0770781779378737E-02
+-1.0720903937471812E-02
+-1.0671171827523045E-02
+-1.0621585340614251E-02
+-1.0572144369823054E-02
+-1.0522848808518087E-02
+-1.0473698547473710E-02
+-1.0424693475543657E-02
+-1.0375833481499787E-02
+-1.0327118454102285E-02
+-1.0278548281781071E-02
+-1.0230122851390777E-02
+-1.0181842049095963E-02
+-1.0133705759046182E-02
+-1.0085713863481975E-02
+-1.0037866245229560E-02
+-9.9901627888921898E-03
+-9.9426033788506639E-03
+-9.8951878960573218E-03
+-9.8479162198299094E-03
+-9.8007882289548355E-03
+-9.7538038015963953E-03
+-9.7069628155442966E-03
+-9.6602651476159294E-03
+-9.6137106743618521E-03
+-9.5672992722177878E-03
+-9.5210308174925821E-03
+-9.4749051846248194E-03
+-9.4289222451428272E-03
+-9.3830818705848539E-03
+-9.3373839339252248E-03
+-9.2918283082650995E-03
+-9.2464148632163106E-03
+-9.2011434656573184E-03
+-9.1560139834003379E-03
+-9.1110262864060512E-03
+-9.0661802442096612E-03
+-9.0214757224959946E-03
+-8.9769125854585741E-03
+-8.9324906972227947E-03
+-8.8882099218475525E-03
+-8.8440701231105173E-03
+-8.8000711641604158E-03
+-8.7562129077347721E-03
+-8.7124952145172137E-03
+-8.6689179441425887E-03
+-8.6254809563748192E-03
+-8.5821841111790587E-03
+-8.5390272674538015E-03
+-8.4960102803916492E-03
+-8.4531330044732549E-03
+-8.4103952962774186E-03
+-8.3677970136765006E-03
+-8.3253380126102582E-03
+-8.2830181457825020E-03
+-8.2408372652311261E-03
+-8.1987952215576802E-03
+-8.1568918649516323E-03
+-8.1151270468708507E-03
+-8.0735006198043354E-03
+-8.0320124344344310E-03
+-7.9906623374965055E-03
+-7.9494501753528662E-03
+-7.9083757957586279E-03
+-7.8674390468837091E-03
+-7.8266397743872070E-03
+-7.7859778212420365E-03
+-7.7454530304749110E-03
+-7.7050652458049186E-03
+-7.6648143108890990E-03
+-7.6247000682644409E-03
+-7.5847223598086771E-03
+-7.5448810260481192E-03
+-7.5051759056795784E-03
+-7.4656068373871549E-03
+-7.4261736605570139E-03
+-7.3868762145090378E-03
+-7.3477143363473970E-03
+-7.3086878616263236E-03
+-7.2697966253138660E-03
+-7.2310404614485922E-03
+-7.1924192039687414E-03
+-7.1539326871261260E-03
+-7.1155807451246979E-03
+-7.0773632104292414E-03
+-7.0392799139558813E-03
+-7.0013306862641289E-03
+-6.9635153573183737E-03
+-6.9258337567049489E-03
+-6.8882857124158035E-03
+-6.8508710517282464E-03
+-6.8135896024794423E-03
+-6.7764411931600689E-03
+-6.7394256510025898E-03
+-6.7025427993891223E-03
+-6.6657924611101061E-03
+-6.6291744611058192E-03
+-6.5926886254313154E-03
+-6.5563347773361568E-03
+-6.5201127359588275E-03
+-6.4840223204613206E-03
+-6.4480633517472862E-03
+-6.4122356510349443E-03
+-6.3765390385028872E-03
+-6.3409733335389011E-03
+-6.3055383546282802E-03
+-6.2702339186447072E-03
+-6.2350598420144827E-03
+-6.2000159400666943E-03
+-6.1651020276803524E-03
+-6.1303179195388666E-03
+-6.0956634301348369E-03
+-6.0611383733278354E-03
+-6.0267425615423932E-03
+-5.9924758068733413E-03
+-5.9583379211343721E-03
+-5.9243287159134184E-03
+-5.8904480012496839E-03
+-5.8566955853250500E-03
+-5.8230712766548049E-03
+-5.7895748854557682E-03
+-5.7562062218022283E-03
+-5.7229650912561190E-03
+-5.6898512966669038E-03
+-5.6568646426982585E-03
+-5.6240049369759163E-03
+-5.5912719865585112E-03
+-5.5586655951172003E-03
+-5.5261855652687679E-03
+-5.4938316990067590E-03
+-5.4616037978180111E-03
+-5.4295016630801713E-03
+-5.3975250960759859E-03
+-5.3656738978480594E-03
+-5.3339478685041665E-03
+-5.3023468076623566E-03
+-5.2708705130625104E-03
+-5.2395187805655517E-03
+-5.2082914065450080E-03
+-5.1771881891407266E-03
+-5.1462089264437899E-03
+-5.1153534143392083E-03
+-5.0846214475501021E-03
+-5.0540128196366850E-03
+-5.0235273226970963E-03
+-4.9931647490914655E-03
+-4.9629248927154255E-03
+-4.9328075474693841E-03
+-4.9028125041902073E-03
+-4.8729395517351157E-03
+-4.8431884799004909E-03
+-4.8135590801779930E-03
+-4.7840511434468882E-03
+-4.7546644572207053E-03
+-4.7253988079570593E-03
+-4.6962539824853692E-03
+-4.6672297679225365E-03
+-4.6383259510141524E-03
+-4.6095423177956131E-03
+-4.5808786539440153E-03
+-4.5523347439207149E-03
+-4.5239103716232998E-03
+-4.4956053204813608E-03
+-4.4674193734332386E-03
+-4.4393523130275827E-03
+-4.4114039209464878E-03
+-4.3835739785725841E-03
+-4.3558622666954750E-03
+-4.3282685657312116E-03
+-4.3007926555031929E-03
+-4.2734343150637576E-03
+-4.2461933231270144E-03
+-4.2190694576047906E-03
+-4.1920624961034820E-03
+-4.1651722157695871E-03
+-4.1383983933963300E-03
+-4.1117408052075309E-03
+-4.0851992265061457E-03
+-4.0587734322931153E-03
+-4.0324631969073143E-03
+-4.0062682943752814E-03
+-3.9801884981810771E-03
+-3.9542235813177012E-03
+-3.9283733164135930E-03
+-3.9026374754253432E-03
+-3.8770158300100851E-03
+-3.8515081509633226E-03
+-3.8261142086387493E-03
+-3.8008337729988702E-03
+-3.7756666135788678E-03
+-3.7506124995685492E-03
+-3.7256711993785959E-03
+-3.7008424811224515E-03
+-3.6761261122674406E-03
+-3.6515218598639739E-03
+-3.6270294905521088E-03
+-3.6026487704284372E-03
+-3.5783794652888890E-03
+-3.5542213401866265E-03
+-3.5301741598654222E-03
+-3.5062376885173726E-03
+-3.4824116899004887E-03
+-3.4586959274048395E-03
+-3.4350901638377546E-03
+-3.4115941617440990E-03
+-3.3882076830302004E-03
+-3.3649304892837384E-03
+-3.3417623415188018E-03
+-3.3187030002053836E-03
+-3.2957522255223815E-03
+-3.2729097771369729E-03
+-3.2501754144878339E-03
+-3.2275488965109490E-03
+-3.2050299818319945E-03
+-3.1826184283634653E-03
+-3.1603139931829071E-03
+-3.1381164332299075E-03
+-3.1160255053992235E-03
+-3.0940409664109154E-03
+-3.0721625721087356E-03
+-3.0503900777641363E-03
+-3.0287232383359552E-03
+-3.0071618083704768E-03
+-2.9857055421704951E-03
+-2.9643541934765258E-03
+-2.9431075157579064E-03
+-2.9219652619231051E-03
+-2.9009271844201074E-03
+-2.8799930354864206E-03
+-2.8591625670724989E-03
+-2.8384355308584265E-03
+-2.8178116776224477E-03
+-2.7972907577333522E-03
+-2.7768725214243240E-03
+-2.7565567187929027E-03
+-2.7363430995465563E-03
+-2.7162314125511286E-03
+-2.6962214064012503E-03
+-2.6763128293115566E-03
+-2.6565054292466282E-03
+-2.6367989539131287E-03
+-2.6171931507217574E-03
+-2.5976877667754053E-03
+-2.5782825484297390E-03
+-2.5589772417621572E-03
+-2.5397715925220997E-03
+-2.5206653462044484E-03
+-2.5016582479984177E-03
+-2.4827500426682081E-03
+-2.4639404747325167E-03
+-2.4452292881309923E-03
+-2.4266162265364440E-03
+-2.4081010333495854E-03
+-2.3896834517248096E-03
+-2.3713632245146352E-03
+-2.3531400940653819E-03
+-2.3350138025129818E-03
+-2.3169840916248325E-03
+-2.2990507029389340E-03
+-2.2812133776239406E-03
+-2.2634718564644783E-03
+-2.2458258799701808E-03
+-2.2282751881264164E-03
+-2.2108195207305920E-03
+-2.1934586175104908E-03
+-2.1761922180891799E-03
+-2.1590200615380023E-03
+-2.1419418862188774E-03
+-2.1249574303577844E-03
+-2.1080664321697583E-03
+-2.0912686297412733E-03
+-2.0745637606308922E-03
+-2.0579515619998101E-03
+-2.0414317708116235E-03
+-2.0250041237839154E-03
+-2.0086683574381710E-03
+-1.9924242078623558E-03
+-1.9762714109181159E-03
+-1.9602097022670658E-03
+-1.9442388173801580E-03
+-1.9283584914676043E-03
+-1.9125684593021286E-03
+-1.8968684554785357E-03
+-1.8812582143980525E-03
+-1.8657374702990080E-03
+-1.8503059570117819E-03
+-1.8349634079227143E-03
+-1.8197095563147136E-03
+-1.8045441354615701E-03
+-1.7894668785031814E-03
+-1.7744775181492778E-03
+-1.7595757868146193E-03
+-1.7447614167310629E-03
+-1.7300341399234444E-03
+-1.7153936882470576E-03
+-1.7008397932728194E-03
+-1.6863721863968513E-03
+-1.6719905987619430E-03
+-1.6576947612931636E-03
+-1.6434844047356714E-03
+-1.6293592596089844E-03
+-1.6153190562977723E-03
+-1.6013635250658298E-03
+-1.5874923960411255E-03
+-1.5737053989664154E-03
+-1.5600022632177380E-03
+-1.5463827181158921E-03
+-1.5328464930519845E-03
+-1.5193933172838534E-03
+-1.5060229196543432E-03
+-1.4927350287530499E-03
+-1.4795293731301650E-03
+-1.4664056813141352E-03
+-1.4533636816494186E-03
+-1.4404031021392840E-03
+-1.4275236706172291E-03
+-1.4147251147859467E-03
+-1.4020071622206356E-03
+-1.3893695404260185E-03
+-1.3768119768658297E-03
+-1.3643341988342846E-03
+-1.3519359332706028E-03
+-1.3396169069380785E-03
+-1.3273768466595638E-03
+-1.3152154792737732E-03
+-1.3031325313936147E-03
+-1.2911277292956963E-03
+-1.2792007991455254E-03
+-1.2673514672158965E-03
+-1.2555794597364023E-03
+-1.2438845027249329E-03
+-1.2322663219887292E-03
+-1.2207246432417375E-03
+-1.2092591921665156E-03
+-1.1978696943409561E-03
+-1.1865558752544557E-03
+-1.1753174602902423E-03
+-1.1641541747384344E-03
+-1.1530657438046934E-03
+-1.1420518925906284E-03
+-1.1311123461361808E-03
+-1.1202468293939379E-03
+-1.1094550674512300E-03
+-1.0987367854320093E-03
+-1.0880917081488746E-03
+-1.0775195599764529E-03
+-1.0670200652780912E-03
+-1.0565929489680926E-03
+-1.0462379360171971E-03
+-1.0359547509538360E-03
+-1.0257431179235984E-03
+-1.0156027611512538E-03
+-1.0055334051926163E-03
+-9.9553477455694502E-04
+-9.8560659374571881E-04
+-9.7574858718047625E-04
+-9.6596047911517676E-04
+-9.5624199363403045E-04
+-9.4659285484370614E-04
+-9.3701278715012241E-04
+-9.2750151490963073E-04
+-9.1805876234880759E-04
+-9.0868425357242108E-04
+-8.9937771277196442E-04
+-8.9013886430146195E-04
+-8.8096743244368261E-04
+-8.7186314147848719E-04
+-8.6282571560650017E-04
+-8.5385487909476955E-04
+-8.4495035621656408E-04
+-8.3611187129778810E-04
+-8.2733914884678935E-04
+-8.1863191329328464E-04
+-8.0998988901074935E-04
+-8.0141280028985201E-04
+-7.9290037163903164E-04
+-7.8445232774002483E-04
+-7.7606839321017426E-04
+-7.6774829265569683E-04
+-7.5949175063772672E-04
+-7.5129849202005465E-04
+-7.4316824172812373E-04
+-7.3510072471195498E-04
+-7.2709566596299577E-04
+-7.1915279042412267E-04
+-7.1127182311443325E-04
+-7.0345248902960698E-04
+-6.9569451362140892E-04
+-6.8799762253793752E-04
+-6.8036154128123011E-04
+-6.7278599519145839E-04
+-6.6527070963257767E-04
+-6.5781541045351641E-04
+-6.5041982355745938E-04
+-6.4308367500766231E-04
+-6.3580669094909811E-04
+-6.2858859755658605E-04
+-6.2142912115969995E-04
+-6.1432798807191543E-04
+-6.0728492489287706E-04
+-6.0029965825730673E-04
+-5.9337191502306457E-04
+-5.8650142224559050E-04
+-5.7968790699445118E-04
+-5.7293109652128255E-04
+-5.6623071807342996E-04
+-5.5958649929814227E-04
+-5.5299816796398676E-04
+-5.4646545195486068E-04
+-5.3998807931388449E-04
+-5.3356577811387125E-04
+-5.2719827674354376E-04
+-5.2088530361400472E-04
+-5.1462658755893110E-04
+-5.0842185761446371E-04
+-5.0227084287319461E-04
+-4.9617327257290775E-04
+-4.9012887599437268E-04
+-4.8413738290993248E-04
+-4.7819852316742457E-04
+-4.7231202689161888E-04
+-4.6647762439216441E-04
+-4.6069504610442980E-04
+-4.5496402282007783E-04
+-4.4928428535860739E-04
+-4.4365556494569151E-04
+-4.3807759289920032E-04
+-4.3255010083184290E-04
+-4.2707282064476684E-04
+-4.2164548434268668E-04
+-4.1626782435096981E-04
+-4.1093957313386473E-04
+-4.0566046358323871E-04
+-4.0043022874650347E-04
+-3.9524860193381313E-04
+-3.9011531681798262E-04
+-3.8503010715722826E-04
+-3.7999270719302924E-04
+-3.7500285123114757E-04
+-3.7006027400288751E-04
+-3.6516471046818956E-04
+-3.6031589581858033E-04
+-3.5551356569167477E-04
+-3.5075745579806421E-04
+-3.4604730237212586E-04
+-3.4138284175457169E-04
+-3.3676381070935291E-04
+-3.3218994632394915E-04
+-3.2766098586771284E-04
+-3.2317666710372003E-04
+-3.1873672787036350E-04
+-3.1434090659335218E-04
+-3.0998894187846268E-04
+-3.0568057270643361E-04
+-3.0141553845547598E-04
+-2.9719357866016391E-04
+-2.9301443343601069E-04
+-2.8887784298864069E-04
+-2.8478354811130476E-04
+-2.8073128985488461E-04
+-2.7672080959430950E-04
+-2.7275184917765734E-04
+-2.6882415059348861E-04
+-2.6493745651342177E-04
+-2.6109150973853152E-04
+-2.5728605360626696E-04
+-2.5352083178068293E-04
+-2.4979558823239479E-04
+-2.4611006753850274E-04
+-2.4246401439387931E-04
+-2.3885717416921861E-04
+-2.3528929240944851E-04
+-2.3176011519372800E-04
+-2.2826938904922092E-04
+-2.2481686075505455E-04
+-2.2140227776709878E-04
+-2.1802538766187531E-04
+-2.1468593872472498E-04
+-2.1138367949544940E-04
+-2.0811835899325055E-04
+-2.0488972678255960E-04
+-2.0169753264448739E-04
+-1.9854152713227036E-04
+-1.9542146094269180E-04
+-1.9233708545874614E-04
+-1.8928815240240327E-04
+-1.8627441392900555E-04
+-1.8329562285782422E-04
+-1.8035153219041013E-04
+-1.7744189574832826E-04
+-1.7456646754139663E-04
+-1.7172500226076562E-04
+-1.6891725505679221E-04
+-1.6614298144328814E-04
+-1.6340193768212523E-04
+-1.6069388020196562E-04
+-1.5801856629227715E-04
+-1.5537575350271424E-04
+-1.5276520002033855E-04
+-1.5018666461077699E-04
+-1.4763990634869710E-04
+-1.4512468515387662E-04
+-1.4264076111769955E-04
+-1.4018789519714350E-04
+-1.3776584870143439E-04
+-1.3537438351745909E-04
+-1.3301326223343261E-04
+-1.3068224769933806E-04
+-1.2838110369311597E-04
+-1.2610959419443761E-04
+-1.2386748403439595E-04
+-1.2165453851074209E-04
+-1.1947052342311985E-04
+-1.1731520538294962E-04
+-1.1518835123176303E-04
+-1.1308972880918360E-04
+-1.1101910621616365E-04
+-1.0897625235200548E-04
+-1.0696093670140786E-04
+-1.0497292918973958E-04
+-1.0301200068544597E-04
+-1.0107792227090017E-04
+-9.9170466028242866E-05
+-9.7289404379623709E-05
+-9.5434510508919665E-05
+-9.3605558343344794E-05
+-9.1802322170421322E-05
+-9.0024577286872091E-05
+-8.8272099214928412E-05
+-8.6544664508034769E-05
+-8.4842050184082081E-05
+-8.3164033922660490E-05
+-8.1510394258685348E-05
+-7.9880910043021695E-05
+-7.8275361250888421E-05
+-7.6693528125808947E-05
+-7.5135191878104651E-05
+-7.3600134295932177E-05
+-7.2088137763800901E-05
+-7.0598985682396995E-05
+-6.9132461732017748E-05
+-6.7688350758013800E-05
+-6.6266437943586119E-05
+-6.4866509370281846E-05
+-6.3488351830623269E-05
+-6.2131752639655669E-05
+-6.0796500279260081E-05
+-5.9482383499782878E-05
+-5.8189192198048941E-05
+-5.6916716700441597E-05
+-5.5664748188746446E-05
+-5.4433078738190337E-05
+-5.3221500853924548E-05
+-5.2029808279362243E-05
+-5.0857795045990405E-05
+-4.9705256333454204E-05
+-4.8571987885717402E-05
+-4.7457786207323342E-05
+-4.6362448847097532E-05
+-4.5285773719928239E-05
+-4.4227560048911545E-05
+-4.3187607398383365E-05
+-4.2165716444990154E-05
+-4.1161688585118335E-05
+-4.0175325877181225E-05
+-3.9206431569420497E-05
+-3.8254809238958114E-05
+-3.7320263805178997E-05
+-3.6402600615902135E-05
+-3.5501626063629159E-05
+-3.4617147429223842E-05
+-3.3748972556959164E-05
+-3.2896910605982699E-05
+-3.2060771059989005E-05
+-3.1240364754008077E-05
+-3.0435503075644489E-05
+-2.9645998360423207E-05
+-2.8871664000356697E-05
+-2.8112313866896989E-05
+-2.7367763255532748E-05
+-2.6637827815829915E-05
+-2.5922324512728389E-05
+-2.5221071012056296E-05
+-2.4533885822962783E-05
+-2.3860588682662877E-05
+-2.3200999743672472E-05
+-2.2554940653809281E-05
+-2.1922233482117965E-05
+-2.1302701548139890E-05
+-2.0696169042568337E-05
+-2.0102460887717949E-05
+-1.9521403391261483E-05
+-1.8952823243427120E-05
+-1.8396548661240838E-05
+-1.7852408390442053E-05
+-1.7320232335176678E-05
+-1.6799851453934370E-05
+-1.6291097329537879E-05
+-1.5793803066222031E-05
+-1.5307802153529246E-05
+-1.4832929597829065E-05
+-1.4369021077199254E-05
+-1.3915913314959273E-05
+-1.3473444274851892E-05
+-1.3041452454146599E-05
+-1.2619777981464988E-05
+-1.2208261412796787E-05
+-1.1806744766557706E-05
+-1.1415070901082499E-05
+-1.1033083600857591E-05
+-1.0660628078921606E-05
+-1.0297550015159971E-05
+-9.9436967782841585E-06
+-9.5989162476936682E-06
+-9.2630576887733590E-06
+-8.9359714024908030E-06
+-8.6175084867699044E-06
+-8.3075216278896204E-06
+-8.0058639510487062E-06
+-7.7123902942341858E-06
+-7.4269561352966987E-06
+-7.1494182222825244E-06
+-6.8796345375438955E-06
+-6.6174637460391822E-06
+-6.3627662477884830E-06
+-6.1154028937153889E-06
+-5.8752362136705833E-06
+-5.6421295388717485E-06
+-5.4159473448798706E-06
+-5.1965555507802430E-06
+-4.9838206597922241E-06
+-4.7776110079803640E-06
+-4.5777954380754293E-06
+-4.3842444084648691E-06
+-4.1968293739024907E-06
+-4.0154227912244958E-06
+-3.8398987524013030E-06
+-3.6701318702153031E-06
+-3.5059986473377809E-06
+-3.3473761972518761E-06
+-3.1941431458350472E-06
+-3.0461793276526586E-06
+-2.9033654402268198E-06
+-2.7655839894378111E-06
+-2.6327179800815733E-06
+-2.5046523101562153E-06
+-2.3812726378908319E-06
+-2.2624660031665923E-06
+-2.1481208765077795E-06
+-2.0381264652071239E-06
+-1.9323739260101182E-06
+-1.8307549382985746E-06
+-1.7331630303884202E-06
+-1.6394926781349244E-06
+-1.5496395896960071E-06
+-1.4635011232392726E-06
+-1.3809752738781330E-06
+-1.3019620841974486E-06
+-1.2263621924884995E-06
+-1.1540779985199892E-06
+-1.0850130652247535E-06
+-1.0190720314579710E-06
+-9.5616139113206374E-07
+-8.9618821494809214E-07
+-8.3906166372703315E-07
+-7.8469161920758900E-07
+-7.3298960081373045E-07
+-6.8386852498144298E-07
+-6.3724223243528717E-07
+-5.9302659746188971E-07
+-5.5113805803516372E-07
+-5.1149512921998357E-07
+-4.7401721986305185E-07
+-4.3862522492195062E-07
+-4.0524167649784477E-07
+-3.7378989761254867E-07
+-3.4419538539944439E-07
+-3.1638423837153242E-07
+-2.9028456799446366E-07
+-2.6582559051198878E-07
+-2.4293784044872722E-07
+-2.2155372356109570E-07
+-2.0160633578841759E-07
+-1.8303103638892896E-07
+-1.6576387826786613E-07
+-1.4974281872359629E-07
+-1.3490715871662587E-07
+-1.2119734527805726E-07
+-1.0855591079076116E-07
+-9.6926023510697599E-08
+-8.6253142811747643E-08
+-7.6483570280147638E-08
+-6.7565366022824746E-08
+-5.9448188672952328E-08
+-5.2082680027798947E-08
+-4.5421749218780839E-08
+-3.9418939200538479E-08
+-3.4030052304184809E-08
+-2.9211930523291616E-08
+-2.4923002032196035E-08
+-2.1123551603816595E-08
+-1.7774708188211632E-08
+-1.4840004768110087E-08
+-1.2283662211193978E-08
+-1.0072075765680320E-08
+-8.1729161117859187E-09
+-6.5552536844471314E-09
+-5.1902627257924186E-09
+-4.0498623908161411E-09
+-3.1084525876479716E-09
+-2.3412351004530040E-09
+-1.7254578605217315E-09
+-1.2399087068752733E-09
+-8.6458172271089042E-10
+-5.8178382260726852E-10
+-3.7452781396295662E-10
+-2.2836778144045774E-10
+-1.2984454235602814E-10
+-6.7236827672240006E-11
+-3.0505124743462454E-11
+-1.0905646398647518E-11
+-2.8805883124883647E-12
+-1.3797189552921306E-12
+-1.3507849106008097E-12
+-5.9470967841909250E-02
+-5.9484924489087571E-02
+-5.9498861482588324E-02
+-5.9512778827167129E-02
+-5.9526676527579578E-02
+-5.9540554588581249E-02
+-5.9554413014927747E-02
+-5.9568251811374671E-02
+-5.9582070982677621E-02
+-5.9595870533592180E-02
+-5.9609650468873940E-02
+-5.9623410793278500E-02
+-5.9637151511561466E-02
+-5.9650872628478423E-02
+-5.9664574148784962E-02
+-5.9678256077236688E-02
+-5.9691918418589188E-02
+-5.9705561177598065E-02
+-5.9719184359018893E-02
+-5.9732787967607288E-02
+-5.9746372008118859E-02
+-5.9759936485309167E-02
+-5.9773481403933820E-02
+-5.9787006768748409E-02
+-5.9800512584508539E-02
+-5.9813998855969802E-02
+-5.9827465587887790E-02
+-5.9840912785018102E-02
+-5.9854340452116322E-02
+-5.9867748593938057E-02
+-5.9881137215238897E-02
+-5.9894506320774435E-02
+-5.9907855915300276E-02
+-5.9921186003571998E-02
+-5.9934496590345207E-02
+-5.9947787680375501E-02
+-5.9961059278418466E-02
+-5.9974311389229706E-02
+-5.9987544017564801E-02
+-6.0000757168179368E-02
+-6.0013950845828987E-02
+-6.0027125055269262E-02
+-6.0040279801255765E-02
+-6.0053415088544115E-02
+-6.0066530921889898E-02
+-6.0079627306048711E-02
+-6.0092704245776146E-02
+-6.0105761745827803E-02
+-6.0118799810959286E-02
+-6.0131818445926161E-02
+-6.0144817655484045E-02
+-6.0157797444388525E-02
+-6.0170757817395205E-02
+-6.0183698779259664E-02
+-6.0196620334737508E-02
+-6.0209522488584341E-02
+-6.0222405245555735E-02
+-6.0235268610407303E-02
+-6.0248112587894635E-02
+-6.0260937182773325E-02
+-6.0273742399798963E-02
+-6.0286528243727155E-02
+-6.0299294719313487E-02
+-6.0312041831313550E-02
+-6.0324769584482955E-02
+-6.0337477983577290E-02
+-6.0350167033352137E-02
+-6.0362836738563103E-02
+-6.0375487103965800E-02
+-6.0388118134315771E-02
+-6.0400729834368665E-02
+-6.0413322208880058E-02
+-6.0425895262605542E-02
+-6.0438449000300702E-02
+-6.0450983426721158E-02
+-6.0463498546622481E-02
+-6.0475994364760283E-02
+-6.0488470885890142E-02
+-6.0500928114767670E-02
+-6.0513366056148446E-02
+-6.0525784714788082E-02
+-6.0538184095442156E-02
+-6.0550564202866274E-02
+-6.0562925041816026E-02
+-6.0575266617047013E-02
+-6.0587588933314826E-02
+-6.0599891995375056E-02
+-6.0612175807983310E-02
+-6.0624440375895164E-02
+-6.0636685703866225E-02
+-6.0648911796652091E-02
+-6.0661118659008348E-02
+-6.0673306295690593E-02
+-6.0685474711454426E-02
+-6.0697623911055446E-02
+-6.0709753899249229E-02
+-6.0721864680791396E-02
+-6.0733956260437510E-02
+-6.0746028642943192E-02
+-6.0758081833064040E-02
+-6.0770115835555624E-02
+-6.0782130655173558E-02
+-6.0794126296673426E-02
+-6.0806102764810827E-02
+-6.0818060064341359E-02
+-6.0829998200020621E-02
+-6.0841917176604199E-02
+-6.0853816998847690E-02
+-6.0865697671506694E-02
+-6.0877559199336795E-02
+-6.0889401587093592E-02
+-6.0901224839532697E-02
+-6.0913028961409668E-02
+-6.0924813957480131E-02
+-6.0936579832499685E-02
+-6.0948326591223900E-02
+-6.0960054238408390E-02
+-6.0971762778808739E-02
+-6.0983452217180545E-02
+-6.0995122558279401E-02
+-6.1006773806860905E-02
+-6.1018405967680656E-02
+-6.1030019045494238E-02
+-6.1041613045057258E-02
+-6.1053187971125307E-02
+-6.1064743828453977E-02
+-6.1076280621798859E-02
+-6.1087798355915567E-02
+-6.1099297035559663E-02
+-6.1110776665486782E-02
+-6.1122237250452488E-02
+-6.1133678795212379E-02
+-6.1145101304522054E-02
+-6.1156504783137125E-02
+-6.1167889235813164E-02
+-6.1179254667305782E-02
+-6.1190601082370552E-02
+-6.1201928485763099E-02
+-6.1213236882238987E-02
+-6.1224526276553837E-02
+-6.1235796673463225E-02
+-6.1247048077722757E-02
+-6.1258280494088026E-02
+-6.1269493927314622E-02
+-6.1280688382158152E-02
+-6.1291863863374194E-02
+-6.1303020375718359E-02
+-6.1314157923946233E-02
+-6.1325276512813401E-02
+-6.1336376147075475E-02
+-6.1347456831488054E-02
+-6.1358518570806708E-02
+-6.1369561369787058E-02
+-6.1380585233184681E-02
+-6.1391590165755183E-02
+-6.1402576172254156E-02
+-6.1413543257437184E-02
+-6.1424491426059880E-02
+-6.1435420682877842E-02
+-6.1446331032646635E-02
+-6.1457222480121879E-02
+-6.1468095030059157E-02
+-6.1478948687214069E-02
+-6.1489783456342213E-02
+-6.1500599342199182E-02
+-6.1511396349540573E-02
+-6.1522174483121979E-02
+-6.1532933747698984E-02
+-6.1543674148027194E-02
+-6.1554395688862208E-02
+-6.1565098374959611E-02
+-6.1575782211075000E-02
+-6.1586447201963976E-02
+-6.1597093352382129E-02
+-6.1607720667085059E-02
+-6.1618329150828349E-02
+-6.1628918808367607E-02
+-6.1639489644458423E-02
+-6.1650041663856389E-02
+-6.1660574871317098E-02
+-6.1671089271596161E-02
+-6.1681584869449149E-02
+-6.1692061669631676E-02
+-6.1702519676899326E-02
+-6.1712958896007711E-02
+-6.1723379331712402E-02
+-6.1733780988769013E-02
+-6.1744163871933114E-02
+-6.1754527985960331E-02
+-6.1764873335606249E-02
+-6.1775199925626439E-02
+-6.1785507760776529E-02
+-6.1795796845812101E-02
+-6.1806067185488749E-02
+-6.1816318784562063E-02
+-6.1826551647787636E-02
+-6.1836765779921095E-02
+-6.1846961185717995E-02
+-6.1857137869933951E-02
+-6.1867295837324539E-02
+-6.1877435092645379E-02
+-6.1887555640652049E-02
+-6.1897657486100155E-02
+-6.1907740633745281E-02
+-6.1917805088343034E-02
+-6.1927850854648997E-02
+-6.1937877937418770E-02
+-6.1947886341407944E-02
+-6.1957876071372125E-02
+-6.1967847132066892E-02
+-6.1977799528247862E-02
+-6.1987733264670608E-02
+-6.1997648346090742E-02
+-6.2007544777263841E-02
+-6.2017422562945512E-02
+-6.2027281707891346E-02
+-6.2037122216856949E-02
+-6.2046944094597899E-02
+-6.2056747345869800E-02
+-6.2066531975428232E-02
+-6.2076297988028828E-02
+-6.2086045388427137E-02
+-6.2095774181378779E-02
+-6.2105484371639347E-02
+-6.2115175963964438E-02
+-6.2124848963109644E-02
+-6.2134503373830550E-02
+-6.2144139200882763E-02
+-6.2153756449021866E-02
+-6.2163355123003472E-02
+-6.2172935227583159E-02
+-6.2182496767516540E-02
+-6.2192039747559186E-02
+-6.2201564172466708E-02
+-6.2211070046994707E-02
+-6.2220557375898766E-02
+-6.2230026163934471E-02
+-6.2239476415857441E-02
+-6.2248908136423253E-02
+-6.2258321330387500E-02
+-6.2267716002505802E-02
+-6.2277092157533714E-02
+-6.2286449800226865E-02
+-6.2295788935340844E-02
+-6.2305109567631231E-02
+-6.2314411701853638E-02
+-6.2323695342763635E-02
+-6.2332960495116857E-02
+-6.2342207163668860E-02
+-6.2351435353175264E-02
+-6.2360645068391639E-02
+-6.2369836314073598E-02
+-6.2379009094976748E-02
+-6.2388163415856665E-02
+-6.2397299281468935E-02
+-6.2406416696569184E-02
+-6.2415515665912968E-02
+-6.2424596194255916E-02
+-6.2433658286353610E-02
+-6.2442701946961637E-02
+-6.2451727180835602E-02
+-6.2460733992731103E-02
+-6.2469722387403726E-02
+-6.2478692369609068E-02
+-6.2487643944102722E-02
+-6.2496577115640287E-02
+-6.2505491888977360E-02
+-6.2514388268869542E-02
+-6.2523266260072402E-02
+-6.2532125867341554E-02
+-6.2540967095432595E-02
+-6.2549789949101112E-02
+-6.2558594433102716E-02
+-6.2567380552192978E-02
+-6.2576148311127511E-02
+-6.2584897714661900E-02
+-6.2593628767551729E-02
+-6.2602341474552625E-02
+-6.2611035840420159E-02
+-6.2619711869909930E-02
+-6.2628369567777536E-02
+-6.2637008938778577E-02
+-6.2645629987668622E-02
+-6.2654232719203312E-02
+-6.2662817138138205E-02
+-6.2671383249228899E-02
+-6.2679931057231006E-02
+-6.2688460566900098E-02
+-6.2696971782991787E-02
+-6.2705464710261671E-02
+-6.2713939353465337E-02
+-6.2722395717358381E-02
+-6.2730833806696390E-02
+-6.2739253626234975E-02
+-6.2747655180729708E-02
+-6.2756038474936215E-02
+-6.2764403513610068E-02
+-6.2772750301506863E-02
+-6.2781078843382201E-02
+-6.2789389143991681E-02
+-6.2797681208090900E-02
+-6.2805955040435429E-02
+-6.2814210645780896E-02
+-6.2822448028882871E-02
+-6.2830667194496967E-02
+-6.2838868147378754E-02
+-6.2847050892283846E-02
+-6.2855215433967840E-02
+-6.2863361777186322E-02
+-6.2871489926694890E-02
+-6.2879599887249144E-02
+-6.2887691663604667E-02
+-6.2895765260517073E-02
+-6.2903820682741932E-02
+-6.2911857935034857E-02
+-6.2919877022151433E-02
+-6.2927877948847272E-02
+-6.2935860719877945E-02
+-6.2943825339999065E-02
+-6.2951771813966204E-02
+-6.2959700146534986E-02
+-6.2967610342460983E-02
+-6.2975502406499823E-02
+-6.2983376343407060E-02
+-6.2991232157938309E-02
+-6.2999069854849168E-02
+-6.3006889438895222E-02
+-6.3014690914832069E-02
+-6.3022474287415309E-02
+-6.3030239561400525E-02
+-6.3037986741543331E-02
+-6.3045715832599311E-02
+-6.3053426839324050E-02
+-6.3061119766473162E-02
+-6.3068794618802243E-02
+-6.3076451401066852E-02
+-6.3084090118022629E-02
+-6.3091710774425144E-02
+-6.3099313375029997E-02
+-6.3106897924592786E-02
+-6.3114464427869096E-02
+-6.3122012889614540E-02
+-6.3129543314584702E-02
+-6.3137055707535167E-02
+-6.3144550073221548E-02
+-6.3152026416399429E-02
+-6.3159484741824409E-02
+-6.3166925054252088E-02
+-6.3174347358438035E-02
+-6.3181751659137877E-02
+-6.3189137961107200E-02
+-6.3196506269101588E-02
+-6.3203856587876653E-02
+-6.3211188922187966E-02
+-6.3218503276791155E-02
+-6.3225799656441775E-02
+-6.3233078065895454E-02
+-6.3240338509907776E-02
+-6.3247580993234326E-02
+-6.3254805520630730E-02
+-6.3262012096852532E-02
+-6.3269200726655372E-02
+-6.3276371414794835E-02
+-6.3283524166026492E-02
+-6.3290658985105969E-02
+-6.3297775876788837E-02
+-6.3304874845830708E-02
+-6.3311955896987154E-02
+-6.3319019035013802E-02
+-6.3326064264666235E-02
+-6.3333091590700039E-02
+-6.3340101017870812E-02
+-6.3347092550934153E-02
+-6.3354066194645647E-02
+-6.3361021953760907E-02
+-6.3367959833035503E-02
+-6.3374879837225062E-02
+-6.3381781971085155E-02
+-6.3388666239371366E-02
+-6.3395532646839323E-02
+-6.3402381198244609E-02
+-6.3409211898342796E-02
+-6.3416024751889510E-02
+-6.3422819763640337E-02
+-6.3429596938350874E-02
+-6.3436356280776693E-02
+-6.3443097795673420E-02
+-6.3449821487796626E-02
+-6.3456527361901924E-02
+-6.3463215422744898E-02
+-6.3469885675081147E-02
+-6.3476538123666271E-02
+-6.3483172773255853E-02
+-6.3489789628605492E-02
+-6.3496388694470787E-02
+-6.3502969975607323E-02
+-6.3509533476770713E-02
+-6.3516079202716541E-02
+-6.3522607158200392E-02
+-6.3529117347977879E-02
+-6.3535609776804586E-02
+-6.3542084449436126E-02
+-6.3548541370628056E-02
+-6.3554980545136003E-02
+-6.3561401977715565E-02
+-6.3567805673122313E-02
+-6.3574191636111846E-02
+-6.3580559871439776E-02
+-6.3586910383861689E-02
+-6.3593243178133169E-02
+-6.3599558259009842E-02
+-6.3605855631247266E-02
+-6.3612135299601053E-02
+-6.3618397268826801E-02
+-6.3624641543680097E-02
+-6.3630868128916551E-02
+-6.3637077029291722E-02
+-6.3643268249561263E-02
+-6.3649441794480718E-02
+-6.3655597668805700E-02
+-6.3661735877291792E-02
+-6.3667856424694622E-02
+-6.3673959315769746E-02
+-6.3680044555272791E-02
+-6.3686112147959328E-02
+-6.3692162098584956E-02
+-6.3698194411905287E-02
+-6.3704209092675892E-02
+-6.3710206145652384E-02
+-6.3716185575590362E-02
+-6.3722147387245395E-02
+-6.3728091585373098E-02
+-6.3734018174729068E-02
+-6.3739927160068877E-02
+-6.3745818546148150E-02
+-6.3751692337722460E-02
+-6.3757548539547418E-02
+-6.3763387156378609E-02
+-6.3769208192971619E-02
+-6.3775011654082059E-02
+-6.3780797544465528E-02
+-6.3786565868877598E-02
+-6.3792316632073895E-02
+-6.3798049838809989E-02
+-6.3803765493841480E-02
+-6.3809463601923966E-02
+-6.3815144167813032E-02
+-6.3820807196264290E-02
+-6.3826452692033325E-02
+-6.3832080659875751E-02
+-6.3837691104547123E-02
+-6.3843284030803069E-02
+-6.3848859443399159E-02
+-6.3854417347091019E-02
+-6.3859957746634222E-02
+-6.3865480646784378E-02
+-6.3870986052297060E-02
+-6.3876473967927880E-02
+-6.3881944398432422E-02
+-6.3887397348566299E-02
+-6.3892832823085083E-02
+-6.3898250826744385E-02
+-6.3903651364299791E-02
+-6.3909034440506898E-02
+-6.3914400060121307E-02
+-6.3919748227898615E-02
+-6.3925078948594394E-02
+-6.3930392226964269E-02
+-6.3935688067763813E-02
+-6.3940966475748623E-02
+-6.3946227455674326E-02
+-6.3951471012296465E-02
+-6.3956697150370667E-02
+-6.3961905874652530E-02
+-6.3967097189897626E-02
+-6.3972271100861580E-02
+-6.3977427612299964E-02
+-6.3982566728968376E-02
+-6.3987688455622416E-02
+-6.3992792797017681E-02
+-6.3997879757909756E-02
+-6.4002949343054241E-02
+-6.4008001557206734E-02
+-6.4013036405122820E-02
+-6.4018053891558124E-02
+-6.4023054021268205E-02
+-6.4028036799008675E-02
+-6.4033002229535119E-02
+-6.4037950317603148E-02
+-6.4042881067968335E-02
+-6.4047794485386292E-02
+-6.4052690574612603E-02
+-6.4057569340402881E-02
+-6.4062430787512697E-02
+-6.4067274920697678E-02
+-6.4072101744713381E-02
+-6.4076911264315417E-02
+-6.4081703484259400E-02
+-6.4086478409300901E-02
+-6.4091236044195504E-02
+-6.4095976393698850E-02
+-6.4100699462566482E-02
+-6.4105405255554027E-02
+-6.4110093777417068E-02
+-6.4114765032911206E-02
+-6.4119419026792038E-02
+-6.4124055763815135E-02
+-6.4128675248736139E-02
+-6.4133277486310591E-02
+-6.4137862481294133E-02
+-6.4142430238442322E-02
+-6.4146980762510783E-02
+-6.4151514058255088E-02
+-6.4156030130430836E-02
+-6.4160528983793638E-02
+-6.4165010623099067E-02
+-6.4169475053102748E-02
+-6.4173922278560239E-02
+-6.4178352304227165E-02
+-6.4182765134859099E-02
+-6.4187160775211652E-02
+-6.4191539230040409E-02
+-6.4195900504100969E-02
+-6.4200244602148931E-02
+-6.4204571528939880E-02
+-6.4208881289229414E-02
+-6.4213173887773131E-02
+-6.4217449329326631E-02
+-6.4221707618645499E-02
+-6.4225948760485332E-02
+-6.4230172759601731E-02
+-6.4234379620750279E-02
+-6.4238569348686589E-02
+-6.4242741948166232E-02
+-6.4246897423944835E-02
+-6.4251035780777954E-02
+-6.4255157023421230E-02
+-6.4259261156630207E-02
+-6.4263348185160524E-02
+-6.4267418113767738E-02
+-6.4271470947207476E-02
+-6.4275506690235323E-02
+-6.4279525347606864E-02
+-6.4283526924077697E-02
+-6.4287511424403421E-02
+-6.4291478853339634E-02
+-6.4295429215641922E-02
+-6.4299362516065897E-02
+-6.4303278759367144E-02
+-6.4307177950301248E-02
+-6.4311060093623806E-02
+-6.4314925194090419E-02
+-6.4318773256456685E-02
+-6.4322604285478202E-02
+-6.4326418285910555E-02
+-6.4330215262509344E-02
+-6.4333995220030166E-02
+-6.4337758163228606E-02
+-6.4341504096860264E-02
+-6.4345233025680737E-02
+-6.4348944954445625E-02
+-6.4352639887910512E-02
+-6.4356317830830984E-02
+-6.4359978787962679E-02
+-6.4363622764061143E-02
+-6.4367249763882001E-02
+-6.4370859792180823E-02
+-6.4374452853713238E-02
+-6.4378028953234800E-02
+-6.4381588095501138E-02
+-6.4385130285267836E-02
+-6.4388655527290492E-02
+-6.4392163826324678E-02
+-6.4395655187126019E-02
+-6.4399129614450101E-02
+-6.4402587113052523E-02
+-6.4406027687688855E-02
+-6.4409451343114710E-02
+-6.4412858084085700E-02
+-6.4416247915357383E-02
+-6.4419620841685371E-02
+-6.4422976867825277E-02
+-6.4426315998532685E-02
+-6.4429638238563167E-02
+-6.4432943592672348E-02
+-6.4436232065615801E-02
+-6.4439503662149136E-02
+-6.4442758387027940E-02
+-6.4445996245007811E-02
+-6.4449217240844348E-02
+-6.4452421379293134E-02
+-6.4455608665109784E-02
+-6.4458779103049868E-02
+-6.4461932697869012E-02
+-6.4465069454322774E-02
+-6.4468189377166765E-02
+-6.4471292471156599E-02
+-6.4474378741047833E-02
+-6.4477448191596107E-02
+-6.4480500827556964E-02
+-6.4483536653686058E-02
+-6.4486555674738932E-02
+-6.4489557895471200E-02
+-6.4492543320638460E-02
+-6.4495511954996310E-02
+-6.4498463803300335E-02
+-6.4501398870306148E-02
+-6.4504317160769320E-02
+-6.4507218679445463E-02
+-6.4510103431090163E-02
+-6.4512971420459017E-02
+-6.4515822652307611E-02
+-6.4518657131391557E-02
+-6.4521474862466455E-02
+-6.4524275850287874E-02
+-6.4527060099611427E-02
+-6.4529827615192700E-02
+-6.4532578401787291E-02
+-6.4535312464150799E-02
+-6.4538029807038821E-02
+-6.4540730435206931E-02
+-6.4543414353410752E-02
+-6.4546081566405872E-02
+-6.4548732078947874E-02
+-6.4551365895792356E-02
+-6.4553983021694933E-02
+-6.4556583461411160E-02
+-6.4559167219696664E-02
+-6.4561734301307031E-02
+-6.4564284710997857E-02
+-6.4566818453524744E-02
+-6.4569335533643274E-02
+-6.4571835956109033E-02
+-6.4574319725677648E-02
+-6.4576786847104689E-02
+-6.4579237325145755E-02
+-6.4581671164556459E-02
+-6.4584088370092357E-02
+-6.4586488946509077E-02
+-6.4588872898562216E-02
+-6.4591240231007346E-02
+-6.4593590948600066E-02
+-6.4595925056095987E-02
+-6.4598242558250696E-02
+-6.4600543459819776E-02
+-6.4602827765558840E-02
+-6.4605095480223473E-02
+-6.4607346608569288E-02
+-6.4609581155351842E-02
+-6.4611799125326760E-02
+-6.4614000523249629E-02
+-6.4616185353876060E-02
+-6.4618353621961611E-02
+-6.4620505332261907E-02
+-6.4622640489532535E-02
+-6.4624759098529078E-02
+-6.4626861164007149E-02
+-6.4628946690722347E-02
+-6.4631015683430243E-02
+-6.4633068146886449E-02
+-6.4635104085846551E-02
+-6.4637123505066146E-02
+-6.4639126409300834E-02
+-6.4641112803306214E-02
+-6.4643082691837869E-02
+-6.4645036079651400E-02
+-6.4646972971502403E-02
+-6.4648893372146465E-02
+-6.4650797286339184E-02
+-6.4652684718836173E-02
+-6.4654555674392988E-02
+-6.4656410157765271E-02
+-6.4658248173708577E-02
+-6.4660069726978520E-02
+-6.4661874822330698E-02
+-6.4663663464520696E-02
+-6.4665435658304113E-02
+-6.4667191408436547E-02
+-6.4668930719673584E-02
+-6.4670653596770822E-02
+-6.4672360044483873E-02
+-6.4674050067568309E-02
+-6.4675723670779728E-02
+-6.4677380858873743E-02
+-6.4679021636605938E-02
+-6.4680646008731885E-02
+-6.4682253980007209E-02
+-6.4683845555187511E-02
+-6.4685420739028360E-02
+-6.4686979536285355E-02
+-6.4688521951714109E-02
+-6.4690047990070193E-02
+-6.4691557656109233E-02
+-6.4693050954586800E-02
+-6.4694527890258480E-02
+-6.4695988467879897E-02
+-6.4697432692206625E-02
+-6.4698860567994260E-02
+-6.4700272099998415E-02
+-6.4701667292974663E-02
+-6.4703046151678600E-02
+-6.4704408680865855E-02
+-6.4705754885291969E-02
+-6.4707084769712570E-02
+-6.4708398338883255E-02
+-6.4709695597559624E-02
+-6.4710976550497235E-02
+-6.4712241202451712E-02
+-6.4713489558178655E-02
+-6.4714721622433649E-02
+-6.4715937399972279E-02
+-6.4717136895550156E-02
+-6.4718320113922867E-02
+-6.4719487059846009E-02
+-6.4720637738075182E-02
+-6.4721772153365970E-02
+-6.4722890310473985E-02
+-6.4723992214154785E-02
+-6.4725077869164011E-02
+-6.4726147280257232E-02
+-6.4727200452190048E-02
+-6.4728237389718057E-02
+-6.4729258097596845E-02
+-6.4730262580582024E-02
+-6.4731250843429164E-02
+-6.4732222890893878E-02
+-6.4733178727731766E-02
+-6.4734118358698398E-02
+-6.4735041788549386E-02
+-6.4735949022040329E-02
+-6.4736840063926826E-02
+-6.4737714918964448E-02
+-6.4738573591908807E-02
+-6.4739416087515489E-02
+-6.4740242410540105E-02
+-6.4741052565738241E-02
+-6.4741846557865482E-02
+-6.4742624391677439E-02
+-6.4743386071929698E-02
+-6.4744131603377858E-02
+-6.4744860990777503E-02
+-6.4745574238884246E-02
+-6.4746271352453671E-02
+-6.4746952336241365E-02
+-6.4747617195002938E-02
+-6.4748265933493976E-02
+-6.4748898556470078E-02
+-6.4749515068686841E-02
+-6.4750115474899853E-02
+-6.4750699779864709E-02
+-6.4751267988337011E-02
+-6.4751820105072355E-02
+-6.4752356134826328E-02
+-6.4752876082354527E-02
+-6.4753379952412551E-02
+-6.4753867749755986E-02
+-6.4754339479140444E-02
+-6.4754795145321509E-02
+-6.4755234753054766E-02
+-6.4755658307095815E-02
+-6.4756065812200267E-02
+-6.4756457273123708E-02
+-6.4756832694621722E-02
+-6.4757192081449907E-02
+-6.4757535438363878E-02
+-6.4757862770119204E-02
+-6.4758174081471498E-02
+-6.4758469377176331E-02
+-6.4758748661989343E-02
+-6.4759011940666078E-02
+-6.4759259217962162E-02
+-6.4759490498633193E-02
+-6.4759705787434729E-02
+-6.4759905089122410E-02
+-6.4760088408451807E-02
+-6.4760255750178519E-02
+-6.4760407119058144E-02
+-6.4760542519846268E-02
+-6.4760661957298502E-02
+-6.4760765436170417E-02
+-6.4760852961217641E-02
+-6.4760924537195730E-02
+-6.4760980168860310E-02
+-6.4761019860966967E-02
+-6.4761043618271286E-02
+-6.4761051445528864E-02
+-6.4761043347495301E-02
+-6.4761019328926209E-02
+-6.4760979394577145E-02
+-6.4760923549203750E-02
+-6.4760851797561581E-02
+-6.4760764144406235E-02
+-6.4760660594493327E-02
+-6.4760541152578455E-02
+-6.4760405823417189E-02
+-6.4760254611765128E-02
+-6.4760087522377899E-02
+-6.4759904560011058E-02
+-6.4759705729420219E-02
+-6.4759491035360967E-02
+-6.4759260482588898E-02
+-6.4759014075859628E-02
+-6.4758751819928739E-02
+-6.4758473719551804E-02
+-6.4758179779484448E-02
+-6.4757870004482257E-02
+-6.4757544399300815E-02
+-6.4757202968695735E-02
+-6.4756845717422601E-02
+-6.4756472650236999E-02
+-6.4756083771894540E-02
+-6.4755679087150811E-02
+-6.4755258600761423E-02
+-6.4754822317481947E-02
+-6.4754370242067982E-02
+-6.4753902379275141E-02
+-6.4753418733858994E-02
+-6.4752919310575155E-02
+-6.4752404114179207E-02
+-6.4751873149426750E-02
+-6.4751326421073396E-02
+-6.4750763933874703E-02
+-6.4750185692586296E-02
+-6.4749591701963760E-02
+-6.4748981966762681E-02
+-6.4748356491738671E-02
+-6.4747715281647328E-02
+-6.4747058341244224E-02
+-6.4746385675284956E-02
+-6.4745697288525139E-02
+-6.4744993185720356E-02
+-6.4744273371626207E-02
+-6.4743537850998290E-02
+-6.4742786628592175E-02
+-6.4742019709163490E-02
+-6.4741237097467805E-02
+-6.4740438798260733E-02
+-6.4739624816297858E-02
+-6.4738795156334766E-02
+-6.4737949823127083E-02
+-6.4737088821430366E-02
+-6.4736212156000256E-02
+-6.4735319831592295E-02
+-6.4734411852962109E-02
+-6.4733488224865285E-02
+-6.4732548952057434E-02
+-6.4731594039294127E-02
+-6.4730623491330963E-02
+-6.4729637312923555E-02
+-6.4728635508827473E-02
+-6.4727618083798330E-02
+-6.4726585042591725E-02
+-6.4725536389963229E-02
+-6.4724472130668453E-02
+-6.4723392269462998E-02
+-6.4722296811102462E-02
+-6.4721185760342415E-02
+-6.4720059121938456E-02
+-6.4718916900646212E-02
+-6.4717759101221239E-02
+-6.4716585728419165E-02
+-6.4715396786995560E-02
+-6.4714192281706023E-02
+-6.4712972217306153E-02
+-6.4711736598551561E-02
+-6.4710485430197806E-02
+-6.4709218717000513E-02
+-6.4707936463715268E-02
+-6.4706638675097655E-02
+-6.4705325355903301E-02
+-6.4703996510887762E-02
+-6.4702652144806652E-02
+-6.4701292262415569E-02
+-6.4699916868470098E-02
+-6.4698525967725837E-02
+-6.4697119564938385E-02
+-6.4695697664863341E-02
+-6.4694260272256290E-02
+-6.4692807391872831E-02
+-6.4691339028468547E-02
+-6.4689855186799053E-02
+-6.4688355871619932E-02
+-6.4686841087686783E-02
+-6.4685310839755206E-02
+-6.4683765132580784E-02
+-6.4682203970919117E-02
+-6.4680627359525802E-02
+-6.4679035303156426E-02
+-6.4677427806566601E-02
+-6.4675804874511911E-02
+-6.4674166511747941E-02
+-6.4672512723030304E-02
+-6.4670843513114584E-02
+-6.4669158886756381E-02
+-6.4667458848711279E-02
+-6.4665743403734904E-02
+-6.4664012556582801E-02
+-6.4662266312010608E-02
+-6.4660504674773911E-02
+-6.4658727649628281E-02
+-6.4656935241329344E-02
+-6.4655127454632672E-02
+-6.4653304294293890E-02
+-6.4651465765068555E-02
+-6.4649611871712281E-02
+-6.4647742618980653E-02
+-6.4645858011629281E-02
+-6.4643958054413753E-02
+-6.4642042752089651E-02
+-6.4640112109412604E-02
+-6.4638166131138181E-02
+-6.4636204822021967E-02
+-6.4634228186819576E-02
+-6.4632236230286605E-02
+-6.4630228957178640E-02
+-6.4628206372251279E-02
+-6.4626168480260121E-02
+-6.4624115285960751E-02
+-6.4622046794108767E-02
+-6.4619963009459769E-02
+-6.4617863936769340E-02
+-6.4615749580793094E-02
+-6.4613619946286616E-02
+-6.4611475038005489E-02
+-6.4609314860705314E-02
+-6.4607139419141715E-02
+-6.4604948718070238E-02
+-6.4602742762246521E-02
+-6.4600521556426135E-02
+-6.4598285105364681E-02
+-6.4596033413817755E-02
+-6.4593766486540957E-02
+-6.4591484328289858E-02
+-6.4589186943820084E-02
+-6.4586874337887207E-02
+-6.4584546515246838E-02
+-6.4582203480654576E-02
+-6.4579845238865979E-02
+-6.4577471794636687E-02
+-6.4575083152722271E-02
+-6.4572679317878329E-02
+-6.4570260294860460E-02
+-6.4567826088424263E-02
+-6.4565376703325322E-02
+-6.4562912144319237E-02
+-6.4560432416161592E-02
+-6.4557937523608000E-02
+-6.4555427471414045E-02
+-6.4552902264335341E-02
+-6.4550361907127457E-02
+-6.4547806404545993E-02
+-6.4545235761346548E-02
+-6.4542649982284719E-02
+-6.4540049072116107E-02
+-6.4537433035596295E-02
+-6.4534801877480882E-02
+-6.4532155602525468E-02
+-6.4529494215485622E-02
+-6.4526817721116986E-02
+-6.4524126124175130E-02
+-6.4521419429415638E-02
+-6.4518697641594111E-02
+-6.4515960765466146E-02
+-6.4513208805787342E-02
+-6.4510441767313298E-02
+-6.4507659654799612E-02
+-6.4504862473001856E-02
+-6.4502050226675628E-02
+-6.4499222920576554E-02
+-6.4496380559460192E-02
+-6.4493523148082169E-02
+-6.4490650691198054E-02
+-6.4487763193563460E-02
+-6.4484860659933974E-02
+-6.4481943095065178E-02
+-6.4479010503712686E-02
+-6.4476062890632097E-02
+-6.4473100260578980E-02
+-6.4470122618308950E-02
+-6.4467129968577605E-02
+-6.4464122316140529E-02
+-6.4461099665753308E-02
+-6.4458062022171567E-02
+-6.4455009390150864E-02
+-6.4451941774446825E-02
+-6.4448859179815049E-02
+-6.4445761611011093E-02
+-6.4442649072790570E-02
+-6.4439521569909092E-02
+-6.4436379107122244E-02
+-6.4433221689185596E-02
+-6.4430049320854776E-02
+-6.4426862006885383E-02
+-6.4423659752032972E-02
+-6.4420442561053171E-02
+-6.4417210438701578E-02
+-6.4413963389733764E-02
+-6.4410701418905342E-02
+-6.4407424530971882E-02
+-6.4404132730689012E-02
+-6.4400826022812316E-02
+-6.4397504412097378E-02
+-6.4394167903299798E-02
+-6.4390816501175188E-02
+-6.4387450210479119E-02
+-6.4384069035967190E-02
+-6.4380672982395012E-02
+-6.4377262054518158E-02
+-6.4373836257092254E-02
+-6.4370395594872856E-02
+-6.4366940072615578E-02
+-6.4363469695076017E-02
+-6.4359984467009773E-02
+-6.4356484393172431E-02
+-6.4352969478319574E-02
+-6.4349439727206831E-02
+-6.4345895144589771E-02
+-6.4342335735223993E-02
+-6.4338761503865083E-02
+-6.4335172455268666E-02
+-6.4331568594190300E-02
+-6.4327949925385611E-02
+-6.4324316453610170E-02
+-6.4320668183619589E-02
+-6.4317005120169468E-02
+-6.4313327268015377E-02
+-6.4309634631912915E-02
+-6.4305927216617709E-02
+-6.4302205026885315E-02
+-6.4298468067471359E-02
+-6.4294716343131400E-02
+-6.4290949858621063E-02
+-6.4287168618695933E-02
+-6.4283372628111610E-02
+-6.4279561891623690E-02
+-6.4275736413987761E-02
+-6.4271896199959405E-02
+-6.4268041254294250E-02
+-6.4264171581747853E-02
+-6.4260287187075840E-02
+-6.4256388075033782E-02
+-6.4252474250377306E-02
+-6.4248545717861968E-02
+-6.4244602482243396E-02
+-6.4240644548277159E-02
+-6.4236671920718871E-02
+-6.4232684604324131E-02
+-6.4228682603848508E-02
+-6.4224665924047603E-02
+-6.4220634569677026E-02
+-6.4216588545492378E-02
+-6.4212527856249230E-02
+-6.4208452506703192E-02
+-6.4204362501609852E-02
+-6.4200257845724806E-02
+-6.4196138543803655E-02
+-6.4192004600601982E-02
+-6.4187856020875400E-02
+-6.4183692809379481E-02
+-6.4179514970869850E-02
+-6.4175322510102065E-02
+-6.4171115431831752E-02
+-6.4166893740814496E-02
+-6.4162657441805881E-02
+-6.4158406539561522E-02
+-6.4154141038836987E-02
+-6.4149860944387904E-02
+-6.4145566260969844E-02
+-6.4141256993338405E-02
+-6.4136933146249187E-02
+-6.4132594724457787E-02
+-6.4128241732719790E-02
+-6.4123874175790810E-02
+-6.4119492058426417E-02
+-6.4115095385382223E-02
+-6.4110684161413814E-02
+-6.4106258391276788E-02
+-6.4101818079726758E-02
+-6.4097363231519280E-02
+-6.4092893851409982E-02
+-6.4088409944154434E-02
+-6.4083911514508263E-02
+-6.4079398567227039E-02
+-6.4074871107066361E-02
+-6.4070329138781829E-02
+-6.4065772667129040E-02
+-6.4061201696863565E-02
+-6.4056616232741032E-02
+-6.4052016279517024E-02
+-6.4047401841947127E-02
+-6.4042772924786939E-02
+-6.4038129532792074E-02
+-6.4033471670718101E-02
+-6.4028799343320619E-02
+-6.4024112555355242E-02
+-6.4019411311577554E-02
+-6.4014695616743139E-02
+-6.4009965475607611E-02
+-6.4005220892926540E-02
+-6.4000461873455539E-02
+-6.3995688421950206E-02
+-6.3990900543166140E-02
+-6.3986098241858913E-02
+-6.3981281522784123E-02
+-6.3976450390697395E-02
+-6.3971604850354288E-02
+-6.3966744906510414E-02
+-6.3961870563921372E-02
+-6.3956981827342746E-02
+-6.3952078701530149E-02
+-6.3947161191239152E-02
+-6.3942229301225367E-02
+-6.3937283036244366E-02
+-6.3932322401051775E-02
+-6.3927347400403178E-02
+-6.3922358039054161E-02
+-6.3917354321760322E-02
+-6.3912336253277247E-02
+-6.3907303838360560E-02
+-6.3902257081765834E-02
+-6.3897195988248667E-02
+-6.3892120562564658E-02
+-6.3887030809469392E-02
+-6.3881926733718480E-02
+-6.3876808340067509E-02
+-6.3871675633272063E-02
+-6.3866528618087753E-02
+-6.3861367299270166E-02
+-6.3856191681574886E-02
+-6.3851001769757526E-02
+-6.3845797568573698E-02
+-6.3840579082778945E-02
+-6.3835346317128908E-02
+-6.3830099276379171E-02
+-6.3824837965285305E-02
+-6.3819562388602924E-02
+-6.3814272551087625E-02
+-6.3808968457495008E-02
+-6.3803650112580657E-02
+-6.3798317521100156E-02
+-6.3792970687809120E-02
+-6.3787609617463145E-02
+-6.3782234314817818E-02
+-6.3776844784628722E-02
+-6.3771441031651471E-02
+-6.3766023060641649E-02
+-6.3760590876354856E-02
+-6.3755144483546689E-02
+-6.3749683886972747E-02
+-6.3744209091388615E-02
+-6.3738720101549878E-02
+-6.3733216922212149E-02
+-6.3727699558131012E-02
+-6.3722168014062081E-02
+-6.3716622294760938E-02
+-6.3711062404983171E-02
+-6.3705488349484363E-02
+-6.3699900133020154E-02
+-6.3694297760346102E-02
+-6.3688681236217806E-02
+-6.3683050565390864E-02
+-6.3677405752620889E-02
+-6.3671746802663437E-02
+-6.3666073720274149E-02
+-6.3660386510208583E-02
+-6.3654685177222364E-02
+-6.3648969726071064E-02
+-6.3643240161510267E-02
+-6.3637496488295614E-02
+-6.3631738711182662E-02
+-6.3625966834927009E-02
+-6.3620180864284254E-02
+-6.3614380804009996E-02
+-6.3608566658859833E-02
+-6.3602738433589365E-02
+-6.3596896132954162E-02
+-6.3591039761709850E-02
+-6.3585169324611987E-02
+-6.3579284826416199E-02
+-6.3573386271878071E-02
+-6.3567473665753202E-02
+-6.3561547012797176E-02
+-6.3555606317765606E-02
+-6.3549651585414063E-02
+-6.3543682820498160E-02
+-6.3537700027773480E-02
+-6.3531703211995638E-02
+-6.3525692377920204E-02
+-6.3519667530302790E-02
+-6.3513628673898981E-02
+-6.3507575813464376E-02
+-6.3501508953754560E-02
+-6.3495428099525159E-02
+-6.3489333255531730E-02
+-6.3483224426529899E-02
+-6.3477101617275239E-02
+-6.3470964832523347E-02
+-6.3464814077029821E-02
+-6.3458649355550262E-02
+-6.3452470672840267E-02
+-6.3446278033655434E-02
+-6.3440071442751336E-02
+-6.3433850904883571E-02
+-6.3427616424807765E-02
+-6.3421368007279474E-02
+-6.3415105657054313E-02
+-6.3408829378887893E-02
+-6.3402539177535772E-02
+-6.3396235057753561E-02
+-6.3389917024296860E-02
+-6.3383585081921281E-02
+-6.3377239235382382E-02
+-6.3370879489435775E-02
+-6.3364505848837058E-02
+-6.3358118318341816E-02
+-6.3351716902705663E-02
+-6.3345301606684168E-02
+-6.3338872435032958E-02
+-6.3332429392507592E-02
+-6.3325972483863693E-02
+-6.3319501713856835E-02
+-6.3313017087242629E-02
+-6.3306518608776674E-02
+-6.3300006283214541E-02
+-6.3293480115311843E-02
+-6.3286940109824164E-02
+-6.3280386271507116E-02
+-6.3273818605116272E-02
+-6.3267237115407257E-02
+-6.3260641807135642E-02
+-6.3254032685057027E-02
+-6.3247409753926995E-02
+-6.3240773018501173E-02
+-6.3234122483535118E-02
+-6.3227458153784444E-02
+-6.3220780034004748E-02
+-6.3214088128951629E-02
+-6.3207382443380672E-02
+-6.3200662982047476E-02
+-6.3193929749707639E-02
+-6.3187182751116733E-02
+-6.3180421991030383E-02
+-6.3173647474204175E-02
+-6.3166859205393694E-02
+-6.3160057189354551E-02
+-6.3153241430842333E-02
+-6.3146411934612623E-02
+-6.3139568705421034E-02
+-6.3132711748023151E-02
+-6.3125841067174573E-02
+-6.3118956667630899E-02
+-6.3112058554147712E-02
+-6.3105146731480627E-02
+-6.3098221204385213E-02
+-6.3091281977617070E-02
+-6.3084329055931809E-02
+-6.3077362444085017E-02
+-6.3070382146832291E-02
+-6.3063388168929216E-02
+-6.3056380515131391E-02
+-6.3049359190194415E-02
+-6.3042324198873900E-02
+-6.3035275545925404E-02
+-6.3028213236104552E-02
+-6.3021137274166916E-02
+-6.3014047664868095E-02
+-6.3006944412963714E-02
+-6.2999827523209331E-02
+-6.2992697000360559E-02
+-6.2985552849172996E-02
+-6.2978395074402227E-02
+-6.2971223680803837E-02
+-6.2964038673133438E-02
+-6.2956840056146629E-02
+-6.2949627834598995E-02
+-6.2942402013246135E-02
+-6.2935162596843633E-02
+-6.2927909590147088E-02
+-6.2920642997912113E-02
+-6.2913362824894278E-02
+-6.2906069075849197E-02
+-6.2898761755532454E-02
+-6.2891440868699647E-02
+-6.2884106420106362E-02
+-6.2876758414508224E-02
+-6.2869396856660792E-02
+-6.2862021751319677E-02
+-6.2854633103240465E-02
+-6.2847230917178781E-02
+-6.2839815197890170E-02
+-6.2832385950130271E-02
+-6.2824943178654655E-02
+-6.2817486888218921E-02
+-6.2810017083578681E-02
+-6.2802533769489507E-02
+-6.2795036950706998E-02
+-6.2787526631986765E-02
+-6.2780002818084379E-02
+-6.2772465513755468E-02
+-6.2764914723755588E-02
+-6.2757350452840352E-02
+-6.2749772705765358E-02
+-6.2742181487286205E-02
+-6.2734576802158479E-02
+-6.2726958655137777E-02
+-6.2719327050979684E-02
+-6.2711681994439814E-02
+-6.2704023490273750E-02
+-6.2696351543237092E-02
+-6.2688666158085438E-02
+-6.2680967339574359E-02
+-6.2673255092459482E-02
+-6.2665529421496391E-02
+-6.2657790331440671E-02
+-6.2650037827047922E-02
+-6.2642271913073741E-02
+-6.2634492594273727E-02
+-6.2626699875403466E-02
+-6.2618893761218569E-02
+-6.2611074256474608E-02
+-6.2603241365927195E-02
+-6.2595395094331915E-02
+-6.2587535446444381E-02
+-6.2579662427020163E-02
+-6.2571776040814861E-02
+-6.2563876292584086E-02
+-6.2555963187083424E-02
+-6.2548036729068460E-02
+-6.2540096923294805E-02
+-6.2532143774518045E-02
+-6.2524177287493779E-02
+-6.2516197466977591E-02
+-6.2508204317725094E-02
+-6.2500197844491873E-02
+-6.2492178052033526E-02
+-6.2484144945105638E-02
+-6.2476098528463808E-02
+-6.2468038806863642E-02
+-6.2459965785060717E-02
+-6.2451879467810653E-02
+-6.2443779859869021E-02
+-6.2435666965991427E-02
+-6.2427540790933461E-02
+-6.2419401339450717E-02
+-6.2411248616298806E-02
+-6.2403082626233300E-02
+-6.2394903374009811E-02
+-6.2386710864383917E-02
+-6.2378505102111230E-02
+-6.2370286091947336E-02
+-6.2362053838647832E-02
+-6.2353808346968319E-02
+-6.2345549621664373E-02
+-6.2337277667491614E-02
+-6.2328992489205620E-02
+-6.2320694091561990E-02
+-6.2312382479316322E-02
+-6.2304057657224202E-02
+-6.2295719630041241E-02
+-6.2287368402523011E-02
+-6.2279003979425124E-02
+-6.2270626365503179E-02
+-6.2262235565512761E-02
+-6.2253831584209461E-02
+-6.2245414426348886E-02
+-6.2236984096686612E-02
+-6.2228540599978260E-02
+-6.2220083940979415E-02
+-6.2211614124445654E-02
+-6.2203131155132596E-02
+-6.2194635037795820E-02
+-6.2186125777190931E-02
+-6.2177603378073522E-02
+-6.2169067845199183E-02
+-6.2160519183323507E-02
+-6.2151957397202098E-02
+-6.2143382491590543E-02
+-6.2134794471244446E-02
+-6.2126193340919400E-02
+-6.2117579105370996E-02
+-6.2108951769354818E-02
+-6.2100311337626481E-02
+-6.2091657814941567E-02
+-6.2082991206055677E-02
+-6.2074311515724401E-02
+-6.2065618748703345E-02
+-6.2056912909748088E-02
+-6.2048194003614235E-02
+-6.2039462035057377E-02
+-6.2030717008833114E-02
+-6.2021958929697037E-02
+-6.2013187802404744E-02
+-6.2004403631711821E-02
+-6.1995606422373867E-02
+-6.1986796179146486E-02
+-6.1977972906785264E-02
+-6.1969136610045800E-02
+-6.1960287293683677E-02
+-6.1951424962454510E-02
+-6.1942549621113882E-02
+-6.1933661274417393E-02
+-6.1924759927120626E-02
+-6.1915845583979195E-02
+-6.1906918249748671E-02
+-6.1897977929184667E-02
+-6.1889024627042780E-02
+-6.1880058348078582E-02
+-6.1871079097047699E-02
+-6.1862086878705702E-02
+-6.1853081697808204E-02
+-6.1844063559110790E-02
+-6.1835032467369044E-02
+-6.1825988427338580E-02
+-6.1816931443774988E-02
+-6.1807861521433860E-02
+-6.1798778665070789E-02
+-6.1789682879441372E-02
+-6.1780574169301203E-02
+-6.1771452539405879E-02
+-6.1762317994510998E-02
+-6.1753170539372140E-02
+-6.1744010178744917E-02
+-6.1734836917384919E-02
+-6.1725650760047733E-02
+-6.1716451711488970E-02
+-6.1707239776464209E-02
+-6.1698014959729056E-02
+-6.1688777266039101E-02
+-6.1679526700149936E-02
+-6.1670263266817162E-02
+-6.1660986970796361E-02
+-6.1651697816843147E-02
+-6.1642395809713105E-02
+-6.1633080954161826E-02
+-6.1623753254944916E-02
+-6.1614412716817966E-02
+-6.1605059344536556E-02
+-6.1595693142856303E-02
+-6.1586314116532787E-02
+-6.1576922270321612E-02
+-6.1567517608978370E-02
+-6.1558100137258653E-02
+-6.1548669859918061E-02
+-6.1539226781712184E-02
+-6.1529770907396614E-02
+-6.1520302241726957E-02
+-6.1510820789458798E-02
+-6.1501326555347735E-02
+-6.1491819544149361E-02
+-6.1482299760619280E-02
+-6.1472767209513071E-02
+-6.1463221895586347E-02
+-6.1453663823594684E-02
+-6.1444092998293703E-02
+-6.1434509424438968E-02
+-6.1424913106786092E-02
+-6.1415304050090672E-02
+-6.1405682259108293E-02
+-6.1396047738594556E-02
+-6.1386400493305050E-02
+-6.1376740527995383E-02
+-6.1367067847421131E-02
+-6.1357382456337907E-02
+-6.1347684359501289E-02
+-6.1337973561666891E-02
+-6.1328250067590295E-02
+-6.1318513882027095E-02
+-6.1308765009732896E-02
+-6.1299003455463283E-02
+-6.1289229223973854E-02
+-6.1279442320020208E-02
+-6.1269642748357930E-02
+-6.1259830513742626E-02
+-6.1250005620929887E-02
+-6.1240168074675305E-02
+-6.1230317879734472E-02
+-6.1220455040863000E-02
+-6.1210579562816461E-02
+-6.1200691450350460E-02
+-6.1190790708220602E-02
+-6.1180877341182466E-02
+-6.1170951353991657E-02
+-6.1161012751403759E-02
+-6.1151061538174380E-02
+-6.1141097719059109E-02
+-6.1131121298813540E-02
+-6.1121132282193277E-02
+-6.1111130673953892E-02
+-6.1101116478851004E-02
+-6.1091089701640199E-02
+-6.1081050347077073E-02
+-6.1070998419917213E-02
+-6.1060933924916225E-02
+-6.1050856866829699E-02
+-6.1040767250413228E-02
+-6.1030665080422417E-02
+-6.1020550361612844E-02
+-6.1010423098740107E-02
+-6.1000283296559821E-02
+-6.0990130959827561E-02
+-6.0979966093298928E-02
+-6.0969788701729519E-02
+-6.0959598789874926E-02
+-6.0949396362490749E-02
+-6.0939181424332564E-02
+-6.0928953980155992E-02
+-6.0918714034716610E-02
+-6.0908461592770025E-02
+-6.0898196659071827E-02
+-6.0887919238377601E-02
+-6.0877629335442954E-02
+-6.0867326955023483E-02
+-6.0857012101874775E-02
+-6.0846684780752426E-02
+-6.0836344996412037E-02
+-6.0825992753609198E-02
+-6.0815628057099502E-02
+-6.0805250911638548E-02
+-6.0794861321981919E-02
+-6.0784459292885229E-02
+-6.0774044829104062E-02
+-6.0763617935394018E-02
+-6.0753178616510695E-02
+-6.0742726877209663E-02
+-6.0732262722246556E-02
+-6.0721786156376939E-02
+-6.0711297184356416E-02
+-6.0700795810940580E-02
+-6.0690282040885030E-02
+-6.0679755878945363E-02
+-6.0669217329877165E-02
+-6.0658666398436048E-02
+-6.0648103089377584E-02
+-6.0637527407457384E-02
+-6.0626939357431034E-02
+-6.0616338944054132E-02
+-6.0605726172082271E-02
+-6.0595101046271055E-02
+-6.0584463571376070E-02
+-6.0573813752152914E-02
+-6.0563151593357178E-02
+-6.0552477099744470E-02
+-6.0541790276070359E-02
+-6.0531091127090472E-02
+-6.0520379657560380E-02
+-6.0509655872235682E-02
+-6.0498919775871990E-02
+-6.0488171373224875E-02
+-6.0477410669049936E-02
+-6.0466637668102792E-02
+-6.0455852375139008E-02
+-6.0445054794914202E-02
+-6.0434244932183946E-02
+-6.0423422791703846E-02
+-6.0412588378229506E-02
+-6.0401741696516520E-02
+-6.0390882751320457E-02
+-6.0380011547396945E-02
+-6.0369128089501560E-02
+-6.0358232382389902E-02
+-6.0347324430817570E-02
+-6.0336404239540148E-02
+-6.0325471813313242E-02
+-6.0314527156892436E-02
+-6.0303570275033344E-02
+-6.0292601172491536E-02
+-6.0281619854022618E-02
+-6.0270626324382195E-02
+-6.0259620588325839E-02
+-6.0248602650609169E-02
+-6.0237572515987770E-02
+-6.0226530189217239E-02
+-6.0215475675053157E-02
+-6.0204408978251141E-02
+-6.0193330103566776E-02
+-6.0182239055755649E-02
+-6.0171135839573363E-02
+-6.0160020459775511E-02
+-6.0148892921117691E-02
+-6.0137753228355503E-02
+-6.0126601386244524E-02
+-6.0115437399540367E-02
+-6.0104261272998623E-02
+-6.0093073011374870E-02
+-6.0081872619424728E-02
+-6.0070660101903775E-02
+-6.0059435463567609E-02
+-6.0048198709171843E-02
+-6.0036949843472041E-02
+-6.0025688871223809E-02
+-6.0014415797182752E-02
+-6.0003130626104462E-02
+-5.9991833362744530E-02
+-5.9980524011858549E-02
+-5.9969202578202124E-02
+-5.9957869066530826E-02
+-5.9946523481600275E-02
+-5.9935165828166062E-02
+-5.9923796110983779E-02
+-5.9912414334809011E-02
+-5.9901020504397356E-02
+-5.9889614624504428E-02
+-5.9878196699885797E-02
+-5.9866766735297075E-02
+-5.9855324735493848E-02
+-5.9843870705231721E-02
+-5.9832404649266271E-02
+-5.9820926572353106E-02
+-5.9809436479247829E-02
+-5.9797934374706006E-02
+-5.9786420263483263E-02
+-5.9774894150335177E-02
+-5.9763356040017347E-02
+-5.9751805937285372E-02
+-5.9740243846894844E-02
+-5.9728669773601362E-02
+-5.9717083722160502E-02
+-5.9705485697327886E-02
+-5.9693875703859089E-02
+-5.9682253746509720E-02
+-5.9670619830035368E-02
+-5.9658973959191626E-02
+-5.9647316138734086E-02
+-5.9635646373418352E-02
+-5.9623964668000004E-02
+-5.9612271027234653E-02
+-5.9600565455877899E-02
+-5.9588847958685312E-02
+-5.9577118540412505E-02
+-5.9565377205815062E-02
+-5.9553623959648590E-02
+-5.9541858806668679E-02
+-5.9530081751630923E-02
+-5.9518292799290912E-02
+-5.9506491954404245E-02
+-5.9494679221726535E-02
+-5.9482854606013345E-02
+-5.9471018112020282E-02
+-5.9459169744502952E-02
+-5.9447309508216944E-02
+-5.9435437407917846E-02
+-5.9423553448361255E-02
+-5.9411657634302770E-02
+-5.9399749970497989E-02
+-5.9387830461702484E-02
+-5.9375899112671889E-02
+-5.9363955928161773E-02
+-5.9352000912927735E-02
+-5.9340034071725375E-02
+-5.9328055409310271E-02
+-5.9316064930438034E-02
+-5.9304062639864263E-02
+-5.9292048542344544E-02
+-5.9280022642634475E-02
+-5.9267984945489641E-02
+-5.9255935455665647E-02
+-5.9243874177918092E-02
+-5.9231801117002561E-02
+-5.9219716277674653E-02
+-5.9207619664689966E-02
+-5.9195511282804092E-02
+-5.9183391136772623E-02
+-5.9171259231351150E-02
+-5.9159115571295287E-02
+-5.9146960161360604E-02
+-5.9134793006302720E-02
+-5.9122614110877214E-02
+-5.9110423479839684E-02
+-5.9098221117945729E-02
+-5.9086007029950940E-02
+-5.9073781220610910E-02
+-5.9061543694681237E-02
+-5.9049294456917506E-02
+-5.9037033512075343E-02
+-5.9024760864910306E-02
+-5.9012476520178020E-02
+-5.9000180482634050E-02
+-5.8987872757034009E-02
+-5.8975553348133494E-02
+-5.8963222260688092E-02
+-5.8950879499453407E-02
+-5.8938525069185024E-02
+-5.8926158974638543E-02
+-5.8913781220569547E-02
+-5.8901391811733650E-02
+-5.8888990752886443E-02
+-5.8876578048783511E-02
+-5.8864153704180452E-02
+-5.8851717723832866E-02
+-5.8839270112496359E-02
+-5.8826810874926493E-02
+-5.8814340015878888E-02
+-5.8801857540109137E-02
+-5.8789363452372824E-02
+-5.8776857757425555E-02
+-5.8764340460022921E-02
+-5.8751811564920514E-02
+-5.8739271076873933E-02
+-5.8726719000638770E-02
+-5.8714155340970617E-02
+-5.8701580102625085E-02
+-5.8688993290357754E-02
+-5.8676394908924220E-02
+-5.8663784963080078E-02
+-5.8651163457580924E-02
+-5.8638530397182358E-02
+-5.8625885786639971E-02
+-5.8613229630709356E-02
+-5.8600561934146103E-02
+-5.8587882701705826E-02
+-5.8575191938144096E-02
+-5.8562489648216524E-02
+-5.8549775836678704E-02
+-5.8537050508286226E-02
+-5.8524313667794675E-02
+-5.8511565319959671E-02
+-5.8498805469536785E-02
+-5.8486034121281630E-02
+-5.8473251279949789E-02
+-5.8460456950296863E-02
+-5.8447651137078435E-02
+-5.8434833845050119E-02
+-5.8422005078967498E-02
+-5.8409164843586166E-02
+-5.8396313143661727E-02
+-5.8383449983949759E-02
+-5.8370575369205882E-02
+-5.8357689304185667E-02
+-5.8344791793644726E-02
+-5.8331882842338645E-02
+-5.8318962455023021E-02
+-5.8306030636453440E-02
+-5.8293087391385515E-02
+-5.8280132724574829E-02
+-5.8267166640776975E-02
+-5.8254189144747559E-02
+-5.8241200241242165E-02
+-5.8228199935016392E-02
+-5.8215188230825846E-02
+-5.8202165133426090E-02
+-5.8189130647572751E-02
+-5.8176084778021414E-02
+-5.8163027529527664E-02
+-5.8149958906847113E-02
+-5.8136878914735346E-02
+-5.8123787557947962E-02
+-5.8110684841240552E-02
+-5.8097570769368709E-02
+-5.8084445347088030E-02
+-5.8071308579154116E-02
+-5.8058160470322556E-02
+-5.8045001025348944E-02
+-5.8031830248988871E-02
+-5.8018648145997942E-02
+-5.8005454721131756E-02
+-5.7992249979145885E-02
+-5.7979033924795954E-02
+-5.7965806562837535E-02
+-5.7952567898026219E-02
+-5.7939317935117626E-02
+-5.7926056678867334E-02
+-5.7912784134030941E-02
+-5.7899500305364046E-02
+-5.7886205197622234E-02
+-5.7872898815561104E-02
+-5.7859581163936247E-02
+-5.7846252247503283E-02
+-5.7832912071017775E-02
+-5.7819560639235330E-02
+-5.7806197956911540E-02
+-5.7792824028802009E-02
+-5.7779438859662330E-02
+-5.7766042454248080E-02
+-5.7752634817314880E-02
+-5.7739215953618306E-02
+-5.7725785867913965E-02
+-5.7712344564957441E-02
+-5.7698892049504340E-02
+-5.7685428326310254E-02
+-5.7671953400130767E-02
+-5.7658467275721485E-02
+-5.7644969957837994E-02
+-5.7631461451235905E-02
+-5.7617941760670803E-02
+-5.7604410890898280E-02
+-5.7590868846673929E-02
+-5.7577315632753354E-02
+-5.7563751253892154E-02
+-5.7550175714845900E-02
+-5.7536589020370212E-02
+-5.7522991175220667E-02
+-5.7509382184152878E-02
+-5.7495762051922431E-02
+-5.7482130783284915E-02
+-5.7468488382995939E-02
+-5.7454834855811071E-02
+-5.7441170206485939E-02
+-5.7427494439776114E-02
+-5.7413807560437208E-02
+-5.7400109573224806E-02
+-5.7386400482894492E-02
+-5.7372680294201880E-02
+-5.7358949011902569E-02
+-5.7345206640752135E-02
+-5.7331453185506177E-02
+-5.7317688650920295E-02
+-5.7303913041750094E-02
+-5.7290126362751145E-02
+-5.7276328618679068E-02
+-5.7262519814289432E-02
+-5.7248699954337859E-02
+-5.7234869043579925E-02
+-5.7221027086771223E-02
+-5.7207174088667365E-02
+-5.7193310054023928E-02
+-5.7179434987596520E-02
+-5.7165548894140737E-02
+-5.7151651778412166E-02
+-5.7137743645166390E-02
+-5.7123824499159030E-02
+-5.7109894345145670E-02
+-5.7095953187881895E-02
+-5.7082001032123325E-02
+-5.7068037882625516E-02
+-5.7054063744144096E-02
+-5.7040078621434662E-02
+-5.7026082519252785E-02
+-5.7012075442354065E-02
+-5.6998057395494107E-02
+-5.6984028383428503E-02
+-5.6969988410912845E-02
+-5.6955937482702737E-02
+-5.6941875603553765E-02
+-5.6927802778221515E-02
+-5.6913719011461597E-02
+-5.6899624308029612E-02
+-5.6885518672681136E-02
+-5.6871402110171776E-02
+-5.6857274625257123E-02
+-5.6843136222692756E-02
+-5.6828986907234300E-02
+-5.6814826683637340E-02
+-5.6800655556657462E-02
+-5.6786473531050270E-02
+-5.6772280611571350E-02
+-5.6758076802976301E-02
+-5.6743862110020714E-02
+-5.6729636537460194E-02
+-5.6715400090050327E-02
+-5.6701152772546719E-02
+-5.6686894589704953E-02
+-5.6672625546280622E-02
+-5.6658345647029332E-02
+-5.6644054896706680E-02
+-5.6629753300068246E-02
+-5.6615440861869634E-02
+-5.6601117586866437E-02
+-5.6586783479814246E-02
+-5.6572438545468673E-02
+-5.6558082788585290E-02
+-5.6543716213919709E-02
+-5.6529338826227508E-02
+-5.6514950630264293E-02
+-5.6500551630785670E-02
+-5.6486141832547215E-02
+-5.6471721240304529E-02
+-5.6457289858813209E-02
+-5.6442847692828840E-02
+-5.6428394747107036E-02
+-5.6413931026403380E-02
+-5.6399456535473472E-02
+-5.6384971279072896E-02
+-5.6370475261957251E-02
+-5.6355968488882149E-02
+-5.6341450964603162E-02
+-5.6326922693875896E-02
+-5.6312383681455941E-02
+-5.6297833932098890E-02
+-5.6283273450560348E-02
+-5.6268702241595907E-02
+-5.6254120309961159E-02
+-5.6239527660411702E-02
+-5.6224924297703129E-02
+-5.6210310226591023E-02
+-5.6195685451830998E-02
+-5.6181049978178646E-02
+-5.6166403810389551E-02
+-5.6151746953219311E-02
+-5.6137079411423520E-02
+-5.6122401189757788E-02
+-5.6107712292977688E-02
+-5.6093012725838838E-02
+-5.6078302493096817E-02
+-5.6063581599507216E-02
+-5.6048850049825641E-02
+-5.6034107848807684E-02
+-5.6019355001208943E-02
+-5.6004591511785003E-02
+-5.5989817385291470E-02
+-5.5975032626483928E-02
+-5.5960237240117977E-02
+-5.5945431230949222E-02
+-5.5930614603733241E-02
+-5.5915787363225639E-02
+-5.5900949514182008E-02
+-5.5886101061357940E-02
+-5.5871242009509034E-02
+-5.5856372363390888E-02
+-5.5841492127759088E-02
+-5.5826601307369238E-02
+-5.5811699906976930E-02
+-5.5796787931337757E-02
+-5.5781865385207310E-02
+-5.5766932273341195E-02
+-5.5751988600495003E-02
+-5.5737034371424313E-02
+-5.5722069590884743E-02
+-5.5707094263631879E-02
+-5.5692108394421305E-02
+-5.5677111988008635E-02
+-5.5662105049149459E-02
+-5.5647087582599356E-02
+-5.5632059593113944E-02
+-5.5617021085448803E-02
+-5.5601972064359531E-02
+-5.5586912534601726E-02
+-5.5571842500930974E-02
+-5.5556761968102872E-02
+-5.5541670940873034E-02
+-5.5526569423997037E-02
+-5.5511457422230473E-02
+-5.5496334940328948E-02
+-5.5481201983048047E-02
+-5.5466058555143374E-02
+-5.5450904661370523E-02
+-5.5435740306485085E-02
+-5.5420565495242644E-02
+-5.5405380232398813E-02
+-5.5390184522709177E-02
+-5.5374978370929334E-02
+-5.5359761781814898E-02
+-5.5344534760121425E-02
+-5.5329297310604542E-02
+-5.5314049438019819E-02
+-5.5298791147122869E-02
+-5.5283522442669292E-02
+-5.5268243329414657E-02
+-5.5252953812114591E-02
+-5.5237653895524652E-02
+-5.5222343584400473E-02
+-5.5207022883497624E-02
+-5.5191691797571718E-02
+-5.5176350331378327E-02
+-5.5160998489673055E-02
+-5.5145636277211502E-02
+-5.5130263698749266E-02
+-5.5114880759041945E-02
+-5.5099487462845112E-02
+-5.5084083814914378E-02
+-5.5068669820005335E-02
+-5.5053245482873589E-02
+-5.5037810808274718E-02
+-5.5022365800964326E-02
+-5.5006910465697993E-02
+-5.4991444807231338E-02
+-5.4975968830319938E-02
+-5.4960482539719392E-02
+-5.4944985940185306E-02
+-5.4929479036473258E-02
+-5.4913961833338854E-02
+-5.4898434335537677E-02
+-5.4882896547825348E-02
+-5.4867348474957431E-02
+-5.4851790121689538E-02
+-5.4836221492777268E-02
+-5.4820642592976192E-02
+-5.4805053427041936E-02
+-5.4789453999730064E-02
+-5.4773844315796211E-02
+-5.4758224379995932E-02
+-5.4742594197084833E-02
+-5.4726953771818521E-02
+-5.4711303108952579E-02
+-5.4695642213242614E-02
+-5.4679971089444210E-02
+-5.4664289742312966E-02
+-5.4648598176604474E-02
+-5.4632896397074332E-02
+-5.4617184408478132E-02
+-5.4601462215571467E-02
+-5.4585729823109955E-02
+-5.4569987235849146E-02
+-5.4554234458544681E-02
+-5.4538471495952125E-02
+-5.4522698352827088E-02
+-5.4506915033925150E-02
+-5.4491121544001923E-02
+-5.4475317887812992E-02
+-5.4459504070113948E-02
+-5.4443680095660404E-02
+-5.4427845969207939E-02
+-5.4412001695512156E-02
+-5.4396147279328635E-02
+-5.4380282725412989E-02
+-5.4364408038520801E-02
+-5.4348523223407663E-02
+-5.4332628284829196E-02
+-5.4316723227540969E-02
+-5.4300808056298583E-02
+-5.4284882775857635E-02
+-5.4268947390973724E-02
+-5.4253001906402427E-02
+-5.4237046326899359E-02
+-5.4221080657220103E-02
+-5.4205104902120264E-02
+-5.4189119066355443E-02
+-5.4173123154681209E-02
+-5.4157117171853175E-02
+-5.4141101122626933E-02
+-5.4125075011758075E-02
+-5.4109038844002200E-02
+-5.4092992624114891E-02
+-5.4076936356851769E-02
+-5.4060870046968405E-02
+-5.4044793699220404E-02
+-5.4028707318363359E-02
+-5.4012610909152867E-02
+-5.3996504476344520E-02
+-5.3980388024693904E-02
+-5.3964261558956630E-02
+-5.3948125083888285E-02
+-5.3931978604244479E-02
+-5.3915822124780771E-02
+-5.3899655650252794E-02
+-5.3883479185416125E-02
+-5.3867292735026356E-02
+-5.3851096303839080E-02
+-5.3834889896609908E-02
+-5.3818673518094426E-02
+-5.3802447173048232E-02
+-5.3786210866226911E-02
+-5.3769964602386061E-02
+-5.3753708386281296E-02
+-5.3737442222668179E-02
+-5.3721166116302323E-02
+-5.3704880071939333E-02
+-5.3688584094334774E-02
+-5.3672278188244271E-02
+-5.3655962358423404E-02
+-5.3639636609627776E-02
+-5.3623300946612967E-02
+-5.3606955374134582E-02
+-5.3590599896948227E-02
+-5.3574234519809472E-02
+-5.3557859247473930E-02
+-5.3541474084697199E-02
+-5.3525079036234866E-02
+-5.3508674106842506E-02
+-5.3492259301275755E-02
+-5.3475834624290175E-02
+-5.3459400080641373E-02
+-5.3442955675084954E-02
+-5.3426501412376481E-02
+-5.3410037297271597E-02
+-5.3393563334525856E-02
+-5.3377079528894880E-02
+-5.3360585885134232E-02
+-5.3344082407999538E-02
+-5.3327569102246369E-02
+-5.3311045972630353E-02
+-5.3294513023907045E-02
+-5.3277970260832065E-02
+-5.3261417688161006E-02
+-5.3244855310649444E-02
+-5.3228283133053007E-02
+-5.3211701160127266E-02
+-5.3195109396627818E-02
+-5.3178507847310263E-02
+-5.3161896516930193E-02
+-5.3145275410243206E-02
+-5.3128644532004887E-02
+-5.3112003886970856E-02
+-5.3095353479896676E-02
+-5.3078693315537967E-02
+-5.3062023398650293E-02
+-5.3045343733989295E-02
+-5.3028654326310529E-02
+-5.3011955180369608E-02
+-5.2995246300922123E-02
+-5.2978527692723654E-02
+-5.2961799360529832E-02
+-5.2945061309096215E-02
+-5.2928313543178424E-02
+-5.2911556067532034E-02
+-5.2894788886912646E-02
+-5.2878012006075864E-02
+-5.2861225429777267E-02
+-5.2844429162772474E-02
+-5.2827623209817057E-02
+-5.2810807575666627E-02
+-5.2793982265076755E-02
+-5.2777147282803069E-02
+-5.2760302633601139E-02
+-5.2743448322226570E-02
+-5.2726584353434955E-02
+-5.2709710731981892E-02
+-5.2692827462622965E-02
+-5.2675934550113782E-02
+-5.2659031999209932E-02
+-5.2642119814667009E-02
+-5.2625198001240610E-02
+-5.2608266563686321E-02
+-5.2591325506759753E-02
+-5.2574374835216500E-02
+-5.2557414553812146E-02
+-5.2540444667302288E-02
+-5.2523465180442513E-02
+-5.2506476097988447E-02
+-5.2489477424695646E-02
+-5.2472469165319724E-02
+-5.2455451324616285E-02
+-5.2438423907340909E-02
+-5.2421386918249185E-02
+-5.2404340362096728E-02
+-5.2387284243639129E-02
+-5.2370218567631965E-02
+-5.2353143338830843E-02
+-5.2336058561991361E-02
+-5.2318964241869111E-02
+-5.2301860383219698E-02
+-5.2284746990798686E-02
+-5.2267624069361709E-02
+-5.2250491623664339E-02
+-5.2233349658462172E-02
+-5.2216198178510795E-02
+-5.2199037188565833E-02
+-5.2181866693382858E-02
+-5.2164686697717462E-02
+-5.2147497206325250E-02
+-5.2130298223961813E-02
+-5.2113089755382758E-02
+-5.2095871805343655E-02
+-5.2078644378600110E-02
+-5.2061407479907729E-02
+-5.2044161114022089E-02
+-5.2026905285698810E-02
+-5.2009639999693463E-02
+-5.1992365260761654E-02
+-5.1975081073658967E-02
+-5.1957787443141008E-02
+-5.1940484373963369E-02
+-5.1923171870881649E-02
+-5.1905849938651438E-02
+-5.1888518582028330E-02
+-5.1871177805767915E-02
+-5.1853827614625800E-02
+-5.1836468013357583E-02
+-5.1819099006718834E-02
+-5.1801720599465174E-02
+-5.1784332796352195E-02
+-5.1766935602135467E-02
+-5.1749529021570609E-02
+-5.1732113059413214E-02
+-5.1714687720418873E-02
+-5.1697253009343185E-02
+-5.1679808930941727E-02
+-5.1662355489970113E-02
+-5.1644892691183934E-02
+-5.1627420539338789E-02
+-5.1609939039190256E-02
+-5.1592448195493953E-02
+-5.1574948013005453E-02
+-5.1557438496480368E-02
+-5.1539919650674282E-02
+-5.1522391480342794E-02
+-5.1504853990241503E-02
+-5.1487307185125980E-02
+-5.1469751069751865E-02
+-5.1452185648874715E-02
+-5.1434610927250143E-02
+-5.1417026909633734E-02
+-5.1399433600781093E-02
+-5.1381831005447798E-02
+-5.1364219128389468E-02
+-5.1346597974361669E-02
+-5.1328967548120025E-02
+-5.1311327854420115E-02
+-5.1293678898017531E-02
+-5.1276020683667878E-02
+-5.1258353216126741E-02
+-5.1240676500149733E-02
+-5.1222990540492425E-02
+-5.1205295341910428E-02
+-5.1187590909159322E-02
+-5.1169877246994719E-02
+-5.1152154360172217E-02
+-5.1134422253447387E-02
+-5.1116680931575856E-02
+-5.1098930399313174E-02
+-5.1081170661414980E-02
+-5.1063401722636848E-02
+-5.1045623587734373E-02
+-5.1027836261463164E-02
+-5.1010039748578782E-02
+-5.0992234053836870E-02
+-5.0974419181992983E-02
+-5.0956595137802742E-02
+-5.0938761926021724E-02
+-5.0920919551405534E-02
+-5.0903068018709759E-02
+-5.0885207332689995E-02
+-5.0867337498101850E-02
+-5.0849458519700907E-02
+-5.0831570402242773E-02
+-5.0813673150483012E-02
+-5.0795766769177256E-02
+-5.0777851263081077E-02
+-5.0759926636950073E-02
+-5.0741992895539857E-02
+-5.0724050043606000E-02
+-5.0706098085904108E-02
+-5.0688137027189772E-02
+-5.0670166872218599E-02
+-5.0652187625746165E-02
+-5.0634199292528076E-02
+-5.0616201877319925E-02
+-5.0598195384877302E-02
+-5.0580179819955814E-02
+-5.0562155187311053E-02
+-5.0544121491698610E-02
+-5.0526078737874069E-02
+-5.0508026930593045E-02
+-5.0489966074611120E-02
+-5.0471896174683895E-02
+-5.0453817235566960E-02
+-5.0435729262015914E-02
+-5.0417632258786343E-02
+-5.0399526230633859E-02
+-5.0381411182314047E-02
+-5.0363287118582498E-02
+-5.0345154044194811E-02
+-5.0327011963906577E-02
+-5.0308860882473397E-02
+-5.0290700804650867E-02
+-5.0272531735194581E-02
+-5.0254353678860136E-02
+-5.0236166640403111E-02
+-5.0217970624579111E-02
+-5.0199765636143735E-02
+-5.0181551679852582E-02
+-5.0163328760461236E-02
+-5.0145096882725296E-02
+-5.0126856051400354E-02
+-5.0108606271242008E-02
+-5.0090347547005858E-02
+-5.0072079883447487E-02
+-5.0053803285322503E-02
+-5.0035517757386495E-02
+-5.0017223304395043E-02
+-4.9998919931103773E-02
+-4.9980607642268256E-02
+-4.9962286442644097E-02
+-4.9943956336986887E-02
+-4.9925617330052220E-02
+-4.9907269426595693E-02
+-4.9888912631372899E-02
+-4.9870546949139442E-02
+-4.9852172384650908E-02
+-4.9833788942662896E-02
+-4.9815396627930983E-02
+-4.9796995445210795E-02
+-4.9778585399257905E-02
+-4.9760166494827909E-02
+-4.9741738736676422E-02
+-4.9723302129559006E-02
+-4.9704856678231289E-02
+-4.9686402387448841E-02
+-4.9667939261967275E-02
+-4.9649467306542169E-02
+-4.9630986525929129E-02
+-4.9612496924883745E-02
+-4.9593998508161617E-02
+-4.9575491280518344E-02
+-4.9556975246709510E-02
+-4.9538450411490714E-02
+-4.9519916779617541E-02
+-4.9501374355845611E-02
+-4.9482823144930493E-02
+-4.9464263151627809E-02
+-4.9445694380693121E-02
+-4.9427116836882036E-02
+-4.9408530524950173E-02
+-4.9389935449653088E-02
+-4.9371331615746417E-02
+-4.9352719027985714E-02
+-4.9334097691126608E-02
+-4.9315467609924661E-02
+-4.9296828789135501E-02
+-4.9278181233514698E-02
+-4.9259524947817865E-02
+-4.9240859936800593E-02
+-4.9222186205218454E-02
+-4.9203503757827075E-02
+-4.9184812599382038E-02
+-4.9166112734638931E-02
+-4.9147404168353365E-02
+-4.9128686905280911E-02
+-4.9109960950177181E-02
+-4.9091226307797775E-02
+-4.9072482982898284E-02
+-4.9053730980234286E-02
+-4.9034970304561401E-02
+-4.9016200960635192E-02
+-4.8997422953211293E-02
+-4.8978636287045275E-02
+-4.8959840966892730E-02
+-4.8941036997509277E-02
+-4.8922224383650473E-02
+-4.8903403130071944E-02
+-4.8884573241529269E-02
+-4.8865734722778068E-02
+-4.8846887578573903E-02
+-4.8828031813672373E-02
+-4.8809167432829093E-02
+-4.8790294440799645E-02
+-4.8771412842339643E-02
+-4.8752522642204643E-02
+-4.8733623845150280E-02
+-4.8714716455932110E-02
+-4.8695800479305766E-02
+-4.8676875920026820E-02
+-4.8657942782850877E-02
+-4.8639001072533529E-02
+-4.8620050793830361E-02
+-4.8601091951496977E-02
+-4.8582124550288978E-02
+-4.8563148594961955E-02
+-4.8544164090271499E-02
+-4.8525171040973203E-02
+-4.8506169451822664E-02
+-4.8487159327575476E-02
+-4.8468140672987242E-02
+-4.8449113492813549E-02
+-4.8430077791810001E-02
+-4.8411033574732178E-02
+-4.8391980846335683E-02
+-4.8372919611376110E-02
+-4.8353849874609049E-02
+-4.8334771640790114E-02
+-4.8315684914674882E-02
+-4.8296589701018945E-02
+-4.8277486004577909E-02
+-4.8258373830107372E-02
+-4.8239253182362919E-02
+-4.8220124066100142E-02
+-4.8200986486074640E-02
+-4.8181840447042018E-02
+-4.8162685953757861E-02
+-4.8143523010977768E-02
+-4.8124351623457330E-02
+-4.8105171795952140E-02
+-4.8085983533217795E-02
+-4.8066786840009895E-02
+-4.8047581721084025E-02
+-4.8028368181195796E-02
+-4.8009146225100788E-02
+-4.7989915857554598E-02
+-4.7970677083312825E-02
+-4.7951429907131075E-02
+-4.7932174333764919E-02
+-4.7912910367969963E-02
+-4.7893638014501812E-02
+-4.7874357278116030E-02
+-4.7855068163568257E-02
+-4.7835770675614050E-02
+-4.7816464819009030E-02
+-4.7797150598508767E-02
+-4.7777828018868873E-02
+-4.7758497084844941E-02
+-4.7739157801192561E-02
+-4.7719810172667340E-02
+-4.7700454204024856E-02
+-4.7681089900020714E-02
+-4.7661717265410491E-02
+-4.7642336304949823E-02
+-4.7622947023394258E-02
+-4.7603549425499422E-02
+-4.7584143516020909E-02
+-4.7564729299714281E-02
+-4.7545306781335180E-02
+-4.7525875965639161E-02
+-4.7506436857381852E-02
+-4.7486989461318824E-02
+-4.7467533782205674E-02
+-4.7448069824798003E-02
+-4.7428597593851415E-02
+-4.7409117094121489E-02
+-4.7389628330363830E-02
+-4.7370131307334029E-02
+-4.7350626029787665E-02
+-4.7331112502480371E-02
+-4.7311590730167712E-02
+-4.7292060717605292E-02
+-4.7272522469548703E-02
+-4.7252975990753530E-02
+-4.7233421285975394E-02
+-4.7213858359969871E-02
+-4.7194287217492567E-02
+-4.7174707863299067E-02
+-4.7155120302144971E-02
+-4.7135524538785861E-02
+-4.7115920577977352E-02
+-4.7096308424475028E-02
+-4.7076688083034481E-02
+-4.7057059558411322E-02
+-4.7037422855361118E-02
+-4.7017777978639493E-02
+-4.6998124933002025E-02
+-4.6978463723204321E-02
+-4.6958794354001965E-02
+-4.6939116830150548E-02
+-4.6919431156405671E-02
+-4.6899737337522937E-02
+-4.6880035378257939E-02
+-4.6860325283366255E-02
+-4.6840607057603505E-02
+-4.6820880705725251E-02
+-4.6801146232487129E-02
+-4.6781403642644694E-02
+-4.6761652940953566E-02
+-4.6741894132169344E-02
+-4.6722127221047592E-02
+-4.6702352212343944E-02
+-4.6682569110813962E-02
+-4.6662777921213275E-02
+-4.6642978648297438E-02
+-4.6623171296822072E-02
+-4.6603355871542768E-02
+-4.6583532377215110E-02
+-4.6563700818594719E-02
+-4.6543861200437159E-02
+-4.6524013527498041E-02
+-4.6504157804532945E-02
+-4.6484294036297502E-02
+-4.6464422227547271E-02
+-4.6444542383037857E-02
+-4.6424654507524865E-02
+-4.6404758605763874E-02
+-4.6384854682510482E-02
+-4.6364942742520295E-02
+-4.6345022790548911E-02
+-4.6325094831351901E-02
+-4.6305158869684879E-02
+-4.6285214910303435E-02
+-4.6265262957963162E-02
+-4.6245303017419664E-02
+-4.6225335093428528E-02
+-4.6205359190745351E-02
+-4.6185375314125726E-02
+-4.6165383468325244E-02
+-4.6145383658099504E-02
+-4.6125375888204097E-02
+-4.6105360163394636E-02
+-4.6085336488426693E-02
+-4.6065304868055879E-02
+-4.6045265307037772E-02
+-4.6025217810127993E-02
+-4.6005162382082111E-02
+-4.5985099027655726E-02
+-4.5965027751604451E-02
+-4.5944948558683849E-02
+-4.5924861453649560E-02
+-4.5904766441257128E-02
+-4.5884663526262193E-02
+-4.5864552713420312E-02
+-4.5844434007487105E-02
+-4.5824307413218156E-02
+-4.5804172935369064E-02
+-4.5784030578695435E-02
+-4.5763880347952840E-02
+-4.5743722247896884E-02
+-4.5723556283283166E-02
+-4.5703382458867285E-02
+-4.5683200779404826E-02
+-4.5663011249651379E-02
+-4.5642813874362566E-02
+-4.5622608658293942E-02
+-4.5602395606201135E-02
+-4.5582174722839729E-02
+-4.5561946012965322E-02
+-4.5541709481333494E-02
+-4.5521465132699855E-02
+-4.5501212971819999E-02
+-4.5480953003449509E-02
+-4.5460685232344006E-02
+-4.5440409663259053E-02
+-4.5420126300950270E-02
+-4.5399835150173228E-02
+-4.5379536215683546E-02
+-4.5359229502236802E-02
+-4.5338915014588602E-02
+-4.5318592757494537E-02
+-4.5298262735710186E-02
+-4.5277924953991175E-02
+-4.5257579417093081E-02
+-4.5237226129771504E-02
+-4.5216865096782029E-02
+-4.5196496322880253E-02
+-4.5176119812821783E-02
+-4.5155735571362196E-02
+-4.5135343603257119E-02
+-4.5114943913262109E-02
+-4.5094536506132786E-02
+-4.5074121386624720E-02
+-4.5053698559493538E-02
+-4.5033268029494811E-02
+-4.5012829801384151E-02
+-4.4992383879917129E-02
+-4.4971930269849358E-02
+-4.4951468975936437E-02
+-4.4931000002933943E-02
+-4.4910523355597497E-02
+-4.4890039038682668E-02
+-4.4869547056945069E-02
+-4.4849047415140272E-02
+-4.4828540118023903E-02
+-4.4808025170351526E-02
+-4.4787502576878760E-02
+-4.4766972342361197E-02
+-4.4746434471554408E-02
+-4.4725888969214020E-02
+-4.4705335840095603E-02
+-4.4684775088954777E-02
+-4.4664206720547113E-02
+-4.4643630739628209E-02
+-4.4623047150953672E-02
+-4.4602455959279093E-02
+-4.4581857169360070E-02
+-4.4561250785952182E-02
+-4.4540636813811048E-02
+-4.4520015257692225E-02
+-4.4499386122351360E-02
+-4.4478749412544004E-02
+-4.4458105133025769E-02
+-4.4437453288552267E-02
+-4.4416793883879056E-02
+-4.4396126923761756E-02
+-4.4375452412955950E-02
+-4.4354770356217252E-02
+-4.4334080758301239E-02
+-4.4313383623963504E-02
+-4.4292678957959651E-02
+-4.4271966765045273E-02
+-4.4251247049975975E-02
+-4.4230519817507329E-02
+-4.4209785072394953E-02
+-4.4189042819394411E-02
+-4.4168293063261338E-02
+-4.4147535808751304E-02
+-4.4126771060619907E-02
+-4.4105998823622747E-02
+-4.4085219102515415E-02
+-4.4064431902053502E-02
+-4.4043637226992609E-02
+-4.4022835082088339E-02
+-4.4002025472096265E-02
+-4.3981208401771998E-02
+-4.3960383875871131E-02
+-4.3939551899149255E-02
+-4.3918712476361976E-02
+-4.3897865612264872E-02
+-4.3877011311613548E-02
+-4.3856149579163596E-02
+-4.3835280419670608E-02
+-4.3814403837890190E-02
+-4.3793519838577918E-02
+-4.3772628426489414E-02
+-4.3751729606380255E-02
+-4.3730823383006025E-02
+-4.3709909761122337E-02
+-4.3688988745484797E-02
+-4.3668060340848969E-02
+-4.3647124551970465E-02
+-4.3626181383604884E-02
+-4.3605230840507797E-02
+-4.3584272927434838E-02
+-4.3563307649141569E-02
+-4.3542335010383605E-02
+-4.3521355015916523E-02
+-4.3500367670495928E-02
+-4.3479372978877419E-02
+-4.3458370945816581E-02
+-4.3437361576069027E-02
+-4.3416344874390327E-02
+-4.3395320845536087E-02
+-4.3374289494261906E-02
+-4.3353250825323382E-02
+-4.3332204843476094E-02
+-4.3311151553475646E-02
+-4.3290090960077646E-02
+-4.3269023068037663E-02
+-4.3247947882111316E-02
+-4.3226865407054178E-02
+-4.3205775647621868E-02
+-4.3184678608569962E-02
+-4.3163574294654061E-02
+-4.3142462710629756E-02
+-4.3121343861252645E-02
+-4.3100217751278334E-02
+-4.3079084385462402E-02
+-4.3057943768560453E-02
+-4.3036795905328065E-02
+-4.3015640800520859E-02
+-4.2994478458894411E-02
+-4.2973308885204328E-02
+-4.2952132084206202E-02
+-4.2930948060655602E-02
+-4.2909756819308170E-02
+-4.2888558364919470E-02
+-4.2867352702245114E-02
+-4.2846139836040673E-02
+-4.2824919771061766E-02
+-4.2803692512063958E-02
+-4.2782458063802875E-02
+-4.2761216431034109E-02
+-4.2739967618513230E-02
+-4.2718711630995866E-02
+-4.2697448473237580E-02
+-4.2676178149993992E-02
+-4.2654900666020679E-02
+-4.2633616026073254E-02
+-4.2612324234907295E-02
+-4.2591025297278401E-02
+-4.2569719217942170E-02
+-4.2548406001654202E-02
+-4.2527085653170087E-02
+-4.2505758177245417E-02
+-4.2484423578635792E-02
+-4.2463081862096790E-02
+-4.2441733032384035E-02
+-4.2420377094253101E-02
+-4.2399014052459591E-02
+-4.2377643911759105E-02
+-4.2356266676907207E-02
+-4.2334882352659538E-02
+-4.2313490943771660E-02
+-4.2292092454999194E-02
+-4.2270686891097704E-02
+-4.2249274256822802E-02
+-4.2227854556930081E-02
+-4.2206427796175131E-02
+-4.2184993979313565E-02
+-4.2163553111100954E-02
+-4.2142105196292919E-02
+-4.2120650239645015E-02
+-4.2099188245912883E-02
+-4.2077719219852087E-02
+-4.2056243166218227E-02
+-4.2034760089766920E-02
+-4.2013269995253726E-02
+-4.1991772887434262E-02
+-4.1970268771064120E-02
+-4.1948757650898894E-02
+-4.1927239531694173E-02
+-4.1905714418205557E-02
+-4.1884182315188645E-02
+-4.1862643227399021E-02
+-4.1841097159592298E-02
+-4.1819544116524054E-02
+-4.1797984102949895E-02
+-4.1776417123625398E-02
+-4.1754843183306176E-02
+-4.1733262286747813E-02
+-4.1711674438705916E-02
+-4.1690079643936076E-02
+-4.1668477907193878E-02
+-4.1646869233234921E-02
+-4.1625253626814809E-02
+-4.1603631092689136E-02
+-4.1582001635613479E-02
+-4.1560365260343450E-02
+-4.1538721971634635E-02
+-4.1517071774242638E-02
+-4.1495414672923059E-02
+-4.1473750672431468E-02
+-4.1452079777523486E-02
+-4.1430401992954689E-02
+-4.1408717323480677E-02
+-4.1387025773857056E-02
+-4.1365327348839402E-02
+-4.1343622053183336E-02
+-4.1321909891644429E-02
+-4.1300190868978279E-02
+-4.1278464989940492E-02
+-4.1256732259286666E-02
+-4.1234992681772373E-02
+-4.1213246262153225E-02
+-4.1191493005184820E-02
+-4.1169732915622731E-02
+-4.1147965998222590E-02
+-4.1126192257739960E-02
+-4.1104411698930456E-02
+-4.1082624326549654E-02
+-4.1060830145353153E-02
+-4.1039029160096559E-02
+-4.1017221375535463E-02
+-4.0995406796425465E-02
+-4.0973585427522143E-02
+-4.0951757273581108E-02
+-4.0929922339357931E-02
+-4.0908080629608247E-02
+-4.0886232149087619E-02
+-4.0864376902551652E-02
+-4.0842514894755946E-02
+-4.0820646130456079E-02
+-4.0798770614407669E-02
+-4.0776888351366294E-02
+-4.0754999346087561E-02
+-4.0733103603327048E-02
+-4.0711201127840366E-02
+-4.0689291924383100E-02
+-4.0667375997710843E-02
+-4.0645453352579214E-02
+-4.0623523993743776E-02
+-4.0601587925960150E-02
+-4.0579645153983893E-02
+-4.0557695682570651E-02
+-4.0535739516475981E-02
+-4.0513776660455490E-02
+-4.0491807119264783E-02
+-4.0469830897659424E-02
+-4.0447848000395054E-02
+-4.0425858432227228E-02
+-4.0403862197911568E-02
+-4.0381859302203643E-02
+-4.0359849749859074E-02
+-4.0337833545633424E-02
+-4.0315810694282320E-02
+-4.0293781200561346E-02
+-4.0271745069226095E-02
+-4.0249702305032165E-02
+-4.0227652912735133E-02
+-4.0205596897090627E-02
+-4.0183534262854217E-02
+-4.0161465014781510E-02
+-4.0139389157628089E-02
+-4.0117306696149553E-02
+-4.0095217635101502E-02
+-4.0073121979239526E-02
+-4.0051019733319232E-02
+-4.0028910902096197E-02
+-4.0006795490326034E-02
+-3.9984673502764308E-02
+-3.9962544944166650E-02
+-3.9940409819288633E-02
+-3.9918268132885862E-02
+-3.9896119889713928E-02
+-3.9873965094528417E-02
+-3.9851803752084941E-02
+-3.9829635867139085E-02
+-3.9807461444446454E-02
+-3.9785280488762620E-02
+-3.9763093004843195E-02
+-3.9740898997443770E-02
+-3.9718698471319945E-02
+-3.9696491431227318E-02
+-3.9674277881921467E-02
+-3.9652057828158005E-02
+-3.9629831274692502E-02
+-3.9607598226280585E-02
+-3.9585358687677825E-02
+-3.9563112663639828E-02
+-3.9540860158922199E-02
+-3.9518601178280502E-02
+-3.9496335726470357E-02
+-3.9474063808247348E-02
+-3.9451785428367088E-02
+-3.9429500591585148E-02
+-3.9407209302657127E-02
+-3.9384911566338630E-02
+-3.9362607387385250E-02
+-3.9340296770552584E-02
+-3.9317979720596218E-02
+-3.9295656242271756E-02
+-3.9273326340334778E-02
+-3.9250990019540896E-02
+-3.9228647284645694E-02
+-3.9206298140404772E-02
+-3.9183942591573727E-02
+-3.9161580642908152E-02
+-3.9139212299163631E-02
+-3.9116837565095777E-02
+-3.9094456445460182E-02
+-3.9072068945012424E-02
+-3.9049675068508115E-02
+-3.9027274820702840E-02
+-3.9004868206352197E-02
+-3.8982455230211793E-02
+-3.8960035897037205E-02
+-3.8937610211584046E-02
+-3.8915178178607887E-02
+-3.8892739802864333E-02
+-3.8870295089108983E-02
+-3.8847844042097436E-02
+-3.8825386666585290E-02
+-3.8802922967328117E-02
+-3.8780452949081529E-02
+-3.8757976616601117E-02
+-3.8735493974642488E-02
+-3.8713005027961218E-02
+-3.8690509781312908E-02
+-3.8668008239453169E-02
+-3.8645500407137559E-02
+-3.8622986289121711E-02
+-3.8600465890161202E-02
+-3.8577939215011632E-02
+-3.8555406268428585E-02
+-3.8532867055167674E-02
+-3.8510321579984477E-02
+-3.8487769847634593E-02
+-3.8465211862873633E-02
+-3.8442647630457169E-02
+-3.8420077155140821E-02
+-3.8397500441680145E-02
+-3.8374917494830775E-02
+-3.8352328319348289E-02
+-3.8329732919988278E-02
+-3.8307131301506356E-02
+-3.8284523468658078E-02
+-3.8261909426199094E-02
+-3.8239289178884958E-02
+-3.8216662731471285E-02
+-3.8194030088713651E-02
+-3.8171391255367663E-02
+-3.8148746236188913E-02
+-3.8126095035933005E-02
+-3.8103437659355532E-02
+-3.8080774111212072E-02
+-3.8058104396258244E-02
+-3.8035428519249612E-02
+-3.8012746484941802E-02
+-3.7990058298090393E-02
+-3.7967363963450983E-02
+-3.7944663485779170E-02
+-3.7921956869830534E-02
+-3.7899244120360699E-02
+-3.7876525242125238E-02
+-3.7853800239879755E-02
+-3.7831069118379829E-02
+-3.7808331882381079E-02
+-3.7785588536639068E-02
+-3.7762839085909432E-02
+-3.7740083534947733E-02
+-3.7717321888509577E-02
+-3.7694554151350569E-02
+-3.7671780328226274E-02
+-3.7649000423892333E-02
+-3.7626214443104294E-02
+-3.7603422390617793E-02
+-3.7580624271188384E-02
+-3.7557820089571689E-02
+-3.7535009850523299E-02
+-3.7512193558798805E-02
+-3.7489371219153807E-02
+-3.7466542836343895E-02
+-3.7443708415124670E-02
+-3.7420867960251701E-02
+-3.7398021476480629E-02
+-3.7375168968567012E-02
+-3.7352310441266454E-02
+-3.7329445899334568E-02
+-3.7306575347526919E-02
+-3.7283698790599118E-02
+-3.7260816233306758E-02
+-3.7237927680405444E-02
+-3.7215033136650755E-02
+-3.7192132606798288E-02
+-3.7169226095603643E-02
+-3.7146313607822418E-02
+-3.7123395148210211E-02
+-3.7100470721522595E-02
+-3.7077540332515195E-02
+-3.7054603985943568E-02
+-3.7031661686563355E-02
+-3.7008713439130120E-02
+-3.6985759248399461E-02
+-3.6962799119126991E-02
+-3.6939833056068273E-02
+-3.6916861063978929E-02
+-3.6893883147614541E-02
+-3.6870899311730716E-02
+-3.6847909561083032E-02
+-3.6824913900427095E-02
+-3.6801912334518502E-02
+-3.6778904868112840E-02
+-3.6755891505965713E-02
+-3.6732872252832706E-02
+-3.6709847113469425E-02
+-3.6686816092631448E-02
+-3.6663779195074381E-02
+-3.6640736425553821E-02
+-3.6617687788825355E-02
+-3.6594633289644601E-02
+-3.6571572932767117E-02
+-3.6548506722948522E-02
+-3.6525434664944401E-02
+-3.6502356763510373E-02
+-3.6479273023401995E-02
+-3.6456183449374881E-02
+-3.6433088046184635E-02
+-3.6409986818910410E-02
+-3.6386879775790845E-02
+-3.6363766926697967E-02
+-3.6340648273469910E-02
+-3.6317523806011900E-02
+-3.6294393516896423E-02
+-3.6271257413916624E-02
+-3.6248115508658106E-02
+-3.6224967810005927E-02
+-3.6201814324821023E-02
+-3.6178655054622651E-02
+-3.6155489990724751E-02
+-3.6132319125593879E-02
+-3.6109142464716915E-02
+-3.6085960018085457E-02
+-3.6062771794741579E-02
+-3.6039577802814159E-02
+-3.6016378046165101E-02
+-3.5993172517946904E-02
+-3.5969961210993606E-02
+-3.5946744128453501E-02
+-3.5923521278268589E-02
+-3.5900292669604858E-02
+-3.5877058313089745E-02
+-3.5853818214900093E-02
+-3.5830572365949290E-02
+-3.5807320755249873E-02
+-3.5784063385643411E-02
+-3.5760800268295048E-02
+-3.5737531414077955E-02
+-3.5714256833223754E-02
+-3.5690976532417637E-02
+-3.5667690502636074E-02
+-3.5644398731324217E-02
+-3.5621101219465802E-02
+-3.5597797978602921E-02
+-3.5574489019764483E-02
+-3.5551174352347517E-02
+-3.5527853983486353E-02
+-3.5504527907831658E-02
+-3.5481196115733207E-02
+-3.5457858606219493E-02
+-3.5434515387064498E-02
+-3.5411166467214553E-02
+-3.5387811857750591E-02
+-3.5364451568448897E-02
+-3.5341085595356765E-02
+-3.5317713927963845E-02
+-3.5294336563819848E-02
+-3.5270953511004302E-02
+-3.5247564778470526E-02
+-3.5224170375786928E-02
+-3.5200770311731175E-02
+-3.5177364584347351E-02
+-3.5153953184865423E-02
+-3.5130536110250611E-02
+-3.5107113367310205E-02
+-3.5083684964386644E-02
+-3.5060250912678843E-02
+-3.5036811223476863E-02
+-3.5013365895099867E-02
+-3.4989914915129407E-02
+-3.4966458277778167E-02
+-3.4942995992554272E-02
+-3.4919528070830125E-02
+-3.4896054522866808E-02
+-3.4872575358092080E-02
+-3.4849090575805305E-02
+-3.4825600164463774E-02
+-3.4802104117185526E-02
+-3.4778602442166191E-02
+-3.4755095150372797E-02
+-3.4731582253220150E-02
+-3.4708063762128830E-02
+-3.4684539678191066E-02
+-3.4661009988213802E-02
+-3.4637474682662019E-02
+-3.4613933770237866E-02
+-3.4590387263902789E-02
+-3.4566835174617921E-02
+-3.4543277511896030E-02
+-3.4519714277817991E-02
+-3.4496145461174091E-02
+-3.4472571052628104E-02
+-3.4448991059778902E-02
+-3.4425405495573554E-02
+-3.4401814370423646E-02
+-3.4378217692478265E-02
+-3.4354615464595194E-02
+-3.4331007677377325E-02
+-3.4307394321877960E-02
+-3.4283775404680937E-02
+-3.4260150938919307E-02
+-3.4236520934479535E-02
+-3.4212885397517573E-02
+-3.4189244331179293E-02
+-3.4165597729871273E-02
+-3.4141945587306176E-02
+-3.4118287906905194E-02
+-3.4094624697551083E-02
+-3.4070955968752377E-02
+-3.4047281730850316E-02
+-3.4023601990718029E-02
+-3.3999916740513732E-02
+-3.3976225969546303E-02
+-3.3952529680627001E-02
+-3.3928827886390886E-02
+-3.3905120598186470E-02
+-3.3881407824471625E-02
+-3.3857689571135226E-02
+-3.3833965831533766E-02
+-3.3810236595231587E-02
+-3.3786501863339258E-02
+-3.3762761647828841E-02
+-3.3739015960326108E-02
+-3.3715264810525308E-02
+-3.3691508206132426E-02
+-3.3667746142038477E-02
+-3.3643978607544624E-02
+-3.3620205601482350E-02
+-3.3596427134280189E-02
+-3.3572643216839219E-02
+-3.3548853859309127E-02
+-3.3525059070449288E-02
+-3.3501258846036351E-02
+-3.3477453174232889E-02
+-3.3453642052979918E-02
+-3.3429825495728246E-02
+-3.3406003515893068E-02
+-3.3382176120664062E-02
+-3.3358343315062558E-02
+-3.3334505097616131E-02
+-3.3310661461842327E-02
+-3.3286812405108383E-02
+-3.3262957932922818E-02
+-3.3239098052719740E-02
+-3.3215232777528518E-02
+-3.3191362121848235E-02
+-3.3167486086090499E-02
+-3.3143604656576599E-02
+-3.3119717825804876E-02
+-3.3095825604557996E-02
+-3.3071928006156853E-02
+-3.3048025039758455E-02
+-3.3024116712319911E-02
+-3.3000203024632697E-02
+-3.2976283969545751E-02
+-3.2952359542450751E-02
+-3.2928429749742173E-02
+-3.2904494600403594E-02
+-3.2880554104838693E-02
+-3.2856608274254372E-02
+-3.2832657112203338E-02
+-3.2808700609410171E-02
+-3.2784738758389588E-02
+-3.2760771566121775E-02
+-3.2736799043848130E-02
+-3.2712821201529345E-02
+-3.2688838048043532E-02
+-3.2664849587490427E-02
+-3.2640855813600107E-02
+-3.2616856720169084E-02
+-3.2592852310292637E-02
+-3.2568842590917461E-02
+-3.2544827572812629E-02
+-3.2520807270800846E-02
+-3.2496781693281282E-02
+-3.2472750829553747E-02
+-3.2448714667353822E-02
+-3.2424673210911005E-02
+-3.2400626473059975E-02
+-3.2376574465797073E-02
+-3.2352517199862443E-02
+-3.2328454682024756E-02
+-3.2304386904113302E-02
+-3.2280313855450167E-02
+-3.2256235538954223E-02
+-3.2232151966783959E-02
+-3.2208063150717225E-02
+-3.2183969101537369E-02
+-3.2159869827119256E-02
+-3.2135765320854576E-02
+-3.2111655572070727E-02
+-3.2087540581063147E-02
+-3.2063420357770794E-02
+-3.2039294913478282E-02
+-3.2015164261846592E-02
+-3.1991028414378966E-02
+-3.1966887365154281E-02
+-3.1942741101197776E-02
+-3.1918589620338007E-02
+-3.1894432932676339E-02
+-3.1870271049695593E-02
+-3.1846103985105179E-02
+-3.1821931751264659E-02
+-3.1797754343427360E-02
+-3.1773571747516584E-02
+-3.1749383960523708E-02
+-3.1725190995797264E-02
+-3.1700992867029022E-02
+-3.1676789583951592E-02
+-3.1652581154514789E-02
+-3.1628367576281236E-02
+-3.1604148839353530E-02
+-3.1579924940746650E-02
+-3.1555695890952987E-02
+-3.1531461701801364E-02
+-3.1507222384151740E-02
+-3.1482977948028339E-02
+-3.1458728393202670E-02
+-3.1434473709873754E-02
+-3.1410213893155361E-02
+-3.1385948951362264E-02
+-3.1361678895036015E-02
+-3.1337403736214353E-02
+-3.1313123487283115E-02
+-3.1288838149594857E-02
+-3.1264547711194156E-02
+-3.1240252164639513E-02
+-3.1215951520099476E-02
+-3.1191645791202923E-02
+-3.1167334989620418E-02
+-3.1143019125722489E-02
+-3.1118698201648143E-02
+-3.1094372206719800E-02
+-3.1070041132734299E-02
+-3.1045704987417457E-02
+-3.1021363782900036E-02
+-3.0997017531077489E-02
+-3.0972666243616793E-02
+-3.0948309925440561E-02
+-3.0923948567774969E-02
+-3.0899582162407457E-02
+-3.0875210714402055E-02
+-3.0850834233826056E-02
+-3.0826452732937999E-02
+-3.0802066226156367E-02
+-3.0777674720834355E-02
+-3.0753278205173762E-02
+-3.0728876666579606E-02
+-3.0704470111757219E-02
+-3.0680058556716603E-02
+-3.0655642014097529E-02
+-3.0631220492132873E-02
+-3.0606793995715531E-02
+-3.0582362518872648E-02
+-3.0557926054145902E-02
+-3.0533484604676392E-02
+-3.0509038180342177E-02
+-3.0484586792044820E-02
+-3.0460130452209588E-02
+-3.0435669170044352E-02
+-3.0411202938719347E-02
+-3.0386731747428772E-02
+-3.0362255598606280E-02
+-3.0337774505548629E-02
+-3.0313288480907155E-02
+-3.0288797535233527E-02
+-3.0264301676713807E-02
+-3.0239800900092532E-02
+-3.0215295195201799E-02
+-3.0190784562268851E-02
+-3.0166269012539736E-02
+-3.0141748557875173E-02
+-3.0117223210379060E-02
+-3.0092692980547432E-02
+-3.0068157864339036E-02
+-3.0043617850393604E-02
+-3.0019072937656401E-02
+-2.9994523139244816E-02
+-2.9969968468285452E-02
+-2.9945408934034957E-02
+-2.9920844544089661E-02
+-2.9896275296931833E-02
+-2.9871701184955864E-02
+-2.9847122206939962E-02
+-2.9822538373187560E-02
+-2.9797949695067157E-02
+-2.9773356183344327E-02
+-2.9748757848028631E-02
+-2.9724154688853602E-02
+-2.9699546696598376E-02
+-2.9674933867543551E-02
+-2.9650316211439785E-02
+-2.9625693739945190E-02
+-2.9601066464726870E-02
+-2.9576434397124006E-02
+-2.9551797538923747E-02
+-2.9527155881155117E-02
+-2.9502509418574858E-02
+-2.9477858159159862E-02
+-2.9453202113497164E-02
+-2.9428541292930807E-02
+-2.9403875709069157E-02
+-2.9379205365598973E-02
+-2.9354530254670868E-02
+-2.9329850370850279E-02
+-2.9305165722358643E-02
+-2.9280476320879680E-02
+-2.9255782177509203E-02
+-2.9231083302859385E-02
+-2.9206379700872944E-02
+-2.9181671362892542E-02
+-2.9156958281655380E-02
+-2.9132240465315699E-02
+-2.9107517927219013E-02
+-2.9082790678837914E-02
+-2.9058058729887207E-02
+-2.9033322085513572E-02
+-2.9008580739685774E-02
+-2.8983834686128848E-02
+-2.8959083929496365E-02
+-2.8934328479442727E-02
+-2.8909568347361806E-02
+-2.8884803546702323E-02
+-2.8860034086201931E-02
+-2.8835259958668345E-02
+-2.8810481154913938E-02
+-2.8785697679036621E-02
+-2.8760909542988121E-02
+-2.8736116758478692E-02
+-2.8711319336685037E-02
+-2.8686517285905322E-02
+-2.8661710601940619E-02
+-2.8636899277702580E-02
+-2.8612083314365769E-02
+-2.8587262719459362E-02
+-2.8562437503474529E-02
+-2.8537607682558613E-02
+-2.8512773270330163E-02
+-2.8487934261368534E-02
+-2.8463090643781799E-02
+-2.8438242417420000E-02
+-2.8413389593759202E-02
+-2.8388532185143867E-02
+-2.8363670204909156E-02
+-2.8338803664559913E-02
+-2.8313932559501067E-02
+-2.8289056877659317E-02
+-2.8264176618531311E-02
+-2.8239291796442884E-02
+-2.8214402425562706E-02
+-2.8189508516090523E-02
+-2.8164610076455623E-02
+-2.8139707105019882E-02
+-2.8114799593890835E-02
+-2.8089887541868325E-02
+-2.8064970958977798E-02
+-2.8040049856536745E-02
+-2.8015124247000357E-02
+-2.7990194142470812E-02
+-2.7965259543765459E-02
+-2.7940320442521847E-02
+-2.7915376835483070E-02
+-2.7890428730989163E-02
+-2.7865476139286090E-02
+-2.7840519073150778E-02
+-2.7815557545891521E-02
+-2.7790591559096883E-02
+-2.7765621102024487E-02
+-2.7740646169391488E-02
+-2.7715666773134046E-02
+-2.7690682927852671E-02
+-2.7665694644825430E-02
+-2.7640701933444159E-02
+-2.7615704795768373E-02
+-2.7590703223915481E-02
+-2.7565697213029337E-02
+-2.7540686772449696E-02
+-2.7515671914825776E-02
+-2.7490652652054203E-02
+-2.7465628995446429E-02
+-2.7440600949369225E-02
+-2.7415568505966426E-02
+-2.7390531658984408E-02
+-2.7365490416670302E-02
+-2.7340444791833098E-02
+-2.7315394796510694E-02
+-2.7290340442047003E-02
+-2.7265281734147561E-02
+-2.7240218665564666E-02
+-2.7215151229248787E-02
+-2.7190079432038935E-02
+-2.7165003286606440E-02
+-2.7139922805297013E-02
+-2.7114838000065842E-02
+-2.7089748877840502E-02
+-2.7064655430262860E-02
+-2.7039557647819831E-02
+-2.7014455537583946E-02
+-2.6989349115713726E-02
+-2.6964238395547825E-02
+-2.6939123386206409E-02
+-2.6914004093934542E-02
+-2.6888880514592355E-02
+-2.6863752642106591E-02
+-2.6838620480012839E-02
+-2.6813484038733744E-02
+-2.6788343329869117E-02
+-2.6763198366951308E-02
+-2.6738049160667021E-02
+-2.6712895704953207E-02
+-2.6687737988743725E-02
+-2.6662576015003374E-02
+-2.6637409799663562E-02
+-2.6612239357186099E-02
+-2.6587064697204732E-02
+-2.6561885827246761E-02
+-2.6536702744632185E-02
+-2.6511515442353705E-02
+-2.6486323921960868E-02
+-2.6461128195228296E-02
+-2.6435928274371540E-02
+-2.6410724171091769E-02
+-2.6385515895774946E-02
+-2.6360303446368201E-02
+-2.6335086813650162E-02
+-2.6309865996937954E-02
+-2.6284641008855050E-02
+-2.6259411863010923E-02
+-2.6234178572358085E-02
+-2.6208941148796943E-02
+-2.6183699591373705E-02
+-2.6158453889394355E-02
+-2.6133204039642789E-02
+-2.6107950054408524E-02
+-2.6082691947686157E-02
+-2.6057429732594600E-02
+-2.6032163421408083E-02
+-2.6006893014679268E-02
+-2.5981618501446667E-02
+-2.5956339876983384E-02
+-2.5931057154312865E-02
+-2.5905770348951352E-02
+-2.5880479473178238E-02
+-2.5855184537487256E-02
+-2.5829885543902465E-02
+-2.5804582483715956E-02
+-2.5779275352000700E-02
+-2.5753964159549884E-02
+-2.5728648920432497E-02
+-2.5703329646748395E-02
+-2.5678006349266841E-02
+-2.5652679031947741E-02
+-2.5627347687594983E-02
+-2.5602012311099896E-02
+-2.5576672912063080E-02
+-2.5551329504313821E-02
+-2.5525982100130209E-02
+-2.5500630710499607E-02
+-2.5475275340707076E-02
+-2.5449915983888238E-02
+-2.5424552633947391E-02
+-2.5399185299619594E-02
+-2.5373813995326486E-02
+-2.5348438732783710E-02
+-2.5323059520857786E-02
+-2.5297676365205756E-02
+-2.5272289262783434E-02
+-2.5246898210072491E-02
+-2.5221503212695274E-02
+-2.5196104280988851E-02
+-2.5170701426235766E-02
+-2.5145294660943548E-02
+-2.5119883994294857E-02
+-2.5094469422597382E-02
+-2.5069050939926021E-02
+-2.5043628550156738E-02
+-2.5018202263726440E-02
+-2.4992772092374625E-02
+-2.4967338049913142E-02
+-2.4941900147477301E-02
+-2.4916458381604334E-02
+-2.4891012744741686E-02
+-2.4865563238560741E-02
+-2.4840109872708210E-02
+-2.4814652659321913E-02
+-2.4789191615649287E-02
+-2.4763726756654718E-02
+-2.4738258076831336E-02
+-2.4712785562603274E-02
+-2.4687309214192620E-02
+-2.4661829047216498E-02
+-2.4636345077030313E-02
+-2.4610857315751102E-02
+-2.4585365773610132E-02
+-2.4559870448865005E-02
+-2.4534371333384170E-02
+-2.4508868427488520E-02
+-2.4483361743753491E-02
+-2.4457851295596210E-02
+-2.4432337095994103E-02
+-2.4406819156823890E-02
+-2.4381297476776632E-02
+-2.4355772045248882E-02
+-2.4330242860699916E-02
+-2.4304709938902436E-02
+-2.4279173296345938E-02
+-2.4253632943098687E-02
+-2.4228088886752611E-02
+-2.4202541128866717E-02
+-2.4176989665468666E-02
+-2.4151434495928183E-02
+-2.4125875628313243E-02
+-2.4100313072590002E-02
+-2.4074746843070476E-02
+-2.4049176955632825E-02
+-2.4023603414132341E-02
+-2.3998026208168696E-02
+-2.3972445331959753E-02
+-2.3946860797434525E-02
+-2.3921272619932144E-02
+-2.3895680812900687E-02
+-2.3870085388535432E-02
+-2.3844486350432317E-02
+-2.3818883689031567E-02
+-2.3793277397923033E-02
+-2.3767667489255569E-02
+-2.3742053979946182E-02
+-2.3716436882813413E-02
+-2.3690816207534108E-02
+-2.3665191958854966E-02
+-2.3639564131840381E-02
+-2.3613932722259603E-02
+-2.3588297736726674E-02
+-2.3562659185952271E-02
+-2.3537017084290814E-02
+-2.3511371449637913E-02
+-2.3485722291880579E-02
+-2.3460069599500068E-02
+-2.3434413360211029E-02
+-2.3408753583239725E-02
+-2.3383090287969789E-02
+-2.3357423489403541E-02
+-2.3331753196936606E-02
+-2.3306079416740077E-02
+-2.3280402144977806E-02
+-2.3254721376510846E-02
+-2.3229037115962348E-02
+-2.3203349374070866E-02
+-2.3177658163901292E-02
+-2.3151963502167090E-02
+-2.3126265401913336E-02
+-2.3100563857458851E-02
+-2.3074858858487722E-02
+-2.3049150408088137E-02
+-2.3023438520158312E-02
+-2.2997723208578433E-02
+-2.2972004486533765E-02
+-2.2946282364978081E-02
+-2.2920556841375152E-02
+-2.2894827908359363E-02
+-2.2869095568654331E-02
+-2.2843359835491329E-02
+-2.2817620722121179E-02
+-2.2791878240472255E-02
+-2.2766132400966175E-02
+-2.2740383203038266E-02
+-2.2714630640706696E-02
+-2.2688874715888121E-02
+-2.2663115441164963E-02
+-2.2637352829580636E-02
+-2.2611586893099885E-02
+-2.2585817642608412E-02
+-2.2560045078999197E-02
+-2.2534269196601685E-02
+-2.2508489995678491E-02
+-2.2482707487031559E-02
+-2.2456921682635293E-02
+-2.2431132595044659E-02
+-2.2405340236512607E-02
+-2.2379544610708721E-02
+-2.2353745713947982E-02
+-2.2327943545521180E-02
+-2.2302138112042014E-02
+-2.2276329422181232E-02
+-2.2250517491683570E-02
+-2.2224702338765848E-02
+-2.2198883968649993E-02
+-2.2173062372165250E-02
+-2.2147237544174456E-02
+-2.2121409493942798E-02
+-2.2095578233724253E-02
+-2.2069743778449932E-02
+-2.2043906144300671E-02
+-2.2018065337311092E-02
+-2.1992221348986988E-02
+-2.1966374173458127E-02
+-2.1940523819915479E-02
+-2.1914670301491732E-02
+-2.1888813633327467E-02
+-2.1862953831895671E-02
+-2.1837090904595052E-02
+-2.1811224841912086E-02
+-2.1785355635723494E-02
+-2.1759483295351992E-02
+-2.1733607835954620E-02
+-2.1707729272118916E-02
+-2.1681847617890465E-02
+-2.1655962881528899E-02
+-2.1630075057245426E-02
+-2.1604184138946752E-02
+-2.1578290133669555E-02
+-2.1552393054317744E-02
+-2.1526492914849146E-02
+-2.1500589730430307E-02
+-2.1474683511057743E-02
+-2.1448774249795410E-02
+-2.1422861937893938E-02
+-2.1396946582808506E-02
+-2.1371028201366046E-02
+-2.1345106808052659E-02
+-2.1319182413611810E-02
+-2.1293255026211769E-02
+-2.1267324644246032E-02
+-2.1241391264036374E-02
+-2.1215454890156533E-02
+-2.1189515533405295E-02
+-2.1163573205970718E-02
+-2.1137627922493841E-02
+-2.1111679695427887E-02
+-2.1085728522836814E-02
+-2.1059774398056987E-02
+-2.1033817324385282E-02
+-2.1007857314806880E-02
+-2.0981894382507419E-02
+-2.0955928540152158E-02
+-2.0929959798960385E-02
+-2.0903988159386155E-02
+-2.0878013616949732E-02
+-2.0852036173565895E-02
+-2.0826055839206280E-02
+-2.0800072625648897E-02
+-2.0774086549167320E-02
+-2.0748097625497015E-02
+-2.0722105853731087E-02
+-2.0696111222813184E-02
+-2.0670113732397827E-02
+-2.0644113399776235E-02
+-2.0618110242347904E-02
+-2.0592104270517490E-02
+-2.0566095492301581E-02
+-2.0540083910000843E-02
+-2.0514069521354514E-02
+-2.0488052327640959E-02
+-2.0462032337906822E-02
+-2.0436009562886385E-02
+-2.0409984017678958E-02
+-2.0383955718570504E-02
+-2.0357924669681421E-02
+-2.0331890862552739E-02
+-2.0305854293657916E-02
+-2.0279814974868221E-02
+-2.0253772920718977E-02
+-2.0227728145717629E-02
+-2.0201680664127065E-02
+-2.0175630480673789E-02
+-2.0149577587354972E-02
+-2.0123521979763630E-02
+-2.0097463670181368E-02
+-2.0071402674593571E-02
+-2.0045339006826719E-02
+-2.0019272679203368E-02
+-1.9993203697524605E-02
+-1.9967132056347748E-02
+-1.9941057751766460E-02
+-1.9914980793125165E-02
+-1.9888901193976991E-02
+-1.9862818969342239E-02
+-1.9836734135459021E-02
+-1.9810646701106431E-02
+-1.9784556658089793E-02
+-1.9758463998429104E-02
+-1.9732368731321687E-02
+-1.9706270873010086E-02
+-1.9680170438460143E-02
+-1.9654067441204851E-02
+-1.9627961890320084E-02
+-1.9601853781759850E-02
+-1.9575743110242867E-02
+-1.9549629881684794E-02
+-1.9523514108107206E-02
+-1.9497395803724955E-02
+-1.9471274985785689E-02
+-1.9445151667320294E-02
+-1.9419025843572295E-02
+-1.9392897506339088E-02
+-1.9366766660519806E-02
+-1.9340633320230900E-02
+-1.9314497500227616E-02
+-1.9288359216090931E-02
+-1.9262218480497251E-02
+-1.9236075290063173E-02
+-1.9209929636636511E-02
+-1.9183781523614583E-02
+-1.9157630964888612E-02
+-1.9131477975019216E-02
+-1.9105322569265004E-02
+-1.9079164761000789E-02
+-1.9053004549161087E-02
+-1.9026841926606766E-02
+-1.9000676895613085E-02
+-1.8974509469514417E-02
+-1.8948339662555800E-02
+-1.8922167489886475E-02
+-1.8895992965515383E-02
+-1.8869816090179483E-02
+-1.8843636857079245E-02
+-1.8817455266540068E-02
+-1.8791271329816686E-02
+-1.8765085059910508E-02
+-1.8738896473413594E-02
+-1.8712705586852930E-02
+-1.8686512401980302E-02
+-1.8660316909545262E-02
+-1.8634119107881191E-02
+-1.8607919010793561E-02
+-1.8581716633872251E-02
+-1.8555511992562689E-02
+-1.8529305101711885E-02
+-1.8503095964329575E-02
+-1.8476884571998642E-02
+-1.8450670921803622E-02
+-1.8424455026293297E-02
+-1.8398236900653744E-02
+-1.8372016561371558E-02
+-1.8345794025215568E-02
+-1.8319569297184420E-02
+-1.8293342367600884E-02
+-1.8267113230909619E-02
+-1.8240881898929390E-02
+-1.8214648387277203E-02
+-1.8188412712218351E-02
+-1.8162174890277147E-02
+-1.8135934928593955E-02
+-1.8109692819157204E-02
+-1.8083448556185568E-02
+-1.8057202150534083E-02
+-1.8030953617833689E-02
+-1.8004702973425744E-02
+-1.7978450232379182E-02
+-1.7952195402994642E-02
+-1.7925938479340972E-02
+-1.7899679456065933E-02
+-1.7873418342590555E-02
+-1.7847155154010190E-02
+-1.7820889905706638E-02
+-1.7794622613336284E-02
+-1.7768353286658926E-02
+-1.7742081919037062E-02
+-1.7715808502921461E-02
+-1.7689533046959922E-02
+-1.7663255567944468E-02
+-1.7636976081893144E-02
+-1.7610694603713832E-02
+-1.7584411144155418E-02
+-1.7558125698866518E-02
+-1.7531838261137661E-02
+-1.7505548837733954E-02
+-1.7479257444251415E-02
+-1.7452964095540941E-02
+-1.7426668804906342E-02
+-1.7400371583138695E-02
+-1.7374072429330995E-02
+-1.7347771339485712E-02
+-1.7321468318783430E-02
+-1.7295163380196227E-02
+-1.7268856537583626E-02
+-1.7242547806246001E-02
+-1.7216237199543450E-02
+-1.7189924716537942E-02
+-1.7163610350800471E-02
+-1.7137294106092573E-02
+-1.7110975997345373E-02
+-1.7084656039550374E-02
+-1.7058334246189511E-02
+-1.7032010629302562E-02
+-1.7005685190246016E-02
+-1.6979357924771503E-02
+-1.6953028835363527E-02
+-1.6926697934099240E-02
+-1.6900365234501724E-02
+-1.6874030752956442E-02
+-1.6847694505470155E-02
+-1.6821356493891753E-02
+-1.6795016710250330E-02
+-1.6768675154028339E-02
+-1.6742331838758607E-02
+-1.6715986779659877E-02
+-1.6689639992911745E-02
+-1.6663291494370583E-02
+-1.6636941287522040E-02
+-1.6610589364701476E-02
+-1.6584235723965758E-02
+-1.6557880378099344E-02
+-1.6531523342207817E-02
+-1.6505164632491267E-02
+-1.6478804265265046E-02
+-1.6452442245616258E-02
+-1.6426078565557545E-02
+-1.6399713221761859E-02
+-1.6373346228115444E-02
+-1.6346977601638002E-02
+-1.6320607356451106E-02
+-1.6294235504906513E-02
+-1.6267862053445686E-02
+-1.6241486999643347E-02
+-1.6215110342842176E-02
+-1.6188732093053392E-02
+-1.6162352263239262E-02
+-1.6135970867879854E-02
+-1.6109587922528250E-02
+-1.6083203435690804E-02
+-1.6056817402019127E-02
+-1.6030429817147702E-02
+-1.6004040691559862E-02
+-1.5977650041043505E-02
+-1.5951257881921994E-02
+-1.5924864231011856E-02
+-1.5898469098363850E-02
+-1.5872072476559154E-02
+-1.5845674357701157E-02
+-1.5819274751769384E-02
+-1.5792873677074989E-02
+-1.5766471150119830E-02
+-1.5740067185103134E-02
+-1.5713661792155796E-02
+-1.5687254967975166E-02
+-1.5660846707483952E-02
+-1.5634437017487506E-02
+-1.5608025912084485E-02
+-1.5581613406824586E-02
+-1.5555199519417145E-02
+-1.5528784263970752E-02
+-1.5502367637202023E-02
+-1.5475949631611384E-02
+-1.5449530251627092E-02
+-1.5423109511142279E-02
+-1.5396687426102697E-02
+-1.5370264016205270E-02
+-1.5343839298161957E-02
+-1.5317413267369646E-02
+-1.5290985911768551E-02
+-1.5264557235126161E-02
+-1.5238127257404383E-02
+-1.5211695997246127E-02
+-1.5185263467638538E-02
+-1.5158829679370494E-02
+-1.5132394632856056E-02
+-1.5105958323516831E-02
+-1.5079520754998882E-02
+-1.5053081941849891E-02
+-1.5026641899612173E-02
+-1.5000200644743174E-02
+-1.4973758192669514E-02
+-1.4947314544172783E-02
+-1.4920869690598946E-02
+-1.4894423632456558E-02
+-1.4867976386203241E-02
+-1.4841527969374003E-02
+-1.4815078397114509E-02
+-1.4788627683187358E-02
+-1.4762175830165517E-02
+-1.4735722831215861E-02
+-1.4709268686226037E-02
+-1.4682813410767125E-02
+-1.4656357022173640E-02
+-1.4629899535367372E-02
+-1.4603440963964591E-02
+-1.4576981312925424E-02
+-1.4550520577799896E-02
+-1.4524058757816982E-02
+-1.4497595864475668E-02
+-1.4471131911840220E-02
+-1.4444666916803415E-02
+-1.4418200897531239E-02
+-1.4391733861035906E-02
+-1.4365265798640895E-02
+-1.4338796705519465E-02
+-1.4312326596676823E-02
+-1.4285855491682431E-02
+-1.4259383405897601E-02
+-1.4232910351698807E-02
+-1.4206436335528075E-02
+-1.4179961353110388E-02
+-1.4153485401849127E-02
+-1.4127008494061776E-02
+-1.4100530646896915E-02
+-1.4074051875901907E-02
+-1.4047572195166768E-02
+-1.4021091613658256E-02
+-1.3994610128219388E-02
+-1.3968127735560332E-02
+-1.3941644444143158E-02
+-1.3915160267633888E-02
+-1.3888675222121616E-02
+-1.3862189326473765E-02
+-1.3835702594164587E-02
+-1.3809215021088953E-02
+-1.3782726601009864E-02
+-1.3756237340958958E-02
+-1.3729747255557067E-02
+-1.3703256360521228E-02
+-1.3676764673076732E-02
+-1.3650272206825260E-02
+-1.3623778959488709E-02
+-1.3597284925474396E-02
+-1.3570790111765449E-02
+-1.3544294534644400E-02
+-1.3517798209671509E-02
+-1.3491301150575360E-02
+-1.3464803369086811E-02
+-1.3438304866767800E-02
+-1.3411805641902787E-02
+-1.3385305699451970E-02
+-1.3358805050761289E-02
+-1.3332303709466597E-02
+-1.3305801694408632E-02
+-1.3279299023002282E-02
+-1.3252795695291699E-02
+-1.3226291703523099E-02
+-1.3199787050254682E-02
+-1.3173281750805326E-02
+-1.3146775821407356E-02
+-1.3120269278724766E-02
+-1.3093762138301620E-02
+-1.3067254402659741E-02
+-1.3040746066503095E-02
+-1.3014237131219656E-02
+-1.2987727609033601E-02
+-1.2961217514320823E-02
+-1.2934706866843367E-02
+-1.2908195686759411E-02
+-1.2881683976625643E-02
+-1.2855171725190359E-02
+-1.2828658930226817E-02
+-1.2802145609050099E-02
+-1.2775631780890376E-02
+-1.2749117461789708E-02
+-1.2722602666165641E-02
+-1.2696087398535661E-02
+-1.2669571653364924E-02
+-1.2643055430141166E-02
+-1.2616538743342875E-02
+-1.2590021609881732E-02
+-1.2563504045745922E-02
+-1.2536986066239918E-02
+-1.2510467677779091E-02
+-1.2483948875124915E-02
+-1.2457429656352098E-02
+-1.2430910034512164E-02
+-1.2404390026136915E-02
+-1.2377869648511796E-02
+-1.2351348919287247E-02
+-1.2324827846478535E-02
+-1.2298306421708963E-02
+-1.2271784639190353E-02
+-1.2245262513587244E-02
+-1.2218740065566789E-02
+-1.2192217311697548E-02
+-1.2165694265085769E-02
+-1.2139170933777994E-02
+-1.2112647314818264E-02
+-1.2086123405867311E-02
+-1.2059599218427147E-02
+-1.2033074769545474E-02
+-1.2006550074647118E-02
+-1.1980025147381525E-02
+-1.1953499997647247E-02
+-1.1926974624592504E-02
+-1.1900449026572807E-02
+-1.1873923212529738E-02
+-1.1847397197056325E-02
+-1.1820870995911108E-02
+-1.1794344626407726E-02
+-1.1767818101870423E-02
+-1.1741291419533976E-02
+-1.1714764573743668E-02
+-1.1688237572288150E-02
+-1.1661710432236332E-02
+-1.1635183170189998E-02
+-1.1608655801568970E-02
+-1.1582128339081944E-02
+-1.1555600781842517E-02
+-1.1529073125150115E-02
+-1.1502545376341031E-02
+-1.1476017553492172E-02
+-1.1449489673771410E-02
+-1.1422961751291427E-02
+-1.1396433798094414E-02
+-1.1369905814650324E-02
+-1.1343377796733277E-02
+-1.1316849749683720E-02
+-1.1290321689874781E-02
+-1.1263793633718986E-02
+-1.1237265595832295E-02
+-1.1210737589553819E-02
+-1.1184209619150910E-02
+-1.1157681683830021E-02
+-1.1131153787258439E-02
+-1.1104625939826229E-02
+-1.1078098154099271E-02
+-1.1051570449501490E-02
+-1.1025042846070728E-02
+-1.0998515347189115E-02
+-1.0971987944058677E-02
+-1.0945460636408239E-02
+-1.0918933441013700E-02
+-1.0892406376333345E-02
+-1.0865879459314907E-02
+-1.0839352705833331E-02
+-1.0812826120371918E-02
+-1.0786299696611377E-02
+-1.0759773434212494E-02
+-1.0733247349122312E-02
+-1.0706721459546667E-02
+-1.0680195781463672E-02
+-1.0653670329566805E-02
+-1.0627145109913447E-02
+-1.0600620117990515E-02
+-1.0574095353207963E-02
+-1.0547570830405631E-02
+-1.0521046567504390E-02
+-1.0494522580580295E-02
+-1.0467998884480766E-02
+-1.0441475486843210E-02
+-1.0414952383902087E-02
+-1.0388429574019318E-02
+-1.0361907069747418E-02
+-1.0335384887633485E-02
+-1.0308863044009717E-02
+-1.0282341555000895E-02
+-1.0255820430798720E-02
+-1.0229299669346712E-02
+-1.0202779269060925E-02
+-1.0176259240450120E-02
+-1.0149739598597650E-02
+-1.0123220359236714E-02
+-1.0096701538741801E-02
+-1.0070183148854609E-02
+-1.0043665188630469E-02
+-1.0017147656274783E-02
+-9.9906305606806117E-03
+-9.9641139160789455E-03
+-9.9375977386510234E-03
+-9.9110820470716433E-03
+-9.8845668554415605E-03
+-9.8580521606700770E-03
+-9.8315379570020258E-03
+-9.8050242529661557E-03
+-9.7785110662931361E-03
+-9.7519984144428008E-03
+-9.7254863141588363E-03
+-9.6989747790758776E-03
+-9.6724638080609507E-03
+-9.6459533961947997E-03
+-9.6194435502578012E-03
+-9.5929342867870568E-03
+-9.5664256228664042E-03
+-9.5399175761279650E-03
+-9.5134101619112083E-03
+-9.4869033800549039E-03
+-9.4603972245809725E-03
+-9.4338917006167328E-03
+-9.4073868252485537E-03
+-9.3808826159896136E-03
+-9.3543790898758007E-03
+-9.3278762623298511E-03
+-9.3013741350619836E-03
+-9.2748727027358348E-03
+-9.2483719689367538E-03
+-9.2218719497270240E-03
+-9.1953726621855653E-03
+-9.1688741237684092E-03
+-9.1423763509814304E-03
+-9.1158793471263905E-03
+-9.0893831065198948E-03
+-9.0628876310500598E-03
+-9.0363929365693107E-03
+-9.0098990404111449E-03
+-8.9834059600056530E-03
+-8.9569137121801329E-03
+-8.9304223018938228E-03
+-8.9039317235979631E-03
+-8.8774419776736398E-03
+-8.8509530793606725E-03
+-8.8244650460640901E-03
+-8.7979778953475082E-03
+-8.7714916444840019E-03
+-8.7450063000924852E-03
+-8.7185218566037080E-03
+-8.6920383128932990E-03
+-8.6655556838244469E-03
+-8.6390739873104180E-03
+-8.6125932406196804E-03
+-8.5861134604972578E-03
+-8.5596346552090190E-03
+-8.5331568204890795E-03
+-8.5066799546333078E-03
+-8.4802040708742039E-03
+-8.4537291863618289E-03
+-8.4272553184430929E-03
+-8.4007824845463500E-03
+-8.3743106948181607E-03
+-8.3478399453961547E-03
+-8.3213702334767794E-03
+-8.2949015711290871E-03
+-8.2684339756170563E-03
+-8.2419674643858017E-03
+-8.2155020550317183E-03
+-8.1890377592289849E-03
+-8.1625745736793372E-03
+-8.1361124946515376E-03
+-8.1096515328521121E-03
+-8.0831917056388633E-03
+-8.0567330305498768E-03
+-8.0302755252990472E-03
+-8.0038192029720703E-03
+-7.9773640610906922E-03
+-7.9509100952192650E-03
+-7.9244573147060800E-03
+-7.8980057371832359E-03
+-7.8715553802324398E-03
+-7.8451062611775858E-03
+-7.8186583939701734E-03
+-7.7922117775172011E-03
+-7.7657664073038819E-03
+-7.7393222909945270E-03
+-7.7128794457386948E-03
+-7.6864378890610747E-03
+-7.6599976387427627E-03
+-7.6335587100729765E-03
+-7.6071211030967929E-03
+-7.5806848126481093E-03
+-7.5542498447811902E-03
+-7.5278162168325126E-03
+-7.5013839465119300E-03
+-7.4749530512011391E-03
+-7.4485235465455201E-03
+-7.4220954343404448E-03
+-7.3956687098093591E-03
+-7.3692433774178688E-03
+-7.3428194536726884E-03
+-7.3163969559929976E-03
+-7.2899759021955090E-03
+-7.2635563090166369E-03
+-7.2371381797212827E-03
+-7.2107215090499149E-03
+-7.1843062997065223E-03
+-7.1578925680068394E-03
+-7.1314803316229868E-03
+-7.1050696084864117E-03
+-7.0786604158648665E-03
+-7.0522527585901969E-03
+-7.0258466312209380E-03
+-6.9994420348770368E-03
+-6.9730389857554278E-03
+-6.9466375019672320E-03
+-6.9202376010600664E-03
+-6.8938392999590183E-03
+-6.8674426052602426E-03
+-6.8410475125237295E-03
+-6.8146540218578201E-03
+-6.7882621481128213E-03
+-6.7618719088219552E-03
+-6.7354833217720149E-03
+-6.7090964046750395E-03
+-6.6827111659521383E-03
+-6.6563276012002381E-03
+-6.6299457090836806E-03
+-6.6035655037550399E-03
+-6.5771870030977122E-03
+-6.5508102248321614E-03
+-6.5244351864855964E-03
+-6.4980618980374537E-03
+-6.4716903559521345E-03
+-6.4453205581482308E-03
+-6.4189525173698608E-03
+-6.3925862511696541E-03
+-6.3662217774289355E-03
+-6.3398591142930271E-03
+-6.3134982734857079E-03
+-6.2871392516461802E-03
+-6.2607820453825045E-03
+-6.2344266662320335E-03
+-6.2080731321220483E-03
+-6.1817214610269122E-03
+-6.1553716709448784E-03
+-6.1290237749399403E-03
+-6.1026777707434065E-03
+-6.0763336545529940E-03
+-6.0499914364349630E-03
+-6.0236511342256632E-03
+-5.9973127658070891E-03
+-5.9709763490026014E-03
+-5.9446418979786876E-03
+-5.9183094117319594E-03
+-5.8919788862337487E-03
+-5.8656503300053512E-03
+-5.8393237606930732E-03
+-5.8129991961299778E-03
+-5.7866766541126132E-03
+-5.7603561497810473E-03
+-5.7340376834858807E-03
+-5.7077212509935365E-03
+-5.6814068591761278E-03
+-5.6550945253356182E-03
+-5.6287842673058601E-03
+-5.6024761032427628E-03
+-5.5761700493934131E-03
+-5.5498661071831960E-03
+-5.5235642715647116E-03
+-5.4972645477439509E-03
+-5.4709669533821214E-03
+-5.4446715067675410E-03
+-5.4183782257894260E-03
+-5.3920871269785252E-03
+-5.3657982134791360E-03
+-5.3395114805733258E-03
+-5.3132269318905559E-03
+-5.2869445843016878E-03
+-5.2606644558267773E-03
+-5.2343865644592959E-03
+-5.2081109273715087E-03
+-5.1818375494566624E-03
+-5.1555664261492638E-03
+-5.1292975595471366E-03
+-5.1030309658505130E-03
+-5.0767666630198247E-03
+-5.0505046692600353E-03
+-5.0242450023780709E-03
+-4.9979876689629959E-03
+-4.9717326644086249E-03
+-4.9454799892459213E-03
+-4.9192296591141329E-03
+-4.8929816921563099E-03
+-4.8667361064552760E-03
+-4.8404929198146733E-03
+-4.8142521405030673E-03
+-4.7880137645024108E-03
+-4.7617777912734175E-03
+-4.7355442356248507E-03
+-4.7093131157773830E-03
+-4.6830844497341307E-03
+-4.6568582552528525E-03
+-4.6306345421750520E-03
+-4.6044133071308155E-03
+-4.5781945486391288E-03
+-4.5519782802849844E-03
+-4.5257645201657575E-03
+-4.4995532864481394E-03
+-4.4733445973204047E-03
+-4.4471384642734086E-03
+-4.4209348841931931E-03
+-4.3947338543884494E-03
+-4.3685353873289647E-03
+-4.3423395014989445E-03
+-4.3161462150955038E-03
+-4.2899555459895693E-03
+-4.2637675069557039E-03
+-4.2375820961430078E-03
+-4.2113993106323230E-03
+-4.1852191611964091E-03
+-4.1590416657587030E-03
+-4.1328668425080891E-03
+-4.1066947099125482E-03
+-4.0805252823671746E-03
+-4.0543585585426532E-03
+-4.0281945344067044E-03
+-4.0020332192943165E-03
+-3.9758746316103794E-03
+-3.9497187897627956E-03
+-3.9235657118573937E-03
+-3.8974154130740116E-03
+-3.8712678936821980E-03
+-3.8451231497912248E-03
+-3.8189811890140075E-03
+-3.7928420290542337E-03
+-3.7667056880131035E-03
+-3.7405721841207015E-03
+-3.7144415335684387E-03
+-3.6883137382246159E-03
+-3.6621887942063706E-03
+-3.6360667074735540E-03
+-3.6099474951424809E-03
+-3.5838311751655695E-03
+-3.5577177662256204E-03
+-3.5316072856638645E-03
+-3.5054997366086079E-03
+-3.4793951144460912E-03
+-3.4532934234126271E-03
+-3.4271946808014536E-03
+-3.4010989049431048E-03
+-3.3750061141763613E-03
+-3.3489163259184623E-03
+-3.3228295449933137E-03
+-3.2967457671869197E-03
+-3.2706649953463474E-03
+-3.2445872461165232E-03
+-3.2185125377215342E-03
+-3.1924408885859279E-03
+-3.1663723166434864E-03
+-3.1403068284256170E-03
+-3.1142444198380297E-03
+-3.0881850922408723E-03
+-3.0621288616103099E-03
+-3.0360757461778101E-03
+-3.0100257642881926E-03
+-2.9839789340406651E-03
+-2.9579352637427499E-03
+-2.9318947499180027E-03
+-2.9058573928092950E-03
+-2.8798232072922278E-03
+-2.8537922113205413E-03
+-2.8277644234076895E-03
+-2.8017398622559512E-03
+-2.7757185378423045E-03
+-2.7497004465530266E-03
+-2.7236855871074425E-03
+-2.6976739737749945E-03
+-2.6716656251303682E-03
+-2.6456605597359080E-03
+-2.6196587960946559E-03
+-2.5936603456067102E-03
+-2.5676652052673389E-03
+-2.5416733728935558E-03
+-2.5156848615865675E-03
+-2.4896996900747132E-03
+-2.4637178768587053E-03
+-2.4377394401949464E-03
+-2.4117643928667875E-03
+-2.3857927330744218E-03
+-2.3598244583291970E-03
+-2.3338595800906472E-03
+-2.3078981165985855E-03
+-2.2819400862946581E-03
+-2.2559855078210732E-03
+-2.2300343955080223E-03
+-2.2040867483143745E-03
+-2.1781425629535407E-03
+-2.1522018493729594E-03
+-2.1262646258999982E-03
+-2.1003309110515854E-03
+-2.0744007234388098E-03
+-2.0484740784580072E-03
+-2.0225509761594377E-03
+-1.9966314127742844E-03
+-1.9707153967604960E-03
+-1.9448029465925730E-03
+-1.9188940809093402E-03
+-1.8929888180658017E-03
+-1.8670871741289100E-03
+-1.8411891507253840E-03
+-1.8152947441894001E-03
+-1.7894039612887892E-03
+-1.7635168198304216E-03
+-1.7376333382350159E-03
+-1.7117535351658913E-03
+-1.6858774277274191E-03
+-1.6600050189537617E-03
+-1.6341363047914113E-03
+-1.6082712903046047E-03
+-1.5824099930781346E-03
+-1.5565524316477211E-03
+-1.5306986247452606E-03
+-1.5048485900919658E-03
+-1.4790023323376538E-03
+-1.4531598474008729E-03
+-1.4273211387398831E-03
+-1.4014862234477976E-03
+-1.3756551200464616E-03
+-1.3498278472272879E-03
+-1.3240044230900180E-03
+-1.2981848539888648E-03
+-1.2723691360618922E-03
+-1.2465572713653362E-03
+-1.2207492764576750E-03
+-1.1949451699444710E-03
+-1.1691449704287933E-03
+-1.1433486961536501E-03
+-1.1175563550636100E-03
+-1.0917679435274070E-03
+-1.0659834622691829E-03
+-1.0402029272567714E-03
+-1.0144263573371424E-03
+-9.8865377104823712E-04
+-9.6288518658701615E-04
+-9.3712061353358033E-04
+-9.1136004895386673E-04
+-8.8560349258616608E-04
+-8.5985095915434872E-04
+-8.3410246722225522E-04
+-8.0835803537278143E-04
+-7.8261768213634089E-04
+-7.5688141878131664E-04
+-7.3114924286460793E-04
+-7.0542115311462495E-04
+-6.7969716307380061E-04
+-6.5397729135048782E-04
+-6.2826155654931116E-04
+-6.0254997725097282E-04
+-5.7684256620305085E-04
+-5.5113932170090839E-04
+-5.2544024174014598E-04
+-4.9974533848915208E-04
+-4.7405463052078544E-04
+-4.4836813645464277E-04
+-4.2268587492765453E-04
+-3.9700786003593852E-04
+-3.7133409093678194E-04
+-3.4566456501043484E-04
+-3.1999929296553156E-04
+-2.9433829337913967E-04
+-2.6868158489572582E-04
+-2.4302918610594304E-04
+-2.1738111221052069E-04
+-1.9173736350833025E-04
+-1.6609793701579409E-04
+-1.4046284185559625E-04
+-1.1483209641333597E-04
+-8.9205719324415622E-05
+-6.3583729253772431E-05
+-3.7966142396247661E-05
+-1.2352960309383025E-05
+1.3255820330949283E-05
+3.8860192009087494E-05
+6.4460136499983398E-05
+9.0055635132748943E-05
+1.1564666926105000E-04
+1.4123322196974089E-04
+1.6681529026127986E-04
+1.9239287760411991E-04
+2.1796597807622220E-04
+2.4353457374040751E-04
+2.6909864589810578E-04
+2.9465817591382181E-04
+3.2021314631482545E-04
+3.4576355254470543E-04
+3.7130939806507532E-04
+3.9685067851052898E-04
+4.2238737639612838E-04
+4.4791947302074022E-04
+4.7344694973131381E-04
+4.9896978860846882E-04
+5.2448798347042361E-04
+5.5000153765927078E-04
+5.7551044828933989E-04
+6.0101469846615663E-04
+6.2651426948269484E-04
+6.5200914267432596E-04
+6.7749929980574514E-04
+7.0298473303253227E-04
+7.2846544541971259E-04
+7.5394143542531706E-04
+7.7941268694520531E-04
+8.0487918130344685E-04
+8.3034089979923344E-04
+8.5579782392915162E-04
+8.8124994420804873E-04
+9.0669726337912855E-04
+9.3213978111385352E-04
+9.5757748213822825E-04
+9.8301034765180891E-04
+1.0084383590292238E-03
+1.0338614978481898E-03
+1.0592797531190920E-03
+1.0846931269218715E-03
+1.1101016197887393E-03
+1.1355052176417744E-03
+1.1609039017704595E-03
+1.1862976534014044E-03
+1.2116864537339124E-03
+1.2370702902033195E-03
+1.2624491646023885E-03
+1.2878230786210999E-03
+1.3131920194267264E-03
+1.3385559680924677E-03
+1.3639149057956225E-03
+1.3892688138563019E-03
+1.4146176783904967E-03
+1.4399615001004585E-03
+1.4653002810414641E-03
+1.4906340099101517E-03
+1.5159626680530782E-03
+1.5412862367342552E-03
+1.5666046972090328E-03
+1.5919180343843011E-03
+1.6172262480356840E-03
+1.6425293407859843E-03
+1.6678273027114381E-03
+1.6931201149279673E-03
+1.7184077586075094E-03
+1.7436902153907168E-03
+1.7689674695423908E-03
+1.7942395193805043E-03
+1.8195063674556968E-03
+1.8447680054920167E-03
+1.8700244152229989E-03
+1.8952755780014521E-03
+1.9205214751632225E-03
+1.9457620899046291E-03
+1.9709974192199378E-03
+1.9962274659996674E-03
+2.0214522235320813E-03
+2.0466716736477551E-03
+2.0718857975936121E-03
+2.0970945768924499E-03
+2.1222979943535682E-03
+2.1474960454000930E-03
+2.1726887327226611E-03
+2.1978760511684901E-03
+2.2230579833732241E-03
+2.2482345108548562E-03
+2.2734056147906108E-03
+2.2985712770767566E-03
+2.3237314915467936E-03
+2.3488862610651956E-03
+2.3740355820930001E-03
+2.3991794378076439E-03
+2.4243178097262800E-03
+2.4494506789194581E-03
+2.4745780267847071E-03
+2.4996998456117475E-03
+2.5248161383708890E-03
+2.5499269029649373E-03
+2.5750321227573430E-03
+2.6001317787976339E-03
+2.6252258525605015E-03
+2.6503143259665597E-03
+2.6753971898250163E-03
+2.7004744461973352E-03
+2.7255460938099513E-03
+2.7506121171568822E-03
+2.7756724976097380E-03
+2.8007272164932173E-03
+2.8257762552132497E-03
+2.8508196029374765E-03
+2.8758572615607330E-03
+2.9008892310996705E-03
+2.9259154972057235E-03
+2.9509360412955038E-03
+2.9759508444464596E-03
+3.0009598874998892E-03
+3.0259631579800934E-03
+3.0509606577289079E-03
+3.0759523880957997E-03
+3.1009383356363040E-03
+3.1259184811513255E-03
+3.1508928057742708E-03
+3.1758612910055451E-03
+3.2008239233106664E-03
+3.2257807031245297E-03
+3.2507316318081121E-03
+3.2756766975567419E-03
+3.3006158818179245E-03
+3.3255491659179796E-03
+3.3504765310939273E-03
+3.3753979624229070E-03
+3.4003134594657162E-03
+3.4252230241775239E-03
+3.4501266461832571E-03
+3.4750243068876444E-03
+3.4999159875557552E-03
+3.5248016694696942E-03
+3.5496813367483439E-03
+3.5745549878188122E-03
+3.5994226249883719E-03
+3.6242842394362748E-03
+3.6491398127501480E-03
+3.6739893262063969E-03
+3.6988327610873051E-03
+3.7236701007068744E-03
+3.7485013422235208E-03
+3.7733264882192324E-03
+3.7981455313888320E-03
+3.8229584534179161E-03
+3.8477652355015084E-03
+3.8725658590884953E-03
+3.8973603070424864E-03
+3.9221485750394322E-03
+3.9469306655913056E-03
+3.9717065728725126E-03
+3.9964762789861446E-03
+4.0212397651564437E-03
+4.0459970128282558E-03
+4.0707480043889179E-03
+4.0954927340102702E-03
+4.1202312041663386E-03
+4.1449634105294045E-03
+4.1696893357525272E-03
+4.1944089610780663E-03
+4.2191222678172550E-03
+4.2438292378495189E-03
+4.2685298638334866E-03
+4.2932241482960213E-03
+4.3179120883908677E-03
+4.3425936672320349E-03
+4.3672688658789593E-03
+4.3919376657789687E-03
+4.4166000488401217E-03
+4.4412560061094985E-03
+4.4659055394403926E-03
+4.4905486470236729E-03
+4.5151853131356881E-03
+4.5398155192190263E-03
+4.5644392465593094E-03
+4.5890564764905425E-03
+4.6136671984487610E-03
+4.6382714142622324E-03
+4.6628691234713998E-03
+4.6874603111353840E-03
+4.7120449583871564E-03
+4.7366230464251586E-03
+4.7611945565481199E-03
+4.7857594767873419E-03
+4.8103178085762413E-03
+4.8348695524593997E-03
+4.8594146945336080E-03
+4.8839532156884488E-03
+4.9084850972386188E-03
+4.9330103209309058E-03
+4.9575288735887301E-03
+4.9820407552834270E-03
+5.0065459666188425E-03
+5.0310444954175994E-03
+5.0555363234005895E-03
+5.0800214320039202E-03
+5.1044998023528692E-03
+5.1289714196658797E-03
+5.1534362834896093E-03
+5.1778943953702658E-03
+5.2023457444769529E-03
+5.2267903122801300E-03
+5.2512280800523833E-03
+5.2756590289328633E-03
+5.3000831431555652E-03
+5.3245004214503211E-03
+5.3489108660459365E-03
+5.3733144675557993E-03
+5.3977112072431449E-03
+5.4221010662263694E-03
+5.4464840258798301E-03
+5.4708600697995716E-03
+5.4952291953333943E-03
+5.5195914047480804E-03
+5.5439466902418976E-03
+5.5682950335465692E-03
+5.5926364158915918E-03
+5.6169708184619551E-03
+5.6412982239903734E-03
+5.6656186285686198E-03
+5.6899320348759302E-03
+5.7142384366319883E-03
+5.7385378154772345E-03
+5.7628301523953126E-03
+5.7871154290753827E-03
+5.8113936283265060E-03
+5.8356647444748923E-03
+5.8599287793956890E-03
+5.8841857281013779E-03
+5.9084355734411028E-03
+5.9326782969921178E-03
+5.9569138800545270E-03
+5.9811423044622680E-03
+6.0053635630188864E-03
+6.0295776579010908E-03
+6.0537845857263160E-03
+6.0779843297855320E-03
+6.1021768714974523E-03
+6.1263621920754205E-03
+6.1505402730003302E-03
+6.1747111055322542E-03
+6.1988746917331127E-03
+6.2230310295851420E-03
+6.2471801031266285E-03
+6.2713218937671660E-03
+6.2954563827408213E-03
+6.3195835513596985E-03
+6.3437033893476973E-03
+6.3678158984344568E-03
+6.3919210777136472E-03
+6.4160189119929116E-03
+6.4401093825063377E-03
+6.4641924706618720E-03
+6.4882681580558741E-03
+6.5123364330396619E-03
+6.5363972964824551E-03
+6.5604507480855369E-03
+6.5844967739361092E-03
+6.6085353555492433E-03
+6.6325664743102980E-03
+6.6565901115067834E-03
+6.6806062540397211E-03
+6.7046149024667535E-03
+6.7286160575238023E-03
+6.7526097063877345E-03
+6.7765958302286773E-03
+6.8005744103776964E-03
+6.8245454283881665E-03
+6.8485088700764862E-03
+6.8724647349642102E-03
+6.8964130241123004E-03
+6.9203537262857717E-03
+6.9442868231177806E-03
+6.9682122960190163E-03
+6.9921301261948359E-03
+7.0160402981260537E-03
+7.0399428104981386E-03
+7.0638376650291410E-03
+7.0877248519229568E-03
+7.1116043527275942E-03
+7.1354761487967674E-03
+7.1593402215169646E-03
+7.1831965546460055E-03
+7.2070451456638243E-03
+7.2308859965141718E-03
+7.2547190989363545E-03
+7.2785444347631479E-03
+7.3023619853590845E-03
+7.3261717319308296E-03
+7.3499736573666395E-03
+7.3737677580124296E-03
+7.3975540363350649E-03
+7.4213324856419773E-03
+7.4451030877303315E-03
+7.4688658237337382E-03
+7.4926206750044431E-03
+7.5163676240735640E-03
+7.5401066658944763E-03
+7.5638378029837172E-03
+7.5875610300909163E-03
+7.6112763291981455E-03
+7.6349836812953488E-03
+7.6586830681762592E-03
+7.6823744725310842E-03
+7.7060578875900740E-03
+7.7297333149830083E-03
+7.7534007506005771E-03
+7.7770601777049243E-03
+7.8007115779235338E-03
+7.8243549326980893E-03
+7.8479902238051558E-03
+7.8716174429263805E-03
+7.8952365919622691E-03
+7.9188476683279344E-03
+7.9424506556282550E-03
+7.9660455351228138E-03
+7.9896322884258787E-03
+8.0132108975323885E-03
+8.0367813527185625E-03
+8.0603436552913275E-03
+8.0838978036275079E-03
+8.1074437823733213E-03
+8.1309815729956655E-03
+8.1545111570671350E-03
+8.1780325163154973E-03
+8.2015456394755690E-03
+8.2250505273836951E-03
+8.2485471793682773E-03
+8.2720355812690438E-03
+8.2955157147288228E-03
+8.3189875612723167E-03
+8.3424511023509375E-03
+8.3659063252646843E-03
+8.3893532305309108E-03
+8.4127918184966465E-03
+8.4362220761721139E-03
+8.4596439850695825E-03
+8.4830575266064030E-03
+8.5064626821177540E-03
+8.5298594375861105E-03
+8.5532477928874570E-03
+8.5766277491035256E-03
+8.5999992946018365E-03
+8.6233624108814633E-03
+8.6467170794087417E-03
+8.6700632816986076E-03
+8.6934010027363701E-03
+8.7167302413389495E-03
+8.7400509988843356E-03
+8.7633632651404284E-03
+8.7866670217279369E-03
+8.8099622501749773E-03
+8.8332489321497829E-03
+8.8565270518441014E-03
+8.8797966068754862E-03
+8.9030575987992938E-03
+8.9263100187878548E-03
+8.9495538485993547E-03
+8.9727890698178495E-03
+8.9960156644294919E-03
+9.0192336161899495E-03
+9.0424429212514843E-03
+9.0656435809479286E-03
+9.0888355879146180E-03
+9.1120189245911271E-03
+9.1351935728019602E-03
+9.1583595142536722E-03
+9.1815167318218607E-03
+9.2046652203305619E-03
+9.2278049813569307E-03
+9.2509360090865696E-03
+9.2740582864097483E-03
+9.2971717952350132E-03
+9.3202765172864105E-03
+9.3433724350040475E-03
+9.3664595417899347E-03
+9.3895378391892284E-03
+9.4126073227230201E-03
+9.4356679756775180E-03
+9.4587197798877958E-03
+9.4817627170517543E-03
+9.5047967692793202E-03
+9.5278219286276129E-03
+9.5508381967372245E-03
+9.5738455705476379E-03
+9.5968440338352577E-03
+9.6198335682813781E-03
+9.6428141555974390E-03
+9.6657857777527455E-03
+9.6887484253310886E-03
+9.7117020996332036E-03
+9.7346467987275385E-03
+9.7575825072658637E-03
+9.7805092070277974E-03
+9.8034268798858348E-03
+9.8263355078759447E-03
+9.8492350801210743E-03
+9.8721255971559764E-03
+9.8950070577472557E-03
+9.9178794477654004E-03
+9.9407427493428263E-03
+9.9635969441427604E-03
+9.9864420134955292E-03
+1.0009277945277182E-02
+1.0032104741133887E-02
+1.0054922401860823E-02
+1.0077730912215447E-02
+1.0100530250957140E-02
+1.0123320400124437E-02
+1.0146101345138811E-02
+1.0168873075033528E-02
+1.0191635588416145E-02
+1.0214388884126513E-02
+1.0237132949062464E-02
+1.0259867764145128E-02
+1.0282593311502653E-02
+1.0305309574922162E-02
+1.0328016541249692E-02
+1.0350714208199205E-02
+1.0373402575139169E-02
+1.0396081631326555E-02
+1.0418751359393175E-02
+1.0441411741614231E-02
+1.0464062759849764E-02
+1.0486704398673215E-02
+1.0509336656280156E-02
+1.0531959534410299E-02
+1.0554573023359241E-02
+1.0577177103734989E-02
+1.0599771756897297E-02
+1.0622356966580182E-02
+1.0644932718396694E-02
+1.0667499008342955E-02
+1.0690055836357243E-02
+1.0712603194018578E-02
+1.0735141063763533E-02
+1.0757669428032959E-02
+1.0780188270655853E-02
+1.0802697576672111E-02
+1.0825197339871244E-02
+1.0847687558621241E-02
+1.0870168225689224E-02
+1.0892639325879829E-02
+1.0915100842938492E-02
+1.0937552758792513E-02
+1.0959995055815261E-02
+1.0982427727998696E-02
+1.1004850777369242E-02
+1.1027264199063420E-02
+1.1049667975296705E-02
+1.1072062087075328E-02
+1.1094446516319568E-02
+1.1116821245789324E-02
+1.1139186268562588E-02
+1.1161541586998239E-02
+1.1183887198465393E-02
+1.1206223087557329E-02
+1.1228549236648957E-02
+1.1250865625661939E-02
+1.1273172233826281E-02
+1.1295469052094546E-02
+1.1317756085045656E-02
+1.1340033332750328E-02
+1.1362300778496310E-02
+1.1384558402408866E-02
+1.1406806186288171E-02
+1.1429044113022440E-02
+1.1451272172600188E-02
+1.1473490365659447E-02
+1.1495698690687556E-02
+1.1517897133280271E-02
+1.1540085675611147E-02
+1.1562264299957390E-02
+1.1584432988720628E-02
+1.1606591730159301E-02
+1.1628740523976144E-02
+1.1650879369299528E-02
+1.1673008254396728E-02
+1.1695127163545298E-02
+1.1717236078110689E-02
+1.1739334976685495E-02
+1.1761423844508527E-02
+1.1783502684179617E-02
+1.1805571499004436E-02
+1.1827630276411536E-02
+1.1849678996434515E-02
+1.1871717640348819E-02
+1.1893746191018658E-02
+1.1915764634902151E-02
+1.1937772970393791E-02
+1.1959771197512887E-02
+1.1981759306328516E-02
+1.2003737280813956E-02
+1.2025705103693789E-02
+1.2047662755832860E-02
+1.2069610220964859E-02
+1.2091547496704963E-02
+1.2113474584014853E-02
+1.2135391474212408E-02
+1.2157298150983868E-02
+1.2179194597309836E-02
+1.2201080795132853E-02
+1.2222956728405836E-02
+1.2244822394252754E-02
+1.2266677794363318E-02
+1.2288522919937060E-02
+1.2310357751461949E-02
+1.2332182270403124E-02
+1.2353996462242495E-02
+1.2375800313965379E-02
+1.2397593819435435E-02
+1.2419376975835892E-02
+1.2441149775594816E-02
+1.2462912204845699E-02
+1.2484664248589300E-02
+1.2506405889247420E-02
+1.2528137109533237E-02
+1.2549857902543222E-02
+1.2571568268062966E-02
+1.2593268200413489E-02
+1.2614957684392835E-02
+1.2636636703625853E-02
+1.2658305240545778E-02
+1.2679963277790115E-02
+1.2701610807785823E-02
+1.2723247831179492E-02
+1.2744874344149990E-02
+1.2766490332337014E-02
+1.2788095779526663E-02
+1.2809690666668405E-02
+1.2831274973993461E-02
+1.2852848693405543E-02
+1.2874411829480240E-02
+1.2895964381424690E-02
+1.2917506330743308E-02
+1.2939037656197071E-02
+1.2960558341119156E-02
+1.2982068371411070E-02
+1.3003567738937275E-02
+1.3025056443890196E-02
+1.3046534483673187E-02
+1.3068001842257052E-02
+1.3089458500503600E-02
+1.3110904441795239E-02
+1.3132339651316743E-02
+1.3153764119523632E-02
+1.3175177846401900E-02
+1.3196580830384037E-02
+1.3217973056361411E-02
+1.3239354504919389E-02
+1.3260725159435391E-02
+1.3282085005801986E-02
+1.3303434033240313E-02
+1.3324772238699717E-02
+1.3346099619242954E-02
+1.3367416164683173E-02
+1.3388721861547765E-02
+1.3410016692385550E-02
+1.3431300635165996E-02
+1.3452573673691176E-02
+1.3473835811008686E-02
+1.3495087052207134E-02
+1.3516327385082438E-02
+1.3537556787641413E-02
+1.3558775240927202E-02
+1.3579982730687737E-02
+1.3601179245266645E-02
+1.3622364782357383E-02
+1.3643539341432882E-02
+1.3664702912239783E-02
+1.3685855477343949E-02
+1.3706997019555028E-02
+1.3728127522482836E-02
+1.3749246971805792E-02
+1.3770355364427340E-02
+1.3791452700767426E-02
+1.3812538971940833E-02
+1.3833614160188456E-02
+1.3854678248211566E-02
+1.3875731220788832E-02
+1.3896773064263415E-02
+1.3917803774528264E-02
+1.3938823351694937E-02
+1.3959831788189884E-02
+1.3980829066959298E-02
+1.4001815170641306E-02
+1.4022790082805214E-02
+1.4043753788146020E-02
+1.4064706281310922E-02
+1.4085647562883604E-02
+1.4106577626666453E-02
+1.4127496455535677E-02
+1.4148404031886070E-02
+1.4169300340348861E-02
+1.4190185366693678E-02
+1.4211059104474432E-02
+1.4231921553335861E-02
+1.4252772708344286E-02
+1.4273612554725547E-02
+1.4294441076312135E-02
+1.4315258255898649E-02
+1.4336064076246626E-02
+1.4356858528585771E-02
+1.4377641612731785E-02
+1.4398413325325612E-02
+1.4419173653283443E-02
+1.4439922581601282E-02
+1.4460660092991793E-02
+1.4481386169249858E-02
+1.4502100800733497E-02
+1.4522803989020295E-02
+1.4543495732722251E-02
+1.4564176016889269E-02
+1.4584844823568843E-02
+1.4605502135787804E-02
+1.4626147937288385E-02
+1.4646782218145462E-02
+1.4667404979158388E-02
+1.4688016219433270E-02
+1.4708615924739430E-02
+1.4729204076893180E-02
+1.4749780659563177E-02
+1.4770345657989948E-02
+1.4790899061737434E-02
+1.4811440869847212E-02
+1.4831971080801594E-02
+1.4852489681023779E-02
+1.4872996652166499E-02
+1.4893491978641187E-02
+1.4913975647853366E-02
+1.4934447649238784E-02
+1.4954907977743938E-02
+1.4975356628750268E-02
+1.4995793592505535E-02
+1.5016218856483901E-02
+1.5036632405841703E-02
+1.5057034222539458E-02
+1.5077424291378694E-02
+1.5097802609197878E-02
+1.5118169175211275E-02
+1.5138523981416586E-02
+1.5158867014812533E-02
+1.5179198260088842E-02
+1.5199517697935757E-02
+1.5219825311317159E-02
+1.5240121097329621E-02
+1.5260405057238035E-02
+1.5280677183855788E-02
+1.5300937462462322E-02
+1.5321185877124666E-02
+1.5341422409660374E-02
+1.5361647043515449E-02
+1.5381859776004370E-02
+1.5402060610117225E-02
+1.5422249539233246E-02
+1.5442426545665085E-02
+1.5462591611630298E-02
+1.5482744720963736E-02
+1.5502885858821480E-02
+1.5523015020193251E-02
+1.5543132205525055E-02
+1.5563237409460915E-02
+1.5583330617937657E-02
+1.5603411815656306E-02
+1.5623480985092223E-02
+1.5643538108914633E-02
+1.5663583180645733E-02
+1.5683616201727407E-02
+1.5703637167911268E-02
+1.5723646063607009E-02
+1.5743642872130363E-02
+1.5763627577924613E-02
+1.5783600166211175E-02
+1.5803560630229401E-02
+1.5823508970806404E-02
+1.5843445184246987E-02
+1.5863369254626888E-02
+1.5883281164321136E-02
+1.5903180897304390E-02
+1.5923068438517315E-02
+1.5942943780610869E-02
+1.5962806925656121E-02
+1.5982657871964904E-02
+1.6002496603247793E-02
+1.6022323100376001E-02
+1.6042137346700128E-02
+1.6061939327175454E-02
+1.6081729033639729E-02
+1.6101506468784717E-02
+1.6121271632899344E-02
+1.6141024511102855E-02
+1.6160765084318105E-02
+1.6180493334685398E-02
+1.6200209245342195E-02
+1.6219912806335821E-02
+1.6239604021907442E-02
+1.6259282895014045E-02
+1.6278949410186747E-02
+1.6298603545281124E-02
+1.6318245283708066E-02
+1.6337874614496900E-02
+1.6357491529081794E-02
+1.6377096024754387E-02
+1.6396688098727952E-02
+1.6416267739415402E-02
+1.6435834930892904E-02
+1.6455389657579408E-02
+1.6474931904379757E-02
+1.6494461659040664E-02
+1.6513978919471609E-02
+1.6533483685126145E-02
+1.6552975946735580E-02
+1.6572455689413713E-02
+1.6591922897700225E-02
+1.6611377555323201E-02
+1.6630819648156131E-02
+1.6650249172849407E-02
+1.6669666128925162E-02
+1.6689070509347134E-02
+1.6708462301609599E-02
+1.6727841490746308E-02
+1.6747208056736820E-02
+1.6766561981511201E-02
+1.6785903264153058E-02
+1.6805231910192474E-02
+1.6824547913534715E-02
+1.6843851255591177E-02
+1.6863141918305357E-02
+1.6882419886958634E-02
+1.6901685148387299E-02
+1.6920937697949303E-02
+1.6940177535363178E-02
+1.6959404654402176E-02
+1.6978619040546136E-02
+1.6997820678658179E-02
+1.7017009553573801E-02
+1.7036185650802449E-02
+1.7055348964455035E-02
+1.7074499494483239E-02
+1.7093637235857499E-02
+1.7112762174383352E-02
+1.7131874294898587E-02
+1.7150973582187295E-02
+1.7170060021443518E-02
+1.7189133605834423E-02
+1.7208194335571178E-02
+1.7227242206478279E-02
+1.7246277203473118E-02
+1.7265299310139828E-02
+1.7284308511725355E-02
+1.7303304794430339E-02
+1.7322288151530429E-02
+1.7341258584375564E-02
+1.7360216090408741E-02
+1.7379160653506701E-02
+1.7398092255362985E-02
+1.7417010882093745E-02
+1.7435916522369990E-02
+1.7454809168415575E-02
+1.7473688817656347E-02
+1.7492555465907316E-02
+1.7511409100517756E-02
+1.7530249706667868E-02
+1.7549077270070084E-02
+1.7567891776862167E-02
+1.7586693217473779E-02
+1.7605481590553917E-02
+1.7624256893988118E-02
+1.7643019116172692E-02
+1.7661768242191501E-02
+1.7680504256912036E-02
+1.7699227145011348E-02
+1.7717936895330501E-02
+1.7736633507223990E-02
+1.7755316980381172E-02
+1.7773987304640963E-02
+1.7792644465281386E-02
+1.7811288446370994E-02
+1.7829919230538002E-02
+1.7848536804735648E-02
+1.7867141170686662E-02
+1.7885732331876059E-02
+1.7904310277810493E-02
+1.7922874989644684E-02
+1.7941426450569290E-02
+1.7959964647155390E-02
+1.7978489568358121E-02
+1.7997001212487748E-02
+1.8015499579839139E-02
+1.8033984661070614E-02
+1.8052456439360234E-02
+1.8070914899058061E-02
+1.8089360027319132E-02
+1.8107791813103145E-02
+1.8126210254175327E-02
+1.8144615351182725E-02
+1.8163007095506840E-02
+1.8181385469235745E-02
+1.8199750455597439E-02
+1.8218102041991993E-02
+1.8236440217415394E-02
+1.8254764978253249E-02
+1.8273076324355788E-02
+1.8291374249338140E-02
+1.8309658738717000E-02
+1.8327929777486270E-02
+1.8346187350694355E-02
+1.8364431444145842E-02
+1.8382662052190846E-02
+1.8400879174590313E-02
+1.8419082807150877E-02
+1.8437272938902426E-02
+1.8455449557173188E-02
+1.8473612644213488E-02
+1.8491762181502915E-02
+1.8509898163148651E-02
+1.8528020593670588E-02
+1.8546129471269619E-02
+1.8564224779624841E-02
+1.8582306501186644E-02
+1.8600374622908297E-02
+1.8618429133698142E-02
+1.8636470026558934E-02
+1.8654497298854801E-02
+1.8672510946245308E-02
+1.8690510958847172E-02
+1.8708497325174565E-02
+1.8726470028345876E-02
+1.8744429048884310E-02
+1.8762374377633520E-02
+1.8780306019686756E-02
+1.8798223976895793E-02
+1.8816128234596274E-02
+1.8834018774497020E-02
+1.8851895582773791E-02
+1.8869758648670777E-02
+1.8887607963764833E-02
+1.8905443523697756E-02
+1.8923265323732702E-02
+1.8941073354992968E-02
+1.8958867607102414E-02
+1.8976648066644310E-02
+1.8994414717542395E-02
+1.9012167548164881E-02
+1.9029906557496434E-02
+1.9047631744754809E-02
+1.9065343100178100E-02
+1.9083040610132929E-02
+1.9100724259898793E-02
+1.9118394033539397E-02
+1.9136049919153041E-02
+1.9153691917548649E-02
+1.9171320030796132E-02
+1.9188934249451037E-02
+1.9206534557645861E-02
+1.9224120940253615E-02
+1.9241693383337099E-02
+1.9259251875533921E-02
+1.9276796415759367E-02
+1.9294327004881606E-02
+1.9311843634044049E-02
+1.9329346287345797E-02
+1.9346834950157432E-02
+1.9364309610577123E-02
+1.9381770258060517E-02
+1.9399216887910277E-02
+1.9416649497260567E-02
+1.9434068079351722E-02
+1.9451472623770838E-02
+1.9468863118628180E-02
+1.9486239548688392E-02
+1.9503601899466178E-02
+1.9520950166028176E-02
+1.9538284347672158E-02
+1.9555604439396593E-02
+1.9572910430978210E-02
+1.9590202310423840E-02
+1.9607480060892659E-02
+1.9624743665730145E-02
+1.9641993120768742E-02
+1.9659228429175713E-02
+1.9676449587351725E-02
+1.9693656580965592E-02
+1.9710849395265708E-02
+1.9728028017785247E-02
+1.9745192437034556E-02
+1.9762342646664981E-02
+1.9779478644278672E-02
+1.9796600424490680E-02
+1.9813707975623106E-02
+1.9830801285188871E-02
+1.9847880340438814E-02
+1.9864945128776398E-02
+1.9881995643316160E-02
+1.9899031882861105E-02
+1.9916053843689236E-02
+1.9933061514648919E-02
+1.9950054883209105E-02
+1.9967033935636484E-02
+1.9983998657773470E-02
+2.0000949041626685E-02
+2.0017885087135409E-02
+2.0034806792404578E-02
+2.0051714147126476E-02
+2.0068607138901524E-02
+2.0085485752874693E-02
+2.0102349972729319E-02
+2.0119199789429734E-02
+2.0136035206112290E-02
+2.0152856224183700E-02
+2.0169662831266782E-02
+2.0186455011010965E-02
+2.0203232749418619E-02
+2.0219996034446144E-02
+2.0236744857571300E-02
+2.0253479217807888E-02
+2.0270199113857596E-02
+2.0286904536026339E-02
+2.0303595471301318E-02
+2.0320271906950252E-02
+2.0336933830549877E-02
+2.0353581232124704E-02
+2.0370214108687966E-02
+2.0386832457903799E-02
+2.0403436272175075E-02
+2.0420025541106047E-02
+2.0436600251720245E-02
+2.0453160387539783E-02
+2.0469705935420284E-02
+2.0486236895965043E-02
+2.0502753272204303E-02
+2.0519255056397085E-02
+2.0535742233518534E-02
+2.0552214789445543E-02
+2.0568672711902831E-02
+2.0585115990264982E-02
+2.0601544621408726E-02
+2.0617958604338450E-02
+2.0634357933016080E-02
+2.0650742596982508E-02
+2.0667112583988529E-02
+2.0683467877968213E-02
+2.0699808464187893E-02
+2.0716134340929580E-02
+2.0732445511699969E-02
+2.0748741971390375E-02
+2.0765023705145658E-02
+2.0781290698521648E-02
+2.0797542939947383E-02
+2.0813780419090482E-02
+2.0830003132193509E-02
+2.0846211079043539E-02
+2.0862404253840564E-02
+2.0878582642579243E-02
+2.0894746231369932E-02
+2.0910895009469955E-02
+2.0927028967329061E-02
+2.0943148100599905E-02
+2.0959252408649161E-02
+2.0975341886554064E-02
+2.0991416521102538E-02
+2.1007476298475169E-02
+2.1023521206605701E-02
+2.1039551234326034E-02
+2.1055566376479432E-02
+2.1071566633498236E-02
+2.1087552002520587E-02
+2.1103522471956498E-02
+2.1119478028887206E-02
+2.1135418660438159E-02
+2.1151344353932490E-02
+2.1167255102522282E-02
+2.1183150906360727E-02
+2.1199031763620570E-02
+2.1214897664561898E-02
+2.1230748597643786E-02
+2.1246584549566856E-02
+2.1262405506080790E-02
+2.1278211458444763E-02
+2.1294002406499483E-02
+2.1309778349217146E-02
+2.1325539278454837E-02
+2.1341285183934341E-02
+2.1357016052850817E-02
+2.1372731870493232E-02
+2.1388432626975654E-02
+2.1404118322278450E-02
+2.1419788956107712E-02
+2.1435444519457884E-02
+2.1451085000134609E-02
+2.1466710386336019E-02
+2.1482320666658707E-02
+2.1497915832203753E-02
+2.1513495880698917E-02
+2.1529060810216192E-02
+2.1544610612777699E-02
+2.1560145277437329E-02
+2.1575664791906056E-02
+2.1591169142202812E-02
+2.1606658317610220E-02
+2.1622132319375723E-02
+2.1637591150424074E-02
+2.1653034802676975E-02
+2.1668463261122047E-02
+2.1683876511997751E-02
+2.1699274543795527E-02
+2.1714657347013736E-02
+2.1730024920678118E-02
+2.1745377265868390E-02
+2.1760714375864909E-02
+2.1776036237572929E-02
+2.1791342838154176E-02
+2.1806634165729716E-02
+2.1821910209892874E-02
+2.1837170968858892E-02
+2.1852416443966908E-02
+2.1867646629614323E-02
+2.1882861512869677E-02
+2.1898061080806261E-02
+2.1913245321509539E-02
+2.1928414224177444E-02
+2.1943567786182363E-02
+2.1958706008986795E-02
+2.1973828887963110E-02
+2.1988936410144572E-02
+2.2004028562498328E-02
+2.2019105334014046E-02
+2.2034166714725273E-02
+2.2049212701600103E-02
+2.2064243296210265E-02
+2.2079258494458586E-02
+2.2094258282082734E-02
+2.2109242644713447E-02
+2.2124211572732852E-02
+2.2139165058218585E-02
+2.2154103096573331E-02
+2.2169025686084476E-02
+2.2183932823073078E-02
+2.2198824499092117E-02
+2.2213700704404447E-02
+2.2228561425006108E-02
+2.2243406645422327E-02
+2.2258236359559740E-02
+2.2273050571857092E-02
+2.2287849283124155E-02
+2.2302632481358851E-02
+2.2317400152393502E-02
+2.2332152284681901E-02
+2.2346888868211928E-02
+2.2361609897318797E-02
+2.2376315372618281E-02
+2.2391005292778581E-02
+2.2405679646490123E-02
+2.2420338420116079E-02
+2.2434981603023929E-02
+2.2449609186756380E-02
+2.2464221165152017E-02
+2.2478817536286857E-02
+2.2493398297686002E-02
+2.2507963441277177E-02
+2.2522512957022844E-02
+2.2537046833776393E-02
+2.2551565059375171E-02
+2.2566067625002861E-02
+2.2580554530212515E-02
+2.2595025774828633E-02
+2.2609481351238300E-02
+2.2623921248482840E-02
+2.2638345455842316E-02
+2.2652753962901857E-02
+2.2667146761201219E-02
+2.2681523848636542E-02
+2.2695885223820711E-02
+2.2710230879334461E-02
+2.2724560804219852E-02
+2.2738874988397977E-02
+2.2753173423218368E-02
+2.2767456100897789E-02
+2.2781723016924833E-02
+2.2795974167585359E-02
+2.2810209547675809E-02
+2.2824429150835723E-02
+2.2838632967980891E-02
+2.2852820984606163E-02
+2.2866993187752063E-02
+2.2881149577420129E-02
+2.2895290157920401E-02
+2.2909414923911568E-02
+2.2923523860539707E-02
+2.2937616954822524E-02
+2.2951694199797489E-02
+2.2965755589574310E-02
+2.2979801118966883E-02
+2.2993830783133606E-02
+2.3007844577426620E-02
+2.3021842497441353E-02
+2.3035824536385873E-02
+2.3049790679003257E-02
+2.3063740909382714E-02
+2.3077675225170069E-02
+2.3091593632418216E-02
+2.3105496129623961E-02
+2.3119382702627984E-02
+2.3133253337262495E-02
+2.3147108024886311E-02
+2.3160946758699893E-02
+2.3174769535372345E-02
+2.3188576354372884E-02
+2.3202367211780744E-02
+2.3216142096215458E-02
+2.3229900995809086E-02
+2.3243643901738015E-02
+2.3257370806497025E-02
+2.3271081705750707E-02
+2.3284776598481657E-02
+2.3298455481670803E-02
+2.3312118346178735E-02
+2.3325765181727250E-02
+2.3339395977503199E-02
+2.3353010722541191E-02
+2.3366609411125686E-02
+2.3380192044648900E-02
+2.3393758623103583E-02
+2.3407309139280484E-02
+2.3420843584011721E-02
+2.3434361944997498E-02
+2.3447864207918345E-02
+2.3461350365017706E-02
+2.3474820420127007E-02
+2.3488274375817821E-02
+2.3501712222322411E-02
+2.3515133946148948E-02
+2.3528539536984451E-02
+2.3541928987276143E-02
+2.3555302291661383E-02
+2.3568659449599589E-02
+2.3582000460241701E-02
+2.3595325316007366E-02
+2.3608634006486003E-02
+2.3621926520987737E-02
+2.3635202848523575E-02
+2.3648462980918831E-02
+2.3661706918600752E-02
+2.3674934662839670E-02
+2.3688146207507879E-02
+2.3701341542424949E-02
+2.3714520657842741E-02
+2.3727683544696503E-02
+2.3740830195212281E-02
+2.3753960606642976E-02
+2.3767074777272312E-02
+2.3780172702103690E-02
+2.3793254373787091E-02
+2.3806319783350682E-02
+2.3819368918879518E-02
+2.3832401770110988E-02
+2.3845418337551015E-02
+2.3858418624919369E-02
+2.3871402627236391E-02
+2.3884370331514738E-02
+2.3897321725916722E-02
+2.3910256802162917E-02
+2.3923175553277876E-02
+2.3936077977955612E-02
+2.3948964077265308E-02
+2.3961833846992749E-02
+2.3974687276636767E-02
+2.3987524355528853E-02
+2.4000345073646574E-02
+2.4013149421843585E-02
+2.4025937398589211E-02
+2.4038709006721785E-02
+2.4051464243792793E-02
+2.4064203099149816E-02
+2.4076925561710795E-02
+2.4089631621558583E-02
+2.4102321269537291E-02
+2.4114994502992822E-02
+2.4127651324179624E-02
+2.4140291731799966E-02
+2.4152915717208678E-02
+2.4165523270643561E-02
+2.4178114380918703E-02
+2.4190689036686062E-02
+2.4203247234471814E-02
+2.4215788978508835E-02
+2.4228314269340211E-02
+2.4240823096955997E-02
+2.4253315449807598E-02
+2.4265791317747108E-02
+2.4278250691435094E-02
+2.4290693566574834E-02
+2.4303119945236623E-02
+2.4315529827461709E-02
+2.4327923204763850E-02
+2.4340300066902222E-02
+2.4352660404855172E-02
+2.4365004210408776E-02
+2.4377331478605116E-02
+2.4389642209795261E-02
+2.4401936403318412E-02
+2.4414214051470592E-02
+2.4426475144516350E-02
+2.4438719673204615E-02
+2.4450947628695367E-02
+2.4463159005557657E-02
+2.4475353805616436E-02
+2.4487532030068159E-02
+2.4499693670251704E-02
+2.4511838713826731E-02
+2.4523967152324817E-02
+2.4536078981322637E-02
+2.4548174196688585E-02
+2.4560252794579556E-02
+2.4572314771137319E-02
+2.4584360121937373E-02
+2.4596388842208872E-02
+2.4608400924786177E-02
+2.4620396359284914E-02
+2.4632375137053009E-02
+2.4644337256797936E-02
+2.4656282718635091E-02
+2.4668211518797563E-02
+2.4680123650910407E-02
+2.4692019106455066E-02
+2.4703897873254204E-02
+2.4715759941121667E-02
+2.4727605311750261E-02
+2.4739433990087899E-02
+2.4751245972618442E-02
+2.4763041248548133E-02
+2.4774819807704178E-02
+2.4786581641872842E-02
+2.4798326743935332E-02
+2.4810055112369285E-02
+2.4821766747864286E-02
+2.4833461647809429E-02
+2.4845139805923667E-02
+2.4856801214438323E-02
+2.4868445861669027E-02
+2.4880073736332255E-02
+2.4891684837776082E-02
+2.4903279171024157E-02
+2.4914856734948365E-02
+2.4926417519522761E-02
+2.4937961514349780E-02
+2.4949488710301136E-02
+2.4960999099112743E-02
+2.4972492679732661E-02
+2.4983969456175193E-02
+2.4995429427834025E-02
+2.5006872585300374E-02
+2.5018298918367196E-02
+2.5029708417703380E-02
+2.5041101074624740E-02
+2.5052476887386186E-02
+2.5063835860579562E-02
+2.5075177994337988E-02
+2.5086503277337871E-02
+2.5097811697365184E-02
+2.5109103248258786E-02
+2.5120377926585221E-02
+2.5131635729946544E-02
+2.5142876657152029E-02
+2.5154100705555918E-02
+2.5165307867574659E-02
+2.5176498134768393E-02
+2.5187671500134332E-02
+2.5198827957551521E-02
+2.5209967503514299E-02
+2.5221090138492830E-02
+2.5232195861745212E-02
+2.5243284665825826E-02
+2.5254356541623221E-02
+2.5265411482199050E-02
+2.5276449482262795E-02
+2.5287470537572611E-02
+2.5298474645890131E-02
+2.5309461805026301E-02
+2.5320432011701505E-02
+2.5331385262078142E-02
+2.5342321548712361E-02
+2.5353240860655255E-02
+2.5364143190131357E-02
+2.5375028538037719E-02
+2.5385896906004554E-02
+2.5396748290387249E-02
+2.5407582684988030E-02
+2.5418400082041478E-02
+2.5429200471832301E-02
+2.5439983847240229E-02
+2.5450750210595573E-02
+2.5461499565446508E-02
+2.5472231906134960E-02
+2.5482947221326421E-02
+2.5493645502178960E-02
+2.5504326744044244E-02
+2.5514990943419222E-02
+2.5525638100340486E-02
+2.5536268215556362E-02
+2.5546881284744884E-02
+2.5557477299511022E-02
+2.5568056251466326E-02
+2.5578618132480597E-02
+2.5589162935755479E-02
+2.5599690662634188E-02
+2.5610201317338287E-02
+2.5620694897483580E-02
+2.5631171393833859E-02
+2.5641630797373333E-02
+2.5652073100591467E-02
+2.5662498296920092E-02
+2.5672906385625791E-02
+2.5683297368857917E-02
+2.5693671245354290E-02
+2.5704028009258601E-02
+2.5714367653827959E-02
+2.5724690170207589E-02
+2.5734995549627306E-02
+2.5745283790259525E-02
+2.5755554894829401E-02
+2.5765808862889386E-02
+2.5776045688347661E-02
+2.5786265364382041E-02
+2.5796467883333809E-02
+2.5806653237580815E-02
+2.5816821424745624E-02
+2.5826972446925757E-02
+2.5837106304084145E-02
+2.5847222991014544E-02
+2.5857322501395968E-02
+2.5867404826192628E-02
+2.5877469955512957E-02
+2.5887517886851594E-02
+2.5897548625849535E-02
+2.5907562175029632E-02
+2.5917558526301100E-02
+2.5927537669835802E-02
+2.5937499598075495E-02
+2.5947444304776947E-02
+2.5957371787745747E-02
+2.5967282050536694E-02
+2.5977175094751444E-02
+2.5987050912401468E-02
+2.5996909493414842E-02
+2.6006750831910581E-02
+2.6016574924968752E-02
+2.6026381770566237E-02
+2.6036171368224982E-02
+2.6045943716951323E-02
+2.6055698812079774E-02
+2.6065436647678169E-02
+2.6075157217071637E-02
+2.6084860512919888E-02
+2.6094546530930927E-02
+2.6104215274267064E-02
+2.6113866745885290E-02
+2.6123500939173528E-02
+2.6133117843423665E-02
+2.6142717452237032E-02
+2.6152299764294069E-02
+2.6161864778275697E-02
+2.6171412491931785E-02
+2.6180942902722125E-02
+2.6190456007067209E-02
+2.6199951800765311E-02
+2.6209430278427204E-02
+2.6218891432873051E-02
+2.6228335258309737E-02
+2.6237761755557181E-02
+2.6247170926940278E-02
+2.6256562770837662E-02
+2.6265937282653164E-02
+2.6275294455932852E-02
+2.6284634280696009E-02
+2.6293956748440445E-02
+2.6303261861605851E-02
+2.6312549626238205E-02
+2.6321820041478882E-02
+2.6331073099779594E-02
+2.6340308793794492E-02
+2.6349527117415412E-02
+2.6358728065262477E-02
+2.6367911636124574E-02
+2.6377077830708535E-02
+2.6386226647821875E-02
+2.6395358083885136E-02
+2.6404472134439704E-02
+2.6413568792510278E-02
+2.6422648051149765E-02
+2.6431709909663363E-02
+2.6440754371155943E-02
+2.6449781434897433E-02
+2.6458791093865307E-02
+2.6467783341058839E-02
+2.6476758172227204E-02
+2.6485715584030019E-02
+2.6494655574966532E-02
+2.6503578144998985E-02
+2.6512483293073614E-02
+2.6521371015907385E-02
+2.6530241309557414E-02
+2.6539094167732605E-02
+2.6547929583418065E-02
+2.6556747553927548E-02
+2.6565548081034843E-02
+2.6574331165457137E-02
+2.6583096804404686E-02
+2.6591844994024203E-02
+2.6600575726560195E-02
+2.6609288992458780E-02
+2.6617984789229641E-02
+2.6626663123794535E-02
+2.6635324000597434E-02
+2.6643967412482261E-02
+2.6652593349931624E-02
+2.6661201807318787E-02
+2.6669792781591574E-02
+2.6678366271076105E-02
+2.6686922276397157E-02
+2.6695460797828800E-02
+2.6703981832772006E-02
+2.6712485377603248E-02
+2.6720971426359295E-02
+2.6729439971105169E-02
+2.6737891007634774E-02
+2.6746324540289544E-02
+2.6754740573263047E-02
+2.6763139101910395E-02
+2.6771520118050771E-02
+2.6779883616170747E-02
+2.6788229593694170E-02
+2.6796558049096402E-02
+2.6804868983540182E-02
+2.6813162398068038E-02
+2.6821438288024517E-02
+2.6829696645741124E-02
+2.6837937466333405E-02
+2.6846160748900956E-02
+2.6854366492686816E-02
+2.6862554696302214E-02
+2.6870725358202834E-02
+2.6878878476866125E-02
+2.6887014050761177E-02
+2.6895132075999521E-02
+2.6903232544356788E-02
+2.6911315449021020E-02
+2.6919380793210615E-02
+2.6927428583102313E-02
+2.6935458817600805E-02
+2.6943471489032457E-02
+2.6951466590352312E-02
+2.6959444116602806E-02
+2.6967404064064001E-02
+2.6975346435737829E-02
+2.6983271237356284E-02
+2.6991178467686040E-02
+2.6999068117353378E-02
+2.7006940178392697E-02
+2.7014794648810150E-02
+2.7022631527950178E-02
+2.7030450816632749E-02
+2.7038252516475968E-02
+2.7046036626289200E-02
+2.7053803140630224E-02
+2.7061552054062063E-02
+2.7069283362676642E-02
+2.7076997063261013E-02
+2.7084693156693065E-02
+2.7092371646871994E-02
+2.7100032533993151E-02
+2.7107675810839203E-02
+2.7115301470123667E-02
+2.7122909509117343E-02
+2.7130499926770621E-02
+2.7138072723230253E-02
+2.7145627899789575E-02
+2.7153165456302288E-02
+2.7160685388787884E-02
+2.7168187692764731E-02
+2.7175672364601163E-02
+2.7183139401127585E-02
+2.7190588801378420E-02
+2.7198020567121849E-02
+2.7205434698940385E-02
+2.7212831192764846E-02
+2.7220210043704073E-02
+2.7227571248763460E-02
+2.7234914806129034E-02
+2.7242240715163162E-02
+2.7249548977091816E-02
+2.7256839592453157E-02
+2.7264112557853215E-02
+2.7271367868810143E-02
+2.7278605521473907E-02
+2.7285825512507012E-02
+2.7293027840321626E-02
+2.7300212506968288E-02
+2.7307379514362962E-02
+2.7314528860758958E-02
+2.7321660542968973E-02
+2.7328774556781021E-02
+2.7335870896939524E-02
+2.7342949560479286E-02
+2.7350010550894255E-02
+2.7357053872067549E-02
+2.7364079521829832E-02
+2.7371087494990905E-02
+2.7378077787053461E-02
+2.7385050394466346E-02
+2.7392005315105123E-02
+2.7398942551860237E-02
+2.7405862108336922E-02
+2.7412763982942612E-02
+2.7419648170693790E-02
+2.7426514667066318E-02
+2.7433363468423566E-02
+2.7440194572259005E-02
+2.7447007981212499E-02
+2.7453803699204402E-02
+2.7460581724894028E-02
+2.7467342052501294E-02
+2.7474084677747118E-02
+2.7480809600027876E-02
+2.7487516819297168E-02
+2.7494206335892755E-02
+2.7500878150237502E-02
+2.7507532260815561E-02
+2.7514168663998029E-02
+2.7520787356767655E-02
+2.7527388338234517E-02
+2.7533971607932906E-02
+2.7540537165692845E-02
+2.7547085011489923E-02
+2.7553615144696841E-02
+2.7560127563835617E-02
+2.7566622266928246E-02
+2.7573099250272310E-02
+2.7579558510063561E-02
+2.7586000046689662E-02
+2.7592423863437156E-02
+2.7598829961693848E-02
+2.7605218339268850E-02
+2.7611588993502877E-02
+2.7617941921275882E-02
+2.7624277119430319E-02
+2.7630594587003104E-02
+2.7636894325005011E-02
+2.7643176334484161E-02
+2.7649440616409716E-02
+2.7655687171131003E-02
+2.7661915994629735E-02
+2.7668127081119927E-02
+2.7674320429111304E-02
+2.7680496042104787E-02
+2.7686653922496928E-02
+2.7692794068289839E-02
+2.7698916476650483E-02
+2.7705021145093579E-02
+2.7711108071363465E-02
+2.7717177254895753E-02
+2.7723228697658340E-02
+2.7729262401435698E-02
+2.7735278366349290E-02
+2.7741276591850904E-02
+2.7747257074162177E-02
+2.7753219807141960E-02
+2.7759164788578004E-02
+2.7765092024032260E-02
+2.7771001518689487E-02
+2.7776893270460280E-02
+2.7782767274739453E-02
+2.7788623528188453E-02
+2.7794462028686944E-02
+2.7800282775531857E-02
+2.7806085771527968E-02
+2.7811871019668671E-02
+2.7817638520113562E-02
+2.7823388271666361E-02
+2.7829120272005955E-02
+2.7834834517432055E-02
+2.7840531005342086E-02
+2.7846209737164323E-02
+2.7851870715065084E-02
+2.7857513939920888E-02
+2.7863139411804391E-02
+2.7868747129633237E-02
+2.7874337090497581E-02
+2.7879909292183900E-02
+2.7885463736402431E-02
+2.7891000425780951E-02
+2.7896519359826052E-02
+2.7902020535585662E-02
+2.7907503950897614E-02
+2.7912969605384787E-02
+2.7918417499271170E-02
+2.7923847635101983E-02
+2.7929260016153881E-02
+2.7934654642165418E-02
+2.7940031509271317E-02
+2.7945390614125404E-02
+2.7950731955250972E-02
+2.7956055531870930E-02
+2.7961361346406508E-02
+2.7966649402821647E-02
+2.7971919702972046E-02
+2.7977172245927592E-02
+2.7982407030004056E-02
+2.7987624051451724E-02
+2.7992823306470443E-02
+2.7998004796210091E-02
+2.8003168525017875E-02
+2.8008314495815492E-02
+2.8013442709003689E-02
+2.8018553164031502E-02
+2.8023645856887467E-02
+2.8028720782856949E-02
+2.8033777943314409E-02
+2.8038817344737239E-02
+2.8043838990857724E-02
+2.8048842878943762E-02
+2.8053829005622886E-02
+2.8058797369056650E-02
+2.8063747968121874E-02
+2.8068680804166246E-02
+2.8073595881211794E-02
+2.8078493201986618E-02
+2.8083372765018624E-02
+2.8088234568248271E-02
+2.8093078611258145E-02
+2.8097904894507694E-02
+2.8102713418564410E-02
+2.8107504184135601E-02
+2.8112277191911225E-02
+2.8117032442472056E-02
+2.8121769936232763E-02
+2.8126489671822390E-02
+2.8131191646663341E-02
+2.8135875860976000E-02
+2.8140542320108597E-02
+2.8145191028756750E-02
+2.8149821985319391E-02
+2.8154435186230613E-02
+2.8159030629844751E-02
+2.8163608316237630E-02
+2.8168168246500768E-02
+2.8172710423999197E-02
+2.8177234851885936E-02
+2.8181741529442819E-02
+2.8186230454334212E-02
+2.8190701626140475E-02
+2.8195155046658975E-02
+2.8199590717392330E-02
+2.8204008638525329E-02
+2.8208408810085350E-02
+2.8212791233101320E-02
+2.8217155909151768E-02
+2.8221502838763346E-02
+2.8225832020885157E-02
+2.8230143455139037E-02
+2.8234437144527544E-02
+2.8238713092701755E-02
+2.8242971299904995E-02
+2.8247211763878864E-02
+2.8251434483554393E-02
+2.8255639460282016E-02
+2.8259826695644572E-02
+2.8263996190970159E-02
+2.8268147947485563E-02
+2.8272281966170647E-02
+2.8276398247770732E-02
+2.8280496793140465E-02
+2.8284577603436764E-02
+2.8288640679764294E-02
+2.8292686022460743E-02
+2.8296713631526034E-02
+2.8300723507585324E-02
+2.8304715652033453E-02
+2.8308690065980288E-02
+2.8312646749411537E-02
+2.8316585702374317E-02
+2.8320506928112804E-02
+2.8324410431752579E-02
+2.8328296214856684E-02
+2.8332164273287400E-02
+2.8336014603871508E-02
+2.8339847210103009E-02
+2.8343662097105118E-02
+2.8347459266019739E-02
+2.8351238714877814E-02
+2.8355000443749008E-02
+2.8358744457097466E-02
+2.8362470759059892E-02
+2.8366179348453580E-02
+2.8369870222248118E-02
+2.8373543381098203E-02
+2.8377198829391815E-02
+2.8380836570706901E-02
+2.8384456605959250E-02
+2.8388058935536375E-02
+2.8391643559171700E-02
+2.8395210476315678E-02
+2.8398759688045703E-02
+2.8402291197567632E-02
+2.8405805008070214E-02
+2.8409301122158729E-02
+2.8412779542047423E-02
+2.8416240266940597E-02
+2.8419683294136491E-02
+2.8423108623831430E-02
+2.8426516261183112E-02
+2.8429906211036048E-02
+2.8433278474373779E-02
+2.8436633051048283E-02
+2.8439969941619420E-02
+2.8443289147239370E-02
+2.8446590669230998E-02
+2.8449874509254531E-02
+2.8453140669074929E-02
+2.8456389150848013E-02
+2.8459619956842094E-02
+2.8462833088133108E-02
+2.8466028544512998E-02
+2.8469206326911894E-02
+2.8472366439772440E-02
+2.8475508887771648E-02
+2.8478633671949419E-02
+2.8481740791430368E-02
+2.8484830245786911E-02
+2.8487902035238821E-02
+2.8490956161075071E-02
+2.8493992628570070E-02
+2.8497011443614835E-02
+2.8500012607584283E-02
+2.8502996118761875E-02
+2.8505961976889840E-02
+2.8508910184455068E-02
+2.8511840744103324E-02
+2.8514753657803656E-02
+2.8517648927376307E-02
+2.8520526555989602E-02
+2.8523386548002582E-02
+2.8526228905594812E-02
+2.8529053625692101E-02
+2.8531860705567014E-02
+2.8534650150323335E-02
+2.8537421968278475E-02
+2.8540176162814943E-02
+2.8542912731643180E-02
+2.8545631673547761E-02
+2.8548332991656340E-02
+2.8551016689854904E-02
+2.8553682771148989E-02
+2.8556331238027088E-02
+2.8558962091922203E-02
+2.8561575332711850E-02
+2.8564170961013654E-02
+2.8566748981073923E-02
+2.8569309397880657E-02
+2.8571852213518139E-02
+2.8574377427954184E-02
+2.8576885042456115E-02
+2.8579375060889516E-02
+2.8581847486853110E-02
+2.8584302320780269E-02
+2.8586739562143790E-02
+2.8589159213453494E-02
+2.8591561280090598E-02
+2.8593945766416769E-02
+2.8596312673927805E-02
+2.8598662003731557E-02
+2.8600993757383182E-02
+2.8603307936666274E-02
+2.8605604544114420E-02
+2.8607883583174822E-02
+2.8610145057021936E-02
+2.8612388967726596E-02
+2.8614615317065325E-02
+2.8616824106150508E-02
+2.8619015335731246E-02
+2.8621189008869740E-02
+2.8623345132288480E-02
+2.8625483711632399E-02
+2.8627604746243072E-02
+2.8629708233960289E-02
+2.8631794176762260E-02
+2.8633862579849938E-02
+2.8635913447560488E-02
+2.8637946782277702E-02
+2.8639962586269940E-02
+2.8641960862562918E-02
+2.8643941614417152E-02
+2.8645904843958722E-02
+2.8647850552172779E-02
+2.8649778740943131E-02
+2.8651689414725002E-02
+2.8653582578114657E-02
+2.8655458233311112E-02
+2.8657316381352820E-02
+2.8659157024083146E-02
+2.8660980164401634E-02
+2.8662785805409343E-02
+2.8664573950680141E-02
+2.8666344603889456E-02
+2.8668097768654411E-02
+2.8669833448531381E-02
+2.8671551645311662E-02
+2.8673252357817241E-02
+2.8674935586141082E-02
+2.8676601337900343E-02
+2.8678249622569648E-02
+2.8679880442661152E-02
+2.8681493794919168E-02
+2.8683089678884759E-02
+2.8684668100632742E-02
+2.8686229066572276E-02
+2.8687772579625178E-02
+2.8689298641346537E-02
+2.8690807254101860E-02
+2.8692298421128429E-02
+2.8693772145442033E-02
+2.8695228429291095E-02
+2.8696667274994387E-02
+2.8698088686737049E-02
+2.8699492669661073E-02
+2.8700879227784370E-02
+2.8702248363558287E-02
+2.8703600079319571E-02
+2.8704934377405782E-02
+2.8706251260287724E-02
+2.8707550732112955E-02
+2.8708832798161599E-02
+2.8710097462403345E-02
+2.8711344726415990E-02
+2.8712574591588678E-02
+2.8713787059625375E-02
+2.8714982132516557E-02
+2.8716159815684601E-02
+2.8717320117574364E-02
+2.8718463043802208E-02
+2.8719588593090820E-02
+2.8720696764149223E-02
+2.8721787562545772E-02
+2.8722860996645835E-02
+2.8723917070565763E-02
+2.8724955783567010E-02
+2.8725977136216007E-02
+2.8726981133964748E-02
+2.8727967782919927E-02
+2.8728937086345639E-02
+2.8729889045929546E-02
+2.8730823664367067E-02
+2.8731740945863914E-02
+2.8732640894907079E-02
+2.8733523516650341E-02
+2.8734388816237140E-02
+2.8735236796275623E-02
+2.8736067457537925E-02
+2.8736880802022264E-02
+2.8737676834155141E-02
+2.8738455558619300E-02
+2.8739216979996752E-02
+2.8739961102811257E-02
+2.8740687931106287E-02
+2.8741397468473397E-02
+2.8742089718398801E-02
+2.8742764684147964E-02
+2.8743422368918425E-02
+2.8744062775651624E-02
+2.8744685907232070E-02
+2.8745291768569339E-02
+2.8745880367029755E-02
+2.8746451708310795E-02
+2.8747005792041921E-02
+2.8747542617185144E-02
+2.8748062188996219E-02
+2.8748564516451927E-02
+2.8749049605642205E-02
+2.8749517458046842E-02
+2.8749968075233556E-02
+2.8750401460966316E-02
+2.8750817619639008E-02
+2.8751216555892665E-02
+2.8751598274556322E-02
+2.8751962779924662E-02
+2.8752310075189431E-02
+2.8752640163653358E-02
+2.8752953050097202E-02
+2.8753248739810555E-02
+2.8753527237138855E-02
+2.8753788545481881E-02
+2.8754032668255509E-02
+2.8754259609029845E-02
+2.8754469371488792E-02
+2.8754661960038414E-02
+2.8754837379439797E-02
+2.8754995634506782E-02
+2.8755136730118144E-02
+2.8755260670752784E-02
+2.8755367459440333E-02
+2.8755457099097083E-02
+2.8755529595060541E-02
+2.8755584954187955E-02
+2.8755623181464428E-02
+2.8755644278701555E-02
+2.8755648247904188E-02
+2.8755635093456838E-02
+2.8755604820465425E-02
+2.8755557434165597E-02
+2.8755492939899704E-02
+2.8755411342957189E-02
+2.8755312648504928E-02
+2.8755196861307342E-02
+2.8755063983627611E-02
+2.8754914016855176E-02
+2.8754746965541162E-02
+2.8754562837604875E-02
+2.8754361639826812E-02
+2.8754143375230218E-02
+2.8753908046367946E-02
+2.8753655657594447E-02
+2.8753386214193617E-02
+2.8753099720891601E-02
+2.8752796181636495E-02
+2.8752475600651074E-02
+2.8752137983433387E-02
+2.8751783335745070E-02
+2.8751411662806637E-02
+2.8751022969461526E-02
+2.8750617259718537E-02
+2.8750194536110146E-02
+2.8749754801679284E-02
+2.8749298062892170E-02
+2.8748824327216135E-02
+2.8748333600271500E-02
+2.8747825886055504E-02
+2.8747301188618100E-02
+2.8746759512261393E-02
+2.8746200861380054E-02
+2.8745625240763895E-02
+2.8745032655348113E-02
+2.8744423109397694E-02
+2.8743796606418098E-02
+2.8743153151046547E-02
+2.8742492751547527E-02
+2.8741815416345587E-02
+2.8741121148681732E-02
+2.8740409948964773E-02
+2.8739681820700066E-02
+2.8738936771972822E-02
+2.8738174810326853E-02
+2.8737395939561379E-02
+2.8736600162637894E-02
+2.8735787484295675E-02
+2.8734957910559498E-02
+2.8734111447249352E-02
+2.8733248099740663E-02
+2.8732367873339673E-02
+2.8731470773245137E-02
+2.8730556804594961E-02
+2.8729625972040884E-02
+2.8728678279781386E-02
+2.8727713732484724E-02
+2.8726732336036689E-02
+2.8725734096349903E-02
+2.8724719018130330E-02
+2.8723687105574800E-02
+2.8722638364221505E-02
+2.8721572801229465E-02
+2.8720490423192788E-02
+2.8719391234510606E-02
+2.8718275239196130E-02
+2.8717142441980637E-02
+2.8715992848022582E-02
+2.8714826462473846E-02
+2.8713643290467251E-02
+2.8712443337414774E-02
+2.8711226609975552E-02
+2.8709993115054629E-02
+2.8708742858053707E-02
+2.8707475843218266E-02
+2.8706192075207127E-02
+2.8704891559579976E-02
+2.8703574302032079E-02
+2.8702240308415616E-02
+2.8700889584592666E-02
+2.8699522135328774E-02
+2.8698137964300652E-02
+2.8696737076416776E-02
+2.8695319480006649E-02
+2.8693885183498007E-02
+2.8692434191512104E-02
+2.8690966506881556E-02
+2.8689482134863869E-02
+2.8687981083844988E-02
+2.8686463361007612E-02
+2.8684928968517362E-02
+2.8683377907936711E-02
+2.8681810186662108E-02
+2.8680225815742477E-02
+2.8678624802723554E-02
+2.8677007149228183E-02
+2.8675372857417447E-02
+2.8673721934690082E-02
+2.8672054389888006E-02
+2.8670370229918692E-02
+2.8668669460098301E-02
+2.8666952085097161E-02
+2.8665218108285463E-02
+2.8663467533606560E-02
+2.8661700369785669E-02
+2.8659916627267416E-02
+2.8658116312077816E-02
+2.8656299425562005E-02
+2.8654465970684932E-02
+2.8652615955699377E-02
+2.8650749389452262E-02
+2.8648866277732769E-02
+2.8646966624770082E-02
+2.8645050436062715E-02
+2.8643117718862493E-02
+2.8641168480008899E-02
+2.8639202724281235E-02
+2.8637220456148756E-02
+2.8635221682341578E-02
+2.8633206411105852E-02
+2.8631174649624166E-02
+2.8629126403142177E-02
+2.8627061676711325E-02
+2.8624980475406393E-02
+2.8622882804369820E-02
+2.8620768669841881E-02
+2.8618638079023401E-02
+2.8616491039515583E-02
+2.8614327559774042E-02
+2.8612147647695586E-02
+2.8609951306466330E-02
+2.8607738537415776E-02
+2.8605509345847262E-02
+2.8603263741548361E-02
+2.8601001733666028E-02
+2.8598723328642928E-02
+2.8596428532318460E-02
+2.8594117349715596E-02
+2.8591789785430609E-02
+2.8589445845385950E-02
+2.8587085537441388E-02
+2.8584708869311165E-02
+2.8582315847484267E-02
+2.8579906478115143E-02
+2.8577480767087278E-02
+2.8575038720094689E-02
+2.8572580343447833E-02
+2.8570105644631558E-02
+2.8567614631157881E-02
+2.8565107309968116E-02
+2.8562583687738129E-02
+2.8560043769730085E-02
+2.8557487559895990E-02
+2.8554915063575572E-02
+2.8552326289678145E-02
+2.8549721247350949E-02
+2.8547099943448184E-02
+2.8544462383786974E-02
+2.8541808574218050E-02
+2.8539138520638569E-02
+2.8536452229111386E-02
+2.8533749706236521E-02
+2.8531030958931787E-02
+2.8528295996262665E-02
+2.8525544828499134E-02
+2.8522777461961153E-02
+2.8519993896817697E-02
+2.8517194134786643E-02
+2.8514378186754695E-02
+2.8511546065776192E-02
+2.8508697779551950E-02
+2.8505833331685975E-02
+2.8502952726715179E-02
+2.8500055971272021E-02
+2.8497143072497344E-02
+2.8494214039050215E-02
+2.8491268880037380E-02
+2.8488307602087818E-02
+2.8485330209380835E-02
+2.8482336707159654E-02
+2.8479327103773329E-02
+2.8476301407789961E-02
+2.8473259625424695E-02
+2.8470201761806563E-02
+2.8467127824010039E-02
+2.8464037821601625E-02
+2.8460931763247682E-02
+2.8457809653856234E-02
+2.8454671497771380E-02
+2.8451517302345575E-02
+2.8448347076816424E-02
+2.8445160829584291E-02
+2.8441958567616606E-02
+2.8438740297772356E-02
+2.8435506027033004E-02
+2.8432255762343220E-02
+2.8428989509451993E-02
+2.8425707273145789E-02
+2.8422409060599473E-02
+2.8419094884202738E-02
+2.8415764755735158E-02
+2.8412418678745222E-02
+2.8409056653752630E-02
+2.8405678686529816E-02
+2.8402284788384621E-02
+2.8398874969645615E-02
+2.8395449237102369E-02
+2.8392007597019195E-02
+2.8388550056538637E-02
+2.8385076623253371E-02
+2.8381587304606194E-02
+2.8378082107831125E-02
+2.8374561040164732E-02
+2.8371024108909869E-02
+2.8367471321390395E-02
+2.8363902684995140E-02
+2.8360318207153037E-02
+2.8356717894989367E-02
+2.8353101755092765E-02
+2.8349469794488835E-02
+2.8345822022706892E-02
+2.8342158449927629E-02
+2.8338479083735831E-02
+2.8334783929463883E-02
+2.8331072992990518E-02
+2.8327346281627565E-02
+2.8323603802996807E-02
+2.8319845565467360E-02
+2.8316071577686636E-02
+2.8312281847272431E-02
+2.8308476380688456E-02
+2.8304655184876043E-02
+2.8300818268420888E-02
+2.8296965640077019E-02
+2.8293097307231767E-02
+2.8289213276535927E-02
+2.8285313555482260E-02
+2.8281398152793246E-02
+2.8277467076766177E-02
+2.8273520333571254E-02
+2.8269557929134131E-02
+2.8265579873384943E-02
+2.8261586179084190E-02
+2.8257576855177366E-02
+2.8253551903319268E-02
+2.8249511325810314E-02
+2.8245455132894674E-02
+2.8241383337329506E-02
+2.8237295948027798E-02
+2.8233192970351473E-02
+2.8229074410918591E-02
+2.8224940279775856E-02
+2.8220790586947486E-02
+2.8216625338434134E-02
+2.8212444538539199E-02
+2.8208248195211741E-02
+2.8204036320756048E-02
+2.8199808925936438E-02
+2.8195566015640106E-02
+2.8191307593949222E-02
+2.8187033669018133E-02
+2.8182744251376686E-02
+2.8178439350454540E-02
+2.8174118973938126E-02
+2.8169783129497503E-02
+2.8165431825383055E-02
+2.8161065069900258E-02
+2.8156682869823521E-02
+2.8152285230778992E-02
+2.8147872160906189E-02
+2.8143443673448808E-02
+2.8138999780931692E-02
+2.8134540488050825E-02
+2.8130065796860539E-02
+2.8125575714212692E-02
+2.8121070251680216E-02
+2.8116549420437457E-02
+2.8112013230079877E-02
+2.8107461689588692E-02
+2.8102894805085325E-02
+2.8098312581364932E-02
+2.8093715025014763E-02
+2.8089102144906737E-02
+2.8084473950816164E-02
+2.8079830455175640E-02
+2.8075171670427244E-02
+2.8070497602593631E-02
+2.8065808253723023E-02
+2.8061103629320551E-02
+2.8056383740672580E-02
+2.8051648599236565E-02
+2.8046898214744570E-02
+2.8042132596294751E-02
+2.8037351750931028E-02
+2.8032555684039884E-02
+2.8027744402590059E-02
+2.8022917917046249E-02
+2.8018076238186557E-02
+2.8013219375911402E-02
+2.8008347339692923E-02
+2.8003460136870627E-02
+2.7998557772554999E-02
+2.7993640253298487E-02
+2.7988707590030547E-02
+2.7983759794107048E-02
+2.7978796873915270E-02
+2.7973818836354081E-02
+2.7968825689831674E-02
+2.7963817444811714E-02
+2.7958794110981407E-02
+2.7953755694548488E-02
+2.7948702201253839E-02
+2.7943633641152415E-02
+2.7938550027153470E-02
+2.7933451369859690E-02
+2.7928337675740818E-02
+2.7923208951133018E-02
+2.7918065203809538E-02
+2.7912906442071131E-02
+2.7907732675546550E-02
+2.7902543915007350E-02
+2.7897340170341015E-02
+2.7892121449322543E-02
+2.7886887759577490E-02
+2.7881639109724243E-02
+2.7876375508824415E-02
+2.7871096966730072E-02
+2.7865803494171375E-02
+2.7860495101085101E-02
+2.7855171794862358E-02
+2.7849833582395771E-02
+2.7844480470411319E-02
+2.7839112465621398E-02
+2.7833729578581490E-02
+2.7828331825376137E-02
+2.7822919219810872E-02
+2.7817491764716831E-02
+2.7812049460749191E-02
+2.7806592316612349E-02
+2.7801120346723895E-02
+2.7795633564116795E-02
+2.7790131979006948E-02
+2.7784615600715285E-02
+2.7779084435374812E-02
+2.7773538488165252E-02
+2.7767977766748889E-02
+2.7762402281073045E-02
+2.7756812042217940E-02
+2.7751207063833265E-02
+2.7745587358943561E-02
+2.7739952933115986E-02
+2.7734303788724525E-02
+2.7728639932642029E-02
+2.7722961377090679E-02
+2.7717268134389201E-02
+2.7711560216161731E-02
+2.7705837633543510E-02
+2.7700100394121067E-02
+2.7694348503441282E-02
+2.7688581969041112E-02
+2.7682800801546933E-02
+2.7677005011764639E-02
+2.7671194610142637E-02
+2.7665369606915863E-02
+2.7659530010620995E-02
+2.7653675828513094E-02
+2.7647807068501822E-02
+2.7641923739866570E-02
+2.7636025852612305E-02
+2.7630113420037895E-02
+2.7624186456345758E-02
+2.7618244969318903E-02
+2.7612288960469050E-02
+2.7606318434546247E-02
+2.7600333405486142E-02
+2.7594333888306399E-02
+2.7588319894788341E-02
+2.7582291435087287E-02
+2.7576248516453981E-02
+2.7570191142488158E-02
+2.7564119318875830E-02
+2.7558033059401688E-02
+2.7551932379205179E-02
+2.7545817288859499E-02
+2.7539687796098972E-02
+2.7533543909070621E-02
+2.7527385636665926E-02
+2.7521212987869210E-02
+2.7515025971777633E-02
+2.7508824597690430E-02
+2.7502608877623933E-02
+2.7496378825766526E-02
+2.7490134452982339E-02
+2.7483875762918452E-02
+2.7477602759425158E-02
+2.7471315453463756E-02
+2.7465013858709836E-02
+2.7458697987689622E-02
+2.7452367851725678E-02
+2.7446023460787870E-02
+2.7439664821201391E-02
+2.7433291939229311E-02
+2.7426904826073007E-02
+2.7420503495401594E-02
+2.7414087958707527E-02
+2.7407658224533497E-02
+2.7401214301232230E-02
+2.7394756197220656E-02
+2.7388283921007259E-02
+2.7381797482025450E-02
+2.7375296890346523E-02
+2.7368782158041983E-02
+2.7362253300646910E-02
+2.7355710331972309E-02
+2.7349153255421574E-02
+2.7342582071636774E-02
+2.7335996790130740E-02
+2.7329397428021998E-02
+2.7322784000232692E-02
+2.7316156516118968E-02
+2.7309514984258473E-02
+2.7302859413178306E-02
+2.7296189811395245E-02
+2.7289506187724129E-02
+2.7282808551310652E-02
+2.7276096912601334E-02
+2.7269371285910345E-02
+2.7262631685600908E-02
+2.7255878119726854E-02
+2.7249110592978489E-02
+2.7242329113570496E-02
+2.7235533694806476E-02
+2.7228724349766295E-02
+2.7221901089053858E-02
+2.7215063922515263E-02
+2.7208212858215123E-02
+2.7201347902981621E-02
+2.7194469066077271E-02
+2.7187576361336067E-02
+2.7180669802545004E-02
+2.7173749400551162E-02
+2.7166815165133536E-02
+2.7159867104498796E-02
+2.7152905225424153E-02
+2.7145929536685487E-02
+2.7138940052056259E-02
+2.7131936785601503E-02
+2.7124919748056819E-02
+2.7117888948675537E-02
+2.7110844396617022E-02
+2.7103786100937978E-02
+2.7096714070916020E-02
+2.7089628316561910E-02
+2.7082528848340320E-02
+2.7075415679814665E-02
+2.7068288826264733E-02
+2.7061148298180550E-02
+2.7053994098722361E-02
+2.7046826232550770E-02
+2.7039644713475707E-02
+2.7032449557584149E-02
+2.7025240778134899E-02
+2.7018018386241280E-02
+2.7010782390981057E-02
+2.7003532797499320E-02
+2.6996269611794237E-02
+2.6988992847511845E-02
+2.6981702520878236E-02
+2.6974398644298916E-02
+2.6967081226462915E-02
+2.6959750276338755E-02
+2.6952405804024037E-02
+2.6945047819774585E-02
+2.6937676333660371E-02
+2.6930291355723685E-02
+2.6922892898183403E-02
+2.6915480975987904E-02
+2.6908055602134096E-02
+2.6900616782251120E-02
+2.6893164520931226E-02
+2.6885698828922680E-02
+2.6878219720773075E-02
+2.6870727210134903E-02
+2.6863221309115313E-02
+2.6855702029051475E-02
+2.6848169378361285E-02
+2.6840623364780315E-02
+2.6833063998665401E-02
+2.6825491292475148E-02
+2.6817905258687123E-02
+2.6810305909693653E-02
+2.6802693257432605E-02
+2.6795067311067584E-02
+2.6787428078725847E-02
+2.6779775569363694E-02
+2.6772109792799689E-02
+2.6764430760810389E-02
+2.6756738490529633E-02
+2.6749032998844006E-02
+2.6741314292595807E-02
+2.6733582373673209E-02
+2.6725837249732723E-02
+2.6718078936184015E-02
+2.6710307448582472E-02
+2.6702522801016908E-02
+2.6694725006766687E-02
+2.6686914073495601E-02
+2.6679090005210442E-02
+2.6671252809970982E-02
+2.6663402502965637E-02
+2.6655539099555963E-02
+2.6647662612427622E-02
+2.6639773053292844E-02
+2.6631870431397493E-02
+2.6623954753891264E-02
+2.6616026029780970E-02
+2.6608084272429902E-02
+2.6600129495610445E-02
+2.6592161711814347E-02
+2.6584180932949768E-02
+2.6576187169415344E-02
+2.6568180429950721E-02
+2.6560160723923830E-02
+2.6552128062838441E-02
+2.6544082458744594E-02
+2.6536023925065523E-02
+2.6527952475905087E-02
+2.6519868122356249E-02
+2.6511770871221779E-02
+2.6503660730183325E-02
+2.6495537711745402E-02
+2.6487401829618860E-02
+2.6479253097526322E-02
+2.6471091529175442E-02
+2.6462917135913679E-02
+2.6454729924730472E-02
+2.6446529903039768E-02
+2.6438317083056807E-02
+2.6430091478587457E-02
+2.6421853103192540E-02
+2.6413601970205019E-02
+2.6405338091566418E-02
+2.6397061475869739E-02
+2.6388772131575783E-02
+2.6380470069794024E-02
+2.6372155302819979E-02
+2.6363827843464107E-02
+2.6355487705133608E-02
+2.6347134900408457E-02
+2.6338769439103828E-02
+2.6330391330636291E-02
+2.6322000585979950E-02
+2.6313597217022266E-02
+2.6305181236440312E-02
+2.6296752658090210E-02
+2.6288311494954454E-02
+2.6279857755841379E-02
+2.6271391448639478E-02
+2.6262912584117511E-02
+2.6254421175207852E-02
+2.6245917235763683E-02
+2.6237400781350066E-02
+2.6228871826396518E-02
+2.6220330377625320E-02
+2.6211776439290683E-02
+2.6203210021928654E-02
+2.6194631142147581E-02
+2.6186039815868520E-02
+2.6177436056588902E-02
+2.6168819876872824E-02
+2.6160191285000464E-02
+2.6151550287331848E-02
+2.6142896893827407E-02
+2.6134231118950562E-02
+2.6125552977461653E-02
+2.6116862484170437E-02
+2.6108159653433351E-02
+2.6099444494541126E-02
+2.6090717013704127E-02
+2.6081977219695289E-02
+2.6073225125496396E-02
+2.6064460744853191E-02
+2.6055684093272986E-02
+2.6046895186478680E-02
+2.6038094035583818E-02
+2.6029280648035221E-02
+2.6020455032470642E-02
+2.6011617200249332E-02
+2.6002767163625724E-02
+2.5993904938276559E-02
+2.5985030540959672E-02
+2.5976143982849597E-02
+2.5967245269379814E-02
+2.5958334407966896E-02
+2.5949411412258358E-02
+2.5940476297083456E-02
+2.5931529078203380E-02
+2.5922569771738988E-02
+2.5913598389320284E-02
+2.5904614936613116E-02
+2.5895619420623010E-02
+2.5886611854832861E-02
+2.5877592254232511E-02
+2.5868560633926122E-02
+2.5859517009048521E-02
+2.5850461391143505E-02
+2.5841393785574596E-02
+2.5832314198848735E-02
+2.5823222646165225E-02
+2.5814119145272020E-02
+2.5805003711484743E-02
+2.5795876358044506E-02
+2.5786737095931486E-02
+2.5777585931187494E-02
+2.5768422870320426E-02
+2.5759247927468504E-02
+2.5750061119863794E-02
+2.5740862463745410E-02
+2.5731651974253446E-02
+2.5722429663796703E-02
+2.5713195536827233E-02
+2.5703949597462611E-02
+2.5694691860273622E-02
+2.5685422345372209E-02
+2.5676141068967231E-02
+2.5666848041675440E-02
+2.5657543273757001E-02
+2.5648226775735319E-02
+2.5638898558289179E-02
+2.5629558633268067E-02
+2.5620207013346798E-02
+2.5610843711910400E-02
+2.5601468743616327E-02
+2.5592082122529187E-02
+2.5582683858828129E-02
+2.5573273961556040E-02
+2.5563852442697432E-02
+2.5554419316892122E-02
+2.5544974598384142E-02
+2.5535518300236006E-02
+2.5526050435082624E-02
+2.5516571013729620E-02
+2.5507080046209323E-02
+2.5497577543460454E-02
+2.5488063517481563E-02
+2.5478537981569994E-02
+2.5469000952975215E-02
+2.5459452448999931E-02
+2.5449892479642116E-02
+2.5440321050767271E-02
+2.5430738171563012E-02
+2.5421143856292600E-02
+2.5411538119904282E-02
+2.5401920978479358E-02
+2.5392292447975525E-02
+2.5382652538290335E-02
+2.5373001254842150E-02
+2.5363338606955256E-02
+2.5353664611814861E-02
+2.5343979286861391E-02
+2.5334282645769063E-02
+2.5324574700798488E-02
+2.5314855462614770E-02
+2.5305124940355393E-02
+2.5295383144808604E-02
+2.5285630091171477E-02
+2.5275865795099026E-02
+2.5266090270362754E-02
+2.5256303529805263E-02
+2.5246505584669544E-02
+2.5236696444222693E-02
+2.5226876118729244E-02
+2.5217044622287726E-02
+2.5207201969917391E-02
+2.5197348177733420E-02
+2.5187483262449396E-02
+2.5177607236015358E-02
+2.5167720102725000E-02
+2.5157821868478234E-02
+2.5147912549696116E-02
+2.5137992165606537E-02
+2.5128060732229042E-02
+2.5118118263030498E-02
+2.5108164769853145E-02
+2.5098200261286917E-02
+2.5088224746065389E-02
+2.5078238236325972E-02
+2.5068240745618500E-02
+2.5058232290269870E-02
+2.5048212889438457E-02
+2.5038182558866480E-02
+2.5028141304524441E-02
+2.5018089131745035E-02
+2.5008026054549385E-02
+2.4997952091250542E-02
+2.4987867257735896E-02
+2.4977771566649733E-02
+2.4967665029748939E-02
+2.4957547656345055E-02
+2.4947419455559162E-02
+2.4937280440892051E-02
+2.4927130628699851E-02
+2.4916970035261131E-02
+2.4906798676637903E-02
+2.4896616567440966E-02
+2.4886423715240354E-02
+2.4876220125790584E-02
+2.4866005810841928E-02
+2.4855780787203300E-02
+2.4845545071910856E-02
+2.4835298682154661E-02
+2.4825041633944125E-02
+2.4814773935306379E-02
+2.4804495591243852E-02
+2.4794206612930272E-02
+2.4783907018262163E-02
+2.4773596824276042E-02
+2.4763276044467201E-02
+2.4752944691621492E-02
+2.4742602777990678E-02
+2.4732250315539415E-02
+2.4721887316162875E-02
+2.4711513791662466E-02
+2.4701129754861231E-02
+2.4690735222641404E-02
+2.4680330212429980E-02
+2.4669914735773485E-02
+2.4659488800160848E-02
+2.4649052415814700E-02
+2.4638605598094668E-02
+2.4628148362812713E-02
+2.4617680725283728E-02
+2.4607202700515474E-02
+2.4596714300779705E-02
+2.4586215535895749E-02
+2.4575706416639406E-02
+2.4565186956281026E-02
+2.4554657168790423E-02
+2.4544117070534156E-02
+2.4533566678779924E-02
+2.4523006006417675E-02
+2.4512435061265308E-02
+2.4501853852516502E-02
+2.4491262394621145E-02
+2.4480660703146306E-02
+2.4470048794436525E-02
+2.4459426685220626E-02
+2.4448794388987623E-02
+2.4438151914371081E-02
+2.4427499270383717E-02
+2.4416836469331266E-02
+2.4406163524689658E-02
+2.4395480454140028E-02
+2.4384787278430499E-02
+2.4374084012881873E-02
+2.4363370662107281E-02
+2.4352647231319868E-02
+2.4341913736169358E-02
+2.4331170195886005E-02
+2.4320416627443067E-02
+2.4309653045649929E-02
+2.4298879463593676E-02
+2.4288095890176994E-02
+2.4277302334186755E-02
+2.4266498808615169E-02
+2.4255685328456868E-02
+2.4244861910176840E-02
+2.4234028572037696E-02
+2.4223185330222944E-02
+2.4212332193470767E-02
+2.4201469169394356E-02
+2.4190596270506463E-02
+2.4179713512310248E-02
+2.4168820910967337E-02
+2.4157918483621862E-02
+2.4147006245964806E-02
+2.4136084206673084E-02
+2.4125152372834229E-02
+2.4114210757819509E-02
+2.4103259379944973E-02
+2.4092298256671699E-02
+2.4081327403404719E-02
+2.4070346834496253E-02
+2.4059356559419660E-02
+2.4048356585983005E-02
+2.4037346926282011E-02
+2.4026327596774141E-02
+2.4015298614183354E-02
+2.4004259995428920E-02
+2.3993211756714469E-02
+2.3982153907983656E-02
+2.3971086456179371E-02
+2.3960009412840405E-02
+2.3948922795563082E-02
+2.3937826622160801E-02
+2.3926720909740361E-02
+2.3915605674688832E-02
+2.3904480926854040E-02
+2.3893346671901031E-02
+2.3882202919905428E-02
+2.3871049688561859E-02
+2.3859886996051630E-02
+2.3848714859313950E-02
+2.3837533294609147E-02
+2.3826342313074924E-02
+2.3815141921569232E-02
+2.3803932130174031E-02
+2.3792712956428121E-02
+2.3781484418531108E-02
+2.3770246532418993E-02
+2.3758999312994643E-02
+2.3747742772068880E-02
+2.3736476918113158E-02
+2.3725201761628588E-02
+2.3713917319562867E-02
+2.3702623609841180E-02
+2.3691320648584660E-02
+2.3680008450895913E-02
+2.3668687029123840E-02
+2.3657356391784245E-02
+2.3646016548796868E-02
+2.3634667516700986E-02
+2.3623309313524795E-02
+2.3611941955600839E-02
+2.3600565458066412E-02
+2.3589179833772130E-02
+2.3577785091465048E-02
+2.3566381240639356E-02
+2.3554968296992627E-02
+2.3543546278229650E-02
+2.3532115201604056E-02
+2.3520675083956086E-02
+2.3509225939347053E-02
+2.3497767775271305E-02
+2.3486300599334795E-02
+2.3474824426721736E-02
+2.3463339275858686E-02
+2.3451845163929758E-02
+2.3440342106673315E-02
+2.3428830118676209E-02
+2.3417309211152142E-02
+2.3405779394775176E-02
+2.3394240681420882E-02
+2.3382693083711367E-02
+2.3371136617783460E-02
+2.3359571304990393E-02
+2.3347997164555497E-02
+2.3336414204951229E-02
+2.3324822432262755E-02
+2.3313221858747832E-02
+2.3301612501209674E-02
+2.3289994377043360E-02
+2.3278367504585489E-02
+2.3266731900796828E-02
+2.3255087574252369E-02
+2.3243434530924419E-02
+2.3231772783938610E-02
+2.3220102353213604E-02
+2.3208423257475578E-02
+2.3196735511736816E-02
+2.3185039130016637E-02
+2.3173334123173562E-02
+2.3161620500711636E-02
+2.3149898275879949E-02
+2.3138167466524487E-02
+2.3126428090049989E-02
+2.3114680161423005E-02
+2.3102923694929247E-02
+2.3091158703076809E-02
+2.3079385197315842E-02
+2.3067603190170306E-02
+2.3055812695889823E-02
+2.3044013729451432E-02
+2.3032206308429549E-02
+2.3020390450802453E-02
+2.3008566169480202E-02
+2.2996733473417463E-02
+2.2984892373690110E-02
+2.2973042885975542E-02
+2.2961185026718192E-02
+2.2949318813564840E-02
+2.2937444264406560E-02
+2.2925561392261748E-02
+2.2913670205227055E-02
+2.2901770713040878E-02
+2.2889862930503411E-02
+2.2877946873701933E-02
+2.2866022562325672E-02
+2.2854090017662188E-02
+2.2842149253796244E-02
+2.2830200275404677E-02
+2.2818243089172650E-02
+2.2806277711358850E-02
+2.2794304160409364E-02
+2.2782322454984422E-02
+2.2770332613830796E-02
+2.2758334651762968E-02
+2.2746328576947496E-02
+2.2734314398086083E-02
+2.2722292129594916E-02
+2.2710261787740074E-02
+2.2698223390770773E-02
+2.2686176958568491E-02
+2.2674122506871838E-02
+2.2662060042162455E-02
+2.2649989571081768E-02
+2.2637911109424494E-02
+2.2625824676643636E-02
+2.2613730291508261E-02
+2.2601627972038463E-02
+2.2589517733361930E-02
+2.2577399582278709E-02
+2.2565273525154337E-02
+2.2553139578013210E-02
+2.2540997761935605E-02
+2.2528848095902894E-02
+2.2516690595918595E-02
+2.2504525276422150E-02
+2.2492352146618284E-02
+2.2480171214850991E-02
+2.2467982494700219E-02
+2.2455786003350978E-02
+2.2443581758922783E-02
+2.2431369781092156E-02
+2.2419150087793004E-02
+2.2406922687009979E-02
+2.2394687583939983E-02
+2.2382444792174473E-02
+2.2370194332749841E-02
+2.2357936225508409E-02
+2.2345670486864196E-02
+2.2333397131966620E-02
+2.2321116170525190E-02
+2.2308827610084903E-02
+2.2296531463472217E-02
+2.2284227749566864E-02
+2.2271916487151135E-02
+2.2259597693665908E-02
+2.2247271385787609E-02
+2.2234937575293975E-02
+2.2222596271250974E-02
+2.2210247485327905E-02
+2.2197891233089528E-02
+2.2185527531050249E-02
+2.2173156398382649E-02
+2.2160777854410469E-02
+2.2148391910918070E-02
+2.2135998574213042E-02
+2.2123597854854259E-02
+2.2111189771818151E-02
+2.2098774344531977E-02
+2.2086351589589499E-02
+2.2073921522466459E-02
+2.2061484155936929E-02
+2.2049039500229642E-02
+2.2036587567289580E-02
+2.2024128373647752E-02
+2.2011661936601250E-02
+2.1999188273853325E-02
+2.1986707403171008E-02
+2.1974219338165322E-02
+2.1961724087385590E-02
+2.1949221660976837E-02
+2.1936712075465443E-02
+2.1924195348685619E-02
+2.1911671498164979E-02
+2.1899140541203146E-02
+2.1886602492360456E-02
+2.1874057361885316E-02
+2.1861505160606844E-02
+2.1848945903665096E-02
+2.1836379607442644E-02
+2.1823806288821315E-02
+2.1811225965060143E-02
+2.1798638651733399E-02
+2.1786044360935026E-02
+2.1773443104546281E-02
+2.1760834895746255E-02
+2.1748219748365296E-02
+2.1735597680093244E-02
+2.1722968712490236E-02
+2.1710332863414058E-02
+2.1697690140251635E-02
+2.1685040549690383E-02
+2.1672384107091686E-02
+2.1659720832059332E-02
+2.1647050743304187E-02
+2.1634373858341195E-02
+2.1621690192830029E-02
+2.1608999756035543E-02
+2.1596302556373560E-02
+2.1583598609056995E-02
+2.1570887933634261E-02
+2.1558170548224374E-02
+2.1545446468426283E-02
+2.1532715709090291E-02
+2.1519978282618393E-02
+2.1507234200789635E-02
+2.1494483477304552E-02
+2.1481726127462963E-02
+2.1468962167858856E-02
+2.1456191617819972E-02
+2.1443414495854837E-02
+2.1430630812782184E-02
+2.1417840576520089E-02
+2.1405043799538351E-02
+2.1392240499181692E-02
+2.1379430693405383E-02
+2.1366614401243603E-02
+2.1353791641115595E-02
+2.1340962424225722E-02
+2.1328126758096894E-02
+2.1315284655008516E-02
+2.1302436133850872E-02
+2.1289581213586522E-02
+2.1276719911588787E-02
+2.1263852244536238E-02
+2.1250978225202877E-02
+2.1238097863716450E-02
+2.1225211171929804E-02
+2.1212318164877699E-02
+2.1199418858683507E-02
+2.1186513273400320E-02
+2.1173601429926144E-02
+2.1160683341279355E-02
+2.1147759013539973E-02
+2.1134828456070665E-02
+2.1121891686492662E-02
+2.1108948723799995E-02
+2.1095999588320369E-02
+2.1083044300696255E-02
+2.1070082874058944E-02
+2.1057115312994819E-02
+2.1044141625306770E-02
+2.1031161830230075E-02
+2.1018175948913004E-02
+2.1005183999599171E-02
+2.0992185998853587E-02
+2.0979181960562119E-02
+2.0966171894698828E-02
+2.0953155812119963E-02
+2.0940133728645272E-02
+2.0927105661474592E-02
+2.0914071629067148E-02
+2.0901031650764287E-02
+2.0887985742095799E-02
+2.0874933911267247E-02
+2.0861876167004276E-02
+2.0848812525534246E-02
+2.0835743005696478E-02
+2.0822667626596153E-02
+2.0809586407576509E-02
+2.0796499364520306E-02
+2.0783406504602482E-02
+2.0770307834867816E-02
+2.0757203371547725E-02
+2.0744093135057522E-02
+2.0730977145191839E-02
+2.0717855420967154E-02
+2.0704727978734211E-02
+2.0691594826114618E-02
+2.0678455969757831E-02
+2.0665311425175612E-02
+2.0652161213154458E-02
+2.0639005353251413E-02
+2.0625843862986756E-02
+2.0612676758219879E-02
+2.0599504048193072E-02
+2.0586325740774167E-02
+2.0573141850925267E-02
+2.0559952399093057E-02
+2.0546757404748695E-02
+2.0533556885080729E-02
+2.0520350856190431E-02
+2.0507139329325259E-02
+2.0493922314095258E-02
+2.0480699823880337E-02
+2.0467471875829642E-02
+2.0454238487659003E-02
+2.0440999678167739E-02
+2.0427755465580608E-02
+2.0414505861951177E-02
+2.0401250876402266E-02
+2.0387990521312658E-02
+2.0374724813283129E-02
+2.0361453769990955E-02
+2.0348177411967091E-02
+2.0334895759577584E-02
+2.0321608824014820E-02
+2.0308316610701121E-02
+2.0295019130367353E-02
+2.0281716402763467E-02
+2.0268408448290021E-02
+2.0255095286360845E-02
+2.0241776935656677E-02
+2.0228453407582784E-02
+2.0215124707575329E-02
+2.0201790845918846E-02
+2.0188451843857775E-02
+2.0175107723352129E-02
+2.0161758501655584E-02
+2.0148404194037416E-02
+2.0135044812836660E-02
+2.0121680367285635E-02
+2.0108310868959135E-02
+2.0094936336607989E-02
+2.0081556790101925E-02
+2.0068172247855006E-02
+2.0054782727426664E-02
+2.0041388242188096E-02
+2.0027988799773279E-02
+2.0014584409724735E-02
+2.0001175090514463E-02
+1.9987760862604377E-02
+1.9974341744535901E-02
+1.9960917753514114E-02
+1.9947488903758592E-02
+1.9934055204217961E-02
+1.9920616664881863E-02
+1.9907173303902376E-02
+1.9893725141903545E-02
+1.9880272196783885E-02
+1.9866814484045724E-02
+1.9853352017874137E-02
+1.9839884809573129E-02
+1.9826412870602179E-02
+1.9812936216356426E-02
+1.9799454863929936E-02
+1.9785968831152405E-02
+1.9772478136677728E-02
+1.9758982797471947E-02
+1.9745482825155241E-02
+1.9731978230592362E-02
+1.9718469027263378E-02
+1.9704955230165105E-02
+1.9691436857405539E-02
+1.9677913931615949E-02
+1.9664386472822155E-02
+1.9650854488820039E-02
+1.9637317984906127E-02
+1.9623776975298487E-02
+1.9610231480659216E-02
+1.9596681521255547E-02
+1.9583127116332408E-02
+1.9569568283369535E-02
+1.9556005030703972E-02
+1.9542437363945096E-02
+1.9528865297246220E-02
+1.9515288852733056E-02
+1.9501708051343984E-02
+1.9488122910295794E-02
+1.9474533445594459E-02
+1.9460939668433926E-02
+1.9447341587947926E-02
+1.9433739217466755E-02
+1.9420132575384566E-02
+1.9406521680409922E-02
+1.9392906551296166E-02
+1.9379287206244086E-02
+1.9365663657602804E-02
+1.9352035914296638E-02
+1.9338403988294180E-02
+1.9324767896374825E-02
+1.9311127656218893E-02
+1.9297483287654342E-02
+1.9283834810665122E-02
+1.9270182238674372E-02
+1.9256525580076230E-02
+1.9242864846053892E-02
+1.9229200053710028E-02
+1.9215531220942345E-02
+1.9201858366116441E-02
+1.9188181507603465E-02
+1.9174500659982194E-02
+1.9160815834066883E-02
+1.9147127041459849E-02
+1.9133434296298688E-02
+1.9119737613912884E-02
+1.9106037015909995E-02
+1.9092332526706612E-02
+1.9078624161664622E-02
+1.9064911924520225E-02
+1.9051195821612153E-02
+1.9037475871232164E-02
+1.9023752094298976E-02
+1.9010024511423258E-02
+1.8996293142943703E-02
+1.8982558003610022E-02
+1.8968819098902721E-02
+1.8955076436015288E-02
+1.8941330034454099E-02
+1.8927579917107619E-02
+1.8913826102287513E-02
+1.8900068604552647E-02
+1.8886307437833181E-02
+1.8872542614936570E-02
+1.8858774148757699E-02
+1.8845002053694718E-02
+1.8831226344849312E-02
+1.8817447040118580E-02
+1.8803664160348767E-02
+1.8789877723620965E-02
+1.8776087739703701E-02
+1.8762294217482069E-02
+1.8748497171051447E-02
+1.8734696617263479E-02
+1.8720892575319191E-02
+1.8707085067592884E-02
+1.8693274113537946E-02
+1.8679459720591186E-02
+1.8665641894074533E-02
+1.8651820648594421E-02
+1.8637996005012564E-02
+1.8624167983549593E-02
+1.8610336603083998E-02
+1.8596501880816754E-02
+1.8582663826069389E-02
+1.8568822446032227E-02
+1.8554977754839073E-02
+1.8541129772677262E-02
+1.8527278519530482E-02
+1.8513424014440973E-02
+1.8499566275197086E-02
+1.8485705311836513E-02
+1.8471841131336219E-02
+1.8457973746816812E-02
+1.8444103178319314E-02
+1.8430229445931954E-02
+1.8416352568758364E-02
+1.8402472564944868E-02
+1.8388589445315351E-02
+1.8374703216744989E-02
+1.8360813891373909E-02
+1.8346921489052408E-02
+1.8333026029962798E-02
+1.8319127533163192E-02
+1.8305226016953731E-02
+1.8291321493281186E-02
+1.8277413969559425E-02
+1.8263503456664824E-02
+1.8249589972200043E-02
+1.8235673534965777E-02
+1.8221754166245933E-02
+1.8207831887751918E-02
+1.8193906712689435E-02
+1.8179978646382110E-02
+1.8166047697605964E-02
+1.8152113884430880E-02
+1.8138177226374591E-02
+1.8124237743202584E-02
+1.8110295454638613E-02
+1.8096350375406824E-02
+1.8082402514248939E-02
+1.8068451881343126E-02
+1.8054498492750898E-02
+1.8040542365946041E-02
+1.8026583520515581E-02
+1.8012621977206499E-02
+1.7998657751546496E-02
+1.7984690850960983E-02
+1.7970721283939797E-02
+1.7956749066720085E-02
+1.7942774217826460E-02
+1.7928796758102335E-02
+1.7914816710121791E-02
+1.7900834090460584E-02
+1.7886848903513334E-02
+1.7872861154381268E-02
+1.7858870861007573E-02
+1.7844878045950162E-02
+1.7830882729715104E-02
+1.7816884930770598E-02
+1.7802884664639779E-02
+1.7788881939263566E-02
+1.7774876762434135E-02
+1.7760869150762158E-02
+1.7746859125073754E-02
+1.7732846704649544E-02
+1.7718831906766611E-02
+1.7704814747018988E-02
+1.7690795235517396E-02
+1.7676773381622386E-02
+1.7662749199857060E-02
+1.7648722708018223E-02
+1.7634693925690881E-02
+1.7620662875326321E-02
+1.7606629576917540E-02
+1.7592594037566116E-02
+1.7578556261140136E-02
+1.7564516260858448E-02
+1.7550474057554586E-02
+1.7536429671957739E-02
+1.7522383124095094E-02
+1.7508334432560172E-02
+1.7494283607392809E-02
+1.7480230655511502E-02
+1.7466175589750291E-02
+1.7452118429165477E-02
+1.7438059192995167E-02
+1.7423997900155332E-02
+1.7409934568754996E-02
+1.7395869210363579E-02
+1.7381801833280492E-02
+1.7367732450133549E-02
+1.7353661079457555E-02
+1.7339587740209141E-02
+1.7325512451349105E-02
+1.7311435231340232E-02
+1.7297356092528395E-02
+1.7283275043198858E-02
+1.7269192095178885E-02
+1.7255107266658829E-02
+1.7241020576555334E-02
+1.7226932044191220E-02
+1.7212841688644891E-02
+1.7198749522273998E-02
+1.7184655551626918E-02
+1.7170559787129669E-02
+1.7156462248577323E-02
+1.7142362956671951E-02
+1.7128261929325705E-02
+1.7114159183178178E-02
+1.7100054732003361E-02
+1.7085948586377523E-02
+1.7071840758045763E-02
+1.7057731262827343E-02
+1.7043620117638714E-02
+1.7029507342459223E-02
+1.7015392958817665E-02
+1.7001276981480816E-02
+1.6987159415425526E-02
+1.6973040267909741E-02
+1.6958919558586059E-02
+1.6944797310005200E-02
+1.6930673541291099E-02
+1.6916548269097414E-02
+1.6902421507618649E-02
+1.6888293266534075E-02
+1.6874163555969244E-02
+1.6860032391205728E-02
+1.6845899789379816E-02
+1.6831765769682691E-02
+1.6817630353188312E-02
+1.6803493557063325E-02
+1.6789355388680038E-02
+1.6775215855225921E-02
+1.6761074973483961E-02
+1.6746932764492954E-02
+1.6732789247607363E-02
+1.6718644440153224E-02
+1.6704498357584061E-02
+1.6690351009621036E-02
+1.6676202405414859E-02
+1.6662052560252258E-02
+1.6647901493019819E-02
+1.6633749222577668E-02
+1.6619595767674796E-02
+1.6605441145589740E-02
+1.6591285367212518E-02
+1.6577128441903930E-02
+1.6562970382203872E-02
+1.6548811203092435E-02
+1.6534650922605761E-02
+1.6520489564780708E-02
+1.6506327151914774E-02
+1.6492163691876931E-02
+1.6477999187694187E-02
+1.6463833651544340E-02
+1.6449667104593071E-02
+1.6435499567705222E-02
+1.6421331059956915E-02
+1.6407161599167479E-02
+1.6392991195431462E-02
+1.6378819855310738E-02
+1.6364647591732184E-02
+1.6350474425711244E-02
+1.6336300377558049E-02
+1.6322125463285764E-02
+1.6307949697815256E-02
+1.6293773094384865E-02
+1.6279595665197728E-02
+1.6265417423667543E-02
+1.6251238385219236E-02
+1.6237058565996190E-02
+1.6222877984640321E-02
+1.6208696660218600E-02
+1.6194514606823373E-02
+1.6180331834528269E-02
+1.6166148354958162E-02
+1.6151964183305251E-02
+1.6137779335812136E-02
+1.6123593832457147E-02
+1.6109407694388247E-02
+1.6095220935609542E-02
+1.6081033562664385E-02
+1.6066845584840193E-02
+1.6052657020160711E-02
+1.6038467888116671E-02
+1.6024278207647798E-02
+1.6010087997317783E-02
+1.5995897271730456E-02
+1.5981706040154881E-02
+1.5967514312749793E-02
+1.5953322104442686E-02
+1.5939129431510348E-02
+1.5924936312990530E-02
+1.5910742769709607E-02
+1.5896548818097090E-02
+1.5882354466836918E-02
+1.5868159725120862E-02
+1.5853964608644484E-02
+1.5839769135205777E-02
+1.5825573323588277E-02
+1.5811377193409096E-02
+1.5797180760719582E-02
+1.5782984033351519E-02
+1.5768787019176549E-02
+1.5754589734137212E-02
+1.5740392197540313E-02
+1.5726194428601761E-02
+1.5711996446422433E-02
+1.5697798267545301E-02
+1.5683599900790504E-02
+1.5669401354153584E-02
+1.5655202641541927E-02
+1.5641003780138128E-02
+1.5626804789225963E-02
+1.5612605691058342E-02
+1.5598406505241134E-02
+1.5584207239746867E-02
+1.5570007900174191E-02
+1.5555808499648703E-02
+1.5541609056643053E-02
+1.5527409589934172E-02
+1.5513210118654069E-02
+1.5499010660597480E-02
+1.5484811226092363E-02
+1.5470611823250805E-02
+1.5456412466208434E-02
+1.5442213174623510E-02
+1.5428013967294612E-02
+1.5413814860416885E-02
+1.5399615869376037E-02
+1.5385417006479260E-02
+1.5371218282720004E-02
+1.5357019710991768E-02
+1.5342821306442973E-02
+1.5328623085717004E-02
+1.5314425069887141E-02
+1.5300227279903766E-02
+1.5286029726339327E-02
+1.5271832413822182E-02
+1.5257635353264036E-02
+1.5243438565301184E-02
+1.5229242070758351E-02
+1.5215045887711718E-02
+1.5200850033135037E-02
+1.5186654518811243E-02
+1.5172459352620425E-02
+1.5158264545314198E-02
+1.5144070113554493E-02
+1.5129876075146516E-02
+1.5115682450484365E-02
+1.5101489260536845E-02
+1.5087296518309048E-02
+1.5073104229041118E-02
+1.5058912401440683E-02
+1.5044721054142030E-02
+1.5030530207146241E-02
+1.5016339878562837E-02
+1.5002150085509404E-02
+1.4987960841837407E-02
+1.4973772157294151E-02
+1.4959584042442615E-02
+1.4945396511598317E-02
+1.4931209580358379E-02
+1.4917023269463725E-02
+1.4902837602735341E-02
+1.4888652595828921E-02
+1.4874468251013670E-02
+1.4860284572598694E-02
+1.4846101580157209E-02
+1.4831919297412489E-02
+1.4817737743315500E-02
+1.4803556932966488E-02
+1.4789376879879973E-02
+1.4775197594430084E-02
+1.4761019087147779E-02
+1.4746841372074793E-02
+1.4732664464746734E-02
+1.4718488383991644E-02
+1.4704313152047569E-02
+1.4690138786692116E-02
+1.4675965292746486E-02
+1.4661792674311364E-02
+1.4647620948663882E-02
+1.4633450139687820E-02
+1.4619280266984447E-02
+1.4605111344344793E-02
+1.4590943384883906E-02
+1.4576776400709942E-02
+1.4562610403794595E-02
+1.4548445407303590E-02
+1.4534281425225584E-02
+1.4520118474205370E-02
+1.4505956575479146E-02
+1.4491795748779748E-02
+1.4477636004001213E-02
+1.4463477348253042E-02
+1.4449319793805289E-02
+1.4435163357354071E-02
+1.4421008056569238E-02
+1.4406853911009005E-02
+1.4392700939273832E-02
+1.4378549151714191E-02
+1.4364398555446863E-02
+1.4350249162763288E-02
+1.4336100991684272E-02
+1.4321954060526483E-02
+1.4307808387605401E-02
+1.4293663990496400E-02
+1.4279520879891972E-02
+1.4265379062847481E-02
+1.4251238551442370E-02
+1.4237099364978729E-02
+1.4222961522786721E-02
+1.4208825042084525E-02
+1.4194689939165308E-02
+1.4180556225122111E-02
+1.4166423907416218E-02
+1.4152292997488037E-02
+1.4138163514297891E-02
+1.4124035477230597E-02
+1.4109908903561681E-02
+1.4095783809637448E-02
+1.4081660207459721E-02
+1.4067538105077885E-02
+1.4053417512980651E-02
+1.4039298447939556E-02
+1.4025180927839201E-02
+1.4011064971854215E-02
+1.3996950599542922E-02
+1.3982837824549937E-02
+1.3968726653564552E-02
+1.3954617094959968E-02
+1.3940509163823214E-02
+1.3926402876912793E-02
+1.3912298254223696E-02
+1.3898195317506495E-02
+1.3884094081632702E-02
+1.3869994550981009E-02
+1.3855896731744345E-02
+1.3841800641734714E-02
+1.3827706301699837E-02
+1.3813613729541385E-02
+1.3799522941007968E-02
+1.3785433950061904E-02
+1.3771346767233886E-02
+1.3757261403113608E-02
+1.3743177870970957E-02
+1.3729096185219601E-02
+1.3715016364206583E-02
+1.3700938430084464E-02
+1.3686862400603610E-02
+1.3672788281652103E-02
+1.3658716078371821E-02
+1.3644645805038619E-02
+1.3630577480272563E-02
+1.3616511123270279E-02
+1.3602446753917283E-02
+1.3588384389200065E-02
+1.3574324035922212E-02
+1.3560265699426583E-02
+1.3546209393183047E-02
+1.3532155135690881E-02
+1.3518102945875276E-02
+1.3504052843230925E-02
+1.3490004845388780E-02
+1.3475958961101035E-02
+1.3461915196917605E-02
+1.3447873565225811E-02
+1.3433834083087931E-02
+1.3419796768212713E-02
+1.3405761639398318E-02
+1.3391728714183810E-02
+1.3377698001389070E-02
+1.3363669506772639E-02
+1.3349643243288405E-02
+1.3335619231323115E-02
+1.3321597490157860E-02
+1.3307578035039364E-02
+1.3293560880216970E-02
+1.3279546037382779E-02
+1.3265533516975070E-02
+1.3251523331094072E-02
+1.3237515494067724E-02
+1.3223510021547433E-02
+1.3209506933527895E-02
+1.3195506250220986E-02
+1.3181507982372479E-02
+1.3167512134550755E-02
+1.3153518716029268E-02
+1.3139527744398850E-02
+1.3125539238326604E-02
+1.3111553217728014E-02
+1.3097569702403430E-02
+1.3083588703344844E-02
+1.3069610224061216E-02
+1.3055634272290602E-02
+1.3041660865864944E-02
+1.3027690023907891E-02
+1.3013721764914785E-02
+1.2999756106921138E-02
+1.2985793062456279E-02
+1.2971832638004074E-02
+1.2957874842493661E-02
+1.2943919693082345E-02
+1.2929967208373928E-02
+1.2916017406204617E-02
+1.2902070303897359E-02
+1.2888125914064475E-02
+1.2874184242641126E-02
+1.2860245297153074E-02
+1.2846309093499151E-02
+1.2832375649792562E-02
+1.2818444985796899E-02
+1.2804517122369451E-02
+1.2790592073873093E-02
+1.2776669842659941E-02
+1.2762750432473390E-02
+1.2748833861427562E-02
+1.2734920152211957E-02
+1.2721009323390119E-02
+1.2707101389776800E-02
+1.2693196364167301E-02
+1.2679294254805741E-02
+1.2665395070063689E-02
+1.2651498824118756E-02
+1.2637605533741911E-02
+1.2623715216794675E-02
+1.2609827892399070E-02
+1.2595943576763802E-02
+1.2582062276535116E-02
+1.2568183997299530E-02
+1.2554308753168647E-02
+1.2540436563154744E-02
+1.2526567445617883E-02
+1.2512701417842867E-02
+1.2498838495260811E-02
+1.2484978685741596E-02
+1.2471121995542501E-02
+1.2457268436827531E-02
+1.2443418026185857E-02
+1.2429570781701899E-02
+1.2415726724192113E-02
+1.2401885872567422E-02
+1.2388048232935159E-02
+1.2374213807269951E-02
+1.2360382607030509E-02
+1.2346554652826851E-02
+1.2332729964718535E-02
+1.2318908560378993E-02
+1.2305090456002006E-02
+1.2291275659177875E-02
+1.2277464173660865E-02
+1.2263656010815600E-02
+1.2249851191504424E-02
+1.2236049735627091E-02
+1.2222251657731140E-02
+1.2208456971008239E-02
+1.2194665686398919E-02
+1.2180877813489477E-02
+1.2167093363779923E-02
+1.2153312351884564E-02
+1.2139534793437014E-02
+1.2125760707464310E-02
+1.2111990113403233E-02
+1.2098223021786142E-02
+1.2084459436090763E-02
+1.2070699364531990E-02
+1.2056942825686239E-02
+1.2043189838966704E-02
+1.2029440420871423E-02
+1.2015694586631993E-02
+1.2001952347830577E-02
+1.1988213712308769E-02
+1.1974478689687085E-02
+1.1960747294983788E-02
+1.1947019544266508E-02
+1.1933295454642910E-02
+1.1919575043637673E-02
+1.1905858324461605E-02
+1.1892145304606937E-02
+1.1878435992781225E-02
+1.1864730403629623E-02
+1.1851028553257793E-02
+1.1837330458849377E-02
+1.1823636138242877E-02
+1.1809945605160953E-02
+1.1796258866238443E-02
+1.1782575928746940E-02
+1.1768896806559173E-02
+1.1755221515690974E-02
+1.1741550073995331E-02
+1.1727882500860888E-02
+1.1714218811469531E-02
+1.1700559011449820E-02
+1.1686903106279291E-02
+1.1673251109115252E-02
+1.1659603036312022E-02
+1.1645958905666769E-02
+1.1632318736539169E-02
+1.1618682544941226E-02
+1.1605050336715338E-02
+1.1591422116742153E-02
+1.1577797898295970E-02
+1.1564177699162003E-02
+1.1550561537338348E-02
+1.1536949431062758E-02
+1.1523341395964061E-02
+1.1509737437259800E-02
+1.1496137558330042E-02
+1.1482541772167006E-02
+1.1468950098456415E-02
+1.1455362555773466E-02
+1.1441779160409137E-02
+1.1428199927031035E-02
+1.1414624862974402E-02
+1.1401053973479111E-02
+1.1387487270153119E-02
+1.1373924770345361E-02
+1.1360366491821584E-02
+1.1346812452854909E-02
+1.1333262670397462E-02
+1.1319717151356313E-02
+1.1306175898498815E-02
+1.1292638922517386E-02
+1.1279106243335406E-02
+1.1265577879997411E-02
+1.1252053847100558E-02
+1.1238534158079620E-02
+1.1225018823590033E-02
+1.1211507852718657E-02
+1.1198001255841835E-02
+1.1184499045301513E-02
+1.1171001234894066E-02
+1.1157507843918200E-02
+1.1144018892428040E-02
+1.1130534390426109E-02
+1.1117054340488059E-02
+1.1103578750126179E-02
+1.1090107636848673E-02
+1.1076641019058676E-02
+1.1063178913658397E-02
+1.1049721336749797E-02
+1.1036268298715591E-02
+1.1022819804462635E-02
+1.1009375862116855E-02
+1.0995936488640969E-02
+1.0982501702145472E-02
+1.0969071518785244E-02
+1.0955645953674284E-02
+1.0942225017534946E-02
+1.0928808715664479E-02
+1.0915397055641516E-02
+1.0901990053983835E-02
+1.0888587728913110E-02
+1.0875190096460765E-02
+1.0861797171278411E-02
+1.0848408965257645E-02
+1.0835025485901978E-02
+1.0821646741464777E-02
+1.0808272745430529E-02
+1.0794903512854406E-02
+1.0781539059983889E-02
+1.0768179403986326E-02
+1.0754824558380692E-02
+1.0741474529016392E-02
+1.0728129322041405E-02
+1.0714788951352144E-02
+1.0701453433782425E-02
+1.0688122785990635E-02
+1.0674797024446981E-02
+1.0661476163132627E-02
+1.0648160209204456E-02
+1.0634849169187523E-02
+1.0621543054072284E-02
+1.0608241877158326E-02
+1.0594945654829232E-02
+1.0581654407507470E-02
+1.0568368152441035E-02
+1.0555086894229933E-02
+1.0541810635328816E-02
+1.0528539387046178E-02
+1.0515273166459461E-02
+1.0502011991134187E-02
+1.0488755879300753E-02
+1.0475504847168481E-02
+1.0462258900698579E-02
+1.0449018043083496E-02
+1.0435782283927381E-02
+1.0422551638240190E-02
+1.0409326122739681E-02
+1.0396105757577162E-02
+1.0382890561376630E-02
+1.0369680539560741E-02
+1.0356475692515039E-02
+1.0343276029553984E-02
+1.0330081569702668E-02
+1.0316892331481703E-02
+1.0303708330487838E-02
+1.0290529581063163E-02
+1.0277356091016276E-02
+1.0264187864778628E-02
+1.0251024911849484E-02
+1.0237867248879441E-02
+1.0224714892777959E-02
+1.0211567859368526E-02
+1.0198426163729991E-02
+1.0185289814804373E-02
+1.0172158817314834E-02
+1.0159033179506775E-02
+1.0145912916192977E-02
+1.0132798043116779E-02
+1.0119688577255667E-02
+1.0106584535623585E-02
+1.0093485928205387E-02
+1.0080392758701576E-02
+1.0067305034558443E-02
+1.0054222772688297E-02
+1.0041145990815809E-02
+1.0028074702598864E-02
+1.0015008919870881E-02
+1.0001948652805331E-02
+9.9888939096664364E-03
+9.9758446998653143E-03
+9.9628010367749341E-03
+9.9497629346887856E-03
+9.9367304092764924E-03
+9.9237034769067058E-03
+9.9106821493616607E-03
+9.8976664315606876E-03
+9.8846563296613090E-03
+9.8716518574289442E-03
+9.8586530306484128E-03
+9.8456598652298197E-03
+9.8326723771448975E-03
+9.8196905786100200E-03
+9.8067144745417195E-03
+9.7937440703984874E-03
+9.7807793794802058E-03
+9.7678204178388139E-03
+9.7548672012696958E-03
+9.7419197453141402E-03
+9.7289780626523843E-03
+9.7160421586870716E-03
+9.7031120386198173E-03
+9.6901877149293287E-03
+9.6772692034760091E-03
+9.6643565200210980E-03
+9.6514496801803525E-03
+9.6385486973151781E-03
+9.6256535771695757E-03
+9.6127643244939727E-03
+9.5998809506868607E-03
+9.5870034711855023E-03
+9.5741319016336892E-03
+9.5612662579133527E-03
+9.5484065541488923E-03
+9.5355527963863502E-03
+9.5227049887982515E-03
+9.5098631420283079E-03
+9.4970272718079094E-03
+9.4841973938001155E-03
+9.4713735232418786E-03
+9.4585556741728985E-03
+9.4457438536410983E-03
+9.4329380662671759E-03
+9.4201383216956543E-03
+9.4073446346729771E-03
+9.3945570203739746E-03
+9.3817754945226938E-03
+9.3690000720346028E-03
+9.3562307603072686E-03
+9.3434675631282570E-03
+9.3307104892277129E-03
+9.3179595538407847E-03
+9.3052147725376597E-03
+9.2924761605064927E-03
+9.2797437323005969E-03
+9.2670174960753204E-03
+9.2542974558962564E-03
+9.2415836196844108E-03
+9.2288760020191093E-03
+9.2161746181210324E-03
+9.2034794831897301E-03
+9.1907906120758630E-03
+9.1781080137995387E-03
+9.1654316925158259E-03
+9.1527616553678127E-03
+9.1400979164559075E-03
+9.1274404908080840E-03
+9.1147893934075096E-03
+9.1021446390311053E-03
+9.0895062374721173E-03
+9.0768741931463535E-03
+9.0642485125697371E-03
+9.0516292091927276E-03
+9.0390162977580079E-03
+9.0264097932721572E-03
+9.0138097107825433E-03
+9.0012160607914841E-03
+8.9886288474647063E-03
+8.9760480764339359E-03
+8.9634737609010588E-03
+8.9509059159009041E-03
+8.9383445562461056E-03
+8.9257896965585330E-03
+8.9132413478917524E-03
+8.9006995148481777E-03
+8.8881642027070912E-03
+8.8756354238588124E-03
+8.8631131930199895E-03
+8.8505975249680811E-03
+8.8380884345226618E-03
+8.8255859334612288E-03
+8.8130900263462056E-03
+8.8006007177117412E-03
+8.7881180193107120E-03
+8.7756419460119795E-03
+8.7631725125287448E-03
+8.7507097333800448E-03
+8.7382536207991478E-03
+8.7258041798739389E-03
+8.7133614149589988E-03
+8.7009253369281156E-03
+8.6884959603442564E-03
+8.6760732997781115E-03
+8.6636573697498019E-03
+8.6512481830192823E-03
+8.6388457449713043E-03
+8.6264500594985718E-03
+8.6140611366854174E-03
+8.6016789911613593E-03
+8.5893036374889379E-03
+8.5769350898990057E-03
+8.5645733613624458E-03
+8.5522184579575281E-03
+8.5398703835983577E-03
+8.5275291474252671E-03
+8.5151947635347149E-03
+8.5028672462345752E-03
+8.4905466098734693E-03
+8.4782328679109988E-03
+8.4659260269495072E-03
+8.4536260905585681E-03
+8.4413330669677322E-03
+8.4290469701241138E-03
+8.4167678142829157E-03
+8.4044956135642442E-03
+8.3922303814767812E-03
+8.3799721253294771E-03
+8.3677208487511184E-03
+8.3554765592380228E-03
+8.3432392704862815E-03
+8.3310089966598111E-03
+8.3187857515602294E-03
+8.3065695485385633E-03
+8.2943603956096013E-03
+8.2821582966364701E-03
+8.2699632584182399E-03
+8.2577752940363597E-03
+8.2455944173718161E-03
+8.2334206424520291E-03
+8.2212539831329669E-03
+8.2090944479810794E-03
+8.1969420402321028E-03
+8.1847967655802080E-03
+8.1726586370352693E-03
+8.1605276687966664E-03
+8.1484038747267774E-03
+8.1362872684103450E-03
+8.1241778590889924E-03
+8.1120756503539268E-03
+8.0999806473750005E-03
+8.0878928624023554E-03
+8.0758123092757456E-03
+8.0637390017092442E-03
+8.0516729532887927E-03
+8.0396141740081192E-03
+8.0275626678058438E-03
+8.0155184394153766E-03
+8.0034815002464638E-03
+7.9914518637389988E-03
+7.9794295435090638E-03
+7.9674145533038410E-03
+7.9554069038548676E-03
+7.9434065992408636E-03
+7.9314136436314520E-03
+7.9194280475893206E-03
+7.9074498242630957E-03
+7.8954789872753509E-03
+7.8835155507476426E-03
+7.8715595261701250E-03
+7.8596109173042997E-03
+7.8476697272966776E-03
+7.8357359663093831E-03
+7.8238096481980587E-03
+7.8118907866000405E-03
+7.7999793948042538E-03
+7.7880754842847748E-03
+7.7761790595649114E-03
+7.7642901239522045E-03
+7.7524086867166650E-03
+7.7405347612141302E-03
+7.7286683608071951E-03
+7.7168094987270673E-03
+7.7049581868950442E-03
+7.6931144304808047E-03
+7.6812782327356187E-03
+7.6694496020031991E-03
+7.6576285511383664E-03
+7.6458150932501882E-03
+7.6340092416795026E-03
+7.6222110088400965E-03
+7.6104204003801098E-03
+7.5986374191957303E-03
+7.5868620727756351E-03
+7.5750943738659192E-03
+7.5633343354992123E-03
+7.5515819707065064E-03
+7.5398372918807754E-03
+7.5281003052193127E-03
+7.5163710135107160E-03
+7.5046494235496159E-03
+7.4929355481003004E-03
+7.4812294003118044E-03
+7.4695309929358944E-03
+7.4578403382207677E-03
+7.4461574428815770E-03
+7.4344823096235092E-03
+7.4228149444262211E-03
+7.4111553597294823E-03
+7.3995035686294066E-03
+7.3878595838001654E-03
+7.3762234175337145E-03
+7.3645950772446827E-03
+7.3529745657579222E-03
+7.3413618882941763E-03
+7.3297570565632013E-03
+7.3181600832950772E-03
+7.3065709813262001E-03
+7.2949897634029728E-03
+7.2834164376052767E-03
+7.2718510063415776E-03
+7.2602934738317717E-03
+7.2487438515057498E-03
+7.2372021522774674E-03
+7.2256683888203693E-03
+7.2141425736036375E-03
+7.2026247153515544E-03
+7.1911148169030142E-03
+7.1796128820717101E-03
+7.1681189213532301E-03
+7.1566329471255026E-03
+7.1451549719397725E-03
+7.1336850084605776E-03
+7.1222230661821080E-03
+7.1107691480950296E-03
+7.0993232574895699E-03
+7.0878854042638181E-03
+7.0764556007784840E-03
+7.0650338593756965E-03
+7.0536201923709222E-03
+7.0422146096574536E-03
+7.0308171145955136E-03
+7.0194277101934960E-03
+7.0080464055322896E-03
+6.9966732126769630E-03
+6.9853081438545203E-03
+6.9739512114746693E-03
+6.9626024260458054E-03
+6.9512617912005194E-03
+6.9399293095190042E-03
+6.9286049892279353E-03
+6.9172888421671361E-03
+6.9059808804080372E-03
+6.8946811163119381E-03
+6.8833895608235397E-03
+6.8721062179352274E-03
+6.8608310898616472E-03
+6.8495641840301312E-03
+6.8383055121812907E-03
+6.8270550862735771E-03
+6.8158129184582878E-03
+6.8045790198855999E-03
+6.7933533950416186E-03
+6.7821360459357875E-03
+6.7709269793189263E-03
+6.7597262070080112E-03
+6.7485337409237314E-03
+6.7373495925729561E-03
+6.7261737727614896E-03
+6.7150062867210635E-03
+6.7038471368452424E-03
+6.6926963291880828E-03
+6.6815538748810441E-03
+6.6704197854782210E-03
+6.6592940727359922E-03
+6.6481767480077326E-03
+6.6370678169839128E-03
+6.6259672815322740E-03
+6.6148751467214649E-03
+6.6037914234742170E-03
+6.5927161233438622E-03
+6.5816492580058590E-03
+6.5705908388959764E-03
+6.5595408722942472E-03
+6.5484993599514820E-03
+6.5374663061603926E-03
+6.5264417215265113E-03
+6.5154256175538163E-03
+6.5044180057232583E-03
+6.4934188973550496E-03
+6.4824282993553523E-03
+6.4714462136200614E-03
+6.4604726438225778E-03
+6.4495075999864782E-03
+6.4385510933777056E-03
+6.4276031354129322E-03
+6.4166637375174191E-03
+6.4057329071796646E-03
+6.3948106461113692E-03
+6.3838969572051233E-03
+6.3729918501562333E-03
+6.3620953364033452E-03
+6.3512074271295602E-03
+6.3403281333062099E-03
+6.3294574629207548E-03
+6.3185954182771436E-03
+6.3077420021249529E-03
+6.2968972232461751E-03
+6.2860610925130180E-03
+6.2752336208961824E-03
+6.2644148194502640E-03
+6.2536046967661685E-03
+6.2428032552569309E-03
+6.2320104971626666E-03
+6.2212264306005195E-03
+6.2104510663730864E-03
+6.1996844153696254E-03
+6.1889264885672439E-03
+6.1781772950252889E-03
+6.1674368374084214E-03
+6.1567051175739681E-03
+6.1459821428266380E-03
+6.1352679237223510E-03
+6.1245624710149953E-03
+6.1138657957002865E-03
+6.1031779072841987E-03
+6.0924988085477470E-03
+6.0818285007629312E-03
+6.0711669906383112E-03
+6.0605142890813677E-03
+6.0498704068465241E-03
+6.0392353541542636E-03
+6.0286091402323473E-03
+6.0179917687543825E-03
+6.0073832415144159E-03
+5.9967835643694725E-03
+5.9861927472305079E-03
+5.9756108003718861E-03
+5.9650377345722505E-03
+5.9544735599118929E-03
+5.9439182800929110E-03
+5.9333718958198443E-03
+5.9228344121039517E-03
+5.9123058395223549E-03
+5.9017861888016193E-03
+5.8912754698935881E-03
+5.8807736921465395E-03
+5.8702808600009501E-03
+5.8597969748204323E-03
+5.8493220410797495E-03
+5.8388560685204574E-03
+5.8283990673528010E-03
+5.8179510476428055E-03
+5.8075120191260756E-03
+5.7970819867769509E-03
+5.7866609516677254E-03
+5.7762489173851812E-03
+5.7658458932400118E-03
+5.7554518892988481E-03
+5.7450669156514480E-03
+5.7346909822274415E-03
+5.7243240946142004E-03
+5.7139662537952027E-03
+5.7036174626214830E-03
+5.6932777299463951E-03
+5.6829470656908059E-03
+5.6726254797449336E-03
+5.6623129819002391E-03
+5.6520095783195567E-03
+5.6417152701968235E-03
+5.6314300598746753E-03
+5.6211539554748384E-03
+5.6108869665284162E-03
+5.6006291028766995E-03
+5.5903803745349801E-03
+5.5801407882963196E-03
+5.5699103452218146E-03
+5.5596890469466441E-03
+5.5494769010875087E-03
+5.5392739171844932E-03
+5.5290801049143034E-03
+5.5188954740627259E-03
+5.5087200318793246E-03
+5.4985537797057286E-03
+5.4883967188540635E-03
+5.4782488562533380E-03
+5.4681102012214440E-03
+5.4579807632340041E-03
+5.4478605519339782E-03
+5.4377495749791732E-03
+5.4276478338862481E-03
+5.4175553295581508E-03
+5.4074720682980191E-03
+5.3973980594098428E-03
+5.3873333121946254E-03
+5.3772778359019594E-03
+5.3672316383670945E-03
+5.3571947216194925E-03
+5.3471670865415316E-03
+5.3371487387283761E-03
+5.3271396871752592E-03
+5.3171399409785878E-03
+5.3071495092838440E-03
+5.2971684001814666E-03
+5.2871966159024663E-03
+5.2772341568845839E-03
+5.2672810280183563E-03
+5.2573372383434413E-03
+5.2474027969810020E-03
+5.2374777128614425E-03
+5.2275619941491219E-03
+5.2176556434856535E-03
+5.2077586611246627E-03
+5.1978710511754230E-03
+5.1879928223938013E-03
+5.1781239837440651E-03
+5.1682645439697240E-03
+5.1584145112832077E-03
+5.1485738888523026E-03
+5.1387426769077139E-03
+5.1289208788577621E-03
+5.1191085031090282E-03
+5.1093055584473020E-03
+5.0995120534271183E-03
+5.0897279962393528E-03
+5.0799533906027167E-03
+5.0701882368185723E-03
+5.0604325376297837E-03
+5.0506863008985322E-03
+5.0409495351013429E-03
+5.0312222486926508E-03
+5.0215044499437077E-03
+5.0117961431660994E-03
+5.0020973287502055E-03
+4.9924080088375204E-03
+4.9827281906815214E-03
+4.9730578824118644E-03
+4.9633970924369344E-03
+4.9537458292015371E-03
+4.9441040974483857E-03
+4.9344718971857859E-03
+4.9248492297416444E-03
+4.9152361022188912E-03
+4.9056325229962115E-03
+4.8960385004103097E-03
+4.8864540427277850E-03
+4.8768791550559305E-03
+4.8673138372708567E-03
+4.8577580900492365E-03
+4.8482119202057309E-03
+4.8386753363408490E-03
+4.8291483464863909E-03
+4.8196309581968674E-03
+4.8101231767754410E-03
+4.8006250026870270E-03
+4.7911364366047130E-03
+4.7816574845742227E-03
+4.7721881547474147E-03
+4.7627284549945402E-03
+4.7532783928815117E-03
+4.7438379741785537E-03
+4.7344071995725299E-03
+4.7249860693926223E-03
+4.7155745887265139E-03
+4.7061727651302610E-03
+4.6967806063994604E-03
+4.6873981206274661E-03
+4.6780253143307799E-03
+4.6686621879409298E-03
+4.6593087408587633E-03
+4.6499649776304778E-03
+4.6406309062638137E-03
+4.6313065345676393E-03
+4.6219918698855427E-03
+4.6126869184956671E-03
+4.6033916814805535E-03
+4.5941061585023871E-03
+4.5848303534487848E-03
+4.5755642738843699E-03
+4.5663079273021061E-03
+4.5570613207455649E-03
+4.5478244605181998E-03
+4.5385973482544575E-03
+4.5293799837390122E-03
+4.5201723701534689E-03
+4.5109745144991421E-03
+4.5017864239936169E-03
+4.4926081058958029E-03
+4.4834395669450947E-03
+4.4742808088730143E-03
+4.4651318307114638E-03
+4.4559926348422029E-03
+4.4468632285455736E-03
+4.4377436193027723E-03
+4.4286338138452633E-03
+4.4195338184242388E-03
+4.4104436354005837E-03
+4.4013632643662192E-03
+4.3922927071605522E-03
+4.3832319699725749E-03
+4.3741810595315407E-03
+4.3651399828895134E-03
+4.3561087470032501E-03
+4.3470873547002036E-03
+4.3380758049897323E-03
+4.3290740988407243E-03
+4.3200822424235815E-03
+4.3111002426674608E-03
+4.3021281062699023E-03
+4.2931658397217364E-03
+4.2842134461937072E-03
+4.2752709248928301E-03
+4.2663382763610275E-03
+4.2574155062849502E-03
+4.2485026213849612E-03
+4.2395996281742792E-03
+4.2307065329982123E-03
+4.2218233394712276E-03
+4.2129500469922643E-03
+4.2040866557087738E-03
+4.1952331706404901E-03
+4.1863895981473168E-03
+4.1775559446332704E-03
+4.1687322165187765E-03
+4.1599184178547433E-03
+4.1511145479240039E-03
+4.1423206062837096E-03
+4.1335365974841864E-03
+4.1247625278969993E-03
+4.1159984037919626E-03
+4.1072442313325654E-03
+4.0985000148802270E-03
+4.0897657540384588E-03
+4.0810414481771131E-03
+4.0723271010434103E-03
+4.0636227184976028E-03
+4.0549283065565208E-03
+4.0462438714187511E-03
+4.0375694178632201E-03
+4.0289049456268275E-03
+4.0202504537089710E-03
+4.0116059452803884E-03
+4.0029714261332269E-03
+3.9943469021765264E-03
+3.9857323794449014E-03
+3.9771278629025016E-03
+3.9685333524073826E-03
+3.9599488465562578E-03
+3.9513743478987763E-03
+3.9428098621978047E-03
+3.9342553952657873E-03
+3.9257109528212557E-03
+3.9171765398154264E-03
+3.9086521563992454E-03
+3.9001378009835938E-03
+3.8916334754806061E-03
+3.8831391854777558E-03
+3.8746549367124133E-03
+3.8661807348541921E-03
+3.8577165850246149E-03
+3.8492624876833351E-03
+3.8408184409617022E-03
+3.8323844459787044E-03
+3.8239605079233643E-03
+3.8155466322941766E-03
+3.8071428246672788E-03
+3.7987490902877162E-03
+3.7903654301288271E-03
+3.7819918423325958E-03
+3.7736283273893004E-03
+3.7652748900036666E-03
+3.7569315353602807E-03
+3.7485982689117242E-03
+3.7402750959705513E-03
+3.7319620178120501E-03
+3.7236590322274896E-03
+3.7153661390644578E-03
+3.7070833431580826E-03
+3.6988106499651458E-03
+3.6905480644226097E-03
+3.6822955911454624E-03
+3.6740532318040478E-03
+3.6658209847851885E-03
+3.6575988497184204E-03
+3.6493868305347401E-03
+3.6411849319951902E-03
+3.6329931590103112E-03
+3.6248115165167425E-03
+3.6166400066714108E-03
+3.6084786276238184E-03
+3.6003273783444222E-03
+3.5921862624043901E-03
+3.5840552845485059E-03
+3.5759344495983176E-03
+3.5678237624071321E-03
+3.5597232253881048E-03
+3.5516328363824653E-03
+3.5435525936719598E-03
+3.5354825006777375E-03
+3.5274225625358552E-03
+3.5193727838339376E-03
+3.5113331686488247E-03
+3.5033037194145697E-03
+3.4952844345757690E-03
+3.4872753125473701E-03
+3.4792763559694812E-03
+3.4712875693705754E-03
+3.4633089571266718E-03
+3.4553405234217962E-03
+3.4473822710749660E-03
+3.4394341984909757E-03
+3.4314963035835225E-03
+3.4235685884283582E-03
+3.4156510575353029E-03
+3.4077437152369764E-03
+3.3998465655463578E-03
+3.3919596114266163E-03
+3.3840828513789947E-03
+3.3762162829508125E-03
+3.3683599075359058E-03
+3.3605137294470525E-03
+3.3526777529099784E-03
+3.3448519818307684E-03
+3.3370364193581574E-03
+3.3292310644236680E-03
+3.3214359145647180E-03
+3.3136509703820590E-03
+3.3058762354796923E-03
+3.2981117136676600E-03
+3.2903574089671061E-03
+3.2826133249021223E-03
+3.2748794607568542E-03
+3.2671558138559907E-03
+3.2594423841022751E-03
+3.2517391746725191E-03
+3.2440461891003539E-03
+3.2363634314336817E-03
+3.2286909054410856E-03
+3.2210286105329253E-03
+3.2133765434357018E-03
+3.2057347034478620E-03
+3.1981030941442613E-03
+3.1904817193948729E-03
+3.1828705825988194E-03
+3.1752696868082020E-03
+3.1676790317034680E-03
+3.1600986142513833E-03
+3.1525284333158671E-03
+3.1449684919784833E-03
+3.1374187938451297E-03
+3.1298793424074335E-03
+3.1223501409796258E-03
+3.1148311895776840E-03
+3.1073224847817816E-03
+3.0998240246760869E-03
+3.0923358120350129E-03
+3.0848578504145806E-03
+3.0773901430411706E-03
+3.0699326929102128E-03
+3.0624855003897385E-03
+3.0550485623149089E-03
+3.0476218764867828E-03
+3.0402054452699037E-03
+3.0327992720588755E-03
+3.0254033597446779E-03
+3.0180177108604985E-03
+3.0106423260044864E-03
+3.0032772024092351E-03
+2.9959223377493756E-03
+2.9885777336290135E-03
+2.9812433928840926E-03
+2.9739193183078395E-03
+2.9666055126491980E-03
+2.9593019769499815E-03
+2.9520087083582947E-03
+2.9447257040399054E-03
+2.9374529649577423E-03
+2.9301904936595369E-03
+2.9229382928014952E-03
+2.9156963651532745E-03
+2.9084647120774516E-03
+2.9012433306697992E-03
+2.8940322176274750E-03
+2.8868313734216060E-03
+2.8796408005831212E-03
+2.8724605016685447E-03
+2.8652904792411771E-03
+2.8581307348087134E-03
+2.8509812656176987E-03
+2.8438420681043031E-03
+2.8367131422064287E-03
+2.8295944903425491E-03
+2.8224861148405081E-03
+2.8153880177615260E-03
+2.8083002004663819E-03
+2.8012226606816274E-03
+2.7941553950444338E-03
+2.7870984028475093E-03
+2.7800516858156490E-03
+2.7730152459329699E-03
+2.7659890855977684E-03
+2.7589732067002360E-03
+2.7519676069478359E-03
+2.7449722822695736E-03
+2.7379872312492822E-03
+2.7310124556144690E-03
+2.7240479573393843E-03
+2.7170937386109127E-03
+2.7101498012773086E-03
+2.7032161433144216E-03
+2.6962927604841278E-03
+2.6893796508551974E-03
+2.6824768160600017E-03
+2.6755842580045127E-03
+2.6687019784797867E-03
+2.6618299790182741E-03
+2.6549682578479779E-03
+2.6481168107172553E-03
+2.6412756351815382E-03
+2.6344447325088423E-03
+2.6276241044064803E-03
+2.6208137525871988E-03
+2.6140136786295849E-03
+2.6072238811256578E-03
+2.6004443557616822E-03
+2.5936750995527403E-03
+2.5869161133012879E-03
+2.5801673984333045E-03
+2.5734289564745636E-03
+2.5667007889266817E-03
+2.5599828947009133E-03
+2.5532752694540162E-03
+2.5465779097405736E-03
+2.5398908159542074E-03
+2.5332139893344979E-03
+2.5265474312566342E-03
+2.5198911431468926E-03
+2.5132451241596993E-03
+2.5066093697520293E-03
+2.4999838759433199E-03
+2.4933686429506382E-03
+2.4867636721932636E-03
+2.4801689647993004E-03
+2.4735845216531786E-03
+2.4670103419959268E-03
+2.4604464215950998E-03
+2.4538927563456212E-03
+2.4473493457211658E-03
+2.4408161905838774E-03
+2.4342932919184587E-03
+2.4277806508316937E-03
+2.4212782669931370E-03
+2.4147861360338738E-03
+2.4083042533171780E-03
+2.4018326179190957E-03
+2.3953712307982428E-03
+2.3889200927418516E-03
+2.3824792042879974E-03
+2.3760485650273899E-03
+2.3696281710799180E-03
+2.3632180179863457E-03
+2.3568181040584464E-03
+2.3504284294443381E-03
+2.3440489946112207E-03
+2.3376798005230420E-03
+2.3313208473359740E-03
+2.3249721309177491E-03
+2.3186336459777033E-03
+2.3123053903915339E-03
+2.3059873647423121E-03
+2.2996795695717723E-03
+2.2933820051297881E-03
+2.2870946711251068E-03
+2.2808175638837471E-03
+2.2745506784161993E-03
+2.2682940120557632E-03
+2.2620475647020799E-03
+2.2558113364890713E-03
+2.2495853278569414E-03
+2.2433695389027035E-03
+2.2371639660082230E-03
+2.2309686035887873E-03
+2.2247834483942247E-03
+2.2186085005279693E-03
+2.2124437602395594E-03
+2.2062892273365269E-03
+2.2001449013120903E-03
+2.1940107789829161E-03
+2.1878868552948588E-03
+2.1817731266801201E-03
+2.1756695923938283E-03
+2.1695762520527627E-03
+2.1634931055752853E-03
+2.1574201528347706E-03
+2.1513573908554951E-03
+2.1453048140734495E-03
+2.1392624182638488E-03
+2.1332302026799070E-03
+2.1272081670834315E-03
+2.1211963111737830E-03
+2.1151946345442448E-03
+2.1092031343342109E-03
+2.1032218048039654E-03
+2.0972506412328383E-03
+2.0912896427075500E-03
+2.0853388090332674E-03
+2.0793981395541713E-03
+2.0734676333175393E-03
+2.0675472876598051E-03
+2.0616370973266869E-03
+2.0557370575846495E-03
+2.0498471668735289E-03
+2.0439674244755223E-03
+2.0380978295101745E-03
+2.0322383809639323E-03
+2.0263890764018987E-03
+2.0205499105883261E-03
+2.0147208784704737E-03
+2.0089019779529287E-03
+2.0030932080011598E-03
+1.9972945675849159E-03
+1.9915060556743064E-03
+1.9857276700840478E-03
+1.9799594056286161E-03
+1.9742012569816322E-03
+1.9684532214882798E-03
+1.9627152977625436E-03
+1.9569874846116883E-03
+1.9512697810748518E-03
+1.9455621852033840E-03
+1.9398646915873613E-03
+1.9341772943344299E-03
+1.9284999904440588E-03
+1.9228327786992808E-03
+1.9171756578724092E-03
+1.9115286266757660E-03
+1.9058916830846709E-03
+1.9002648216919469E-03
+1.8946480362883496E-03
+1.8890413234342663E-03
+1.8834446819014656E-03
+1.8778581103715505E-03
+1.8722816072058431E-03
+1.8667151702462111E-03
+1.8611587943539679E-03
+1.8556124733384305E-03
+1.8500762032654238E-03
+1.8445499825281058E-03
+1.8390338095414266E-03
+1.8335276824843596E-03
+1.8280315991822703E-03
+1.8225455547991362E-03
+1.8170695431961230E-03
+1.8116035599261865E-03
+1.8061476028055877E-03
+1.8007016698617004E-03
+1.7952657593239064E-03
+1.7898398692289866E-03
+1.7844239947572497E-03
+1.7790181292321001E-03
+1.7736222676772862E-03
+1.7682364081044524E-03
+1.7628605487625838E-03
+1.7574946876104456E-03
+1.7521388223768950E-03
+1.7467929483478009E-03
+1.7414570587382307E-03
+1.7361311480547066E-03
+1.7308152138636680E-03
+1.7255092541386286E-03
+1.7202132667741143E-03
+1.7149272495504294E-03
+1.7096511980161087E-03
+1.7043851052739329E-03
+1.6991289653816531E-03
+1.6938827756152845E-03
+1.6886465338238094E-03
+1.6834202376360505E-03
+1.6782038845255865E-03
+1.6729974702240436E-03
+1.6678009879984076E-03
+1.6626144316663394E-03
+1.6574377979819230E-03
+1.6522710844321872E-03
+1.6471142885334470E-03
+1.6419674078071011E-03
+1.6368304382332370E-03
+1.6317033729567703E-03
+1.6265862053526652E-03
+1.6214789316505744E-03
+1.6163815490395901E-03
+1.6112940549095455E-03
+1.6062164468268268E-03
+1.6011487210097792E-03
+1.5960908704113598E-03
+1.5910428879321681E-03
+1.5860047695807091E-03
+1.5809765127278769E-03
+1.5759581146167869E-03
+1.5709495723342291E-03
+1.5659508819885651E-03
+1.5609620365890642E-03
+1.5559830288258928E-03
+1.5510138543755225E-03
+1.5460545106259439E-03
+1.5411049946441639E-03
+1.5361653029820339E-03
+1.5312354315646908E-03
+1.5263153738201845E-03
+1.5214051226570158E-03
+1.5165046730927841E-03
+1.5116140217191680E-03
+1.5067331652683712E-03
+1.5018621006745916E-03
+1.4970008243482124E-03
+1.4921493295558248E-03
+1.4873076085529029E-03
+1.4824756559407768E-03
+1.4776534685800563E-03
+1.4728410432384529E-03
+1.4680383762075498E-03
+1.4632454634028833E-03
+1.4584622983949194E-03
+1.4536888737013108E-03
+1.4489251835740939E-03
+1.4441712244267853E-03
+1.4394269927201343E-03
+1.4346924846145137E-03
+1.4299676960062918E-03
+1.4252526206234124E-03
+1.4205472508848236E-03
+1.4158515805764425E-03
+1.4111656057121430E-03
+1.4064893224892149E-03
+1.4018227270232351E-03
+1.3971658152748098E-03
+1.3925185811414988E-03
+1.3878810168897790E-03
+1.3832531158929180E-03
+1.3786348739387158E-03
+1.3740262870865832E-03
+1.3694273511965986E-03
+1.3648380619812315E-03
+1.3602584134331289E-03
+1.3556883977847327E-03
+1.3511280080650936E-03
+1.3465772397250240E-03
+1.3420360886242119E-03
+1.3375045505726183E-03
+1.3329826213154604E-03
+1.3284702949876335E-03
+1.3239675635956744E-03
+1.3194744197103500E-03
+1.3149908585176058E-03
+1.3105168757874903E-03
+1.3060524670801081E-03
+1.3015976278033727E-03
+1.2971523521731238E-03
+1.2927166323665304E-03
+1.2882904608133669E-03
+1.2838738321780674E-03
+1.2794667418213287E-03
+1.2750691852453568E-03
+1.2706811580664383E-03
+1.2663026547514880E-03
+1.2619336671845995E-03
+1.2575741872546161E-03
+1.2532242092201415E-03
+1.2488837283142157E-03
+1.2445527399405371E-03
+1.2402312396849388E-03
+1.2359192221809685E-03
+1.2316166792152028E-03
+1.2273236023042677E-03
+1.2230399852911440E-03
+1.2187658232681827E-03
+1.2145011114627819E-03
+1.2102458452757164E-03
+1.2060000194025913E-03
+1.2017636256986361E-03
+1.1975366554805393E-03
+1.1933191021778818E-03
+1.1891109606925400E-03
+1.1849122260586295E-03
+1.1807228934973529E-03
+1.1765429577297111E-03
+1.1723724107175707E-03
+1.1682112436082808E-03
+1.1640594494022433E-03
+1.1599170227675145E-03
+1.1557839585561015E-03
+1.1516602519183897E-03
+1.1475458976322316E-03
+1.1434408874866585E-03
+1.1393452120354577E-03
+1.1352588639935216E-03
+1.1311818385886312E-03
+1.1271141309145043E-03
+1.1230557351924882E-03
+1.1190066452993767E-03
+1.1149668534086114E-03
+1.1109363507439758E-03
+1.1069151298450154E-03
+1.1029031852412099E-03
+1.0989005115434535E-03
+1.0949071030137794E-03
+1.0909229536942300E-03
+1.0869480558232112E-03
+1.0829824003112966E-03
+1.0790259792100537E-03
+1.0750787868583347E-03
+1.0711408177768193E-03
+1.0672120660161319E-03
+1.0632925253973144E-03
+1.0593821883965366E-03
+1.0554810462045615E-03
+1.0515890906640664E-03
+1.0477063154210276E-03
+1.0438327144104117E-03
+1.0399682815989146E-03
+1.0361130109302630E-03
+1.0322668950350775E-03
+1.0284299249229665E-03
+1.0246020920965575E-03
+1.0207833900797783E-03
+1.0169738128078421E-03
+1.0131733540130717E-03
+1.0093820072894103E-03
+1.0055997652719372E-03
+1.0018266190666637E-03
+9.9806256000829568E-04
+9.9430758109994013E-04
+9.9056167583458582E-04
+9.8682483792808680E-04
+9.8309706126555063E-04
+9.7937833868259210E-04
+9.7566866081871047E-04
+9.7196801838880754E-04
+9.6827640425519140E-04
+9.6459381209216817E-04
+9.6092023551692897E-04
+9.5725566808578088E-04
+9.5360010257953241E-04
+9.4995352965750158E-04
+9.4631593985319373E-04
+9.4268732566933980E-04
+9.3906768059030712E-04
+9.3545699807047217E-04
+9.3185527151519313E-04
+9.2826249373978702E-04
+9.2467865541327461E-04
+9.2110374686786567E-04
+9.1753776024146815E-04
+9.1398068884465319E-04
+9.1043252596454034E-04
+9.0689326481441961E-04
+9.0336289818296800E-04
+8.9984141681305918E-04
+8.9632881091256751E-04
+8.9282507224619338E-04
+8.8933019388693745E-04
+8.8584416894021739E-04
+8.8236699049323321E-04
+8.7889865132642978E-04
+8.7543914220802215E-04
+8.7198845314220310E-04
+8.6854657554257062E-04
+8.6511350235253504E-04
+8.6168922655350047E-04
+8.5827374101346836E-04
+8.5486703838230172E-04
+8.5146910951859004E-04
+8.4807994435179865E-04
+8.4469953395661338E-04
+8.4132787102259748E-04
+8.3796494834687636E-04
+8.3461075867610204E-04
+8.3126529461328665E-04
+8.2792854707917484E-04
+8.2460050584020120E-04
+8.2128116161738363E-04
+8.1797050690811835E-04
+8.1466853437774361E-04
+8.1137523658613006E-04
+8.0809060598289908E-04
+8.0481463358373186E-04
+8.0154730912459571E-04
+7.9828862303838930E-04
+7.9503856752439768E-04
+7.9179713503711550E-04
+7.8856431801729735E-04
+7.8534010885650295E-04
+7.8212449864227605E-04
+7.7891747695878243E-04
+7.7571903390617769E-04
+7.7252916147545626E-04
+7.6934785202076132E-04
+7.6617509780962793E-04
+7.6301089104098660E-04
+7.5985522286371710E-04
+7.5670808286253447E-04
+7.5356946091755710E-04
+7.5043934869295861E-04
+7.4731773832295209E-04
+7.4420462193599375E-04
+7.4109999164882062E-04
+7.3800383868143787E-04
+7.3491615251547590E-04
+7.3183692275128091E-04
+7.2876614079109378E-04
+7.2570379866807207E-04
+7.2264988835507452E-04
+7.1960440176523067E-04
+7.1656733012828678E-04
+7.1353866293920646E-04
+7.1051838963591407E-04
+7.0750650131206510E-04
+7.0450298982834751E-04
+7.0150784699522784E-04
+6.9852106455630856E-04
+6.9554263373871532E-04
+6.9257254403534934E-04
+6.8961078471420519E-04
+6.8665734655827884E-04
+6.8371222126789491E-04
+6.8077540050689772E-04
+6.7784687586088172E-04
+6.7492663853820837E-04
+6.7201467806939444E-04
+6.6911098359442086E-04
+6.6621554555531051E-04
+6.6332835541602607E-04
+6.6044940466782726E-04
+6.5757868480165117E-04
+6.5471618703254197E-04
+6.5186190089342204E-04
+6.4901581533410911E-04
+6.4617792049741251E-04
+6.4334820773512421E-04
+6.4052666841819502E-04
+6.3771329382320907E-04
+6.3490807503242938E-04
+6.3211100164412936E-04
+6.2932206254547214E-04
+6.2654124759530937E-04
+6.2376854792880662E-04
+6.2100395474992849E-04
+6.1824745920010485E-04
+6.1549905228960660E-04
+6.1275872366710110E-04
+6.1002646211218755E-04
+6.0730225718968675E-04
+6.0458609981867096E-04
+6.0187798104275724E-04
+5.9917789187435106E-04
+5.9648582324412002E-04
+5.9380176485614676E-04
+5.9112570539299452E-04
+5.8845763414246523E-04
+5.8579754180079649E-04
+5.8314541925482072E-04
+5.8050125740364579E-04
+5.7786504710898706E-04
+5.7523677811437395E-04
+5.7261643895913604E-04
+5.7000401864539918E-04
+5.6739950770217057E-04
+5.6480289692893650E-04
+5.6221417706210012E-04
+5.5963333878463655E-04
+5.5706037186707279E-04
+5.5449526481107445E-04
+5.5193800641035724E-04
+5.4938858696421957E-04
+5.4684699713441424E-04
+5.4431322752283601E-04
+5.4178726868216805E-04
+5.3926911041258000E-04
+5.3675874115693392E-04
+5.3425614949527422E-04
+5.3176132547147199E-04
+5.2927425960408187E-04
+5.2679494236513148E-04
+5.2432336418289590E-04
+5.2185951488239611E-04
+5.1940338286527972E-04
+5.1695495652480600E-04
+5.1451422565169567E-04
+5.1208118063775037E-04
+5.0965581181667120E-04
+5.0723810945268262E-04
+5.0482806335754905E-04
+5.0242566193706509E-04
+5.0003089345135505E-04
+4.9764374742030174E-04
+4.9526421407463511E-04
+4.9289228361279881E-04
+4.9052794617347078E-04
+4.8817119155476285E-04
+4.8582200814772789E-04
+4.8348038405784276E-04
+4.8114630854480370E-04
+4.7881977171374966E-04
+4.7650076364125161E-04
+4.7418927431137052E-04
+4.7188529346354276E-04
+4.6958880951986526E-04
+4.6729981048884429E-04
+4.6501828535497488E-04
+4.6274422402647051E-04
+4.6047761643498036E-04
+4.5821845247972105E-04
+4.5596672188494253E-04
+4.5372241307663224E-04
+4.5148551390757763E-04
+4.4925601309953386E-04
+4.4703390043840076E-04
+4.4481916575024415E-04
+4.4261179877904479E-04
+4.4041178914342615E-04
+4.3821912531510741E-04
+4.3603379508607961E-04
+4.3385578693890128E-04
+4.3168509046130301E-04
+4.2952169532945719E-04
+4.2736559117887313E-04
+4.2521676756500945E-04
+4.2307521299502447E-04
+4.2094091516197221E-04
+4.1881386231039592E-04
+4.1669404386407709E-04
+4.1458144938113047E-04
+4.1247606835379479E-04
+4.1037789021213504E-04
+4.0828690351346169E-04
+4.0620309593724816E-04
+4.0412645554225690E-04
+4.0205697151979406E-04
+3.9999463325142122E-04
+3.9793943012107552E-04
+3.9589135149396972E-04
+3.9385038596357350E-04
+3.9181652112107063E-04
+3.8978974481650565E-04
+3.8777004607612052E-04
+3.8575741418819695E-04
+3.8375183840365601E-04
+3.8175330794134942E-04
+3.7976181140829038E-04
+3.7777733638255136E-04
+3.7579987056948029E-04
+3.7382940276740661E-04
+3.7186592210545425E-04
+3.6990941772672525E-04
+3.6795987878326453E-04
+3.6601729390868607E-04
+3.6408165059616932E-04
+3.6215293635741811E-04
+3.6023113981418635E-04
+3.5831625003187998E-04
+3.5640825604227441E-04
+3.5450714683948236E-04
+3.5261291102986378E-04
+3.5072553609915609E-04
+3.4884500944495873E-04
+3.4697131948483785E-04
+3.4510445517211430E-04
+3.4324440542302299E-04
+3.4139115909587815E-04
+3.3954470476453877E-04
+3.3770502991677164E-04
+3.3587212184884408E-04
+3.3404596875993110E-04
+3.3222655946657319E-04
+3.3041388277332004E-04
+3.2860792744170212E-04
+3.2680868202580838E-04
+3.2501613402487076E-04
+3.2323027063836207E-04
+3.2145107984396645E-04
+3.1967855030736380E-04
+3.1791267070998994E-04
+3.1615342971469629E-04
+3.1440081584047092E-04
+3.1265481661380375E-04
+3.1091541915770734E-04
+3.0918261124607738E-04
+3.0745638139650103E-04
+3.0573671816911438E-04
+3.0402361013045782E-04
+3.0231704575246098E-04
+3.0061701257804991E-04
+2.9892349763924756E-04
+2.9723648852255079E-04
+2.9555597363958857E-04
+2.9388194146101604E-04
+2.9221438042772183E-04
+2.9055327891408289E-04
+2.8889862448384490E-04
+2.8725040411407843E-04
+2.8560860521836302E-04
+2.8397321607187429E-04
+2.8234422504164414E-04
+2.8072162046425782E-04
+2.7910539063185459E-04
+2.7749552313762843E-04
+2.7589200491829181E-04
+2.7429482323022500E-04
+2.7270396619790462E-04
+2.7111942207910285E-04
+2.6954117912400218E-04
+2.6796922556069491E-04
+2.6640354899411261E-04
+2.6484413627339814E-04
+2.6329097448122391E-04
+2.6174405163216692E-04
+2.6020335592939092E-04
+2.5866887551532933E-04
+2.5714059848825895E-04
+2.5561851246284797E-04
+2.5410260429559715E-04
+2.5259286096764017E-04
+2.5108927031389005E-04
+2.4959182040636515E-04
+2.4810049929538006E-04
+2.4661529501169936E-04
+2.4513619518936415E-04
+2.4366318665206235E-04
+2.4219625626073957E-04
+2.4073539169604241E-04
+2.3928058094294945E-04
+2.3783181197282319E-04
+2.3638907274234821E-04
+2.3495235088664938E-04
+2.3352163317672870E-04
+2.3209690633871298E-04
+2.3067815791111691E-04
+2.2926537582932055E-04
+2.2785854799088569E-04
+2.2645766224103038E-04
+2.2506270619069408E-04
+2.2367366662321260E-04
+2.2229053019881182E-04
+2.2091328429139345E-04
+2.1954191672993449E-04
+2.1817641531844965E-04
+2.1681676780688938E-04
+2.1546296178184314E-04
+2.1411498406983956E-04
+2.1277282130367333E-04
+2.1143646068584531E-04
+2.1010588988934609E-04
+2.0878109661000112E-04
+2.0746206856272830E-04
+2.0614879334443810E-04
+2.0484125777151625E-04
+2.0353944837026309E-04
+2.0224335220379890E-04
+2.0095295690768597E-04
+1.9966825013044591E-04
+1.9838921947775085E-04
+1.9711585247024084E-04
+1.9584813594232710E-04
+1.9458605637949556E-04
+1.9332960070565265E-04
+1.9207875645171592E-04
+1.9083351118671308E-04
+1.8959385245660601E-04
+1.8835976775209985E-04
+1.8713124394281541E-04
+1.8590826747986129E-04
+1.8469082515309117E-04
+1.8347890437107447E-04
+1.8227249260928312E-04
+1.8107157735829980E-04
+1.7987614608244425E-04
+1.7868618567275381E-04
+1.7750168251763799E-04
+1.7632262328363049E-04
+1.7514899532691054E-04
+1.7398078609478807E-04
+1.7281798298453505E-04
+1.7166057335675017E-04
+1.7050854412499009E-04
+1.6936188169644297E-04
+1.6822057265383113E-04
+1.6708460420724065E-04
+1.6595396369031414E-04
+1.6482863846195830E-04
+1.6370861588718802E-04
+1.6259388291833447E-04
+1.6148442590326544E-04
+1.6038023130495312E-04
+1.5928128626112152E-04
+1.5818757808212951E-04
+1.5709909405457682E-04
+1.5601582144506861E-04
+1.5493774720826069E-04
+1.5386485770575782E-04
+1.5279713934822372E-04
+1.5173457918776011E-04
+1.5067716449520415E-04
+1.4962488248958385E-04
+1.4857772034070497E-04
+1.4753566499187164E-04
+1.4649870282509530E-04
+1.4546682021236024E-04
+1.4444000409960368E-04
+1.4341824169316575E-04
+1.4240152016359607E-04
+1.4138982663666161E-04
+1.4038314806789654E-04
+1.3938147085676008E-04
+1.3838478133556710E-04
+1.3739306633822189E-04
+1.3640631299679872E-04
+1.3542450842486445E-04
+1.3444763970093111E-04
+1.3347569378278700E-04
+1.3250865710552951E-04
+1.3154651598615245E-04
+1.3058925714612844E-04
+1.2963686761897095E-04
+1.2868933446451143E-04
+1.2774664477971137E-04
+1.2680878556847611E-04
+1.2587574325209145E-04
+1.2494750405430267E-04
+1.2402405460474339E-04
+1.2310538193721664E-04
+1.2219147309676558E-04
+1.2128231511193495E-04
+1.2037789494538951E-04
+1.1947819904592357E-04
+1.1858321362147703E-04
+1.1769292523015310E-04
+1.1680732088168026E-04
+1.1592638760087640E-04
+1.1505011236074307E-04
+1.1417848208461587E-04
+1.1331148326247275E-04
+1.1244910211303779E-04
+1.1159132511902804E-04
+1.1073813920939078E-04
+1.0988953135439757E-04
+1.0904548852033879E-04
+1.0820599764770778E-04
+1.0737104527064358E-04
+1.0654061759090832E-04
+1.0571470102509379E-04
+1.0489328247761357E-04
+1.0407634890766838E-04
+1.0326388721543982E-04
+1.0245588426626628E-04
+1.0165232663241404E-04
+1.0085320057609237E-04
+1.0005849249381438E-04
+9.9268189209791456E-05
+9.8482277624125915E-05
+9.7700744634749602E-05
+9.6923577132209163E-05
+9.6150761733764423E-05
+9.5382284683217893E-05
+9.4618132315234921E-05
+9.3858291414952711E-05
+9.3102748874392569E-05
+9.2351491575743080E-05
+9.1604506392085259E-05
+9.0861779976894767E-05
+9.0123298594486787E-05
+8.9389048553488928E-05
+8.8659016594510128E-05
+8.7933189595626972E-05
+8.7211554423641155E-05
+8.6494097934795868E-05
+8.5780806815675422E-05
+8.5071667359850025E-05
+8.4366665863237105E-05
+8.3665789023473381E-05
+8.2969023707950382E-05
+8.2276356774018623E-05
+8.1587775066956975E-05
+8.0903265305281577E-05
+8.0222813819950793E-05
+7.9546406905435955E-05
+7.8874031216072307E-05
+7.8205673605720344E-05
+7.7541320926061762E-05
+7.6880960022517343E-05
+7.6224577647532394E-05
+7.5572160173688441E-05
+7.4923693899692020E-05
+7.4279165444844210E-05
+7.3638561659231523E-05
+7.3001869393543052E-05
+7.2369075489998216E-05
+7.1740166725765925E-05
+7.1115129524594730E-05
+7.0493950202698850E-05
+6.9876615351292226E-05
+6.9263111817335072E-05
+6.8653426454975264E-05
+6.8047546112090602E-05
+6.7445457592249020E-05
+6.6847147374787658E-05
+6.6252601799307858E-05
+6.5661807435589371E-05
+6.5074751130235736E-05
+6.4491419745465344E-05
+6.3911800141078359E-05
+6.3335879148053553E-05
+6.2763643303940156E-05
+6.2195078975893205E-05
+6.1630172721324728E-05
+6.1068911396169667E-05
+6.0511281879903930E-05
+5.9957271042503310E-05
+5.9406865734581652E-05
+5.8860052557904666E-05
+5.8316817924528077E-05
+5.7777148391167226E-05
+5.7241030816549612E-05
+5.6708452095363024E-05
+5.6179399119854522E-05
+5.5653858771881858E-05
+5.5131817719200144E-05
+5.4613262417998078E-05
+5.4098179430777056E-05
+5.3586555626644180E-05
+5.3078377924869780E-05
+5.2573633242965720E-05
+5.2072308492862649E-05
+5.1574390409688950E-05
+5.1079865502972788E-05
+5.0588720352991650E-05
+5.0100941842270595E-05
+4.9616516919949066E-05
+4.9135432532832558E-05
+4.8657675624315830E-05
+4.8183232998251284E-05
+4.7712091227890266E-05
+4.7244236924832391E-05
+4.6779656984844661E-05
+4.6318338387979048E-05
+4.5860268117303354E-05
+4.5405433157733033E-05
+4.4953820384384823E-05
+4.4505416435308229E-05
+4.4060207959449034E-05
+4.3618181872425413E-05
+4.3179325194847560E-05
+4.2743624950578857E-05
+4.2311068166557890E-05
+4.1881641787894538E-05
+4.1455332526256553E-05
+4.1032127079944159E-05
+4.0612012391178588E-05
+4.0194975528223870E-05
+3.9781003561369872E-05
+3.9370083562236141E-05
+3.8962202544682724E-05
+3.8557347302772259E-05
+3.8155504595654394E-05
+3.7756661394836796E-05
+3.7360804814581232E-05
+3.6967921976457758E-05
+3.6578000010241870E-05
+3.6191026005208620E-05
+3.5806986840084241E-05
+3.5425869337105877E-05
+3.5047660505807199E-05
+3.4672347518430261E-05
+3.4299917555638780E-05
+3.3930357805035724E-05
+3.3563655427618338E-05
+3.3199797394566661E-05
+3.2838770602750806E-05
+3.2480562107333635E-05
+3.2125159141068238E-05
+3.1772548948817826E-05
+3.1422718783750657E-05
+3.1075655882845380E-05
+3.0731347314860683E-05
+3.0389780058426063E-05
+3.0050941222663653E-05
+2.9714818106907963E-05
+2.9381398026744449E-05
+2.9050668303381437E-05
+2.8722616249147940E-05
+2.8397229037742612E-05
+2.8074493744577161E-05
+2.7754397543771867E-05
+2.7436927799118169E-05
+2.7122071897438306E-05
+2.6809817236956283E-05
+2.6500151214031633E-05
+2.6193061109841340E-05
+2.5888534099324165E-05
+2.5586557430048476E-05
+2.5287118538643050E-05
+2.4990204892552360E-05
+2.4695803975339482E-05
+2.4403903274806646E-05
+2.4114490181545554E-05
+2.3827551970253542E-05
+2.3543075967607491E-05
+2.3261049692702508E-05
+2.2981460705244071E-05
+2.2704296578128146E-05
+2.2429544890715659E-05
+2.2157193146191594E-05
+2.1887228730161672E-05
+2.1619639060979432E-05
+2.1354411744506260E-05
+2.1091534438583224E-05
+2.0830994810355500E-05
+2.0572780533657211E-05
+2.0316879227316414E-05
+2.0063278399386129E-05
+1.9811965573410653E-05
+1.9562928442202514E-05
+1.9316154761000689E-05
+1.9071632299797455E-05
+1.8829348842929534E-05
+1.8589292132767674E-05
+1.8351449799238462E-05
+1.8115809473693630E-05
+1.7882358946039778E-05
+1.7651086082747072E-05
+1.7421978762712993E-05
+1.7195024879981360E-05
+1.6970212300154163E-05
+1.6747528785424380E-05
+1.6526962087916232E-05
+1.6308500101083070E-05
+1.6092130807113968E-05
+1.5877842199520959E-05
+1.5665622288171842E-05
+1.5455459065706822E-05
+1.5247340436501895E-05
+1.5041254286286918E-05
+1.4837188619227422E-05
+1.4635131535633515E-05
+1.4435071148694361E-05
+1.4236995593270713E-05
+1.4040892995122509E-05
+1.3846751404554601E-05
+1.3654558846301461E-05
+1.3464303442925928E-05
+1.3275973419443249E-05
+1.3089557016741050E-05
+1.2905042506962186E-05
+1.2722418159470225E-05
+1.2541672171908327E-05
+1.2362792707136189E-05
+1.2185768014463574E-05
+1.2010586460370757E-05
+1.1837236426125426E-05
+1.1665706317481273E-05
+1.1495984541732953E-05
+1.1328059454540553E-05
+1.1161919377850716E-05
+1.0997552699534065E-05
+1.0834947924053576E-05
+1.0674093573669270E-05
+1.0514978201061120E-05
+1.0357590366161426E-05
+1.0201918586959637E-05
+1.0047951345441929E-05
+9.8956771746972076E-06
+9.7450847276739742E-06
+9.5961626785829722E-06
+9.4488997326638813E-06
+9.3032846070002195E-06
+9.1593059869520422E-06
+9.0169525225308920E-06
+8.8762129017369635E-06
+8.7370759334036514E-06
+8.5995304523494650E-06
+8.4635653231316690E-06
+8.3291694261602210E-06
+8.1963316199920029E-06
+8.0650407315139698E-06
+7.9352856140068031E-06
+7.8070552376831680E-06
+7.6803386045866125E-06
+7.5551247462129141E-06
+7.4314027148773745E-06
+7.3091615486154187E-06
+7.1883902579345816E-06
+7.0690778707535631E-06
+6.9512135260806492E-06
+6.8347864019026316E-06
+6.7197857039320784E-06
+6.6062006633040568E-06
+6.4940205032963128E-06
+6.3832344256011299E-06
+6.2738316426273001E-06
+6.1658014697106264E-06
+6.0591332690039324E-06
+5.9538164281196158E-06
+5.8498403645821452E-06
+5.7471944933116700E-06
+5.6458682151142673E-06
+5.5458509369436722E-06
+5.4471321576983257E-06
+5.3497014304250285E-06
+5.2535483324352099E-06
+5.1586624771880782E-06
+5.0650334791734789E-06
+4.9726509440430036E-06
+4.8815044806963686E-06
+4.7915837806311327E-06
+4.7028785980764117E-06
+4.6153787087012062E-06
+4.5290739278516115E-06
+4.4439540754260098E-06
+4.3600089704055245E-06
+4.2772284346435755E-06
+4.1956023607884761E-06
+4.1151207107408774E-06
+4.0357734662330574E-06
+3.9575506534570849E-06
+3.8804423064062744E-06
+3.8044384638201687E-06
+3.7295291683609491E-06
+3.6557045229566721E-06
+3.5829547065266517E-06
+3.5112699163219435E-06
+3.4406403966413189E-06
+3.3710564029831611E-06
+3.3025082012573067E-06
+3.2349860645733704E-06
+3.1684803155329384E-06
+3.1029813574036995E-06
+3.0384796114785631E-06
+2.9749655485406152E-06
+2.9124296547022433E-06
+2.8508624301664508E-06
+2.7902543867294264E-06
+2.7305960762015539E-06
+2.6718781349755641E-06
+2.6140912182112651E-06
+2.5572260309076373E-06
+2.5012732980975583E-06
+2.4462237617170613E-06
+2.3920681812810278E-06
+2.3387973478155252E-06
+2.2864021386247441E-06
+2.2348734518228086E-06
+2.1842022351296269E-06
+2.1343794620059458E-06
+2.0853961239221999E-06
+2.0372432362599204E-06
+1.9899118391693397E-06
+1.9433930593577649E-06
+1.8976780477758641E-06
+1.8527580033187238E-06
+1.8086241569277464E-06
+1.7652677576471176E-06
+1.7226800850444310E-06
+1.6808524386687009E-06
+1.6397762030849874E-06
+1.5994427920295251E-06
+1.5598436640779513E-06
+1.5209703163617487E-06
+1.4828142638716291E-06
+1.4453670594291857E-06
+1.4086202729887018E-06
+1.3725655551963209E-06
+1.3371945917148705E-06
+1.3024991096884833E-06
+1.2684708820706756E-06
+1.2351016988747810E-06
+1.2023833943588790E-06
+1.1703078191306950E-06
+1.1388668988809230E-06
+1.1080526009624446E-06
+1.0778569304810248E-06
+1.0482719459383185E-06
+1.0192897219989225E-06
+9.9090238186612715E-07
+9.6310206623159323E-07
+9.3588098550425191E-07
+9.0923139971605454E-07
+8.8314560179036284E-07
+8.5761594381693689E-07
+8.3263479412075660E-07
+8.0819457395186381E-07
+7.8428772552080625E-07
+7.6090675338612857E-07
+7.3804421913269593E-07
+7.1569271313634935E-07
+6.9384489081558751E-07
+6.7249342480741551E-07
+6.5163104265226501E-07
+6.3125049802579437E-07
+6.1134459946995355E-07
+5.9190622003854064E-07
+5.7292825801160601E-07
+5.5440368122409660E-07
+5.3632547699142542E-07
+5.1868668785382572E-07
+5.0148038925643022E-07
+4.8469970394473256E-07
+4.6833782611197439E-07
+4.5238797270467524E-07
+4.3684343310165724E-07
+4.2169751997201904E-07
+4.0694359983482836E-07
+3.9257508007049414E-07
+3.7858540814267483E-07
+3.6496810902496898E-07
+3.5171672945187971E-07
+3.3882488953156126E-07
+3.2628623813238945E-07
+3.1409447509635001E-07
+3.0224334984570227E-07
+2.9072664542887673E-07
+2.7953822724170551E-07
+2.6867198309705778E-07
+2.5812187323739856E-07
+2.4788189360269349E-07
+2.3794608707954241E-07
+2.2830855516064391E-07
+2.1896342772387490E-07
+2.0990492022301848E-07
+2.0112727298891227E-07
+1.9262479610093000E-07
+1.8439184345268616E-07
+1.7642281111580144E-07
+1.6871216258656673E-07
+1.6125438621210287E-07
+1.5404405709958989E-07
+1.4707577964485479E-07
+1.4034422382613097E-07
+1.3384411241915627E-07
+1.2757020529271328E-07
+1.2151733773739048E-07
+1.1568036838541337E-07
+1.1005424176012716E-07
+1.0463393797916402E-07
+9.9414497332427949E-08
+9.4391022311153359E-08
+8.9558647690469155E-08
+8.4912590392743696E-08
+8.0448091291407411E-08
+7.6160474345630471E-08
+7.2045106953603279E-08
+6.8097410492434935E-08
+6.4312877953614288E-08
+6.0687030677545078E-08
+5.7215477007367416E-08
+5.3893852088902188E-08
+5.0717869705167719E-08
+4.7683296113412199E-08
+4.4785944972379249E-08
+4.2021710392662330E-08
+3.9386512424390874E-08
+3.6876360619015094E-08
+3.4487296534541249E-08
+3.2215434502382282E-08
+3.0056951128111295E-08
+2.8008063992293534E-08
+2.6065078910175158E-08
+2.4224327118665168E-08
+2.2482229366658030E-08
+2.0835245753419048E-08
+1.9279902252803504E-08
+1.7812797233104470E-08
+1.6430564322938792E-08
+1.5129931572797592E-08
+1.3907654049653017E-08
+1.2760574061543463E-08
+1.1685582351816083E-08
+1.0679628026979709E-08
+9.7397424946468995E-09
+8.8629880600680239E-09
+8.0465254909654640E-09
+7.2875464919444832E-09
+6.5833256879688662E-09
+5.9311965014569381E-09
+5.3285430930688386E-09
+4.7728410651625686E-09
+4.2615945089950252E-09
+3.7924073850788373E-09
+3.3629209510883618E-09
+2.9708533357615476E-09
+2.6139925929105327E-09
+2.2901703262238967E-09
+1.9973174265931076E-09
+1.7333930969612831E-09
+1.4964552442131602E-09
+1.2846075910052033E-09
+1.0960234169194144E-09
+9.2895725245415432E-10
+7.8170104009561958E-10
+6.5265199647703687E-10
+5.4023790085085291E-10
+4.4298173193207327E-10
+3.5946252662814657E-10
+2.8832085439110457E-10
+2.2828944989855323E-10
+1.7813404308962129E-10
+1.3672909769435065E-10
+1.0298451603637484E-10
+7.5899974836367968E-11
+5.4542779555650022E-11
+3.8033345273815086E-11
+2.5593550421995773E-11
+1.6476473143976347E-11
+1.0046753489732067E-11
+5.7124861543616743E-12
+2.9581551408274362E-12
+1.3421354050304506E-12
+4.7985639959493301E-13
+1.2675640305564426E-13
+6.0650062549853318E-14
+5.9352025216684467E-14
+3.4675767914034056E-01
+3.4668560572990209E-01
+3.4661351345472829E-01
+3.4654140232722302E-01
+3.4646927235979008E-01
+3.4639712356483338E-01
+3.4632495595475682E-01
+3.4625276954196421E-01
+3.4618056433885935E-01
+3.4610834035784621E-01
+3.4603609761132859E-01
+3.4596383611171033E-01
+3.4589155587139531E-01
+3.4581925690278742E-01
+3.4574693921829047E-01
+3.4567460283030826E-01
+3.4560224775124482E-01
+3.4552987399350382E-01
+3.4545748156948924E-01
+3.4538507049160488E-01
+3.4531264077225465E-01
+3.4524019242384230E-01
+3.4516772545877183E-01
+3.4509523988944701E-01
+3.4502273572827169E-01
+3.4495021298764977E-01
+3.4487767167998512E-01
+3.4480511181768153E-01
+3.4473253341314286E-01
+3.4465993647877302E-01
+3.4458732102697587E-01
+3.4451468707015526E-01
+3.4444203462071499E-01
+3.4436936369105897E-01
+3.4429667429359112E-01
+3.4422396644071512E-01
+3.4415124014483495E-01
+3.4407849541835450E-01
+3.4400573227367753E-01
+3.4393295072320795E-01
+3.4386015077934956E-01
+3.4378733245450632E-01
+3.4371449576108210E-01
+3.4364164071148062E-01
+3.4356876731810576E-01
+3.4349587559336148E-01
+3.4342296554965163E-01
+3.4335003719937995E-01
+3.4327709055495037E-01
+3.4320412562876679E-01
+3.4313114243323301E-01
+3.4305814098075288E-01
+3.4298512128373027E-01
+3.4291208335456907E-01
+3.4283902720567311E-01
+3.4276595284944616E-01
+3.4269286029829227E-01
+3.4261974956461516E-01
+3.4254662066081876E-01
+3.4247347359930680E-01
+3.4240030839248325E-01
+3.4232712505275198E-01
+3.4225392359251683E-01
+3.4218070402418160E-01
+3.4210746636015016E-01
+3.4203421061282641E-01
+3.4196093679461420E-01
+3.4188764491791734E-01
+3.4181433499513975E-01
+3.4174100703868526E-01
+3.4166766106095769E-01
+3.4159429707436095E-01
+3.4152091509129889E-01
+3.4144751512417537E-01
+3.4137409718539424E-01
+3.4130066128735931E-01
+3.4122720744247448E-01
+3.4115373566314366E-01
+3.4108024596177067E-01
+3.4100673835075929E-01
+3.4093321284251349E-01
+3.4085966944943702E-01
+3.4078610818393379E-01
+3.4071252905840771E-01
+3.4063893208526252E-01
+3.4056531727690226E-01
+3.4049168464573060E-01
+3.4041803420415145E-01
+3.4034436596456868E-01
+3.4027067993938620E-01
+3.4019697614100780E-01
+3.4012325458183734E-01
+3.4004951527427874E-01
+3.3997575823073578E-01
+3.3990198346361233E-01
+3.3982819098531231E-01
+3.3975438080823950E-01
+3.3968055294479782E-01
+3.3960670740739113E-01
+3.3953284420842317E-01
+3.3945896336029791E-01
+3.3938506487541925E-01
+3.3931114876619090E-01
+3.3923721504501680E-01
+3.3916326372430083E-01
+3.3908929481644684E-01
+3.3901530833385862E-01
+3.3894130428894004E-01
+3.3886728269409505E-01
+3.3879324356172746E-01
+3.3871918690424108E-01
+3.3864511273403980E-01
+3.3857102106352754E-01
+3.3849691190510800E-01
+3.3842278527118519E-01
+3.3834864117416291E-01
+3.3827447962644502E-01
+3.3820030064043538E-01
+3.3812610422853784E-01
+3.3805189040315625E-01
+3.3797765917669448E-01
+3.3790341056155637E-01
+3.3782914457014585E-01
+3.3775486121486664E-01
+3.3768056050812273E-01
+3.3760624246231796E-01
+3.3753190708985609E-01
+3.3745755440314101E-01
+3.3738318441457665E-01
+3.3730879713656681E-01
+3.3723439258151539E-01
+3.3715997076182619E-01
+3.3708553168990307E-01
+3.3701107537814995E-01
+3.3693660183897062E-01
+3.3686211108476899E-01
+3.3678760312794892E-01
+3.3671307798091415E-01
+3.3663853565606872E-01
+3.3656397616581635E-01
+3.3648939952256096E-01
+3.3641480573870636E-01
+3.3634019482665645E-01
+3.3626556679881509E-01
+3.3619092166758613E-01
+3.3611625944537338E-01
+3.3604158014458074E-01
+3.3596688377761208E-01
+3.3589217035687124E-01
+3.3581743989476204E-01
+3.3574269240368843E-01
+3.3566792789605421E-01
+3.3559314638426324E-01
+3.3551834788071927E-01
+3.3544353239782637E-01
+3.3536869994798824E-01
+3.3529385054360888E-01
+3.3521898419709195E-01
+3.3514410092084146E-01
+3.3506920072726121E-01
+3.3499428362875505E-01
+3.3491934963772685E-01
+3.3484439876658051E-01
+3.3476943102771989E-01
+3.3469444643354873E-01
+3.3461944499647095E-01
+3.3454442672889045E-01
+3.3446939164321099E-01
+3.3439433975183663E-01
+3.3431927106717102E-01
+3.3424418560161806E-01
+3.3416908336758167E-01
+3.3409396437746569E-01
+3.3401882864367388E-01
+3.3394367617861026E-01
+3.3386850699467857E-01
+3.3379332110428273E-01
+3.3371811851982652E-01
+3.3364289925371388E-01
+3.3356766331834869E-01
+3.3349241072613467E-01
+3.3341714148947577E-01
+3.3334185562077584E-01
+3.3326655313243880E-01
+3.3319123403686834E-01
+3.3311589834646843E-01
+3.3304054607364292E-01
+3.3296517723079572E-01
+3.3288979183033057E-01
+3.3281438988465140E-01
+3.3273897140616204E-01
+3.3266353640726642E-01
+3.3258808490036829E-01
+3.3251261689787159E-01
+3.3243713241218009E-01
+3.3236163145569775E-01
+3.3228611404082831E-01
+3.3221058017997573E-01
+3.3213502988554383E-01
+3.3205946316993651E-01
+3.3198388004555757E-01
+3.3190828052481081E-01
+3.3183266462010019E-01
+3.3175703234382958E-01
+3.3168138370840278E-01
+3.3160571872622363E-01
+3.3153003740969605E-01
+3.3145433977122390E-01
+3.3137862582321093E-01
+3.3130289557806109E-01
+3.3122714904817824E-01
+3.3115138624596624E-01
+3.3107560718382889E-01
+3.3099981187417005E-01
+3.3092400032939367E-01
+3.3084817256190346E-01
+3.3077232858410344E-01
+3.3069646840839728E-01
+3.3062059204718908E-01
+3.3054469951288251E-01
+3.3046879081788144E-01
+3.3039286597458983E-01
+3.3031692499541149E-01
+3.3024096789275015E-01
+3.3016499467900989E-01
+3.3008900536659436E-01
+3.3001299996790756E-01
+3.2993697849535336E-01
+3.2986094096133550E-01
+3.2978488737825784E-01
+3.2970881775852440E-01
+3.2963273211453886E-01
+3.2955663045870520E-01
+3.2948051280342716E-01
+3.2940437916110865E-01
+3.2932822954415358E-01
+3.2925206396496581E-01
+3.2917588243594909E-01
+3.2909968496950737E-01
+3.2902347157804446E-01
+3.2894724227396427E-01
+3.2887099706967055E-01
+3.2879473597756731E-01
+3.2871845901005825E-01
+3.2864216617954733E-01
+3.2856585749843842E-01
+3.2848953297913530E-01
+3.2841319263404189E-01
+3.2833683647556200E-01
+3.2826046451609947E-01
+3.2818407676805827E-01
+3.2810767324384216E-01
+3.2803125395585503E-01
+3.2795481891650069E-01
+3.2787836813818305E-01
+3.2780190163330597E-01
+3.2772541941427324E-01
+3.2764892149348884E-01
+3.2757240788335656E-01
+3.2749587859628021E-01
+3.2741933364466363E-01
+3.2734277304091086E-01
+3.2726619679742558E-01
+3.2718960492661170E-01
+3.2711299744087308E-01
+3.2703637435261357E-01
+3.2695973567423697E-01
+3.2688308141814731E-01
+3.2680641159674823E-01
+3.2672972622244378E-01
+3.2665302530763768E-01
+3.2657630886473388E-01
+3.2649957690613618E-01
+3.2642282944424844E-01
+3.2634606649147457E-01
+3.2626928806021832E-01
+3.2619249416288365E-01
+3.2611568481187436E-01
+3.2603886001959442E-01
+3.2596201979844747E-01
+3.2588516416083751E-01
+3.2580829311916848E-01
+3.2573140668584410E-01
+3.2565450487326819E-01
+3.2557758769384476E-01
+3.2550065515997756E-01
+3.2542370728407050E-01
+3.2534674407852737E-01
+3.2526976555575210E-01
+3.2519277172814853E-01
+3.2511576260812047E-01
+3.2503873820807183E-01
+3.2496169854040646E-01
+3.2488464361752822E-01
+3.2480757345184091E-01
+3.2473048805574845E-01
+3.2465338744165467E-01
+3.2457627162196351E-01
+3.2449914060907870E-01
+3.2442199441540409E-01
+3.2434483305334366E-01
+3.2426765653530126E-01
+3.2419046487368058E-01
+3.2411325808088565E-01
+3.2403603616932025E-01
+3.2395879915138831E-01
+3.2388154703949357E-01
+3.2380427984603993E-01
+3.2372699758343126E-01
+3.2364970026407153E-01
+3.2357238790036441E-01
+3.2349506050471383E-01
+3.2341771808952369E-01
+3.2334036066719779E-01
+3.2326298825013999E-01
+3.2318560085075421E-01
+3.2310819848144429E-01
+3.2303078115461398E-01
+3.2295334888266725E-01
+3.2287590167800789E-01
+3.2279843955303983E-01
+3.2272096252016691E-01
+3.2264347059179294E-01
+3.2256596378032182E-01
+3.2248844209815741E-01
+3.2241090555770346E-01
+3.2233335417136399E-01
+3.2225578795154275E-01
+3.2217820691064364E-01
+3.2210061106107057E-01
+3.2202300041522725E-01
+3.2194537498551767E-01
+3.2186773478434560E-01
+3.2179007982411495E-01
+3.2171241011722956E-01
+3.2163472567609330E-01
+3.2155702651311002E-01
+3.2147931264068358E-01
+3.2140158407121783E-01
+3.2132384081711662E-01
+3.2124608289078382E-01
+3.2116831030462334E-01
+3.2109052307103891E-01
+3.2101272120243446E-01
+3.2093490471121383E-01
+3.2085707360978094E-01
+3.2077922791053959E-01
+3.2070136762589363E-01
+3.2062349276824698E-01
+3.2054560335000343E-01
+3.2046769938356684E-01
+3.2038978088134107E-01
+3.2031184785573003E-01
+3.2023390031913751E-01
+3.2015593828396743E-01
+3.2007796176262360E-01
+3.1999997076750991E-01
+3.1992196531103018E-01
+3.1984394540558830E-01
+3.1976591106358809E-01
+3.1968786229743346E-01
+3.1960979911952819E-01
+3.1953172154227627E-01
+3.1945362957808138E-01
+3.1937552323934754E-01
+3.1929740253847849E-01
+3.1921926748787816E-01
+3.1914111809995044E-01
+3.1906295438709903E-01
+3.1898477636172790E-01
+3.1890658403624089E-01
+3.1882837742304193E-01
+3.1875015653453481E-01
+3.1867192138312334E-01
+3.1859367198121136E-01
+3.1851540834120290E-01
+3.1843713047550165E-01
+3.1835883839651152E-01
+3.1828053211663637E-01
+3.1820221164828005E-01
+3.1812387700384648E-01
+3.1804552819573945E-01
+3.1796716523636281E-01
+3.1788878813812044E-01
+3.1781039691341623E-01
+3.1773199157465393E-01
+3.1765357213423751E-01
+3.1757513860457076E-01
+3.1749669099805761E-01
+3.1741822932710184E-01
+3.1733975360410732E-01
+3.1726126384147801E-01
+3.1718276005161761E-01
+3.1710424224693001E-01
+3.1702571043981920E-01
+3.1694716464268885E-01
+3.1686860486794305E-01
+3.1679003112798543E-01
+3.1671144343521990E-01
+3.1663284180205042E-01
+3.1655422624088075E-01
+3.1647559676411474E-01
+3.1639695338415635E-01
+3.1631829611340934E-01
+3.1623962496427765E-01
+3.1616093994916500E-01
+3.1608224108047533E-01
+3.1600352837061263E-01
+3.1592480183198057E-01
+3.1584606147698302E-01
+3.1576730731802388E-01
+3.1568853936750702E-01
+3.1560975763783633E-01
+3.1553096214141557E-01
+3.1545215289064871E-01
+3.1537332989793948E-01
+3.1529449317569186E-01
+3.1521564273630964E-01
+3.1513677859219669E-01
+3.1505790075575679E-01
+3.1497900923939404E-01
+3.1490010405551200E-01
+3.1482118521651470E-01
+3.1474225273480594E-01
+3.1466330662278963E-01
+3.1458434689286957E-01
+3.1450537355744962E-01
+3.1442638662893369E-01
+3.1434738611972557E-01
+3.1426837204222913E-01
+3.1418934440884827E-01
+3.1411030323198691E-01
+3.1403124852404873E-01
+3.1395218029743766E-01
+3.1387309856455758E-01
+3.1379400333781243E-01
+3.1371489462960594E-01
+3.1363577245234198E-01
+3.1355663681842444E-01
+3.1347748774025719E-01
+3.1339832523024408E-01
+3.1331914930078891E-01
+3.1323995996429560E-01
+3.1316075723316805E-01
+3.1308154111980996E-01
+3.1300231163662534E-01
+3.1292306879601800E-01
+3.1284381261039179E-01
+3.1276454309215052E-01
+3.1268526025369814E-01
+3.1260596410743846E-01
+3.1252665466577534E-01
+3.1244733194111257E-01
+3.1236799594585413E-01
+3.1228864669240386E-01
+3.1220928419316551E-01
+3.1212990846054306E-01
+3.1205051950694024E-01
+3.1197111734476107E-01
+3.1189170198640925E-01
+3.1181227344428869E-01
+3.1173283173080329E-01
+3.1165337685835692E-01
+3.1157390883935338E-01
+3.1149442768619651E-01
+3.1141493341129017E-01
+3.1133542602703829E-01
+3.1125590554584470E-01
+3.1117637198011322E-01
+3.1109682534224775E-01
+3.1101726564465210E-01
+3.1093769289973017E-01
+3.1085810711988576E-01
+3.1077850831752279E-01
+3.1069889650504512E-01
+3.1061927169485654E-01
+3.1053963389936101E-01
+3.1045998313096229E-01
+3.1038031940206429E-01
+3.1030064272507080E-01
+3.1022095311238579E-01
+3.1014125057641301E-01
+3.1006153512955642E-01
+3.0998180678421972E-01
+3.0990206555280697E-01
+3.0982231144772193E-01
+3.0974254448136834E-01
+3.0966276466615023E-01
+3.0958297201447144E-01
+3.0950316653873572E-01
+3.0942334825134704E-01
+3.0934351716470915E-01
+3.0926367329122600E-01
+3.0918381664330141E-01
+3.0910394723333923E-01
+3.0902406507374330E-01
+3.0894417017691755E-01
+3.0886426255526578E-01
+3.0878434222119189E-01
+3.0870440918709968E-01
+3.0862446346539302E-01
+3.0854450506847581E-01
+3.0846453400875185E-01
+3.0838455029862499E-01
+3.0830455395049916E-01
+3.0822454497677815E-01
+3.0814452338986592E-01
+3.0806448920216617E-01
+3.0798444242608286E-01
+3.0790438307401991E-01
+3.0782431115838105E-01
+3.0774422669157014E-01
+3.0766412968599105E-01
+3.0758402015404773E-01
+3.0750389810814399E-01
+3.0742376356068363E-01
+3.0734361652407055E-01
+3.0726345701070867E-01
+3.0718328503300174E-01
+3.0710310060335361E-01
+3.0702290373416824E-01
+3.0694269443784938E-01
+3.0686247272680101E-01
+3.0678223861342691E-01
+3.0670199211013094E-01
+3.0662173322931696E-01
+3.0654146198338883E-01
+3.0646117838475040E-01
+3.0638088244580552E-01
+3.0630057417895806E-01
+3.0622025359661192E-01
+3.0613992071117091E-01
+3.0605957553503882E-01
+3.0597921808061967E-01
+3.0589884836031722E-01
+3.0581846638653531E-01
+3.0573807217167781E-01
+3.0565766572814862E-01
+3.0557724706835154E-01
+3.0549681620469044E-01
+3.0541637314956926E-01
+3.0533591791539172E-01
+3.0525545051456177E-01
+3.0517497095948326E-01
+3.0509447926256000E-01
+3.0501397543619591E-01
+3.0493345949279482E-01
+3.0485293144476056E-01
+3.0477239130449696E-01
+3.0469183908440800E-01
+3.0461127479689748E-01
+3.0453069845436920E-01
+3.0445011006922706E-01
+3.0436950965387494E-01
+3.0428889722071661E-01
+3.0420827278215601E-01
+3.0412763635059697E-01
+3.0404698793844348E-01
+3.0396632755809916E-01
+3.0388565522196798E-01
+3.0380497094245379E-01
+3.0372427473196051E-01
+3.0364356660289188E-01
+3.0356284656765187E-01
+3.0348211463864422E-01
+3.0340137082827290E-01
+3.0332061514894171E-01
+3.0323984761305450E-01
+3.0315906823301519E-01
+3.0307827702122753E-01
+3.0299747399009552E-01
+3.0291665915202287E-01
+3.0283583251941354E-01
+3.0275499410467133E-01
+3.0267414392020009E-01
+3.0259328197840368E-01
+3.0251240829168607E-01
+3.0243152287245101E-01
+3.0235062573310234E-01
+3.0226971688604398E-01
+3.0218879634367979E-01
+3.0210786411841350E-01
+3.0202692022264910E-01
+3.0194596466879048E-01
+3.0186499746924139E-01
+3.0178401863640569E-01
+3.0170302818268735E-01
+3.0162202612049011E-01
+3.0154101246221787E-01
+3.0145998722027445E-01
+3.0137895040706381E-01
+3.0129790203498968E-01
+3.0121684211645600E-01
+3.0113577066386665E-01
+3.0105468768962534E-01
+3.0097359320613615E-01
+3.0089248722580270E-01
+3.0081136976102901E-01
+3.0073024082421895E-01
+3.0064910042777626E-01
+3.0056794858410485E-01
+3.0048678530560857E-01
+3.0040561060469134E-01
+3.0032442449375696E-01
+3.0024322698520928E-01
+3.0016201809145215E-01
+3.0008079782488944E-01
+2.9999956619792506E-01
+2.9991832322296280E-01
+2.9983706891240658E-01
+2.9975580327866014E-01
+2.9967452633412750E-01
+2.9959323809121235E-01
+2.9951193856231867E-01
+2.9943062775985024E-01
+2.9934930569621099E-01
+2.9926797238380476E-01
+2.9918662783503536E-01
+2.9910527206230669E-01
+2.9902390507802262E-01
+2.9894252689458689E-01
+2.9886113752440352E-01
+2.9877973697987625E-01
+2.9869832527340900E-01
+2.9861690241740563E-01
+2.9853546842426998E-01
+2.9845402330640586E-01
+2.9837256707621718E-01
+2.9829109974610779E-01
+2.9820962132848156E-01
+2.9812813183574233E-01
+2.9804663128029396E-01
+2.9796511967454031E-01
+2.9788359703088518E-01
+2.9780206336173259E-01
+2.9772051867948623E-01
+2.9763896299655002E-01
+2.9755739632532779E-01
+2.9747581867822337E-01
+2.9739423006764076E-01
+2.9731263050598372E-01
+2.9723102000565604E-01
+2.9714939857906170E-01
+2.9706776623860454E-01
+2.9698612299668831E-01
+2.9690446886571698E-01
+2.9682280385809434E-01
+2.9674112798622432E-01
+2.9665944126251070E-01
+2.9657774369935735E-01
+2.9649603530916818E-01
+2.9641431610434704E-01
+2.9633258609729768E-01
+2.9625084530042411E-01
+2.9616909372613009E-01
+2.9608733138681953E-01
+2.9600555829489616E-01
+2.9592377446276402E-01
+2.9584197990282690E-01
+2.9576017462748866E-01
+2.9567835864915304E-01
+2.9559653198022406E-01
+2.9551469463310553E-01
+2.9543284662020125E-01
+2.9535098795391512E-01
+2.9526911864665101E-01
+2.9518723871081276E-01
+2.9510534815880424E-01
+2.9502344700302924E-01
+2.9494153525589173E-01
+2.9485961292979551E-01
+2.9477768003714444E-01
+2.9469573659034232E-01
+2.9461378260179311E-01
+2.9453181808390055E-01
+2.9444984304906868E-01
+2.9436785750970124E-01
+2.9428586147820202E-01
+2.9420385496697499E-01
+2.9412183798842395E-01
+2.9403981055495276E-01
+2.9395777267896533E-01
+2.9387572437286541E-01
+2.9379366564905696E-01
+2.9371159651994383E-01
+2.9362951699792977E-01
+2.9354742709541881E-01
+2.9346532682481463E-01
+2.9338321619852126E-01
+2.9330109522894243E-01
+2.9321896392848207E-01
+2.9313682230954391E-01
+2.9305467038453198E-01
+2.9297250816585002E-01
+2.9289033566590195E-01
+2.9280815289709156E-01
+2.9272595987182276E-01
+2.9264375660249942E-01
+2.9256154310152538E-01
+2.9247931938130445E-01
+2.9239708545424059E-01
+2.9231484133273750E-01
+2.9223258702919924E-01
+2.9215032255602946E-01
+2.9206804792563218E-01
+2.9198576315041119E-01
+2.9190346824277036E-01
+2.9182116321511348E-01
+2.9173884807984451E-01
+2.9165652284936727E-01
+2.9157418753608561E-01
+2.9149184215240331E-01
+2.9140948671072442E-01
+2.9132712122345261E-01
+2.9124474570299180E-01
+2.9116236016174590E-01
+2.9107996461211871E-01
+2.9099755906651409E-01
+2.9091514353733594E-01
+2.9083271803698801E-01
+2.9075028257787433E-01
+2.9066783717239858E-01
+2.9058538183296473E-01
+2.9050291657197663E-01
+2.9042044140183804E-01
+2.9033795633495291E-01
+2.9025546138372516E-01
+2.9017295656055847E-01
+2.9009044187785682E-01
+2.9000791734802406E-01
+2.8992538298346399E-01
+2.8984283879658052E-01
+2.8976028479977745E-01
+2.8967772100545869E-01
+2.8959514742602810E-01
+2.8951256407388953E-01
+2.8942997096144679E-01
+2.8934736810110384E-01
+2.8926475550526443E-01
+2.8918213318633246E-01
+2.8909950115671179E-01
+2.8901685942880623E-01
+2.8893420801501979E-01
+2.8885154692775611E-01
+2.8876887617941921E-01
+2.8868619578241289E-01
+2.8860350574914101E-01
+2.8852080609200736E-01
+2.8843809682341592E-01
+2.8835537795577049E-01
+2.8827264950147502E-01
+2.8818991147293316E-01
+2.8810716388254887E-01
+2.8802440674272611E-01
+2.8794164006586859E-01
+2.8785886386438020E-01
+2.8777607815066486E-01
+2.8769328293712643E-01
+2.8761047823616864E-01
+2.8752766406019548E-01
+2.8744484042161078E-01
+2.8736200733281836E-01
+2.8727916480622206E-01
+2.8719631285422581E-01
+2.8711345148923340E-01
+2.8703058072364879E-01
+2.8694770056987573E-01
+2.8686481104031808E-01
+2.8678191214737975E-01
+2.8669900390346459E-01
+2.8661608632097640E-01
+2.8653315941231911E-01
+2.8645022318989655E-01
+2.8636727766611259E-01
+2.8628432285337102E-01
+2.8620135876407576E-01
+2.8611838541063067E-01
+2.8603540280543965E-01
+2.8595241096090646E-01
+2.8586940988943493E-01
+2.8578639960342911E-01
+2.8570338011529267E-01
+2.8562035143742948E-01
+2.8553731358224355E-01
+2.8545426656213857E-01
+2.8537121038951846E-01
+2.8528814507678707E-01
+2.8520507063634826E-01
+2.8512198708060599E-01
+2.8503889442196395E-01
+2.8495579267282606E-01
+2.8487268184559622E-01
+2.8478956195267818E-01
+2.8470643300647591E-01
+2.8462329501939326E-01
+2.8454014800383398E-01
+2.8445699197220209E-01
+2.8437382693690133E-01
+2.8429065291033551E-01
+2.8420746990490869E-01
+2.8412427793302447E-01
+2.8404107700708692E-01
+2.8395786713949978E-01
+2.8387464834266696E-01
+2.8379142062899232E-01
+2.8370818401087966E-01
+2.8362493850073289E-01
+2.8354168411095587E-01
+2.8345842085395240E-01
+2.8337514874212638E-01
+2.8329186778788168E-01
+2.8320857800362215E-01
+2.8312527940175158E-01
+2.8304197199467396E-01
+2.8295865579479301E-01
+2.8287533081451266E-01
+2.8279199706623681E-01
+2.8270865456236921E-01
+2.8262530331531377E-01
+2.8254194333747434E-01
+2.8245857464125484E-01
+2.8237519723905902E-01
+2.8229181114329077E-01
+2.8220841636635402E-01
+2.8212501292065256E-01
+2.8204160081859025E-01
+2.8195818007257095E-01
+2.8187475069499857E-01
+2.8179131269827684E-01
+2.8170786609480974E-01
+2.8162441089700113E-01
+2.8154094711725480E-01
+2.8145747476797461E-01
+2.8137399386156442E-01
+2.8129050441042813E-01
+2.8120700642696961E-01
+2.8112349992359265E-01
+2.8103998491270110E-01
+2.8095646140669889E-01
+2.8087292941798986E-01
+2.8078938895897781E-01
+2.8070584004206667E-01
+2.8062228267966022E-01
+2.8053871688416243E-01
+2.8045514266797705E-01
+2.8037156004350794E-01
+2.8028796902315906E-01
+2.8020436961933415E-01
+2.8012076184443713E-01
+2.8003714571087185E-01
+2.7995352123104211E-01
+2.7986988841735189E-01
+2.7978624728220497E-01
+2.7970259783800516E-01
+2.7961894009715643E-01
+2.7953527407206258E-01
+2.7945159977512740E-01
+2.7936791721875481E-01
+2.7928422641534872E-01
+2.7920052737731299E-01
+2.7911682011705136E-01
+2.7903310464696768E-01
+2.7894938097946598E-01
+2.7886564912695000E-01
+2.7878190910182360E-01
+2.7869816091649063E-01
+2.7861440458335496E-01
+2.7853064011482048E-01
+2.7844686752329101E-01
+2.7836308682117039E-01
+2.7827929802086254E-01
+2.7819550113477132E-01
+2.7811169617530052E-01
+2.7802788315485399E-01
+2.7794406208583561E-01
+2.7786023298064938E-01
+2.7777639585169894E-01
+2.7769255071138821E-01
+2.7760869757212109E-01
+2.7752483644630149E-01
+2.7744096734633311E-01
+2.7735709028461991E-01
+2.7727320527356580E-01
+2.7718931232557448E-01
+2.7710541145304995E-01
+2.7702150266839598E-01
+2.7693758598401652E-01
+2.7685366141231532E-01
+2.7676972896569629E-01
+2.7668578865656329E-01
+2.7660184049732017E-01
+2.7651788450037079E-01
+2.7643392067811901E-01
+2.7634994904296867E-01
+2.7626596960732364E-01
+2.7618198238358782E-01
+2.7609798738416497E-01
+2.7601398462145899E-01
+2.7592997410787379E-01
+2.7584595585581317E-01
+2.7576192987768100E-01
+2.7567789618588112E-01
+2.7559385479281739E-01
+2.7550980571089373E-01
+2.7542574895251398E-01
+2.7534168453008190E-01
+2.7525761245600150E-01
+2.7517353274267647E-01
+2.7508944540251079E-01
+2.7500535044790825E-01
+2.7492124789127276E-01
+2.7483713774500818E-01
+2.7475302002151825E-01
+2.7466889473320699E-01
+2.7458476189247816E-01
+2.7450062151173565E-01
+2.7441647360338328E-01
+2.7433231817982495E-01
+2.7424815525346452E-01
+2.7416398483670584E-01
+2.7407980694195272E-01
+2.7399562158160906E-01
+2.7391142876807878E-01
+2.7382722851376556E-01
+2.7374302083107344E-01
+2.7365880573240614E-01
+2.7357458323016765E-01
+2.7349035333676169E-01
+2.7340611606459225E-01
+2.7332187142606307E-01
+2.7323761943357810E-01
+2.7315336009954116E-01
+2.7306909343635605E-01
+2.7298481945642672E-01
+2.7290053817215698E-01
+2.7281624959595074E-01
+2.7273195374021175E-01
+2.7264765061734392E-01
+2.7256334023975121E-01
+2.7247902261983725E-01
+2.7239469777000613E-01
+2.7231036570266159E-01
+2.7222602643020749E-01
+2.7214167996504773E-01
+2.7205732631958607E-01
+2.7197296550622652E-01
+2.7188859753737282E-01
+2.7180422242542890E-01
+2.7171984018279849E-01
+2.7163545082188562E-01
+2.7155105435509402E-01
+2.7146665079482762E-01
+2.7138224015349027E-01
+2.7129782244348571E-01
+2.7121339767721797E-01
+2.7112896586709079E-01
+2.7104452702550808E-01
+2.7096008116487375E-01
+2.7087562829759149E-01
+2.7079116843606532E-01
+2.7070670159269905E-01
+2.7062222777989642E-01
+2.7053774701006150E-01
+2.7045325929559799E-01
+2.7036876464890980E-01
+2.7028426308240083E-01
+2.7019975460847484E-01
+2.7011523923953573E-01
+2.7003071698798736E-01
+2.6994618786623359E-01
+2.6986165188667832E-01
+2.6977710906172536E-01
+2.6969255940377851E-01
+2.6960800292524173E-01
+2.6952343963851888E-01
+2.6943886955601370E-01
+2.6935429269013017E-01
+2.6926970905327208E-01
+2.6918511865784334E-01
+2.6910052151624775E-01
+2.6901591764088917E-01
+2.6893130704417145E-01
+2.6884668973849857E-01
+2.6876206573627420E-01
+2.6867743504990232E-01
+2.6859279769178679E-01
+2.6850815367433140E-01
+2.6842350300994006E-01
+2.6833884571101657E-01
+2.6825418178996485E-01
+2.6816951125918875E-01
+2.6808483413109208E-01
+2.6800015041807879E-01
+2.6791546013255257E-01
+2.6783076328691746E-01
+2.6774605989357725E-01
+2.6766134996493574E-01
+2.6757663351339683E-01
+2.6749191055136440E-01
+2.6740718109124229E-01
+2.6732244514543435E-01
+2.6723770272634439E-01
+2.6715295384637644E-01
+2.6706819851793412E-01
+2.6698343675342145E-01
+2.6689866856524225E-01
+2.6681389396580041E-01
+2.6672911296749968E-01
+2.6664432558274398E-01
+2.6655953182393721E-01
+2.6647473170348313E-01
+2.6638992523378568E-01
+2.6630511242724869E-01
+2.6622029329627606E-01
+2.6613546785327158E-01
+2.6605063611063912E-01
+2.6596579808078258E-01
+2.6588095377610577E-01
+2.6579610320901254E-01
+2.6571124639190680E-01
+2.6562638333719241E-01
+2.6554151405727311E-01
+2.6545663856455293E-01
+2.6537175687143555E-01
+2.6528686899032500E-01
+2.6520197493362507E-01
+2.6511707471373952E-01
+2.6503216834307236E-01
+2.6494725583402734E-01
+2.6486233719900837E-01
+2.6477741245041930E-01
+2.6469248160066394E-01
+2.6460754466214620E-01
+2.6452260164726998E-01
+2.6443765256843899E-01
+2.6435269743805723E-01
+2.6426773626852851E-01
+2.6418276907225668E-01
+2.6409779586164561E-01
+2.6401281664909909E-01
+2.6392783144702109E-01
+2.6384284026781540E-01
+2.6375784312388584E-01
+2.6367284002763636E-01
+2.6358783099147076E-01
+2.6350281602779291E-01
+2.6341779514900671E-01
+2.6333276836751590E-01
+2.6324773569572446E-01
+2.6316269714603618E-01
+2.6307765273085498E-01
+2.6299260246258460E-01
+2.6290754635362901E-01
+2.6282248441639205E-01
+2.6273741666327755E-01
+2.6265234310668933E-01
+2.6256726375903128E-01
+2.6248217863270734E-01
+2.6239708774012122E-01
+2.6231199109367692E-01
+2.6222688870577820E-01
+2.6214178058882892E-01
+2.6205666675523298E-01
+2.6197154721739424E-01
+2.6188642198771650E-01
+2.6180129107860367E-01
+2.6171615450245961E-01
+2.6163101227168811E-01
+2.6154586439869315E-01
+2.6146071089587847E-01
+2.6137555177564797E-01
+2.6129038705040553E-01
+2.6120521673255492E-01
+2.6112004083450013E-01
+2.6103485936864496E-01
+2.6094967234739319E-01
+2.6086447978314881E-01
+2.6077928168831555E-01
+2.6069407807529738E-01
+2.6060886895649810E-01
+2.6052365434432151E-01
+2.6043843425117158E-01
+2.6035320868945216E-01
+2.6026797767156701E-01
+2.6018274120992008E-01
+2.6009749931691512E-01
+2.6001225200495609E-01
+2.5992699928644680E-01
+2.5984174117379116E-01
+2.5975647767939297E-01
+2.5967120881565614E-01
+2.5958593459498441E-01
+2.5950065502978181E-01
+2.5941537013245203E-01
+2.5933007991539903E-01
+2.5924478439102666E-01
+2.5915948357173874E-01
+2.5907417746993916E-01
+2.5898886609803173E-01
+2.5890354946842037E-01
+2.5881822759350892E-01
+2.5873290048570119E-01
+2.5864756815740109E-01
+2.5856223062101247E-01
+2.5847688788893919E-01
+2.5839153997358505E-01
+2.5830618688735396E-01
+2.5822082864264978E-01
+2.5813546525187636E-01
+2.5805009672743751E-01
+2.5796472308173718E-01
+2.5787934432717913E-01
+2.5779396047616732E-01
+2.5770857154110549E-01
+2.5762317753439762E-01
+2.5753777846844750E-01
+2.5745237435565893E-01
+2.5736696520843588E-01
+2.5728155103918215E-01
+2.5719613186030160E-01
+2.5711070768419814E-01
+2.5702527852327550E-01
+2.5693984438993767E-01
+2.5685440529658843E-01
+2.5676896125563170E-01
+2.5668351227947123E-01
+2.5659805838051097E-01
+2.5651259957115480E-01
+2.5642713586380644E-01
+2.5634166727086988E-01
+2.5625619380474896E-01
+2.5617071547784748E-01
+2.5608523230256935E-01
+2.5599974429131839E-01
+2.5591425145649854E-01
+2.5582875381051351E-01
+2.5574325136576725E-01
+2.5565774413466358E-01
+2.5557223212960639E-01
+2.5548671536299961E-01
+2.5540119384724691E-01
+2.5531566759475233E-01
+2.5523013661791960E-01
+2.5514460092915270E-01
+2.5505906054085536E-01
+2.5497351546543146E-01
+2.5488796571528494E-01
+2.5480241130281961E-01
+2.5471685224043933E-01
+2.5463128854054790E-01
+2.5454572021554928E-01
+2.5446014727784722E-01
+2.5437456973984568E-01
+2.5428898761394847E-01
+2.5420340091255944E-01
+2.5411780964808245E-01
+2.5403221383292135E-01
+2.5394661347948000E-01
+2.5386100860016231E-01
+2.5377539920737208E-01
+2.5368978531351316E-01
+2.5360416693098947E-01
+2.5351854407220475E-01
+2.5343291674956303E-01
+2.5334728497546799E-01
+2.5326164876232360E-01
+2.5317600812253366E-01
+2.5309036306850208E-01
+2.5300471361263271E-01
+2.5291905976732931E-01
+2.5283340154499584E-01
+2.5274773895803615E-01
+2.5266207201885410E-01
+2.5257640073985349E-01
+2.5249072513343823E-01
+2.5240504521201218E-01
+2.5231936098797914E-01
+2.5223367247374295E-01
+2.5214797968170760E-01
+2.5206228262427688E-01
+2.5197658131385459E-01
+2.5189087576284463E-01
+2.5180516598365088E-01
+2.5171945198867718E-01
+2.5163373379032739E-01
+2.5154801140100536E-01
+2.5146228483311495E-01
+2.5137655409906001E-01
+2.5129081921124441E-01
+2.5120508018207194E-01
+2.5111933702394656E-01
+2.5103358974927215E-01
+2.5094783837045243E-01
+2.5086208289989131E-01
+2.5077632334999267E-01
+2.5069055973316040E-01
+2.5060479206179831E-01
+2.5051902034831025E-01
+2.5043324460510014E-01
+2.5034746484457182E-01
+2.5026168107912899E-01
+2.5017589332117579E-01
+2.5009010158311579E-01
+2.5000430587735306E-01
+2.4991850621629136E-01
+2.4983270261233459E-01
+2.4974689507788655E-01
+2.4966108362535117E-01
+2.4957526826713222E-01
+2.4948944901563358E-01
+2.4940362588325921E-01
+2.4931779888241284E-01
+2.4923196802549835E-01
+2.4914613332491969E-01
+2.4906029479308062E-01
+2.4897445244238503E-01
+2.4888860628523679E-01
+2.4880275633403970E-01
+2.4871690260119772E-01
+2.4863104509911460E-01
+2.4854518384019425E-01
+2.4845931883684053E-01
+2.4837345010145728E-01
+2.4828757764644843E-01
+2.4820170148421772E-01
+2.4811582162716905E-01
+2.4802993808770629E-01
+2.4794405087823329E-01
+2.4785816001115391E-01
+2.4777226549887205E-01
+2.4768636735379146E-01
+2.4760046558831617E-01
+2.4751456021484980E-01
+2.4742865124579644E-01
+2.4734273869355977E-01
+2.4725682257054377E-01
+2.4717090288915228E-01
+2.4708497966178911E-01
+2.4699905290085805E-01
+2.4691312261876314E-01
+2.4682718882790805E-01
+2.4674125154069682E-01
+2.4665531076953318E-01
+2.4656936652682099E-01
+2.4648341882496416E-01
+2.4639746767636650E-01
+2.4631151309343197E-01
+2.4622555508856425E-01
+2.4613959367416738E-01
+2.4605362886264509E-01
+2.4596766066640124E-01
+2.4588168909783981E-01
+2.4579571416936452E-01
+2.4570973589337930E-01
+2.4562375428228800E-01
+2.4553776934849447E-01
+2.4545178110440258E-01
+2.4536578956241611E-01
+2.4527979473493905E-01
+2.4519379663437513E-01
+2.4510779527312826E-01
+2.4502179066360236E-01
+2.4493578281820116E-01
+2.4484977174932865E-01
+2.4476375746938861E-01
+2.4467773999078485E-01
+2.4459171932592133E-01
+2.4450569548720186E-01
+2.4441966848703028E-01
+2.4433363833781052E-01
+2.4424760505194631E-01
+2.4416156864184169E-01
+2.4407552911990033E-01
+2.4398948649852614E-01
+2.4390344079012310E-01
+2.4381739200709490E-01
+2.4373134016184544E-01
+2.4364528526677870E-01
+2.4355922733429841E-01
+2.4347316637680844E-01
+2.4338710240671269E-01
+2.4330103543641496E-01
+2.4321496547831917E-01
+2.4312889254482911E-01
+2.4304281664834870E-01
+2.4295673780128180E-01
+2.4287065601603225E-01
+2.4278457130500386E-01
+2.4269848368060054E-01
+2.4261239315522609E-01
+2.4252629974128448E-01
+2.4244020345117945E-01
+2.4235410429731491E-01
+2.4226800229209478E-01
+2.4218189744792279E-01
+2.4209578977720281E-01
+2.4200967929233885E-01
+2.4192356600573456E-01
+2.4183744992979395E-01
+2.4175133107692082E-01
+2.4166520945951903E-01
+2.4157908508999243E-01
+2.4149295798074494E-01
+2.4140682814418024E-01
+2.4132069559270242E-01
+2.4123456033871521E-01
+2.4114842239462247E-01
+2.4106228177282807E-01
+2.4097613848573585E-01
+2.4088999254574972E-01
+2.4080384396527349E-01
+2.4071769275671101E-01
+2.4063153893246625E-01
+2.4054538250494290E-01
+2.4045922348654492E-01
+2.4037306188967611E-01
+2.4028689772674039E-01
+2.4020073101014155E-01
+2.4011456175228352E-01
+2.4002838996557008E-01
+2.3994221566240514E-01
+2.3985603885519258E-01
+2.3976985955633617E-01
+2.3968367777823985E-01
+2.3959749353330745E-01
+2.3951130683394278E-01
+2.3942511769254976E-01
+2.3933892612153224E-01
+2.3925273213329407E-01
+2.3916653574023911E-01
+2.3908033695477121E-01
+2.3899413578929418E-01
+2.3890793225621199E-01
+2.3882172636792837E-01
+2.3873551813684724E-01
+2.3864930757537250E-01
+2.3856309469590792E-01
+2.3847687951085744E-01
+2.3839066203262482E-01
+2.3830444227361403E-01
+2.3821822024622885E-01
+2.3813199596287316E-01
+2.3804576943595079E-01
+2.3795954067786568E-01
+2.3787330970102155E-01
+2.3778707651782244E-01
+2.3770084114067203E-01
+2.3761460358197428E-01
+2.3752836385413301E-01
+2.3744212196955206E-01
+2.3735587794063534E-01
+2.3726963177978666E-01
+2.3718338349940993E-01
+2.3709713311190900E-01
+2.3701088062968761E-01
+2.3692462606514975E-01
+2.3683836943069930E-01
+2.3675211073873997E-01
+2.3666585000167573E-01
+2.3657958723191042E-01
+2.3649332244184790E-01
+2.3640705564389197E-01
+2.3632078685044661E-01
+2.3623451607391549E-01
+2.3614824332670264E-01
+2.3606196862121182E-01
+2.3597569196984691E-01
+2.3588941338501185E-01
+2.3580313287911037E-01
+2.3571685046454638E-01
+2.3563056615372374E-01
+2.3554427995904631E-01
+2.3545799189291794E-01
+2.3537170196774249E-01
+2.3528541019592381E-01
+2.3519911658986575E-01
+2.3511282116197224E-01
+2.3502652392464701E-01
+2.3494022489029404E-01
+2.3485392407131711E-01
+2.3476762148012009E-01
+2.3468131712910684E-01
+2.3459501103068126E-01
+2.3450870319724715E-01
+2.3442239364120837E-01
+2.3433608237496883E-01
+2.3424976941093234E-01
+2.3416345476150274E-01
+2.3407713843908401E-01
+2.3399082045607983E-01
+2.3390450082489417E-01
+2.3381817955793088E-01
+2.3373185666759377E-01
+2.3364553216628670E-01
+2.3355920606641362E-01
+2.3347287838037825E-01
+2.3338654912058454E-01
+2.3330021829943631E-01
+2.3321388592933745E-01
+2.3312755202269181E-01
+2.3304121659190324E-01
+2.3295487964937556E-01
+2.3286854120751266E-01
+2.3278220127871840E-01
+2.3269585987539665E-01
+2.3260951700995125E-01
+2.3252317269478603E-01
+2.3243682694230491E-01
+2.3235047976491169E-01
+2.3226413117501027E-01
+2.3217778118500446E-01
+2.3209142980729819E-01
+2.3200507705429521E-01
+2.3191872293839949E-01
+2.3183236747201477E-01
+2.3174601066754502E-01
+2.3165965253739407E-01
+2.3157329309396571E-01
+2.3148693234966389E-01
+2.3140057031689240E-01
+2.3131420700805511E-01
+2.3122784243555589E-01
+2.3114147661179857E-01
+2.3105510954918707E-01
+2.3096874126012523E-01
+2.3088237175701684E-01
+2.3079600105226583E-01
+2.3070962915827603E-01
+2.3062325608745127E-01
+2.3053688185219545E-01
+2.3045050646491239E-01
+2.3036412993800598E-01
+2.3027775228388009E-01
+2.3019137351493851E-01
+2.3010499364358517E-01
+2.3001861268222390E-01
+2.2993223064325857E-01
+2.2984584753909298E-01
+2.2975946338213105E-01
+2.2967307818477661E-01
+2.2958669195943354E-01
+2.2950030471850563E-01
+2.2941391647439685E-01
+2.2932752723951100E-01
+2.2924113702625187E-01
+2.2915474584702344E-01
+2.2906835371422948E-01
+2.2898196064027387E-01
+2.2889556663756047E-01
+2.2880917171849316E-01
+2.2872277589547574E-01
+2.2863637918091215E-01
+2.2854998158720616E-01
+2.2846358312676171E-01
+2.2837718381198258E-01
+2.2829078365527264E-01
+2.2820438266903581E-01
+2.2811798086567592E-01
+2.2803157825759679E-01
+2.2794517485720228E-01
+2.2785877067689628E-01
+2.2777236572908266E-01
+2.2768596002616523E-01
+2.2759955358054784E-01
+2.2751314640463444E-01
+2.2742673851082879E-01
+2.2734032991153480E-01
+2.2725392061915631E-01
+2.2716751064609716E-01
+2.2708110000476120E-01
+2.2699468870755235E-01
+2.2690827676687442E-01
+2.2682186419513126E-01
+2.2673545100472675E-01
+2.2664903720806473E-01
+2.2656262281754908E-01
+2.2647620784558364E-01
+2.2638979230457229E-01
+2.2630337620691882E-01
+2.2621695956502716E-01
+2.2613054239130115E-01
+2.2604412469814467E-01
+2.2595770649796149E-01
+2.2587128780315555E-01
+2.2578486862613070E-01
+2.2569844897929076E-01
+2.2561202887503959E-01
+2.2552560832578106E-01
+2.2543918734391905E-01
+2.2535276594185738E-01
+2.2526634413199995E-01
+2.2517992192675060E-01
+2.2509349933851316E-01
+2.2500707637969150E-01
+2.2492065306268949E-01
+2.2483422939991099E-01
+2.2474780540375983E-01
+2.2466138108663991E-01
+2.2457495646095504E-01
+2.2448853153910911E-01
+2.2440210633350599E-01
+2.2431568085654946E-01
+2.2422925512064346E-01
+2.2414282913819183E-01
+2.2405640292159840E-01
+2.2396997648326705E-01
+2.2388354983560163E-01
+2.2379712299100599E-01
+2.2371069596188403E-01
+2.2362426876063951E-01
+2.2353784139967639E-01
+2.2345141389139847E-01
+2.2336498624820963E-01
+2.2327855848251374E-01
+2.2319213060671464E-01
+2.2310570263321616E-01
+2.2301927457442219E-01
+2.2293284644273656E-01
+2.2284641825056320E-01
+2.2275999001030586E-01
+2.2267356173436845E-01
+2.2258713343515485E-01
+2.2250070512506892E-01
+2.2241427681651449E-01
+2.2232784852189538E-01
+2.2224142025361554E-01
+2.2215499202407873E-01
+2.2206856384568885E-01
+2.2198213573084977E-01
+2.2189570769196537E-01
+2.2180927974143944E-01
+2.2172285189167584E-01
+2.2163642415507850E-01
+2.2154999654405128E-01
+2.2146356907099793E-01
+2.2137714174832240E-01
+2.2129071458842847E-01
+2.2120428760372007E-01
+2.2111786080660106E-01
+2.2103143420947524E-01
+2.2094500782474652E-01
+2.2085858166481870E-01
+2.2077215574209569E-01
+2.2068573006898132E-01
+2.2059930465787947E-01
+2.2051287952119394E-01
+2.2042645467132865E-01
+2.2034003012068745E-01
+2.2025360588167420E-01
+2.2016718196669272E-01
+2.2008075838814689E-01
+2.1999433515844058E-01
+2.1990791228997758E-01
+2.1982148979516183E-01
+2.1973506768639717E-01
+2.1964864597608746E-01
+2.1956222467663652E-01
+2.1947580380044823E-01
+2.1938938335992644E-01
+2.1930296336747501E-01
+2.1921654383549782E-01
+2.1913012477639870E-01
+2.1904370620258151E-01
+2.1895728812645010E-01
+2.1887087056040838E-01
+2.1878445351686016E-01
+2.1869803700820922E-01
+2.1861162104685961E-01
+2.1852520564521502E-01
+2.1843879081567938E-01
+2.1835237657065654E-01
+2.1826596292255035E-01
+2.1817954988376465E-01
+2.1809313746670334E-01
+2.1800672568377022E-01
+2.1792031454736918E-01
+2.1783390406990411E-01
+2.1774749426377879E-01
+2.1766108514139715E-01
+2.1757467671516303E-01
+2.1748826899748025E-01
+2.1740186200075270E-01
+2.1731545573738423E-01
+2.1722905021977867E-01
+2.1714264546033996E-01
+2.1705624147147184E-01
+2.1696983826557828E-01
+2.1688343585506309E-01
+2.1679703425233007E-01
+2.1671063346978314E-01
+2.1662423351982618E-01
+2.1653783441486302E-01
+2.1645143616729751E-01
+2.1636503878953345E-01
+2.1627864229397481E-01
+2.1619224669302534E-01
+2.1610585199908899E-01
+2.1601945822456961E-01
+2.1593306538187099E-01
+2.1584667348339703E-01
+2.1576028254155155E-01
+2.1567389256873848E-01
+2.1558750357736162E-01
+2.1550111557982482E-01
+2.1541472858853200E-01
+2.1532834261588696E-01
+2.1524195767429352E-01
+2.1515557377615563E-01
+2.1506919093387714E-01
+2.1498280915986184E-01
+2.1489642846651363E-01
+2.1481004886623634E-01
+2.1472367037143386E-01
+2.1463729299451004E-01
+2.1455091674786875E-01
+2.1446454164391382E-01
+2.1437816769504908E-01
+2.1429179491367842E-01
+2.1420542331220571E-01
+2.1411905290303485E-01
+2.1403268369856959E-01
+2.1394631571121384E-01
+2.1385994895337146E-01
+2.1377358343744632E-01
+2.1368721917584227E-01
+2.1360085618096314E-01
+2.1351449446521281E-01
+2.1342813404099514E-01
+2.1334177492071399E-01
+2.1325541711677320E-01
+2.1316906064157665E-01
+2.1308270550752817E-01
+2.1299635172703163E-01
+2.1290999931249088E-01
+2.1282364827630978E-01
+2.1273729863089222E-01
+2.1265095038864204E-01
+2.1256460356196305E-01
+2.1247825816325916E-01
+2.1239191420493420E-01
+2.1230557169939207E-01
+2.1221923065903658E-01
+2.1213289109627159E-01
+2.1204655302350098E-01
+2.1196021645312857E-01
+2.1187388139755828E-01
+2.1178754786919393E-01
+2.1170121588043939E-01
+2.1161488544369850E-01
+2.1152855657137506E-01
+2.1144222927587303E-01
+2.1135590356959624E-01
+2.1126957946494856E-01
+2.1118325697433377E-01
+2.1109693611015584E-01
+2.1101061688481851E-01
+2.1092429931072570E-01
+2.1083798340028131E-01
+2.1075166916588911E-01
+2.1066535661995300E-01
+2.1057904577487679E-01
+2.1049273664306445E-01
+2.1040642923691977E-01
+2.1032012356884655E-01
+2.1023381965124877E-01
+2.1014751749653016E-01
+2.1006121711709463E-01
+2.0997491852534605E-01
+2.0988862173368833E-01
+2.0980232675452520E-01
+2.0971603360026064E-01
+2.0962974228329839E-01
+2.0954345281604242E-01
+2.0945716521089652E-01
+2.0937087948026456E-01
+2.0928459563655044E-01
+2.0919831369215791E-01
+2.0911203365949094E-01
+2.0902575555095332E-01
+2.0893947937894897E-01
+2.0885320515588168E-01
+2.0876693289415532E-01
+2.0868066260617379E-01
+2.0859439430434087E-01
+2.0850812800106050E-01
+2.0842186370873653E-01
+2.0833560143977278E-01
+2.0824934120657307E-01
+2.0816308302154135E-01
+2.0807682689708146E-01
+2.0799057284559716E-01
+2.0790432087949243E-01
+2.0781807101117106E-01
+2.0773182325303688E-01
+2.0764557761749383E-01
+2.0755933411694572E-01
+2.0747309276379644E-01
+2.0738685357044978E-01
+2.0730061654930965E-01
+2.0721438171277989E-01
+2.0712814907326438E-01
+2.0704191864316696E-01
+2.0695569043489145E-01
+2.0686946446084178E-01
+2.0678324073342175E-01
+2.0669701926503525E-01
+2.0661080006808613E-01
+2.0652458315497821E-01
+2.0643836853811542E-01
+2.0635215622990152E-01
+2.0626594624274047E-01
+2.0617973858903610E-01
+2.0609353328119223E-01
+2.0600733033161273E-01
+2.0592112975270144E-01
+2.0583493155686228E-01
+2.0574873575649905E-01
+2.0566254236401560E-01
+2.0557635139181585E-01
+2.0549016285230362E-01
+2.0540397675788274E-01
+2.0531779312095710E-01
+2.0523161195393058E-01
+2.0514543326920695E-01
+2.0505925707919020E-01
+2.0497308339628403E-01
+2.0488691223289243E-01
+2.0480074360141920E-01
+2.0471457751426822E-01
+2.0462841398384332E-01
+2.0454225302254836E-01
+2.0445609464278719E-01
+2.0436993885696370E-01
+2.0428378567748173E-01
+2.0419763511674516E-01
+2.0411148718715783E-01
+2.0402534190112354E-01
+2.0393919927104623E-01
+2.0385305930932973E-01
+2.0376692202837787E-01
+2.0368078744059456E-01
+2.0359465555838363E-01
+2.0350852639414890E-01
+2.0342239996029429E-01
+2.0333627626922363E-01
+2.0325015533334079E-01
+2.0316403716504955E-01
+2.0307792177675388E-01
+2.0299180918085757E-01
+2.0290569938976455E-01
+2.0281959241587860E-01
+2.0273348827160359E-01
+2.0264738696934334E-01
+2.0256128852150179E-01
+2.0247519294048277E-01
+2.0238910023869014E-01
+2.0230301042852772E-01
+2.0221692352239945E-01
+2.0213083953270905E-01
+2.0204475847186049E-01
+2.0195868035225764E-01
+2.0187260518630429E-01
+2.0178653298640431E-01
+2.0170046376496154E-01
+2.0161439753437987E-01
+2.0152833430706318E-01
+2.0144227409541529E-01
+2.0135621691184008E-01
+2.0127016276874138E-01
+2.0118411167852301E-01
+2.0109806365358895E-01
+2.0101201870634294E-01
+2.0092597684918889E-01
+2.0083993809453071E-01
+2.0075390245477209E-01
+2.0066786994231706E-01
+2.0058184056956943E-01
+2.0049581434893302E-01
+2.0040979129281170E-01
+2.0032377141360933E-01
+2.0023775472372973E-01
+2.0015174123557683E-01
+2.0006573096155450E-01
+1.9997972391406649E-01
+1.9989372010551676E-01
+1.9980771954830906E-01
+1.9972172225484738E-01
+1.9963572823753550E-01
+1.9954973750877728E-01
+1.9946375008097658E-01
+1.9937776596653722E-01
+1.9929178517786317E-01
+1.9920580772735819E-01
+1.9911983362742619E-01
+1.9903386289047098E-01
+1.9894789552889641E-01
+1.9886193155510640E-01
+1.9877597098150473E-01
+1.9869001382049534E-01
+1.9860406008448206E-01
+1.9851810978586870E-01
+1.9843216293705918E-01
+1.9834621955045731E-01
+1.9826027963846699E-01
+1.9817434321349198E-01
+1.9808841028793628E-01
+1.9800248087420369E-01
+1.9791655498469798E-01
+1.9783063263182316E-01
+1.9774471382798298E-01
+1.9765879858558133E-01
+1.9757288691702204E-01
+1.9748697883470900E-01
+1.9740107435104606E-01
+1.9731517347843708E-01
+1.9722927622928593E-01
+1.9714338261599645E-01
+1.9705749265097250E-01
+1.9697160634661787E-01
+1.9688572371533652E-01
+1.9679984476953230E-01
+1.9671396952160902E-01
+1.9662809798397055E-01
+1.9654223016902073E-01
+1.9645636608916345E-01
+1.9637050575680257E-01
+1.9628464918434191E-01
+1.9619879638418539E-01
+1.9611294736873677E-01
+1.9602710215039998E-01
+1.9594126074157889E-01
+1.9585542315467730E-01
+1.9576958940209913E-01
+1.9568375949624817E-01
+1.9559793344952831E-01
+1.9551211127434343E-01
+1.9542629298309733E-01
+1.9534047858819392E-01
+1.9525466810203707E-01
+1.9516886153703056E-01
+1.9508305890557831E-01
+1.9499726022008418E-01
+1.9491146549295199E-01
+1.9482567473658563E-01
+1.9473988796338892E-01
+1.9465410518576570E-01
+1.9456832641611993E-01
+1.9448255166685541E-01
+1.9439678095037594E-01
+1.9431101427908548E-01
+1.9422525166538779E-01
+1.9413949312168680E-01
+1.9405373866038633E-01
+1.9396798829389028E-01
+1.9388224203460241E-01
+1.9379649989492670E-01
+1.9371076188726691E-01
+1.9362502802402698E-01
+1.9353929831761069E-01
+1.9345357278042194E-01
+1.9336785142486457E-01
+1.9328213426334245E-01
+1.9319642130825943E-01
+1.9311071257201934E-01
+1.9302500806702613E-01
+1.9293930780568358E-01
+1.9285361180039554E-01
+1.9276792006356586E-01
+1.9268223260759848E-01
+1.9259654944489715E-01
+1.9251087058786581E-01
+1.9242519604890831E-01
+1.9233952584042846E-01
+1.9225385997483013E-01
+1.9216819846451721E-01
+1.9208254132189356E-01
+1.9199688855936298E-01
+1.9191124018932931E-01
+1.9182559622419654E-01
+1.9173995667636839E-01
+1.9165432155824882E-01
+1.9156869088224165E-01
+1.9148306466075071E-01
+1.9139744290617983E-01
+1.9131182563093291E-01
+1.9122621284741387E-01
+1.9114060456802645E-01
+1.9105500080517462E-01
+1.9096940157126210E-01
+1.9088380687869289E-01
+1.9079821673987077E-01
+1.9071263116719961E-01
+1.9062705017308329E-01
+1.9054147376992561E-01
+1.9045590197013046E-01
+1.9037033478610171E-01
+1.9028477223024326E-01
+1.9019921431495887E-01
+1.9011366105265246E-01
+1.9002811245572782E-01
+1.8994256853658892E-01
+1.8985702930763951E-01
+1.8977149478128350E-01
+1.8968596496992474E-01
+1.8960043988596711E-01
+1.8951491954181440E-01
+1.8942940394987054E-01
+1.8934389312253935E-01
+1.8925838707222470E-01
+1.8917288581133046E-01
+1.8908738935226044E-01
+1.8900189770741849E-01
+1.8891641088920857E-01
+1.8883092891003445E-01
+1.8874545178230001E-01
+1.8865997951840910E-01
+1.8857451213076559E-01
+1.8848904963177332E-01
+1.8840359203383616E-01
+1.8831813934935795E-01
+1.8823269159074257E-01
+1.8814724877039388E-01
+1.8806181090071572E-01
+1.8797637799411196E-01
+1.8789095006298645E-01
+1.8780552711974305E-01
+1.8772010917678558E-01
+1.8763469624651793E-01
+1.8754928834134399E-01
+1.8746388547366760E-01
+1.8737848765589260E-01
+1.8729309490042284E-01
+1.8720770721966218E-01
+1.8712232462601447E-01
+1.8703694713188362E-01
+1.8695157474967344E-01
+1.8686620749178778E-01
+1.8678084537063050E-01
+1.8669548839860550E-01
+1.8661013658811659E-01
+1.8652478995156768E-01
+1.8643944850136257E-01
+1.8635411224990517E-01
+1.8626878120959922E-01
+1.8618345539284875E-01
+1.8609813481205750E-01
+1.8601281947962933E-01
+1.8592750940796821E-01
+1.8584220460947781E-01
+1.8575690509656217E-01
+1.8567161088162504E-01
+1.8558632197707031E-01
+1.8550103839530185E-01
+1.8541576014872346E-01
+1.8533048724973905E-01
+1.8524521971075247E-01
+1.8515995754416759E-01
+1.8507470076238822E-01
+1.8498944937781830E-01
+1.8490420340286154E-01
+1.8481896284992197E-01
+1.8473372773140331E-01
+1.8464849805970954E-01
+1.8456327384724441E-01
+1.8447805510641180E-01
+1.8439284184961563E-01
+1.8430763408925965E-01
+1.8422243183774786E-01
+1.8413723510748398E-01
+1.8405204391087199E-01
+1.8396685826031561E-01
+1.8388167816821882E-01
+1.8379650364698538E-01
+1.8371133470901924E-01
+1.8362617136672421E-01
+1.8354101363250408E-01
+1.8345586151876286E-01
+1.8337071503790425E-01
+1.8328557420233227E-01
+1.8320043902445060E-01
+1.8311530951666322E-01
+1.8303018569137397E-01
+1.8294506756098666E-01
+1.8285995513790521E-01
+1.8277484843453340E-01
+1.8268974746327521E-01
+1.8260465223653433E-01
+1.8251956276671472E-01
+1.8243447906622023E-01
+1.8234940114745474E-01
+1.8226432902282208E-01
+1.8217926270472604E-01
+1.8209420220557060E-01
+1.8200914753775954E-01
+1.8192409871369675E-01
+1.8183905574578607E-01
+1.8175401864643131E-01
+1.8166898742803644E-01
+1.8158396210300520E-01
+1.8149894268374156E-01
+1.8141392918264931E-01
+1.8132892161213232E-01
+1.8124391998459438E-01
+1.8115892431243946E-01
+1.8107393460807136E-01
+1.8098895088389394E-01
+1.8090397315231110E-01
+1.8081900142572660E-01
+1.8073403571654439E-01
+1.8064907603716829E-01
+1.8056412240000219E-01
+1.8047917481744991E-01
+1.8039423330191529E-01
+1.8030929786580219E-01
+1.8022436852151452E-01
+1.8013944528145615E-01
+1.8005452815803080E-01
+1.7996961716364251E-01
+1.7988471231069503E-01
+1.7979981361159220E-01
+1.7971492107873793E-01
+1.7963003472453604E-01
+1.7954515456139047E-01
+1.7946028060170499E-01
+1.7937541285788344E-01
+1.7929055134232977E-01
+1.7920569606744780E-01
+1.7912084704564132E-01
+1.7903600428931427E-01
+1.7895116781087045E-01
+1.7886633762271376E-01
+1.7878151373724810E-01
+1.7869669616687719E-01
+1.7861188492400504E-01
+1.7852708002103540E-01
+1.7844228147037211E-01
+1.7835748928441914E-01
+1.7827270347558027E-01
+1.7818792405625938E-01
+1.7810315103886032E-01
+1.7801838443578694E-01
+1.7793362425944309E-01
+1.7784887052223269E-01
+1.7776412323655955E-01
+1.7767938241482747E-01
+1.7759464806944042E-01
+1.7750992021280215E-01
+1.7742519885731661E-01
+1.7734048401538760E-01
+1.7725577569941903E-01
+1.7717107392181466E-01
+1.7708637869497845E-01
+1.7700169003131416E-01
+1.7691700794322573E-01
+1.7683233244311705E-01
+1.7674766354339186E-01
+1.7666300125645412E-01
+1.7657834559470753E-01
+1.7649369657055616E-01
+1.7640905419640374E-01
+1.7632441848465413E-01
+1.7623978944771124E-01
+1.7615516709797885E-01
+1.7607055144786093E-01
+1.7598594250976124E-01
+1.7590134029608367E-01
+1.7581674481923210E-01
+1.7573215609161036E-01
+1.7564757412562224E-01
+1.7556299893367172E-01
+1.7547843052816262E-01
+1.7539386892149875E-01
+1.7530931412608403E-01
+1.7522476615432225E-01
+1.7514022501861734E-01
+1.7505569073137311E-01
+1.7497116330499343E-01
+1.7488664275188215E-01
+1.7480212908444312E-01
+1.7471762231508020E-01
+1.7463312245619728E-01
+1.7454862952019823E-01
+1.7446414351948680E-01
+1.7437966446646699E-01
+1.7429519237354252E-01
+1.7421072725311737E-01
+1.7412626911759529E-01
+1.7404181797938023E-01
+1.7395737385087601E-01
+1.7387293674448639E-01
+1.7378850667261542E-01
+1.7370408364766682E-01
+1.7361966768204451E-01
+1.7353525878815229E-01
+1.7345085697839405E-01
+1.7336646226517366E-01
+1.7328207466089493E-01
+1.7319769417796180E-01
+1.7311332082877806E-01
+1.7302895462574761E-01
+1.7294459558127417E-01
+1.7286024370776185E-01
+1.7277589901761428E-01
+1.7269156152323542E-01
+1.7260723123702915E-01
+1.7252290817139926E-01
+1.7243859233874961E-01
+1.7235428375148409E-01
+1.7226998242200658E-01
+1.7218568836272091E-01
+1.7210140158603088E-01
+1.7201712210434045E-01
+1.7193284993005337E-01
+1.7184858507557366E-01
+1.7176432755330498E-01
+1.7168007737565133E-01
+1.7159583455501648E-01
+1.7151159910380437E-01
+1.7142737103441877E-01
+1.7134315035926356E-01
+1.7125893709074269E-01
+1.7117473124125990E-01
+1.7109053282321907E-01
+1.7100634184902411E-01
+1.7092215833107885E-01
+1.7083798228178712E-01
+1.7075381371355280E-01
+1.7066965263877976E-01
+1.7058549906987183E-01
+1.7050135301923292E-01
+1.7041721449926681E-01
+1.7033308352237742E-01
+1.7024896010096857E-01
+1.7016484424744410E-01
+1.7008073597420792E-01
+1.6999663529366388E-01
+1.6991254221821583E-01
+1.6982845676026759E-01
+1.6974437893222305E-01
+1.6966030874648605E-01
+1.6957624621546052E-01
+1.6949219135155019E-01
+1.6940814416715902E-01
+1.6932410467469083E-01
+1.6924007288654944E-01
+1.6915604881513879E-01
+1.6907203247286268E-01
+1.6898802387212503E-01
+1.6890402302532959E-01
+1.6882002994488030E-01
+1.6873604464318095E-01
+1.6865206713263547E-01
+1.6856809742564771E-01
+1.6848413553462149E-01
+1.6840018147196067E-01
+1.6831623525006911E-01
+1.6823229688135072E-01
+1.6814836637820929E-01
+1.6806444375304869E-01
+1.6798052901827282E-01
+1.6789662218628543E-01
+1.6781272326949054E-01
+1.6772883228029187E-01
+1.6764494923109335E-01
+1.6756107413429880E-01
+1.6747720700231208E-01
+1.6739334784753707E-01
+1.6730949668237760E-01
+1.6722565351923760E-01
+1.6714181837052081E-01
+1.6705799124863119E-01
+1.6697417216597249E-01
+1.6689036113494871E-01
+1.6680655816796358E-01
+1.6672276327742103E-01
+1.6663897647572490E-01
+1.6655519777527897E-01
+1.6647142718848726E-01
+1.6638766472775346E-01
+1.6630391040548159E-01
+1.6622016423407537E-01
+1.6613642622593872E-01
+1.6605269639347542E-01
+1.6596897474908948E-01
+1.6588526130518461E-01
+1.6580155607416475E-01
+1.6571785906843373E-01
+1.6563417030039540E-01
+1.6555048978245365E-01
+1.6546681752701228E-01
+1.6538315354647523E-01
+1.6529949785324627E-01
+1.6521585045972931E-01
+1.6513221137832818E-01
+1.6504858062144676E-01
+1.6496495820148893E-01
+1.6488134413085848E-01
+1.6479773842195933E-01
+1.6471414108719523E-01
+1.6463055213897021E-01
+1.6454697158968798E-01
+1.6446339945175248E-01
+1.6437983573756754E-01
+1.6429628045953695E-01
+1.6421273363006472E-01
+1.6412919526155459E-01
+1.6404566536641046E-01
+1.6396214395703615E-01
+1.6387863104583555E-01
+1.6379512664521251E-01
+1.6371163076757086E-01
+1.6362814342531454E-01
+1.6354466463084733E-01
+1.6346119439657311E-01
+1.6337773273489567E-01
+1.6329427965821902E-01
+1.6321083517894688E-01
+1.6312739930948317E-01
+1.6304397206223176E-01
+1.6296055344959648E-01
+1.6287714348398113E-01
+1.6279374217778966E-01
+1.6271034954342592E-01
+1.6262696559329370E-01
+1.6254359033979693E-01
+1.6246022379533939E-01
+1.6237686597232501E-01
+1.6229351688315766E-01
+1.6221017654024111E-01
+1.6212684495597929E-01
+1.6204352214277595E-01
+1.6196020811303513E-01
+1.6187690287916051E-01
+1.6179360645355606E-01
+1.6171031884862563E-01
+1.6162704007677300E-01
+1.6154377015040208E-01
+1.6146050908191673E-01
+1.6137725688372082E-01
+1.6129401356821815E-01
+1.6121077914781262E-01
+1.6112755363490808E-01
+1.6104433704190838E-01
+1.6096112938121743E-01
+1.6087793066523901E-01
+1.6079474090637702E-01
+1.6071156011703530E-01
+1.6062838830961770E-01
+1.6054522549652808E-01
+1.6046207169017032E-01
+1.6037892690294830E-01
+1.6029579114726583E-01
+1.6021266443552673E-01
+1.6012954678013494E-01
+1.6004643819349432E-01
+1.5996333868800866E-01
+1.5988024827608183E-01
+1.5979716697011775E-01
+1.5971409478252016E-01
+1.5963103172569307E-01
+1.5954797781204022E-01
+1.5946493305396553E-01
+1.5938189746387280E-01
+1.5929887105416593E-01
+1.5921585383724873E-01
+1.5913284582552514E-01
+1.5904984703139899E-01
+1.5896685746727407E-01
+1.5888387714555435E-01
+1.5880090607864353E-01
+1.5871794427894564E-01
+1.5863499175886442E-01
+1.5855204853080374E-01
+1.5846911460716756E-01
+1.5838619000035956E-01
+1.5830327472278377E-01
+1.5822036878684392E-01
+1.5813747220494398E-01
+1.5805458498948771E-01
+1.5797170715287900E-01
+1.5788883870752171E-01
+1.5780597966581972E-01
+1.5772313004017688E-01
+1.5764028984299699E-01
+1.5755745908668400E-01
+1.5747463778364165E-01
+1.5739182594627393E-01
+1.5730902358698462E-01
+1.5722623071817760E-01
+1.5714344735225669E-01
+1.5706067350162572E-01
+1.5697790917868870E-01
+1.5689515439584933E-01
+1.5681240916551159E-01
+1.5672967350007921E-01
+1.5664694741195617E-01
+1.5656423091354618E-01
+1.5648152401725324E-01
+1.5639882673548117E-01
+1.5631613908063374E-01
+1.5623346106511496E-01
+1.5615079270132853E-01
+1.5606813400167843E-01
+1.5598548497856846E-01
+1.5590284564440249E-01
+1.5582021601158436E-01
+1.5573759609251794E-01
+1.5565498589960708E-01
+1.5557238544525565E-01
+1.5548979474186753E-01
+1.5540721380184649E-01
+1.5532464263759652E-01
+1.5524208126152131E-01
+1.5515952968602489E-01
+1.5507698792351102E-01
+1.5499445598638356E-01
+1.5491193388704638E-01
+1.5482942163790331E-01
+1.5474691925135831E-01
+1.5466442673981512E-01
+1.5458194411567766E-01
+1.5449947139134976E-01
+1.5441700857923529E-01
+1.5433455569173807E-01
+1.5425211274126202E-01
+1.5416967974021098E-01
+1.5408725670098877E-01
+1.5400484363599931E-01
+1.5392244055764634E-01
+1.5384004747833385E-01
+1.5375766441046565E-01
+1.5367529136644556E-01
+1.5359292835867749E-01
+1.5351057539956528E-01
+1.5342823250151277E-01
+1.5334589967692380E-01
+1.5326357693820231E-01
+1.5318126429775208E-01
+1.5309896176797699E-01
+1.5301666936128089E-01
+1.5293438709006765E-01
+1.5285211496674117E-01
+1.5276985300370519E-01
+1.5268760121336369E-01
+1.5260535960812044E-01
+1.5252312820037933E-01
+1.5244090700254423E-01
+1.5235869602701899E-01
+1.5227649528620749E-01
+1.5219430479251350E-01
+1.5211212455834097E-01
+1.5202995459609370E-01
+1.5194779491817562E-01
+1.5186564553699053E-01
+1.5178350646494226E-01
+1.5170137771443473E-01
+1.5161925929787173E-01
+1.5153715122765724E-01
+1.5145505351619498E-01
+1.5137296617588891E-01
+1.5129088921914277E-01
+1.5120882265836053E-01
+1.5112676650594598E-01
+1.5104472077430300E-01
+1.5096268547583550E-01
+1.5088066062294725E-01
+1.5079864622804212E-01
+1.5071664230352402E-01
+1.5063464886179678E-01
+1.5055266591526426E-01
+1.5047069347633030E-01
+1.5038873155739879E-01
+1.5030678017087348E-01
+1.5022483932915842E-01
+1.5014290904465732E-01
+1.5006098932977410E-01
+1.4997908019691256E-01
+1.4989718165847660E-01
+1.4981529372687008E-01
+1.4973341641449683E-01
+1.4965154973376077E-01
+1.4956969369706569E-01
+1.4948784831681547E-01
+1.4940601360541392E-01
+1.4932418957526500E-01
+1.4924237623877248E-01
+1.4916057360834023E-01
+1.4907878169637220E-01
+1.4899700051527207E-01
+1.4891523007744389E-01
+1.4883347039529138E-01
+1.4875172148121849E-01
+1.4866998334762899E-01
+1.4858825600692677E-01
+1.4850653947151571E-01
+1.4842483375379964E-01
+1.4834313886618247E-01
+1.4826145482106798E-01
+1.4817978163086010E-01
+1.4809811930796257E-01
+1.4801646786477943E-01
+1.4793482731371438E-01
+1.4785319766717137E-01
+1.4777157893755419E-01
+1.4768997113726670E-01
+1.4760837427871284E-01
+1.4752678837429639E-01
+1.4744521343642125E-01
+1.4736364947749123E-01
+1.4728209650991025E-01
+1.4720055454608205E-01
+1.4711902359841067E-01
+1.4703750367929980E-01
+1.4695599480115337E-01
+1.4687449697637525E-01
+1.4679301021736924E-01
+1.4671153453653929E-01
+1.4663006994628916E-01
+1.4654861645902278E-01
+1.4646717408714396E-01
+1.4638574284305655E-01
+1.4630432273916447E-01
+1.4622291378787150E-01
+1.4614151600158160E-01
+1.4606012939269850E-01
+1.4597875397362617E-01
+1.4589738975676833E-01
+1.4581603675452900E-01
+1.4573469497931194E-01
+1.4565336444352101E-01
+1.4557204515956013E-01
+1.4549073713983304E-01
+1.4540944039674375E-01
+1.4532815494269602E-01
+1.4524688079009371E-01
+1.4516561795134070E-01
+1.4508436643884082E-01
+1.4500312626499795E-01
+1.4492189744221592E-01
+1.4484067998289868E-01
+1.4475947389944996E-01
+1.4467827920427373E-01
+1.4459709590977371E-01
+1.4451592402835392E-01
+1.4443476357241808E-01
+1.4435361455437012E-01
+1.4427247698661394E-01
+1.4419135088155327E-01
+1.4411023625159203E-01
+1.4402913310913409E-01
+1.4394804146658335E-01
+1.4386696133634358E-01
+1.4378589273081865E-01
+1.4370483566241249E-01
+1.4362379014352886E-01
+1.4354275618657172E-01
+1.4346173380394484E-01
+1.4338072300805216E-01
+1.4329972381129744E-01
+1.4321873622608458E-01
+1.4313776026481745E-01
+1.4305679593989989E-01
+1.4297584326373580E-01
+1.4289490224872897E-01
+1.4281397290728332E-01
+1.4273305525180263E-01
+1.4265214929469089E-01
+1.4257125504835180E-01
+1.4249037252518931E-01
+1.4240950173760730E-01
+1.4232864269800949E-01
+1.4224779541879992E-01
+1.4216695991238232E-01
+1.4208613619116062E-01
+1.4200532426753859E-01
+1.4192452415392015E-01
+1.4184373586270918E-01
+1.4176295940630948E-01
+1.4168219479712496E-01
+1.4160144204755942E-01
+1.4152070117001675E-01
+1.4143997217690082E-01
+1.4135925508061548E-01
+1.4127854989356456E-01
+1.4119785662815193E-01
+1.4111717529678150E-01
+1.4103650591185701E-01
+1.4095584848578244E-01
+1.4087520303096157E-01
+1.4079456955979830E-01
+1.4071394808469645E-01
+1.4063333861805991E-01
+1.4055274117229249E-01
+1.4047215575979810E-01
+1.4039158239298061E-01
+1.4031102108424381E-01
+1.4023047184599163E-01
+1.4014993469062781E-01
+1.4006940963055639E-01
+1.3998889667818104E-01
+1.3990839584590575E-01
+1.3982790714613433E-01
+1.3974743059127059E-01
+1.3966696619371849E-01
+1.3958651396588179E-01
+1.3950607392016443E-01
+1.3942564606897018E-01
+1.3934523042470295E-01
+1.3926482699976658E-01
+1.3918443580656495E-01
+1.3910405685750193E-01
+1.3902369016498131E-01
+1.3894333574140705E-01
+1.3886299359918286E-01
+1.3878266375071274E-01
+1.3870234620840047E-01
+1.3862204098464995E-01
+1.3854174809186498E-01
+1.3846146754244948E-01
+1.3838119934880724E-01
+1.3830094352334216E-01
+1.3822070007845816E-01
+1.3814046902655897E-01
+1.3806025038004854E-01
+1.3798004415133064E-01
+1.3789985035280924E-01
+1.3781966899688811E-01
+1.3773950009597113E-01
+1.3765934366246221E-01
+1.3757919970876509E-01
+1.3749906824728375E-01
+1.3741894929042198E-01
+1.3733884285058368E-01
+1.3725874894017265E-01
+1.3717866757159278E-01
+1.3709859875724789E-01
+1.3701854250954190E-01
+1.3693849884087869E-01
+1.3685846776366201E-01
+1.3677844929029581E-01
+1.3669844343318382E-01
+1.3661845020473010E-01
+1.3653846961733834E-01
+1.3645850168341245E-01
+1.3637854641535632E-01
+1.3629860382557374E-01
+1.3621867392646861E-01
+1.3613875673044479E-01
+1.3605885224990616E-01
+1.3597896049725650E-01
+1.3589908148489971E-01
+1.3581921522523965E-01
+1.3573936173068019E-01
+1.3565952101362522E-01
+1.3557969308647849E-01
+1.3549987796164398E-01
+1.3542007565152539E-01
+1.3534028616852675E-01
+1.3526050952505181E-01
+1.3518074573350444E-01
+1.3510099480628857E-01
+1.3502125675580798E-01
+1.3494153159446654E-01
+1.3486181933466809E-01
+1.3478211998881656E-01
+1.3470243356931574E-01
+1.3462276008856949E-01
+1.3454309955898172E-01
+1.3446345199295623E-01
+1.3438381740289693E-01
+1.3430419580120762E-01
+1.3422458720029221E-01
+1.3414499161255450E-01
+1.3406540905039838E-01
+1.3398583952622772E-01
+1.3390628305244634E-01
+1.3382673964145816E-01
+1.3374720930566697E-01
+1.3366769205747667E-01
+1.3358818790929108E-01
+1.3350869687351410E-01
+1.3342921896254956E-01
+1.3334975418880132E-01
+1.3327030256467326E-01
+1.3319086410256917E-01
+1.3311143881489301E-01
+1.3303202671404857E-01
+1.3295262781243972E-01
+1.3287324212247031E-01
+1.3279386965654419E-01
+1.3271451042706522E-01
+1.3263516444643730E-01
+1.3255583172706428E-01
+1.3247651228134996E-01
+1.3239720612169822E-01
+1.3231791326051293E-01
+1.3223863371019798E-01
+1.3215936748315715E-01
+1.3208011459179436E-01
+1.3200087504851346E-01
+1.3192164886571825E-01
+1.3184243605581267E-01
+1.3176323663120051E-01
+1.3168405060428570E-01
+1.3160487798747203E-01
+1.3152571879316335E-01
+1.3144657303376359E-01
+1.3136744072167653E-01
+1.3128832186930611E-01
+1.3120921648905609E-01
+1.3113012459333043E-01
+1.3105104619453284E-01
+1.3097198130506735E-01
+1.3089292993733770E-01
+1.3081389210374780E-01
+1.3073486781670152E-01
+1.3065585708860261E-01
+1.3057685993185508E-01
+1.3049787635886270E-01
+1.3041890638202935E-01
+1.3033995001375887E-01
+1.3026100726645512E-01
+1.3018207815252192E-01
+1.3010316268436320E-01
+1.3002426087438285E-01
+1.2994537273498458E-01
+1.2986649827857238E-01
+1.2978763751755001E-01
+1.2970879046432143E-01
+1.2962995713129041E-01
+1.2955113753086089E-01
+1.2947233167543662E-01
+1.2939353957742153E-01
+1.2931476124921945E-01
+1.2923599670323427E-01
+1.2915724595186984E-01
+1.2907850900752998E-01
+1.2899978588261860E-01
+1.2892107658953947E-01
+1.2884238114069657E-01
+1.2876369954849365E-01
+1.2868503182533461E-01
+1.2860637798362334E-01
+1.2852773803576362E-01
+1.2844911199415940E-01
+1.2837049987121446E-01
+1.2829190167933271E-01
+1.2821331743091796E-01
+1.2813474713837411E-01
+1.2805619081410496E-01
+1.2797764847051443E-01
+1.2789912012000637E-01
+1.2782060577498461E-01
+1.2774210544785303E-01
+1.2766361915101540E-01
+1.2758514689687572E-01
+1.2750668869783777E-01
+1.2742824456630539E-01
+1.2734981451468252E-01
+1.2727139855537289E-01
+1.2719299670078046E-01
+1.2711460896330906E-01
+1.2703623535536254E-01
+1.2695787588934476E-01
+1.2687953057765955E-01
+1.2680119943271081E-01
+1.2672288246690236E-01
+1.2664457969263815E-01
+1.2656629112232190E-01
+1.2648801676835758E-01
+1.2640975664314896E-01
+1.2633151075909993E-01
+1.2625327912861437E-01
+1.2617506176409610E-01
+1.2609685867794904E-01
+1.2601866988257698E-01
+1.2594049539038379E-01
+1.2586233521377335E-01
+1.2578418936514954E-01
+1.2570605785691616E-01
+1.2562794070147706E-01
+1.2554983791123617E-01
+1.2547174949859730E-01
+1.2539367547596431E-01
+1.2531561585574105E-01
+1.2523757065033142E-01
+1.2515953987213924E-01
+1.2508152353356833E-01
+1.2500352164702261E-01
+1.2492553422490592E-01
+1.2484756127962214E-01
+1.2476960282357506E-01
+1.2469165886916860E-01
+1.2461372942880658E-01
+1.2453581451489290E-01
+1.2445791413983137E-01
+1.2438002831602586E-01
+1.2430215705588027E-01
+1.2422430037179835E-01
+1.2414645827618412E-01
+1.2406863078144129E-01
+1.2399081789997381E-01
+1.2391301964418547E-01
+1.2383523602648015E-01
+1.2375746705926173E-01
+1.2367971275493404E-01
+1.2360197312590099E-01
+1.2352424818456637E-01
+1.2344653794333407E-01
+1.2336884241460790E-01
+1.2329116161079182E-01
+1.2321349554428959E-01
+1.2313584422750511E-01
+1.2305820767284224E-01
+1.2298058589270479E-01
+1.2290297889949671E-01
+1.2282538670562176E-01
+1.2274780932348389E-01
+1.2267024676548685E-01
+1.2259269904403458E-01
+1.2251516617153090E-01
+1.2243764816037966E-01
+1.2236014502298478E-01
+1.2228265677175006E-01
+1.2220518341907938E-01
+1.2212772497737652E-01
+1.2205028145904548E-01
+1.2197285287649001E-01
+1.2189543924211399E-01
+1.2181804056832132E-01
+1.2174065686751576E-01
+1.2166328815210130E-01
+1.2158593443448168E-01
+1.2150859572706085E-01
+1.2143127204224259E-01
+1.2135396339243082E-01
+1.2127666979002930E-01
+1.2119939124744197E-01
+1.2112212777707274E-01
+1.2104487939132533E-01
+1.2096764610260372E-01
+1.2089042792331163E-01
+1.2081322486585308E-01
+1.2073603694263181E-01
+1.2065886416605175E-01
+1.2058170654851667E-01
+1.2050456410243050E-01
+1.2042743684019706E-01
+1.2035032477422024E-01
+1.2027322791690390E-01
+1.2019614628065185E-01
+1.2011907987786802E-01
+1.2004202872095614E-01
+1.1996499282232020E-01
+1.1988797219436401E-01
+1.1981096684949140E-01
+1.1973397680010628E-01
+1.1965700205861243E-01
+1.1958004263741381E-01
+1.1950309854891419E-01
+1.1942616980551750E-01
+1.1934925641962751E-01
+1.1927235840364814E-01
+1.1919547576998321E-01
+1.1911860853103662E-01
+1.1904175669921223E-01
+1.1896492028691384E-01
+1.1888809930654537E-01
+1.1881129377051058E-01
+1.1873450369121348E-01
+1.1865772908105779E-01
+1.1858096995244743E-01
+1.1850422631778627E-01
+1.1842749818947812E-01
+1.1835078557992686E-01
+1.1827408850153634E-01
+1.1819740696671047E-01
+1.1812074098785301E-01
+1.1804409057736788E-01
+1.1796745574765893E-01
+1.1789083651113001E-01
+1.1781423288018503E-01
+1.1773764486722775E-01
+1.1766107248466211E-01
+1.1758451574489190E-01
+1.1750797466032101E-01
+1.1743144924335330E-01
+1.1735493950639263E-01
+1.1727844546184288E-01
+1.1720196712210784E-01
+1.1712550449959142E-01
+1.1704905760669745E-01
+1.1697262645582984E-01
+1.1689621105939237E-01
+1.1681981142978894E-01
+1.1674342757942341E-01
+1.1666705952069961E-01
+1.1659070726602147E-01
+1.1651437082779276E-01
+1.1643805021841738E-01
+1.1636174545029918E-01
+1.1628545653584199E-01
+1.1620918348744971E-01
+1.1613292631752617E-01
+1.1605668503847527E-01
+1.1598045966270080E-01
+1.1590425020260667E-01
+1.1582805667059670E-01
+1.1575187907907482E-01
+1.1567571744044478E-01
+1.1559957176711050E-01
+1.1552344207147586E-01
+1.1544732836594461E-01
+1.1537123066292077E-01
+1.1529514897480805E-01
+1.1521908331401041E-01
+1.1514303369293165E-01
+1.1506700012397562E-01
+1.1499098261954621E-01
+1.1491498119204727E-01
+1.1483899585388267E-01
+1.1476302661745623E-01
+1.1468707349517185E-01
+1.1461113649943330E-01
+1.1453521564264457E-01
+1.1445931093720943E-01
+1.1438342239553174E-01
+1.1430755003001541E-01
+1.1423169385306420E-01
+1.1415585387708209E-01
+1.1408003011447285E-01
+1.1400422257764038E-01
+1.1392843127898850E-01
+1.1385265623092108E-01
+1.1377689744584199E-01
+1.1370115493615508E-01
+1.1362542871426425E-01
+1.1354971879257326E-01
+1.1347402518348608E-01
+1.1339834789940643E-01
+1.1332268695273832E-01
+1.1324704235588551E-01
+1.1317141412125187E-01
+1.1309580226124130E-01
+1.1302020678825757E-01
+1.1294462771470465E-01
+1.1286906505298631E-01
+1.1279351881550648E-01
+1.1271798901466894E-01
+1.1264247566287761E-01
+1.1256697877253626E-01
+1.1249149835604887E-01
+1.1241603442581920E-01
+1.1234058699425115E-01
+1.1226515607374858E-01
+1.1218974167671529E-01
+1.1211434381555524E-01
+1.1203896250267220E-01
+1.1196359775047010E-01
+1.1188824957135271E-01
+1.1181291797772394E-01
+1.1173760298198764E-01
+1.1166230459654765E-01
+1.1158702283380789E-01
+1.1151175770617214E-01
+1.1143650922604431E-01
+1.1136127740582819E-01
+1.1128606225792773E-01
+1.1121086379474671E-01
+1.1113568202868902E-01
+1.1106051697215855E-01
+1.1098536863755909E-01
+1.1091023703729452E-01
+1.1083512218376872E-01
+1.1076002408938555E-01
+1.1068494276654883E-01
+1.1060987822766243E-01
+1.1053483048513021E-01
+1.1045979955135606E-01
+1.1038478543874380E-01
+1.1030978815969730E-01
+1.1023480772662043E-01
+1.1015984415191697E-01
+1.1008489744799090E-01
+1.1000996762724599E-01
+1.0993505470208612E-01
+1.0986015868491518E-01
+1.0978527958813696E-01
+1.0971041742415535E-01
+1.0963557220537423E-01
+1.0956074394419746E-01
+1.0948593265302885E-01
+1.0941113834427228E-01
+1.0933636103033161E-01
+1.0926160072361070E-01
+1.0918685743651343E-01
+1.0911213118144361E-01
+1.0903742197080514E-01
+1.0896272981700184E-01
+1.0888805473243757E-01
+1.0881339672951620E-01
+1.0873875582064160E-01
+1.0866413201821765E-01
+1.0858952533464812E-01
+1.0851493578233694E-01
+1.0844036337368794E-01
+1.0836580812110502E-01
+1.0829127003699196E-01
+1.0821674913375266E-01
+1.0814224542379103E-01
+1.0806775892173009E-01
+1.0799328966386218E-01
+1.0791883769800355E-01
+1.0784440303398274E-01
+1.0776998562514058E-01
+1.0769558543248885E-01
+1.0762120246832389E-01
+1.0754683675968335E-01
+1.0747248835181135E-01
+1.0739815730297314E-01
+1.0732384363397772E-01
+1.0724954729286912E-01
+1.0717526823244108E-01
+1.0710100647880640E-01
+1.0702676208269174E-01
+1.0695253507378057E-01
+1.0687832546180384E-01
+1.0680413324766780E-01
+1.0672995841192463E-01
+1.0665580093726389E-01
+1.0658166084693303E-01
+1.0650753818248437E-01
+1.0643343297180094E-01
+1.0635934522596495E-01
+1.0628527494962009E-01
+1.0621122212918943E-01
+1.0613718674935635E-01
+1.0606316881692679E-01
+1.0598916835218396E-01
+1.0591518538513635E-01
+1.0584121996085674E-01
+1.0576727211142824E-01
+1.0569334180448423E-01
+1.0561942899221390E-01
+1.0554553366775467E-01
+1.0547165585625649E-01
+1.0539779559305143E-01
+1.0532395293267871E-01
+1.0525012792026600E-01
+1.0517632052963609E-01
+1.0510253070952023E-01
+1.0502875844599172E-01
+1.0495500376277307E-01
+1.0488126669391745E-01
+1.0480754729698635E-01
+1.0473384562357328E-01
+1.0466016164343173E-01
+1.0458649528724319E-01
+1.0451284653446931E-01
+1.0443921542829290E-01
+1.0436560201410865E-01
+1.0429200632992974E-01
+1.0421842840841576E-01
+1.0414486823962937E-01
+1.0407132578660178E-01
+1.0399780103594368E-01
+1.0392429401470267E-01
+1.0385080475283597E-01
+1.0377733327560620E-01
+1.0370387960560215E-01
+1.0363044374427564E-01
+1.0355702567555464E-01
+1.0348362538889787E-01
+1.0341024288709232E-01
+1.0333687818044003E-01
+1.0326353131668500E-01
+1.0319020235648353E-01
+1.0311689130579457E-01
+1.0304359811196805E-01
+1.0297032273898528E-01
+1.0289706520746761E-01
+1.0282382554900300E-01
+1.0275060380182906E-01
+1.0267740000692833E-01
+1.0260421417143423E-01
+1.0253104625562907E-01
+1.0245789623200834E-01
+1.0238476413371618E-01
+1.0231165000674784E-01
+1.0223855387389214E-01
+1.0216547574200296E-01
+1.0209241561199797E-01
+1.0201937347469392E-01
+1.0194634932075670E-01
+1.0187334314553827E-01
+1.0180035494836588E-01
+1.0172738477427135E-01
+1.0165443270849710E-01
+1.0158149878734431E-01
+1.0150858292881428E-01
+1.0143568505107704E-01
+1.0136280519284685E-01
+1.0128994344288061E-01
+1.0121709984144446E-01
+1.0114427437331436E-01
+1.0107146702429723E-01
+1.0099867779281235E-01
+1.0092590668109820E-01
+1.0085315370468462E-01
+1.0078041888651199E-01
+1.0070770224688727E-01
+1.0063500380211718E-01
+1.0056232356189290E-01
+1.0048966150970239E-01
+1.0041701762476431E-01
+1.0034439192143862E-01
+1.0027178443961773E-01
+1.0019919521180398E-01
+1.0012662425523632E-01
+1.0005407158062986E-01
+9.9981537171875842E-02
+9.9909021004805018E-02
+9.9836523081121925E-02
+9.9764043426879917E-02
+9.9691582071241888E-02
+9.9619139048813823E-02
+9.9546714389017701E-02
+9.9474308075565274E-02
+9.9401920072109795E-02
+9.9329550372282763E-02
+9.9257199006210731E-02
+9.9184866005848429E-02
+9.9112551401925222E-02
+9.9040255221428869E-02
+9.8967977454659323E-02
+9.8895718070313957E-02
+9.8823477059387987E-02
+9.8751254448333561E-02
+9.8679050266995388E-02
+9.8606864546518860E-02
+9.8534697316107700E-02
+9.8462548570080022E-02
+9.8390418275824815E-02
+9.8318306419290999E-02
+9.8246213025826631E-02
+9.8174138125625476E-02
+9.8102081749061223E-02
+9.8030043925319499E-02
+9.7958024654682022E-02
+9.7886023908527256E-02
+9.7814041670550272E-02
+9.7742077960998694E-02
+9.7670132806714854E-02
+9.7598206238679916E-02
+9.7526298289196942E-02
+9.7454408963525876E-02
+9.7382538231992319E-02
+9.7310686073702385E-02
+9.7238852507538928E-02
+9.7167037561593228E-02
+9.7095241267354970E-02
+9.7023463658152426E-02
+9.6951704742769179E-02
+9.6879964488873122E-02
+9.6808242870097663E-02
+9.6736539907534655E-02
+9.6664855636210120E-02
+9.6593190086182709E-02
+9.6521543283323699E-02
+9.6449915237164952E-02
+9.6378305921811153E-02
+9.6306715312688126E-02
+9.6235143424074285E-02
+9.6163590285783168E-02
+9.6092055929208497E-02
+9.6020540387369083E-02
+9.5949043677629742E-02
+9.5877565771967321E-02
+9.5806106638872068E-02
+9.5734666288077794E-02
+9.5663244750890108E-02
+9.5591842058923127E-02
+9.5520458243955803E-02
+9.5449093326617981E-02
+9.5377747284567882E-02
+9.5306420087870353E-02
+9.5235111740931661E-02
+9.5163822271525103E-02
+9.5092551709238748E-02
+9.5021300086101060E-02
+9.4950067426244261E-02
+9.4878853711735447E-02
+9.4807658912742676E-02
+9.4736483029545349E-02
+9.4665326088893428E-02
+9.4594188119948769E-02
+9.4523069155402109E-02
+9.4451969222256890E-02
+9.4380888304310281E-02
+9.4309826367954888E-02
+9.4238783408875190E-02
+9.4167759456024056E-02
+9.4096754540616556E-02
+9.4025768695317855E-02
+9.3954801948717817E-02
+9.3883854287531904E-02
+9.3812925675646974E-02
+9.3742016104581410E-02
+9.3671125606681921E-02
+9.3600254215789533E-02
+9.3529401958499694E-02
+9.3458568857445079E-02
+9.3387754906677292E-02
+9.3316960079703290E-02
+9.3246184367046805E-02
+9.3175427792502735E-02
+9.3104690383765121E-02
+9.3033972169466114E-02
+9.2963273177205638E-02
+9.2892593406865370E-02
+9.2821932832443041E-02
+9.2751291439873595E-02
+9.2680669247407879E-02
+9.2610066279406600E-02
+9.2539482568853679E-02
+9.2468918151698692E-02
+9.2398373032040196E-02
+9.2327847175546693E-02
+9.2257340559144099E-02
+9.2186853204712843E-02
+9.2116385143526186E-02
+9.2045936407699425E-02
+9.1975507029431344E-02
+9.1905097015419671E-02
+9.1834706332571736E-02
+9.1764334955126037E-02
+9.1693982905215812E-02
+9.1623650217876079E-02
+9.1553336922290424E-02
+9.1483043043021101E-02
+9.1412768588899879E-02
+9.1342513537027561E-02
+9.1272277866530610E-02
+9.1202061591625000E-02
+9.1131864739542962E-02
+9.1061687338584663E-02
+9.0991529418067707E-02
+9.0921390993200984E-02
+9.0851272041330117E-02
+9.0781172537778621E-02
+9.0711092492392592E-02
+9.0641031931894656E-02
+9.0570990885811359E-02
+9.0500969387123265E-02
+9.0430967456332806E-02
+9.0360985068691627E-02
+9.0291022192835219E-02
+9.0221078836654228E-02
+9.0151155032912822E-02
+9.0081250812541286E-02
+9.0011366202761081E-02
+8.9941501222590300E-02
+8.9871655853578675E-02
+8.9801830067944927E-02
+8.9732023868147437E-02
+8.9662237281476251E-02
+8.9592470337448216E-02
+8.9522723068819504E-02
+8.9452995501819482E-02
+8.9383287617976093E-02
+8.9313599382417772E-02
+8.9243930793244275E-02
+8.9174281883504763E-02
+8.9104652686022592E-02
+8.9035043228157126E-02
+8.8965453532422009E-02
+8.8895883587231619E-02
+8.8826333363807949E-02
+8.8756802856469780E-02
+8.8687292091307671E-02
+8.8617801097215620E-02
+8.8548329905054846E-02
+8.8478878543180303E-02
+8.8409447003052630E-02
+8.8340035251444682E-02
+8.8270643277083657E-02
+8.8201271108458087E-02
+8.8131918777548723E-02
+8.8062586313321825E-02
+8.7993273742170780E-02
+8.7923981061129905E-02
+8.7854708241646581E-02
+8.7785455269850363E-02
+8.7716222167951649E-02
+8.7647008963588971E-02
+8.7577815686635335E-02
+8.7508642366941919E-02
+8.7439489006488499E-02
+8.7370355575860870E-02
+8.7301242057338732E-02
+8.7232148474286966E-02
+8.7163074857589409E-02
+8.7094021234825708E-02
+8.7024987631332915E-02
+8.6955974051548479E-02
+8.6886980469519662E-02
+8.6818006866384162E-02
+8.6749053262248507E-02
+8.6680119687109855E-02
+8.6611206169430896E-02
+8.6542312736404781E-02
+8.6473439397015253E-02
+8.6404586125842398E-02
+8.6335752900428400E-02
+8.6266939735749185E-02
+8.6198146659731634E-02
+8.6129373702762108E-02
+8.6060620897454754E-02
+8.5991888258940982E-02
+8.5923175758728890E-02
+8.5854483367378692E-02
+8.5785811098126316E-02
+8.5717158983472069E-02
+8.5648527054091039E-02
+8.5579915338352602E-02
+8.5511323852558677E-02
+8.5442752573679587E-02
+8.5374201474093581E-02
+8.5305670562446423E-02
+8.5237159868828558E-02
+8.5168669422969204E-02
+8.5100199253603181E-02
+8.5031749380436464E-02
+8.4963319783719224E-02
+8.4894910434960599E-02
+8.4826521337430461E-02
+8.4758152518755750E-02
+8.4689804008353700E-02
+8.4621475838003224E-02
+8.4553168032605319E-02
+8.4484880574579438E-02
+8.4416613432111723E-02
+8.4348366604231076E-02
+8.4280140120497546E-02
+8.4211934011209258E-02
+8.4143748305165841E-02
+8.4075583026345324E-02
+8.4007438161767103E-02
+8.3939313681256442E-02
+8.3871209580182959E-02
+8.3803125886662264E-02
+8.3735062630643245E-02
+8.3667019841024967E-02
+8.3598997543416390E-02
+8.3530995728954921E-02
+8.3463014367340729E-02
+8.3395053449617895E-02
+8.3327113002670886E-02
+8.3259193056500813E-02
+8.3191293639960862E-02
+8.3123414779668753E-02
+8.3055556471223896E-02
+8.2987718685006623E-02
+8.2919901407832036E-02
+8.2852104663572276E-02
+8.2784328481010083E-02
+8.2716572889482143E-02
+8.2648837917467202E-02
+8.2581123566264431E-02
+8.2513429808579439E-02
+8.2445756628158090E-02
+8.2378104044062178E-02
+8.2310472082076078E-02
+8.2242860772163140E-02
+8.2175270145852658E-02
+8.2107700209132078E-02
+8.2040150933263348E-02
+8.1972622297527747E-02
+8.1905114321096872E-02
+8.1837627032689070E-02
+8.1770160461947447E-02
+8.1702714638895904E-02
+8.1635289572565134E-02
+8.1567885234966442E-02
+8.1500501602142325E-02
+8.1433138689865209E-02
+8.1365796526616796E-02
+8.1298475142569687E-02
+8.1231174569289091E-02
+8.1163894820662053E-02
+8.1096635869689362E-02
+8.1029397689553015E-02
+8.0962180294216771E-02
+8.0894983714722105E-02
+8.0827807979787142E-02
+8.0760653115454231E-02
+8.0693519136390640E-02
+8.0626406022968597E-02
+8.0559313752252060E-02
+8.0492242331726360E-02
+8.0425191785711933E-02
+8.0358162141869263E-02
+8.0291153432437465E-02
+8.0224165679346815E-02
+8.0157198861005308E-02
+8.0090252947328966E-02
+8.0023327943271702E-02
+7.9956423878858207E-02
+7.9889540783834298E-02
+7.9822678686397003E-02
+7.9755837607646832E-02
+7.9689017530763975E-02
+7.9622218427454455E-02
+7.9555440298232402E-02
+7.9488683170248611E-02
+7.9421947072168320E-02
+7.9355232033924750E-02
+7.9288538080427864E-02
+7.9221865197870903E-02
+7.9155213355827717E-02
+7.9088582549684761E-02
+7.9021972805694105E-02
+7.8955384152697136E-02
+7.8888816622102925E-02
+7.8822270242053336E-02
+7.8755745001710412E-02
+7.8689240867735766E-02
+7.8622757831403975E-02
+7.8556295922382322E-02
+7.8489855172265144E-02
+7.8423435606728820E-02
+7.8357037248003913E-02
+7.8290660091421813E-02
+7.8224304111928600E-02
+7.8157969299754756E-02
+7.8091655676847740E-02
+7.8025363269504724E-02
+7.7959092107309572E-02
+7.7892842219687716E-02
+7.7826613605762929E-02
+7.7760406234886809E-02
+7.7694220090522917E-02
+7.7628055196726164E-02
+7.7561911583828413E-02
+7.7495789279382929E-02
+7.7429688308991565E-02
+7.7363608675546078E-02
+7.7297550353139233E-02
+7.7231513324537274E-02
+7.7165497609516534E-02
+7.7099503236009781E-02
+7.7033530232282280E-02
+7.6967578626514627E-02
+7.6901648426198788E-02
+7.6835739604831685E-02
+7.6769852141016975E-02
+7.6703986052277115E-02
+7.6638141367479609E-02
+7.6572318113925605E-02
+7.6506516317560058E-02
+7.6440735989279363E-02
+7.6374977107790246E-02
+7.6309239652666491E-02
+7.6243523635359259E-02
+7.6177829079940612E-02
+7.6112156014616059E-02
+7.6046504471868531E-02
+7.5980874469013318E-02
+7.5915265979880395E-02
+7.5849678975364446E-02
+7.5784113467136885E-02
+7.5718569487719614E-02
+7.5653047066118709E-02
+7.5587546226359853E-02
+7.5522066983559705E-02
+7.5456609320544737E-02
+7.5391173214802529E-02
+7.5325758671583448E-02
+7.5260365714710564E-02
+7.5194994370673077E-02
+7.5129644670037160E-02
+7.5064316635566022E-02
+7.4999010248468695E-02
+7.4933725478677382E-02
+7.4868462328912325E-02
+7.4803220830201203E-02
+7.4738001012508548E-02
+7.4672802901229365E-02
+7.4607626516136075E-02
+7.4542471842938191E-02
+7.4477338854039621E-02
+7.4412227548199913E-02
+7.4347137953577766E-02
+7.4282070099033454E-02
+7.4217024010887214E-02
+7.4151999711640285E-02
+7.4086997192414544E-02
+7.4022016427532464E-02
+7.3957057410725946E-02
+7.3892120163898692E-02
+7.3827204712476446E-02
+7.3762311087306770E-02
+7.3697439317906954E-02
+7.3632589397761503E-02
+7.3567761294909148E-02
+7.3502954997240522E-02
+7.3438170530775004E-02
+7.3373407925408099E-02
+7.3308667209388542E-02
+7.3243948408959175E-02
+7.3179251521619096E-02
+7.3114576518501118E-02
+7.3049923384975041E-02
+7.2985292143719571E-02
+7.2920682822987776E-02
+7.2856095450748976E-02
+7.2791530054069575E-02
+7.2726986635258520E-02
+7.2662465167292647E-02
+7.2597965633049766E-02
+7.2533488053146800E-02
+7.2469032455764248E-02
+7.2404598868084771E-02
+7.2340187316355387E-02
+7.2275797806297143E-02
+7.2211430312189920E-02
+7.2147084814341483E-02
+7.2082761330887341E-02
+7.2018459890145589E-02
+7.1954180518859434E-02
+7.1889923242463308E-02
+7.1825688070957794E-02
+7.1761474983610782E-02
+7.1697283961302982E-02
+7.1633115015684909E-02
+7.1568968169724967E-02
+7.1504843449982966E-02
+7.1440740886486429E-02
+7.1376660494900310E-02
+7.1312602252816368E-02
+7.1248566135935845E-02
+7.1184552154026012E-02
+7.1120560333177749E-02
+7.1056590701220029E-02
+7.0992643288045276E-02
+7.0928718111996789E-02
+7.0864815150635210E-02
+7.0800934375759988E-02
+7.0737075793939633E-02
+7.0673239433403437E-02
+7.0609425322333136E-02
+7.0545633488296747E-02
+7.0481863950870388E-02
+7.0418116692527455E-02
+7.0354391686777193E-02
+7.0290688937203430E-02
+7.0227008471641511E-02
+7.0163350317441253E-02
+7.0099714499444854E-02
+7.0036101037033727E-02
+6.9972509917228892E-02
+6.9908941115450235E-02
+6.9845394630917768E-02
+6.9781870487641950E-02
+6.9718368712036766E-02
+6.9654889334022849E-02
+6.9591432379621329E-02
+6.9527997836015210E-02
+6.9464585671177956E-02
+6.9401195878525015E-02
+6.9337828485846492E-02
+6.9274483522692165E-02
+6.9211161016162384E-02
+6.9147860990291216E-02
+6.9084583438971725E-02
+6.9021328336282509E-02
+6.8958095672783659E-02
+6.8894885468361380E-02
+6.8831697746977921E-02
+6.8768532538298774E-02
+6.8705389871996259E-02
+6.8642269746165968E-02
+6.8579172131864194E-02
+6.8516097015161578E-02
+6.8453044418331346E-02
+6.8390014368535007E-02
+6.8327006892072328E-02
+6.8264022014036238E-02
+6.8201059735896283E-02
+6.8138120032980157E-02
+6.8075202890781283E-02
+6.8012308329507914E-02
+6.7949436375718569E-02
+6.7886587054460906E-02
+6.7823760389579504E-02
+6.7760956386373958E-02
+6.7698175023638382E-02
+6.7635416285635783E-02
+6.7572680186850809E-02
+6.7509966749736985E-02
+6.7447276001562903E-02
+6.7384607972808042E-02
+6.7321962673815586E-02
+6.7259340077389637E-02
+6.7196740159690294E-02
+6.7134162937060385E-02
+6.7071608439241884E-02
+6.7009076693900299E-02
+6.6946567726751699E-02
+6.6884081549318797E-02
+6.6821618138717787E-02
+6.6759177471649181E-02
+6.6696759559386032E-02
+6.6634364428552431E-02
+6.6571992105461511E-02
+6.6509642615974557E-02
+6.6447315975391913E-02
+6.6385012164967491E-02
+6.6322731162127432E-02
+6.6260472975041965E-02
+6.6198237629735687E-02
+6.6136025152020841E-02
+6.6073835567050529E-02
+6.6011668891918007E-02
+6.5949525109108453E-02
+6.5887404193804344E-02
+6.5825306150870552E-02
+6.5763231007522224E-02
+6.5701178790561407E-02
+6.5639149524885740E-02
+6.5577143229385029E-02
+6.5515159889349417E-02
+6.5453199479191260E-02
+6.5391262000110112E-02
+6.5329347479356425E-02
+6.5267455943748900E-02
+6.5205587416175548E-02
+6.5143741915370354E-02
+6.5081919432238122E-02
+6.5020119944994362E-02
+6.4958343450721892E-02
+6.4896589970261195E-02
+6.4834859527044250E-02
+6.4773152148273491E-02
+6.4711467859113303E-02
+6.4649806653305414E-02
+6.4588168505381696E-02
+6.4526553406917209E-02
+6.4464961377624697E-02
+6.4403392441141794E-02
+6.4341846627373425E-02
+6.4280323965927436E-02
+6.4218824452723450E-02
+6.4157348056773172E-02
+6.4095894764155850E-02
+6.4034464598706181E-02
+6.3973057588752796E-02
+6.3911673760649754E-02
+6.3850313138968842E-02
+6.3788975723310548E-02
+6.3727661487465614E-02
+6.3666370416608928E-02
+6.3605102531038071E-02
+6.3543857857073546E-02
+6.3482636420512217E-02
+6.3421438246386894E-02
+6.3360263339098249E-02
+6.3299111675509223E-02
+6.3237983238949025E-02
+6.3176878043961521E-02
+6.3115796112850994E-02
+6.3054737473872510E-02
+6.2993702158933990E-02
+6.2932690177311637E-02
+6.2871701498990004E-02
+6.2810736098879202E-02
+6.2749793995982572E-02
+6.2688875222654566E-02
+6.2627979804644643E-02
+6.2567107762008439E-02
+6.2506259102659528E-02
+6.2445433807438548E-02
+6.2384631857899914E-02
+6.2323853265498420E-02
+6.2263098054073589E-02
+6.2202366248579506E-02
+6.2141657875145855E-02
+6.2080972948578055E-02
+6.2020311449602107E-02
+6.1959673355852979E-02
+6.1899058675129702E-02
+6.1838467431582861E-02
+6.1777899650584119E-02
+6.1717355359012287E-02
+6.1656834574459654E-02
+6.1596337276922812E-02
+6.1535863439520583E-02
+6.1475413068385491E-02
+6.1414986192839666E-02
+6.1354582840143487E-02
+6.1294203032859360E-02
+6.1233846787347897E-02
+6.1173514089421344E-02
+6.1113204915942423E-02
+6.1052919268106728E-02
+6.0992657169217916E-02
+6.0932418643939376E-02
+6.0872203718282780E-02
+6.0812012413882219E-02
+6.0751844719110472E-02
+6.0691700608359843E-02
+6.0631580077998209E-02
+6.0571483150207495E-02
+6.0511409849919304E-02
+6.0451360206179361E-02
+6.0391334245220731E-02
+6.0331331956750521E-02
+6.0271353309778453E-02
+6.0211398295398434E-02
+6.0151466938531503E-02
+6.0091559266909310E-02
+6.0031675308229372E-02
+5.9971815087928815E-02
+5.9911978599115040E-02
+5.9852165810838416E-02
+5.9792376710909347E-02
+5.9732611325260983E-02
+5.9672869683279742E-02
+5.9613151808552374E-02
+5.9553457721580168E-02
+5.9493787420996772E-02
+5.9434140884329273E-02
+5.9374518099483936E-02
+5.9314919083493359E-02
+5.9255343858684577E-02
+5.9195792452400961E-02
+5.9136264893644042E-02
+5.9076761186239522E-02
+5.9017281302614272E-02
+5.8957825223723968E-02
+5.8898392966696932E-02
+5.8838984556578107E-02
+5.8779600019857700E-02
+5.8720239383617201E-02
+5.8660902654946702E-02
+5.8601589808655929E-02
+5.8542300824473065E-02
+5.8483035718339807E-02
+5.8423794516570246E-02
+5.8364577244475010E-02
+5.8305383926470784E-02
+5.8246214571653090E-02
+5.8187069156917681E-02
+5.8127947660608990E-02
+5.8068850095358802E-02
+5.8009776486940154E-02
+5.7950726861105445E-02
+5.7891701243541260E-02
+5.7832699647524848E-02
+5.7773722051906957E-02
+5.7714768433352506E-02
+5.7655838800227739E-02
+5.7596933176896986E-02
+5.7538051588575695E-02
+5.7479194061446061E-02
+5.7420360611974738E-02
+5.7361551220445180E-02
+5.7302765861479747E-02
+5.7244004541861744E-02
+5.7185267289447748E-02
+5.7126554129971203E-02
+5.7067865084880015E-02
+5.7009200169092687E-02
+5.6950559367259873E-02
+5.6891942656144154E-02
+5.6833350038143396E-02
+5.6774781537411667E-02
+5.6716237179295498E-02
+5.6657716990272673E-02
+5.6599220991525562E-02
+5.6540749167773768E-02
+5.6482301489760640E-02
+5.6423877954945884E-02
+5.6365478590070933E-02
+5.6307103422215919E-02
+5.6248752475039882E-02
+5.6190425768475022E-02
+5.6132123294029772E-02
+5.6073845028286655E-02
+5.6015590965095563E-02
+5.5957361122915467E-02
+5.5899155523698132E-02
+5.5840974195878003E-02
+5.5782817166890486E-02
+5.5724684430269296E-02
+5.5666575956040014E-02
+5.5608491732655391E-02
+5.5550431783276392E-02
+5.5492396134422924E-02
+5.5434384810695223E-02
+5.5376397834735587E-02
+5.5318435203725938E-02
+5.5260496891905202E-02
+5.5202582886740875E-02
+5.5144693209506698E-02
+5.5086827886109260E-02
+5.5028986939952028E-02
+5.4971170392674240E-02
+5.4913378245429842E-02
+5.4855610475528879E-02
+5.4797867068557264E-02
+5.4740148040781061E-02
+5.4682453414787890E-02
+5.4624783215341650E-02
+5.4567137468100255E-02
+5.4509516179028134E-02
+5.4451919324423850E-02
+5.4394346885790916E-02
+5.4336798877297435E-02
+5.4279275321938728E-02
+5.4221776244392367E-02
+5.4164301670456064E-02
+5.4106851609520827E-02
+5.4049426038784404E-02
+5.3992024937560439E-02
+5.3934648318703579E-02
+5.3877296206955048E-02
+5.3819968626218809E-02
+5.3762665599552915E-02
+5.3705387137662083E-02
+5.3648133219535661E-02
+5.3590903823307098E-02
+5.3533698959652806E-02
+5.3476518654464157E-02
+5.3419362932004846E-02
+5.3362231814411222E-02
+5.3305125314908622E-02
+5.3248043416677861E-02
+5.3190986098845150E-02
+5.3133953366186232E-02
+5.3076945239209125E-02
+5.3019961740842336E-02
+5.2963002897534549E-02
+5.2906068728101337E-02
+5.2849159214926347E-02
+5.2792274331817456E-02
+5.2735414081573222E-02
+5.2678578489961603E-02
+5.2621767582126375E-02
+5.2564981380587565E-02
+5.2508219902614527E-02
+5.2451483135123031E-02
+5.2394771054397681E-02
+5.2338083658957917E-02
+5.2281420970079540E-02
+5.2224783010942633E-02
+5.2168169807140251E-02
+5.2111581380806932E-02
+5.2055017721480079E-02
+5.1998478802877952E-02
+5.1941964619207241E-02
+5.1885475191865447E-02
+5.1829010544296075E-02
+5.1772570700627261E-02
+5.1716155682722850E-02
+5.1659765483869080E-02
+5.1603400078930967E-02
+5.1547059459936290E-02
+5.1490743648809491E-02
+5.1434452669890864E-02
+5.1378186544992974E-02
+5.1321945293812343E-02
+5.1265728912950691E-02
+5.1209537379591087E-02
+5.1153370683767692E-02
+5.1097228845603915E-02
+5.1041111889022626E-02
+5.0985019836083216E-02
+5.0928952707311764E-02
+5.0872910502433061E-02
+5.0816893198553849E-02
+5.0760900781859478E-02
+5.0704933268724280E-02
+5.0648990681360972E-02
+5.0593073044626416E-02
+5.0537180384329423E-02
+5.0481312704742862E-02
+5.0425469979867396E-02
+5.0369652190450191E-02
+5.0313859352814690E-02
+5.0258091491931701E-02
+5.0202348631145921E-02
+5.0146630792514101E-02
+5.0090937982720726E-02
+5.0035270180452063E-02
+4.9979627367257411E-02
+4.9924009555595360E-02
+4.9868416768128518E-02
+4.9812849027857667E-02
+4.9757306358036442E-02
+4.9701788768630378E-02
+4.9646296237817536E-02
+4.9590828743772838E-02
+4.9535386297956154E-02
+4.9479968926267354E-02
+4.9424576652371516E-02
+4.9369209497273657E-02
+4.9313867472318529E-02
+4.9258550558713414E-02
+4.9203258734521124E-02
+4.9147992005598842E-02
+4.9092750393694130E-02
+4.9037533922466736E-02
+4.8982342618161159E-02
+4.8927176498426372E-02
+4.8872035543588037E-02
+4.8816919726271293E-02
+4.8761829049928769E-02
+4.8706763540811757E-02
+4.8651723223745023E-02
+4.8596708119732851E-02
+4.8541718244145708E-02
+4.8486753582794542E-02
+4.8431814112134729E-02
+4.8376899831667958E-02
+4.8322010762923376E-02
+4.8267146928714269E-02
+4.8212308352886396E-02
+4.8157495055472815E-02
+4.8102707025763081E-02
+4.8047944239288543E-02
+4.7993206691317507E-02
+4.7938494401533964E-02
+4.7883807391807996E-02
+4.7829145686325888E-02
+4.7774509306968346E-02
+4.7719898245549508E-02
+4.7665312475868547E-02
+4.7610751989450951E-02
+4.7556216806499102E-02
+4.7501706950011394E-02
+4.7447222444047747E-02
+4.7392763311194380E-02
+4.7338329546516372E-02
+4.7283921123494790E-02
+4.7229538030715841E-02
+4.7175180289386880E-02
+4.7120847924135303E-02
+4.7066540955633646E-02
+4.7012259402217114E-02
+4.6958003262313211E-02
+4.6903772514133114E-02
+4.6849567145579550E-02
+4.6795387173581747E-02
+4.6741232620127561E-02
+4.6687103508319415E-02
+4.6632999861274643E-02
+4.6578921680676171E-02
+4.6524868940089878E-02
+4.6470841621198869E-02
+4.6416839742270989E-02
+4.6362863329553763E-02
+4.6308912405027422E-02
+4.6254986987711154E-02
+4.6201087081460146E-02
+4.6147212664433154E-02
+4.6093363718902811E-02
+4.6039540259478033E-02
+4.5985742310470631E-02
+4.5931969893344353E-02
+4.5878223027116923E-02
+4.5824501719186908E-02
+4.5770805951307968E-02
+4.5717135705734803E-02
+4.5663490990805918E-02
+4.5609871825528003E-02
+4.5556278231631539E-02
+4.5502710233750909E-02
+4.5449167845335640E-02
+4.5395651046578396E-02
+4.5342159814754007E-02
+4.5288694155672528E-02
+4.5235254090342458E-02
+4.5181839641296018E-02
+4.5128450832997602E-02
+4.5075087681193407E-02
+4.5021750166895760E-02
+4.4968438264849135E-02
+4.4915151978435805E-02
+4.4861891330812434E-02
+4.4808656344624893E-02
+4.4755447040879269E-02
+4.4702263434781814E-02
+4.4649105511962321E-02
+4.4595973249625713E-02
+4.4542866648762454E-02
+4.4489785731593262E-02
+4.4436730520179372E-02
+4.4383701034432593E-02
+4.4330697290131643E-02
+4.4277719275875038E-02
+4.4224766969140281E-02
+4.4171840367119908E-02
+4.4118939489750590E-02
+4.4066064358222863E-02
+4.4013214993714835E-02
+4.3960391414692428E-02
+4.3907593613025854E-02
+4.3854821565812961E-02
+4.3802075266711836E-02
+4.3749354734269906E-02
+4.3696659989548359E-02
+4.3643991055671925E-02
+4.3591347954269985E-02
+4.3538730678452008E-02
+4.3486139200485295E-02
+4.3433573508918813E-02
+4.3381033624744048E-02
+4.3328519572236622E-02
+4.3276031373263010E-02
+4.3223569047729608E-02
+4.3171132592144598E-02
+4.3118721980827515E-02
+4.3066337200339366E-02
+4.3013978270587477E-02
+4.2961645216066949E-02
+4.2909338056426584E-02
+4.2857056808578466E-02
+4.2804801472626858E-02
+4.2752572028104938E-02
+4.2700368461226774E-02
+4.2648190785013508E-02
+4.2596039018463976E-02
+4.2543913184035650E-02
+4.2491813305987738E-02
+4.2439739390136795E-02
+4.2387691413022448E-02
+4.2335669355373674E-02
+4.2283673228597884E-02
+4.2231703052875783E-02
+4.2179758850033937E-02
+4.2127840643090060E-02
+4.2075948440197776E-02
+4.2024082218730850E-02
+4.1972241957564368E-02
+4.1920427667871553E-02
+4.1868639372889829E-02
+4.1816877093984087E-02
+4.1765140850589112E-02
+4.1713430651734724E-02
+4.1661746478364167E-02
+4.1610088310051460E-02
+4.1558456154284502E-02
+4.1506850032348212E-02
+4.1455269964958401E-02
+4.1403715971960277E-02
+4.1352188065157620E-02
+4.1300686227410920E-02
+4.1249210437230725E-02
+4.1197760698753874E-02
+4.1146337032638175E-02
+4.1094939459984374E-02
+4.1043568002177754E-02
+4.0992222674250844E-02
+4.0940903460242394E-02
+4.0889610336244830E-02
+4.0838343302909301E-02
+4.0787102381361705E-02
+4.0735887592744123E-02
+4.0684698956851804E-02
+4.0633536489052817E-02
+4.0582400176889084E-02
+4.0531289997498311E-02
+4.0480205948951575E-02
+4.0429148051860216E-02
+4.0378116327088563E-02
+4.0327110792993004E-02
+4.0276131464807741E-02
+4.0225178333806670E-02
+4.0174251378964798E-02
+4.0123350595473256E-02
+4.0072476001194929E-02
+4.0021627615706261E-02
+3.9970805458748225E-02
+3.9920009548228406E-02
+3.9869239878313319E-02
+3.9818496427006682E-02
+3.9767779185232249E-02
+3.9717088167771801E-02
+3.9666423392887999E-02
+3.9615784883970724E-02
+3.9565172664642712E-02
+3.9514586731674239E-02
+3.9464027058055413E-02
+3.9413493628995100E-02
+3.9362986460493680E-02
+3.9312505573151288E-02
+3.9262050988693183E-02
+3.9211622728629297E-02
+3.9161220793689215E-02
+3.9110845160828286E-02
+3.9060495814755361E-02
+3.9010172768498143E-02
+3.8959876040788953E-02
+3.8909605652159278E-02
+3.8859361623822419E-02
+3.8809143959389024E-02
+3.8758952636424558E-02
+3.8708787637534499E-02
+3.8658648975179420E-02
+3.8608536669581701E-02
+3.8558450740406390E-02
+3.8508391206799254E-02
+3.8458358074893992E-02
+3.8408351325820524E-02
+3.8358370942283185E-02
+3.8308416931761097E-02
+3.8258489310553340E-02
+3.8208588098717126E-02
+3.8158713319817752E-02
+3.8108864984712894E-02
+3.8059043071818434E-02
+3.8009247558557627E-02
+3.7959478453221916E-02
+3.7909735778233707E-02
+3.7860019553377769E-02
+3.7810329795133900E-02
+3.7760666512302934E-02
+3.7711029688592516E-02
+3.7661419304709613E-02
+3.7611835365225318E-02
+3.7562277889064383E-02
+3.7512746895806713E-02
+3.7463242405755590E-02
+3.7413764432480144E-02
+3.7364312959019035E-02
+3.7314887961525059E-02
+3.7265489441751835E-02
+3.7216117421377481E-02
+3.7166771920820747E-02
+3.7117452956834482E-02
+3.7068160541646453E-02
+3.7018894662867542E-02
+3.6969655299768298E-02
+3.6920442451474661E-02
+3.6871256137074947E-02
+3.6822096375743997E-02
+3.6772963184523430E-02
+3.6723856577264673E-02
+3.6674776544481730E-02
+3.6625723065625844E-02
+3.6576696136147814E-02
+3.6527695772340545E-02
+3.6478721992418077E-02
+3.6429774816513369E-02
+3.6380854262895689E-02
+3.6331960323397916E-02
+3.6283092973135964E-02
+3.6234252203704104E-02
+3.6185438034837071E-02
+3.6136650487916762E-02
+3.6087889579278602E-02
+3.6039155322624861E-02
+3.5990447712998669E-02
+3.5941766730035567E-02
+3.5893112364505569E-02
+3.5844484632629493E-02
+3.5795883553743128E-02
+3.5747309145474429E-02
+3.5698761424071197E-02
+3.5650240387651605E-02
+3.5601746014963895E-02
+3.5553278293027804E-02
+3.5504837235573170E-02
+3.5456422861088722E-02
+3.5408035187612277E-02
+3.5359674232605137E-02
+3.5311339998344564E-02
+3.5263032466155010E-02
+3.5214751621818703E-02
+3.5166497474281098E-02
+3.5118270038445407E-02
+3.5070069333723627E-02
+3.5021895382428052E-02
+3.4973748190576026E-02
+3.4925627734892294E-02
+3.4877533995073477E-02
+3.4829466982015916E-02
+3.4781426716570661E-02
+3.4733413217228726E-02
+3.4685426500356602E-02
+3.4637466571940896E-02
+3.4589533413790494E-02
+3.4541627007842364E-02
+3.4493747361210546E-02
+3.4445894491803013E-02
+3.4398068418130728E-02
+3.4350269159339961E-02
+3.4302496725090711E-02
+3.4254751095465961E-02
+3.4207032247793381E-02
+3.4159340188115242E-02
+3.4111674938506260E-02
+3.4064036518243225E-02
+3.4016424942229832E-02
+3.3968840219358809E-02
+3.3921282335007755E-02
+3.3873751269947315E-02
+3.3826247025537916E-02
+3.3778769618115871E-02
+3.3731319064918767E-02
+3.3683895384261191E-02
+3.3636498589860384E-02
+3.3589128669122212E-02
+3.3541785601268484E-02
+3.3494469384690688E-02
+3.3447180035783432E-02
+3.3399917571761799E-02
+3.3352682010151784E-02
+3.3305473365127188E-02
+3.3258291625129999E-02
+3.3211136767397592E-02
+3.3164008788057982E-02
+3.3116907706181802E-02
+3.3069833541075989E-02
+3.3022786308249966E-02
+3.2975766020476555E-02
+3.2928772670100241E-02
+3.2881806237465235E-02
+3.2834866715526496E-02
+3.2787954117245798E-02
+3.2741068458201752E-02
+3.2694209757860811E-02
+3.2647378035179760E-02
+3.2600573285072008E-02
+3.2553795483922426E-02
+3.2507044620059836E-02
+3.2460320707175305E-02
+3.2413623762483822E-02
+3.2366953805790084E-02
+3.2320310856855931E-02
+3.2273694912399231E-02
+3.2227105946138979E-02
+3.2180543942305469E-02
+3.2134008916053246E-02
+3.2087500887558434E-02
+3.2041019876029038E-02
+3.1994565899696750E-02
+3.1948138957582264E-02
+3.1901739023955232E-02
+3.1855366080804165E-02
+3.1809020143579440E-02
+3.1762701234691208E-02
+3.1716409370604305E-02
+3.1670144563845204E-02
+3.1623906815644240E-02
+3.1577696108476272E-02
+3.1531512427819403E-02
+3.1485355782081996E-02
+3.1439226186585401E-02
+3.1393123657506926E-02
+3.1347048211673133E-02
+3.1300999855334834E-02
+3.1254978571640710E-02
+3.1208984344041447E-02
+3.1163017177601633E-02
+3.1117077086075990E-02
+3.1071164085790363E-02
+3.1025278195770830E-02
+3.0979419425580343E-02
+3.0933587757164170E-02
+3.0887783170153209E-02
+3.0842005667404009E-02
+3.0796255263948833E-02
+3.0750531977298740E-02
+3.0704835828221359E-02
+3.0659166829325346E-02
+3.0613524960968599E-02
+3.0567910198005841E-02
+3.0522322543214190E-02
+3.0476762018278401E-02
+3.0431228641451306E-02
+3.0385722424233694E-02
+3.0340243373942172E-02
+3.0294791479929296E-02
+3.0249366726552932E-02
+3.0203969112356701E-02
+3.0158598648335928E-02
+3.0113255348177079E-02
+3.0067939230855288E-02
+3.0022650312147028E-02
+2.9977388580319970E-02
+2.9932154012576859E-02
+2.9886946604463338E-02
+2.9841766372317311E-02
+2.9796613333287463E-02
+2.9751487503576739E-02
+2.9706388896707712E-02
+2.9661317502241956E-02
+2.9616273296715907E-02
+2.9571256272970973E-02
+2.9526266447884475E-02
+2.9481303839713244E-02
+2.9436368464542499E-02
+2.9391460336320414E-02
+2.9346579447493231E-02
+2.9301725775082759E-02
+2.9256899308939304E-02
+2.9212100063938994E-02
+2.9167328057412952E-02
+2.9122583304789687E-02
+2.9077865820009197E-02
+2.9033175600031141E-02
+2.8988512625990503E-02
+2.8943876886545043E-02
+2.8899268390622620E-02
+2.8854687150892944E-02
+2.8810133184797072E-02
+2.8765606511366580E-02
+2.8721107130568656E-02
+2.8676635019414521E-02
+2.8632190162011708E-02
+2.8587772570479345E-02
+2.8543382262528380E-02
+2.8499019253809568E-02
+2.8454683558521789E-02
+2.8410375176977185E-02
+2.8366094087893628E-02
+2.8321840274397200E-02
+2.8277613747428921E-02
+2.8233414525487593E-02
+2.8189242624909475E-02
+2.8145098060281877E-02
+2.8100980834091262E-02
+2.8056890924369391E-02
+2.8012828311239964E-02
+2.7968793004926492E-02
+2.7924785026513896E-02
+2.7880804391635445E-02
+2.7836851110481609E-02
+2.7792925186153904E-02
+2.7749026603452680E-02
+2.7705155346551203E-02
+2.7661311419053855E-02
+2.7617494834058110E-02
+2.7573705606733612E-02
+2.7529943754823694E-02
+2.7486209288433129E-02
+2.7442502189921138E-02
+2.7398822437424468E-02
+2.7355170031047940E-02
+2.7311544984827782E-02
+2.7267947314638882E-02
+2.7224377039041396E-02
+2.7180834170858242E-02
+2.7137318694395857E-02
+2.7093830586738359E-02
+2.7050369845621730E-02
+2.7006936485702172E-02
+2.6963530522185870E-02
+2.6920151970389845E-02
+2.6876800842056521E-02
+2.6833477125903518E-02
+2.6790180802165348E-02
+2.6746911866588077E-02
+2.6703670331331433E-02
+2.6660456209970488E-02
+2.6617269517878499E-02
+2.6574110268279154E-02
+2.6530978452711802E-02
+2.6487874051748201E-02
+2.6444797058080623E-02
+2.6401747481063172E-02
+2.6358725332892709E-02
+2.6315730632046241E-02
+2.6272763396411311E-02
+2.6229823618074372E-02
+2.6186911271876018E-02
+2.6144026346520216E-02
+2.6101168855820971E-02
+2.6058338816100944E-02
+2.6015536243368213E-02
+2.5972761152396370E-02
+2.5930013537329811E-02
+2.5887293374370266E-02
+2.5844600650202700E-02
+2.5801935377188823E-02
+2.5759297571328159E-02
+2.5716687248708264E-02
+2.5674104424806450E-02
+2.5631549096528070E-02
+2.5589021239902917E-02
+2.5546520839256803E-02
+2.5504047907759491E-02
+2.5461602463564822E-02
+2.5419184519827331E-02
+2.5376794086714283E-02
+2.5334431163216060E-02
+2.5292095732130246E-02
+2.5249787779927854E-02
+2.5207507313354013E-02
+2.5165254344551920E-02
+2.5123028888433624E-02
+2.5080830961778759E-02
+2.5038660568017457E-02
+2.4996517685293197E-02
+2.4954402293894770E-02
+2.4912314401347429E-02
+2.4870254024381221E-02
+2.4828221177516603E-02
+2.4786215873192415E-02
+2.4744238115228499E-02
+2.4702287886282041E-02
+2.4660365168741948E-02
+2.4618469967023743E-02
+2.4576602295480872E-02
+2.4534762168032798E-02
+2.4492949598019714E-02
+2.4451164591636574E-02
+2.4409407131688588E-02
+2.4367677198293691E-02
+2.4325974793420087E-02
+2.4284299931918017E-02
+2.4242652627714342E-02
+2.4201032893047713E-02
+2.4159440735471546E-02
+2.4117876142553049E-02
+2.4076339097356937E-02
+2.4034829597700230E-02
+2.3993347652703695E-02
+2.3951893274056901E-02
+2.3910466478049480E-02
+2.3869067277207490E-02
+2.3827695658516338E-02
+2.3786351600376766E-02
+2.3745035098605899E-02
+2.3703746166228404E-02
+2.3662484816749148E-02
+2.3621251063007088E-02
+2.3580044915244867E-02
+2.3538866363663501E-02
+2.3497715389135958E-02
+2.3456591985429688E-02
+2.3415496162814374E-02
+2.3374427933289522E-02
+2.3333387311183146E-02
+2.3292374309481324E-02
+2.3251388920309056E-02
+2.3210431122825288E-02
+2.3169500907673148E-02
+2.3128598284776297E-02
+2.3087723266291705E-02
+2.3046875866414601E-02
+2.3006056098767890E-02
+2.2965263957818276E-02
+2.2924499422487029E-02
+2.2883762481485648E-02
+2.2843053145583887E-02
+2.2802371428240754E-02
+2.2761717341798753E-02
+2.2721090897548677E-02
+2.2680492091331616E-02
+2.2639920902769770E-02
+2.2599377319071762E-02
+2.2558861351190656E-02
+2.2518373013893419E-02
+2.2477912318679051E-02
+2.2437479275090974E-02
+2.2397073881044251E-02
+2.2356696118705589E-02
+2.2316345974792248E-02
+2.2276023457522963E-02
+2.2235728580067057E-02
+2.2195461353836647E-02
+2.2155221788951379E-02
+2.2115009885622487E-02
+2.2074825626671488E-02
+2.2034668997333074E-02
+2.1994540004079421E-02
+2.1954438660033854E-02
+2.1914364976918399E-02
+2.1874318965203556E-02
+2.1834300626918286E-02
+2.1794309944754422E-02
+2.1754346901767963E-02
+2.1714411502124144E-02
+2.1674503758834739E-02
+2.1634623684436447E-02
+2.1594771290896323E-02
+2.1554946582936833E-02
+2.1515149543303452E-02
+2.1475380152766312E-02
+2.1435638412820441E-02
+2.1395924336366341E-02
+2.1356237936552381E-02
+2.1316579226713359E-02
+2.1276948214303419E-02
+2.1237344882776444E-02
+2.1197769210926354E-02
+2.1158221196938359E-02
+2.1118700852850607E-02
+2.1079208191083651E-02
+2.1039743224213731E-02
+2.1000305961022647E-02
+2.0960896389470192E-02
+2.0921514491127204E-02
+2.0882160261257079E-02
+2.0842833707764619E-02
+2.0803534840933380E-02
+2.0764263675739358E-02
+2.0725020224560756E-02
+2.0685804475283190E-02
+2.0646616405281804E-02
+2.0607456007557312E-02
+2.0568323293760439E-02
+2.0529218276308416E-02
+2.0490140966569734E-02
+2.0451091373981243E-02
+2.0412069490367422E-02
+2.0373075297389211E-02
+2.0334108786712955E-02
+2.0295169965600143E-02
+2.0256258843463076E-02
+2.0217375433312725E-02
+2.0178519747836618E-02
+2.0139691780515692E-02
+2.0100891510299871E-02
+2.0062118926378068E-02
+2.0023374039183996E-02
+1.9984656861159116E-02
+1.9945967401653525E-02
+1.9907305668353147E-02
+1.9868671656960189E-02
+1.9830065351427950E-02
+1.9791486741347012E-02
+1.9752935832467414E-02
+1.9714412633481969E-02
+1.9675917155578801E-02
+1.9637449410774877E-02
+1.9599009397556495E-02
+1.9560597097269102E-02
+1.9522212495476560E-02
+1.9483855596400666E-02
+1.9445526408735682E-02
+1.9407224945466268E-02
+1.9368951222059359E-02
+1.9330705239848256E-02
+1.9292486976924712E-02
+1.9254296414534872E-02
+1.9216133558864076E-02
+1.9177998423238182E-02
+1.9139891018152774E-02
+1.9101811351768659E-02
+1.9063759424757475E-02
+1.9025735221905996E-02
+1.8987738728510836E-02
+1.8949769946051579E-02
+1.8911828882451302E-02
+1.8873915548969278E-02
+1.8836029960322860E-02
+1.8798172122119202E-02
+1.8760342013786315E-02
+1.8722539612998971E-02
+1.8684764921951414E-02
+1.8647017955336118E-02
+1.8609298725160418E-02
+1.8571607239674267E-02
+1.8533943502201645E-02
+1.8496307498516794E-02
+1.8458699211517826E-02
+1.8421118639348630E-02
+1.8383565790334688E-02
+1.8346040674482506E-02
+1.8308543304414608E-02
+1.8271073688356478E-02
+1.8233631811011404E-02
+1.8196217650685496E-02
+1.8158831203651554E-02
+1.8121472481667122E-02
+1.8084141496654611E-02
+1.8046838259754713E-02
+1.8009562778738591E-02
+1.7972315039149311E-02
+1.7935095017868368E-02
+1.7897902708950593E-02
+1.7860738125569577E-02
+1.7823601280733289E-02
+1.7786492183929286E-02
+1.7749410842029145E-02
+1.7712357243601803E-02
+1.7675331367475254E-02
+1.7638333205588497E-02
+1.7601362768848230E-02
+1.7564420069087313E-02
+1.7527505115952878E-02
+1.7490617917282018E-02
+1.7453758464198242E-02
+1.7416926736052798E-02
+1.7380122722101259E-02
+1.7343346430544495E-02
+1.7306597871894380E-02
+1.7269877057963460E-02
+1.7233184000122134E-02
+1.7196518692310477E-02
+1.7159881112508383E-02
+1.7123271246519810E-02
+1.7086689100736695E-02
+1.7050134684887069E-02
+1.7013608010507220E-02
+1.6977109089461168E-02
+1.6940637918393557E-02
+1.6904194475947078E-02
+1.6867778746083119E-02
+1.6831390733403229E-02
+1.6795030447036046E-02
+1.6758697899635810E-02
+1.6722393105644599E-02
+1.6686116063969747E-02
+1.6649866749721985E-02
+1.6613645142530015E-02
+1.6577451250372688E-02
+1.6541285088529780E-02
+1.6505146666540092E-02
+1.6469035989547180E-02
+1.6432953055437512E-02
+1.6396897847862177E-02
+1.6360870351732618E-02
+1.6324870569152036E-02
+1.6288898508520222E-02
+1.6252954179942356E-02
+1.6217037595161441E-02
+1.6181148757072945E-02
+1.6145287645223612E-02
+1.6109454238313940E-02
+1.6073648538303342E-02
+1.6037870558180196E-02
+1.6002120308737662E-02
+1.5966397797919103E-02
+1.5930703027812024E-02
+1.5895035980736608E-02
+1.5859396636551521E-02
+1.5823784995478499E-02
+1.5788201070364036E-02
+1.5752644871538917E-02
+1.5717116404922689E-02
+1.5681615672731981E-02
+1.5646142661801640E-02
+1.5610697355311363E-02
+1.5575279749690111E-02
+1.5539889852037631E-02
+1.5504527670558389E-02
+1.5469193215162956E-02
+1.5433886492722820E-02
+1.5398607489644646E-02
+1.5363356185000798E-02
+1.5328132572500673E-02
+1.5292936661069671E-02
+1.5257768460295451E-02
+1.5222627979640002E-02
+1.5187515226354996E-02
+1.5152430188896684E-02
+1.5117372846446285E-02
+1.5082343190504374E-02
+1.5047341229182777E-02
+1.5012366971947844E-02
+1.4977420428983760E-02
+1.4942501608990980E-02
+1.4907610500752268E-02
+1.4872747080006580E-02
+1.4837911335304176E-02
+1.4803103277869331E-02
+1.4768322920184011E-02
+1.4733570269665897E-02
+1.4698845331395295E-02
+1.4664148097126033E-02
+1.4629478547229482E-02
+1.4594836669773580E-02
+1.4560222471158913E-02
+1.4525635960440333E-02
+1.4491077147487747E-02
+1.4456546041946268E-02
+1.4422042637859213E-02
+1.4387566912036163E-02
+1.4353118848304983E-02
+1.4318698454271875E-02
+1.4284305741609105E-02
+1.4249940718412806E-02
+1.4215603390623423E-02
+1.4181293753888005E-02
+1.4147011789191638E-02
+1.4112757481355695E-02
+1.4078530835127074E-02
+1.4044331860126966E-02
+1.4010160564285008E-02
+1.3976016954250893E-02
+1.3941901027831405E-02
+1.3907812766486408E-02
+1.3873752153626125E-02
+1.3839719192730426E-02
+1.3805713893872558E-02
+1.3771736264442374E-02
+1.3737786309359970E-02
+1.3703864027427124E-02
+1.3669969402790085E-02
+1.3636102419651417E-02
+1.3602263078572697E-02
+1.3568451387362691E-02
+1.3534667353638102E-02
+1.3500910984749669E-02
+1.3467182282163979E-02
+1.3433481228423215E-02
+1.3399807804072570E-02
+1.3366162007934739E-02
+1.3332543849420713E-02
+1.3298953337533229E-02
+1.3265390480456885E-02
+1.3231855281701054E-02
+1.3198347724901709E-02
+1.3164867789395740E-02
+1.3131415469816618E-02
+1.3097990772310482E-02
+1.3064593705004216E-02
+1.3031224279389877E-02
+1.2997882503226808E-02
+1.2964568360346674E-02
+1.2931281826772011E-02
+1.2898022895764496E-02
+1.2864791577319720E-02
+1.2831587881141632E-02
+1.2798411814383801E-02
+1.2765263381497376E-02
+1.2732142568855834E-02
+1.2699049354653866E-02
+1.2665983730946996E-02
+1.2632945707200787E-02
+1.2599935292820013E-02
+1.2566952493195095E-02
+1.2533997311657875E-02
+1.2501069738467731E-02
+1.2468169755924199E-02
+1.2435297354443247E-02
+1.2402452537784348E-02
+1.2369635311473476E-02
+1.2336845683577602E-02
+1.2304083661917788E-02
+1.2271349238731624E-02
+1.2238642393833895E-02
+1.2205963114854152E-02
+1.2173311406676272E-02
+1.2140687276411219E-02
+1.2108090731384276E-02
+1.2075521778438040E-02
+1.2042980410640234E-02
+1.2010466606847845E-02
+1.1977980352520163E-02
+1.1945521653338058E-02
+1.1913090518147125E-02
+1.1880686952977461E-02
+1.1848310962216332E-02
+1.1815962541278676E-02
+1.1783641673640948E-02
+1.1751348345703220E-02
+1.1719082557806080E-02
+1.1686844313774329E-02
+1.1654633620391656E-02
+1.1622450486272261E-02
+1.1590294910334737E-02
+1.1558166874690586E-02
+1.1526066362917517E-02
+1.1493993374199452E-02
+1.1461947912714130E-02
+1.1429929985193824E-02
+1.1397939600507891E-02
+1.1365976759200234E-02
+1.1334041442853156E-02
+1.1302133632971492E-02
+1.1270253328029852E-02
+1.1238400533552967E-02
+1.1206575256680727E-02
+1.1174777506298340E-02
+1.1143007284415776E-02
+1.1111264572240584E-02
+1.1079549349111520E-02
+1.1047861612818091E-02
+1.1016201371099016E-02
+1.0984568630870370E-02
+1.0952963397743222E-02
+1.0921385672901865E-02
+1.0889835440264313E-02
+1.0858312680616182E-02
+1.0826817390081209E-02
+1.0795349575543947E-02
+1.0763909243763125E-02
+1.0732496400855164E-02
+1.0701111049425730E-02
+1.0669753173660181E-02
+1.0638422752399370E-02
+1.0607119779858279E-02
+1.0575844264189437E-02
+1.0544596213287728E-02
+1.0513375633207435E-02
+1.0482182527252143E-02
+1.0451016880759155E-02
+1.0419878671574926E-02
+1.0388767890734304E-02
+1.0357684544728730E-02
+1.0326628640830256E-02
+1.0295600186003473E-02
+1.0264599185470206E-02
+1.0233625627607686E-02
+1.0202679491272302E-02
+1.0171760765713923E-02
+1.0140869456065600E-02
+1.0110005568507024E-02
+1.0079169108046786E-02
+1.0048360078473617E-02
+1.0017578470598644E-02
+9.9868242655941093E-03
+9.9560974519683678E-03
+9.9253980331163189E-03
+9.8947260142820369E-03
+9.8640814013573278E-03
+9.8334641998529485E-03
+9.8028744020671032E-03
+9.7723119875683089E-03
+9.7417769421438080E-03
+9.7112692689988022E-03
+9.6807889740975223E-03
+9.6503360632601721E-03
+9.6199105419177144E-03
+9.5895124041378860E-03
+9.5591416298522365E-03
+9.5287982032657616E-03
+9.4984821263147858E-03
+9.4681934047361280E-03
+9.4379320441950951E-03
+9.4076980501698378E-03
+9.3774914185998266E-03
+9.3473121300641140E-03
+9.3171601675707851E-03
+9.2870355317122271E-03
+9.2569382281231013E-03
+9.2268682622170823E-03
+9.1968256391845686E-03
+9.1668103565207496E-03
+9.1368223955682702E-03
+9.1068617383642560E-03
+9.0769283838763714E-03
+9.0470223375445184E-03
+9.0171436047296414E-03
+8.9872921906897236E-03
+8.9574680945417907E-03
+8.9276712984118628E-03
+8.8979017834024399E-03
+8.8681595466355984E-03
+8.8384445932911705E-03
+8.8087569285684592E-03
+8.7790965576115543E-03
+8.7494634808958499E-03
+8.7198576816805533E-03
+8.6902791404887287E-03
+8.6607278524943199E-03
+8.6312038224674939E-03
+8.6017070554402827E-03
+8.5722375566087000E-03
+8.5427953276955675E-03
+8.5133803531662004E-03
+8.4839926129289915E-03
+8.4546321002293076E-03
+8.4252988196081655E-03
+8.3959927759611596E-03
+8.3667139741792386E-03
+8.3374624167042669E-03
+8.3082380896351369E-03
+8.2790409728047566E-03
+8.2498710575503384E-03
+8.2207283477945658E-03
+8.1916128481763061E-03
+8.1625245635663108E-03
+8.1334634971664266E-03
+8.1044296364902527E-03
+8.0754229608448018E-03
+8.0464434597102719E-03
+8.0174911370280832E-03
+7.9885659976808628E-03
+7.9596680459594078E-03
+7.9307972849508458E-03
+7.9019537040418784E-03
+7.8731372831424389E-03
+7.8443480100207734E-03
+7.8155858871939796E-03
+7.7868509188478525E-03
+7.7581431096579410E-03
+7.7294624637842197E-03
+7.7008089723671598E-03
+7.6721826148364244E-03
+7.6435833769960028E-03
+7.6150112609582798E-03
+7.5864662711968532E-03
+7.5579484119300700E-03
+7.5294576869094701E-03
+7.5009940890066566E-03
+7.4725575984518483E-03
+7.4441481998313141E-03
+7.4157658938539444E-03
+7.3874106844607794E-03
+7.3590825759137814E-03
+7.3307815724845274E-03
+7.3025076688363090E-03
+7.2742608451949499E-03
+7.2460410845067514E-03
+7.2178483863640968E-03
+7.1896827547989484E-03
+7.1615441940034302E-03
+7.1334327082239858E-03
+7.1053482937215289E-03
+7.0772909311427332E-03
+7.0492606022450376E-03
+7.0212573054746954E-03
+6.9932810451764742E-03
+6.9653318252159120E-03
+6.9374096489787616E-03
+6.9095145139001658E-03
+6.8816464021777988E-03
+6.8538052954820209E-03
+6.8259911901347343E-03
+6.7982040893275423E-03
+6.7704439966968554E-03
+6.7427109163803482E-03
+6.7150048476483934E-03
+6.6873257730439483E-03
+6.6596736728810257E-03
+6.6320485419368641E-03
+6.6044503838229669E-03
+6.5768792022413017E-03
+6.5493350008362884E-03
+6.5218177796723311E-03
+6.4943275224682148E-03
+6.4668642091215423E-03
+6.4394278327466878E-03
+6.4120183969110624E-03
+6.3846359051927459E-03
+6.3572803605960486E-03
+6.3299517636155678E-03
+6.3026500997442015E-03
+6.2753753492325167E-03
+6.2481275032768568E-03
+6.2209065642537358E-03
+6.1937125352299425E-03
+6.1665454197846956E-03
+6.1394052197759211E-03
+6.1122919218668734E-03
+6.0852055053732023E-03
+6.0581459595425652E-03
+6.0311132867739313E-03
+6.0041074903202669E-03
+5.9771285732772425E-03
+5.9501765375585321E-03
+5.9232513715903297E-03
+5.8963530551202001E-03
+5.8694815758025872E-03
+5.8426369350419302E-03
+5.8158191356524605E-03
+5.7890281807730145E-03
+5.7622640729147424E-03
+5.7355268020902409E-03
+5.7088163478210691E-03
+5.6821326960062512E-03
+5.6554758475025552E-03
+5.6288458051898249E-03
+5.6022425719460932E-03
+5.5756661502462295E-03
+5.5491165317841009E-03
+5.5225936965525389E-03
+5.4960976291278983E-03
+5.4696283293314612E-03
+5.4431857997800353E-03
+5.4167700430913625E-03
+5.3903810616877630E-03
+5.3640188488986787E-03
+5.3376833853053546E-03
+5.3113746543749351E-03
+5.2850926546895681E-03
+5.2588373885626531E-03
+5.2326088584638735E-03
+5.2064070668922414E-03
+5.1802320087080975E-03
+5.1540836648629670E-03
+5.1279620176888077E-03
+5.1018670645971943E-03
+5.0757988079560001E-03
+5.0497572500875299E-03
+5.0237423932496736E-03
+4.9977542336150059E-03
+4.9717927528447415E-03
+4.9458579325004689E-03
+4.9199497685659095E-03
+4.8940682632959221E-03
+4.8682134188182645E-03
+4.8423852370823124E-03
+4.8165837154218842E-03
+4.7908088366100934E-03
+4.7650605818558697E-03
+4.7393389452539195E-03
+4.7136439282446877E-03
+4.6879755327940134E-03
+4.6623337615253942E-03
+4.6367186133724880E-03
+4.6111300714393030E-03
+4.5855681155570344E-03
+4.5600327383648791E-03
+4.5345239419606947E-03
+4.5090417284486739E-03
+4.4835860995152636E-03
+4.4581570542885822E-03
+4.4327545776410571E-03
+4.4073786499193579E-03
+4.3820292620233093E-03
+4.3567064149199423E-03
+4.3314101101624642E-03
+4.3061403497768880E-03
+4.2808971340081757E-03
+4.2556804487870990E-03
+4.2304902736669241E-03
+4.2053265978516316E-03
+4.1801894224576192E-03
+4.1550787492699061E-03
+4.1299945798584517E-03
+4.1049369145473042E-03
+4.0799057407932809E-03
+4.0549010383645057E-03
+4.0299227949323968E-03
+4.0049710109195764E-03
+3.9800456878488827E-03
+3.9551468270784765E-03
+3.9302744291694457E-03
+3.9054284830892278E-03
+3.8806089687302434E-03
+3.8558158722565056E-03
+3.8310491933526303E-03
+3.8063089333876029E-03
+3.7815950937505967E-03
+3.7569076753927733E-03
+3.7322466687497290E-03
+3.7076120535973638E-03
+3.6830038145263849E-03
+3.6584219505880386E-03
+3.6338664632454771E-03
+3.6093373536598065E-03
+3.5848346226188418E-03
+3.5603582620870426E-03
+3.5359082524808595E-03
+3.5114845773122501E-03
+3.4870872342092837E-03
+3.4627162240362225E-03
+3.4383715479354600E-03
+3.4140532071305378E-03
+3.3897611951914492E-03
+3.3654954926997439E-03
+3.3412560819477402E-03
+3.3170429597212561E-03
+3.2928561271983996E-03
+3.2686955851862886E-03
+3.2445613341523655E-03
+3.2204533687016862E-03
+3.1963716704655190E-03
+3.1723162213486951E-03
+3.1482870165253007E-03
+3.1242840565412463E-03
+3.1003073421570580E-03
+3.0763568743445630E-03
+3.0524326492222904E-03
+3.0285346486624014E-03
+3.0046628534050697E-03
+2.9808172573940477E-03
+2.9569978615692593E-03
+2.9332046665533082E-03
+2.9094376724371068E-03
+2.8856968758765246E-03
+2.8619822602481164E-03
+2.8382938065675089E-03
+2.8146315071261706E-03
+2.7909953619906273E-03
+2.7673853714388959E-03
+2.7438015358531545E-03
+2.7202438530450775E-03
+2.6967123072873344E-03
+2.6732068789705908E-03
+2.6497275586766836E-03
+2.6262743460681304E-03
+2.6028472412837280E-03
+2.5794462448384486E-03
+2.5560713554321707E-03
+2.5327225584978429E-03
+2.5093998340323166E-03
+2.4861031710264546E-03
+2.4628325688282405E-03
+2.4395880274515418E-03
+2.4163695472085123E-03
+2.3931771271941656E-03
+2.3700107540169340E-03
+2.3468704073668105E-03
+2.3237560748285585E-03
+2.3006677558263123E-03
+2.2776054505984325E-03
+2.2545691587718066E-03
+2.2315588790544675E-03
+2.2085745995774628E-03
+2.1856163007571315E-03
+2.1626839689817888E-03
+2.1397776025165421E-03
+2.1168972010049639E-03
+2.0940427642234987E-03
+2.0712142915246929E-03
+2.0484117724191044E-03
+2.0256351871007017E-03
+2.0028845204528149E-03
+1.9801597701843161E-03
+1.9574609360030661E-03
+1.9347880175885224E-03
+1.9121410143551794E-03
+1.8895199171499002E-03
+1.8669247063464920E-03
+1.8443553655918567E-03
+1.8218118917119970E-03
+1.7992942843050640E-03
+1.7768025429578812E-03
+1.7543366671352023E-03
+1.7318966489952789E-03
+1.7094824691390531E-03
+1.6870941101158779E-03
+1.6647315678752421E-03
+1.6423948421206173E-03
+1.6200839322013305E-03
+1.5977988371520587E-03
+1.5755395502595243E-03
+1.5533060529751700E-03
+1.5310983273621984E-03
+1.5089163680622100E-03
+1.4867601744293609E-03
+1.4646297456567211E-03
+1.4425250807594495E-03
+1.4204461741740505E-03
+1.3983930079234065E-03
+1.3763655633706087E-03
+1.3543638336934725E-03
+1.3323878179070593E-03
+1.3104375151553310E-03
+1.2885129246964304E-03
+1.2666140421669452E-03
+1.2447408500746385E-03
+1.2228933289423222E-03
+1.2010714706738913E-03
+1.1792752744923132E-03
+1.1575047395451742E-03
+1.1357598646487401E-03
+1.1140406459716880E-03
+1.0923470670047726E-03
+1.0706791080086480E-03
+1.0490367594598673E-03
+1.0274200203355536E-03
+1.0058288896599111E-03
+9.8426336599052367E-04
+9.6272344600297063E-04
+9.4120911447855764E-04
+9.1972035175085203E-04
+8.9825714679853358E-04
+8.7681949789135806E-04
+8.5540740372550212E-04
+8.3402086290729649E-04
+8.1265987275881278E-04
+7.9132441924128420E-04
+7.7001448249078037E-04
+7.4873005003752476E-04
+7.2747111973128819E-04
+7.0623769015067703E-04
+6.8502975975893326E-04
+6.6384732616867135E-04
+6.4269037659718032E-04
+6.2155889120296627E-04
+6.0045285617340628E-04
+5.7937226878795639E-04
+5.5831712747136421E-04
+5.3728743057819420E-04
+5.1628317593935898E-04
+4.9530435204154274E-04
+4.7435093911449771E-04
+4.5342292208016676E-04
+4.3252029758605474E-04
+4.1164306395118181E-04
+3.9079121938538831E-04
+3.6996476177658286E-04
+3.4916368087887915E-04
+3.2838795715981188E-04
+3.0763757443598802E-04
+2.8691252855611777E-04
+2.6621281769803932E-04
+2.4553843993301965E-04
+2.2488939314185643E-04
+2.0426566831710505E-04
+1.8366724628714285E-04
+1.6309410993558868E-04
+1.4254625413049929E-04
+1.2202367686252192E-04
+1.0152637608808670E-04
+8.1054349689498780E-05
+6.0607589837347853E-05
+4.0186077742309983E-05
+1.9789795470685863E-05
+-5.8126316754413286E-07
+-2.0927100279010266E-05
+-4.1247718034199901E-05
+-6.1543118678901074E-05
+-8.1813309000202064E-05
+-1.0205830722337805E-04
+-1.2227813188363937E-04
+-1.4247279038560838E-04
+-1.6264228502110037E-04
+-1.8278661808668632E-04
+-2.0290579191790608E-04
+-2.2299981235583861E-04
+-2.4306869696894348E-04
+-2.6311246479410666E-04
+-2.8313112449857914E-04
+-3.0312467852921452E-04
+-3.2309312930769524E-04
+-3.4303647934894640E-04
+-3.6295473376603748E-04
+-3.8284790927848857E-04
+-4.0271602523866306E-04
+-4.2255909163367068E-04
+-4.4237711117222332E-04
+-4.6217008641200567E-04
+-4.8193801999337231E-04
+-5.0168091643229258E-04
+-5.2139879148821217E-04
+-5.4109166475443157E-04
+-5.6075954755644309E-04
+-5.8040244292271418E-04
+-6.0002035354325559E-04
+-6.1961328217335302E-04
+-6.3918123287369315E-04
+-6.5872422034251731E-04
+-6.7824226431415933E-04
+-6.9773537742502949E-04
+-7.1720356308265507E-04
+-7.3664682410260439E-04
+-7.5606516337621056E-04
+-7.7545858466630010E-04
+-7.9482710155090181E-04
+-8.1417073380474908E-04
+-8.3348949531177031E-04
+-8.5278338991121353E-04
+-8.7205242051736930E-04
+-8.9129659020770007E-04
+-9.1051590263142770E-04
+-9.2971037017524879E-04
+-9.4888001242958409E-04
+-9.6802484441944545E-04
+-9.8714487069894536E-04
+-1.0062400944219501E-03
+-1.0253105186509692E-03
+-1.0443561467181541E-03
+-1.0633769898913189E-03
+-1.0823730679011482E-03
+-1.1013443969972885E-03
+-1.1202909821726795E-03
+-1.1392128264261791E-03
+-1.1581099330081669E-03
+-1.1769823054503272E-03
+-1.1958299539395205E-03
+-1.2146528978277127E-03
+-1.2334511542019628E-03
+-1.2522247288315178E-03
+-1.2709736247921396E-03
+-1.2896978456111070E-03
+-1.3083973951813089E-03
+-1.3270722826945710E-03
+-1.3457225268039084E-03
+-1.3643481450691193E-03
+-1.3829491443184366E-03
+-1.4015255279366096E-03
+-1.4200772996197069E-03
+-1.4386044633549575E-03
+-1.4571070273177490E-03
+-1.4755850094639283E-03
+-1.4940384277540956E-03
+-1.5124672904071859E-03
+-1.5308716014739172E-03
+-1.5492513647547238E-03
+-1.5676065837854042E-03
+-1.5859372655450232E-03
+-1.6042434277308486E-03
+-1.6225250891244122E-03
+-1.6407822589998423E-03
+-1.6590149413143512E-03
+-1.6772231399410909E-03
+-1.6954068587152935E-03
+-1.7135661040243542E-03
+-1.7317008928452188E-03
+-1.7498112442630961E-03
+-1.7678971686615956E-03
+-1.7859586701098533E-03
+-1.8039957525332125E-03
+-1.8220084198533537E-03
+-1.8399966778787132E-03
+-1.8579605429168890E-03
+-1.8759000345210720E-03
+-1.8938151643679499E-03
+-1.9117059367517086E-03
+-1.9295723556733686E-03
+-1.9474144251126579E-03
+-1.9652321503622230E-03
+-1.9830255466513074E-03
+-2.0007946335436210E-03
+-2.0185394239040288E-03
+-2.0362599224755971E-03
+-2.0539561335031799E-03
+-2.0716280611896734E-03
+-2.0892757106021247E-03
+-2.1068990959457884E-03
+-2.1244982367837899E-03
+-2.1420731471209495E-03
+-2.1596238321604849E-03
+-2.1771502962954635E-03
+-2.1946525437213228E-03
+-2.2121305791423930E-03
+-2.2295844157468035E-03
+-2.2470140732449928E-03
+-2.2644195667896184E-03
+-2.2818009019053638E-03
+-2.2991580829553496E-03
+-2.3164911143594238E-03
+-2.3338000008818172E-03
+-2.3510847546827488E-03
+-2.3683453952887353E-03
+-2.3855819388138503E-03
+-2.4027943913686868E-03
+-2.4199827574248791E-03
+-2.4371470416162462E-03
+-2.4542872488203500E-03
+-2.4714033901754805E-03
+-2.4884954848709497E-03
+-2.5055635497727392E-03
+-2.5226075915608559E-03
+-2.5396276146819954E-03
+-2.5566236240223152E-03
+-2.5735956248156768E-03
+-2.5905436273317576E-03
+-2.6074676502225369E-03
+-2.6243677108952457E-03
+-2.6412438170082581E-03
+-2.6580959733217531E-03
+-2.6749241848031805E-03
+-2.6917284566124783E-03
+-2.7085087980159702E-03
+-2.7252652272028847E-03
+-2.7419977621266230E-03
+-2.7587064116615981E-03
+-2.7753911810704099E-03
+-2.7920520753286827E-03
+-2.8086890991208995E-03
+-2.8253022606119019E-03
+-2.8418915780045284E-03
+-2.8584570702372674E-03
+-2.8749987469328716E-03
+-2.8915166128682668E-03
+-2.9080106730558020E-03
+-2.9244809328875391E-03
+-2.9409274002274491E-03
+-2.9573500923096943E-03
+-2.9737490279683676E-03
+-2.9901242180220360E-03
+-3.0064756678599759E-03
+-3.0228033827428931E-03
+-3.0391073678859314E-03
+-3.0553876303285711E-03
+-3.0716441865100961E-03
+-3.0878770554992083E-03
+-3.1040862493797177E-03
+-3.1202717741193246E-03
+-3.1364336352280473E-03
+-3.1525718376317763E-03
+-3.1686863875762484E-03
+-3.1847773010511907E-03
+-3.2008445979442124E-03
+-3.2168882913027586E-03
+-3.2329083864368652E-03
+-3.2489048884693089E-03
+-3.2648778032223517E-03
+-3.2808271374969657E-03
+-3.2967529061728659E-03
+-3.3126551285149299E-03
+-3.3285338184570368E-03
+-3.3443889820881593E-03
+-3.3602206249454783E-03
+-3.3760287528480774E-03
+-3.3918133722302068E-03
+-3.4075744969029450E-03
+-3.4233121459605023E-03
+-3.4390263343342937E-03
+-3.4547170688406762E-03
+-3.4703843553770398E-03
+-3.4860281997646479E-03
+-3.5016486081294088E-03
+-3.5172455933154389E-03
+-3.5328191744148610E-03
+-3.5483693672636778E-03
+-3.5638961790020306E-03
+-3.5793996154775830E-03
+-3.5948796828173526E-03
+-3.6103363874452066E-03
+-3.6257697413675325E-03
+-3.6411797632951220E-03
+-3.6565664697037793E-03
+-3.6719298683737891E-03
+-3.6872699653144173E-03
+-3.7025867667653499E-03
+-3.7178802791803058E-03
+-3.7331505136950112E-03
+-3.7483974887170049E-03
+-3.7636212213674413E-03
+-3.7788217203045759E-03
+-3.7939989918430160E-03
+-3.8091530422172102E-03
+-3.8242838776283024E-03
+-3.8393915082598519E-03
+-3.8544759523588277E-03
+-3.8695372277426825E-03
+-3.8845753438884168E-03
+-3.8995903072001270E-03
+-3.9145821240053743E-03
+-3.9295508005664104E-03
+-3.9444963463471164E-03
+-3.9594187793480931E-03
+-3.9743181179633814E-03
+-3.9891943723884115E-03
+-4.0040475488483619E-03
+-4.0188776537077543E-03
+-4.0336846935430269E-03
+-4.0484686773315411E-03
+-4.0632296225156647E-03
+-4.0779675477515855E-03
+-4.0926824642178250E-03
+-4.1073743783684950E-03
+-4.1220432966396709E-03
+-4.1366892255609196E-03
+-4.1513121734787911E-03
+-4.1659121573288382E-03
+-4.1804891961747343E-03
+-4.1950433021976149E-03
+-4.2095744819516112E-03
+-4.2240827419833720E-03
+-4.2385680891805846E-03
+-4.2530305316855598E-03
+-4.2674700853859793E-03
+-4.2818867690013265E-03
+-4.2962805956617131E-03
+-4.3106515725949944E-03
+-4.3249997066995387E-03
+-4.3393250047375443E-03
+-4.3536274743240259E-03
+-4.3679071307564377E-03
+-4.3821639931925262E-03
+-4.3963980757733860E-03
+-4.4106093857652559E-03
+-4.4247979299388640E-03
+-4.4389637150530660E-03
+-4.4531067484512923E-03
+-4.4672270447173928E-03
+-4.4813246232614998E-03
+-4.4953994992955769E-03
+-4.5094516804569610E-03
+-4.5234811735946822E-03
+-4.5374879854811661E-03
+-4.5514721232281508E-03
+-4.5654336005399631E-03
+-4.5793724368437183E-03
+-4.5932886482089787E-03
+-4.6071822425022835E-03
+-4.6210532265001433E-03
+-4.6349016074296468E-03
+-4.6487273928916498E-03
+-4.6625305957398401E-03
+-4.6763112347201442E-03
+-4.6900693263248871E-03
+-4.7038048791954168E-03
+-4.7175179004867287E-03
+-4.7312083974481150E-03
+-4.7448763774724980E-03
+-4.7585218525705852E-03
+-4.7721448414470647E-03
+-4.7857453613718605E-03
+-4.7993234216015266E-03
+-4.8128790293553905E-03
+-4.8264121919986171E-03
+-4.8399229170353365E-03
+-4.8534112157135349E-03
+-4.8668771063312029E-03
+-4.8803206065658328E-03
+-4.8937417264067638E-03
+-4.9071404732254223E-03
+-4.9205168545068245E-03
+-4.9338708778515570E-03
+-4.9472025538305408E-03
+-4.9605119003488206E-03
+-4.9737989354630124E-03
+-4.9870636700700983E-03
+-5.0003061118372334E-03
+-5.0135262683681930E-03
+-5.0267241472104025E-03
+-5.0398997582362399E-03
+-5.0530531189594274E-03
+-5.0661842478037225E-03
+-5.0792931564400522E-03
+-5.0923798525606490E-03
+-5.1054443438176252E-03
+-5.1184866378802931E-03
+-5.1315067441628911E-03
+-5.1445046797369597E-03
+-5.1574804633586890E-03
+-5.1704341076202935E-03
+-5.1833656204067127E-03
+-5.1962750094532231E-03
+-5.2091622824332797E-03
+-5.2220274482856479E-03
+-5.2348705234627913E-03
+-5.2476915269196282E-03
+-5.2604904721223087E-03
+-5.2732673671247047E-03
+-5.2860222197926524E-03
+-5.2987550381004608E-03
+-5.3114658308822541E-03
+-5.3241546137407546E-03
+-5.3368214054170561E-03
+-5.3494662201206116E-03
+-5.3620890662739555E-03
+-5.3746899519176820E-03
+-5.3872688850650262E-03
+-5.3998258743007147E-03
+-5.4123609346847625E-03
+-5.4248740852879916E-03
+-5.4373653412307862E-03
+-5.4498347110264909E-03
+-5.4622822025854455E-03
+-5.4747078238788580E-03
+-5.4871115832704027E-03
+-5.4994934952148234E-03
+-5.5118535790988025E-03
+-5.5241918509613824E-03
+-5.5365083193401072E-03
+-5.5488029919096987E-03
+-5.5610758770379444E-03
+-5.5733269835529899E-03
+-5.5855563250238119E-03
+-5.5977639199864737E-03
+-5.6099497848164787E-03
+-5.6221139290973847E-03
+-5.6342563612270776E-03
+-5.6463770896887922E-03
+-5.6584761231044476E-03
+-5.6705534741435292E-03
+-5.6826091609526556E-03
+-5.6946432003398230E-03
+-5.7066556025791382E-03
+-5.7186463763867898E-03
+-5.7306155303153208E-03
+-5.7425630728480748E-03
+-5.7544890159414910E-03
+-5.7663933776521889E-03
+-5.7782761753805536E-03
+-5.7901374200668519E-03
+-5.8019771205895434E-03
+-5.8137952854789903E-03
+-5.8255919229774460E-03
+-5.8373670443132219E-03
+-5.8491206675959735E-03
+-5.8608528109234947E-03
+-5.8725634857212704E-03
+-5.8842527006186841E-03
+-5.8959204642318819E-03
+-5.9075667851742229E-03
+-5.9191916742709428E-03
+-5.9307951490707627E-03
+-5.9423772277651596E-03
+-5.9539379226102827E-03
+-5.9654772425998008E-03
+-5.9769951965246790E-03
+-5.9884917929322150E-03
+-5.9999670420603111E-03
+-6.0114209610906393E-03
+-6.0228535685444146E-03
+-6.0342648772842324E-03
+-6.0456548961391361E-03
+-6.0570236339262543E-03
+-6.0683710996028966E-03
+-6.0796973033355566E-03
+-6.0910022617971949E-03
+-6.1022859936127336E-03
+-6.1135485123521120E-03
+-6.1247898269300334E-03
+-6.1360099462002479E-03
+-6.1472088792930684E-03
+-6.1583866361912560E-03
+-6.1695432328672381E-03
+-6.1806786878471414E-03
+-6.1917930154971349E-03
+-6.2028862252293737E-03
+-6.2139583261201546E-03
+-6.2250093270897694E-03
+-6.2360392376171426E-03
+-6.2470480732191016E-03
+-6.2580358528830761E-03
+-6.2690025917988348E-03
+-6.2799482992566330E-03
+-6.2908729841507968E-03
+-6.3017766558339386E-03
+-6.3126593241195402E-03
+-6.3235210037440193E-03
+-6.3343617131595056E-03
+-6.3451814680108342E-03
+-6.3559802781443112E-03
+-6.3667581527630992E-03
+-6.3775151013446283E-03
+-6.3882511336582383E-03
+-6.3989662637368759E-03
+-6.4096605097858275E-03
+-6.4203338880027784E-03
+-6.4309864088458561E-03
+-6.4416180818247168E-03
+-6.4522289163200051E-03
+-6.4628189217590358E-03
+-6.4733881115349211E-03
+-6.4839365040527492E-03
+-6.4944641162892240E-03
+-6.5049709590992016E-03
+-6.5154570419797804E-03
+-6.5259223742115411E-03
+-6.5363669649908711E-03
+-6.5467908270697879E-03
+-6.5571939790219549E-03
+-6.5675764385622407E-03
+-6.5779382168573942E-03
+-6.5882793231657535E-03
+-6.5985997668777724E-03
+-6.6088995575067071E-03
+-6.6191787073455804E-03
+-6.6294372346168747E-03
+-6.6396751572987481E-03
+-6.6498924870135841E-03
+-6.6600892329303106E-03
+-6.6702654046987926E-03
+-6.6804210124782777E-03
+-6.6905560683377585E-03
+-6.7006705896590609E-03
+-6.7107645941303596E-03
+-6.7208380940672443E-03
+-6.7308910990450431E-03
+-6.7409236189149378E-03
+-6.7509356639290086E-03
+-6.7609272457525753E-03
+-6.7708983812542903E-03
+-6.7808490881488817E-03
+-6.7907793795949052E-03
+-6.8006892657185855E-03
+-6.8105787565268692E-03
+-6.8204478619141593E-03
+-6.8302965928781637E-03
+-6.8401249660291581E-03
+-6.8499329994978339E-03
+-6.8597207071029757E-03
+-6.8694880989541704E-03
+-6.8792351850602545E-03
+-6.8889619754760774E-03
+-6.8986684810393179E-03
+-6.9083547178680673E-03
+-6.9180207041473233E-03
+-6.9276664543851847E-03
+-6.9372919790033852E-03
+-6.9468972881236201E-03
+-6.9564823916034467E-03
+-6.9660472998300344E-03
+-6.9755920286068600E-03
+-6.9851165966211175E-03
+-6.9946210190479407E-03
+-7.0041053059878358E-03
+-7.0135694672909229E-03
+-7.0230135133761903E-03
+-7.0324374551267018E-03
+-7.0418413076755414E-03
+-7.0512250891427430E-03
+-7.0605888150804281E-03
+-7.0699324961420156E-03
+-7.0792561424970236E-03
+-7.0885597645878682E-03
+-7.0978433731391033E-03
+-7.1071069826265949E-03
+-7.1163506109537854E-03
+-7.1255742741965066E-03
+-7.1347779836597935E-03
+-7.1439617499097531E-03
+-7.1531255833325383E-03
+-7.1622694943428728E-03
+-7.1713934967958396E-03
+-7.1804976086072905E-03
+-7.1895818463774269E-03
+-7.1986462216877701E-03
+-7.2076907450963476E-03
+-7.2167154270674494E-03
+-7.2257202780623090E-03
+-7.2347053115081406E-03
+-7.2436705453601058E-03
+-7.2526159967316751E-03
+-7.2615416774360845E-03
+-7.2704475978614133E-03
+-7.2793337685439531E-03
+-7.2882002001495305E-03
+-7.2970469056641198E-03
+-7.3058739026781510E-03
+-7.3146812084930787E-03
+-7.3234688355611468E-03
+-7.3322367945818012E-03
+-7.3409850962021916E-03
+-7.3497137510246417E-03
+-7.3584227715214083E-03
+-7.3671121750561747E-03
+-7.3757819792103817E-03
+-7.3844321970392927E-03
+-7.3930628394385358E-03
+-7.4016739170832454E-03
+-7.4102654403882728E-03
+-7.4188374212866360E-03
+-7.4273898770458313E-03
+-7.4359228256825304E-03
+-7.4444362806980963E-03
+-7.4529302527917198E-03
+-7.4614047526429129E-03
+-7.4698597909674527E-03
+-7.4782953795804897E-03
+-7.4867115353990724E-03
+-7.4951082765666579E-03
+-7.5034856171219307E-03
+-7.5118435678059288E-03
+-7.5201821393418387E-03
+-7.5285013426127220E-03
+-7.5368011892792894E-03
+-7.5450816957487689E-03
+-7.5533428801215037E-03
+-7.5615847570161812E-03
+-7.5698073374392948E-03
+-7.5780106322359464E-03
+-7.5861946522678119E-03
+-7.5943594089343666E-03
+-7.6025049182181009E-03
+-7.6106311983565071E-03
+-7.6187382645201019E-03
+-7.6268261277528454E-03
+-7.6348947988959465E-03
+-7.6429442891090046E-03
+-7.6509746099443074E-03
+-7.6589857767849056E-03
+-7.6669778075195132E-03
+-7.6749507177546507E-03
+-7.6829045190605601E-03
+-7.6908392225801510E-03
+-7.6987548393331606E-03
+-7.7066513805128314E-03
+-7.7145288610479803E-03
+-7.7223872990530122E-03
+-7.7302267107386535E-03
+-7.7380471077644437E-03
+-7.7458485011951761E-03
+-7.7536309023171039E-03
+-7.7613943226139421E-03
+-7.7691387764937288E-03
+-7.7768642815878621E-03
+-7.7845708542476537E-03
+-7.7922585064859199E-03
+-7.7999272495373351E-03
+-7.8075770949337072E-03
+-7.8152080544142150E-03
+-7.8228201419480864E-03
+-7.8304133746784597E-03
+-7.8379877690701108E-03
+-7.8455433378962578E-03
+-7.8530800929694933E-03
+-7.8605980456303778E-03
+-7.8680972069101705E-03
+-7.8755775902091228E-03
+-7.8830392133232095E-03
+-7.8904820936386445E-03
+-7.8979062437798345E-03
+-7.9053116747948259E-03
+-7.9126983980637444E-03
+-7.9200664252750148E-03
+-7.9274157697372533E-03
+-7.9347464486625805E-03
+-7.9420584793032396E-03
+-7.9493518749759011E-03
+-7.9566266472547512E-03
+-7.9638828076762907E-03
+-7.9711203677423539E-03
+-7.9783393402271738E-03
+-7.9855397420053580E-03
+-7.9927215904334950E-03
+-7.9998848994335368E-03
+-8.0070296809355134E-03
+-8.0141559465953475E-03
+-8.0212637076898172E-03
+-8.0283529765145505E-03
+-8.0354237698871834E-03
+-8.0424761055947497E-03
+-8.0495099978661264E-03
+-8.0565254582611844E-03
+-8.0635224983641868E-03
+-8.0705011299354468E-03
+-8.0774613654330391E-03
+-8.0844032212310912E-03
+-8.0913267149729257E-03
+-8.0982318613648935E-03
+-8.1051186722676128E-03
+-8.1119871593901619E-03
+-8.1188373343510437E-03
+-8.1256692092535991E-03
+-8.1324828001287722E-03
+-8.1392781247908354E-03
+-8.1460551984205553E-03
+-8.1528140328956701E-03
+-8.1595546399294925E-03
+-8.1662770313855760E-03
+-8.1729812194752029E-03
+-8.1796672198623330E-03
+-8.1863350503070236E-03
+-8.1929847263054623E-03
+-8.1996162596427186E-03
+-8.2062296619202606E-03
+-8.2128249454529092E-03
+-8.2194021229123840E-03
+-8.2259612093584754E-03
+-8.2325022217503100E-03
+-8.2390251757511780E-03
+-8.2455300841791177E-03
+-8.2520169594089855E-03
+-8.2584858133022323E-03
+-8.2649366576411174E-03
+-8.2713695070745271E-03
+-8.2777843792034827E-03
+-8.2841812904253156E-03
+-8.2905602534136466E-03
+-8.2969212801872819E-03
+-8.3032643826566888E-03
+-8.3095895727385623E-03
+-8.3158968648458960E-03
+-8.3221862767114095E-03
+-8.3284578251591503E-03
+-8.3347115227929442E-03
+-8.3409473812787027E-03
+-8.3471654127570544E-03
+-8.3533656297017818E-03
+-8.3595480463013096E-03
+-8.3657126796904194E-03
+-8.3718595465780733E-03
+-8.3779886601084604E-03
+-8.3841000323303747E-03
+-8.3901936754583809E-03
+-8.3962696018547948E-03
+-8.4023278253317121E-03
+-8.4083683629588724E-03
+-8.4143912317264438E-03
+-8.4203964451003300E-03
+-8.4263840151053634E-03
+-8.4323539539789914E-03
+-8.4383062741974317E-03
+-8.4442409892757850E-03
+-8.4501581157891484E-03
+-8.4560576705886795E-03
+-8.4619396678406837E-03
+-8.4678041202581756E-03
+-8.4736510402686378E-03
+-8.4794804399151488E-03
+-8.4852923321383188E-03
+-8.4910867335680137E-03
+-8.4968636615249671E-03
+-8.5026231303703993E-03
+-8.5083651523938861E-03
+-8.5140897399744644E-03
+-8.5197969057341644E-03
+-8.5254866628495969E-03
+-8.5311590273197870E-03
+-8.5368140159777558E-03
+-8.5424516436409699E-03
+-8.5480719233020138E-03
+-8.5536748676410361E-03
+-8.5592604887435898E-03
+-8.5648287990982268E-03
+-8.5703798147430833E-03
+-8.5759135532042906E-03
+-8.5814300297619717E-03
+-8.5869292570680076E-03
+-8.5924112475689301E-03
+-8.5978760135297094E-03
+-8.6033235675026052E-03
+-8.6087539252723971E-03
+-8.6141671044466482E-03
+-8.6195631206193203E-03
+-8.6249419863138332E-03
+-8.6303037138756554E-03
+-8.6356483159773512E-03
+-8.6409758055500958E-03
+-8.6462861979690556E-03
+-8.6515795104201380E-03
+-8.6568557585931811E-03
+-8.6621149551561680E-03
+-8.6673571125147671E-03
+-8.6725822435877124E-03
+-8.6777903615614625E-03
+-8.6829814814474004E-03
+-8.6881556200113716E-03
+-8.6933127931086603E-03
+-8.6984530140617224E-03
+-8.7035762957610781E-03
+-8.7086826508708439E-03
+-8.7137720920044560E-03
+-8.7188446337357738E-03
+-8.7239002930736068E-03
+-8.7289390863485774E-03
+-8.7339610270441379E-03
+-8.7389661280150664E-03
+-8.7439544019129595E-03
+-8.7489258612916121E-03
+-8.7538805204785686E-03
+-8.7588183966551426E-03
+-8.7637395065441291E-03
+-8.7686438635785260E-03
+-8.7735314802642270E-03
+-8.7784023693699750E-03
+-8.7832565438806867E-03
+-8.7880940179807573E-03
+-8.7929148083566479E-03
+-8.7977189316031795E-03
+-8.8025064018019614E-03
+-8.8072772320602916E-03
+-8.8120314351232288E-03
+-8.8167690233684134E-03
+-8.8214900103960360E-03
+-8.8261944132302407E-03
+-8.8308822491059268E-03
+-8.8355535320872435E-03
+-8.8402082746533509E-03
+-8.8448464895480514E-03
+-8.8494681898808065E-03
+-8.8540733895004341E-03
+-8.8586621048860736E-03
+-8.8632343529092654E-03
+-8.8677901479222478E-03
+-8.8723295026334782E-03
+-8.8768524299552912E-03
+-8.8813589431980082E-03
+-8.8858490561421789E-03
+-8.8903227846958317E-03
+-8.8947801453283792E-03
+-8.8992211528887942E-03
+-8.9036458208553697E-03
+-8.9080541624698729E-03
+-8.9124461905407334E-03
+-8.9168219182214504E-03
+-8.9211813613556974E-03
+-8.9255245368227917E-03
+-8.9298514597922971E-03
+-8.9341621435666176E-03
+-8.9384566012915296E-03
+-8.9427348459283889E-03
+-8.9469968906756292E-03
+-8.9512427512094487E-03
+-8.9554724445000591E-03
+-8.9596859859452493E-03
+-8.9638833887117873E-03
+-8.9680646658563592E-03
+-8.9722298306637392E-03
+-8.9763788966151312E-03
+-8.9805118790017863E-03
+-8.9846287943640673E-03
+-8.9887296581663088E-03
+-8.9928144838594057E-03
+-8.9968832846980869E-03
+-9.0009360740352304E-03
+-9.0049728653438538E-03
+-9.0089936737759412E-03
+-9.0129985159902361E-03
+-9.0169874076791636E-03
+-9.0209603620915926E-03
+-9.0249173922003819E-03
+-9.0288585115689320E-03
+-9.0327837340549340E-03
+-9.0366930746224421E-03
+-9.0405865495172648E-03
+-9.0444641744485983E-03
+-9.0483259631937013E-03
+-9.0521719291361599E-03
+-9.0560020855494916E-03
+-9.0598164456704641E-03
+-9.0636150241716756E-03
+-9.0673978378795744E-03
+-9.0711649031508575E-03
+-9.0749162335951334E-03
+-9.0786518421273055E-03
+-9.0823717421504389E-03
+-9.0860759474359516E-03
+-9.0897644725468282E-03
+-9.0934373335734182E-03
+-9.0970945464893434E-03
+-9.1007361255958982E-03
+-9.1043620845884764E-03
+-9.1079724368678932E-03
+-9.1115671955558138E-03
+-9.1151463747019146E-03
+-9.1187099907636023E-03
+-9.1222580602895505E-03
+-9.1257905975874291E-03
+-9.1293076159216033E-03
+-9.1328091286735184E-03
+-9.1362951493764860E-03
+-9.1397656921604099E-03
+-9.1432207731560085E-03
+-9.1466604087431236E-03
+-9.1500846133982083E-03
+-9.1534934004397963E-03
+-9.1568867833304434E-03
+-9.1602647757891339E-03
+-9.1636273919252498E-03
+-9.1669746475243740E-03
+-9.1703065587594220E-03
+-9.1736231403979334E-03
+-9.1769244060981303E-03
+-9.1802103695167968E-03
+-9.1834810443706047E-03
+-9.1867364446346859E-03
+-9.1899765858250125E-03
+-9.1932014839929584E-03
+-9.1964111540269143E-03
+-9.1996056096298583E-03
+-9.2027848645095719E-03
+-9.2059489325332037E-03
+-9.2090978277460222E-03
+-9.2122315654588303E-03
+-9.2153501615928474E-03
+-9.2184536312346216E-03
+-9.2215419883677884E-03
+-9.2246152468376443E-03
+-9.2276734202578238E-03
+-9.2307165223182788E-03
+-9.2337445682262320E-03
+-9.2367575741645735E-03
+-9.2397555555345633E-03
+-9.2427385263776675E-03
+-9.2457065005327986E-03
+-9.2486594914956196E-03
+-9.2515975127519870E-03
+-9.2545205794186073E-03
+-9.2574287079785315E-03
+-9.2603219141047747E-03
+-9.2632002115724983E-03
+-9.2660636139297158E-03
+-9.2689121349159159E-03
+-9.2717457883895460E-03
+-9.2745645893096886E-03
+-9.2773685538273878E-03
+-9.2801576975991441E-03
+-9.2829320346511316E-03
+-9.2856915787191772E-03
+-9.2884363436110898E-03
+-9.2911663431912896E-03
+-9.2938815921686322E-03
+-9.2965821064330580E-03
+-9.2992679016259388E-03
+-9.3019389920662443E-03
+-9.3045953917292555E-03
+-9.3072371143464085E-03
+-9.3098641734904713E-03
+-9.3124765837043991E-03
+-9.3150743612997570E-03
+-9.3176575223847345E-03
+-9.3202260810101717E-03
+-9.3227800505750365E-03
+-9.3253194449182258E-03
+-9.3278442782738346E-03
+-9.3303545653113003E-03
+-9.3328503217032493E-03
+-9.3353315630947207E-03
+-9.3377983038928740E-03
+-9.3402505579685720E-03
+-9.3426883392296635E-03
+-9.3451116616293309E-03
+-9.3475205395780955E-03
+-9.3499149889212634E-03
+-9.3522950256361113E-03
+-9.3546606642214928E-03
+-9.3570119183396666E-03
+-9.3593488018364149E-03
+-9.3616713288454528E-03
+-9.3639795137563583E-03
+-9.3662733719391371E-03
+-9.3685529189727109E-03
+-9.3708181697401902E-03
+-9.3730691386100708E-03
+-9.3753058397379775E-03
+-9.3775282868899940E-03
+-9.3797364940327154E-03
+-9.3819304765218031E-03
+-9.3841102501633147E-03
+-9.3862758299583793E-03
+-9.3884272301414488E-03
+-9.3905644648031791E-03
+-9.3926875477454777E-03
+-9.3947964929031319E-03
+-9.3968913155821395E-03
+-9.3989720317012512E-03
+-9.4010386563656463E-03
+-9.4030912036777593E-03
+-9.4051296876595126E-03
+-9.4071541222682156E-03
+-9.4091645215547415E-03
+-9.4111609007163730E-03
+-9.4131432756334819E-03
+-9.4151116614509967E-03
+-9.4170660721304578E-03
+-9.4190065216022863E-03
+-9.4209330241325981E-03
+-9.4228455941189164E-03
+-9.4247442465190349E-03
+-9.4266289967283624E-03
+-9.4284998598298496E-03
+-9.4303568502351505E-03
+-9.4321999822333108E-03
+-9.4340292698734847E-03
+-9.4358447271502381E-03
+-9.4376463689002828E-03
+-9.4394342108125775E-03
+-9.4412082682475973E-03
+-9.4429685555664587E-03
+-9.4447150869337009E-03
+-9.4464478762827184E-03
+-9.4481669374557892E-03
+-9.4498722852202569E-03
+-9.4515639355530010E-03
+-9.4532419040884753E-03
+-9.4549062049205726E-03
+-9.4565568518286385E-03
+-9.4581938590024717E-03
+-9.4598172409011659E-03
+-9.4614270123109089E-03
+-9.4630231885641375E-03
+-9.4646057848938245E-03
+-9.4661748157914370E-03
+-9.4677302955160480E-03
+-9.4692722382067225E-03
+-9.4708006579046836E-03
+-9.4723155691318495E-03
+-9.4738169874802828E-03
+-9.4753049285182713E-03
+-9.4767794067164828E-03
+-9.4782404361071181E-03
+-9.4796880308355112E-03
+-9.4811222051704482E-03
+-9.4825429736744918E-03
+-9.4839503517509700E-03
+-9.4853443548431754E-03
+-9.4867249973785428E-03
+-9.4880922932534025E-03
+-9.4894462566642579E-03
+-9.4907869022319864E-03
+-9.4921142446984276E-03
+-9.4934282991550271E-03
+-9.4947290807444133E-03
+-9.4960166041761062E-03
+-9.4972908838599473E-03
+-9.4985519340441450E-03
+-9.4997997686956711E-03
+-9.5010344019846437E-03
+-9.5022558492987262E-03
+-9.5034641263711545E-03
+-9.5046592479714892E-03
+-9.5058412280130556E-03
+-9.5070100805717660E-03
+-9.5081658201787034E-03
+-9.5093084614768578E-03
+-9.5104380194356210E-03
+-9.5115545091545642E-03
+-9.5126579454153440E-03
+-9.5137483426345135E-03
+-9.5148257151680144E-03
+-9.5158900772447097E-03
+-9.5169414431383447E-03
+-9.5179798278032888E-03
+-9.5190052465698293E-03
+-9.5200177143175656E-03
+-9.5210172452519157E-03
+-9.5220038535923559E-03
+-9.5229775538457091E-03
+-9.5239383606130421E-03
+-9.5248862887595057E-03
+-9.5258213533416704E-03
+-9.5267435691720262E-03
+-9.5276529505841732E-03
+-9.5285495118747586E-03
+-9.5294332674391250E-03
+-9.5303042317245890E-03
+-9.5311624195430489E-03
+-9.5320078460507125E-03
+-9.5328405261947916E-03
+-9.5336604743592665E-03
+-9.5344677048434748E-03
+-9.5352622319704750E-03
+-9.5360440700847700E-03
+-9.5368132338873868E-03
+-9.5375697385142247E-03
+-9.5383135989506856E-03
+-9.5390448295873675E-03
+-9.5397634447053348E-03
+-9.5404694587484882E-03
+-9.5411628862608067E-03
+-9.5418437419134087E-03
+-9.5425120405760056E-03
+-9.5431677970855104E-03
+-9.5438110260524182E-03
+-9.5444417420122735E-03
+-9.5450599593286112E-03
+-9.5456656922324034E-03
+-9.5462589551988733E-03
+-9.5468397632130948E-03
+-9.5474081312662430E-03
+-9.5479640740063487E-03
+-9.5485076059474878E-03
+-9.5490387414763379E-03
+-9.5495574948518541E-03
+-9.5500638805170786E-03
+-9.5505579134291564E-03
+-9.5510396085799771E-03
+-9.5515089805361612E-03
+-9.5519660436566654E-03
+-9.5524108123741045E-03
+-9.5528433012186612E-03
+-9.5532635247390744E-03
+-9.5536714975275449E-03
+-9.5540672341948452E-03
+-9.5544507494529952E-03
+-9.5548220580766868E-03
+-9.5551811746641402E-03
+-9.5555281135148180E-03
+-9.5558628889810537E-03
+-9.5561855158095271E-03
+-9.5564960088481005E-03
+-9.5567943826442257E-03
+-9.5570806514963941E-03
+-9.5573548298054384E-03
+-9.5576169322138197E-03
+-9.5578669734005736E-03
+-9.5581049680737041E-03
+-9.5583309309457496E-03
+-9.5585448765446532E-03
+-9.5587468192007054E-03
+-9.5589367733372541E-03
+-9.5591147536759988E-03
+-9.5592807749642020E-03
+-9.5594348516962920E-03
+-9.5595769982358084E-03
+-9.5597072290415034E-03
+-9.5598255587054284E-03
+-9.5599320018183477E-03
+-9.5600265729281660E-03
+-9.5601092865774968E-03
+-9.5601801573732530E-03
+-9.5602391999655301E-03
+-9.5602864289318600E-03
+-9.5603218587180031E-03
+-9.5603455037704625E-03
+-9.5603573786109657E-03
+-9.5603574977818039E-03
+-9.5603458757547582E-03
+-9.5603225269396616E-03
+-9.5602874658509852E-03
+-9.5602407072541834E-03
+-9.5601822659046893E-03
+-9.5601121562342625E-03
+-9.5600303925416248E-03
+-9.5599369892947345E-03
+-9.5598319611550076E-03
+-9.5597153227164298E-03
+-9.5595870883302663E-03
+-9.5594472723270103E-03
+-9.5592958892922603E-03
+-9.5591329539523942E-03
+-9.5589584809070757E-03
+-9.5587724845669891E-03
+-9.5585749793243406E-03
+-9.5583659795575194E-03
+-9.5581454996581314E-03
+-9.5579135542498226E-03
+-9.5576701581234456E-03
+-9.5574153258619898E-03
+-9.5571490716430257E-03
+-9.5568714096728874E-03
+-9.5565823545745304E-03
+-9.5562819211083595E-03
+-9.5559701238859991E-03
+-9.5556469773788420E-03
+-9.5553124959910744E-03
+-9.5549666939715623E-03
+-9.5546095855749049E-03
+-9.5542411852814878E-03
+-9.5538615076770205E-03
+-9.5534705674080404E-03
+-9.5530683791941844E-03
+-9.5526549575957794E-03
+-9.5522303166263381E-03
+-9.5517944702487052E-03
+-9.5513474330927127E-03
+-9.5508892201827556E-03
+-9.5504198462514154E-03
+-9.5499393255648532E-03
+-9.5494476723378355E-03
+-9.5489449007377398E-03
+-9.5484310249426465E-03
+-9.5479060594929402E-03
+-9.5473700192091806E-03
+-9.5468229187925524E-03
+-9.5462647726851143E-03
+-9.5456955952682165E-03
+-9.5451154007486477E-03
+-9.5445242032768541E-03
+-9.5439220172014640E-03
+-9.5433088570695841E-03
+-9.5426847374664361E-03
+-9.5420496730565987E-03
+-9.5414036784565847E-03
+-9.5407467677805190E-03
+-9.5400789549065796E-03
+-9.5394002540999390E-03
+-9.5387106801276093E-03
+-9.5380102477334566E-03
+-9.5372989714591766E-03
+-9.5365768657742853E-03
+-9.5358439448402828E-03
+-9.5351002226244670E-03
+-9.5343457132678108E-03
+-9.5335804312071445E-03
+-9.5328043909679895E-03
+-9.5320176073666052E-03
+-9.5312200952668204E-03
+-9.5304118688720636E-03
+-9.5295929418421285E-03
+-9.5287633281392510E-03
+-9.5279230424221081E-03
+-9.5270720994264663E-03
+-9.5262105137917438E-03
+-9.5253383001032577E-03
+-9.5244554725403847E-03
+-9.5235620448505254E-03
+-9.5226580309546709E-03
+-9.5217434453351117E-03
+-9.5208183025897331E-03
+-9.5198826174492292E-03
+-9.5189364047030302E-03
+-9.5179796786656595E-03
+-9.5170124529979552E-03
+-9.5160347415019376E-03
+-9.5150465587061084E-03
+-9.5140479193045191E-03
+-9.5130388378752827E-03
+-9.5120193289153186E-03
+-9.5109894067072018E-03
+-9.5099490851537939E-03
+-9.5088983781780895E-03
+-9.5078373000097097E-03
+-9.5067658649929179E-03
+-9.5056840877665236E-03
+-9.5045919832267463E-03
+-9.5034895659159551E-03
+-9.5023768495294640E-03
+-9.5012538477257016E-03
+-9.5001205747481752E-03
+-9.4989770450913513E-03
+-9.4978232732974167E-03
+-9.4966592739615160E-03
+-9.4954850615114328E-03
+-9.4943006498484587E-03
+-9.4931060527990285E-03
+-9.4919012844455388E-03
+-9.4906863590193662E-03
+-9.4894612910706704E-03
+-9.4882260956140694E-03
+-9.4869807874062451E-03
+-9.4857253799845390E-03
+-9.4844598866266460E-03
+-9.4831843213689128E-03
+-9.4818986987973194E-03
+-9.4806030335300544E-03
+-9.4792973402232604E-03
+-9.4779816334087559E-03
+-9.4766559269047011E-03
+-9.4753202343024444E-03
+-9.4739745695894984E-03
+-9.4726189471243429E-03
+-9.4712533813956744E-03
+-9.4698778871820238E-03
+-9.4684924791716748E-03
+-9.4670971710379657E-03
+-9.4656919760104444E-03
+-9.4642769079332483E-03
+-9.4628519813944878E-03
+-9.4614172110323424E-03
+-9.4599726115040736E-03
+-9.4585181973887399E-03
+-9.4570539824075806E-03
+-9.4555799797802712E-03
+-9.4540962032678422E-03
+-9.4526026674863779E-03
+-9.4510993870970221E-03
+-9.4495863766315275E-03
+-9.4480636505469492E-03
+-9.4465312227185079E-03
+-9.4449891065747239E-03
+-9.4434373158150727E-03
+-9.4418758647132599E-03
+-9.4403047676653133E-03
+-9.4387240393817209E-03
+-9.4371336946496645E-03
+-9.4355337473551668E-03
+-9.4339242104882585E-03
+-9.4323050974598165E-03
+-9.4306764229099439E-03
+-9.4290382016374453E-03
+-9.4273904480776678E-03
+-9.4257331764798762E-03
+-9.4240664007463094E-03
+-9.4223901343352713E-03
+-9.4207043908360322E-03
+-9.4190091844080868E-03
+-9.4173045293592036E-03
+-9.4155904402399571E-03
+-9.4138669317474673E-03
+-9.4121340180323837E-03
+-9.4103917123326396E-03
+-9.4086400279701134E-03
+-9.4068789790785669E-03
+-9.4051085800434964E-03
+-9.4033288454134466E-03
+-9.4015397898677983E-03
+-9.3997414275305644E-03
+-9.3979337713113922E-03
+-9.3961168341839783E-03
+-9.3942906305577653E-03
+-9.3924551753942660E-03
+-9.3906104832433279E-03
+-9.3887565682172856E-03
+-9.3868934442093224E-03
+-9.3850211245447707E-03
+-9.3831396225342537E-03
+-9.3812489522488978E-03
+-9.3793491281540728E-03
+-9.3774401646715862E-03
+-9.3755220761591110E-03
+-9.3735948767683045E-03
+-9.3716585798805704E-03
+-9.3697131987390287E-03
+-9.3677587471547620E-03
+-9.3657952393243083E-03
+-9.3638226895858510E-03
+-9.3618411125159368E-03
+-9.3598505225071585E-03
+-9.3578509328835855E-03
+-9.3558423566631969E-03
+-9.3538248075103973E-03
+-9.3517982996549395E-03
+-9.3497628474659908E-03
+-9.3477184655922033E-03
+-9.3456651685337334E-03
+-9.3436029694875418E-03
+-9.3415318811277577E-03
+-9.3394519169626936E-03
+-9.3373630914426447E-03
+-9.3352654190739081E-03
+-9.3331589143802966E-03
+-9.3310435917700156E-03
+-9.3289194645161666E-03
+-9.3267865452769366E-03
+-9.3246448474528995E-03
+-9.3224943855349639E-03
+-9.3203351740524017E-03
+-9.3181672273388826E-03
+-9.3159905596126441E-03
+-9.3138051842077199E-03
+-9.3116111138268811E-03
+-9.3094083617508289E-03
+-9.3071969423801654E-03
+-9.3049768702368873E-03
+-9.3027481598251492E-03
+-9.3005108255911281E-03
+-9.2982648809313111E-03
+-9.2960103382678360E-03
+-9.2937472105323899E-03
+-9.2914755120138692E-03
+-9.2891952572098906E-03
+-9.2869064606305174E-03
+-9.2846091367632354E-03
+-9.2823032991737123E-03
+-9.2799889603225241E-03
+-9.2776661329929296E-03
+-9.2753348312470188E-03
+-9.2729950694362909E-03
+-9.2706468621847199E-03
+-9.2682902242601922E-03
+-9.2659251693953167E-03
+-9.2635517097140081E-03
+-9.2611698576084665E-03
+-9.2587796272652796E-03
+-9.2563810333511059E-03
+-9.2539740903153280E-03
+-9.2515588124365781E-03
+-9.2491352134015208E-03
+-9.2467033057098032E-03
+-9.2442631019541092E-03
+-9.2418146161269196E-03
+-9.2393578627282744E-03
+-9.2368928561119227E-03
+-9.2344196104853556E-03
+-9.2319381396184647E-03
+-9.2294484561344717E-03
+-9.2269505726014309E-03
+-9.2244445026637232E-03
+-9.2219302604915829E-03
+-9.2194078604497572E-03
+-9.2168773171468644E-03
+-9.2143386447217472E-03
+-9.2117918555950622E-03
+-9.2092369619242737E-03
+-9.2066739771814402E-03
+-9.2041029156685415E-03
+-9.2015237917618120E-03
+-9.1989366199387770E-03
+-9.1963414143441304E-03
+-9.1937381875002392E-03
+-9.1911269515234199E-03
+-9.1885077197417005E-03
+-9.1858805064721251E-03
+-9.1832453260789881E-03
+-9.1806021929661582E-03
+-9.1779511212911873E-03
+-9.1752921236058493E-03
+-9.1726252118756370E-03
+-9.1699503992065234E-03
+-9.1672676999065162E-03
+-9.1645771283729097E-03
+-9.1618786990943432E-03
+-9.1591724263699256E-03
+-9.1564583227012920E-03
+-9.1537363996906131E-03
+-9.1510066701885068E-03
+-9.1482691487523062E-03
+-9.1455238499604102E-03
+-9.1427707880080231E-03
+-9.1400099769022268E-03
+-9.1372414294559091E-03
+-9.1344651576878901E-03
+-9.1316811743377899E-03
+-9.1288894934418510E-03
+-9.1260901291993161E-03
+-9.1232830959670705E-03
+-9.1204684080780727E-03
+-9.1176460785284165E-03
+-9.1148161191556207E-03
+-9.1119785423961104E-03
+-9.1091333621567162E-03
+-9.1062805925793220E-03
+-9.1034202480015543E-03
+-9.1005523428025654E-03
+-9.0976768901987748E-03
+-9.0947939021042562E-03
+-9.0919033907885492E-03
+-9.0890053698165722E-03
+-9.0860998530573629E-03
+-9.0831868549274847E-03
+-9.0802663901200405E-03
+-9.0773384720599735E-03
+-9.0744031123327941E-03
+-9.0714603228183536E-03
+-9.0685101171844047E-03
+-9.0655525095649607E-03
+-9.0625875142332016E-03
+-9.0596151455538017E-03
+-9.0566354170155457E-03
+-9.0536483404561555E-03
+-9.0506539278092709E-03
+-9.0476521925321428E-03
+-9.0446431486099176E-03
+-9.0416268102106127E-03
+-9.0386031916687721E-03
+-9.0355723065915806E-03
+-9.0325341667760496E-03
+-9.0294887839548112E-03
+-9.0264361714183852E-03
+-9.0233763431644305E-03
+-9.0203093133913309E-03
+-9.0172350965325790E-03
+-9.0141537063646998E-03
+-9.0110651544678885E-03
+-9.0079694521647581E-03
+-9.0048666127444370E-03
+-9.0017566506490950E-03
+-8.9986395801379786E-03
+-8.9955154151654792E-03
+-8.9923841692799277E-03
+-8.9892458543642164E-03
+-8.9861004819455290E-03
+-8.9829480650301836E-03
+-8.9797886177513837E-03
+-8.9766221542099470E-03
+-8.9734486883847348E-03
+-8.9702682339813534E-03
+-8.9670808031816918E-03
+-8.9638864076565274E-03
+-8.9606850600777600E-03
+-8.9574767741029057E-03
+-8.9542615635794243E-03
+-8.9510394427465625E-03
+-8.9478104256691809E-03
+-8.9445745245008857E-03
+-8.9413317505073475E-03
+-8.9380821160940874E-03
+-8.9348256351200958E-03
+-8.9315623215811320E-03
+-8.9282921896242130E-03
+-8.9250152532677155E-03
+-8.9217315247198808E-03
+-8.9184410150701700E-03
+-8.9151437365196755E-03
+-8.9118397031244957E-03
+-8.9085289290450776E-03
+-8.9052114281209446E-03
+-8.9018872140146123E-03
+-8.8985562990479498E-03
+-8.8952186944597066E-03
+-8.8918744122712928E-03
+-8.8885234662496836E-03
+-8.8851658704015811E-03
+-8.8818016388232963E-03
+-8.8784307855845190E-03
+-8.8750533232145740E-03
+-8.8716692626316842E-03
+-8.8682786154225830E-03
+-8.8648813952802406E-03
+-8.8614776162489316E-03
+-8.8580672922120140E-03
+-8.8546504369457595E-03
+-8.8512270631855711E-03
+-8.8477971822619461E-03
+-8.8443608058348389E-03
+-8.8409179471830093E-03
+-8.8374686199899823E-03
+-8.8340128382194353E-03
+-8.8305506160085145E-03
+-8.8270819663264135E-03
+-8.8236069000902934E-03
+-8.8201254284334119E-03
+-8.8166375646311582E-03
+-8.8131433226362136E-03
+-8.8096427164293147E-03
+-8.8061357600113157E-03
+-8.8026224664420772E-03
+-8.7991028466229363E-03
+-8.7955769114723831E-03
+-8.7920446740839386E-03
+-8.7885061484595187E-03
+-8.7849613485723524E-03
+-8.7814102883598550E-03
+-8.7778529809919431E-03
+-8.7742894373165348E-03
+-8.7707196679928934E-03
+-8.7671436860285151E-03
+-8.7635615057106882E-03
+-8.7599731409920504E-03
+-8.7563786053248983E-03
+-8.7527779117055372E-03
+-8.7491710714394152E-03
+-8.7455580955248993E-03
+-8.7419389965759896E-03
+-8.7383137883560186E-03
+-8.7346824846250420E-03
+-8.7310450990909106E-03
+-8.7274016450971364E-03
+-8.7237521340368801E-03
+-8.7200965767143344E-03
+-8.7164349853382141E-03
+-8.7127673734085920E-03
+-8.7090937545761613E-03
+-8.7054141427431991E-03
+-8.7017285515563758E-03
+-8.6980369924992695E-03
+-8.6943394761314578E-03
+-8.6906360143884590E-03
+-8.6869266208415615E-03
+-8.6832113091689141E-03
+-8.6794900930878462E-03
+-8.6757629861297716E-03
+-8.6720299998484865E-03
+-8.6682911446641815E-03
+-8.6645464322831420E-03
+-8.6607958764046526E-03
+-8.6570394908459698E-03
+-8.6532772892031918E-03
+-8.6495092849004397E-03
+-8.6457354897280896E-03
+-8.6419559142453702E-03
+-8.6381705698788600E-03
+-8.6343794698468760E-03
+-8.6305826276240321E-03
+-8.6267800569404668E-03
+-8.6229717715416813E-03
+-8.6191577834662317E-03
+-8.6153381030851326E-03
+-8.6115127414914585E-03
+-8.6076817118559065E-03
+-8.6038450277067767E-03
+-8.6000027027389511E-03
+-8.5961547506831406E-03
+-8.5923011836759617E-03
+-8.5884420118429675E-03
+-8.5845772459032677E-03
+-8.5807068990970143E-03
+-8.5768309851956496E-03
+-8.5729495177649835E-03
+-8.5690625102260252E-03
+-8.5651699748413371E-03
+-8.5612719219848483E-03
+-8.5573683623536689E-03
+-8.5534593089707719E-03
+-8.5495447755207267E-03
+-8.5456247754043171E-03
+-8.5416993217888766E-03
+-8.5377684270526739E-03
+-8.5338321019064207E-03
+-8.5298903571210671E-03
+-8.5259432051941891E-03
+-8.5219906593033707E-03
+-8.5180327328647897E-03
+-8.5140694395402679E-03
+-8.5101007921335164E-03
+-8.5061268010039014E-03
+-8.5021474763377486E-03
+-8.4981628305021099E-03
+-8.4941728769765221E-03
+-8.4901776292325686E-03
+-8.4861771007191649E-03
+-8.4821713042890351E-03
+-8.4781602505659328E-03
+-8.4741439497865705E-03
+-8.4701224138219924E-03
+-8.4660956556327112E-03
+-8.4620636885500995E-03
+-8.4580265265172209E-03
+-8.4539841829227129E-03
+-8.4499366680613232E-03
+-8.4458839913837125E-03
+-8.4418261645657165E-03
+-8.4377632011934899E-03
+-8.4336951148692545E-03
+-8.4296219190904947E-03
+-8.4255436269564856E-03
+-8.4214602489630329E-03
+-8.4173717945952124E-03
+-8.4132782753129163E-03
+-8.4091797047659289E-03
+-8.4050760965441156E-03
+-8.4009674637144788E-03
+-8.3968538190554009E-03
+-8.3927351735680507E-03
+-8.3886115373104156E-03
+-8.3844829215410730E-03
+-8.3803493392492386E-03
+-8.3762108035600712E-03
+-8.3720673276103646E-03
+-8.3679189244082065E-03
+-8.3637656052222547E-03
+-8.3596073800999166E-03
+-8.3554442600147338E-03
+-8.3512762577088832E-03
+-8.3471033861832432E-03
+-8.3429256587968688E-03
+-8.3387430889233383E-03
+-8.3345556878564996E-03
+-8.3303634649935180E-03
+-8.3261664307531028E-03
+-8.3219645982126160E-03
+-8.3177579808008193E-03
+-8.3135465916117316E-03
+-8.3093304435439483E-03
+-8.3051095480242126E-03
+-8.3008839147463952E-03
+-8.2966535540683270E-03
+-8.2924184788152559E-03
+-8.2881787022827131E-03
+-8.2839342374909589E-03
+-8.2796850972794486E-03
+-8.2754312932897360E-03
+-8.2711728353417040E-03
+-8.2669097336248148E-03
+-8.2626420005880372E-03
+-8.2583696492872210E-03
+-8.2540926927249323E-03
+-8.2498111438554910E-03
+-8.2455250145729731E-03
+-8.2412343146711607E-03
+-8.2369390540761415E-03
+-8.2326392449201674E-03
+-8.2283349001358880E-03
+-8.2240260327812540E-03
+-8.2197126560330149E-03
+-8.2153947821015285E-03
+-8.2110724206643435E-03
+-8.2067455812736816E-03
+-8.2024142757124423E-03
+-8.1980785168288585E-03
+-8.1937383176909611E-03
+-8.1893936916342096E-03
+-8.1850446511200162E-03
+-8.1806912055196121E-03
+-8.1763333637903009E-03
+-8.1719711377019368E-03
+-8.1676045407613942E-03
+-8.1632335861471471E-03
+-8.1588582864624056E-03
+-8.1544786538121066E-03
+-8.1500946982314987E-03
+-8.1457064292644581E-03
+-8.1413138581919592E-03
+-8.1369169976882455E-03
+-8.1325158605155511E-03
+-8.1281104595393658E-03
+-8.1237008072814459E-03
+-8.1192869140315985E-03
+-8.1148687892750905E-03
+-8.1104464438784812E-03
+-8.1060198901392096E-03
+-8.1015891406647587E-03
+-8.0971542087440000E-03
+-8.0927151074381160E-03
+-8.0882718468536091E-03
+-8.0838244356401818E-03
+-8.0793728841666648E-03
+-8.0749172051123742E-03
+-8.0704574113929489E-03
+-8.0659935162053220E-03
+-8.0615255325747360E-03
+-8.0570534706818787E-03
+-8.0525773388507426E-03
+-8.0480971471089558E-03
+-8.0436129084904204E-03
+-8.0391246362242607E-03
+-8.0346323430210316E-03
+-8.0301360413209816E-03
+-8.0256357416515125E-03
+-8.0211314529122241E-03
+-8.0166231850031331E-03
+-8.0121109502072890E-03
+-8.0075947611798464E-03
+-8.0030746308747992E-03
+-7.9985505722917037E-03
+-7.9940225962890667E-03
+-7.9894907113693073E-03
+-7.9849549269229853E-03
+-7.9804152553615108E-03
+-7.9758717096323102E-03
+-7.9713243024347701E-03
+-7.9667730463027844E-03
+-7.9622179522689292E-03
+-7.9576590292336300E-03
+-7.9530962865559957E-03
+-7.9485297360795768E-03
+-7.9439593902878528E-03
+-7.9393852619127295E-03
+-7.9348073638460734E-03
+-7.9302257074871270E-03
+-7.9256403014725200E-03
+-7.9210511546830009E-03
+-7.9164582789088469E-03
+-7.9118616869075648E-03
+-7.9072613913530217E-03
+-7.9026574048390533E-03
+-7.8980497388531946E-03
+-7.8934384022117075E-03
+-7.8888234037076000E-03
+-7.8842047548442085E-03
+-7.8795824683161840E-03
+-7.8749565566496454E-03
+-7.8703270321668801E-03
+-7.8656939064403273E-03
+-7.8610571886722318E-03
+-7.8564168877934999E-03
+-7.8517730147772396E-03
+-7.8471255817803547E-03
+-7.8424746012203273E-03
+-7.8378200858875285E-03
+-7.8331620478792972E-03
+-7.8285004961829406E-03
+-7.8238354391178457E-03
+-7.8191668873994185E-03
+-7.8144948535367204E-03
+-7.8098193500118372E-03
+-7.8051403891682379E-03
+-7.8004579828894064E-03
+-7.7957721404982167E-03
+-7.7910828704920590E-03
+-7.7863901833362418E-03
+-7.7816940913988447E-03
+-7.7769946070320676E-03
+-7.7722917423454808E-03
+-7.7675855091379918E-03
+-7.7628759170752402E-03
+-7.7581629748575487E-03
+-7.7534466926541361E-03
+-7.7487270824726879E-03
+-7.7440041564568870E-03
+-7.7392779268214982E-03
+-7.7345484055900389E-03
+-7.7298156025308396E-03
+-7.7250795260441537E-03
+-7.7203401858903717E-03
+-7.7155975940574970E-03
+-7.7108517627480517E-03
+-7.7061027042211756E-03
+-7.7013504306128302E-03
+-7.6965949518574195E-03
+-7.6918362761414609E-03
+-7.6870744127820797E-03
+-7.6823093735786802E-03
+-7.6775411706722667E-03
+-7.6727698163758700E-03
+-7.6679953229793329E-03
+-7.6632177006151023E-03
+-7.6584369571984726E-03
+-7.6536531016069415E-03
+-7.6488661456692222E-03
+-7.6440761017174596E-03
+-7.6392829820476783E-03
+-7.6344867988903916E-03
+-7.6296875625454091E-03
+-7.6248852807506585E-03
+-7.6200799619563072E-03
+-7.6152716179008128E-03
+-7.6104602610540225E-03
+-7.6056459035438138E-03
+-7.6008285572571870E-03
+-7.5960082327419538E-03
+-7.5911849382487373E-03
+-7.5863586823181626E-03
+-7.5815294760525429E-03
+-7.5766973313513503E-03
+-7.5718622601987935E-03
+-7.5670242746455939E-03
+-7.5621833856083327E-03
+-7.5573396014474463E-03
+-7.5524929305322338E-03
+-7.5476433836267499E-03
+-7.5427909724854652E-03
+-7.5379357090795207E-03
+-7.5330776056130293E-03
+-7.5282166732684071E-03
+-7.5233529201542450E-03
+-7.5184863541096431E-03
+-7.5136169857231427E-03
+-7.5087448270606269E-03
+-7.5038698901024907E-03
+-7.4989921866881410E-03
+-7.4941117279819901E-03
+-7.4892285225095180E-03
+-7.4843425782998713E-03
+-7.4794539054469757E-03
+-7.4745625154902682E-03
+-7.4696684202127869E-03
+-7.4647716317902376E-03
+-7.4598721618329812E-03
+-7.4549700187148092E-03
+-7.4500652098603544E-03
+-7.4451577450932779E-03
+-7.4402476364037904E-03
+-7.4353348957636369E-03
+-7.4304195349130051E-03
+-7.4255015651889878E-03
+-7.4205809952665978E-03
+-7.4156578327134156E-03
+-7.4107320869643313E-03
+-7.4058037696343379E-03
+-7.4008728925023387E-03
+-7.3959394674782721E-03
+-7.3910035062263188E-03
+-7.3860650177016048E-03
+-7.3811240093321984E-03
+-7.3761804900846157E-03
+-7.3712344712689613E-03
+-7.3662859644824377E-03
+-7.3613349817209161E-03
+-7.3563815348896850E-03
+-7.3514256330912365E-03
+-7.3464672833543684E-03
+-7.3415064942533408E-03
+-7.3365432774868270E-03
+-7.3315776450189659E-03
+-7.3266096082569626E-03
+-7.3216391783306745E-03
+-7.3166663646701147E-03
+-7.3116911750742584E-03
+-7.3067136181528460E-03
+-7.3017337047726078E-03
+-7.2967514462200607E-03
+-7.2917668542612796E-03
+-7.2867799408242277E-03
+-7.2817907156271216E-03
+-7.2767991856482351E-03
+-7.2718053586717903E-03
+-7.2668092458234171E-03
+-7.2618108589180500E-03
+-7.2568102095002772E-03
+-7.2518073089269100E-03
+-7.2468021670808016E-03
+-7.2417947914843817E-03
+-7.2367851900298685E-03
+-7.2317733732784268E-03
+-7.2267593525642323E-03
+-7.2217431393613403E-03
+-7.2167247452460679E-03
+-7.2117041804306108E-03
+-7.2066814522674695E-03
+-7.2016565682177540E-03
+-7.1966295386266211E-03
+-7.1916003749375500E-03
+-7.1865690885914435E-03
+-7.1815356910228867E-03
+-7.1765001926271596E-03
+-7.1714626009348713E-03
+-7.1664229233046033E-03
+-7.1613811697678427E-03
+-7.1563373516934821E-03
+-7.1512914803899454E-03
+-7.1462435670726025E-03
+-7.1411936222094199E-03
+-7.1361416535456329E-03
+-7.1310876684022272E-03
+-7.1260316764719554E-03
+-7.1209736889941855E-03
+-7.1159137171934459E-03
+-7.1108517722234437E-03
+-7.1057878646790529E-03
+-7.1007220024378315E-03
+-7.0956541926663237E-03
+-7.0905844446671751E-03
+-7.0855127695452214E-03
+-7.0804391784739813E-03
+-7.0753636826543821E-03
+-7.0702862928782601E-03
+-7.0652070171950696E-03
+-7.0601258626070210E-03
+-7.0550428380195505E-03
+-7.0499579544120753E-03
+-7.0448712228914686E-03
+-7.0397826546326342E-03
+-7.0346922605201458E-03
+-7.0296000486773681E-03
+-7.0245060257908718E-03
+-7.0194102003980326E-03
+-7.0143125836558086E-03
+-7.0092131868357849E-03
+-7.0041120208869222E-03
+-6.9990090964992735E-03
+-6.9939044220514706E-03
+-6.9887980043310746E-03
+-6.9836898515726548E-03
+-6.9785799747093943E-03
+-6.9734683849157581E-03
+-6.9683550931244377E-03
+-6.9632401100732811E-03
+-6.9581234443019183E-03
+-6.9530051023810411E-03
+-6.9478850920901523E-03
+-6.9427634242655804E-03
+-6.9376401101527881E-03
+-6.9325151607250559E-03
+-6.9273885867725911E-03
+-6.9222603971271311E-03
+-6.9171305983542382E-03
+-6.9119991978524517E-03
+-6.9068662060603981E-03
+-6.9017316340145686E-03
+-6.8965954927234516E-03
+-6.8914577931459310E-03
+-6.8863185444005930E-03
+-6.8811777528526782E-03
+-6.8760354254329475E-03
+-6.8708915724249725E-03
+-6.8657462049848657E-03
+-6.8605993340502981E-03
+-6.8554509703860943E-03
+-6.8503011233918927E-03
+-6.8451497998171483E-03
+-6.8399970065843264E-03
+-6.8348427533384349E-03
+-6.8296870506935198E-03
+-6.8245299094172656E-03
+-6.8193713404204022E-03
+-6.8142113534864759E-03
+-6.8090499555009979E-03
+-6.8038871532224814E-03
+-6.7987229559599380E-03
+-6.7935573742162183E-03
+-6.7883904186717900E-03
+-6.7832221002175879E-03
+-6.7780524288289434E-03
+-6.7728814113241749E-03
+-6.7677090540999877E-03
+-6.7625353662261901E-03
+-6.7573603583993098E-03
+-6.7521840413639943E-03
+-6.7470064259048650E-03
+-6.7418275221036959E-03
+-6.7366473368267862E-03
+-6.7314658761893596E-03
+-6.7262831488392226E-03
+-6.7210991654195352E-03
+-6.7159139366064153E-03
+-6.7107274730321556E-03
+-6.7055397848522240E-03
+-6.7003508793349693E-03
+-6.6951607627410538E-03
+-6.6899694433418897E-03
+-6.6847769314548394E-03
+-6.6795832375486763E-03
+-6.6743883722561173E-03
+-6.6691923458850914E-03
+-6.6639951657955949E-03
+-6.6587968379289743E-03
+-6.6535973701706474E-03
+-6.6483967729698079E-03
+-6.6431950569373508E-03
+-6.6379922326399911E-03
+-6.6327883103935101E-03
+-6.6275832976938906E-03
+-6.6223772002316182E-03
+-6.6171700254554888E-03
+-6.6119617838556431E-03
+-6.6067524861327508E-03
+-6.6015421425711894E-03
+-6.5963307632069916E-03
+-6.5911183560035625E-03
+-6.5859049271913220E-03
+-6.5806904840156177E-03
+-6.5754750360957522E-03
+-6.5702585934496504E-03
+-6.5650411666165337E-03
+-6.5598227662569493E-03
+-6.5546034006413022E-03
+-6.5493830754553119E-03
+-6.5441617973470327E-03
+-6.5389395761676393E-03
+-6.5337164223433254E-03
+-6.5284923462123612E-03
+-6.5232673580254228E-03
+-6.5180414661507920E-03
+-6.5128146763286342E-03
+-6.5075869949423343E-03
+-6.5023584316621884E-03
+-6.4971289969493889E-03
+-6.4918987010824051E-03
+-6.4866675541976893E-03
+-6.4814355649277910E-03
+-6.4762027391831907E-03
+-6.4709690831723406E-03
+-6.4657346061798770E-03
+-6.4604993184872233E-03
+-6.4552632301792395E-03
+-6.4500263511610527E-03
+-6.4447886902547690E-03
+-6.4395502537247370E-03
+-6.4343110478216822E-03
+-6.4290710813419260E-03
+-6.4238303641906075E-03
+-6.4185889064472803E-03
+-6.4133467183865953E-03
+-6.4081038092281628E-03
+-6.4028601848366354E-03
+-6.3976158507368219E-03
+-6.3923708155805507E-03
+-6.3871250897879345E-03
+-6.3818786835220520E-03
+-6.3766316065334092E-03
+-6.3713838678849041E-03
+-6.3661354738860981E-03
+-6.3608864302929164E-03
+-6.3556367452502283E-03
+-6.3503864286606733E-03
+-6.3451354904831133E-03
+-6.3398839407063949E-03
+-6.3346317887962231E-03
+-6.3293790412417561E-03
+-6.3241257035887228E-03
+-6.3188717835104069E-03
+-6.3136172907017896E-03
+-6.3083622349709391E-03
+-6.3031066262101872E-03
+-6.2978504739662714E-03
+-6.2925937850312500E-03
+-6.2873365649723468E-03
+-6.2820788211027847E-03
+-6.2768205628829692E-03
+-6.2715618000089473E-03
+-6.2663025425298280E-03
+-6.2610428002780171E-03
+-6.2557825799806985E-03
+-6.2505218865184587E-03
+-6.2452607267430267E-03
+-6.2399991106717604E-03
+-6.2347370484626295E-03
+-6.2294745496405055E-03
+-6.2242116234146059E-03
+-6.2189482768923885E-03
+-6.2136845155432389E-03
+-6.2084203460494262E-03
+-6.2031557776899022E-03
+-6.1978908200791159E-03
+-6.1926254829178526E-03
+-6.1873597758435837E-03
+-6.1820937062476754E-03
+-6.1768272792535554E-03
+-6.1715605010475068E-03
+-6.1662933809820469E-03
+-6.1610259289101802E-03
+-6.1557581544103464E-03
+-6.1504900668781547E-03
+-6.1452216738698360E-03
+-6.1399529805446044E-03
+-6.1346839927844746E-03
+-6.1294147196760147E-03
+-6.1241451710068312E-03
+-6.1188753562745439E-03
+-6.1136052847708833E-03
+-6.1083349643358169E-03
+-6.1030644003616423E-03
+-6.0977935985712904E-03
+-6.0925225674406600E-03
+-6.0872513162954257E-03
+-6.0819798547158948E-03
+-6.0767081924871140E-03
+-6.0714363379184471E-03
+-6.0661642960473496E-03
+-6.0608920719723266E-03
+-6.0556196740571677E-03
+-6.0503471119738488E-03
+-6.0450743952334832E-03
+-6.0398015331693576E-03
+-6.0345285340800961E-03
+-6.0292554032724257E-03
+-6.0239821458310016E-03
+-6.0187087697182147E-03
+-6.0134352844164879E-03
+-6.0081616994035643E-03
+-6.0028880241316581E-03
+-5.9976142671951133E-03
+-5.9923404338556533E-03
+-5.9870665287976351E-03
+-5.9817925596661603E-03
+-5.9765185361366534E-03
+-5.9712444676443474E-03
+-5.9659703631198087E-03
+-5.9606962309713867E-03
+-5.9554220771569797E-03
+-5.9501479069363214E-03
+-5.9448737274204787E-03
+-5.9395995473643355E-03
+-5.9343253757741391E-03
+-5.9290512221149777E-03
+-5.9237770954528651E-03
+-5.9185030015678321E-03
+-5.9132289449028066E-03
+-5.9079549322114426E-03
+-5.9026809728975581E-03
+-5.8974070763393510E-03
+-5.8921332513810435E-03
+-5.8868595065315419E-03
+-5.8815858480477136E-03
+-5.8763122809444577E-03
+-5.8710388116819572E-03
+-5.8657654488786437E-03
+-5.8604922014142040E-03
+-5.8552190785333864E-03
+-5.8499460893741582E-03
+-5.8446732402698594E-03
+-5.8394005355164062E-03
+-5.8341279809813193E-03
+-5.8288555856444496E-03
+-5.8235833587791837E-03
+-5.8183113093233478E-03
+-5.8130394459932370E-03
+-5.8077677753322968E-03
+-5.8024963018355382E-03
+-5.7972250311258957E-03
+-5.7919539718773944E-03
+-5.7866831332202828E-03
+-5.7814125241475913E-03
+-5.7761421535282706E-03
+-5.7708720281760576E-03
+-5.7656021524025974E-03
+-5.7603325313532365E-03
+-5.7550631734784256E-03
+-5.7497940878991185E-03
+-5.7445252835048571E-03
+-5.7392567690208599E-03
+-5.7339885515902403E-03
+-5.7287206358664225E-03
+-5.7234530269131079E-03
+-5.7181857326198977E-03
+-5.7129187616789439E-03
+-5.7076521229278230E-03
+-5.7023858253073866E-03
+-5.6971198762875127E-03
+-5.6918542803116468E-03
+-5.6865890419841398E-03
+-5.6813241691270481E-03
+-5.6760596707515739E-03
+-5.6707955555682045E-03
+-5.6655318319817315E-03
+-5.6602685074737353E-03
+-5.6550055870654694E-03
+-5.6497430756470542E-03
+-5.6444809804205688E-03
+-5.6392193097296274E-03
+-5.6339580720960432E-03
+-5.6286972762623491E-03
+-5.6234369301588170E-03
+-5.6181770387374180E-03
+-5.6129176064852173E-03
+-5.6076586402546572E-03
+-5.6024001484162190E-03
+-5.5971421395426034E-03
+-5.5918846225045784E-03
+-5.5866276054822774E-03
+-5.5813710931859320E-03
+-5.5761150894440698E-03
+-5.5708596008270791E-03
+-5.5656046361774797E-03
+-5.5603502042434359E-03
+-5.5550963134156023E-03
+-5.5498429716085282E-03
+-5.5445901839479709E-03
+-5.5393379545251534E-03
+-5.5340862895353823E-03
+-5.5288351974263940E-03
+-5.5235846867446696E-03
+-5.5183347660039085E-03
+-5.5130854433834385E-03
+-5.5078367241340924E-03
+-5.5025886120138234E-03
+-5.4973411127747489E-03
+-5.4920942349399836E-03
+-5.4868479871343807E-03
+-5.4816023775929729E-03
+-5.4763574142750217E-03
+-5.4711131028578339E-03
+-5.4658694474750682E-03
+-5.4606264535369898E-03
+-5.4553841287942658E-03
+-5.4501424813511714E-03
+-5.4449015198840545E-03
+-5.4396612531014306E-03
+-5.4344216868806383E-03
+-5.4291828246068596E-03
+-5.4239446710330937E-03
+-5.4187072343214165E-03
+-5.4134705230570656E-03
+-5.4082345453692997E-03
+-5.4029993091334440E-03
+-5.3977648204983977E-03
+-5.3925310836504146E-03
+-5.3872981034606485E-03
+-5.3820658872586469E-03
+-5.3768344429060005E-03
+-5.3716037788058861E-03
+-5.3663739036242178E-03
+-5.3611448239057995E-03
+-5.3559165430726290E-03
+-5.3506890651360880E-03
+-5.3454623975927812E-03
+-5.3402365488334083E-03
+-5.3350115271022062E-03
+-5.3297873405239891E-03
+-5.3245639957460915E-03
+-5.3193414965966405E-03
+-5.3141198471238563E-03
+-5.3088990543744699E-03
+-5.3036791264355248E-03
+-5.2984600714237242E-03
+-5.2932418974794230E-03
+-5.2880246115091668E-03
+-5.2828082173207525E-03
+-5.2775927186611204E-03
+-5.2723781224363825E-03
+-5.2671644369893158E-03
+-5.2619516703783873E-03
+-5.2567398303086845E-03
+-5.2515289236385243E-03
+-5.2463189544746398E-03
+-5.2411099266020025E-03
+-5.2359018464384188E-03
+-5.2306947219746547E-03
+-5.2254885612013861E-03
+-5.2202833720761200E-03
+-5.2150791618511905E-03
+-5.2098759346458417E-03
+-5.2046736938752853E-03
+-5.1994724455102391E-03
+-5.1942721974995009E-03
+-5.1890729577916111E-03
+-5.1838747342294348E-03
+-5.1786775341518213E-03
+-5.1734813619508961E-03
+-5.1682862210218139E-03
+-5.1630921169820666E-03
+-5.1578990576705832E-03
+-5.1527070509369381E-03
+-5.1475161044004453E-03
+-5.1423262253288251E-03
+-5.1371374184276354E-03
+-5.1319496871954163E-03
+-5.1267630368556283E-03
+-5.1215774748654287E-03
+-5.1163930088738412E-03
+-5.1112096466885831E-03
+-5.1060273959172434E-03
+-5.1008462614752286E-03
+-5.0956662465839412E-03
+-5.0904873559727481E-03
+-5.0853095969344807E-03
+-5.0801329770596747E-03
+-5.0749575041989514E-03
+-5.0697831861220106E-03
+-5.0646100279606978E-03
+-5.0594380326802937E-03
+-5.0542672045591546E-03
+-5.0490975508796299E-03
+-5.0439290793154396E-03
+-5.0387617975116671E-03
+-5.0335957130186433E-03
+-5.0284308312424641E-03
+-5.0232671553113997E-03
+-5.0181046892619650E-03
+-5.0129434400625634E-03
+-5.0077834152265164E-03
+-5.0026246224491016E-03
+-4.9974670694730274E-03
+-4.9923107619464996E-03
+-4.9871557026429248E-03
+-4.9820018950353677E-03
+-4.9768493460851547E-03
+-4.9716980635759970E-03
+-4.9665480551026537E-03
+-4.9613993281136491E-03
+-4.9562518884378693E-03
+-4.9511057390250754E-03
+-4.9459608831863393E-03
+-4.9408173276234346E-03
+-4.9356750801032648E-03
+-4.9305341479632730E-03
+-4.9253945381600370E-03
+-4.9202562566585369E-03
+-4.9151193071424069E-03
+-4.9099836932907526E-03
+-4.9048494210100430E-03
+-4.8997164971670759E-03
+-4.8945849290115868E-03
+-4.8894547242219295E-03
+-4.8843258894149914E-03
+-4.8791984278605729E-03
+-4.8740723424732955E-03
+-4.8689476389349598E-03
+-4.8638243244693317E-03
+-4.8587024063594299E-03
+-4.8535818919505386E-03
+-4.8484627878474023E-03
+-4.8433450975788822E-03
+-4.8382288240601491E-03
+-4.8331139726533736E-03
+-4.8280005504891983E-03
+-4.8228885647009717E-03
+-4.8177780223525373E-03
+-4.8126689300276105E-03
+-4.8075612916939365E-03
+-4.8024551105050207E-03
+-4.7973503913707263E-03
+-4.7922471408415055E-03
+-4.7871453657820986E-03
+-4.7820450736844782E-03
+-4.7769462717019325E-03
+-4.7718489637204910E-03
+-4.7667531522010203E-03
+-4.7616588415865914E-03
+-4.7565660387149031E-03
+-4.7514747506171365E-03
+-4.7463849844940073E-03
+-4.7412967473145625E-03
+-4.7362100432698853E-03
+-4.7311248749273569E-03
+-4.7260412464303243E-03
+-4.7209591644095531E-03
+-4.7158786357616271E-03
+-4.7107996676072203E-03
+-4.7057222669568705E-03
+-4.7006464382460516E-03
+-4.6955721839380465E-03
+-4.6904995078258663E-03
+-4.6854284165025687E-03
+-4.6803589169016552E-03
+-4.6752910159657086E-03
+-4.6702247205432932E-03
+-4.6651600352719180E-03
+-4.6600969625954208E-03
+-4.6550355059840204E-03
+-4.6499756718994681E-03
+-4.6449174672928287E-03
+-4.6398608990787021E-03
+-4.6348059741002368E-03
+-4.6297526971769178E-03
+-4.6247010705359271E-03
+-4.6196510972121036E-03
+-4.6146027837135704E-03
+-4.6095561372715465E-03
+-4.6045111645716874E-03
+-4.5994678719360861E-03
+-4.5944262643656418E-03
+-4.5893863446779537E-03
+-4.5843481160337809E-03
+-4.5793115842070074E-03
+-4.5742767557585438E-03
+-4.5692436374180027E-03
+-4.5642122360456941E-03
+-4.5591825571214663E-03
+-4.5541546031254302E-03
+-4.5491283766158413E-03
+-4.5441038831697204E-03
+-4.5390811295513544E-03
+-4.5340601224010211E-03
+-4.5290408682239153E-03
+-4.5240233725889973E-03
+-4.5190076384060722E-03
+-4.5139936683756708E-03
+-4.5089814675090909E-03
+-4.5039710420234297E-03
+-4.4989623984549318E-03
+-4.4939555437613085E-03
+-4.4889504840475427E-03
+-4.4839472220489238E-03
+-4.4789457599023240E-03
+-4.4739461022818405E-03
+-4.4689482555743780E-03
+-4.4639522262913123E-03
+-4.4589580211075192E-03
+-4.4539656461093534E-03
+-4.4489751042866114E-03
+-4.4439863977666959E-03
+-4.4389995309538242E-03
+-4.4340145102378043E-03
+-4.4290313420750479E-03
+-4.4240500329221985E-03
+-4.4190705888236970E-03
+-4.4140930129736595E-03
+-4.4091173074299050E-03
+-4.4041434762025012E-03
+-4.3991715255013294E-03
+-4.3942014616961487E-03
+-4.3892332912879540E-03
+-4.3842670205061296E-03
+-4.3793026527559273E-03
+-4.3743401899146812E-03
+-4.3693796356379742E-03
+-4.3644209961885075E-03
+-4.3594642779760029E-03
+-4.3545094871724945E-03
+-4.3495566297198363E-03
+-4.3446057092714693E-03
+-4.3396567278491784E-03
+-4.3347096888367029E-03
+-4.3297645982572613E-03
+-4.3248214624018013E-03
+-4.3198802874224963E-03
+-4.3149410793263294E-03
+-4.3100038421493882E-03
+-4.3050685781017015E-03
+-4.3001352902437319E-03
+-4.2952039839144543E-03
+-4.2902746648798935E-03
+-4.2853473395045964E-03
+-4.2804220143553258E-03
+-4.2754986937803847E-03
+-4.2705773794722603E-03
+-4.2656580739123713E-03
+-4.2607407826914297E-03
+-4.2558255120230719E-03
+-4.2509122679620353E-03
+-4.2460010564438506E-03
+-4.2410918818880537E-03
+-4.2361847463699472E-03
+-4.2312796523922601E-03
+-4.2263766052251074E-03
+-4.2214756108967478E-03
+-4.2165766753896241E-03
+-4.2116798046416687E-03
+-4.2067850032765893E-03
+-4.2018922732709220E-03
+-4.1970016167636650E-03
+-4.1921130387373457E-03
+-4.1872265452196885E-03
+-4.1823421423093071E-03
+-4.1774598361710661E-03
+-4.1725796317596663E-03
+-4.1677015308123361E-03
+-4.1628255349283926E-03
+-4.1579516488464635E-03
+-4.1530798788140073E-03
+-4.1482102308322286E-03
+-4.1433427105761643E-03
+-4.1384773229480752E-03
+-4.1336140701966357E-03
+-4.1287529542032167E-03
+-4.1238939792996353E-03
+-4.1190371513592809E-03
+-4.1141824762251254E-03
+-4.1093299596503862E-03
+-4.1044796068055419E-03
+-4.0996314201451195E-03
+-4.0947854014433916E-03
+-4.0899415544605787E-03
+-4.0850998845758640E-03
+-4.0802603974630846E-03
+-4.0754230993291420E-03
+-4.0705879959051791E-03
+-4.0657550894500991E-03
+-4.0609243809577112E-03
+-4.0560958738729922E-03
+-4.0512695742190054E-03
+-4.0464454879922214E-03
+-4.0416236207660257E-03
+-4.0368039777554437E-03
+-4.0319865617020135E-03
+-4.0271713741111192E-03
+-4.0223584181539674E-03
+-4.0175476992748886E-03
+-4.0127392231001464E-03
+-4.0079329953319458E-03
+-4.0031290214766922E-03
+-3.9983273044198811E-03
+-3.9935278453082715E-03
+-3.9887306469016653E-03
+-3.9839357148540892E-03
+-3.9791430550101623E-03
+-3.9743526726890889E-03
+-3.9695645729439346E-03
+-3.9647787590324874E-03
+-3.9599952326604083E-03
+-3.9552139964687356E-03
+-3.9504350553700527E-03
+-3.9456584146333228E-03
+-3.9408840797880715E-03
+-3.9361120564042331E-03
+-3.9313423480960051E-03
+-3.9265749562915741E-03
+-3.9218098831482672E-03
+-3.9170471333955523E-03
+-3.9122867122729412E-03
+-3.9075286252283972E-03
+-3.9027728777903323E-03
+-3.8980194737793217E-03
+-3.8932684145480219E-03
+-3.8885197019636144E-03
+-3.8837733407714814E-03
+-3.8790293364343053E-03
+-3.8742876942129698E-03
+-3.8695484192128112E-03
+-3.8648115153115002E-03
+-3.8600769840888205E-03
+-3.8553448273478965E-03
+-3.8506150494950469E-03
+-3.8458876558194193E-03
+-3.8411626515772786E-03
+-3.8364400419907724E-03
+-3.8317198311945940E-03
+-3.8270020206489833E-03
+-3.8222866117785951E-03
+-3.8175736087385187E-03
+-3.8128630169060097E-03
+-3.8081548415380005E-03
+-3.8034490877411516E-03
+-3.7987457597820624E-03
+-3.7940448592109224E-03
+-3.7893463872737524E-03
+-3.7846503477773439E-03
+-3.7799567460287601E-03
+-3.7752655872030356E-03
+-3.7705768762426872E-03
+-3.7658906175169664E-03
+-3.7612068129749760E-03
+-3.7565254640346836E-03
+-3.7518465740264662E-03
+-3.7471701477364075E-03
+-3.7424961901299115E-03
+-3.7378247064585981E-03
+-3.7331557015087891E-03
+-3.7284891771314829E-03
+-3.7238251342040572E-03
+-3.7191635757195082E-03
+-3.7145045067487471E-03
+-3.7098479323823151E-03
+-3.7051938575322733E-03
+-3.7005422867900945E-03
+-3.6958932224149684E-03
+-3.6912466655871366E-03
+-3.6866026189548342E-03
+-3.6819610870339331E-03
+-3.6773220745759485E-03
+-3.6726855867377449E-03
+-3.6680516285257014E-03
+-3.6634202022774068E-03
+-3.6587913086823963E-03
+-3.6541649499249314E-03
+-3.6495411306819909E-03
+-3.6449198558867156E-03
+-3.6403011305896015E-03
+-3.6356849597272930E-03
+-3.6310713458400827E-03
+-3.6264602895353117E-03
+-3.6218517926786343E-03
+-3.6172458599476928E-03
+-3.6126424963417564E-03
+-3.6080417066011797E-03
+-3.6034434952934543E-03
+-3.5988478651956708E-03
+-3.5942548172163960E-03
+-3.5896643531139320E-03
+-3.5850764772933376E-03
+-3.5804911946029612E-03
+-3.5759085097142921E-03
+-3.5713284271715190E-03
+-3.5667509499687240E-03
+-3.5621760790114443E-03
+-3.5576038157646961E-03
+-3.5530341643555969E-03
+-3.5484671295321281E-03
+-3.5439027159739757E-03
+-3.5393409282993308E-03
+-3.5347817697669046E-03
+-3.5302252412600737E-03
+-3.5256713439586586E-03
+-3.5211200817471451E-03
+-3.5165714593502072E-03
+-3.5120254812932394E-03
+-3.5074821519255955E-03
+-3.5029414746306250E-03
+-3.4984034505949830E-03
+-3.4938680810443238E-03
+-3.4893353695545281E-03
+-3.4848053206787454E-03
+-3.4802779388765966E-03
+-3.4757532284996279E-03
+-3.4712311930772408E-03
+-3.4667118336678200E-03
+-3.4621951511372502E-03
+-3.4576811489117282E-03
+-3.4531698318106068E-03
+-3.4486612043196983E-03
+-3.4441552704255630E-03
+-3.4396520335873834E-03
+-3.4351514952876555E-03
+-3.4306536566422676E-03
+-3.4261585205344856E-03
+-3.4216660911034866E-03
+-3.4171763726015100E-03
+-3.4126893694417918E-03
+-3.4082050855933142E-03
+-3.4037235225190215E-03
+-3.3992446809283524E-03
+-3.3947685633584773E-03
+-3.3902951740233723E-03
+-3.3858245172150624E-03
+-3.3813565972647102E-03
+-3.3768914181723049E-03
+-3.3724289814594643E-03
+-3.3679692875957894E-03
+-3.3635123387588928E-03
+-3.3590581391523934E-03
+-3.3546066931023472E-03
+-3.3501580049522966E-03
+-3.3457120788142687E-03
+-3.3412689164091414E-03
+-3.3368285180886853E-03
+-3.3323908856788698E-03
+-3.3279560232867514E-03
+-3.3235239351756866E-03
+-3.3190946254512046E-03
+-3.3146680980449344E-03
+-3.3102443549796298E-03
+-3.3058233968429368E-03
+-3.3014052252962208E-03
+-3.2969898442096403E-03
+-3.2925772577034368E-03
+-3.2881674698312514E-03
+-3.2837604845420633E-03
+-3.2793563040118246E-03
+-3.2749549286881139E-03
+-3.2705563598364089E-03
+-3.2661606010524241E-03
+-3.2617676563394611E-03
+-3.2573775299456018E-03
+-3.2529902261856950E-03
+-3.2486057475633757E-03
+-3.2442240943015462E-03
+-3.2398452672166345E-03
+-3.2354692696989354E-03
+-3.2310961057161669E-03
+-3.2267257794270829E-03
+-3.2223582950869456E-03
+-3.2179936554117936E-03
+-3.2136318606061144E-03
+-3.2092729112214793E-03
+-3.2049168105070611E-03
+-3.2005635624978222E-03
+-3.1962131712239979E-03
+-3.1918656407050401E-03
+-3.1875209737709394E-03
+-3.1831791707223919E-03
+-3.1788402319819888E-03
+-3.1745041607722261E-03
+-3.1701709613823430E-03
+-3.1658406376577578E-03
+-3.1615131929798338E-03
+-3.1571886300503236E-03
+-3.1528669497250927E-03
+-3.1485481527639540E-03
+-3.1442322418606442E-03
+-3.1399192206960748E-03
+-3.1356090930534262E-03
+-3.1313018628424923E-03
+-3.1269975332508773E-03
+-3.1226961047318455E-03
+-3.1183975773079941E-03
+-3.1141019535169505E-03
+-3.1098092375594693E-03
+-3.1055194333589734E-03
+-3.1012325443051576E-03
+-3.0969485733230396E-03
+-3.0926675212757803E-03
+-3.0883893884829797E-03
+-3.0841141770523149E-03
+-3.0798418906237217E-03
+-3.0755725328990911E-03
+-3.0713061076085629E-03
+-3.0670426181391018E-03
+-3.0627820655281667E-03
+-3.0585244498956012E-03
+-3.0542697729264430E-03
+-3.0500180380385188E-03
+-3.0457692487804952E-03
+-3.0415234088250298E-03
+-3.0372805216231803E-03
+-3.0330405883486284E-03
+-3.0288036089673588E-03
+-3.0245695849005568E-03
+-3.0203385196636012E-03
+-3.0161104169186934E-03
+-3.0118852802727275E-03
+-3.0076631131540207E-03
+-3.0034439168212424E-03
+-2.9992276910144324E-03
+-2.9950144367887808E-03
+-2.9908041576972842E-03
+-2.9865968574891819E-03
+-2.9823925395107702E-03
+-2.9781912068948969E-03
+-2.9739928612406395E-03
+-2.9697975027513949E-03
+-2.9656051324170466E-03
+-2.9614157532639658E-03
+-2.9572293686242041E-03
+-2.9530459818456040E-03
+-2.9488655962367598E-03
+-2.9446882136533897E-03
+-2.9405138342431859E-03
+-2.9363424586962513E-03
+-2.9321740897670394E-03
+-2.9280087306520178E-03
+-2.9238463848166706E-03
+-2.9196870558558050E-03
+-2.9155307458452787E-03
+-2.9113774545488666E-03
+-2.9072271821430386E-03
+-2.9030799314202888E-03
+-2.8989357058681977E-03
+-2.8947945088261366E-03
+-2.8906563435140810E-03
+-2.8865212121193494E-03
+-2.8823891147911878E-03
+-2.8782600517903824E-03
+-2.8741340254127860E-03
+-2.8700110386937119E-03
+-2.8658910948432142E-03
+-2.8617741972380962E-03
+-2.8576603483503132E-03
+-2.8535495482794881E-03
+-2.8494417970209842E-03
+-2.8453370967514852E-03
+-2.8412354506819381E-03
+-2.8371368620467258E-03
+-2.8330413341017720E-03
+-2.8289488693966931E-03
+-2.8248594680321502E-03
+-2.8207731297647297E-03
+-2.8166898563848335E-03
+-2.8126096509426711E-03
+-2.8085325166750750E-03
+-2.8044584570910652E-03
+-2.8003874750817028E-03
+-2.7963195705589081E-03
+-2.7922547427227983E-03
+-2.7881929931631356E-03
+-2.7841343253811853E-03
+-2.7800787427632477E-03
+-2.7760262483393248E-03
+-2.7719768447202341E-03
+-2.7679305321839957E-03
+-2.7638873101860457E-03
+-2.7598471800209397E-03
+-2.7558101448834815E-03
+-2.7517762079487217E-03
+-2.7477453720930432E-03
+-2.7437176399245223E-03
+-2.7396930122043392E-03
+-2.7356714887866312E-03
+-2.7316530706632232E-03
+-2.7276377603513407E-03
+-2.7236255605755373E-03
+-2.7196164744374847E-03
+-2.7156105049484058E-03
+-2.7116076529900592E-03
+-2.7076079180555885E-03
+-2.7036113007801697E-03
+-2.6996178038144465E-03
+-2.6956274300392394E-03
+-2.6916401824853822E-03
+-2.6876560641159934E-03
+-2.6836750758920530E-03
+-2.6796972170740137E-03
+-2.6757224879610823E-03
+-2.6717508913218098E-03
+-2.6677824302283682E-03
+-2.6638171075160162E-03
+-2.6598549258664531E-03
+-2.6558958864284434E-03
+-2.6519399886677591E-03
+-2.6479872327114526E-03
+-2.6440376209191075E-03
+-2.6400911560777924E-03
+-2.6361478410895918E-03
+-2.6322076788880809E-03
+-2.6282706709434877E-03
+-2.6243368166491495E-03
+-2.6204061158206157E-03
+-2.6164785705883879E-03
+-2.6125541836686042E-03
+-2.6086329578862625E-03
+-2.6047148961303493E-03
+-2.6008000000372960E-03
+-2.5968882689326738E-03
+-2.5929797023741623E-03
+-2.5890743024939902E-03
+-2.5851720722659980E-03
+-2.5812730143497283E-03
+-2.5773771311169980E-03
+-2.5734844241898347E-03
+-2.5695948934039733E-03
+-2.5657085385861226E-03
+-2.5618253614138140E-03
+-2.5579453643797445E-03
+-2.5540685499665489E-03
+-2.5501949206406830E-03
+-2.5463244782839272E-03
+-2.5424572229078074E-03
+-2.5385931543002514E-03
+-2.5347322737528303E-03
+-2.5308745834278614E-03
+-2.5270200857305581E-03
+-2.5231687834173662E-03
+-2.5193206787040758E-03
+-2.5154757713643852E-03
+-2.5116340606504560E-03
+-2.5077955477119588E-03
+-2.5039602351162645E-03
+-2.5001281254197478E-03
+-2.4962992210901310E-03
+-2.4924735242008783E-03
+-2.4886510346156044E-03
+-2.4848317514907341E-03
+-2.4810156757515138E-03
+-2.4772028100299047E-03
+-2.4733931568728588E-03
+-2.4695867184279822E-03
+-2.4657834965763365E-03
+-2.4619834916111104E-03
+-2.4581867031090842E-03
+-2.4543931317532611E-03
+-2.4506027796084230E-03
+-2.4468156488814501E-03
+-2.4430317419704469E-03
+-2.4392510611360250E-03
+-2.4354736066941577E-03
+-2.4316993777827398E-03
+-2.4279283746490377E-03
+-2.4241605993549037E-03
+-2.4203960541742510E-03
+-2.4166347416005960E-03
+-2.4128766640701326E-03
+-2.4091218221240205E-03
+-2.4053702148013546E-03
+-2.4016218420343733E-03
+-2.3978767057188520E-03
+-2.3941348080382821E-03
+-2.3903961514238859E-03
+-2.3866607383270372E-03
+-2.3829285694007356E-03
+-2.3791996434532458E-03
+-2.3754739600707498E-03
+-2.3717515212261613E-03
+-2.3680323292939805E-03
+-2.3643163865803493E-03
+-2.3606036953243400E-03
+-2.3568942564360417E-03
+-2.3531880690657696E-03
+-2.3494851327618338E-03
+-2.3457854489882996E-03
+-2.3420890196793613E-03
+-2.3383958471040914E-03
+-2.3347059337342491E-03
+-2.3310192807034728E-03
+-2.3273358868413567E-03
+-2.3236557512755812E-03
+-2.3199788757302499E-03
+-2.3163052627084850E-03
+-2.3126349143271188E-03
+-2.3089678323720488E-03
+-2.3053040178378308E-03
+-2.3016434699658214E-03
+-2.2979861880590832E-03
+-2.2943321734269235E-03
+-2.2906814281981438E-03
+-2.2870339544534667E-03
+-2.2833897542178122E-03
+-2.2797488288116160E-03
+-2.2761111774730618E-03
+-2.2724767992685700E-03
+-2.2688456952137696E-03
+-2.2652178673698963E-03
+-2.2615933177565178E-03
+-2.2579720483203820E-03
+-2.2543540604687577E-03
+-2.2507393534926768E-03
+-2.2471279263022079E-03
+-2.2435197796645428E-03
+-2.2399149156420326E-03
+-2.2363133362743267E-03
+-2.2327150435111436E-03
+-2.2291200388956448E-03
+-2.2255283218607152E-03
+-2.2219398912213893E-03
+-2.2183547473412931E-03
+-2.2147728919803475E-03
+-2.2111943270430845E-03
+-2.2076190546612309E-03
+-2.2040470766814301E-03
+-2.2004783926580025E-03
+-2.1969130011901795E-03
+-2.1933509023671529E-03
+-2.1897920980145516E-03
+-2.1862365900461476E-03
+-2.1826843803457383E-03
+-2.1791354705981984E-03
+-2.1755898605702968E-03
+-2.1720475489515993E-03
+-2.1685085356144022E-03
+-2.1649728222273385E-03
+-2.1614404105921763E-03
+-2.1579113024474180E-03
+-2.1543854994065938E-03
+-2.1508630015491478E-03
+-2.1473438078211111E-03
+-2.1438279179328518E-03
+-2.1403153331416573E-03
+-2.1368060549550091E-03
+-2.1333000852867432E-03
+-2.1297974261106339E-03
+-2.1262980776009925E-03
+-2.1228020382084421E-03
+-2.1193093072031208E-03
+-2.1158198861389544E-03
+-2.1123337769029839E-03
+-2.1088509811603333E-03
+-2.1053715004349812E-03
+-2.1018953349478267E-03
+-2.0984224833088456E-03
+-2.0949529446932071E-03
+-2.0914867205471823E-03
+-2.0880238127699868E-03
+-2.0845642229209978E-03
+-2.0811079523382703E-03
+-2.0776550014583108E-03
+-2.0742053692790452E-03
+-2.0707590550084077E-03
+-2.0673160594055053E-03
+-2.0638763837022064E-03
+-2.0604400295932170E-03
+-2.0570069991317688E-03
+-2.0535772931821157E-03
+-2.0501509101057201E-03
+-2.0467278483658567E-03
+-2.0433081089812491E-03
+-2.0398916939235899E-03
+-2.0364786047299376E-03
+-2.0330688424912815E-03
+-2.0296624077803535E-03
+-2.0262592997994230E-03
+-2.0228595176780472E-03
+-2.0194630618976411E-03
+-2.0160699336203829E-03
+-2.0126801342082359E-03
+-2.0092936652796431E-03
+-2.0059105278876395E-03
+-2.0025307209482392E-03
+-1.9991542430348687E-03
+-1.9957810944509517E-03
+-1.9924112766262340E-03
+-1.9890447910149963E-03
+-1.9856816390805320E-03
+-1.9823218218676807E-03
+-1.9789653383612002E-03
+-1.9756121870093978E-03
+-1.9722623678954292E-03
+-1.9689158824786569E-03
+-1.9655727322047466E-03
+-1.9622329183929632E-03
+-1.9588964420717012E-03
+-1.9555633024548715E-03
+-1.9522334980653058E-03
+-1.9489070286868044E-03
+-1.9455838954746255E-03
+-1.9422640996850757E-03
+-1.9389476426695509E-03
+-1.9356345256031765E-03
+-1.9323247478996350E-03
+-1.9290183080560939E-03
+-1.9257152056562008E-03
+-1.9224154418193086E-03
+-1.9191190177935142E-03
+-1.9158259348817201E-03
+-1.9125361942640890E-03
+-1.9092497953697601E-03
+-1.9059667364248413E-03
+-1.9026870167320586E-03
+-1.8994106375983838E-03
+-1.8961376004638434E-03
+-1.8928679063481770E-03
+-1.8896015560755015E-03
+-1.8863385493770733E-03
+-1.8830788850069920E-03
+-1.8798225622402244E-03
+-1.8765695816767407E-03
+-1.8733199441660156E-03
+-1.8700736509587015E-03
+-1.8668307034320211E-03
+-1.8635911015103044E-03
+-1.8603548434386113E-03
+-1.8571219280047947E-03
+-1.8538923560082149E-03
+-1.8506661286490970E-03
+-1.8474432471702335E-03
+-1.8442237128151935E-03
+-1.8410075255529432E-03
+-1.8377946834485447E-03
+-1.8345851849705631E-03
+-1.8313790309518465E-03
+-1.8281762228281389E-03
+-1.8249767617269941E-03
+-1.8217806485413773E-03
+-1.8185878833136182E-03
+-1.8153984644438416E-03
+-1.8122123904781228E-03
+-1.8090296618630116E-03
+-1.8058502797129435E-03
+-1.8026742450988347E-03
+-1.7995015590476370E-03
+-1.7963322218197658E-03
+-1.7931662317233670E-03
+-1.7900035870365752E-03
+-1.7868442881742038E-03
+-1.7836883365334047E-03
+-1.7805357331172941E-03
+-1.7773864784375957E-03
+-1.7742405725892890E-03
+-1.7710980143559991E-03
+-1.7679588023736257E-03
+-1.7648229366725716E-03
+-1.7616904181288399E-03
+-1.7585612475607940E-03
+-1.7554354256760847E-03
+-1.7523129528651648E-03
+-1.7491938281227501E-03
+-1.7460780501078034E-03
+-1.7429656184110502E-03
+-1.7398565333580321E-03
+-1.7367507956128759E-03
+-1.7336484065012085E-03
+-1.7305493670312971E-03
+-1.7274536757696333E-03
+-1.7243613304329772E-03
+-1.7212723304443889E-03
+-1.7181866769594419E-03
+-1.7151043710592342E-03
+-1.7120254134101078E-03
+-1.7089498044283741E-03
+-1.7058775430309227E-03
+-1.7028086274180853E-03
+-1.6997430569121424E-03
+-1.6966808323110097E-03
+-1.6936219544372972E-03
+-1.6905664238400853E-03
+-1.6875142409069120E-03
+-1.6844654048657193E-03
+-1.6814199142023052E-03
+-1.6783777680311170E-03
+-1.6753389665544217E-03
+-1.6723035101967531E-03
+-1.6692713999524357E-03
+-1.6662426368823937E-03
+-1.6632172202268513E-03
+-1.6601951477066921E-03
+-1.6571764179531664E-03
+-1.6541610317197483E-03
+-1.6511489899806080E-03
+-1.6481402932865591E-03
+-1.6451349419804120E-03
+-1.6421329354283276E-03
+-1.6391342719431726E-03
+-1.6361389502675162E-03
+-1.6331469705559687E-03
+-1.6301583332541797E-03
+-1.6271730391134948E-03
+-1.6241910890189557E-03
+-1.6212124825525107E-03
+-1.6182372174778092E-03
+-1.6152652920124902E-03
+-1.6122967066767720E-03
+-1.6093314625147907E-03
+-1.6063695600749173E-03
+-1.6034109995559580E-03
+-1.6004557804143204E-03
+-1.5975039007753268E-03
+-1.5945553589863442E-03
+-1.5916101552940474E-03
+-1.5886682905485181E-03
+-1.5857297652781632E-03
+-1.5827945797224398E-03
+-1.5798627335247692E-03
+-1.5769342249395499E-03
+-1.5740090522482727E-03
+-1.5710872153530590E-03
+-1.5681687148520489E-03
+-1.5652535512027967E-03
+-1.5623417246979471E-03
+-1.5594332351587905E-03
+-1.5565280809547823E-03
+-1.5536262603163590E-03
+-1.5507277728962602E-03
+-1.5478326191512865E-03
+-1.5449407994964073E-03
+-1.5420523142709629E-03
+-1.5391671634388201E-03
+-1.5362853454126807E-03
+-1.5334068582892727E-03
+-1.5305317014373419E-03
+-1.5276598751602004E-03
+-1.5247913798411665E-03
+-1.5219262159764714E-03
+-1.5190643837697541E-03
+-1.5162058817018377E-03
+-1.5133507077059779E-03
+-1.5104988608829919E-03
+-1.5076503414410958E-03
+-1.5048051496836894E-03
+-1.5019632860448853E-03
+-1.4991247507532674E-03
+-1.4962895423070548E-03
+-1.4934576584415315E-03
+-1.4906290981480639E-03
+-1.4878038619587941E-03
+-1.4849819503815450E-03
+-1.4821633635259985E-03
+-1.4793481013122918E-03
+-1.4765361625358835E-03
+-1.4737275453237130E-03
+-1.4709222484467043E-03
+-1.4681202717093402E-03
+-1.4653216151260153E-03
+-1.4625262792458842E-03
+-1.4597342646562742E-03
+-1.4569455702207680E-03
+-1.4541601934611749E-03
+-1.4513781327458713E-03
+-1.4485993882626593E-03
+-1.4458239603954840E-03
+-1.4430518493557846E-03
+-1.4402830552422878E-03
+-1.4375175770324170E-03
+-1.4347554125737013E-03
+-1.4319965602380207E-03
+-1.4292410199567463E-03
+-1.4264887919263074E-03
+-1.4237398763664033E-03
+-1.4209942734809064E-03
+-1.4182519824070914E-03
+-1.4155130008941079E-03
+-1.4127773270770495E-03
+-1.4100449608236089E-03
+-1.4073159023846378E-03
+-1.4045901519126847E-03
+-1.4018677094860183E-03
+-1.3991485743434107E-03
+-1.3964327443097941E-03
+-1.3937202174327881E-03
+-1.3910109934987503E-03
+-1.3883050728048939E-03
+-1.3856024553928162E-03
+-1.3829031410883745E-03
+-1.3802071291256241E-03
+-1.3775144174492490E-03
+-1.3748250040789599E-03
+-1.3721388886487388E-03
+-1.3694560714330401E-03
+-1.3667765524987018E-03
+-1.3641003316875009E-03
+-1.3614274083600334E-03
+-1.3587577805089352E-03
+-1.3560914460307124E-03
+-1.3534284041776098E-03
+-1.3507686549184819E-03
+-1.3481121983087590E-03
+-1.3454590345149554E-03
+-1.3428091632643870E-03
+-1.3401625825464674E-03
+-1.3375192900337543E-03
+-1.3348792847268885E-03
+-1.3322425665372288E-03
+-1.3296091354370984E-03
+-1.3269789914764887E-03
+-1.3243521344030050E-03
+-1.3217285623469065E-03
+-1.3191082729769230E-03
+-1.3164912651448251E-03
+-1.3138775387503316E-03
+-1.3112670937388984E-03
+-1.3086599300784338E-03
+-1.3060560475146180E-03
+-1.3034554442048500E-03
+-1.3008581176642792E-03
+-1.2982640665982763E-03
+-1.2956732910744022E-03
+-1.2930857911437282E-03
+-1.2905015665737999E-03
+-1.2879206169609694E-03
+-1.2853429407740570E-03
+-1.2827685358595394E-03
+-1.2801974006866649E-03
+-1.2776295346542596E-03
+-1.2750649373515985E-03
+-1.2725036088507182E-03
+-1.2699455492399116E-03
+-1.2673907570910222E-03
+-1.2648392298750478E-03
+-1.2622909657480797E-03
+-1.2597459642292494E-03
+-1.2572042250558156E-03
+-1.2546657483221155E-03
+-1.2521305341733587E-03
+-1.2495985812344529E-03
+-1.2470698866993211E-03
+-1.2445444484380423E-03
+-1.2420222661653423E-03
+-1.2395033398527159E-03
+-1.2369876692488473E-03
+-1.2344752539753564E-03
+-1.2319660928231896E-03
+-1.2294601835744483E-03
+-1.2269575243293062E-03
+-1.2244581144565932E-03
+-1.2219619535884757E-03
+-1.2194690413381167E-03
+-1.2169793772966403E-03
+-1.2144929603910149E-03
+-1.2120097885041361E-03
+-1.2095298596717628E-03
+-1.2070531730251164E-03
+-1.2045797280164346E-03
+-1.2021095243148713E-03
+-1.1996425617533078E-03
+-1.1971788394480834E-03
+-1.1947183550382126E-03
+-1.1922611062195514E-03
+-1.1898070921214448E-03
+-1.1873563124084453E-03
+-1.1849087667636046E-03
+-1.1824644548866987E-03
+-1.1800233759046888E-03
+-1.1775855273968253E-03
+-1.1751509068812845E-03
+-1.1727195134978953E-03
+-1.1702913471740575E-03
+-1.1678664075201143E-03
+-1.1654446937290957E-03
+-1.1630262047152378E-03
+-1.1606109384905714E-03
+-1.1581988929477327E-03
+-1.1557900669350201E-03
+-1.1533844599126519E-03
+-1.1509820714099594E-03
+-1.1485829010554750E-03
+-1.1461869481620233E-03
+-1.1437942104770933E-03
+-1.1414046853568695E-03
+-1.1390183714809505E-03
+-1.1366352686230561E-03
+-1.1342553764301928E-03
+-1.1318786941998452E-03
+-1.1295052210155622E-03
+-1.1271349548725408E-03
+-1.1247678933672936E-03
+-1.1224040350206455E-03
+-1.1200433793408327E-03
+-1.1176859258713906E-03
+-1.1153316741188150E-03
+-1.1129806234287665E-03
+-1.1106327717756313E-03
+-1.1082881164370634E-03
+-1.1059466556573329E-03
+-1.1036083890208514E-03
+-1.1012733161415099E-03
+-1.0989414363699265E-03
+-1.0966127489129372E-03
+-1.0942872519710252E-03
+-1.0919649430658485E-03
+-1.0896458203351605E-03
+-1.0873298830415166E-03
+-1.0850171305566245E-03
+-1.0827075622135052E-03
+-1.0804011772867078E-03
+-1.0780979742010444E-03
+-1.0757979506348058E-03
+-1.0735011046727561E-03
+-1.0712074354109317E-03
+-1.0689169420909379E-03
+-1.0666296239622362E-03
+-1.0643454802521271E-03
+-1.0620645094415457E-03
+-1.0597867091642205E-03
+-1.0575120773400892E-03
+-1.0552406129183739E-03
+-1.0529723150793349E-03
+-1.0507071833136526E-03
+-1.0484452172652566E-03
+-1.0461864155225213E-03
+-1.0439307751224792E-03
+-1.0416782934200889E-03
+-1.0394289696004932E-03
+-1.0371828033037239E-03
+-1.0349397939071979E-03
+-1.0326999405927575E-03
+-1.0304632419720226E-03
+-1.0282296955771274E-03
+-1.0259992990177104E-03
+-1.0237720510094636E-03
+-1.0215479506613268E-03
+-1.0193269973054809E-03
+-1.0171091904811504E-03
+-1.0148945290651026E-03
+-1.0126830102551269E-03
+-1.0104746312245144E-03
+-1.0082693909135988E-03
+-1.0060672890564353E-03
+-1.0038683249575272E-03
+-1.0016724973973569E-03
+-9.9947980489764545E-04
+-9.9729024522385735E-04
+-9.9510381606777065E-04
+-9.9292051599355626E-04
+-9.9074034408661677E-04
+-9.8856329949765457E-04
+-9.8638938146861999E-04
+-9.8421858894938517E-04
+-9.8205091955434493E-04
+-9.7988637059753065E-04
+-9.7772494046210350E-04
+-9.7556662835711155E-04
+-9.7341143348224617E-04
+-9.7125935497444017E-04
+-9.6911039176373888E-04
+-9.6696454158736692E-04
+-9.6482180177938381E-04
+-9.6268217055772037E-04
+-9.6054564702212266E-04
+-9.5841223030425468E-04
+-9.5628191951910833E-04
+-9.5415471364126839E-04
+-9.5203061052265509E-04
+-9.4990960748705174E-04
+-9.4779170259661871E-04
+-9.4567689486789550E-04
+-9.4356518338307245E-04
+-9.4145656723437657E-04
+-9.3935104542415332E-04
+-9.3724861590521247E-04
+-9.3514927597172228E-04
+-9.3305302353517922E-04
+-9.3095985755342408E-04
+-9.2886977708307879E-04
+-9.2678278117921834E-04
+-9.2469886883954811E-04
+-9.2261803811888744E-04
+-9.2054028629926952E-04
+-9.1846561115086227E-04
+-9.1639401155599863E-04
+-9.1432548654352553E-04
+-9.1226003514442342E-04
+-9.1019765635769103E-04
+-9.0813834834033397E-04
+-9.0608210835663530E-04
+-9.0402893403460506E-04
+-9.0197882417072516E-04
+-8.9993177777006458E-04
+-8.9788779383856421E-04
+-8.9584687136599211E-04
+-8.9380900861345063E-04
+-8.9177420284419339E-04
+-8.8974245156490494E-04
+-8.8771375349169378E-04
+-8.8568810762662661E-04
+-8.8366551292491245E-04
+-8.8164596830366047E-04
+-8.7962947211071255E-04
+-8.7761602168357324E-04
+-8.7560561447141624E-04
+-8.7359824903160150E-04
+-8.7159392427786436E-04
+-8.6959263914987038E-04
+-8.6759439260793928E-04
+-8.6559918311704235E-04
+-8.6360700798832827E-04
+-8.6161786453339405E-04
+-8.5963175120395985E-04
+-8.5764866693479149E-04
+-8.5566861063910565E-04
+-8.5369158120364669E-04
+-8.5171757715013670E-04
+-8.4974659588053119E-04
+-8.4777863468618207E-04
+-8.4581369185552572E-04
+-8.4385176623166390E-04
+-8.4189285668736396E-04
+-8.3993696212996956E-04
+-8.3798408117866866E-04
+-8.3603421125512444E-04
+-8.3408734954480257E-04
+-8.3214349421076241E-04
+-8.3020264412113083E-04
+-8.2826479814028021E-04
+-8.2632995509585689E-04
+-8.2439811361083738E-04
+-8.2246927120001561E-04
+-8.2054342503912095E-04
+-8.1862057314791145E-04
+-8.1670071433262263E-04
+-8.1478384741856525E-04
+-8.1286997120391463E-04
+-8.1095908434427049E-04
+-8.0905118445775352E-04
+-8.0714626871321261E-04
+-8.0524433498168116E-04
+-8.0334538198051429E-04
+-8.0144940848626172E-04
+-7.9955641330542644E-04
+-7.9766639515213404E-04
+-7.9577935171659382E-04
+-7.9389528009257801E-04
+-7.9201417800101590E-04
+-7.9013604414967088E-04
+-7.8826087732001941E-04
+-7.8638867624277061E-04
+-7.8451943957775605E-04
+-7.8265316513663192E-04
+-7.8078985008289844E-04
+-7.7892949203814627E-04
+-7.7707208958484764E-04
+-7.7521764142558878E-04
+-7.7336614628736790E-04
+-7.7151760287129704E-04
+-7.6967200908971260E-04
+-7.6782936207382647E-04
+-7.6598965930583726E-04
+-7.6415289929201904E-04
+-7.6231908071090976E-04
+-7.6048820227047936E-04
+-7.5866026267448652E-04
+-7.5683525993353485E-04
+-7.5501319117188314E-04
+-7.5319405375608584E-04
+-7.5137784611701468E-04
+-7.4956456692187238E-04
+-7.4775421484385202E-04
+-7.4594678855201995E-04
+-7.4414228614186621E-04
+-7.4234070475893098E-04
+-7.4054204168251027E-04
+-7.3874629525131784E-04
+-7.3695346411765169E-04
+-7.3516354692339193E-04
+-7.3337654229938399E-04
+-7.3159244841629150E-04
+-7.2981126245033482E-04
+-7.2803298160812615E-04
+-7.2625760412123287E-04
+-7.2448512862450241E-04
+-7.2271555373676398E-04
+-7.2094887805852954E-04
+-7.1918509983196226E-04
+-7.1742421627900516E-04
+-7.1566622454892535E-04
+-7.1391112273821577E-04
+-7.1215890943369172E-04
+-7.1040958322515595E-04
+-7.0866314270083921E-04
+-7.0691958617541276E-04
+-7.0517891092241691E-04
+-7.0344111403826328E-04
+-7.0170619349009251E-04
+-6.9997414783130743E-04
+-6.9824497562341852E-04
+-6.9651867542295349E-04
+-6.9479524558810324E-04
+-6.9307468346733634E-04
+-6.9135698613039269E-04
+-6.8964215141934491E-04
+-6.8793017784847749E-04
+-6.8622106394756360E-04
+-6.8451480823030766E-04
+-6.8281140907155979E-04
+-6.8111086390391495E-04
+-6.7941316978575210E-04
+-6.7771832443494083E-04
+-6.7602632631097957E-04
+-6.7433717391350220E-04
+-6.7265086574449422E-04
+-6.7096740021124258E-04
+-6.6928677481756075E-04
+-6.6760898657964966E-04
+-6.6593403308921157E-04
+-6.6426191277988204E-04
+-6.6259262414658298E-04
+-6.6092616566482240E-04
+-6.5926253574364517E-04
+-6.5760173196319736E-04
+-6.5594375131363650E-04
+-6.5428859126211148E-04
+-6.5263625019898984E-04
+-6.5098672660784647E-04
+-6.4934001892295173E-04
+-6.4769612552651368E-04
+-6.4605504409256389E-04
+-6.4441677164040899E-04
+-6.4278130554341114E-04
+-6.4114864411148780E-04
+-6.3951878579277335E-04
+-6.3789172900560905E-04
+-6.3626747213572270E-04
+-6.3464601294627241E-04
+-6.3302734845711709E-04
+-6.3141147593854217E-04
+-6.2979839362592037E-04
+-6.2818809994727052E-04
+-6.2658059327870856E-04
+-6.2497587195759928E-04
+-6.2337393383469857E-04
+-6.2177477600977289E-04
+-6.2017839571535131E-04
+-6.1858479104939085E-04
+-6.1699396034924179E-04
+-6.1540590198002850E-04
+-6.1382061432487098E-04
+-6.1223809532634196E-04
+-6.1065834203976081E-04
+-6.0908135157442922E-04
+-6.0750712198612484E-04
+-6.0593565167407488E-04
+-6.0436693897847240E-04
+-6.0280098218025424E-04
+-6.0123777925046517E-04
+-5.9967732734655000E-04
+-5.9811962359058394E-04
+-5.9656466589003533E-04
+-5.9501245253122540E-04
+-5.9346298181855582E-04
+-5.9191625207631160E-04
+-5.9037226137615209E-04
+-5.8883100689535327E-04
+-5.8729248568098545E-04
+-5.8575669552695666E-04
+-5.8422363469663795E-04
+-5.8269330148323672E-04
+-5.8116569421710548E-04
+-5.7964081103081930E-04
+-5.7811864910742663E-04
+-5.7659920539653443E-04
+-5.7508247760101568E-04
+-5.7356846403593478E-04
+-5.7205716300529140E-04
+-5.7054857275111762E-04
+-5.6904269137719526E-04
+-5.6753951615951773E-04
+-5.6603904407460384E-04
+-5.6454127271761043E-04
+-5.6304620033306350E-04
+-5.6155382518321864E-04
+-5.6006414549353810E-04
+-5.5857715939448935E-04
+-5.5709286424689380E-04
+-5.5561125702763086E-04
+-5.5413233522596378E-04
+-5.5265609702900072E-04
+-5.5118254066871747E-04
+-5.4971166435941301E-04
+-5.4824346625174502E-04
+-5.4677794376949661E-04
+-5.4531509385505783E-04
+-5.4385491388408665E-04
+-5.4239740200849758E-04
+-5.4094255645561649E-04
+-5.3949037543635702E-04
+-5.3804085711887148E-04
+-5.3659399899639605E-04
+-5.3514979797978442E-04
+-5.3370825133329362E-04
+-5.3226935717710943E-04
+-5.3083311374225669E-04
+-5.2939951919901305E-04
+-5.2796857167270253E-04
+-5.2654026873743751E-04
+-5.2511460735263143E-04
+-5.2369158471826400E-04
+-5.2227119886365692E-04
+-5.2085344797115761E-04
+-5.1943833018586909E-04
+-5.1802584362328991E-04
+-5.1661598594419131E-04
+-5.1520875415428120E-04
+-5.1380414540089226E-04
+-5.1240215761358030E-04
+-5.1100278892061317E-04
+-5.0960603745223143E-04
+-5.0821190133639815E-04
+-5.0682037830949848E-04
+-5.0543146537454693E-04
+-5.0404515959603946E-04
+-5.0266145881282937E-04
+-5.0128036112785971E-04
+-4.9990186467496669E-04
+-4.9852596761526308E-04
+-4.9715266776861715E-04
+-4.9578196211396916E-04
+-4.9441384761485588E-04
+-4.9304832205781884E-04
+-4.9168538359661775E-04
+-4.9032503033584625E-04
+-4.8896726031959692E-04
+-4.8761207136765778E-04
+-4.8625946057993872E-04
+-4.8490942497286723E-04
+-4.8356196220692094E-04
+-4.8221707032021185E-04
+-4.8087474738075565E-04
+-4.7953499149511669E-04
+-4.7819780058329223E-04
+-4.7686317173700537E-04
+-4.7553110186717687E-04
+-4.7420158854419997E-04
+-4.7287462983906656E-04
+-4.7155022382875468E-04
+-4.7022836857724685E-04
+-4.6890906201361586E-04
+-4.6759230128505129E-04
+-4.6627808328132572E-04
+-4.6496640548350309E-04
+-4.6365726595225297E-04
+-4.6235066275123593E-04
+-4.6104659388813854E-04
+-4.5974505727741915E-04
+-4.5844605016215941E-04
+-4.5714956947638484E-04
+-4.5585561260680162E-04
+-4.5456417751473042E-04
+-4.5327526220754393E-04
+-4.5198886472488611E-04
+-4.5070498305072309E-04
+-4.4942361447109972E-04
+-4.4814475584248716E-04
+-4.4686840444834239E-04
+-4.4559455828167870E-04
+-4.4432321538654366E-04
+-4.4305437373854751E-04
+-4.4178803125885643E-04
+-4.4052418531402289E-04
+-4.3926283282415604E-04
+-4.3800397101075061E-04
+-4.3674759776626175E-04
+-4.3549371106865850E-04
+-4.3424230889099427E-04
+-4.3299338918430052E-04
+-4.3174694940068626E-04
+-4.3050298647250647E-04
+-4.2926149754721063E-04
+-4.2802248044677299E-04
+-4.2678593311341553E-04
+-4.2555185350965329E-04
+-4.2432023959782737E-04
+-4.2309108889617965E-04
+-4.2186439832538172E-04
+-4.2064016495391203E-04
+-4.1941838656364266E-04
+-4.1819906110393117E-04
+-4.1698218652373216E-04
+-4.1576776076736197E-04
+-4.1455578140791975E-04
+-4.1334624537083496E-04
+-4.1213914965833678E-04
+-4.1093449198723292E-04
+-4.0973227029870134E-04
+-4.0853248253257853E-04
+-4.0733512662620685E-04
+-4.0614020021435571E-04
+-4.0494770024127231E-04
+-4.0375762365779563E-04
+-4.0256996811169598E-04
+-4.0138473154030350E-04
+-4.0020191186409577E-04
+-3.9902150698362267E-04
+-3.9784351457080653E-04
+-3.9666793161031294E-04
+-3.9549475502716929E-04
+-3.9432398239698665E-04
+-3.9315561164977869E-04
+-3.9198964068661078E-04
+-3.9082606736192131E-04
+-3.8966488937020190E-04
+-3.8850610377512000E-04
+-3.8734970752139981E-04
+-3.8619569808575390E-04
+-3.8504407332206171E-04
+-3.8389483110317729E-04
+-3.8274796932239699E-04
+-3.8160348574576609E-04
+-3.8046137743841685E-04
+-3.7932164125714532E-04
+-3.7818427460572845E-04
+-3.7704927538868268E-04
+-3.7591664149715619E-04
+-3.7478637074457637E-04
+-3.7365846085522103E-04
+-3.7253290898469097E-04
+-3.7140971204846355E-04
+-3.7028886737590827E-04
+-3.6917037278629385E-04
+-3.6805422612472402E-04
+-3.6694042522857464E-04
+-3.6582896787735818E-04
+-3.6471985127925428E-04
+-3.6361307231601298E-04
+-3.6250862822244145E-04
+-3.6140651677850014E-04
+-3.6030673581327561E-04
+-3.5920928316978551E-04
+-3.5811415665699600E-04
+-3.5702135353443519E-04
+-3.5593087064937439E-04
+-3.5484270515484702E-04
+-3.5375685483170709E-04
+-3.5267331752854346E-04
+-3.5159209105669958E-04
+-3.5051317319311994E-04
+-3.4943656125499821E-04
+-3.4836225211227117E-04
+-3.4729024285700999E-04
+-3.4622053121023791E-04
+-3.4515311499318973E-04
+-3.4408799201725412E-04
+-3.4302516007775233E-04
+-3.4196461655844167E-04
+-3.4090635832609100E-04
+-3.3985038240306082E-04
+-3.3879668646663640E-04
+-3.3774526833402847E-04
+-3.3669612579712574E-04
+-3.3564925662729796E-04
+-3.3460465826566931E-04
+-3.3356232761656758E-04
+-3.3252226166902577E-04
+-3.3148445803567189E-04
+-3.3044891450905643E-04
+-3.2941562885961456E-04
+-3.2838459883847320E-04
+-3.2735582193706516E-04
+-3.2632929509678516E-04
+-3.2530501528267098E-04
+-3.2428298004824428E-04
+-3.2326318717348641E-04
+-3.2224563441291974E-04
+-3.2123031949392279E-04
+-3.2021723994563522E-04
+-3.1920639274586951E-04
+-3.1819777483862701E-04
+-3.1719138369833318E-04
+-3.1618721706906915E-04
+-3.1518527269959554E-04
+-3.1418554834208298E-04
+-3.1318804158694873E-04
+-3.1219274942003258E-04
+-3.1119966872952966E-04
+-3.1020879692518721E-04
+-3.0922013176155183E-04
+-3.0823367098425637E-04
+-3.0724941231281534E-04
+-3.0626735335186962E-04
+-3.0528749114448495E-04
+-3.0430982258378684E-04
+-3.0333434500845116E-04
+-3.0236105613815870E-04
+-3.0138995369737601E-04
+-3.0042103539354448E-04
+-2.9945429885407706E-04
+-2.9848974118176525E-04
+-2.9752735927578389E-04
+-2.9656715040675185E-04
+-2.9560911225564169E-04
+-2.9465324252478901E-04
+-2.9369953891721003E-04
+-2.9274799908142051E-04
+-2.9179862015906084E-04
+-2.9085139902378863E-04
+-2.8990633288356147E-04
+-2.8896341942637318E-04
+-2.8802265636709959E-04
+-2.8708404138127065E-04
+-2.8614757210157856E-04
+-2.8521324572712217E-04
+-2.8428105915410040E-04
+-2.8335100953655226E-04
+-2.8242309451737745E-04
+-2.8149731178726595E-04
+-2.8057365900935007E-04
+-2.7965213381830103E-04
+-2.7873273347308849E-04
+-2.7781545489142238E-04
+-2.7690029517906940E-04
+-2.7598725192821939E-04
+-2.7507632280280626E-04
+-2.7416750546250038E-04
+-2.7326079755452833E-04
+-2.7235619639585354E-04
+-2.7145369891593381E-04
+-2.7055330217089875E-04
+-2.6965500369558788E-04
+-2.6875880112415347E-04
+-2.6786469212323219E-04
+-2.6697267437279397E-04
+-2.6608274524344839E-04
+-2.6519490163610167E-04
+-2.6430914053838270E-04
+-2.6342545948015680E-04
+-2.6254385613541377E-04
+-2.6166432815306792E-04
+-2.6078687316143052E-04
+-2.5991148855887807E-04
+-2.5903817129064053E-04
+-2.5816691833276367E-04
+-2.5729772714673798E-04
+-2.5643059536860992E-04
+-2.5556552064409595E-04
+-2.5470250062763829E-04
+-2.5384153277649440E-04
+-2.5298261403496687E-04
+-2.5212574132888962E-04
+-2.5127091208502366E-04
+-2.5041812396628740E-04
+-2.4956737460965196E-04
+-2.4871866161790075E-04
+-2.4787198245737504E-04
+-2.4702733413070491E-04
+-2.4618471357910595E-04
+-2.4534411816644472E-04
+-2.4450554551720812E-04
+-2.4366899325069626E-04
+-2.4283445897158734E-04
+-2.4200194018444735E-04
+-2.4117143393709935E-04
+-2.4034293716829959E-04
+-2.3951644717873640E-04
+-2.3869196155821824E-04
+-2.3786947790800430E-04
+-2.3704899383650253E-04
+-2.3623050688035917E-04
+-2.3541401412390675E-04
+-2.3459951249100967E-04
+-2.3378699922799198E-04
+-2.3297647191380345E-04
+-2.3216792814802892E-04
+-2.3136136554525091E-04
+-2.3055678166863773E-04
+-2.2975417362208680E-04
+-2.2895353828513839E-04
+-2.2815487284842659E-04
+-2.2735817491861338E-04
+-2.2656344211947611E-04
+-2.2577067203151510E-04
+-2.2497986219375849E-04
+-2.2419100977002737E-04
+-2.2340411168025984E-04
+-2.2261916507002207E-04
+-2.2183616748128380E-04
+-2.2105511649729898E-04
+-2.2027600971148969E-04
+-2.1949884469967971E-04
+-2.1872361867548027E-04
+-2.1795032854545306E-04
+-2.1717897140423610E-04
+-2.1640954479247996E-04
+-2.1564204630835352E-04
+-2.1487647352632792E-04
+-2.1411282400001218E-04
+-2.1335109497944236E-04
+-2.1259128338199792E-04
+-2.1183338626121670E-04
+-2.1107740112705003E-04
+-2.1032332557292062E-04
+-2.0957115718141169E-04
+-2.0882089352361992E-04
+-2.0807253190181422E-04
+-2.0732606923773357E-04
+-2.0658150254110729E-04
+-2.0583882928685380E-04
+-2.0509804706358883E-04
+-2.0435915343308778E-04
+-2.0362214593631632E-04
+-2.0288702191304751E-04
+-2.0215377833378216E-04
+-2.0142241221021085E-04
+-2.0069292098578913E-04
+-1.9996530224544056E-04
+-1.9923955353399114E-04
+-1.9851567235943071E-04
+-1.9779365608700361E-04
+-1.9707350174099869E-04
+-1.9635520634304261E-04
+-1.9563876725954844E-04
+-1.9492418200957022E-04
+-1.9421144814433375E-04
+-1.9350056325177965E-04
+-1.9279152477511268E-04
+-1.9208432968828573E-04
+-1.9137897491488268E-04
+-1.9067545781015338E-04
+-1.8997377597692428E-04
+-1.8927392698160614E-04
+-1.8857590833120053E-04
+-1.8787971744206437E-04
+-1.8718535136403986E-04
+-1.8649280707253049E-04
+-1.8580208187847641E-04
+-1.8511317334290360E-04
+-1.8442607900733313E-04
+-1.8374079636326036E-04
+-1.8305732284115193E-04
+-1.8237565555436118E-04
+-1.8169579151466880E-04
+-1.8101772797946748E-04
+-1.8034146244275893E-04
+-1.7966699241843650E-04
+-1.7899431544695054E-04
+-1.7832342902561460E-04
+-1.7765433028189761E-04
+-1.7698701617631105E-04
+-1.7632148391061531E-04
+-1.7565773098737739E-04
+-1.7499575493451391E-04
+-1.7433555330254334E-04
+-1.7367712361304613E-04
+-1.7302046302071277E-04
+-1.7236556845860157E-04
+-1.7171243708073673E-04
+-1.7106106640151923E-04
+-1.7041145396303034E-04
+-1.6976359728500259E-04
+-1.6911749386224113E-04
+-1.6847314089913105E-04
+-1.6783053537049040E-04
+-1.6718967441414797E-04
+-1.6655055552293373E-04
+-1.6591317623033345E-04
+-1.6527753404498496E-04
+-1.6464362645577020E-04
+-1.6401145070459397E-04
+-1.6338100378058876E-04
+-1.6275228279253714E-04
+-1.6212528521151285E-04
+-1.6150000856791468E-04
+-1.6087645036915525E-04
+-1.6025460810592556E-04
+-1.5963447905907241E-04
+-1.5901606023217460E-04
+-1.5839934870834352E-04
+-1.5778434193357673E-04
+-1.5717103743559250E-04
+-1.5655943272090050E-04
+-1.5594952527997019E-04
+-1.5534131242985811E-04
+-1.5473479119087249E-04
+-1.5412995862614458E-04
+-1.5352681215395820E-04
+-1.5292534930060343E-04
+-1.5232556756901699E-04
+-1.5172746444176767E-04
+-1.5113103727101983E-04
+-1.5053628311824784E-04
+-1.4994319904955777E-04
+-1.4935178242505803E-04
+-1.4876203072597031E-04
+-1.4817394146063705E-04
+-1.4758751216647511E-04
+-1.4700274025588594E-04
+-1.4641962276675018E-04
+-1.4583815670456661E-04
+-1.4525833940948158E-04
+-1.4468016840089065E-04
+-1.4410364119543000E-04
+-1.4352875530344864E-04
+-1.4295550814705246E-04
+-1.4238389680123025E-04
+-1.4181391827879384E-04
+-1.4124556989776938E-04
+-1.4067884918849175E-04
+-1.4011375366420416E-04
+-1.3955028079902238E-04
+-1.3898842800885375E-04
+-1.3842819242296299E-04
+-1.3786957108830633E-04
+-1.3731256128860059E-04
+-1.3675716052055810E-04
+-1.3620336628502835E-04
+-1.3565117607459764E-04
+-1.3510058733857155E-04
+-1.3455159722421546E-04
+-1.3400420275436713E-04
+-1.3345840118259266E-04
+-1.3291419003071424E-04
+-1.3237156681992276E-04
+-1.3183052902172835E-04
+-1.3129107407282661E-04
+-1.3075319916227245E-04
+-1.3021690134072312E-04
+-1.2968217783189452E-04
+-1.2914902612147085E-04
+-1.2861744371457553E-04
+-1.2808742810744715E-04
+-1.2755897677596095E-04
+-1.2703208694107149E-04
+-1.2650675563597759E-04
+-1.2598298004491164E-04
+-1.2546075765542677E-04
+-1.2494008598595063E-04
+-1.2442096253115049E-04
+-1.2390338476685799E-04
+-1.2338734994698898E-04
+-1.2287285511335496E-04
+-1.2235989742375578E-04
+-1.2184847435513384E-04
+-1.2133858343242291E-04
+-1.2083022216173021E-04
+-1.2032338803449838E-04
+-1.1981807833811492E-04
+-1.1931429010814289E-04
+-1.1881202046632427E-04
+-1.1831126688108269E-04
+-1.1781202689160460E-04
+-1.1731429800465517E-04
+-1.1681807770473547E-04
+-1.1632336331323414E-04
+-1.1583015189139841E-04
+-1.1533844055106407E-04
+-1.1484822674120293E-04
+-1.1435950800354409E-04
+-1.1387228182797149E-04
+-1.1338654566284691E-04
+-1.1290229686232034E-04
+-1.1241953258661576E-04
+-1.1193825000349261E-04
+-1.1145844647571986E-04
+-1.1098011944222381E-04
+-1.1050326639421145E-04
+-1.1002788487582048E-04
+-1.0955397231953332E-04
+-1.0908152584477611E-04
+-1.0861054254962674E-04
+-1.0814101979943245E-04
+-1.0767295509281828E-04
+-1.0720634592622305E-04
+-1.0674118979190952E-04
+-1.0627748411461539E-04
+-1.0581522607309551E-04
+-1.0535441280746655E-04
+-1.0489504166436357E-04
+-1.0443711012464600E-04
+-1.0398061567486355E-04
+-1.0352555580738294E-04
+-1.0307192796561097E-04
+-1.0261972935021965E-04
+-1.0216895709848116E-04
+-1.0171960853372762E-04
+-1.0127168113570135E-04
+-1.0082517239891865E-04
+-1.0038007983998224E-04
+-9.9936400938213375E-05
+-9.9494132906691966E-05
+-9.9053272857357533E-05
+-9.8613818087263540E-05
+-9.8175766094397963E-05
+-9.7739114386447844E-05
+-9.7303860470057579E-05
+-9.6870001826171117E-05
+-9.6437535704238549E-05
+-9.6006459233682591E-05
+-9.5576769694117545E-05
+-9.5148464576919447E-05
+-9.4721541389411007E-05
+-9.4295997639531971E-05
+-9.3871830819186475E-05
+-9.3449038212800863E-05
+-9.3027616962455519E-05
+-9.2607564329673083E-05
+-9.2188877798169769E-05
+-9.1771554875953439E-05
+-9.1355593075146850E-05
+-9.0940989899375760E-05
+-9.0527742665593786E-05
+-9.0115848524168098E-05
+-8.9705304719447926E-05
+-8.9296108733480519E-05
+-8.8888258082405402E-05
+-8.8481750278725279E-05
+-8.8076582828182704E-05
+-8.7672753080233898E-05
+-8.7270258204160767E-05
+-8.6869095434010044E-05
+-8.6469262239666995E-05
+-8.6070756137398457E-05
+-8.5673574643365611E-05
+-8.5277715271248958E-05
+-8.4883175403694723E-05
+-8.4489952228054610E-05
+-8.4098042970765137E-05
+-8.3707445090301993E-05
+-8.3318156106277648E-05
+-8.2930173537587492E-05
+-8.2543494901715094E-05
+-8.2158117610207226E-05
+-8.1774038869246099E-05
+-8.1391255901011719E-05
+-8.1009766151732669E-05
+-8.0629567146383991E-05
+-8.0250656408719384E-05
+-7.9873031461041264E-05
+-7.9496689742319018E-05
+-7.9121628479389804E-05
+-7.8747844893158701E-05
+-7.8375336415022204E-05
+-7.8004100574047199E-05
+-7.7634134898352724E-05
+-7.7265436914229906E-05
+-7.6898004085271870E-05
+-7.6531833663241131E-05
+-7.6166922872991435E-05
+-7.5803269130449256E-05
+-7.5440869967317772E-05
+-7.5079722916015913E-05
+-7.4719825507536949E-05
+-7.4361175226774566E-05
+-7.4003769350304319E-05
+-7.3647605106996446E-05
+-7.3292679899443199E-05
+-7.2938991266561387E-05
+-7.2586536747072189E-05
+-7.2235313871708913E-05
+-7.1885320139056399E-05
+-7.1536552857700186E-05
+-7.1189009270784524E-05
+-7.0842686766117171E-05
+-7.0497582878105211E-05
+-7.0153695147741430E-05
+-6.9811021116202346E-05
+-6.9469558302640849E-05
+-6.9129304042733164E-05
+-6.8790255584401622E-05
+-6.8452410302238164E-05
+-6.8115765737169088E-05
+-6.7780319439197877E-05
+-6.7446068950581224E-05
+-6.7113011798210960E-05
+-6.6781145350585636E-05
+-6.6450466875187140E-05
+-6.6120973737073514E-05
+-6.5792663469392174E-05
+-6.5465533622337789E-05
+-6.5139581749965530E-05
+-6.4814805398719932E-05
+-6.4491201965929633E-05
+-6.4168768724768018E-05
+-6.3847503028357087E-05
+-6.3527402415133121E-05
+-6.3208464447645472E-05
+-6.2890686683727108E-05
+-6.2574066674592213E-05
+-6.2258601846908396E-05
+-6.1944289493228246E-05
+-6.1631126962863393E-05
+-6.1319111790423191E-05
+-6.1008241543736309E-05
+-6.0698513786531597E-05
+-6.0389926078094229E-05
+-6.0082475874181693E-05
+-5.9776160486563903E-05
+-5.9470977263105561E-05
+-5.9166923734046478E-05
+-5.8863997473795132E-05
+-5.8562196052858314E-05
+-5.8261517038167946E-05
+-5.7961957913235905E-05
+-5.7663516011042767E-05
+-5.7366188681514172E-05
+-5.7069973445979672E-05
+-5.6774867881715606E-05
+-5.6480869567397459E-05
+-5.6187976082673152E-05
+-5.5896184939088405E-05
+-5.5605493487015541E-05
+-5.5315899077033134E-05
+-5.5027399226144493E-05
+-5.4739991523095012E-05
+-5.4453673554449203E-05
+-5.4168442903930884E-05
+-5.3884297104555674E-05
+-5.3601233530917684E-05
+-5.3319249542113043E-05
+-5.3038342648126672E-05
+-5.2758510444138203E-05
+-5.2479750524249720E-05
+-5.2202060479537806E-05
+-5.1925437864104195E-05
+-5.1649880078113663E-05
+-5.1375384490924324E-05
+-5.1101948604239373E-05
+-5.0829570016755501E-05
+-5.0558246330172053E-05
+-5.0287975147678794E-05
+-5.0018754045598328E-05
+-4.9750580448108791E-05
+-4.9483451731892094E-05
+-4.9217365392001710E-05
+-4.8952319035524326E-05
+-4.8688310273915256E-05
+-4.8425336718559107E-05
+-4.8163395962277682E-05
+-4.7902485456143793E-05
+-4.7642602588845598E-05
+-4.7383744850704326E-05
+-4.7125909856471598E-05
+-4.6869095227050252E-05
+-4.6613298578636061E-05
+-4.6358517514935520E-05
+-4.6104749517659530E-05
+-4.5851991996300355E-05
+-4.5600242439070173E-05
+-4.5349498460048813E-05
+-4.5099757685103111E-05
+-4.4851017743185896E-05
+-4.4603276256643429E-05
+-4.4356530733623289E-05
+-4.4110778593618488E-05
+-4.3866017320941566E-05
+-4.3622244538123878E-05
+-4.3379457884569290E-05
+-4.3137654998785987E-05
+-4.2896833514689727E-05
+-4.2656990967144633E-05
+-4.2418124791390423E-05
+-4.2180232471040295E-05
+-4.1943311632678892E-05
+-4.1707359926558412E-05
+-4.1472375000337781E-05
+-4.1238354498286656E-05
+-4.1005295982782159E-05
+-4.0773196909858228E-05
+-4.0542054767142460E-05
+-4.0311867181960410E-05
+-4.0082631813057188E-05
+-3.9854346318168196E-05
+-3.9627008353489414E-05
+-3.9400615507789196E-05
+-3.9175165256386466E-05
+-3.8950655091948919E-05
+-3.8727082643688731E-05
+-3.8504445581909351E-05
+-3.8282741574720851E-05
+-3.8061968288140905E-05
+-3.7842123335695784E-05
+-3.7623204215642547E-05
+-3.7405208429941003E-05
+-3.7188133604684794E-05
+-3.6971977415856146E-05
+-3.6756737542887825E-05
+-3.6542411668725228E-05
+-3.6328997433906501E-05
+-3.6116492355323922E-05
+-3.5904893940987709E-05
+-3.5694199818980407E-05
+-3.5484407680535016E-05
+-3.5275515216129813E-05
+-3.5067520114418231E-05
+-3.4860420034105630E-05
+-3.4654212518337466E-05
+-3.4448895090582308E-05
+-3.4244465379184963E-05
+-3.4040921084227180E-05
+-3.3838259906941418E-05
+-3.3636479548128232E-05
+-3.3435577687212527E-05
+-3.3235551892755416E-05
+-3.3036399702311098E-05
+-3.2838118744467980E-05
+-3.2640706728298292E-05
+-3.2444161366045407E-05
+-3.2248480370900135E-05
+-3.2053661441250356E-05
+-3.1859702170475133E-05
+-3.1666600109604985E-05
+-3.1474352888565643E-05
+-3.1282958227399016E-05
+-3.1092413851285625E-05
+-3.0902717486128829E-05
+-3.0713866848028358E-05
+-3.0525859556706285E-05
+-3.0338693179030462E-05
+-3.0152365347175085E-05
+-2.9966873790379788E-05
+-2.9782216245689616E-05
+-2.9598390450236240E-05
+-2.9415394135100471E-05
+-2.9233224947586118E-05
+-2.9051880474411062E-05
+-2.8871358352671933E-05
+-2.8691656318595554E-05
+-2.8512772120145331E-05
+-2.8334703508309594E-05
+-2.8157448231501230E-05
+-2.7981003963323751E-05
+-2.7805368307125286E-05
+-2.7630538904805456E-05
+-2.7456513502084295E-05
+-2.7283289860968171E-05
+-2.7110865745170844E-05
+-2.6939238917292069E-05
+-2.6768407076426389E-05
+-2.6598367844640813E-05
+-2.6429118871190449E-05
+-2.6260657911622543E-05
+-2.6092982743445290E-05
+-2.5926091141986189E-05
+-2.5759980880473987E-05
+-2.5594649682966329E-05
+-2.5430095196383093E-05
+-2.5266315082698557E-05
+-2.5103307101367028E-05
+-2.4941069039267007E-05
+-2.4779598686139564E-05
+-2.4618893833659839E-05
+-2.4458952231775997E-05
+-2.4299771544990490E-05
+-2.4141349443592245E-05
+-2.3983683695474181E-05
+-2.3826772104807836E-05
+-2.3670612475086736E-05
+-2.3515202609013071E-05
+-2.3360540278449698E-05
+-2.3206623172313405E-05
+-2.3053448976528913E-05
+-2.2901015465786051E-05
+-2.2749320458219390E-05
+-2.2598361770955338E-05
+-2.2448137219434714E-05
+-2.2298644596938850E-05
+-2.2149881617693889E-05
+-2.2001845984879973E-05
+-2.1854535478025756E-05
+-2.1707947925409070E-05
+-2.1562081157513013E-05
+-2.1416933007192877E-05
+-2.1272501291186318E-05
+-2.1128783747716244E-05
+-2.0985778095485246E-05
+-2.0843482120254760E-05
+-2.0701893663172096E-05
+-2.0561010569282352E-05
+-2.0420830688521419E-05
+-2.0281351859563270E-05
+-2.0142571843968358E-05
+-2.0004488374908643E-05
+-1.9867099245595305E-05
+-1.9730402313254335E-05
+-1.9594395439085908E-05
+-1.9459076486783244E-05
+-1.9324443312633822E-05
+-1.9190493703259590E-05
+-1.9057225410011905E-05
+-1.8924636235489668E-05
+-1.8792724053179960E-05
+-1.8661486741308662E-05
+-1.8530922176517156E-05
+-1.8401028230452493E-05
+-1.8271802717124157E-05
+-1.8143243411765755E-05
+-1.8015348126726264E-05
+-1.7888114741904016E-05
+-1.7761541145981359E-05
+-1.7635625236929457E-05
+-1.7510364912508156E-05
+-1.7385758011539052E-05
+-1.7261802321183784E-05
+-1.7138495661262496E-05
+-1.7015835931991300E-05
+-1.6893821044784819E-05
+-1.6772448909237580E-05
+-1.6651717432663499E-05
+-1.6531624478551530E-05
+-1.6412167860746439E-05
+-1.6293345414926938E-05
+-1.6175155052582725E-05
+-1.6057594699773448E-05
+-1.5940662282144805E-05
+-1.5824355724406020E-05
+-1.5708672914820527E-05
+-1.5593611688292535E-05
+-1.5479169893677264E-05
+-1.5365345455067079E-05
+-1.5252136315894952E-05
+-1.5139540418190755E-05
+-1.5027555702724214E-05
+-1.4916180083007877E-05
+-1.4805411420714742E-05
+-1.4695247583132324E-05
+-1.4585686500979825E-05
+-1.4476726127188395E-05
+-1.4368364421447751E-05
+-1.4260599349683038E-05
+-1.4153428853024225E-05
+-1.4046850810040626E-05
+-1.3940863098759008E-05
+-1.3835463665509022E-05
+-1.3730650487725661E-05
+-1.3626421542440013E-05
+-1.3522774806003563E-05
+-1.3419708238519243E-05
+-1.3317219746301980E-05
+-1.3215307230000117E-05
+-1.3113968647426947E-05
+-1.3013201990444616E-05
+-1.2913005252911556E-05
+-1.2813376431095597E-05
+-1.2714313509134479E-05
+-1.2615814416360916E-05
+-1.2517877070415809E-05
+-1.2420499441725019E-05
+-1.2323679541419522E-05
+-1.2227415381686553E-05
+-1.2131704974725145E-05
+-1.2036546324507321E-05
+-1.1941937385866494E-05
+-1.1847876097463319E-05
+-1.1754360443315460E-05
+-1.1661388452596143E-05
+-1.1568958155731265E-05
+-1.1477067581294949E-05
+-1.1385714752609358E-05
+-1.1294897652753160E-05
+-1.1204614246080452E-05
+-1.1114862529578577E-05
+-1.1025640542292068E-05
+-1.0936946328510642E-05
+-1.0848777941376101E-05
+-1.0761133432081750E-05
+-1.0674010807291256E-05
+-1.0587408045849778E-05
+-1.0501323157689281E-05
+-1.0415754205178978E-05
+-1.0330699255533089E-05
+-1.0246156375445611E-05
+-1.0162123629587775E-05
+-1.0078599051793785E-05
+-9.9955806506960192E-06
+-9.9130664552811632E-06
+-9.8310545403509203E-06
+-9.7495429876488905E-06
+-9.6685298849273988E-06
+-9.5880133211377926E-06
+-9.5079913551515735E-06
+-9.4284620140071931E-06
+-9.3494233410515213E-06
+-9.2708734307646031E-06
+-9.1928103870525355E-06
+-9.1152323166684440E-06
+-9.0381373272973191E-06
+-8.9615235027038153E-06
+-8.8853888939462348E-06
+-8.8097315626428172E-06
+-8.7345496198166521E-06
+-8.6598411885469491E-06
+-8.5856043949718196E-06
+-8.5118373670830932E-06
+-8.4385382138104176E-06
+-8.3657050102153365E-06
+-8.2933358370387189E-06
+-8.2214288219628325E-06
+-8.1499821078371120E-06
+-8.0789938404694542E-06
+-8.0084621681893208E-06
+-7.9383852246079730E-06
+-7.8687611089734923E-06
+-7.7995879220174115E-06
+-7.7308638084540215E-06
+-7.6625869317056117E-06
+-7.5947554576147869E-06
+-7.5273675546690823E-06
+-7.4604213805483766E-06
+-7.3939150592868402E-06
+-7.3278467126685229E-06
+-7.2622145024744096E-06
+-7.1970166127077862E-06
+-7.1322512294789576E-06
+-7.0679165416214912E-06
+-7.0040107304841284E-06
+-6.9405319457901547E-06
+-6.8774783317089438E-06
+-6.8148480671890556E-06
+-6.7526393562374500E-06
+-6.6908504053501289E-06
+-6.6294794246895489E-06
+-6.5685246193904605E-06
+-6.5079841646213308E-06
+-6.4478562267808483E-06
+-6.3881390026270751E-06
+-6.3288307171541522E-06
+-6.2699295979105651E-06
+-6.2114338761248976E-06
+-6.1533417799633069E-06
+-6.0956515104889087E-06
+-6.0383612572788145E-06
+-5.9814692355126444E-06
+-5.9249736911371308E-06
+-5.8688728730035186E-06
+-5.8131650335480449E-06
+-5.7578484236679424E-06
+-5.7029212706753406E-06
+-5.6483817882756580E-06
+-5.5942282108276149E-06
+-5.5404588049973684E-06
+-5.4870718410707749E-06
+-5.4340655930348090E-06
+-5.3814383345435387E-06
+-5.3291883191399631E-06
+-5.2773137850663072E-06
+-5.2258129865982012E-06
+-5.1746842111899795E-06
+-5.1239257509386012E-06
+-5.0735359017771835E-06
+-5.0235129602989788E-06
+-4.9738552062126123E-06
+-4.9245609025462457E-06
+-4.8756283241583090E-06
+-4.8270557792477687E-06
+-4.7788415819945173E-06
+-4.7309840506375520E-06
+-4.6834815050053552E-06
+-4.6363322509472648E-06
+-4.5895345764585251E-06
+-4.5430867777386733E-06
+-4.4969871841247175E-06
+-4.4512341325980014E-06
+-4.4058259637288020E-06
+-4.3607610201988574E-06
+-4.3160376337899458E-06
+-4.2716541182094576E-06
+-4.2276087921087104E-06
+-4.1839000055975222E-06
+-4.1405261183176819E-06
+-4.0974854935394092E-06
+-4.0547764974461487E-06
+-4.0123974878072374E-06
+-3.9703468040501713E-06
+-3.9286227878772870E-06
+-3.8872238107666813E-06
+-3.8461482560135068E-06
+-3.8053945096506339E-06
+-3.7649609605569282E-06
+-3.7248459918064029E-06
+-3.6850479695568121E-06
+-3.6455652599980955E-06
+-3.6063962557428148E-06
+-3.5675393631186650E-06
+-3.5289929913307610E-06
+-3.4907555533393131E-06
+-3.4528254580382948E-06
+-3.4152010978543670E-06
+-3.3778808632404917E-06
+-3.3408631684519440E-06
+-3.3041464437636970E-06
+-3.2677291219229268E-06
+-3.2316096395101303E-06
+-3.1957864306197195E-06
+-3.1602579146938937E-06
+-3.1250225076486440E-06
+-3.0900786457498022E-06
+-3.0554247829470725E-06
+-3.0210593757003534E-06
+-2.9869808849029418E-06
+-2.9531877701530371E-06
+-2.9196784778479345E-06
+-2.8864514494347411E-06
+-2.8535051435687225E-06
+-2.8208380381998531E-06
+-2.7884486138916122E-06
+-2.7563353560716112E-06
+-2.7244967498704376E-06
+-2.6929312688515930E-06
+-2.6616373804838317E-06
+-2.6306135663668654E-06
+-2.5998583286429589E-06
+-2.5693701723187191E-06
+-2.5391476075338429E-06
+-2.5091891449958702E-06
+-2.4794932854500534E-06
+-2.4500585226187141E-06
+-2.4208833616453591E-06
+-2.3919663294417860E-06
+-2.3633059561414307E-06
+-2.3349007763535682E-06
+-2.3067493258287162E-06
+-2.2788501326449091E-06
+-2.2512017178131888E-06
+-2.2238026109077505E-06
+-2.1966513632873965E-06
+-2.1697465301765794E-06
+-2.1430866709951379E-06
+-2.1166703468780820E-06
+-2.0904961134005457E-06
+-2.0645625195013861E-06
+-2.0388681199634696E-06
+-2.0134114899782791E-06
+-1.9881912094105480E-06
+-1.9632058632865956E-06
+-1.9384540395867863E-06
+-1.9139343215371463E-06
+-1.8896452849748733E-06
+-1.8655855097338336E-06
+-1.8417535959273677E-06
+-1.8181481495370905E-06
+-1.7947677811847727E-06
+-1.7716111050021898E-06
+-1.7486767315758273E-06
+-1.7259632641969847E-06
+-1.7034693086141731E-06
+-1.6811934901878145E-06
+-1.6591344415955235E-06
+-1.6372907991074374E-06
+-1.6156612025126838E-06
+-1.5942442895407136E-06
+-1.5730386920885780E-06
+-1.5520430432410307E-06
+-1.5312559932380925E-06
+-1.5106762006636199E-06
+-1.4903023276545274E-06
+-1.4701330407884345E-06
+-1.4501670054594114E-06
+-1.4304028818942998E-06
+-1.4108393305368447E-06
+-1.3914750269451062E-06
+-1.3723086561963639E-06
+-1.3533389066526077E-06
+-1.3345644718321278E-06
+-1.3159840447725588E-06
+-1.2975963139911837E-06
+-1.2793999675025525E-06
+-1.2613937067203951E-06
+-1.2435762439434621E-06
+-1.2259462943190987E-06
+-1.2085025784302419E-06
+-1.1912438169532785E-06
+-1.1741687267038850E-06
+-1.1572760234624072E-06
+-1.1405644348395357E-06
+-1.1240327008310562E-06
+-1.1076795637744688E-06
+-1.0915037709821904E-06
+-1.0755040704093999E-06
+-1.0596792080084400E-06
+-1.0440279289173394E-06
+-1.0285489873587258E-06
+-1.0132411498367042E-06
+-9.9810318540346301E-07
+-9.8313386944449504E-07
+-9.6833197867072057E-07
+-9.5369628774029330E-07
+-9.3922557003009968E-07
+-9.2491860658426562E-07
+-9.1077419192260756E-07
+-8.9679112308102063E-07
+-8.8296820293385034E-07
+-8.6930423613655272E-07
+-8.5579802626001864E-07
+-8.4244837596281368E-07
+-8.2925409384385505E-07
+-8.1621400218834189E-07
+-8.0332692602480033E-07
+-7.9059169608024647E-07
+-7.7800714544820006E-07
+-7.6557210677487777E-07
+-7.5328541220217054E-07
+-7.4114589832582005E-07
+-7.2915241533002745E-07
+-7.1730381655060474E-07
+-7.0559896082381536E-07
+-6.9403670999954611E-07
+-6.8261592592372563E-07
+-6.7133547039243964E-07
+-6.6019420846521008E-07
+-6.4919101844422208E-07
+-6.3832478237081207E-07
+-6.2759438741203177E-07
+-6.1699872438486806E-07
+-6.0653668445344143E-07
+-5.9620715928466557E-07
+-5.8600904291036566E-07
+-5.7594124192312441E-07
+-5.6600266740036706E-07
+-5.5619223509464361E-07
+-5.4650886505250699E-07
+-5.3695147792080122E-07
+-5.2751899542673076E-07
+-5.1821034103725653E-07
+-5.0902444984506485E-07
+-4.9996026227145641E-07
+-4.9101672290731324E-07
+-4.8219278125562616E-07
+-4.7348738762087524E-07
+-4.6489949398858099E-07
+-4.5642805371449055E-07
+-4.4807203065129811E-07
+-4.3983039484887179E-07
+-4.3170212001581262E-07
+-4.2368618534907163E-07
+-4.1578157102041880E-07
+-4.0798725942179498E-07
+-4.0030223418313229E-07
+-3.9272548819942373E-07
+-3.8525602140813855E-07
+-3.7789283693115917E-07
+-3.7063494389607426E-07
+-3.6348135259500497E-07
+-3.5643107596274289E-07
+-3.4948312825495215E-07
+-3.4263653174237717E-07
+-3.3589031653586052E-07
+-3.2924351550265555E-07
+-3.2269516788514037E-07
+-3.1624431433059665E-07
+-3.0988999844602015E-07
+-3.0363126543865000E-07
+-2.9746716729444657E-07
+-2.9139676453789042E-07
+-2.8541912012500259E-07
+-2.7953330359616575E-07
+-2.7373838621593605E-07
+-2.6803344244510347E-07
+-2.6241754881563538E-07
+-2.5688978740033513E-07
+-2.5144924927158033E-07
+-2.4609502776938477E-07
+-2.4082622295509786E-07
+-2.3564193705324875E-07
+-2.3054127550738969E-07
+-2.2552334638264587E-07
+-2.2058726220914701E-07
+-2.1573214487446110E-07
+-2.1095711851803937E-07
+-2.0626131389931076E-07
+-2.0164386447405391E-07
+-1.9710390681692767E-07
+-1.9264058074559402E-07
+-1.8825302962901279E-07
+-1.8394040639416483E-07
+-1.7970186636971915E-07
+-1.7553657120934498E-07
+-1.7144368586409230E-07
+-1.6742237822370230E-07
+-1.6347182008918821E-07
+-1.5959118607361577E-07
+-1.5577966030216672E-07
+-1.5203642961887040E-07
+-1.4836068679752336E-07
+-1.4475162858072309E-07
+-1.4120845439505123E-07
+-1.3773036821721508E-07
+-1.3431657632178286E-07
+-1.3096629423619672E-07
+-1.2767874069059649E-07
+-1.2445313978825279E-07
+-1.2128872025401995E-07
+-1.1818471326019451E-07
+-1.1514035521244997E-07
+-1.1215488451769189E-07
+-1.0922754824265955E-07
+-1.0635759722683983E-07
+-1.0354428717223641E-07
+-1.0078687915200324E-07
+-9.8084636397994985E-08
+-9.5436827807157803E-08
+-9.2842724202280293E-08
+-9.0301604456946776E-08
+-8.7812751915926455E-08
+-8.5375454164323255E-08
+-8.2989004787548316E-08
+-8.0652699329342564E-08
+-7.8365839359754679E-08
+-7.6127728516170878E-08
+-7.3937677718265837E-08
+-7.1795003071114345E-08
+-6.9699024327251605E-08
+-6.7649067812870524E-08
+-6.5644461714697754E-08
+-6.3684540406085333E-08
+-6.1768640667970903E-08
+-5.9896105732860628E-08
+-5.8066284734382320E-08
+-5.6278529907678729E-08
+-5.4532200516303043E-08
+-5.2826657716173464E-08
+-5.1161268828395195E-08
+-4.9535404090844922E-08
+-4.7948439335204572E-08
+-4.6399756969035914E-08
+-4.4888742046300438E-08
+-4.3414786953307868E-08
+-4.1977286145102631E-08
+-4.0575640051610707E-08
+-3.9209252656388163E-08
+-3.7877532693359062E-08
+-3.6579896067242194E-08
+-3.5315761007868847E-08
+-3.4084553194099595E-08
+-3.2885700706981924E-08
+-3.1718637266734964E-08
+-3.0582800870761919E-08
+-2.9477633477044601E-08
+-2.8402584690591421E-08
+-2.7357106285703514E-08
+-2.6340657405740641E-08
+-2.5352700085148896E-08
+-2.4392701535596197E-08
+-2.3460134004192362E-08
+-2.2554473007610634E-08
+-2.1675202046275195E-08
+-2.0821806804722712E-08
+-1.9993780074536437E-08
+-1.9190618150830800E-08
+-1.8411821962823177E-08
+-1.7656898224886286E-08
+-1.6925356366920838E-08
+-1.6216713966422522E-08
+-1.5530490974154429E-08
+-1.4866214033824219E-08
+-1.4223413993515892E-08
+-1.3601625751322447E-08
+-1.3000390679644334E-08
+-1.2419252490600745E-08
+-1.1857763011146499E-08
+-1.1315476808619242E-08
+-1.0791954599677132E-08
+-1.0286762051513243E-08
+-9.7994683074129686E-09
+-9.3296495784861910E-09
+-8.8768842354633953E-09
+-8.4407585245141295E-09
+-8.0208619557496970E-09
+-7.6167895630817633E-09
+-7.2281420904837388E-09
+-6.8545232349760602E-09
+-6.4955442050555536E-09
+-6.1508183849660006E-09
+-5.8199666338722945E-09
+-5.5026137187817486E-09
+-5.1983892543797646E-09
+-4.9069292867461168E-09
+-4.6278723979633209E-09
+-4.3608649466215645E-09
+-4.1055556793654406E-09
+-3.8616002800722149E-09
+-3.6286590616325362E-09
+-3.4063965046082363E-09
+-3.1944841626415147E-09
+-2.9925958610998772E-09
+-2.8004132501180830E-09
+-2.6176207741868601E-09
+-2.4439091723227222E-09
+-2.2789745698618595E-09
+-2.1225166208134801E-09
+-1.9742425760555375E-09
+-1.8338618682468397E-09
+-1.7010915898259416E-09
+-1.5756521986997543E-09
+-1.4572697390043510E-09
+-1.3456763938851140E-09
+-1.2406073222362054E-09
+-1.1418056470454685E-09
+-1.0490167649383810E-09
+-9.6199338384017097E-10
+-8.8049227003083141E-10
+-8.0427504250002919E-10
+-7.3311016287488540E-10
+-6.6676864961636898E-10
+-6.0502965934625762E-10
+-5.4767490229679998E-10
+-4.9449289774138324E-10
+-4.4527699284214277E-10
+-3.9982467175762660E-10
+-3.5794087314491195E-10
+-3.1943284875747906E-10
+-2.8411594159965001E-10
+-2.5180851434792234E-10
+-2.2233511707284062E-10
+-1.9552592807064303E-10
+-1.7121460860159049E-10
+-1.4924275740892149E-10
+-1.2945422976277375E-10
+-1.1170072186078897E-10
+-9.5837568309496897E-11
+-8.1725593636869548E-11
+-6.9232035143674366E-11
+-5.8227065979996797E-11
+-4.8589113817898478E-11
+-4.0198998019636638E-11
+-3.2944955130422726E-11
+-2.6719588764544600E-11
+-2.1420266312769912E-11
+-1.6951489990687653E-11
+-1.3220303816900579E-11
+-1.0142115692954298E-11
+-7.6350564157245434E-12
+-5.6241182526454802E-12
+-4.0394621565471332E-12
+-2.8152841090332069E-12
+-1.8934873635463345E-12
+-1.2183351879044278E-12
+-7.4250779871519885E-13
+-4.2196259985249582E-13
+-2.1839191798943897E-13
+-9.9035346821695661E-14
+-3.5381277322081621E-14
+-9.3397035389237926E-15
+-4.4862118882457237E-15
+-4.3963887862075566E-15
diff --git a/src/ASPHERE/pair_resquared.h b/src/ASPHERE/pair_resquared.h
index f3e1dcc58..c2146e18b 100755
--- a/src/ASPHERE/pair_resquared.h
+++ b/src/ASPHERE/pair_resquared.h
@@ -1,95 +1,95 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(resquared,PairRESquared)
#else
#ifndef LMP_PAIR_RESQUARED_H
#define LMP_PAIR_RESQUARED_H
#include "pair.h"
namespace LAMMPS_NS {
class PairRESquared : public Pair {
public:
PairRESquared(LAMMPS *lmp);
- ~PairRESquared();
- void compute(int, int);
+ virtual ~PairRESquared();
+ virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
- void init_style();
+ virtual void init_style();
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
protected:
double cut_global;
double **cut;
double **shape1; // per-type radii in x, y and z
double **shape2; // per-type radii in x, y and z SQUARED
double *lshape; // product of the radii
double **well; // well depth scaling along each axis
double **epsilon,**sigma; // epsilon and sigma values for atom-type pairs
int **form;
double **lj1,**lj2,**lj3,**lj4;
double **offset;
int *setwell;
class AtomVecEllipsoid *avec;
// per-particle temporaries for RE-squared calculation
struct RE2Vars {
// per particle precomputations for energy, force, torque
double A[3][3]; // Rotation matrix (lab->body)
double aTe[3][3]; // A'*E
double gamma[3][3]; // A'*S^2*A
// per particle precomputations for torque
double sa[3][3]; // S^2*A;
double lA[3][3][3]; // -A*rotation generator (x,y, or z)
double lAtwo[3][3][3]; // A'*S^2*lA
double lAsa[3][3][3]; // lAtwo+lA'*sa
};
void allocate();
void precompute_i(const int i,RE2Vars &ws);
double det_prime(const double m[3][3], const double m2[3][3]);
double resquared_analytic(const int i, const int j,
const RE2Vars &wi, const RE2Vars &wj,
const double *r, const double rsq,
double *fforce, double *ttor,
double *rtor);
double resquared_lj(const int i, const int j, const RE2Vars &wi,
const double *r, const double rsq, double *fforce,
double *ttor, bool calc_torque);
double cr60; // 60^1/3
double b_alpha; // 45/56
double solv_f_a; // 3.0/(4.0*PI*-36)
double solv_f_r; // 3.0/(4.0*PI*2025)
};
}
#endif
#endif
diff --git a/src/GPU/Install.sh b/src/GPU/Install.sh
index 8f8decf7c..a2a65d119 100644
--- a/src/GPU/Install.sh
+++ b/src/GPU/Install.sh
@@ -1,144 +1,147 @@
# Install/unInstall package files in LAMMPS
# edit Makefile.package to include/exclude GPU info
# do not install child files if parent does not exist
if (test $1 = 1) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*gpu //' ../Makefile.package
- sed -i -e 's/[^ \t]*gpu_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*gpu[^ \t]* //' ../Makefile.package
sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/gpu |' ../Makefile.package
sed -i -e 's|^PKG_LIB =[ \t]*|&-lgpu |' ../Makefile.package
sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(gpu_SYSINC) |' ../Makefile.package
sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(gpu_SYSLIB) |' ../Makefile.package
sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(gpu_SYSPATH) |' ../Makefile.package
fi
if (test -e ../pair_gayberne.cpp) then
cp pair_gayberne_gpu.cpp ..
cp pair_gayberne_gpu.h ..
cp pair_resquared_gpu.cpp ..
cp pair_resquared_gpu.h ..
fi
if (test -e ../pair_lj_cut_coul_long.cpp) then
cp pair_lj_cut_coul_long_gpu.cpp ..
cp pair_lj_cut_coul_long_gpu.h ..
fi
if (test -e ../pair_lj_class2.cpp) then
cp pair_lj_class2_gpu.cpp ..
cp pair_lj_class2_gpu.h ..
fi
if (test -e ../pair_lj_class2_coul_long.cpp) then
cp pair_lj_class2_coul_long_gpu.cpp ..
cp pair_lj_class2_coul_long_gpu.h ..
fi
if (test -e ../pair_lj_charmm_coul_long.cpp) then
cp pair_lj_charmm_coul_long_gpu.cpp ..
cp pair_lj_charmm_coul_long_gpu.h ..
fi
if (test -e ../pair_cg_cmm.cpp) then
cp pair_cg_cmm_gpu.cpp ..
cp pair_cg_cmm_gpu.h ..
fi
if (test -e ../pair_cg_cmm_coul_long.cpp) then
cp pair_cg_cmm_coul_long_gpu.cpp ..
cp pair_cg_cmm_coul_long_gpu.h ..
cp pair_cg_cmm_coul_msm.cpp ..
cp pair_cg_cmm_coul_msm.h ..
cp pair_cg_cmm_coul_msm_gpu.cpp ..
cp pair_cg_cmm_coul_msm_gpu.h ..
fi
if (test -e ../pppm.cpp) then
cp pppm_gpu.cpp ..
cp pppm_gpu_single.cpp ..
cp pppm_gpu_double.cpp ..
cp pppm_gpu.h ..
cp pppm_gpu_single.h ..
cp pppm_gpu_double.h ..
fi
cp pair_lj_cut_gpu.cpp ..
cp pair_morse_gpu.cpp ..
cp pair_lj96_cut_gpu.cpp ..
cp pair_lj_expand_gpu.cpp ..
cp pair_lj_cut_coul_cut_gpu.cpp ..
cp pair_lj_cut_tgpu.cpp ..
cp fix_gpu.cpp ..
cp pair_lj_cut_gpu.h ..
cp pair_morse_gpu.h ..
cp pair_lj96_cut_gpu.h ..
cp pair_lj_expand_gpu.h ..
cp pair_lj_cut_coul_cut_gpu.h ..
cp pair_lj_cut_tgpu.h ..
cp fix_gpu.h ..
cp gpu_extra.h ..
cp pair_omp_gpu.cpp ..
+ cp pair_lj_cut_tgpu.cpp ..
+
cp pair_omp_gpu.h ..
+ cp pair_lj_cut_tgpu.h ..
elif (test $1 = 0) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*gpu //' ../Makefile.package
- sed -i -e 's/[^ \t]*gpu_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*gpu[^ \t]* //' ../Makefile.package
fi
rm -f ../pppm_gpu.cpp
rm -f ../pppm_gpu_single.cpp
rm -f ../pppm_gpu_double.cpp
rm -f ../pair_gayberne_gpu.cpp
rm -f ../pair_resquared_gpu.cpp
rm -f ../pair_lj_cut_gpu.cpp
rm -f ../pair_morse_gpu.cpp
rm -f ../pair_lj96_cut_gpu.cpp
rm -f ../pair_lj_expand_gpu.cpp
rm -f ../pair_lj_cut_coul_cut_gpu.cpp
rm -f ../pair_lj_cut_coul_long_gpu.cpp
rm -f ../pair_lj_class2_gpu.cpp
rm -f ../pair_lj_class2_coul_long_gpu.cpp
rm -f ../pair_lj_charmm_coul_long_gpu.cpp
rm -f ../pair_lj_cut_tgpu.cpp
rm -f ../pair_cg_cmm_gpu.cpp
rm -f ../pair_cg_cmm_coul_long_gpu.cpp
rm -f ../pair_cg_cmm_coul_msm.cpp
rm -f ../pair_cg_cmm_coul_msm_gpu.cpp
rm -f ../fix_gpu.cpp
rm -f ../pair_omp_gpu.cpp
+ rm -f ../pair_lj_cut_tgpu.cpp
rm -f ../pppm_gpu.h
rm -f ../pppm_gpu_single.h
rm -f ../pppm_gpu_double.h
rm -f ../pair_gayberne_gpu.h
rm -f ../pair_resquared_gpu.h
rm -f ../pair_lj_cut_gpu.h
rm -f ../pair_morse_gpu.h
rm -f ../pair_lj96_cut_gpu.h
rm -f ../pair_lj_expand_gpu.h
rm -f ../pair_lj_cut_coul_cut_gpu.h
rm -f ../pair_lj_cut_coul_long_gpu.h
rm -f ../pair_lj_class2_gpu.h
rm -f ../pair_lj_class2_coul_long_gpu.h
rm -f ../pair_lj_charmm_coul_long_gpu.h
- rm -f ../pair_lj_cut_tgpu.cpp
+ rm -f ../pair_lj_cut_tgpu.h
rm -f ../pair_cg_cmm_gpu.h
rm -f ../pair_cg_cmm_coul_long_gpu.h
rm -f ../pair_cg_cmm_coul_msm.h
rm -f ../pair_cg_cmm_coul_msm_gpu.h
rm -f ../fix_gpu.h
rm -f ../gpu_extra.h
rm -f ../pair_omp_gpu.h
+ rm -f ../pair_lj_cut_tgpu.h
fi
diff --git a/src/GPU/fix_gpu.cpp b/src/GPU/fix_gpu.cpp
index 81f68b7cd..3308b8537 100644
--- a/src/GPU/fix_gpu.cpp
+++ b/src/GPU/fix_gpu.cpp
@@ -1,182 +1,182 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "fix_gpu.h"
#include "atom.h"
#include "force.h"
#include "pair.h"
#include "respa.h"
#include "input.h"
#include "error.h"
#include "timer.h"
#include "modify.h"
#include "domain.h"
#include "universe.h"
#include "gpu_extra.h"
using namespace LAMMPS_NS;
enum{GPU_FORCE, GPU_NEIGH};
extern int lmp_init_device(MPI_Comm world, MPI_Comm replica,
const int first_gpu, const int last_gpu,
const int gpu_mode, const double particle_split,
const int nthreads, const int t_per_atom);
extern void lmp_clear_device();
extern double lmp_gpu_forces(double **f, double **tor, double *eatom,
double **vatom, double *virial, double &ecoul);
/* ---------------------------------------------------------------------- */
FixGPU::FixGPU(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
-
+{
if (lmp->cuda) error->all("Cannot use fix gpu with USER-CUDA mode enabled");
if (narg < 7) error->all("Illegal fix gpu command");
if (strcmp(arg[1],"all") != 0) error->all("Illegal fix gpu command");
int first_gpu, last_gpu;
if (strcmp(arg[3],"force") == 0)
_gpu_mode = GPU_FORCE;
else if (strcmp(arg[3],"force/neigh") == 0) {
_gpu_mode = GPU_NEIGH;
if (domain->triclinic)
error->all("Cannot use force/neigh with triclinic box.");
} else
error->all("Illegal fix gpu command.");
first_gpu = atoi(arg[4]);
last_gpu = atoi(arg[5]);
_particle_split = force->numeric(arg[6]);
if (_particle_split==0 || _particle_split>1)
error->all("Illegal fix gpu command.");
int nthreads = 1;
int threads_per_atom = -1;
if (narg == 9) {
if (strcmp(arg[7],"threads_per_atom") == 0)
threads_per_atom = atoi(arg[8]);
else if (strcmp(arg[7],"nthreads") == 0)
nthreads = atoi(arg[8]);
else
error->all("Illegal fix gpu command.");
} else if (narg != 7)
error->all("Illegal fix gpu command.");
if (nthreads < 1)
error->all("Illegal fix gpu command.");
#ifndef _OPENMP
if (nthreads > 1)
error->all("No OpenMP support compiled in.");
#endif
int gpu_flag = lmp_init_device(universe->uworld, world, first_gpu, last_gpu,
_gpu_mode, _particle_split, nthreads,
threads_per_atom);
GPU_EXTRA::check_flag(gpu_flag,error,world);
}
/* ---------------------------------------------------------------------- */
FixGPU::~FixGPU()
{
lmp_clear_device();
}
/* ---------------------------------------------------------------------- */
int FixGPU::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixGPU::init()
{
// Can only have 1 gpu fix that must be the first fix for a run
if ((void*)modify->fix[0] != (void*)this)
error->all("GPU is not the first fix for this run.");
// Hybrid cannot be used with force/neigh option
if (_gpu_mode == GPU_NEIGH)
if (force->pair_match("hybrid",1) != NULL ||
force->pair_match("hybrid/overlay",1) != NULL)
error->all("Cannot use pair hybrid with GPU neighbor builds.");
if (_particle_split < 0)
if (force->pair_match("hybrid",1) != NULL ||
force->pair_match("hybrid/overlay",1) != NULL)
error->all("Fix gpu split must be positive for hybrid pair styles.");
}
/* ---------------------------------------------------------------------- */
void FixGPU::setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixGPU::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixGPU::post_force(int vflag)
{
timer->stamp();
double lvirial[6];
for (int i = 0; i < 6; i++) lvirial[i] = 0.0;
double my_eng = lmp_gpu_forces(atom->f, atom->torque, force->pair->eatom,
force->pair->vatom, lvirial,
force->pair->eng_coul);
force->pair->eng_vdwl += my_eng;
force->pair->virial[0] += lvirial[0];
force->pair->virial[1] += lvirial[1];
force->pair->virial[2] += lvirial[2];
force->pair->virial[3] += lvirial[3];
force->pair->virial[4] += lvirial[4];
force->pair->virial[5] += lvirial[5];
- if (force->pair->vflag_fdotr) force->pair->virial_compute();
+ if (force->pair->vflag_fdotr) force->pair->virial_fdotr_compute();
timer->stamp(TIME_PAIR);
}
/* ---------------------------------------------------------------------- */
void FixGPU::min_post_force(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
double FixGPU::memory_usage()
{
double bytes = 0.0;
// Memory usage currently returned by pair routine
return bytes;
}
diff --git a/src/GRANULAR/fix_freeze.cpp b/src/GRANULAR/fix_freeze.cpp
index bd4b76a92..997337a67 100644
--- a/src/GRANULAR/fix_freeze.cpp
+++ b/src/GRANULAR/fix_freeze.cpp
@@ -1,130 +1,130 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "fix_freeze.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "comm.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixFreeze::FixFreeze(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 3) error->all("Illegal fix freeze command");
if (!atom->torque_flag)
error->all("Fix freeze requires atom attribute torque");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
}
/* ---------------------------------------------------------------------- */
int FixFreeze::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixFreeze::init()
{
// error if more than one freeze fix
// because accessed by pair style granular and fix gran/diag
int count = 0;
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"freeze") == 0) count++;
if (count > 1) error->all("More than one fix freeze");
}
/* ---------------------------------------------------------------------- */
void FixFreeze::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
int nlevels_respa = ((Respa *) update->integrate)->nlevels;
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
}
/* ---------------------------------------------------------------------- */
void FixFreeze::post_force(int vflag)
{
double **f = atom->f;
double **torque = atom->torque;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
force_flag = 0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
f[i][0] = 0.0;
f[i][1] = 0.0;
f[i][2] = 0.0;
torque[i][0] = 0.0;
torque[i][1] = 0.0;
torque[i][2] = 0.0;
}
}
/* ---------------------------------------------------------------------- */
void FixFreeze::post_force_respa(int vflag, int ilevel, int iloop)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixFreeze::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n];
}
diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp
index d8da32fc1..975828339 100644
--- a/src/GRANULAR/fix_wall_gran.cpp
+++ b/src/GRANULAR/fix_wall_gran.cpp
@@ -1,798 +1,798 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Leo Silbert (SNL), Gary Grest (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_wall_gran.h"
#include "atom.h"
#include "domain.h"
#include "update.h"
#include "force.h"
#include "pair.h"
#include "modify.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{XPLANE,YPLANE,ZPLANE,ZCYLINDER}; // XYZ PLANE need to be 0,1,2
enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY};
#define BIG 1.0e20
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 10) error->all("Illegal fix wall/gran command");
if (!atom->sphere_flag)
error->all("Fix wall/gran requires atom style sphere");
restart_peratom = 1;
create_attribute = 1;
time_depend = 1;
// wall/particle coefficients
kn = atof(arg[3]);
if (strcmp(arg[4],"NULL") == 0) kt = kn * 2.0/7.0;
else kt = atof(arg[4]);
gamman = atof(arg[5]);
if (strcmp(arg[6],"NULL") == 0) gammat = 0.5 * gamman;
else gammat = atof(arg[6]);
xmu = atof(arg[7]);
int dampflag = atoi(arg[8]);
if (dampflag == 0) gammat = 0.0;
if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 ||
xmu < 0.0 || xmu > 1.0 || dampflag < 0 || dampflag > 1)
error->all("Illegal fix wall/gran command");
// convert Kn and Kt from pressure units to force/distance^2 if Hertzian
if (force->pair_match("gran/hertz/history",1)) {
kn /= force->nktv2p;
kt /= force->nktv2p;
}
// wallstyle args
int iarg = 9;
if (strcmp(arg[iarg],"xplane") == 0) {
if (narg < iarg+3) error->all("Illegal fix wall/gran command");
wallstyle = XPLANE;
if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG;
else lo = atof(arg[iarg+1]);
if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG;
else hi = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg],"yplane") == 0) {
if (narg < iarg+3) error->all("Illegal fix wall/gran command");
wallstyle = YPLANE;
if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG;
else lo = atof(arg[iarg+1]);
if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG;
else hi = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg],"zplane") == 0) {
if (narg < iarg+3) error->all("Illegal fix wall/gran command");
wallstyle = ZPLANE;
if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG;
else lo = atof(arg[iarg+1]);
if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG;
else hi = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg],"zcylinder") == 0) {
if (narg < iarg+2) error->all("Illegal fix wall/gran command");
wallstyle = ZCYLINDER;
lo = hi = 0.0;
cylradius = atof(arg[iarg+1]);
iarg += 2;
}
// check for trailing keyword/values
wiggle = 0;
wshear = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"wiggle") == 0) {
if (iarg+4 > narg) error->all("Illegal fix wall/gran command");
if (strcmp(arg[iarg+1],"x") == 0) axis = 0;
else if (strcmp(arg[iarg+1],"y") == 0) axis = 1;
else if (strcmp(arg[iarg+1],"z") == 0) axis = 2;
else error->all("Illegal fix wall/gran command");
amplitude = atof(arg[iarg+2]);
period = atof(arg[iarg+3]);
wiggle = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"shear") == 0) {
if (iarg+3 > narg) error->all("Illegal fix wall/gran command");
if (strcmp(arg[iarg+1],"x") == 0) axis = 0;
else if (strcmp(arg[iarg+1],"y") == 0) axis = 1;
else if (strcmp(arg[iarg+1],"z") == 0) axis = 2;
else error->all("Illegal fix wall/gran command");
vshear = atof(arg[iarg+2]);
wshear = 1;
iarg += 3;
} else error->all("Illegal fix wall/gran command");
}
if (wallstyle == XPLANE && domain->xperiodic)
error->all("Cannot use wall in periodic dimension");
if (wallstyle == YPLANE && domain->yperiodic)
error->all("Cannot use wall in periodic dimension");
if (wallstyle == ZPLANE && domain->zperiodic)
error->all("Cannot use wall in periodic dimension");
if (wallstyle == ZCYLINDER && (domain->xperiodic || domain->yperiodic))
error->all("Cannot use wall in periodic dimension");
if (wiggle && wshear) error->all("Cannot wiggle and shear fix wall/gran");
if (wiggle && wallstyle == ZCYLINDER && axis != 2)
error->all("Invalid wiggle direction for fix wall/gran");
if (wshear && wallstyle == XPLANE && axis == 0)
error->all("Invalid shear direction for fix wall/gran");
if (wshear && wallstyle == YPLANE && axis == 1)
error->all("Invalid shear direction for fix wall/gran");
if (wshear && wallstyle == ZPLANE && axis == 2)
error->all("Invalid shear direction for fix wall/gran");
// setup oscillations
if (wiggle) {
double PI = 4.0 * atan(1.0);
omega = 2.0*PI / period;
}
// perform initial allocation of atom-based arrays
// register with Atom class
shear = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
// initialize as if particle is not touching wall
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
shear[i][0] = shear[i][1] = shear[i][2] = 0.0;
time_origin = update->ntimestep;
laststep = -1;
}
/* ---------------------------------------------------------------------- */
FixWallGran::~FixWallGran()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
atom->delete_callback(id,1);
// delete locally stored arrays
memory->destroy(shear);
}
/* ---------------------------------------------------------------------- */
int FixWallGran::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixWallGran::init()
{
dt = update->dt;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
// set pairstyle from granular pair style
if (force->pair_match("gran/hooke",1))
pairstyle = HOOKE;
else if (force->pair_match("gran/hooke/history",1))
pairstyle = HOOKE_HISTORY;
else if (force->pair_match("gran/hertz/history",1))
pairstyle = HERTZ_HISTORY;
else error->all("Fix wall/gran is incompatible with Pair style");
}
/* ---------------------------------------------------------------------- */
void FixWallGran::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixWallGran::post_force(int vflag)
{
double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq;
// set position of wall to initial settings and velocity to 0.0
// if wiggle or shear, set wall position and velocity accordingly
double wlo = lo;
double whi = hi;
vwall[0] = vwall[1] = vwall[2] = 0.0;
if (wiggle) {
double arg = omega * (update->ntimestep - time_origin) * dt;
if (wallstyle == axis) {
wlo = lo + amplitude - amplitude*cos(arg);
whi = hi + amplitude - amplitude*cos(arg);
}
vwall[axis] = amplitude*omega*sin(arg);
} else if (wshear) vwall[axis] = vshear;
// loop over all my atoms
// rsq = distance from wall
// dx,dy,dz = signed distance from wall
// for rotating cylinder, reset vwall based on particle position
// skip atom if not close enough to wall
// if wall was set to NULL, it's skipped since lo/hi are infinity
// compute force and torque on atom if close enough to wall
// via wall potential matched to pair potential
// set shear if pair potential stores history
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double **torque = atom->torque;
double *radius = atom->radius;
double *rmass = atom->rmass;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (update->ntimestep > laststep) shearupdate = 1;
else shearupdate = 0;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dx = dy = dz = 0.0;
if (wallstyle == XPLANE) {
del1 = x[i][0] - wlo;
del2 = whi - x[i][0];
if (del1 < del2) dx = del1;
else dx = -del2;
} else if (wallstyle == YPLANE) {
del1 = x[i][1] - wlo;
del2 = whi - x[i][1];
if (del1 < del2) dy = del1;
else dy = -del2;
} else if (wallstyle == ZPLANE) {
del1 = x[i][2] - wlo;
del2 = whi - x[i][2];
if (del1 < del2) dz = del1;
else dz = -del2;
} else if (wallstyle == ZCYLINDER) {
delxy = sqrt(x[i][0]*x[i][0] + x[i][1]*x[i][1]);
delr = cylradius - delxy;
if (delr > radius[i]) dz = cylradius;
else {
dx = -delr/delxy * x[i][0];
dy = -delr/delxy * x[i][1];
if (wshear && axis != 2) {
vwall[0] = vshear * x[i][1]/delxy;
vwall[1] = -vshear * x[i][0]/delxy;
vwall[2] = 0.0;
}
}
}
rsq = dx*dx + dy*dy + dz*dz;
if (rsq > radius[i]*radius[i]) {
if (pairstyle != HOOKE) {
shear[i][0] = 0.0;
shear[i][1] = 0.0;
shear[i][2] = 0.0;
}
} else {
if (pairstyle == HOOKE)
hooke(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i],
radius[i],rmass[i]);
else if (pairstyle == HOOKE_HISTORY)
hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i],
radius[i],rmass[i],shear[i]);
else if (pairstyle == HERTZ_HISTORY)
hertz_history(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i],
radius[i],rmass[i],shear[i]);
}
}
}
laststep = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
void FixWallGran::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixWallGran::hooke(double rsq, double dx, double dy, double dz,
double *vwall, double *v,
double *f, double *omega, double *torque,
double radius, double mass)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,meff,damp,ccel,vtr1,vtr2,vtr3,vrel;
double fn,fs,ft,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3,rinv,rsqinv;
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
// relative translational velocity
vr1 = v[0] - vwall[0];
vr2 = v[1] - vwall[1];
vr3 = v[2] - vwall[2];
// normal component
vnnr = vr1*dx + vr2*dy + vr3*dz;
vn1 = dx*vnnr * rsqinv;
vn2 = dy*vnnr * rsqinv;
vn3 = dz*vnnr * rsqinv;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = radius*omega[0] * rinv;
wr2 = radius*omega[1] * rinv;
wr3 = radius*omega[2] * rinv;
// normal forces = Hookian contact + normal velocity damping
meff = mass;
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radius-r)*rinv - damp;
// relative velocities
vtr1 = vt1 - (dz*wr2-dy*wr3);
vtr2 = vt2 - (dx*wr3-dz*wr1);
vtr3 = vt3 - (dy*wr1-dx*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// force normalization
fn = xmu * fabs(ccel*r);
fs = meff*gammat*vrel;
if (vrel != 0.0) ft = MIN(fn,fs) / vrel;
else ft = 0.0;
// tangential force due to tangential velocity damping
fs1 = -ft*vtr1;
fs2 = -ft*vtr2;
fs3 = -ft*vtr3;
// forces & torques
fx = dx*ccel + fs1;
fy = dy*ccel + fs2;
fz = dz*ccel + fs3;
f[0] += fx;
f[1] += fy;
f[2] += fz;
tor1 = rinv * (dy*fs3 - dz*fs2);
tor2 = rinv * (dz*fs1 - dx*fs3);
tor3 = rinv * (dx*fs2 - dy*fs1);
torque[0] -= radius*tor1;
torque[1] -= radius*tor2;
torque[2] -= radius*tor3;
}
/* ---------------------------------------------------------------------- */
void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
double *vwall, double *v,
double *f, double *omega, double *torque,
double radius, double mass, double *shear)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,meff,damp,ccel,vtr1,vtr2,vtr3,vrel;
double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3;
double shrmag,rsht,rinv,rsqinv;
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
// relative translational velocity
vr1 = v[0] - vwall[0];
vr2 = v[1] - vwall[1];
vr3 = v[2] - vwall[2];
// normal component
vnnr = vr1*dx + vr2*dy + vr3*dz;
vn1 = dx*vnnr * rsqinv;
vn2 = dy*vnnr * rsqinv;
vn3 = dz*vnnr * rsqinv;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = radius*omega[0] * rinv;
wr2 = radius*omega[1] * rinv;
wr3 = radius*omega[2] * rinv;
// normal forces = Hookian contact + normal velocity damping
meff = mass;
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radius-r)*rinv - damp;
// relative velocities
vtr1 = vt1 - (dz*wr2-dy*wr3);
vtr2 = vt2 - (dx*wr3-dz*wr1);
vtr3 = vt3 - (dy*wr1-dx*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// shear history effects
if (shearupdate) {
shear[0] += vtr1*dt;
shear[1] += vtr2*dt;
shear[2] += vtr3*dt;
}
shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]);
// rotate shear displacements
rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz;
rsht = rsht*rsqinv;
if (shearupdate) {
shear[0] -= rsht*dx;
shear[1] -= rsht*dy;
shear[2] -= rsht*dz;
}
// tangential forces = shear + tangential velocity damping
fs1 = - (kt*shear[0] + meff*gammat*vtr1);
fs2 = - (kt*shear[1] + meff*gammat*vtr2);
fs3 = - (kt*shear[2] + meff*gammat*vtr3);
// rescale frictional displacements and forces if needed
fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
fn = xmu * fabs(ccel*r);
if (fs > fn) {
if (shrmag != 0.0) {
shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) -
meff*gammat*vtr1/kt;
shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) -
meff*gammat*vtr2/kt;
shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) -
meff*gammat*vtr3/kt;
fs1 *= fn/fs ;
fs2 *= fn/fs;
fs3 *= fn/fs;
} else fs1 = fs2 = fs3 = 0.0;
}
// forces & torques
fx = dx*ccel + fs1;
fy = dy*ccel + fs2;
fz = dz*ccel + fs3;
f[0] += fx;
f[1] += fy;
f[2] += fz;
tor1 = rinv * (dy*fs3 - dz*fs2);
tor2 = rinv * (dz*fs1 - dx*fs3);
tor3 = rinv * (dx*fs2 - dy*fs1);
torque[0] -= radius*tor1;
torque[1] -= radius*tor2;
torque[2] -= radius*tor3;
}
/* ---------------------------------------------------------------------- */
void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
double *vwall, double *v,
double *f, double *omega, double *torque,
double radius, double mass, double *shear)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,meff,damp,ccel,vtr1,vtr2,vtr3,vrel;
double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3;
double shrmag,rsht,polyhertz,rinv,rsqinv;
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
// relative translational velocity
vr1 = v[0] - vwall[0];
vr2 = v[1] - vwall[1];
vr3 = v[2] - vwall[2];
// normal component
vnnr = vr1*dx + vr2*dy + vr3*dz;
vn1 = dx*vnnr / rsq;
vn2 = dy*vnnr / rsq;
vn3 = dz*vnnr / rsq;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = radius*omega[0] * rinv;
wr2 = radius*omega[1] * rinv;
wr3 = radius*omega[2] * rinv;
// normal forces = Hertzian contact + normal velocity damping
meff = mass;
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radius-r)*rinv - damp;
polyhertz = sqrt((radius-r)*radius);
ccel *= polyhertz;
// relative velocities
vtr1 = vt1 - (dz*wr2-dy*wr3);
vtr2 = vt2 - (dx*wr3-dz*wr1);
vtr3 = vt3 - (dy*wr1-dx*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// shear history effects
if (shearupdate) {
shear[0] += vtr1*dt;
shear[1] += vtr2*dt;
shear[2] += vtr3*dt;
}
shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]);
// rotate shear displacements
rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz;
rsht = rsht*rsqinv;
if (shearupdate) {
shear[0] -= rsht*dx;
shear[1] -= rsht*dy;
shear[2] -= rsht*dz;
}
// tangential forces = shear + tangential velocity damping
fs1 = -polyhertz * (kt*shear[0] + meff*gammat*vtr1);
fs2 = -polyhertz * (kt*shear[1] + meff*gammat*vtr2);
fs3 = -polyhertz * (kt*shear[2] + meff*gammat*vtr3);
// rescale frictional displacements and forces if needed
fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
fn = xmu * fabs(ccel*r);
if (fs > fn) {
if (shrmag != 0.0) {
shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) -
meff*gammat*vtr1/kt;
shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) -
meff*gammat*vtr2/kt;
shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) -
meff*gammat*vtr3/kt;
fs1 *= fn/fs ;
fs2 *= fn/fs;
fs3 *= fn/fs;
} else fs1 = fs2 = fs3 = 0.0;
}
// forces & torques
fx = dx*ccel + fs1;
fy = dy*ccel + fs2;
fz = dz*ccel + fs3;
f[0] += fx;
f[1] += fy;
f[2] += fz;
tor1 = rinv * (dy*fs3 - dz*fs2);
tor2 = rinv * (dz*fs1 - dx*fs3);
tor3 = rinv * (dx*fs2 - dy*fs1);
torque[0] -= radius*tor1;
torque[1] -= radius*tor2;
torque[2] -= radius*tor3;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixWallGran::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += 3*nmax * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixWallGran::grow_arrays(int nmax)
{
memory->grow(shear,nmax,3,"fix_wall_gran:shear");
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixWallGran::copy_arrays(int i, int j)
{
shear[j][0] = shear[i][0];
shear[j][1] = shear[i][1];
shear[j][2] = shear[i][2];
}
/* ----------------------------------------------------------------------
initialize one atom's array values, called when atom is created
------------------------------------------------------------------------- */
void FixWallGran::set_arrays(int i)
{
shear[i][0] = shear[i][1] = shear[i][2] = 0.0;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixWallGran::pack_exchange(int i, double *buf)
{
buf[0] = shear[i][0];
buf[1] = shear[i][1];
buf[2] = shear[i][2];
return 3;
}
/* ----------------------------------------------------------------------
unpack values into local atom-based arrays after exchange
------------------------------------------------------------------------- */
int FixWallGran::unpack_exchange(int nlocal, double *buf)
{
shear[nlocal][0] = buf[0];
shear[nlocal][1] = buf[1];
shear[nlocal][2] = buf[2];
return 3;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for restart file
------------------------------------------------------------------------- */
int FixWallGran::pack_restart(int i, double *buf)
{
int m = 0;
buf[m++] = 4;
buf[m++] = shear[i][0];
buf[m++] = shear[i][1];
buf[m++] = shear[i][2];
return m;
}
/* ----------------------------------------------------------------------
unpack values from atom->extra array to restart the fix
------------------------------------------------------------------------- */
void FixWallGran::unpack_restart(int nlocal, int nth)
{
double **extra = atom->extra;
// skip to Nth set of extra values
int m = 0;
for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]);
m++;
shear[nlocal][0] = extra[nlocal][m++];
shear[nlocal][1] = extra[nlocal][m++];
shear[nlocal][2] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
maxsize of any atom's restart data
------------------------------------------------------------------------- */
int FixWallGran::maxsize_restart()
{
return 4;
}
/* ----------------------------------------------------------------------
size of atom nlocal's restart data
------------------------------------------------------------------------- */
int FixWallGran::size_restart(int nlocal)
{
return 4;
}
/* ---------------------------------------------------------------------- */
void FixWallGran::reset_dt()
{
dt = update->dt;
}
diff --git a/src/KSPACE/fft3d.cpp b/src/KSPACE/fft3d.cpp
index 638dd46f8..dd5cb9a9f 100644
--- a/src/KSPACE/fft3d.cpp
+++ b/src/KSPACE/fft3d.cpp
@@ -1,995 +1,995 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Jim Shepherd (GA Tech) added SGI SCSL support
------------------------------------------------------------------------- */
#include "mpi.h"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "fft3d.h"
#include "remap.h"
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ----------------------------------------------------------------------
Data layout for 3d FFTs:
data set of Nfast x Nmid x Nslow elements is owned by P procs
on input, each proc owns a subsection of the elements
on output, each proc will own a (possibly different) subsection
my subsection must not overlap with any other proc's subsection,
i.e. the union of all proc's input (or output) subsections must
exactly tile the global Nfast x Nmid x Nslow data set
when called from C, all subsection indices are
C-style from 0 to N-1 where N = Nfast or Nmid or Nslow
when called from F77, all subsection indices are
F77-style from 1 to N where N = Nfast or Nmid or Nslow
a proc can own 0 elements on input or output
by specifying hi index < lo index
on both input and output, data is stored contiguously on a processor
with a fast-varying, mid-varying, and slow-varying index
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Perform 3d FFT
Arguments:
in starting address of input data on this proc
out starting address of where output data for this proc
will be placed (can be same as in)
flag 1 for forward FFT, -1 for inverse FFT
plan plan returned by previous call to fft_3d_create_plan
------------------------------------------------------------------------- */
void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
{
int i,total,length,offset,num;
double norm;
FFT_DATA *data,*copy;
// system specific constants
#ifdef FFT_SCSL
int isys = 0;
FFT_PREC scalef = 1.0;
#endif
#ifdef FFT_DEC
char c = 'C';
char f = 'F';
char b = 'B';
int one = 1;
#endif
#ifdef FFT_T3E
int isys = 0;
double scalef = 1.0;
#endif
// pre-remap to prepare for 1st FFTs if needed
// copy = loc for remap result
if (plan->pre_plan) {
if (plan->pre_target == 0) copy = out;
else copy = plan->copy;
remap_3d((double *) in, (double *) copy, (double *) plan->scratch,
plan->pre_plan);
data = copy;
}
else
data = in;
// 1d FFTs along fast axis
total = plan->total1;
length = plan->length1;
#ifdef FFT_SGI
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,&data[offset],1,plan->coeff1);
#endif
#ifdef FFT_SCSL
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,scalef,&data[offset],&data[offset],plan->coeff1,
plan->work1,&isys);
#endif
#ifdef FFT_INTEL
for (offset = 0; offset < total; offset += length)
FFT_1D(&data[offset],&length,&flag,plan->coeff1);
#endif
#ifdef FFT_DEC
if (flag == -1)
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length,&one);
else
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length,&one);
#endif
#ifdef FFT_T3E
for (offset = 0; offset < total; offset += length)
FFT_1D(&flag,&length,&scalef,&data[offset],&data[offset],plan->coeff1,
plan->work1,&isys);
#endif
#ifdef FFT_FFTW
if (flag == -1)
fftw(plan->plan_fast_forward,total/length,data,1,length,NULL,0,0);
else
fftw(plan->plan_fast_backward,total/length,data,1,length,NULL,0,0);
#endif
// 1st mid-remap to prepare for 2nd FFTs
// copy = loc for remap result
if (plan->mid1_target == 0) copy = out;
else copy = plan->copy;
remap_3d((double *) data, (double *) copy, (double *) plan->scratch,
plan->mid1_plan);
data = copy;
// 1d FFTs along mid axis
total = plan->total2;
length = plan->length2;
#ifdef FFT_SGI
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,&data[offset],1,plan->coeff2);
#endif
#ifdef FFT_SCSL
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,scalef,&data[offset],&data[offset],plan->coeff2,
plan->work2,&isys);
#endif
#ifdef FFT_INTEL
for (offset = 0; offset < total; offset += length)
FFT_1D(&data[offset],&length,&flag,plan->coeff2);
#endif
#ifdef FFT_DEC
if (flag == -1)
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length,&one);
else
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length,&one);
#endif
#ifdef FFT_T3E
for (offset = 0; offset < total; offset += length)
FFT_1D(&flag,&length,&scalef,&data[offset],&data[offset],plan->coeff2,
plan->work2,&isys);
#endif
#ifdef FFT_FFTW
if (flag == -1)
fftw(plan->plan_mid_forward,total/length,data,1,length,NULL,0,0);
else
fftw(plan->plan_mid_backward,total/length,data,1,length,NULL,0,0);
#endif
// 2nd mid-remap to prepare for 3rd FFTs
// copy = loc for remap result
if (plan->mid2_target == 0) copy = out;
else copy = plan->copy;
remap_3d((double *) data, (double *) copy, (double *) plan->scratch,
plan->mid2_plan);
data = copy;
// 1d FFTs along slow axis
total = plan->total3;
length = plan->length3;
#ifdef FFT_SGI
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,&data[offset],1,plan->coeff3);
#endif
#ifdef FFT_SCSL
for (offset = 0; offset < total; offset += length)
FFT_1D(flag,length,scalef,&data[offset],&data[offset],plan->coeff3,
plan->work3,&isys);
#endif
#ifdef FFT_INTEL
for (offset = 0; offset < total; offset += length)
FFT_1D(&data[offset],&length,&flag,plan->coeff3);
#endif
#ifdef FFT_DEC
if (flag == -1)
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length,&one);
else
for (offset = 0; offset < total; offset += length)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length,&one);
#endif
#ifdef FFT_T3E
for (offset = 0; offset < total; offset += length)
FFT_1D(&flag,&length,&scalef,&data[offset],&data[offset],plan->coeff3,
plan->work3,&isys);
#endif
#ifdef FFT_FFTW
if (flag == -1)
fftw(plan->plan_slow_forward,total/length,data,1,length,NULL,0,0);
else
fftw(plan->plan_slow_backward,total/length,data,1,length,NULL,0,0);
#endif
// post-remap to put data in output format if needed
// destination is always out
if (plan->post_plan)
remap_3d((double *) data, (double *) out, (double *) plan->scratch,
plan->post_plan);
// scaling if required
#ifndef FFT_T3E
if (flag == 1 && plan->scaled) {
norm = plan->norm;
num = plan->normnum;
for (i = 0; i < num; i++) {
out[i].re *= norm;
out[i].im *= norm;
}
}
#endif
#ifdef FFT_T3E
if (flag == 1 && plan->scaled) {
norm = plan->norm;
num = plan->normnum;
for (i = 0; i < num; i++) out[i] *= (norm,norm);
}
#endif
}
/* ----------------------------------------------------------------------
Create plan for performing a 3d FFT
Arguments:
comm MPI communicator for the P procs which own the data
nfast,nmid,nslow size of global 3d matrix
in_ilo,in_ihi input bounds of data I own in fast index
in_jlo,in_jhi input bounds of data I own in mid index
in_klo,in_khi input bounds of data I own in slow index
out_ilo,out_ihi output bounds of data I own in fast index
out_jlo,out_jhi output bounds of data I own in mid index
out_klo,out_khi output bounds of data I own in slow index
scaled 0 = no scaling of result, 1 = scaling
permute permutation in storage order of indices on output
0 = no permutation
1 = permute once = mid->fast, slow->mid, fast->slow
2 = permute twice = slow->fast, fast->mid, mid->slow
nbuf returns size of internal storage buffers used by FFT
------------------------------------------------------------------------- */
struct fft_plan_3d *fft_3d_create_plan(
MPI_Comm comm, int nfast, int nmid, int nslow,
int in_ilo, int in_ihi, int in_jlo, int in_jhi,
int in_klo, int in_khi,
int out_ilo, int out_ihi, int out_jlo, int out_jhi,
int out_klo, int out_khi,
int scaled, int permute, int *nbuf)
{
struct fft_plan_3d *plan;
int me,nprocs;
int i,num,flag,remapflag,fftflag;
int first_ilo,first_ihi,first_jlo,first_jhi,first_klo,first_khi;
int second_ilo,second_ihi,second_jlo,second_jhi,second_klo,second_khi;
int third_ilo,third_ihi,third_jlo,third_jhi,third_klo,third_khi;
int out_size,first_size,second_size,third_size,copy_size,scratch_size;
int np1,np2,ip1,ip2;
int list[50];
// system specific variables
#ifdef FFT_SCSL
FFT_DATA dummy_d[5];
FFT_PREC dummy_p[5];
int isign,isys;
FFT_PREC scalef;
#endif
#ifdef FFT_INTEL
FFT_DATA dummy;
#endif
#ifdef FFT_T3E
FFT_DATA dummy[5];
int isign,isys;
double scalef;
#endif
// query MPI info
MPI_Comm_rank(comm,&me);
MPI_Comm_size(comm,&nprocs);
#ifdef FFT_NONE
if (me == 0) {
printf("ERROR: Cannot use FFTs with FFT_NONE set\n");
return NULL;
}
#endif
// compute division of procs in 2 dimensions not on-processor
bifactor(nprocs,&np1,&np2);
ip1 = me % np1;
ip2 = me/np1;
// allocate memory for plan data struct
plan = (struct fft_plan_3d *) malloc(sizeof(struct fft_plan_3d));
if (plan == NULL) return NULL;
// remap from initial distribution to layout needed for 1st set of 1d FFTs
// not needed if all procs own entire fast axis initially
// first indices = distribution after 1st set of FFTs
if (in_ilo == 0 && in_ihi == nfast-1)
flag = 0;
else
flag = 1;
MPI_Allreduce(&flag,&remapflag,1,MPI_INT,MPI_MAX,comm);
if (remapflag == 0) {
first_ilo = in_ilo;
first_ihi = in_ihi;
first_jlo = in_jlo;
first_jhi = in_jhi;
first_klo = in_klo;
first_khi = in_khi;
plan->pre_plan = NULL;
}
else {
first_ilo = 0;
first_ihi = nfast - 1;
first_jlo = ip1*nmid/np1;
first_jhi = (ip1+1)*nmid/np1 - 1;
first_klo = ip2*nslow/np2;
first_khi = (ip2+1)*nslow/np2 - 1;
plan->pre_plan =
remap_3d_create_plan(comm,in_ilo,in_ihi,in_jlo,in_jhi,in_klo,in_khi,
first_ilo,first_ihi,first_jlo,first_jhi,
first_klo,first_khi,2,0,0,FFT_PRECISION);
if (plan->pre_plan == NULL) return NULL;
}
// 1d FFTs along fast axis
plan->length1 = nfast;
plan->total1 = nfast * (first_jhi-first_jlo+1) * (first_khi-first_klo+1);
// remap from 1st to 2nd FFT
// choose which axis is split over np1 vs np2 to minimize communication
// second indices = distribution after 2nd set of FFTs
second_ilo = ip1*nfast/np1;
second_ihi = (ip1+1)*nfast/np1 - 1;
second_jlo = 0;
second_jhi = nmid - 1;
second_klo = ip2*nslow/np2;
second_khi = (ip2+1)*nslow/np2 - 1;
plan->mid1_plan =
remap_3d_create_plan(comm,
first_ilo,first_ihi,first_jlo,first_jhi,
first_klo,first_khi,
second_ilo,second_ihi,second_jlo,second_jhi,
second_klo,second_khi,2,1,0,FFT_PRECISION);
if (plan->mid1_plan == NULL) return NULL;
// 1d FFTs along mid axis
plan->length2 = nmid;
plan->total2 = (second_ihi-second_ilo+1) * nmid * (second_khi-second_klo+1);
// remap from 2nd to 3rd FFT
// if final distribution is permute=2 with all procs owning entire slow axis
// then this remapping goes directly to final distribution
// third indices = distribution after 3rd set of FFTs
if (permute == 2 && out_klo == 0 && out_khi == nslow-1)
flag = 0;
else
flag = 1;
MPI_Allreduce(&flag,&remapflag,1,MPI_INT,MPI_MAX,comm);
if (remapflag == 0) {
third_ilo = out_ilo;
third_ihi = out_ihi;
third_jlo = out_jlo;
third_jhi = out_jhi;
third_klo = out_klo;
third_khi = out_khi;
}
else {
third_ilo = ip1*nfast/np1;
third_ihi = (ip1+1)*nfast/np1 - 1;
third_jlo = ip2*nmid/np2;
third_jhi = (ip2+1)*nmid/np2 - 1;
third_klo = 0;
third_khi = nslow - 1;
}
plan->mid2_plan =
remap_3d_create_plan(comm,
second_jlo,second_jhi,second_klo,second_khi,
second_ilo,second_ihi,
third_jlo,third_jhi,third_klo,third_khi,
third_ilo,third_ihi,2,1,0,FFT_PRECISION);
if (plan->mid2_plan == NULL) return NULL;
// 1d FFTs along slow axis
plan->length3 = nslow;
plan->total3 = (third_ihi-third_ilo+1) * (third_jhi-third_jlo+1) * nslow;
// remap from 3rd FFT to final distribution
// not needed if permute = 2 and third indices = out indices on all procs
if (permute == 2 &&
out_ilo == third_ilo && out_ihi == third_ihi &&
out_jlo == third_jlo && out_jhi == third_jhi &&
out_klo == third_klo && out_khi == third_khi)
flag = 0;
else
flag = 1;
MPI_Allreduce(&flag,&remapflag,1,MPI_INT,MPI_MAX,comm);
if (remapflag == 0)
plan->post_plan = NULL;
else {
plan->post_plan =
remap_3d_create_plan(comm,
third_klo,third_khi,third_ilo,third_ihi,
third_jlo,third_jhi,
out_klo,out_khi,out_ilo,out_ihi,
out_jlo,out_jhi,2,(permute+1)%3,0,FFT_PRECISION);
if (plan->post_plan == NULL) return NULL;
}
// configure plan memory pointers and allocate work space
// out_size = amount of memory given to FFT by user
// first/second/third_size = amount of memory needed after pre,mid1,mid2 remaps
// copy_size = amount needed internally for extra copy of data
// scratch_size = amount needed internally for remap scratch space
// for each remap:
// out space used for result if big enough, else require copy buffer
// accumulate largest required remap scratch space
out_size = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) * (out_khi-out_klo+1);
first_size = (first_ihi-first_ilo+1) * (first_jhi-first_jlo+1) *
(first_khi-first_klo+1);
second_size = (second_ihi-second_ilo+1) * (second_jhi-second_jlo+1) *
(second_khi-second_klo+1);
third_size = (third_ihi-third_ilo+1) * (third_jhi-third_jlo+1) *
(third_khi-third_klo+1);
copy_size = 0;
scratch_size = 0;
if (plan->pre_plan) {
if (first_size <= out_size)
plan->pre_target = 0;
else {
plan->pre_target = 1;
copy_size = MAX(copy_size,first_size);
}
scratch_size = MAX(scratch_size,first_size);
}
if (plan->mid1_plan) {
if (second_size <= out_size)
plan->mid1_target = 0;
else {
plan->mid1_target = 1;
copy_size = MAX(copy_size,second_size);
}
scratch_size = MAX(scratch_size,second_size);
}
if (plan->mid2_plan) {
if (third_size <= out_size)
plan->mid2_target = 0;
else {
plan->mid2_target = 1;
copy_size = MAX(copy_size,third_size);
}
scratch_size = MAX(scratch_size,third_size);
}
if (plan->post_plan)
scratch_size = MAX(scratch_size,out_size);
*nbuf = copy_size + scratch_size;
if (copy_size) {
plan->copy = (FFT_DATA *) malloc(copy_size*sizeof(FFT_DATA));
if (plan->copy == NULL) return NULL;
}
else plan->copy = NULL;
if (scratch_size) {
plan->scratch = (FFT_DATA *) malloc(scratch_size*sizeof(FFT_DATA));
if (plan->scratch == NULL) return NULL;
}
else plan->scratch = NULL;
// system specific pre-computation of 1d FFT coeffs
// and scaling normalization
#ifdef FFT_SGI
plan->coeff1 = (FFT_DATA *) malloc((nfast+15)*sizeof(FFT_DATA));
plan->coeff2 = (FFT_DATA *) malloc((nmid+15)*sizeof(FFT_DATA));
plan->coeff3 = (FFT_DATA *) malloc((nslow+15)*sizeof(FFT_DATA));
if (plan->coeff1 == NULL || plan->coeff2 == NULL ||
plan->coeff3 == NULL) return NULL;
FFT_1D_INIT(nfast,plan->coeff1);
FFT_1D_INIT(nmid,plan->coeff2);
FFT_1D_INIT(nslow,plan->coeff3);
if (scaled == 0)
plan->scaled = 0;
else {
plan->scaled = 1;
plan->norm = 1.0/(nfast*nmid*nslow);
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
#endif
#ifdef FFT_SCSL
plan->coeff1 = (FFT_PREC *) malloc((2*nfast+30)*sizeof(FFT_PREC));
plan->coeff2 = (FFT_PREC *) malloc((2*nmid+30)*sizeof(FFT_PREC));
plan->coeff3 = (FFT_PREC *) malloc((2*nslow+30)*sizeof(FFT_PREC));
if (plan->coeff1 == NULL || plan->coeff2 == NULL ||
plan->coeff3 == NULL) return NULL;
plan->work1 = (FFT_PREC *) malloc((2*nfast)*sizeof(FFT_PREC));
plan->work2 = (FFT_PREC *) malloc((2*nmid)*sizeof(FFT_PREC));
plan->work3 = (FFT_PREC *) malloc((2*nslow)*sizeof(FFT_PREC));
if (plan->work1 == NULL || plan->work2 == NULL ||
plan->work3 == NULL) return NULL;
isign = 0;
scalef = 1.0;
isys = 0;
FFT_1D_INIT(isign,nfast,scalef,dummy_d,dummy_d,plan->coeff1,dummy_p,&isys);
FFT_1D_INIT(isign,nmid,scalef,dummy_d,dummy_d,plan->coeff2,dummy_p,&isys);
FFT_1D_INIT(isign,nslow,scalef,dummy_d,dummy_d,plan->coeff3,dummy_p,&isys);
if (scaled == 0)
plan->scaled = 0;
else {
plan->scaled = 1;
plan->norm = 1.0/(nfast*nmid*nslow);
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
#endif
#ifdef FFT_INTEL
flag = 0;
num = 0;
factor(nfast,&num,list);
for (i = 0; i < num; i++)
if (list[i] != 2 && list[i] != 3 && list[i] != 5) flag = 1;
num = 0;
factor(nmid,&num,list);
for (i = 0; i < num; i++)
if (list[i] != 2 && list[i] != 3 && list[i] != 5) flag = 1;
num = 0;
factor(nslow,&num,list);
for (i = 0; i < num; i++)
if (list[i] != 2 && list[i] != 3 && list[i] != 5) flag = 1;
MPI_Allreduce(&flag,&fftflag,1,MPI_INT,MPI_MAX,comm);
if (fftflag) {
if (me == 0) printf("ERROR: FFTs are not power of 2,3,5\n");
return NULL;
}
plan->coeff1 = (FFT_DATA *) malloc((3*nfast/2+1)*sizeof(FFT_DATA));
plan->coeff2 = (FFT_DATA *) malloc((3*nmid/2+1)*sizeof(FFT_DATA));
plan->coeff3 = (FFT_DATA *) malloc((3*nslow/2+1)*sizeof(FFT_DATA));
if (plan->coeff1 == NULL || plan->coeff2 == NULL ||
plan->coeff3 == NULL) return NULL;
flag = 0;
FFT_1D_INIT(&dummy,&nfast,&flag,plan->coeff1);
FFT_1D_INIT(&dummy,&nmid,&flag,plan->coeff2);
FFT_1D_INIT(&dummy,&nslow,&flag,plan->coeff3);
if (scaled == 0) {
plan->scaled = 1;
plan->norm = nfast*nmid*nslow;
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
else
plan->scaled = 0;
#endif
#ifdef FFT_DEC
if (scaled == 0) {
plan->scaled = 1;
plan->norm = nfast*nmid*nslow;
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
else
plan->scaled = 0;
#endif
#ifdef FFT_T3E
plan->coeff1 = (double *) malloc((12*nfast)*sizeof(double));
plan->coeff2 = (double *) malloc((12*nmid)*sizeof(double));
plan->coeff3 = (double *) malloc((12*nslow)*sizeof(double));
if (plan->coeff1 == NULL || plan->coeff2 == NULL ||
plan->coeff3 == NULL) return NULL;
plan->work1 = (double *) malloc((8*nfast)*sizeof(double));
plan->work2 = (double *) malloc((8*nmid)*sizeof(double));
plan->work3 = (double *) malloc((8*nslow)*sizeof(double));
if (plan->work1 == NULL || plan->work2 == NULL ||
plan->work3 == NULL) return NULL;
isign = 0;
scalef = 1.0;
isys = 0;
FFT_1D_INIT(&isign,&nfast,&scalef,dummy,dummy,plan->coeff1,dummy,&isys);
FFT_1D_INIT(&isign,&nmid,&scalef,dummy,dummy,plan->coeff2,dummy,&isys);
FFT_1D_INIT(&isign,&nslow,&scalef,dummy,dummy,plan->coeff3,dummy,&isys);
if (scaled == 0)
plan->scaled = 0;
else {
plan->scaled = 1;
plan->norm = 1.0/(nfast*nmid*nslow);
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
#endif
#ifdef FFT_FFTW
plan->plan_fast_forward =
fftw_create_plan(nfast,FFTW_FORWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
plan->plan_fast_backward =
fftw_create_plan(nfast,FFTW_BACKWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
if (nmid == nfast) {
plan->plan_mid_forward = plan->plan_fast_forward;
plan->plan_mid_backward = plan->plan_fast_backward;
}
else {
plan->plan_mid_forward =
fftw_create_plan(nmid,FFTW_FORWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
plan->plan_mid_backward =
fftw_create_plan(nmid,FFTW_BACKWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
}
if (nslow == nfast) {
plan->plan_slow_forward = plan->plan_fast_forward;
plan->plan_slow_backward = plan->plan_fast_backward;
}
else if (nslow == nmid) {
plan->plan_slow_forward = plan->plan_mid_forward;
plan->plan_slow_backward = plan->plan_mid_backward;
}
else {
plan->plan_slow_forward =
fftw_create_plan(nslow,FFTW_FORWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
plan->plan_slow_backward =
fftw_create_plan(nslow,FFTW_BACKWARD,FFTW_ESTIMATE | FFTW_IN_PLACE);
}
if (scaled == 0)
plan->scaled = 0;
else {
plan->scaled = 1;
plan->norm = 1.0/(nfast*nmid*nslow);
plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) *
(out_khi-out_klo+1);
}
#endif
return plan;
}
/* ----------------------------------------------------------------------
Destroy a 3d fft plan
------------------------------------------------------------------------- */
void fft_3d_destroy_plan(struct fft_plan_3d *plan)
{
if (plan->pre_plan) remap_3d_destroy_plan(plan->pre_plan);
if (plan->mid1_plan) remap_3d_destroy_plan(plan->mid1_plan);
if (plan->mid2_plan) remap_3d_destroy_plan(plan->mid2_plan);
if (plan->post_plan) remap_3d_destroy_plan(plan->post_plan);
if (plan->copy) free(plan->copy);
if (plan->scratch) free(plan->scratch);
#ifdef FFT_SGI
free(plan->coeff1);
free(plan->coeff2);
free(plan->coeff3);
#endif
#ifdef FFT_SCSL
free(plan->coeff1);
free(plan->coeff2);
free(plan->coeff3);
free(plan->work1);
free(plan->work2);
free(plan->work3);
#endif
#ifdef FFT_INTEL
free(plan->coeff1);
free(plan->coeff2);
free(plan->coeff3);
#endif
#ifdef FFT_T3E
free(plan->coeff1);
free(plan->coeff2);
free(plan->coeff3);
free(plan->work1);
free(plan->work2);
free(plan->work3);
#endif
#ifdef FFT_FFTW
if (plan->plan_slow_forward != plan->plan_mid_forward &&
plan->plan_slow_forward != plan->plan_fast_forward) {
fftw_destroy_plan(plan->plan_slow_forward);
fftw_destroy_plan(plan->plan_slow_backward);
}
if (plan->plan_mid_forward != plan->plan_fast_forward) {
fftw_destroy_plan(plan->plan_mid_forward);
fftw_destroy_plan(plan->plan_mid_backward);
}
fftw_destroy_plan(plan->plan_fast_forward);
fftw_destroy_plan(plan->plan_fast_backward);
#endif
free(plan);
}
/* ----------------------------------------------------------------------
recursively divide n into small factors, return them in list
------------------------------------------------------------------------- */
void factor(int n, int *num, int *list)
{
if (n == 1) {
return;
}
else if (n % 2 == 0) {
*list = 2;
(*num)++;
factor(n/2,num,list+1);
}
else if (n % 3 == 0) {
*list = 3;
(*num)++;
factor(n/3,num,list+1);
}
else if (n % 5 == 0) {
*list = 5;
(*num)++;
factor(n/5,num,list+1);
}
else if (n % 7 == 0) {
*list = 7;
(*num)++;
factor(n/7,num,list+1);
}
else if (n % 11 == 0) {
*list = 11;
(*num)++;
factor(n/11,num,list+1);
}
else if (n % 13 == 0) {
*list = 13;
(*num)++;
factor(n/13,num,list+1);
}
else {
*list = n;
(*num)++;
return;
}
}
/* ----------------------------------------------------------------------
divide n into 2 factors of as equal size as possible
------------------------------------------------------------------------- */
void bifactor(int n, int *factor1, int *factor2)
{
int n1,n2,facmax;
- facmax = static_cast<int> (sqrt(n));
+ facmax = static_cast<int> (sqrt((double) n));
for (n1 = facmax; n1 > 0; n1--) {
n2 = n/n1;
if (n1*n2 == n) {
*factor1 = n1;
*factor2 = n2;
return;
}
}
}
/* ----------------------------------------------------------------------
perform just the 1d FFTs needed by a 3d FFT, no data movement
used for timing purposes
Arguments:
in starting address of input data on this proc, all set to 0.0
nsize size of in
flag 1 for forward FFT, -1 for inverse FFT
plan plan returned by previous call to fft_3d_create_plan
------------------------------------------------------------------------- */
void fft_1d_only(FFT_DATA *data, int nsize, int flag, struct fft_plan_3d *plan)
{
int i,total,length,offset,num;
double norm;
// system specific constants
#ifdef FFT_SCSL
int isys = 0;
FFT_PREC scalef = 1.0;
#endif
#ifdef FFT_DEC
char c = 'C';
char f = 'F';
char b = 'B';
int one = 1;
#endif
#ifdef FFT_T3E
int isys = 0;
double scalef = 1.0;
#endif
// total = size of data needed in each dim
// length = length of 1d FFT in each dim
// total/length = # of 1d FFTs in each dim
// if total > nsize, limit # of 1d FFTs to available size of data
int total1 = plan->total1;
int length1 = plan->length1;
int total2 = plan->total2;
int length2 = plan->length2;
int total3 = plan->total3;
int length3 = plan->length3;
if (total1 > nsize) total1 = (nsize/length1) * length1;
if (total2 > nsize) total2 = (nsize/length2) * length2;
if (total3 > nsize) total3 = (nsize/length3) * length3;
// perform 1d FFTs in each of 3 dimensions
// data is just an array of 0.0
#ifdef FFT_SGI
for (offset = 0; offset < total1; offset += length1)
FFT_1D(flag,length1,&data[offset],1,plan->coeff1);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(flag,length2,&data[offset],1,plan->coeff2);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(flag,length3,&data[offset],1,plan->coeff3);
#endif
#ifdef FFT_SCSL
for (offset = 0; offset < total1; offset += length1)
FFT_1D(flag,length1,scalef,&data[offset],&data[offset],plan->coeff1,
plan->work1,&isys);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(flag,length2,scalef,&data[offset],&data[offset],plan->coeff2,
plan->work2,&isys);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(flag,length3,scalef,&data[offset],&data[offset],plan->coeff3,
plan->work3,&isys);
#endif
#ifdef FFT_INTEL
for (offset = 0; offset < total1; offset += length1)
FFT_1D(&data[offset],&length1,&flag,plan->coeff1);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(&data[offset],&length2,&flag,plan->coeff2);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(&data[offset],&length3,&flag,plan->coeff3);
#endif
#ifdef FFT_DEC
if (flag == -1) {
for (offset = 0; offset < total1; offset += length1)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length1,&one);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length2,&one);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(&c,&c,&f,&data[offset],&data[offset],&length3,&one);
} else {
for (offset = 0; offset < total1; offset += length1)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length1,&one);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length2,&one);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(&c,&c,&b,&data[offset],&data[offset],&length3,&one);
}
#endif
#ifdef FFT_T3E
for (offset = 0; offset < total1; offset += length1)
FFT_1D(&flag,&length1,&scalef,&data[offset],&data[offset],plan->coeff1,
plan->work1,&isys);
for (offset = 0; offset < total2; offset += length2)
FFT_1D(&flag,&length2,&scalef,&data[offset],&data[offset],plan->coeff2,
plan->work2,&isys);
for (offset = 0; offset < total3; offset += length3)
FFT_1D(&flag,&length3,&scalef,&data[offset],&data[offset],plan->coeff3,
plan->work3,&isys);
#endif
#ifdef FFT_FFTW
if (flag == -1) {
fftw(plan->plan_fast_forward,total1/length1,data,1,0,NULL,0,0);
fftw(plan->plan_mid_forward,total2/length2,data,1,0,NULL,0,0);
fftw(plan->plan_slow_forward,total3/length3,data,1,0,NULL,0,0);
} else {
fftw(plan->plan_fast_backward,total1/length1,data,1,0,NULL,0,0);
fftw(plan->plan_mid_backward,total2/length2,data,1,0,NULL,0,0);
fftw(plan->plan_slow_backward,total3/length3,data,1,0,NULL,0,0);
}
#endif
// scaling if required
// limit num to size of data
#ifndef FFT_T3E
if (flag == 1 && plan->scaled) {
norm = plan->norm;
num = MIN(plan->normnum,nsize);
for (i = 0; i < num; i++) {
data[i].re *= norm;
data[i].im *= norm;
}
}
#endif
#ifdef FFT_T3E
if (flag == 1 && plan->scaled) {
norm = plan->norm;
num = MIN(plan->normnum,nsize);
for (i = 0; i < num; i++) data[i] *= (norm,norm);
}
#endif
}
diff --git a/src/KSPACE/pair_coul_long.cpp b/src/KSPACE/pair_coul_long.cpp
index c2d01d152..fd8d90b3f 100644
--- a/src/KSPACE/pair_coul_long.cpp
+++ b/src/KSPACE/pair_coul_long.cpp
@@ -1,575 +1,575 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_coul_long.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairCoulLong::PairCoulLong(LAMMPS *lmp) : Pair(lmp)
{
ftable = NULL;
}
/* ---------------------------------------------------------------------- */
PairCoulLong::~PairCoulLong()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(scale);
}
if (ftable) free_tables();
}
/* ---------------------------------------------------------------------- */
void PairCoulLong::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itable,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,ecoul,fpair;
double fraction,table;
double r,r2inv,forcecoul,factor_coul;
double grij,expm2,prefactor,t,erfc;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cut_coulsq) {
r2inv = 1.0/rsq;
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = scale[itype][jtype] * qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = scale[itype][jtype] * qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
fpair = forcecoul * r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (!ncoultablebits || rsq <= tabinnersq)
ecoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
ecoul = scale[itype][jtype] * qtmp*q[j] * table;
}
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
0.0,ecoul,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairCoulLong::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(scale,n+1,n+1,"pair:scale");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairCoulLong::settings(int narg, char **arg)
{
if (narg != 1) error->all("Illegal pair_style command");
cut_coul = force->numeric(arg[0]);
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairCoulLong::coeff(int narg, char **arg)
{
if (narg != 2) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
scale[i][j] = 1.0;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairCoulLong::init_style()
{
int i,j;
if (!atom->q_flag)
error->all("Pair style lj/cut/coul/long requires atom attribute q");
int irequest = neighbor->request(this);
cut_coulsq = cut_coul * cut_coul;
// set & error check interior rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0) {
cut_respa = ((Respa *) update->integrate)->cutoff;
if (cut_coul < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
} else cut_respa = NULL;
// insure use of KSpace long-range solver, set g_ewald
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
// setup force tables
if (ncoultablebits) init_tables();
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairCoulLong::init_one(int i, int j)
{
scale[j][i] = scale[i][j];
return cut_coul;
}
/* ----------------------------------------------------------------------
setup force tables used in compute routines
------------------------------------------------------------------------- */
void PairCoulLong::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable,"pair:vtable");
memory->create(ptable,ntable,"pair:ptable");
memory->create(dvtable,ntable,"pair:dvtable");
memory->create(dptable,ntable,"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq) {
rsq_lookup.f = cut_coulsq;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairCoulLong::write_restart(FILE *fp)
{
write_restart_settings(fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairCoulLong::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairCoulLong::write_restart_settings(FILE *fp)
{
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairCoulLong::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairCoulLong::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
double PairCoulLong::single(int i, int j, int itype, int jtype,
double rsq,
double factor_coul, double factor_lj,
double &fforce)
{
double r2inv,r,grij,expm2,t,erfc,prefactor;
double fraction,table,forcecoul,phicoul;
int itable;
r2inv = 1.0/rsq;
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = atom->q[i]*atom->q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = atom->q[i]*atom->q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
fforce = forcecoul * r2inv;
if (!ncoultablebits || rsq <= tabinnersq)
phicoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
phicoul = atom->q[i]*atom->q[j] * table;
}
if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor;
return phicoul;
}
/* ---------------------------------------------------------------------- */
void *PairCoulLong::extract(char *str, int &dim)
{
if (strcmp(str,"cut_coul") == 0) {
dim = 0;
return (void *) &cut_coul;
}
if (strcmp(str,"scale") == 0) {
dim = 2;
return (void *) scale;
}
return NULL;
}
diff --git a/src/KSPACE/pair_lj_charmm_coul_long.cpp b/src/KSPACE/pair_lj_charmm_coul_long.cpp
index d87d0c2ba..539cf34f7 100644
--- a/src/KSPACE/pair_lj_charmm_coul_long.cpp
+++ b/src/KSPACE/pair_lj_charmm_coul_long.cpp
@@ -1,1200 +1,1200 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_lj_charmm_coul_long.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{GEOMETRIC,ARITHMETIC,SIXTHPOWER}; // same as in pair.cpp
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairLJCharmmCoulLong::PairLJCharmmCoulLong(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
ftable = NULL;
implicit = 0;
mix_flag = ARITHMETIC;
}
/* ---------------------------------------------------------------------- */
PairLJCharmmCoulLong::~PairLJCharmmCoulLong()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(eps14);
memory->destroy(sigma14);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(lj14_1);
memory->destroy(lj14_2);
memory->destroy(lj14_3);
memory->destroy(lj14_4);
}
if (ftable) free_tables();
}
/* ---------------------------------------------------------------------- */
void PairLJCharmmCoulLong::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
double fraction,table;
double r,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double grij,expm2,prefactor,t,erfc;
double philj,switch1,switch2;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_bothsq) {
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq) {
r6inv = r2inv*r2inv*r2inv;
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
} else forcelj = 0.0;
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq)
ecoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
ecoul = qtmp*q[j] * table;
}
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
} else ecoul = 0.0;
if (rsq < cut_ljsq) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
evdwl *= switch1;
}
evdwl *= factor_lj;
} else evdwl = 0.0;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairLJCharmmCoulLong::compute_inner()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listinner->inum;
ilist = listinner->ilist;
numneigh = listinner->numneigh;
firstneigh = listinner->firstneigh;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq) {
r2inv = 1.0/rsq;
forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul;
r6inv = r2inv*r2inv*r2inv;
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCharmmCoulLong::compute_middle()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double philj,switch1,switch2;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listmiddle->inum;
ilist = listmiddle->ilist;
numneigh = listmiddle->numneigh;
firstneigh = listmiddle->firstneigh;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq && rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul;
r6inv = r2inv*r2inv*r2inv;
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw - 3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCharmmCoulLong::compute_outer(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
double fraction,table;
double r,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double grij,expm2,prefactor,t,erfc;
double philj,switch1,switch2;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listouter->inum;
ilist = listouter->ilist;
numneigh = listouter->numneigh;
firstneigh = listouter->firstneigh;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cut_bothsq) {
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - 1.0);
if (rsq > cut_in_off_sq) {
if (rsq < cut_in_on_sq) {
rsw = (r - cut_in_off)/cut_in_diff;
forcecoul += prefactor*rsw*rsw*(3.0 - 2.0*rsw);
if (factor_coul < 1.0)
forcecoul -=
(1.0-factor_coul)*prefactor*rsw*rsw*(3.0 - 2.0*rsw);
} else {
forcecoul += prefactor;
if (factor_coul < 1.0)
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq && rsq > cut_in_off_sq) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
forcelj *= rsw*rsw*(3.0 - 2.0*rsw);
}
} else forcelj = 0.0;
fpair = (forcecoul + forcelj) * r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
ecoul = prefactor*erfc;
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
} else {
table = etable[itable] + fraction*detable[itable];
ecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ptable[itable] + fraction*dptable[itable];
prefactor = qtmp*q[j] * table;
ecoul -= (1.0-factor_coul)*prefactor;
}
}
} else ecoul = 0.0;
if (rsq < cut_ljsq) {
r6inv = r2inv*r2inv*r2inv;
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
evdwl *= switch1;
}
evdwl *= factor_lj;
} else evdwl = 0.0;
}
if (vflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
table = vtable[itable] + fraction*dvtable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ptable[itable] + fraction*dptable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq <= cut_in_off_sq) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
} else if (rsq <= cut_in_on_sq) {
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
}
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,delx,dely,delz);
}
}
}
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(eps14,n+1,n+1,"pair:eps14");
memory->create(sigma14,n+1,n+1,"pair:sigma14");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(lj14_1,n+1,n+1,"pair:lj14_1");
memory->create(lj14_2,n+1,n+1,"pair:lj14_2");
memory->create(lj14_3,n+1,n+1,"pair:lj14_3");
memory->create(lj14_4,n+1,n+1,"pair:lj14_4");
}
/* ----------------------------------------------------------------------
global settings
unlike other pair styles,
there are no individual pair settings that these override
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::settings(int narg, char **arg)
{
if (narg != 2 && narg != 3) error->all("Illegal pair_style command");
cut_lj_inner = force->numeric(arg[0]);
cut_lj = force->numeric(arg[1]);
if (narg == 2) cut_coul = cut_lj;
else cut_coul = force->numeric(arg[2]);
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::coeff(int narg, char **arg)
{
if (narg != 4 && narg != 6) error->all("Illegal pair_coeff command");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
double epsilon_one = force->numeric(arg[2]);
double sigma_one = force->numeric(arg[3]);
double eps14_one = epsilon_one;
double sigma14_one = sigma_one;
if (narg == 6) {
eps14_one = force->numeric(arg[4]);
sigma14_one = force->numeric(arg[5]);
}
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
eps14[i][j] = eps14_one;
sigma14[i][j] = sigma14_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::init_style()
{
if (!atom->q_flag)
error->all("Pair style lj/charmm/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 1 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
// require cut_lj_inner < cut_lj
if (cut_lj_inner >= cut_lj)
error->all("Pair inner cutoff >= Pair outer cutoff");
cut_lj_innersq = cut_lj_inner * cut_lj_inner;
cut_ljsq = cut_lj * cut_lj;
cut_coulsq = cut_coul * cut_coul;
cut_bothsq = MAX(cut_ljsq,cut_coulsq);
denom_lj = (cut_ljsq-cut_lj_innersq) * (cut_ljsq-cut_lj_innersq) *
(cut_ljsq-cut_lj_innersq);
// set & error check interior rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0) {
cut_respa = ((Respa *) update->integrate)->cutoff;
if (MIN(cut_lj,cut_coul) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
if (cut_lj_inner < cut_respa[1])
error->all("Pair inner cutoff < Respa interior cutoff");
} else cut_respa = NULL;
// insure use of KSpace long-range solver, set g_ewald
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
// setup force tables
if (ncoultablebits) init_tables();
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJCharmmCoulLong::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
eps14[i][j] = mix_energy(eps14[i][i],eps14[j][j],
sigma14[i][i],sigma14[j][j]);
sigma14[i][j] = mix_distance(sigma14[i][i],sigma14[j][j]);
}
double cut = MAX(cut_lj,cut_coul);
lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj14_1[i][j] = 48.0 * eps14[i][j] * pow(sigma14[i][j],12.0);
lj14_2[i][j] = 24.0 * eps14[i][j] * pow(sigma14[i][j],6.0);
lj14_3[i][j] = 4.0 * eps14[i][j] * pow(sigma14[i][j],12.0);
lj14_4[i][j] = 4.0 * eps14[i][j] * pow(sigma14[i][j],6.0);
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
lj14_1[j][i] = lj14_1[i][j];
lj14_2[j][i] = lj14_2[i][j];
lj14_3[j][i] = lj14_3[i][j];
lj14_4[j][i] = lj14_4[i][j];
return cut;
}
/* ----------------------------------------------------------------------
setup force tables used in compute routines
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable,"pair:vtable");
memory->create(ptable,ntable,"pair:ptable");
memory->create(dvtable,ntable,"pair:dvtable");
memory->create(dptable,ntable,"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq) {
rsq_lookup.f = cut_coulsq;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&eps14[i][j],sizeof(double),1,fp);
fwrite(&sigma14[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&eps14[i][j],sizeof(double),1,fp);
fread(&sigma14[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&eps14[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma14[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::write_restart_settings(FILE *fp)
{
fwrite(&cut_lj_inner,sizeof(double),1,fp);
fwrite(&cut_lj,sizeof(double),1,fp);
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&cut_lj_inner,sizeof(double),1,fp);
fread(&cut_lj,sizeof(double),1,fp);
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_lj_inner,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_lj,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairLJCharmmCoulLong::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
double PairLJCharmmCoulLong::single(int i, int j, int itype, int jtype,
double rsq,
double factor_coul, double factor_lj,
double &fforce)
{
double r2inv,r6inv,r,grij,expm2,t,erfc,prefactor;
double switch1,switch2,fraction,table,forcecoul,forcelj,phicoul,philj;
int itable;
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = atom->q[i]*atom->q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = atom->q[i]*atom->q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
switch2 = 12.0*rsq * (cut_ljsq-rsq) *
(rsq-cut_lj_innersq) / denom_lj;
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]);
forcelj = forcelj*switch1 + philj*switch2;
}
} else forcelj = 0.0;
fforce = (forcecoul + factor_lj*forcelj) * r2inv;
double eng = 0.0;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq)
phicoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
phicoul = atom->q[i]*atom->q[j] * table;
}
if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor;
eng += phicoul;
}
if (rsq < cut_ljsq) {
philj = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq) * (cut_ljsq-rsq) *
(cut_ljsq + 2.0*rsq - 3.0*cut_lj_innersq) / denom_lj;
philj *= switch1;
}
eng += factor_lj*philj;
}
return eng;
}
/* ---------------------------------------------------------------------- */
void *PairLJCharmmCoulLong::extract(char *str, int &dim)
{
dim = 2;
if (strcmp(str,"lj14_1") == 0) return (void *) lj14_1;
if (strcmp(str,"lj14_2") == 0) return (void *) lj14_2;
if (strcmp(str,"lj14_3") == 0) return (void *) lj14_3;
if (strcmp(str,"lj14_4") == 0) return (void *) lj14_4;
dim = 0;
if (strcmp(str,"implicit") == 0) return (void *) &implicit;
if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul;
return NULL;
}
diff --git a/src/KSPACE/pair_lj_cut_coul_long.cpp b/src/KSPACE/pair_lj_cut_coul_long.cpp
index fb9617bfc..7ab653b58 100644
--- a/src/KSPACE/pair_lj_cut_coul_long.cpp
+++ b/src/KSPACE/pair_lj_cut_coul_long.cpp
@@ -1,1132 +1,1132 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_lj_cut_coul_long.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairLJCutCoulLong::PairLJCutCoulLong(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
ftable = NULL;
}
/* ---------------------------------------------------------------------- */
PairLJCutCoulLong::~PairLJCutCoulLong()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut_lj);
memory->destroy(cut_ljsq);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(offset);
}
if (ftable) free_tables();
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLong::compute(int eflag, int vflag)
{
int i,ii,j,jj,inum,jnum,itype,jtype,itable;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
double fraction,table;
double r,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double grij,expm2,prefactor,t,erfc;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
} else forcelj = 0.0;
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq)
ecoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
ecoul = qtmp*q[j] * table;
}
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
} else ecoul = 0.0;
if (rsq < cut_ljsq[itype][jtype]) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
} else evdwl = 0.0;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLong::compute_inner()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listinner->inum;
ilist = listinner->ilist;
numneigh = listinner->numneigh;
firstneigh = listinner->firstneigh;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq) {
r2inv = 1.0/rsq;
forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul;
jtype = type[j];
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
} else forcelj = 0.0;
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLong::compute_middle()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listmiddle->inum;
ilist = listmiddle->ilist;
numneigh = listmiddle->numneigh;
firstneigh = listmiddle->firstneigh;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq && rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul;
jtype = type[j];
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
} else forcelj = 0.0;
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw - 3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLong::compute_outer(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
double fraction,table;
double r,r2inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj;
double grij,expm2,prefactor,t,erfc;
double rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x;
double **f = atom->f;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = listouter->inum;
ilist = listouter->ilist;
numneigh = listouter->numneigh;
firstneigh = listouter->firstneigh;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - 1.0);
if (rsq > cut_in_off_sq) {
if (rsq < cut_in_on_sq) {
rsw = (r - cut_in_off)/cut_in_diff;
forcecoul += prefactor*rsw*rsw*(3.0 - 2.0*rsw);
if (factor_coul < 1.0)
forcecoul -= (1.0-factor_coul)*prefactor*rsw*rsw*(3.0 - 2.0*rsw);
} else {
forcecoul += prefactor;
if (factor_coul < 1.0)
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq[itype][jtype] && rsq > cut_in_off_sq) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
forcelj *= rsw*rsw*(3.0 - 2.0*rsw);
}
} else forcelj = 0.0;
fpair = (forcecoul + forcelj) * r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
ecoul = prefactor*erfc;
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
} else {
table = etable[itable] + fraction*detable[itable];
ecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ptable[itable] + fraction*dptable[itable];
prefactor = qtmp*q[j] * table;
ecoul -= (1.0-factor_coul)*prefactor;
}
}
} else ecoul = 0.0;
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
} else evdwl = 0.0;
}
if (vflag) {
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
table = vtable[itable] + fraction*dvtable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ptable[itable] + fraction*dptable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq <= cut_in_off_sq) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
} else if (rsq <= cut_in_on_sq)
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = (forcecoul + factor_lj*forcelj) * r2inv;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,delx,dely,delz);
}
}
}
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJCutCoulLong::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut_lj,n+1,n+1,"pair:cut_lj");
memory->create(cut_ljsq,n+1,n+1,"pair:cut_ljsq");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLJCutCoulLong::settings(int narg, char **arg)
{
if (narg < 1 || narg > 2) error->all("Illegal pair_style command");
cut_lj_global = force->numeric(arg[0]);
if (narg == 1) cut_coul = cut_lj_global;
else cut_coul = force->numeric(arg[1]);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut_lj[i][j] = cut_lj_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJCutCoulLong::coeff(int narg, char **arg)
{
if (narg < 4 || narg > 5) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
double epsilon_one = force->numeric(arg[2]);
double sigma_one = force->numeric(arg[3]);
double cut_lj_one = cut_lj_global;
if (narg == 5) cut_lj_one = force->numeric(arg[4]);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
cut_lj[i][j] = cut_lj_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJCutCoulLong::init_style()
{
if (!atom->q_flag)
error->all("Pair style lj/cut/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 1 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
cut_coulsq = cut_coul * cut_coul;
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
// insure use of KSpace long-range solver, set g_ewald
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
// setup force tables
if (ncoultablebits) init_tables();
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairLJCutCoulLong::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJCutCoulLong::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
cut_lj[i][j] = mix_distance(cut_lj[i][i],cut_lj[j][j]);
}
double cut = MAX(cut_lj[i][j],cut_coul);
cut_ljsq[i][j] = cut_lj[i][j] * cut_lj[i][j];
lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
if (offset_flag) {
double ratio = sigma[i][j] / cut_lj[i][j];
offset[i][j] = 4.0 * epsilon[i][j] * (pow(ratio,12.0) - pow(ratio,6.0));
} else offset[i][j] = 0.0;
cut_ljsq[j][i] = cut_ljsq[i][j];
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
offset[j][i] = offset[i][j];
// check interior rRESPA cutoff
if (cut_respa && MIN(cut_lj[i][j],cut_coul) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
// compute I,J contribution to long-range tail correction
// count total # of atoms of type I and J via Allreduce
if (tail_flag) {
int *type = atom->type;
int nlocal = atom->nlocal;
double count[2],all[2];
count[0] = count[1] = 0.0;
for (int k = 0; k < nlocal; k++) {
if (type[k] == i) count[0] += 1.0;
if (type[k] == j) count[1] += 1.0;
}
MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world);
double PI = 4.0*atan(1.0);
double sig2 = sigma[i][j]*sigma[i][j];
double sig6 = sig2*sig2*sig2;
double rc3 = cut_lj[i][j]*cut_lj[i][j]*cut_lj[i][j];
double rc6 = rc3*rc3;
double rc9 = rc3*rc6;
etail_ij = 8.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (sig6 - 3.0*rc6) / (9.0*rc9);
ptail_ij = 16.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9);
}
return cut;
}
/* ----------------------------------------------------------------------
setup force tables used in compute routines
------------------------------------------------------------------------- */
void PairLJCutCoulLong::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable*sizeof(double),"pair:vtable");
memory->create(ptable,ntable*sizeof(double),"pair:ptable");
memory->create(dvtable,ntable*sizeof(double),"pair:dvtable");
memory->create(dptable,ntable*sizeof(double),"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq) {
rsq_lookup.f = cut_coulsq;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCutCoulLong::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&cut_lj[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCutCoulLong::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&cut_lj[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_lj[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCutCoulLong::write_restart_settings(FILE *fp)
{
fwrite(&cut_lj_global,sizeof(double),1,fp);
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCutCoulLong::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&cut_lj_global,sizeof(double),1,fp);
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairLJCutCoulLong::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
double PairLJCutCoulLong::single(int i, int j, int itype, int jtype,
double rsq,
double factor_coul, double factor_lj,
double &fforce)
{
double r2inv,r6inv,r,grij,expm2,t,erfc,prefactor;
double fraction,table,forcecoul,forcelj,phicoul,philj;
int itable;
r2inv = 1.0/rsq;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor;
} else {
union_int_float_t rsq_lookup_single;
rsq_lookup_single.f = rsq;
itable = rsq_lookup_single.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup_single.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = atom->q[i]*atom->q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = atom->q[i]*atom->q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
} else forcecoul = 0.0;
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
} else forcelj = 0.0;
fforce = (forcecoul + factor_lj*forcelj) * r2inv;
double eng = 0.0;
if (rsq < cut_coulsq) {
if (!ncoultablebits || rsq <= tabinnersq)
phicoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
phicoul = atom->q[i]*atom->q[j] * table;
}
if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor;
eng += phicoul;
}
if (rsq < cut_ljsq[itype][jtype]) {
philj = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
eng += factor_lj*philj;
}
return eng;
}
/* ---------------------------------------------------------------------- */
void *PairLJCutCoulLong::extract(char *str, int &dim)
{
dim = 0;
if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul;
return NULL;
}
diff --git a/src/KSPACE/pair_lj_cut_coul_long_tip4p.cpp b/src/KSPACE/pair_lj_cut_coul_long_tip4p.cpp
index ee0266b28..f832db100 100644
--- a/src/KSPACE/pair_lj_cut_coul_long_tip4p.cpp
+++ b/src/KSPACE/pair_lj_cut_coul_long_tip4p.cpp
@@ -1,504 +1,505 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Amalie Frischknecht and Ahmed Ismail (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_lj_cut_coul_long_tip4p.h"
#include "angle.h"
#include "atom.h"
#include "bond.h"
#include "comm.h"
#include "domain.h"
#include "force.h"
#include "kspace.h"
#include "update.h"
#include "respa.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairLJCutCoulLongTIP4P::PairLJCutCoulLongTIP4P(LAMMPS *lmp) :
PairLJCutCoulLong(lmp)
{
single_enable = 0;
+ respa_enable = 0;
// TIP4P cannot compute virial as F dot r
// due to find_M() finding bonded H atoms which are not near O atom
no_virial_fdotr_compute = 1;
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype,itable;
int n,vlist[6];
int iH1,iH2,jH1,jH2;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul;
double fraction,table;
double delx1,dely1,delz1,delx2,dely2,delz2,delx3,dely3,delz3;
double r,r2inv,r6inv,forcecoul,forcelj,cforce,negforce;
double factor_coul,factor_lj;
double grij,expm2,prefactor,t,erfc;
double xiM[3],xjM[3],fO[3],fH[3],v[6];
double *x1,*x2;
int *ilist,*jlist,*numneigh,**firstneigh;
double rsq;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **f = atom->f;
double **x = atom->x;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
qtmp = q[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
if (itype == typeO) {
find_M(i,iH1,iH2,xiM);
x1 = xiM;
} else x1 = x[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
factor_coul = special_coul[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
if (rsq < cut_ljsq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
forcelj *= factor_lj * r2inv;
f[i][0] += delx*forcelj;
f[i][1] += dely*forcelj;
f[i][2] += delz*forcelj;
f[j][0] -= delx*forcelj;
f[j][1] -= dely*forcelj;
f[j][2] -= delz*forcelj;
if (eflag) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
} else evdwl = 0.0;
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,forcelj,delx,dely,delz);
}
// adjust rsq for off-site O charge(s)
if (itype == typeO || jtype == typeO) {
if (jtype == typeO) {
find_M(j,jH1,jH2,xjM);
x2 = xjM;
} else x2 = x[j];
delx = x1[0] - x2[0];
dely = x1[1] - x2[1];
delz = x1[2] - x2[2];
rsq = delx*delx + dely*dely + delz*delz;
}
// test current rsq against cutoff and compute Coulombic force
if (rsq < cut_coulsq) {
r2inv = 1 / rsq;
if (!ncoultablebits || rsq <= tabinnersq) {
r = sqrt(rsq);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
t = 1.0 / (1.0 + EWALD_P*grij);
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
prefactor = qqrd2e * qtmp*q[j]/r;
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
if (factor_coul < 1.0) {
forcecoul -= (1.0-factor_coul)*prefactor;
}
} else {
union_int_float_t rsq_lookup;
rsq_lookup.f = rsq;
itable = rsq_lookup.i & ncoulmask;
itable >>= ncoulshiftbits;
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
table = ftable[itable] + fraction*dftable[itable];
forcecoul = qtmp*q[j] * table;
if (factor_coul < 1.0) {
table = ctable[itable] + fraction*dctable[itable];
prefactor = qtmp*q[j] * table;
forcecoul -= (1.0-factor_coul)*prefactor;
}
}
cforce = forcecoul * r2inv;
// if i,j are not O atoms, force is applied directly
// if i or j are O atoms, force is on fictitious atom
// force partitioning due to Feenstra, J Comp Chem, 20, 786 (1999)
// f_f = fictitious force, fO = f_f (1 - 2 alpha), fH = alpha f_f
// preserves total force and torque on water molecule
// all virial terms are computed as distances to x2
// vlist stores 2,4,6 atoms whose forces contribute to virial
n = 0;
if (itype != typeO) {
f[i][0] += delx * cforce;
f[i][1] += dely * cforce;
f[i][2] += delz * cforce;
if (vflag) {
v[0] = delx * delx * cforce;
v[1] = dely * dely * cforce;
v[2] = delz * delz * cforce;
v[3] = delx * dely * cforce;
v[4] = delx * delz * cforce;
v[5] = dely * delz * cforce;
vlist[n++] = i;
}
} else {
fO[0] = delx*cforce*(1.0-2.0*alpha);
fO[1] = dely*cforce*(1.0-2.0*alpha);
fO[2] = delz*cforce*(1.0-2.0*alpha);
fH[0] = alpha * (delx*cforce);
fH[1] = alpha * (dely*cforce);
fH[2] = alpha * (delz*cforce);
f[i][0] += fO[0];
f[i][1] += fO[1];
f[i][2] += fO[2];
f[iH1][0] += fH[0];
f[iH1][1] += fH[1];
f[iH1][2] += fH[2];
f[iH2][0] += fH[0];
f[iH2][1] += fH[1];
f[iH2][2] += fH[2];
if (vflag) {
delx1 = x[i][0] - x2[0];
dely1 = x[i][1] - x2[1];
delz1 = x[i][2] - x2[2];
domain->minimum_image(delx1,dely1,delz1);
delx2 = x[iH1][0] - x2[0];
dely2 = x[iH1][1] - x2[1];
delz2 = x[iH1][2] - x2[2];
domain->minimum_image(delx2,dely2,delz2);
delx3 = x[iH2][0] - x2[0];
dely3 = x[iH2][1] - x2[1];
delz3 = x[iH2][2] - x2[2];
domain->minimum_image(delx3,dely3,delz3);
v[0] = delx1 * fO[0] + (delx2 + delx3) * fH[0];
v[1] = dely1 * fO[1] + (dely2 + dely3) * fH[1];
v[2] = delz1 * fO[2] + (delz2 + delz3) * fH[2];
v[3] = delx1 * fO[1] + (delx2 + delx3) * fH[1];
v[4] = delx1 * fO[2] + (delx2 + delx3) * fH[2];
v[5] = dely1 * fO[2] + (dely2 + dely3) * fH[2];
vlist[n++] = i;
vlist[n++] = iH1;
vlist[n++] = iH2;
}
}
if (jtype != typeO) {
f[j][0] -= delx * cforce;
f[j][1] -= dely * cforce;
f[j][2] -= delz * cforce;
if (vflag) vlist[n++] = j;
} else {
negforce = -cforce;
fO[0] = delx*negforce*(1.0-2.0*alpha);
fO[1] = dely*negforce*(1.0-2.0*alpha);
fO[2] = delz*negforce*(1.0-2.0*alpha);
fH[0] = alpha * (delx*negforce);
fH[1] = alpha * (dely*negforce);
fH[2] = alpha * (delz*negforce);
f[j][0] += fO[0];
f[j][1] += fO[1];
f[j][2] += fO[2];
f[jH1][0] += fH[0];
f[jH1][1] += fH[1];
f[jH1][2] += fH[2];
f[jH2][0] += fH[0];
f[jH2][1] += fH[1];
f[jH2][2] += fH[2];
if (vflag) {
delx1 = x[j][0] - x2[0];
dely1 = x[j][1] - x2[1];
delz1 = x[j][2] - x2[2];
domain->minimum_image(delx1,dely1,delz1);
delx2 = x[jH1][0] - x2[0];
dely2 = x[jH1][1] - x2[1];
delz2 = x[jH1][2] - x2[2];
domain->minimum_image(delx2,dely2,delz2);
delx3 = x[jH2][0] - x2[0];
dely3 = x[jH2][1] - x2[1];
delz3 = x[jH2][2] - x2[2];
domain->minimum_image(delx3,dely3,delz3);
v[0] += delx1 * fO[0] + (delx2 + delx3) * fH[0];
v[1] += dely1 * fO[1] + (dely2 + dely3) * fH[1];
v[2] += delz1 * fO[2] + (delz2 + delz3) * fH[2];
v[3] += delx1 * fO[1] + (delx2 + delx3) * fH[1];
v[4] += delx1 * fO[2] + (delx2 + delx3) * fH[2];
v[5] += dely1 * fO[2] + (dely2 + dely3) * fH[2];
vlist[n++] = j;
vlist[n++] = jH1;
vlist[n++] = jH2;
}
}
if (eflag) {
if (!ncoultablebits || rsq <= tabinnersq)
ecoul = prefactor*erfc;
else {
table = etable[itable] + fraction*detable[itable];
ecoul = qtmp*q[j] * table;
}
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
} else ecoul = 0.0;
if (evflag) ev_tally_list(n,vlist,ecoul,v);
}
}
}
}
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::settings(int narg, char **arg)
{
if (narg < 6 || narg > 7) error->all("Illegal pair_style command");
typeO = force->inumeric(arg[0]);
typeH = force->inumeric(arg[1]);
typeB = force->inumeric(arg[2]);
typeA = force->inumeric(arg[3]);
qdist = force->numeric(arg[4]);
cut_lj_global = force->numeric(arg[5]);
if (narg == 6) cut_coul = cut_lj_global;
else cut_coul = force->numeric(arg[6]);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut_lj[i][j] = cut_lj_global;
}
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::init_style()
{
if (atom->tag_enable == 0)
error->all("Pair style lj/cut/coul/long/tip4p requires atom IDs");
if (!force->newton_pair)
error->all("Pair style lj/cut/coul/long/tip4p requires newton pair on");
if (!atom->q_flag)
error->all("Pair style lj/cut/coul/long/tip4p requires atom attribute q");
if (strcmp(force->kspace_style,"pppm/tip4p") != 0)
error->all("Pair style is incompatible with KSpace style");
if (force->bond == NULL)
error->all("Must use a bond style with TIP4P potential");
if (force->angle == NULL)
error->all("Must use an angle style with TIP4P potential");
PairLJCutCoulLong::init_style();
// set alpha parameter
double theta = force->angle->equilibrium_angle(typeA);
double blen = force->bond->equilibrium_distance(typeB);
alpha = qdist / (2.0 * cos(0.5*theta) * blen);
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::write_restart_settings(FILE *fp)
{
fwrite(&typeO,sizeof(int),1,fp);
fwrite(&typeH,sizeof(int),1,fp);
fwrite(&typeB,sizeof(int),1,fp);
fwrite(&typeA,sizeof(int),1,fp);
fwrite(&qdist,sizeof(double),1,fp);
fwrite(&cut_lj_global,sizeof(double),1,fp);
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&typeO,sizeof(int),1,fp);
fread(&typeH,sizeof(int),1,fp);
fread(&typeB,sizeof(int),1,fp);
fread(&typeA,sizeof(int),1,fp);
fread(&qdist,sizeof(double),1,fp);
fread(&cut_lj_global,sizeof(double),1,fp);
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&typeO,1,MPI_INT,0,world);
MPI_Bcast(&typeH,1,MPI_INT,0,world);
MPI_Bcast(&typeB,1,MPI_INT,0,world);
MPI_Bcast(&typeA,1,MPI_INT,0,world);
MPI_Bcast(&qdist,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
find 2 H atoms bonded to O atom i
compute position xM of fictitious charge site for O atom
also return local indices iH1,iH2 of H atoms
------------------------------------------------------------------------- */
void PairLJCutCoulLongTIP4P::find_M(int i, int &iH1, int &iH2, double *xM)
{
// test that O is correctly bonded to 2 succesive H atoms
iH1 = atom->map(atom->tag[i] + 1);
iH2 = atom->map(atom->tag[i] + 2);
if (iH1 == -1 || iH2 == -1) error->one("TIP4P hydrogen is missing");
if (atom->type[iH1] != typeH || atom->type[iH2] != typeH)
error->one("TIP4P hydrogen has incorrect atom type");
double **x = atom->x;
double delx1 = x[iH1][0] - x[i][0];
double dely1 = x[iH1][1] - x[i][1];
double delz1 = x[iH1][2] - x[i][2];
domain->minimum_image(delx1,dely1,delz1);
double delx2 = x[iH2][0] - x[i][0];
double dely2 = x[iH2][1] - x[i][1];
double delz2 = x[iH2][2] - x[i][2];
domain->minimum_image(delx2,dely2,delz2);
xM[0] = x[i][0] + alpha * (delx1 + delx2);
xM[1] = x[i][1] + alpha * (dely1 + dely2);
xM[2] = x[i][2] + alpha * (delz1 + delz2);
}
/* ---------------------------------------------------------------------- */
void *PairLJCutCoulLongTIP4P::extract(char *str, int &dim)
{
dim = 0;
if (strcmp(str,"qdist") == 0) return (void *) &qdist;
if (strcmp(str,"typeO") == 0) return (void *) &typeO;
if (strcmp(str,"typeH") == 0) return (void *) &typeH;
if (strcmp(str,"typeA") == 0) return (void *) &typeA;
if (strcmp(str,"typeB") == 0) return (void *) &typeB;
if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul;
return NULL;
}
diff --git a/src/MAKE/Makefile.altix b/src/MAKE/Makefile.altix
index 982a822aa..e2d4d561e 100644
--- a/src/MAKE/Makefile.altix
+++ b/src/MAKE/Makefile.altix
@@ -1,102 +1,111 @@
# altix = SGI Altix, Intel icc, MPI, FFTs from SGI SCSL library
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = icc
CCFLAGS = -O2
DEPFLAGS = -M
LINK = icc
LINKFLAGS = -O2
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpi
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_SCSL
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.bgl b/src/MAKE/Makefile.bgl
index 0568d33d5..bf114b93a 100644
--- a/src/MAKE/Makefile.bgl
+++ b/src/MAKE/Makefile.bgl
@@ -1,108 +1,117 @@
# bgl = LLNL Blue Gene Light machine, xlC, native MPI, FFTW
SHELL = /bin/sh
.SUFFIXES: .cpp .u
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = /opt/ibmcmp/vacpp/7.0/bin/blrts_xlC
CCFLAGS = -O3
DEPFLAGS = -M
LINK = /opt/ibmcmp/vacpp/7.0/bin/blrts_xlC
LINKFLAGS = -O \
-L/opt/ibmcmp/xlf/9.1/blrts_lib \
-L/opt/ibmcmp/vacpp/7.0/blrts_lib \
-L/bgl/local/lib \
-L/bgl/local/bglfftwgel-2.1.5.pre5/lib
LIB = -lxlopt -lxlomp_ser -lxl -lxlfmath -lm \
-lmsglayer.rts -lrts.rts -ldevices.rts -lmassv
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich.rts
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.cygwin b/src/MAKE/Makefile.cygwin
index 0d6264848..e788bc3c4 100644
--- a/src/MAKE/Makefile.cygwin
+++ b/src/MAKE/Makefile.cygwin
@@ -1,102 +1,111 @@
# cygwin = Windows Cygwin, mpicxx, MPICH, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH = -L/cygdrive/c/cygwin/mpich2-1.0.4p1/lib
MPI_LIB = -lmpich
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/cygdrive/c/cygwin/fftw/include
FFT_PATH = -L/cygdrive/c/cygwin/fftw/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.encanto b/src/MAKE/Makefile.encanto
index 69f8d434a..78df96df1 100644
--- a/src/MAKE/Makefile.encanto
+++ b/src/MAKE/Makefile.encanto
@@ -1,102 +1,111 @@
# encanto = NM cluster with dual quad-core Xeons, mpicxx, native MPI, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/home/jlane/fftw-2.1.5/fftw
FFT_PATH = -L/home/jlane/fftw-2.1.5/fftw/.libs
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
-user-atc_SYSPATH =
+user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.fink b/src/MAKE/Makefile.fink
index 3e27b104c..24ab4aaae 100644
--- a/src/MAKE/Makefile.fink
+++ b/src/MAKE/Makefile.fink
@@ -1,102 +1,111 @@
# fink = Mac OS-X w/ fink libraries, c++, no MPI, FFTW 2.1.5
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = c++
CCFLAGS = -O
DEPFLAGS = -M
LINK = c++
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/sw/include
FFT_PATH = -L/sw/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.g++ b/src/MAKE/Makefile.g++
index df0332892..6b98a5c45 100755
--- a/src/MAKE/Makefile.g++
+++ b/src/MAKE/Makefile.g++
@@ -1,108 +1,111 @@
# g++ = RedHat Linux box, g++4, gfortran, MPICH2, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = g++4
CCFLAGS = -g -O
DEPFLAGS = -M
LINK = g++4
LINKFLAGS = -g -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB = /usr/local/lib/libjpeg.a
# additional system settings needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
# SYSINC = settings to compile with
# SYSLIB = libraries to link with
# SYSPATH = paths to libraries
gpu_SYSINC =
meam_SYSINC =
reax_SYSINC =
user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lgfortran
reax_SYSLIB = -lgfortran
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH =
reax_SYSPATH =
-user-atc_SYSPATH =
+user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.g++3 b/src/MAKE/Makefile.g++3
index ddafa913d..de39da68a 100755
--- a/src/MAKE/Makefile.g++3
+++ b/src/MAKE/Makefile.g++3
@@ -1,102 +1,111 @@
# g++3 = RedHat Linux box, g++ (v3), Intel ifort, MPICH2, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = g++
CCFLAGS = -g -O
DEPFLAGS = -M
LINK = g++
LINKFLAGS = -g -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.glory b/src/MAKE/Makefile.glory
index 00312daf4..f037b08c3 100644
--- a/src/MAKE/Makefile.glory
+++ b/src/MAKE/Makefile.glory
@@ -1,120 +1,129 @@
# glory = Linux cluster with 4-way quad cores, Intel mpicxx, native MPI, FFTW
SHELL = /bin/sh
.IGNORE:
# this Makefile builds LAMMPS for mvapich running on Glory
# to invoke this Makefile, you need these modules loaded:
# compilers/intel-11.1-f064-c064
# mpi/mvapich-1.1_intel-11.1-f064-c064
# libraries/fftw-2.1.5
# you can determine which modules are loaded by typing:
# module list
# these modules are not the default ones, but can be enabled by
# lines like this in your .cshrc or other start-up shell file
# or by typing them before you build LAMMPS:
# module swap mpi misc/env-mvapich
# module load compilers/intel-11.1-f064-c064
# module load mpi/mvapich-1.1_intel-11.1-f064-c064
# module load libraries/fftw-2.1.5
# these same modules need to be loaded to submit a LAMMPS job,
# either interactively or via a batch script
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -O
LIB = -lstdc++ -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I${FFTW_INCLUDE}
FFT_PATH = -L${FFTW_LIB}
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.jaguar b/src/MAKE/Makefile.jaguar
index 07ee4436e..87682a432 100644
--- a/src/MAKE/Makefile.jaguar
+++ b/src/MAKE/Makefile.jaguar
@@ -1,108 +1,119 @@
# jaguar = ORNL Jaguar Cray XT5, CC, native MPICH, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CXX = CC
CCFLAGS = -g -O
DEPFLAGS = -M
LINK = $(CXX)
LINKFLAGS = -g -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
# Note: on Jaguar, the normal fftw.h is not installed
# Thus uou will also need to edit src/fft3d.h and substitute
# dfftw.h for fftw.h in 2 places
FFTWDIR = /opt/fftw/2.1.5/cnos
FFT_INC = -DFFT_FFTW -I$(FFTWDIR)/include
FFT_PATH = -L$(FFTWDIR)/lib
FFT_LIB = -ldfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
+user-awpwpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
-include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+include Makefawpmd.package
+
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CXX) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CXX) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.lam b/src/MAKE/Makefile.lam
index 0082b2969..59854a772 100644
--- a/src/MAKE/Makefile.lam
+++ b/src/MAKE/Makefile.lam
@@ -1,102 +1,111 @@
# lam = FreeBSD box, mpic++, Intel ifort, LAM/MPI, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpic++
CCFLAGS = -O3
DEPFLAGS = -M
LINK = mpic++
LINKFLAGS = -O3
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB = -lmpi
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.linux b/src/MAKE/Makefile.linux
index a82f1347b..9cff2f070 100755
--- a/src/MAKE/Makefile.linux
+++ b/src/MAKE/Makefile.linux
@@ -1,102 +1,111 @@
# linux = RedHat Linux box, Intel icc, Intel ifort, MPICH2, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = icc
CCFLAGS = -O
DEPFLAGS = -M
LINK = icc
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
-user-atc_SYSPATH =
+user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.mac b/src/MAKE/Makefile.mac
index 4ac8beaac..476987fa6 100755
--- a/src/MAKE/Makefile.mac
+++ b/src/MAKE/Makefile.mac
@@ -1,102 +1,111 @@
# mac = Apple PowerBook G4 laptop, c++, Intel ifort, no MPI, FFTW 2.1.5
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = c++
CCFLAGS = -O
DEPFLAGS = -M
LINK = c++
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.mac_mpi b/src/MAKE/Makefile.mac_mpi
index c0e2aa417..cdcb780fd 100755
--- a/src/MAKE/Makefile.mac_mpi
+++ b/src/MAKE/Makefile.mac_mpi
@@ -1,105 +1,114 @@
# mac_mpi = Apple PowerBook G4 laptop, ccache mpic++, gfortran, fink LAM/MPI, fink FFTW 2.1.5
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# generally no need to edit this section
# unless additional compiler/linker flags or libraries needed for your machine
CC = ccache ${MPI_GCC4_PATH}/mpic++
CCFLAGS = -O -MMD -MG
DEPFLAGS = -M
LINK = ccache ${MPI_GCC4_PATH}/mpic++
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# edit as needed for your machine
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DOMPI_SKIP_MPICXX
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from kspace package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFTW = /sw
FFT_INC = -DFFT_FFTW -I${FFTW}/include
FFT_PATH = -L${FFTW}/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lgfortran
reax_SYSLIB = -lgfortran
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/usr/lib
reax_SYSPATH = -L/usr/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.mingw b/src/MAKE/Makefile.mingw
index 81132902f..b94009f76 100644
--- a/src/MAKE/Makefile.mingw
+++ b/src/MAKE/Makefile.mingw
@@ -1,111 +1,120 @@
# mingw = Windows 32bit, cross-compiled on Linux, gcc-4.4.1, MinGW x-compiler
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = i686-pc-mingw32-g++
CCFLAGS = -O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-fno-exceptions -fno-rtti -ffast-math -funroll-loops -fstrict-aliasing -Wall -W -Wno-uninitialized
DEPFLAGS = -M
LINK = i686-pc-mingw32-g++
LINKFLAGS = -O
LIB = -lwsock32 # -lwsock32 is needed for USER-IMD which uses tcp/ip sockets.
ARCHIVE = ar
ARFLAGS = -rcsv
SIZE = i686-pc-mingw32-size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_XDR # -DLAMMPS_GZIP -DMALLOC_MEMALIGN=64
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = mpi.o
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE #-DFFT_SINGLE
FFT_PATH =
FFT_LIB = #-lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L$(HOME)/cuda/lib64 -Wl,-rpath,$(HOME)/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(EXE).exe ../MAKE/mingw_cross.nsis
makensis ../MAKE/mingw_cross.nsis
(cd ..; zip -0 lammps-icms-win.zip lammps-icms-win.exe)
touch $(EXE)
$(EXE).exe: $(OBJ) mpi.o
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE).exe
$(SIZE) $(EXE).exe
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
mpi.o: ../STUBS/mpi.c ../STUBS/mpi.h
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.mkl b/src/MAKE/Makefile.mkl
index 4d6cd2254..60da45d4d 100644
--- a/src/MAKE/Makefile.mkl
+++ b/src/MAKE/Makefile.mkl
@@ -1,108 +1,117 @@
# mkl = Intel Cluster Tools, mpiicc, MKL MPI, MKL FFT
# Intel recommends Intel Cluster Tools Compiler Edition
# to build libfftw2xc_intel.a:
# > cd /opt/intel/mkl/10.0.011/interfaces/fftw2xc
# > become root via su
# > gmake libem64t
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpiicc
CCFLAGS = -O3 -fno-alias -ip -unroll0
DEPFLAGS = -M
LINK = mpiicc
LINKFLAGS = -O -L/opt/intel/mkl/10.0.011/lib/em64t
LIB = -lstdc++ -lpthread -lmkl_em64t -lguide
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -mt_mpi
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/opt/intel/mkl/10.0.011/include/fftw
FFT_PATH =
FFT_LIB = /opt/intel/mkl/10.0.011/lib/em64t/libfftw2xc_intel.a
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.odin b/src/MAKE/Makefile.odin
index cabb2dc4e..60a2eb6cc 100755
--- a/src/MAKE/Makefile.odin
+++ b/src/MAKE/Makefile.odin
@@ -1,102 +1,111 @@
# odin = 1400 cluster, g++, MPICH, no FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = g++
CCFLAGS = -O
DEPFLAGS = -M
LINK = G++
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I/opt/mpich-mx/include
MPI_PATH = -L/opt/mpich-mx/lib -L/opt/mx/lib
MPI_LIB = -lmpich -lmyriexpress
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.openmpi b/src/MAKE/Makefile.openmpi
index 0fcf6fb65..b167030e3 100644
--- a/src/MAKE/Makefile.openmpi
+++ b/src/MAKE/Makefile.openmpi
@@ -1,103 +1,112 @@
# openmpi = Fedora Core 6, mpic++, OpenMPI-1.1, FFTW2
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpic++
CCFLAGS = -O2 \
-funroll-loops -fstrict-aliasing -Wall -W -Wno-uninitialized
DEPFLAGS = -M
LINK = mpic++
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rcsv
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.pgi b/src/MAKE/Makefile.pgi
index c945e9112..ccdfb3b68 100644
--- a/src/MAKE/Makefile.pgi
+++ b/src/MAKE/Makefile.pgi
@@ -1,102 +1,111 @@
# pgi = Portland Group compiler, pgCC, MPICH, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = pgCC
CCFLAGS = -fast
DEPFLAGS = -M
LINK = pgCC
LINKFLAGS =
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I/usr/local/mpich-1.2.6/pg/include
MPI_PATH = -L/usr/local/mpich-1.2.6/pg/lib
MPI_LIB = -lmpich
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.power5 b/src/MAKE/Makefile.power5
index 616e8f31d..97630af0e 100644
--- a/src/MAKE/Makefile.power5
+++ b/src/MAKE/Makefile.power5
@@ -1,103 +1,112 @@
# power5 = IBM Power5+, mpCC_r, native MPI, FFTW
SHELL = /bin/sh
.SUFFIXES: .cpp .u
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpCC_r
CCFLAGS = -O3 -qnoipa -qlanglvl=oldmath
DEPFLAGS = -M
LINK = mpCC_r
LINKFLAGS = -O -qnoipa -qlanglvl=oldmath -bmaxdata:0x70000000
LIB = -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/scr/oppe/LAMMPS/fftw-2.1.5/include
FFT_PATH = -L/scr/oppe/LAMMPS/fftw-2.1.5/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.qed b/src/MAKE/Makefile.qed
index bf008ef74..2d7ec293d 100644
--- a/src/MAKE/Makefile.qed
+++ b/src/MAKE/Makefile.qed
@@ -1,102 +1,111 @@
# qed = CSRI cluster, mpiCC, MPICH, no FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpiCC
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpiCC
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I/usr/local/mpich-1.2.6-eth/include
MPI_PATH = -L/usr/local/mpich-1.2.6-eth/lib
MPI_LIB = -lmpich
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.redsky b/src/MAKE/Makefile.redsky
index 579e527ff..aa66dbeb8 100644
--- a/src/MAKE/Makefile.redsky
+++ b/src/MAKE/Makefile.redsky
@@ -1,131 +1,140 @@
# redsky - SUN X6275 with dual socket/quad core nodes, mpic++, openmpi, FFTW
SHELL = /bin/sh
.IGNORE:
# this Makefile builds LAMMPS for RedSky with OpenMPI
# to invoke this Makefile, you need these modules loaded:
# mpi/openmpi-1.4.1_oobpr_intel-11.1-f064-c064
# misc/env-openmpi-1.4-oobpr
# compilers/intel-11.1-f064-c064
# libraries/intel-mkl-11.1.064
# libraries/fftw-2.1.5_openmpi-1.4.1_oobpr_intel-11.1-f064-c064
# you can determine which modules are loaded by typing:
# module list
# these modules are not the default ones, but can be enabled by
# lines like this in your .cshrc or other start-up shell file
# or by typing them before you build LAMMPS:
# module load mpi/openmpi-1.4.1_oobpr_intel-11.1-f064-c064
# module load misc/env-openmpi-1.4-oobpr
# module load compilers/intel-11.1-f064-c064
# module load libraries/intel-mkl-11.1.064
# module load libraries/fftw-2.1.5_openmpi-1.4.1_oobpr_intel-11.1-f064-c064
# these same modules need to be loaded to submit a LAMMPS job,
# either interactively or via a batch script
# IMPORTANT NOTE:
# to run efficiently on RedSky, use the "numa_wrapper" mpiexec option,
# to insure proceses and their memory are locked to specific cores
# e.g. in your batch script:
# nodes=$SLURM_JOB_NUM_NODES
# cores=8
# mpiexec --npernode $cores numa_wrapper --ppn $cores lmp_redsky < in > out
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpic++
CCFLAGS = -O2 -xsse4.2 -funroll-loops -fstrict-aliasing
DEPFLAGS = -M
LINK = mpic++
LINKFLAGS = -O -xsse4.2
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rcsv
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I${FFTW_INCLUDE}
FFT_PATH = -L${FFTW_LIB}
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = ${BLASLIB}
+user-awpmd_SYSLIB = ${BLASLIB}
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/projects/global/x86_64/compilers/intel/intel-11.1-cprof-064/lib/intel64
reax_SYSPATH = -L/projects/global/x86_64/compilers/intel/intel-11.1-cprof-064/lib/intel64
-user-atc_SYSPATH =
+user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.sdsc b/src/MAKE/Makefile.sdsc
index 21acdaa37..d4e9fb975 100644
--- a/src/MAKE/Makefile.sdsc
+++ b/src/MAKE/Makefile.sdsc
@@ -1,107 +1,116 @@
# sdsc = SDSC BG/L machine, xlC, native MPI, FFTW
SHELL = /bin/sh
.SUFFIXES: .cpp .u
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = blrts_xlC
CCFLAGS = -I/bgl/BlueLight/ppcfloor/bglsys/include \
-O2 -qarch=440 -qtune=440
DEPFLAGS = -M -qmakedep=gcc
LINK = blrts_xlC
LINKFLAGS = -O \
-L/bgl/BlueLight/ppcfloor/bglsys/lib \
-L/opt/ibmcmp/xlf/bg/10.1/blrts_lib \
-L/opt/ibmcmp/vacpp/bg/8.0/blrts_lib
LIB = -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP -DLAMMPS_XDR
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I//usr/local/apps/V1R3/fftw-2.1.5d/include
FFT_PATH = -L/usr/local/apps/V1R3/fftw-2.1.5d/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.seaborg b/src/MAKE/Makefile.seaborg
index d8398506c..8aea5a88f 100644
--- a/src/MAKE/Makefile.seaborg
+++ b/src/MAKE/Makefile.seaborg
@@ -1,103 +1,112 @@
# seaborg = NERSC IBM machine, mpCC, native MPI, FFTW
SHELL = /bin/sh
.SUFFIXES: .cpp .u
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpCC_r
CCFLAGS = -O2 -qnoipa
DEPFLAGS = -M
LINK = mpCC_r
LINKFLAGS = -O -L/usr/lib
LIB = -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/usr/common/usg/fftw/2.1.5/include
FFT_PATH = -L/usr/common/usg/fftw/2.1.5/lib
FFT_LIB = -lfftw -lfftw_mpi
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.serial b/src/MAKE/Makefile.serial
index 64cf13db2..f02fb6849 100755
--- a/src/MAKE/Makefile.serial
+++ b/src/MAKE/Makefile.serial
@@ -1,103 +1,112 @@
# serial = RedHat Linux box, g++4, gfortran, no MPI, no FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# generally no need to edit this section
# unless additional compiler/linker flags or libraries needed for your machine
CC = g++4
CCFLAGS = -O
DEPFLAGS = -M
LINK = g++4
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# edit as needed for your machine
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from kspace package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lgfortran
reax_SYSLIB = -lgfortran
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH =
reax_SYSPATH =
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.serial_debug b/src/MAKE/Makefile.serial_debug
index 9dad10864..3f42e3c31 100644
--- a/src/MAKE/Makefile.serial_debug
+++ b/src/MAKE/Makefile.serial_debug
@@ -1,102 +1,111 @@
# serial_debug = RedHat Linux box, g++4, gfortran, no MPI, no FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = g++4
CCFLAGS = -O -Wall -W -O2 -funroll-loops -fstrict-aliasing
DEPFLAGS = -M
LINK = g++4
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rcsv
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lgfortran
reax_SYSLIB = -lgfortran
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH =
reax_SYSPATH =
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.sgi b/src/MAKE/Makefile.sgi
index bb1c8fc25..e60848cb8 100644
--- a/src/MAKE/Makefile.sgi
+++ b/src/MAKE/Makefile.sgi
@@ -1,102 +1,111 @@
# sgi = SGI Origin 350 64-bit, SGI MIPSpro CC, SGI MPI, SGI SCSL MP FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = CC
CCFLAGS = -64 -O -mp
DEPFLAGS = -M
LINK = CC
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_SCSL
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.solaris b/src/MAKE/Makefile.solaris
index 44ca0148e..d97eb61b4 100644
--- a/src/MAKE/Makefile.solaris
+++ b/src/MAKE/Makefile.solaris
@@ -1,102 +1,111 @@
# solaris = Sun box, c++, no MPI, no FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = c++
CCFLAGS = -O
DEPFLAGS = -M
LINK = c++
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_NONE
FFT_PATH =
FFT_LIB =
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.spirit b/src/MAKE/Makefile.spirit
index db5b557fa..7af8ad9d7 100644
--- a/src/MAKE/Makefile.spirit
+++ b/src/MAKE/Makefile.spirit
@@ -1,110 +1,119 @@
# spirit = HP cluster 64-bit, mpicxx, native MPI, FFTW
SHELL = /bin/sh
# users may wish to add the following lines to their .bashrc or equivalent:
# if [ "$SNLCLUSTER" = "spirit" ]; then
# source /opt/modules/default/init/bash
# module load libraries/fftw-2.1.5_openmpi-1.2.2_mx_intel-9.1-f040-c045
# fi;
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -O
LIB = -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFTW = /apps/x86_64/libraries/fftw/openmpi-1.2.2_mx_intel-9.1-f040-c045/fftw-2.1.5
FFT_INC = -DFFT_FFTW -I$(FFTW)/include
FFT_PATH = -L$(FFTW)/lib
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.storm b/src/MAKE/Makefile.storm
index 8519c3529..f43c67477 100644
--- a/src/MAKE/Makefile.storm
+++ b/src/MAKE/Makefile.storm
@@ -1,99 +1,108 @@
# storm = Cray Red Storm XT3, Cray CC, native MPI, FFTW
SHELL = /bin/sh
.SUFFIXES: .cpp .d
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = CC
CCFLAGS = -fastsse
DEPFLAGS = -M
LINK = CC
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I/projects/fftw/fftw-2.1.5/include
FFT_PATH =
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
.cpp.o:
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
# Individual dependencies
$(OBJ): $(INC)
diff --git a/src/MAKE/Makefile.tacc b/src/MAKE/Makefile.tacc
index 045695597..62e201589 100644
--- a/src/MAKE/Makefile.tacc
+++ b/src/MAKE/Makefile.tacc
@@ -1,105 +1,114 @@
# tacc = UT Lonestar TACC machine, mpiCC, MPI, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpiCC
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpiCC
LINKFLAGS = -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFTW_INC = ${TACC_FFTW2_INC}
FFTW_LIB = ${TACC_FFTW2_LIB}
FFT_INC = -DFFT_FFTW -I${FFTW_INC}
FFT_PATH = -L${FFTW_LIB}
FFT_LIB = ${FFTW_LIB}/libfftw.a
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore
reax_SYSLIB = -lifcore
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/apps/intel/10.1/fc/lib
reax_SYSPATH = -L/opt/apps/intel/10.1/fc/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.tbird b/src/MAKE/Makefile.tbird
index de21c8fdf..8cd72d106 100644
--- a/src/MAKE/Makefile.tbird
+++ b/src/MAKE/Makefile.tbird
@@ -1,121 +1,130 @@
# tbird = Dell cluster with Xeons, Intel mpicxx, native MPI, FFTW
SHELL = /bin/sh
# this Makefile builds LAMMPS for openMPI running on Tbird
# as of April 09, you want these modules loaded, which are not the default:
# mpi/openmpi-1.2.8_intel-11.0-f074-c074
# misc/env-openmpi-1.2
# compilers/intel-11.0-f074-c074
# libraries/intel-mkl
# libraries/intel_fftw-10.0.4.023
# libraries/intel-mkl-11.0.074
# you can determine which modules are loaded by typing:
# module list
# you can load these modules by putting
# these lines in your .cshrc or other start-up shell file
# or by typing them before you build LAMMPS:
# module switch mpi mpi/openmpi-1.2.8_intel-11.0-f074-c074
# module load libraries/intel_fftw-10.0.4.023
# module load libraries/intel-mkl-11.0.074
# these same modules need to be loaded to submit a LAMMPS job,
# either interactively or via a batch script
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -O
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -O
LIB = -lstdc++ -lm
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I$(FFTW_INCLUDE)
FFT_PATH =
FFT_LIB = $(BLASLIB) $(FFTW_LINK_LINE)
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.tesla b/src/MAKE/Makefile.tesla
index 337fa9e0f..a01bdc5e5 100755
--- a/src/MAKE/Makefile.tesla
+++ b/src/MAKE/Makefile.tesla
@@ -1,102 +1,111 @@
# tesla = 16-proc SGI Onyx3, g++, no MPI, SGI FFTs
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = g++
CCFLAGS = -O
DEPFLAGS = -M
LINK = g++
LINKFLAGS = -O
LIB = -lm -lcomplib.sgimath
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -I../STUBS
MPI_PATH =
MPI_LIB = ../STUBS/libmpi.a
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_SGI
FFT_PATH =
FFT_LIB = -lcomplib.sgimath
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.tunnison b/src/MAKE/Makefile.tunnison
index 2afd374aa..f98730a27 100644
--- a/src/MAKE/Makefile.tunnison
+++ b/src/MAKE/Makefile.tunnison
@@ -1,113 +1,122 @@
# tunnison - 64-bit dual-core Linux cluster, mpic++, OpenMPI-1.1, FFTW2
SHELL = /bin/sh
.IGNORE:
# this Makefile builds LAMMPS for Tunnison with OpenMPI
# to invoke this Makefile, you need these modules loaded:
# compilers/intel-11.1-f064-c064
# misc/env-openmpi-1.4
# mpi/openmpi-1.4.1_mx_intel-11.1-f064-c064
# libraries/fftw-2.1.5
# you can determine which modules are loaded by typing:
# module list
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpic++
CCFLAGS = -O2 \
-funroll-loops -fstrict-aliasing -W -Wno-uninitialized
DEPFLAGS = -M
LINK = mpic++
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rcsv
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC =
MPI_PATH =
MPI_LIB =
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I$(FFTW_INCLUDE)
FFT_PATH = -L$(FFTW_LIB)
FFT_LIB = -lfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -llapack
+user-awpmd_SYSLIB = -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Makefile.xt3 b/src/MAKE/Makefile.xt3
index 2c610c7bc..9a71b6edd 100644
--- a/src/MAKE/Makefile.xt3
+++ b/src/MAKE/Makefile.xt3
@@ -1,104 +1,113 @@
# xt3 = PSC BigBen Cray XT3, CC, native MPI, FFTW
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = CC
CCFLAGS = -O3 --target=catamount \
CCFLAGS = -fomit-frame-pointer -finline-functions \
-Wall -Wno-unused -funroll-all-loops
DEPFLAGS = -M
LINK = CC
LINKFLAGS = --target=catamount -O
LIB = -lgmalloc
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# LAMMPS ifdef options, see doc/Section_start.html
LMP_INC = -DLAMMPS_GZIP -DLAMMPS_XDR
# MPI library, can be src/STUBS dummy lib
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread
# FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package
# INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC = -DFFT_FFTW -I$(FFTW_INC)
FFT_PATH = -L$(FFTW_LIB)
FFT_LIB = -ldfftw
# JPEG library, only needed if -DLAMMPS_JPEG listed with LMP_INC
# INC = path for jpeglib.h
# PATH = path for JPEG library
# LIB = name of JPEG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# additional system libraries needed by LAMMPS package libraries
# these settings are IGNORED if the corresponding LAMMPS package
# (e.g. gpu, meam) is NOT included in the LAMMPS build
-# SYSLIB = names of libraries
-# SYSPATH = paths of libraries
+# SYSINC = settings to compile with
+# SYSLIB = libraries to link with
+# SYSPATH = paths to libraries
+
+gpu_SYSINC =
+meam_SYSINC =
+reax_SYSINC =
+user-atc_SYSINC =
+user-awpmd_SYSINC =
gpu_SYSLIB = -lcudart -lcuda
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack
+user-awpmd_SYSLIB = -lblas -llapack
gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
-user-atc_SYSPATH =
+user-atc_SYSPATH =
+user-awpmd_SYSPATH =
# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section
include Makefile.package
-EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC)
+EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
diff --git a/src/MAKE/Windows/erfc.cpp b/src/MAKE/Windows/erfc.cpp
deleted file mode 100644
index 982572f2d..000000000
--- a/src/MAKE/Windows/erfc.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//This code was written by Philip Nicoletti
-//http://www.codeguru.com/forum/archive/index.php/t-129990.html
-//
-//Modified by Jin Ma, Oklahoma State University for LAMMPS
-//erfc() is defined in GNU libraries. This code is a simplified
-//version for implementation with Visual C++.
-//
-//Warning: these functions are not fully tested.
-//
-#include "erfc.h"
-#include "math.h"
-
-double erf(double x)
-{
- //
- // Computation of the error function erf(x).
- //
- return (1-erfc(x));
-}
-
-//
-//
-double erfc(double x)
-{
- //
- // Computation of the complementary error function erfc(x).
- //
- // The algorithm is based on a Chebyshev fit as denoted in
- // Numerical Recipes 2nd ed. on p. 214 (W.H.Press et al.).
- //
- // The fractional error is always less than 1.2e-7.
- //
- //
- // The parameters of the Chebyshev fit
- //
- const double a1 = -1.26551223, a2 = 1.00002368,
- a3 = 0.37409196, a4 = 0.09678418,
- a5 = -0.18628806, a6 = 0.27886807,
- a7 = -1.13520398, a8 = 1.48851587,
- a9 = -0.82215223, a10 = 0.17087277;
- //
- double v = 1; // The return value
- double z = fabs(x);
- //
- if (z == 0) return v; // erfc(0)=1
- double t = 1/(1+0.5*z);
- v = t*exp((-z*z) +a1+t*(a2+t*(a3+t*(a4+t*(a5+t*(a6+
- t*(a7+t*(a8+t*(a9+t*a10)))))))));
- if (x < 0) v = 2-v; // erfc(-x)=2-erfc(x)
- return v;
-}
\ No newline at end of file
diff --git a/src/MAKE/Windows/erfc.h b/src/MAKE/Windows/erfc.h
deleted file mode 100644
index 43338ab92..000000000
--- a/src/MAKE/Windows/erfc.h
+++ /dev/null
@@ -1,5 +0,0 @@
-//
-
-double erf(double x);
-
-double erfc(double x);
diff --git a/src/MAKE/Windows/notes.1 b/src/MAKE/Windows/notes.1
deleted file mode 100644
index 317e42bdd..000000000
--- a/src/MAKE/Windows/notes.1
+++ /dev/null
@@ -1,52 +0,0 @@
-Compiling LAMMPS under MS Windows:
-
-Tips from Jin Ma at Oklahoma State Univerisity
-jin.ma@okstate.edu
-November 20, 2004
-
-compiled without MPI and FFT in Viusal C++ 6.0
-
--------------------
-
-0. Create an empty workspace (Win32 console), add all .h and .cpp
-files into the project.
-
-1. At about 80 places in the code, variables are redefined. Most of
-these variables are loop counters, which can be easily fixed.
-
-Code looks like this:
-
- for (int i=0; i<5; i++) {
- something;
- }
- for (int i=0; i<5; i++) {
- something else;
- }
-
-This is ok with g++ compiler. But VC thinks the i is redefined in the
-second loop. So the variable scope is different. This happens many times
-in the code. It can be fixed easily based on the compiling error.
-
-2. At the beginning of fft3d.h, added:
-#ifndef FFT_NONE
-#define FFT_NONE
-#endif
-
-3. In input.cpp, changed the two header files
-//#include "unistd.h"
-#include "direct.h"
-
-4. Added mpi.h and mpi.cpp (in STUBS folder) to the workspace
-In mpi.cpp, commented the time.h header file
-//#include <sys/time.h>
-commented the original code in MPI_Wtime(), just make it return 0;
-
-5. In system.cpp, two changes due to difference in the input argument
-list
-Line 82: int iarg = 2;
-Line 171: inflag=1;
-
-The number of input arguments (nargs) is different in g++ and VC when
-you give arguments to run a program. This might be related to MPI as
-well. The difference is one. Once the above changes are made, the
-program is taking the correct argument.
diff --git a/src/MAKE/Windows/notes.2 b/src/MAKE/Windows/notes.2
deleted file mode 100644
index b682d36ad..000000000
--- a/src/MAKE/Windows/notes.2
+++ /dev/null
@@ -1,126 +0,0 @@
-This is instruction for the modification of LAMMPS for MS Windows
-LAMMPS version: Feb 2007
-
-compiled without MPI and FFT in Viusal C++ 6.0
-(All packages except for XTC, MEAM appear to work.)
-
--------------------
-
-1. Create an empty workspace (Win32 console), add all .h and .cpp
-files into the project.
-
-2. At about 80 places in the code, variables are redefined. Most of
-these variables are loop counters, which can be easily fixed.
-
-Code looks like this:
-
- for (int i=0; i<5; i++) {
- something;
- }
- for (int i=0; i<5; i++) {
- something else;
- }
-
-This is ok with g++ compiler. But VC thinks the i is redefined in the
-second loop. So the variable scope is different. This happens many times
-in the code. It can be fixed easily based on the compiling error.
-
-3. At the beginning of fft3d.h, added:
-#ifndef FFT_NONE
-#define FFT_NONE
-#endif
-
-4. In input.cpp, changed the two header files
-//#include "unistd.h"
-#include "direct.h"
-
-4A. (added by Tim Lau, MIT, ttl@mit.edu)
-
-In variable.cpp, change the header files
-//#include "unistd.h"
-#include "sleep.h"
-
-Add in the included sleep.h and sleep.cpp files.
-
-4B. (added by Tim Lau, MIT, ttl@mit.edu)
-
-In shell.cpp, change the header file:
-//#include "unistd.h"
-#include "direct.h"
-
-Change the line in shell.cpp:
-mkdir(arg[i], S_IRWXU | S_IRGRP | S_IXGRP);
-to:
-mkdir(arg[i]);
-since Windows obviously does not use UNIX file permissions.
-
-It's also possible that the line has to be changed to:
-_mkdir(arg[i]);
-depending on the version of the Visual C++ compiler used.
-
-5. Added mpi.h and mpi.cpp (in STUBS folder) to the workspace
-In mpi.cpp, commented the time.h header file
-//#include <sys/time.h>
-commented the original code in MPI_Wtime(), just make it return 0;
-
-6. In system.cpp, two changes due to difference in the input argument
-list
-
-Line 83: int iarg = 2;
-Line 172: inflag=1; //add this line
-
-The number of input arguments (nargs) is different in g++ and VC when
-you give arguments to run a program. This might be related to MPI as
-well. The difference is one. Once the above changes are made, the
-program is taking the correct argument.
-
-However, it has been observed in the latest versions of sytem.cpp that
-no modification needs be made to the file as distributed from the
-LAMMPS website to work. The user however, instead of starting LAMMPS
-by the command:
-
-lammps in.file
-
-as he would if he implemented the changes detailed here, would launch
-in the Unix style:
-
-lammps < in.file
-
-7. The new version LAMMPS calls the error function:
- double erfc(double)
- This function is in the GNU C library. However, it's not found for
- VC++.
- Three options:
- a. One can try to find erfc() from other libraries.
- b. The erfc() is called for pair_modify table option. One can set
- the table option to be 0 to avoid calling this function.
- c. Write your own functions.
-
- In this code, two files erfc.h, erfc.cpp are created and added to the project.
- Files that call erfc() all add
- #include "erfc.h" at the beginning.
- Note: the functions are not fully tested, use with caution.
-
-8. MSVC does not have a inttypes.h file. The simplest way
- to deal with this problem is to download inttypes.h from the
- following site:
- http://www.koders.com/c/fidDE7D6EFFD475FAB1B7F6A2BBA791401CFA88FFA3.aspx
- and add this file into the workspace.
-
-9. MSVC does not have dirent.h. The problem is solved by downloading
-a version of it for Windows from the following website:
-
-http://www.softagalleria.net/dirent/index.en.html
-
-10. Every time an error pops up for a line like this:
-
-char *words[params_per_line];
-
-replace to the following type:
-
-char **words = new char*[params_per_line];
-
-The dynamic memory allocation in MSVC requires a line like this.
-
-11. Build the project. Specify appropriate input file to run the code.
- The Windows result might be different from Unix results. Be Cautious.
diff --git a/src/MAKE/Windows/notes.3 b/src/MAKE/Windows/notes.3
deleted file mode 100644
index 694036507..000000000
--- a/src/MAKE/Windows/notes.3
+++ /dev/null
@@ -1,33 +0,0 @@
-Using MPI and FFTW with LAMMPS under Windows
-from Timothy Lau <ttl@MIT.EDU>
-(the referenced step #'s refer to the notes.2 document)
-
--------
-
-If the user would like to use FFT with LAMMPS, he can download the source code
-for FFTW 2.1.5 and dump all the files into the same directory as LAMMPS. Then
-he can add to the project all the .c and .h files of FFTW as though those were
-LAMMPS files. Instead of following step 3 of the instructions, however, the
-following should be added to fft3d.h:
-
-#ifndef FFT_FFTW
-#define FFT_FFTW
-#endif
-
-The user must take care to check for a Visual Studio compile that the "WIN32"
-variable is defined although it is likely that Visual Studio would
-automatically define this. Refer to line 137 of fftw.h that comes with FFTW
-2.1.5.
-
-If the user would like to use MPI with his Microsoft Visual Studio compile for
-use on a multicore processor or for use on a Windows cluster, it has been
-observed that MPICH 2 (at least the IA32 version) is known to compile with
-LAMMPS in Visual Studio. Instead of following step 5 of the instructions, the
-user could add the MPICH2\include as an additional include directory for MSVS
-to find "mpi.h" and also add the MPICH2\lib as an additional link directory. He
-should add mpi.lib to be specifically linked to.
-
--------
-
-To compile LAMMPS with MPI-2 (e.g. MPICH 2) on Windows, you need
-to use the MPICH_IGNORE_CXX_SEEK preprocessor definition.
diff --git a/src/MAKE/Windows/notes.4 b/src/MAKE/Windows/notes.4
deleted file mode 100644
index d93e9afec..000000000
--- a/src/MAKE/Windows/notes.4
+++ /dev/null
@@ -1,25 +0,0 @@
-Compiling LAMMPS under MS Windows:
-
-Tips from Jamie Sanchez
-jamiesanchezuk@gmail.com
-24 Oct 2008
-
--------------------
-
-1. add the line #include "erfc.h" in the following files:
-pair_coul_long.cpp
-pair_lj_charmm_coul_long.cpp
-pair_lj_cut_coul_long.cpp
-
-2. disable dump DCD in style.h
-
-I'm using Visual Studio 2008 in a Win XP and if I don't disable this
-option the code does not compile.
-
-3. in read_restart.cpp comment line
-#include "dirent.h"
-then comment lines 323 to 340
-
-I'm not using read_restart in Windows runs so even though this allows
-the code to compile successfully I don't necessarily know what this
-will do if you use this command in windows
diff --git a/src/MANYBODY/Install.sh b/src/MANYBODY/Install.sh
index 260df3994..04bf67e87 100644
--- a/src/MANYBODY/Install.sh
+++ b/src/MANYBODY/Install.sh
@@ -1,55 +1,59 @@
# Install/unInstall package files in LAMMPS
if (test $1 = 1) then
cp fix_qeq_comb.cpp ..
+ cp pair_adp.cpp ..
cp pair_airebo.cpp ..
cp pair_comb.cpp ..
cp pair_eam.cpp ..
cp pair_eam_alloy.cpp ..
cp pair_eam_fs.cpp ..
cp pair_eim.cpp ..
cp pair_rebo.cpp ..
cp pair_sw.cpp ..
cp pair_tersoff.cpp ..
cp pair_tersoff_zbl.cpp ..
cp fix_qeq_comb.h ..
+ cp pair_adp.h ..
cp pair_airebo.h ..
cp pair_comb.h ..
cp pair_eam.h ..
cp pair_eam_alloy.h ..
cp pair_eam_fs.h ..
cp pair_eim.h ..
cp pair_rebo.h ..
cp pair_sw.h ..
cp pair_tersoff.h ..
cp pair_tersoff_zbl.h ..
elif (test $1 = 0) then
rm -f ../fix_qeq_comb.cpp
+ rm -f ../pair_adp.cpp
rm -f ../pair_airebo.cpp
rm -f ../pair_comb.cpp
rm -f ../pair_eam.cpp
rm -f ../pair_eam_alloy.cpp
rm -f ../pair_eam_fs.cpp
rm -f ../pair_eim.cpp
rm -f ../pair_rebo.cpp
rm -f ../pair_sw.cpp
rm -f ../pair_tersoff.cpp
rm -f ../pair_tersoff_zbl.cpp
rm -f ../fix_qeq_comb.h
+ rm -f ../pair_adp.h
rm -f ../pair_airebo.h
rm -f ../pair_comb.h
rm -f ../pair_eam.h
rm -f ../pair_eam_alloy.h
rm -f ../pair_eam_fs.h
rm -f ../pair_eim.h
rm -f ../pair_rebo.h
rm -f ../pair_sw.h
rm -f ../pair_tersoff.h
rm -f ../pair_tersoff_zbl.h
fi
diff --git a/src/MANYBODY/fix_qeq_comb.cpp b/src/MANYBODY/fix_qeq_comb.cpp
index 3ef515acd..d1537f78b 100644
--- a/src/MANYBODY/fix_qeq_comb.cpp
+++ b/src/MANYBODY/fix_qeq_comb.cpp
@@ -1,255 +1,255 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Tzu-Ray Shan (U Florida, rayshan@ufl.edu)
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_qeq_comb.h"
#include "atom.h"
#include "force.h"
#include "group.h"
#include "respa.h"
#include "pair_comb.h"
#include "update.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixQEQComb::FixQEQComb(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
{
if (narg < 5) error->all("Illegal fix qeq/comb command");
peratom_flag = 1;
size_peratom_cols = 0;
peratom_freq = 1;
nevery = force->inumeric(arg[3]);
precision = force->numeric(arg[4]);
if (nevery <= 0 || precision <= 0.0)
error->all("Illegal fix qeq/comb command");
MPI_Comm_rank(world,&me);
// optional args
fp = NULL;
int iarg = 5;
while (iarg < narg) {
if (strcmp(arg[iarg],"file") == 0) {
if (iarg+2 > narg) error->all("Illegal fix qeq/comb command");
if (me == 0) {
fp = fopen(arg[iarg+1],"w");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open fix qeq/comb file %s",arg[iarg+1]);
error->one(str);
}
}
iarg += 2;
} else error->all("Illegal fix qeq/comb command");
}
nmax = atom->nmax;
memory->create(qf,nmax,"qeq:qf");
memory->create(q1,nmax,"qeq:q1");
memory->create(q2,nmax,"qeq:q2");
vector_atom = qf;
// zero the vector since dump may access it on timestep 0
// zero the vector since a variable may access it before first run
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) qf[i] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixQEQComb::~FixQEQComb()
{
if (me == 0 && fp) fclose(fp);
memory->destroy(qf);
memory->destroy(q1);
memory->destroy(q2);
}
/* ---------------------------------------------------------------------- */
int FixQEQComb::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixQEQComb::init()
{
if (!atom->q_flag)
error->all("Fix qeq/comb requires atom attribute q");
comb = (PairComb *) force->pair_match("comb",1);
if (comb == NULL) error->all("Must use pair_style comb with fix qeq/comb");
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
ngroup = group->count(igroup);
if (ngroup == 0) error->all("Fix qeq/comb group has no atoms");
}
/* ---------------------------------------------------------------------- */
void FixQEQComb::setup(int vflag)
{
firstflag = 1;
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
firstflag = 0;
}
/* ---------------------------------------------------------------------- */
void FixQEQComb::post_force(int vflag)
{
int i,iloop,loopmax;
double heatpq,qmass,dtq,dtq2;
double enegchkall,enegmaxall;
if (update->ntimestep % nevery) return;
// reallocate work arrays if necessary
// qf = charge force
// q1 = charge displacement
// q2 = tmp storage of charge force for next iteration
if (atom->nmax > nmax) {
memory->destroy(qf);
memory->destroy(q1);
memory->destroy(q2);
nmax = atom->nmax;
memory->create(qf,nmax,"qeq:qf");
memory->create(q1,nmax,"qeq:q1");
memory->create(q2,nmax,"qeq:q2");
vector_atom = qf;
}
// more loops for first-time charge equilibrium
iloop = 0;
if (firstflag) loopmax = 5000;
else loopmax = 2000;
// charge-equilibration loop
if (me == 0 && fp)
fprintf(fp,"Charge equilibration on step " BIGINT_FORMAT "\n",
update->ntimestep);
heatpq = 0.05;
qmass = 0.000548580;
dtq = 0.0006;
dtq2 = 0.5*dtq*dtq/qmass;
double enegchk = 0.0;
double enegtot = 0.0;
double enegmax = 0.0;
double *q = atom->q;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
q1[i] = q2[i] = qf[i] = 0.0;
for (iloop = 0; iloop < loopmax; iloop ++ ) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
q1[i] += qf[i]*dtq2 - heatpq*q1[i];
q[i] += q1[i];
}
enegtot = comb->yasu_char(qf,igroup);
enegtot /= ngroup;
enegchk = enegmax = 0.0;
for (i = 0; i < nlocal ; i++)
if (mask[i] & groupbit) {
q2[i] = enegtot-qf[i];
enegmax = MAX(enegmax,fabs(q2[i]));
enegchk += fabs(q2[i]);
qf[i] = q2[i];
}
MPI_Allreduce(&enegchk,&enegchkall,1,MPI_DOUBLE,MPI_SUM,world);
enegchk = enegchkall/ngroup;
MPI_Allreduce(&enegmax,&enegmaxall,1,MPI_DOUBLE,MPI_MAX,world);
enegmax = enegmaxall;
if (enegchk <= precision && enegmax <= 100.0*precision) break;
if (me == 0 && fp)
fprintf(fp," iteration: %d, enegtot %.6g, "
"enegmax %.6g, fq deviation: %.6g\n",
iloop,enegtot,enegmax,enegchk);
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
q1[i] += qf[i]*dtq2 - heatpq*q1[i];
}
if (me == 0 && fp) {
if (iloop == loopmax)
fprintf(fp,"Charges did not converge in %d iterations\n",iloop);
else
fprintf(fp,"Charges converged in %d iterations to %.10f tolerance\n",
iloop,enegchk);
}
}
/* ---------------------------------------------------------------------- */
void FixQEQComb::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixQEQComb::memory_usage()
{
double bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
diff --git a/src/MANYBODY/pair_adp.cpp b/src/MANYBODY/pair_adp.cpp
new file mode 100644
index 000000000..0536c93a3
--- /dev/null
+++ b/src/MANYBODY/pair_adp.cpp
@@ -0,0 +1,1033 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing authors: Christopher Weinberger (SNL), Stephen Foiles (SNL),
+ Chandra Veer Singh (Cornell)
+------------------------------------------------------------------------- */
+
+#include "math.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "pair_adp.h"
+#include "atom.h"
+#include "force.h"
+#include "comm.h"
+#include "neighbor.h"
+#include "neigh_list.h"
+#include "memory.h"
+#include "error.h"
+
+using namespace LAMMPS_NS;
+
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+
+#define MAXLINE 1024
+
+/* ---------------------------------------------------------------------- */
+
+PairADP::PairADP(LAMMPS *lmp) : Pair(lmp)
+{
+ nmax = 0;
+ rho = NULL;
+ fp = NULL;
+ mu = NULL;
+ lambda = NULL;
+
+ setfl = NULL;
+
+ frho = NULL;
+ rhor = NULL;
+ z2r = NULL;
+ u2r = NULL;
+ w2r = NULL;
+
+ frho_spline = NULL;
+ rhor_spline = NULL;
+ z2r_spline = NULL;
+ u2r_spline = NULL;
+ w2r_spline = NULL;
+
+ // set comm size needed by this Pair
+
+ comm_forward = 10;
+ comm_reverse = 10;
+
+ single_enable = 0;
+ one_coeff = 1;
+}
+
+/* ----------------------------------------------------------------------
+ check if allocated, since class can be destructed when incomplete
+------------------------------------------------------------------------- */
+
+PairADP::~PairADP()
+{
+ memory->destroy(rho);
+ memory->destroy(fp);
+ memory->destroy(mu);
+ memory->destroy(lambda);
+
+ if (allocated) {
+ memory->destroy(setflag);
+ memory->destroy(cutsq);
+ delete [] map;
+ delete [] type2frho;
+ memory->destroy(type2rhor);
+ memory->destroy(type2z2r);
+ memory->destroy(type2u2r);
+ memory->destroy(type2w2r);
+ }
+
+ if (setfl) {
+ for (int i = 0; i < setfl->nelements; i++) delete [] setfl->elements[i];
+ delete [] setfl->elements;
+ delete [] setfl->mass;
+ memory->destroy(setfl->frho);
+ memory->destroy(setfl->rhor);
+ memory->destroy(setfl->z2r);
+ memory->destroy(setfl->u2r);
+ memory->destroy(setfl->w2r);
+ delete setfl;
+ }
+
+ memory->destroy(frho);
+ memory->destroy(rhor);
+ memory->destroy(z2r);
+ memory->destroy(u2r);
+ memory->destroy(w2r);
+
+ memory->destroy(frho_spline);
+ memory->destroy(rhor_spline);
+ memory->destroy(z2r_spline);
+ memory->destroy(u2r_spline);
+ memory->destroy(w2r_spline);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairADP::compute(int eflag, int vflag)
+{
+ int i,j,ii,jj,m,inum,jnum,itype,jtype;
+ double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
+ double rsq,r,p,rhoip,rhojp,z2,z2p,recip,phip,psip,phi;
+ double u2,u2p,w2,w2p,nu;
+ double *coeff;
+ int *ilist,*jlist,*numneigh,**firstneigh;
+ double delmux,delmuy,delmuz,trdelmu,tradellam;
+ double adpx,adpy,adpz,adpx2,adpy2,adpz2;
+ double fx,fy,fz;
+ double sumlamxx,sumlamyy,sumlamzz,sumlamyz,sumlamxz,sumlamxy;
+
+ evdwl = 0.0;
+ if (eflag || vflag) ev_setup(eflag,vflag);
+ else evflag = vflag_fdotr = 0;
+
+ // grow local arrays if necessary
+ // need to be atom->nmax in length
+
+ if (atom->nmax > nmax) {
+ memory->destroy(rho);
+ memory->destroy(fp);
+ memory->destroy(mu);
+ memory->destroy(lambda);
+ nmax = atom->nmax;
+ memory->create(rho,nmax,"pair:rho");
+ memory->create(fp,nmax,"pair:fp");
+ memory->create(mu,nmax,3,"pair:mu");
+ memory->create(lambda,nmax,6,"pair:lambda");
+ }
+
+ double **x = atom->x;
+ double **f = atom->f;
+ int *type = atom->type;
+ int nlocal = atom->nlocal;
+ int newton_pair = force->newton_pair;
+
+ inum = list->inum;
+ ilist = list->ilist;
+ numneigh = list->numneigh;
+ firstneigh = list->firstneigh;
+
+ // zero out density
+
+ if (newton_pair) {
+ m = nlocal + atom->nghost;
+ for (i = 0; i < m; i++) {
+ rho[i] = 0.0;
+ mu[i][0] = 0.0; mu[i][1] = 0.0; mu[i][2] = 0.0;
+ lambda[i][0] = 0.0; lambda[i][1] = 0.0; lambda[i][2] = 0.0;
+ lambda[i][3] = 0.0; lambda[i][4] = 0.0; lambda[i][5] = 0.0;
+ }
+ } else {
+ for (i = 0; i < nlocal; i++) {
+ rho[i] = 0.0;
+ mu[i][0] = 0.0; mu[i][1] = 0.0; mu[i][2] = 0.0;
+ lambda[i][0] = 0.0; lambda[i][1] = 0.0; lambda[i][2] = 0.0;
+ lambda[i][3] = 0.0; lambda[i][4] = 0.0; lambda[i][5] = 0.0;
+ }
+ }
+
+ // rho = density at each atom
+ // loop over neighbors of my atoms
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ xtmp = x[i][0];
+ ytmp = x[i][1];
+ ztmp = x[i][2];
+ itype = type[i];
+ jlist = firstneigh[i];
+ jnum = numneigh[i];
+
+ for (jj = 0; jj < jnum; jj++) {
+ j = jlist[jj];
+
+ delx = xtmp - x[j][0];
+ dely = ytmp - x[j][1];
+ delz = ztmp - x[j][2];
+ rsq = delx*delx + dely*dely + delz*delz;
+
+ if (rsq < cutforcesq) {
+ jtype = type[j];
+ p = sqrt(rsq)*rdr + 1.0;
+ m = static_cast<int> (p);
+ m = MIN(m,nr-1);
+ p -= m;
+ p = MIN(p,1.0);
+ coeff = rhor_spline[type2rhor[jtype][itype]][m];
+ rho[i] += ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ coeff = u2r_spline[type2u2r[jtype][itype]][m];
+ u2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ mu[i][0] += u2*delx;
+ mu[i][1] += u2*dely;
+ mu[i][2] += u2*delz;
+ coeff = w2r_spline[type2w2r[jtype][itype]][m];
+ w2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ lambda[i][0] += w2*delx*delx;
+ lambda[i][1] += w2*dely*dely;
+ lambda[i][2] += w2*delz*delz;
+ lambda[i][3] += w2*dely*delz;
+ lambda[i][4] += w2*delx*delz;
+ lambda[i][5] += w2*delx*dely;
+
+ if (newton_pair || j < nlocal) {
+ // verify sign difference for mu and lambda
+ coeff = rhor_spline[type2rhor[itype][jtype]][m];
+ rho[j] += ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ coeff = u2r_spline[type2u2r[itype][jtype]][m];
+ u2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ mu[j][0] -= u2*delx;
+ mu[j][1] -= u2*dely;
+ mu[j][2] -= u2*delz;
+ coeff = w2r_spline[type2w2r[itype][jtype]][m];
+ w2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ lambda[j][0] += w2*delx*delx;
+ lambda[j][1] += w2*dely*dely;
+ lambda[j][2] += w2*delz*delz;
+ lambda[j][3] += w2*dely*delz;
+ lambda[j][4] += w2*delx*delz;
+ lambda[j][5] += w2*delx*dely;
+ }
+ }
+ }
+ }
+
+ // communicate and sum densities
+
+ if (newton_pair) comm->reverse_comm_pair(this);
+
+ // fp = derivative of embedding energy at each atom
+ // phi = embedding energy at each atom
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ p = rho[i]*rdrho + 1.0;
+ m = static_cast<int> (p);
+ m = MAX(1,MIN(m,nrho-1));
+ p -= m;
+ p = MIN(p,1.0);
+ coeff = frho_spline[type2frho[type[i]]][m];
+ fp[i] = (coeff[0]*p + coeff[1])*p + coeff[2];
+ if (eflag) {
+ phi = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ phi += 0.5*(mu[i][0]*mu[i][0]+mu[i][1]*mu[i][1]+mu[i][2]*mu[i][2]);
+ phi += 0.5*(lambda[i][0]*lambda[i][0]+lambda[i][1]*
+ lambda[i][1]+lambda[i][2]*lambda[i][2]);
+ phi += 1.0*(lambda[i][3]*lambda[i][3]+lambda[i][4]*
+ lambda[i][4]+lambda[i][5]*lambda[i][5]);
+ phi -= 1.0/6.0*(lambda[i][0]+lambda[i][1]+lambda[i][2])*
+ (lambda[i][0]+lambda[i][1]+lambda[i][2]);
+ if (eflag_global) eng_vdwl += phi;
+ if (eflag_atom) eatom[i] += phi;
+ }
+ }
+
+ // communicate derivative of embedding function
+
+ comm->forward_comm_pair(this);
+
+ // compute forces on each atom
+ // loop over neighbors of my atoms
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ xtmp = x[i][0];
+ ytmp = x[i][1];
+ ztmp = x[i][2];
+ itype = type[i];
+
+ jlist = firstneigh[i];
+ jnum = numneigh[i];
+
+ for (jj = 0; jj < jnum; jj++) {
+ j = jlist[jj];
+
+ delx = xtmp - x[j][0];
+ dely = ytmp - x[j][1];
+ delz = ztmp - x[j][2];
+ rsq = delx*delx + dely*dely + delz*delz;
+
+ if (rsq < cutforcesq) {
+ jtype = type[j];
+ r = sqrt(rsq);
+ p = r*rdr + 1.0;
+ m = static_cast<int> (p);
+ m = MIN(m,nr-1);
+ p -= m;
+ p = MIN(p,1.0);
+
+ // rhoip = derivative of (density at atom j due to atom i)
+ // rhojp = derivative of (density at atom i due to atom j)
+ // phi = pair potential energy
+ // phip = phi'
+ // z2 = phi * r
+ // z2p = (phi * r)' = (phi' r) + phi
+ // u2 = u
+ // u2p = u'
+ // w2 = w
+ // w2p = w'
+ // psip needs both fp[i] and fp[j] terms since r_ij appears in two
+ // terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji)
+ // hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip
+
+ coeff = rhor_spline[type2rhor[itype][jtype]][m];
+ rhoip = (coeff[0]*p + coeff[1])*p + coeff[2];
+ coeff = rhor_spline[type2rhor[jtype][itype]][m];
+ rhojp = (coeff[0]*p + coeff[1])*p + coeff[2];
+ coeff = z2r_spline[type2z2r[itype][jtype]][m];
+ z2p = (coeff[0]*p + coeff[1])*p + coeff[2];
+ z2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ coeff = u2r_spline[type2u2r[itype][jtype]][m];
+ u2p = (coeff[0]*p + coeff[1])*p + coeff[2];
+ u2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+ coeff = w2r_spline[type2w2r[itype][jtype]][m];
+ w2p = (coeff[0]*p + coeff[1])*p + coeff[2];
+ w2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
+
+ recip = 1.0/r;
+ phi = z2*recip;
+ phip = z2p*recip - phi*recip;
+ psip = fp[i]*rhojp + fp[j]*rhoip + phip;
+ fpair = -psip*recip;
+
+ delmux = mu[i][0]-mu[j][0];
+ delmuy = mu[i][1]-mu[j][1];
+ delmuz = mu[i][2]-mu[j][2];
+ trdelmu = delmux*delx+delmuy*dely+delmuz*delz;
+ sumlamxx = lambda[i][0]+lambda[j][0];
+ sumlamyy = lambda[i][1]+lambda[j][1];
+ sumlamzz = lambda[i][2]+lambda[j][2];
+ sumlamyz = lambda[i][3]+lambda[j][3];
+ sumlamxz = lambda[i][4]+lambda[j][4];
+ sumlamxy = lambda[i][5]+lambda[j][5];
+ tradellam = sumlamxx*delx*delx+sumlamyy*dely*dely+
+ sumlamzz*delz*delz+2.0*sumlamxy*delx*dely+
+ 2.0*sumlamxz*delx*delz+2.0*sumlamyz*dely*delz;
+ nu = sumlamxx+sumlamyy+sumlamzz;
+
+ adpx = delmux*u2 + trdelmu*u2p*delx*recip +
+ 2.0*w2*(sumlamxx*delx+sumlamxy*dely+sumlamxz*delz) +
+ w2p*delx*recip*tradellam - 1.0/3.0*nu*(w2p*r+2.0*w2)*delx;
+ adpy = delmuy*u2 + trdelmu*u2p*dely*recip +
+ 2.0*w2*(sumlamxy*delx+sumlamyy*dely+sumlamyz*delz) +
+ w2p*dely*recip*tradellam - 1.0/3.0*nu*(w2p*r+2.0*w2)*dely;
+ adpz = delmuz*u2 + trdelmu*u2p*delz*recip +
+ 2.0*w2*(sumlamxz*delx+sumlamyz*dely+sumlamzz*delz) +
+ w2p*delz*recip*tradellam - 1.0/3.0*nu*(w2p*r+2.0*w2)*delz;
+ adpx*=-1.0; adpy*=-1.0; adpz*=-1.0;
+
+ fx = delx*fpair+adpx;
+ fy = dely*fpair+adpy;
+ fz = delz*fpair+adpz;
+
+ f[i][0] += fx;
+ f[i][1] += fy;
+ f[i][2] += fz;
+ if (newton_pair || j < nlocal) {
+ f[j][0] -= fx;
+ f[j][1] -= fy;
+ f[j][2] -= fz;
+ }
+
+ if (eflag) evdwl = phi;
+ if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,
+ fx,fy,fz,delx,dely,delz);
+ }
+ }
+ }
+
+ if (vflag_fdotr) virial_fdotr_compute();
+}
+
+/* ----------------------------------------------------------------------
+ allocate all arrays
+------------------------------------------------------------------------- */
+
+void PairADP::allocate()
+{
+ allocated = 1;
+ int n = atom->ntypes;
+
+ memory->create(setflag,n+1,n+1,"pair:setflag");
+ for (int i = 1; i <= n; i++)
+ for (int j = i; j <= n; j++)
+ setflag[i][j] = 0;
+
+ memory->create(cutsq,n+1,n+1,"pair:cutsq");
+
+ map = new int[n+1];
+ for (int i = 1; i <= n; i++) map[i] = -1;
+
+ type2frho = new int[n+1];
+ memory->create(type2rhor,n+1,n+1,"pair:type2rhor");
+ memory->create(type2z2r,n+1,n+1,"pair:type2z2r");
+ memory->create(type2u2r,n+1,n+1,"pair:type2u2r");
+ memory->create(type2w2r,n+1,n+1,"pair:type2w2r");
+}
+
+/* ----------------------------------------------------------------------
+ global settings
+------------------------------------------------------------------------- */
+
+void PairADP::settings(int narg, char **arg)
+{
+ if (narg > 0) error->all("Illegal pair_style command");
+}
+
+/* ----------------------------------------------------------------------
+ set coeffs for one or more type pairs
+ read concatenated *.plt file
+------------------------------------------------------------------------- */
+
+void PairADP::coeff(int narg, char **arg)
+{
+ int i,j;
+
+ if (!allocated) allocate();
+
+ if (narg != 3 + atom->ntypes)
+ error->all("Incorrect args for pair coefficients");
+
+ // insure I,J args are * *
+
+ if (strcmp(arg[0],"*") != 0 || strcmp(arg[1],"*") != 0)
+ error->all("Incorrect args for pair coefficients");
+
+ // read ADP parameter file
+
+ if (setfl) {
+ for (i = 0; i < setfl->nelements; i++) delete [] setfl->elements[i];
+ delete [] setfl->elements;
+ delete [] setfl->mass;
+ memory->destroy(setfl->frho);
+ memory->destroy(setfl->rhor);
+ memory->destroy(setfl->z2r);
+ memory->destroy(setfl->u2r);
+ memory->destroy(setfl->w2r);
+ delete setfl;
+ }
+ setfl = new Setfl();
+ read_file(arg[2]);
+
+ // read args that map atom types to elements in potential file
+ // map[i] = which element the Ith atom type is, -1 if NULL
+
+ for (i = 3; i < narg; i++) {
+ if (strcmp(arg[i],"NULL") == 0) {
+ map[i-2] = -1;
+ continue;
+ }
+ for (j = 0; j < setfl->nelements; j++)
+ if (strcmp(arg[i],setfl->elements[j]) == 0) break;
+ if (j < setfl->nelements) map[i-2] = j;
+ else error->all("No matching element in ADP potential file");
+ }
+
+ // clear setflag since coeff() called once with I,J = * *
+
+ int n = atom->ntypes;
+ for (i = 1; i <= n; i++)
+ for (j = i; j <= n; j++)
+ setflag[i][j] = 0;
+
+ // set setflag i,j for type pairs where both are mapped to elements
+ // set mass of atom type if i = j
+
+ int count = 0;
+ for (i = 1; i <= n; i++) {
+ for (j = i; j <= n; j++) {
+ if (map[i] >= 0 && map[j] >= 0) {
+ setflag[i][j] = 1;
+ if (i == j) atom->set_mass(i,setfl->mass[map[i]]);
+ count++;
+ }
+ }
+ }
+
+ if (count == 0) error->all("Incorrect args for pair coefficients");
+}
+
+
+/* ----------------------------------------------------------------------
+ init specific to this pair style
+------------------------------------------------------------------------- */
+
+void PairADP::init_style()
+{
+ // convert read-in file(s) to arrays and spline them
+
+ file2array();
+ array2spline();
+
+ int irequest = neighbor->request(this);
+}
+
+/* ----------------------------------------------------------------------
+ init for one type pair i,j and corresponding j,i
+------------------------------------------------------------------------- */
+
+double PairADP::init_one(int i, int j)
+{
+ // single global cutoff = max of cut from all files read in
+ // for funcfl could be multiple files
+ // for setfl or fs, just one file
+
+ if (setfl) cutmax = setfl->cut;
+ cutforcesq = cutmax*cutmax;
+
+ return cutmax;
+}
+
+/* ----------------------------------------------------------------------
+ read potential values from a DYNAMO single element funcfl file
+------------------------------------------------------------------------- */
+
+void PairADP::read_file(char *filename)
+{
+ Setfl *file = setfl;
+
+ // open potential file
+
+ int me = comm->me;
+ FILE *fp;
+ char line[MAXLINE];
+
+ if (me == 0) {
+ fp = fopen(filename,"r");
+ if (fp == NULL) {
+ char str[128];
+ sprintf(str,"Cannot open ADP potential file %s",filename);
+ error->one(str);
+ }
+ }
+
+ // read and broadcast header
+ // extract element names from nelements line
+
+ int n;
+ if (me == 0) {
+ fgets(line,MAXLINE,fp);
+ fgets(line,MAXLINE,fp);
+ fgets(line,MAXLINE,fp);
+ fgets(line,MAXLINE,fp);
+ n = strlen(line) + 1;
+ }
+ MPI_Bcast(&n,1,MPI_INT,0,world);
+ MPI_Bcast(line,n,MPI_CHAR,0,world);
+
+ sscanf(line,"%d",&file->nelements);
+ int nwords = atom->count_words(line);
+ if (nwords != file->nelements + 1)
+ error->all("Incorrect element names in ADP potential file");
+
+ char **words = new char*[file->nelements+1];
+ nwords = 0;
+ char *first = strtok(line," \t\n\r\f");
+ while (words[nwords++] = strtok(NULL," \t\n\r\f")) continue;
+
+ file->elements = new char*[file->nelements];
+ for (int i = 0; i < file->nelements; i++) {
+ n = strlen(words[i]) + 1;
+ file->elements[i] = new char[n];
+ strcpy(file->elements[i],words[i]);
+ }
+ delete [] words;
+
+ if (me == 0) {
+ fgets(line,MAXLINE,fp);
+ sscanf(line,"%d %lg %d %lg %lg",
+ &file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
+ }
+
+ MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
+ MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
+ MPI_Bcast(&file->nr,1,MPI_INT,0,world);
+ MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
+ MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
+
+ file->mass = new double[file->nelements];
+ memory->create(file->frho,file->nelements,file->nrho+1,"pair:frho");
+ memory->create(file->rhor,file->nelements,file->nr+1,"pair:rhor");
+ memory->create(file->z2r,file->nelements,file->nelements,file->nr+1,
+ "pair:z2r");
+ memory->create(file->u2r,file->nelements,file->nelements,file->nr+1,
+ "pair:u2r");
+ memory->create(file->w2r,file->nelements,file->nelements,file->nr+1,
+ "pair:w2r");
+
+ int i,j,tmp;
+ for (i = 0; i < file->nelements; i++) {
+ if (me == 0) {
+ fgets(line,MAXLINE,fp);
+ sscanf(line,"%d %lg",&tmp,&file->mass[i]);
+ }
+ MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
+
+ if (me == 0) grab(fp,file->nrho,&file->frho[i][1]);
+ MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
+ if (me == 0) grab(fp,file->nr,&file->rhor[i][1]);
+ MPI_Bcast(&file->rhor[i][1],file->nr,MPI_DOUBLE,0,world);
+ }
+
+ for (i = 0; i < file->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ if (me == 0) grab(fp,file->nr,&file->z2r[i][j][1]);
+ MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
+ }
+
+ for (i = 0; i < file->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ if (me == 0) grab(fp,file->nr,&file->u2r[i][j][1]);
+ MPI_Bcast(&file->u2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
+ }
+
+ for (i = 0; i < file->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ if (me == 0) grab(fp,file->nr,&file->w2r[i][j][1]);
+ MPI_Bcast(&file->w2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
+ }
+
+ // close the potential file
+
+ if (me == 0) fclose(fp);
+}
+
+/* ----------------------------------------------------------------------
+ convert read-in funcfl potential(s) to standard array format
+ interpolate all file values to a single grid and cutoff
+------------------------------------------------------------------------- */
+
+void PairADP::file2array()
+{
+ int i,j,m,n;
+ int ntypes = atom->ntypes;
+
+ // set function params directly from setfl file
+
+ nrho = setfl->nrho;
+ nr = setfl->nr;
+ drho = setfl->drho;
+ dr = setfl->dr;
+
+ // ------------------------------------------------------------------
+ // setup frho arrays
+ // ------------------------------------------------------------------
+
+ // allocate frho arrays
+ // nfrho = # of setfl elements + 1 for zero array
+
+ nfrho = setfl->nelements + 1;
+ memory->destroy(frho);
+ memory->create(frho,nfrho,nrho+1,"pair:frho");
+
+ // copy each element's frho to global frho
+
+ for (i = 0; i < setfl->nelements; i++)
+ for (m = 1; m <= nrho; m++) frho[i][m] = setfl->frho[i][m];
+
+ // add extra frho of zeroes for non-ADP types to point to (pair hybrid)
+ // this is necessary b/c fp is still computed for non-ADP atoms
+
+ for (m = 1; m <= nrho; m++) frho[nfrho-1][m] = 0.0;
+
+ // type2frho[i] = which frho array (0 to nfrho-1) each atom type maps to
+ // if atom type doesn't point to element (non-ADP atom in pair hybrid)
+ // then map it to last frho array of zeroes
+
+ for (i = 1; i <= ntypes; i++)
+ if (map[i] >= 0) type2frho[i] = map[i];
+ else type2frho[i] = nfrho-1;
+
+ // ------------------------------------------------------------------
+ // setup rhor arrays
+ // ------------------------------------------------------------------
+
+ // allocate rhor arrays
+ // nrhor = # of setfl elements
+
+ nrhor = setfl->nelements;
+ memory->destroy(rhor);
+ memory->create(rhor,nrhor,nr+1,"pair:rhor");
+
+ // copy each element's rhor to global rhor
+
+ for (i = 0; i < setfl->nelements; i++)
+ for (m = 1; m <= nr; m++) rhor[i][m] = setfl->rhor[i][m];
+
+ // type2rhor[i][j] = which rhor array (0 to nrhor-1) each type pair maps to
+ // for setfl files, I,J mapping only depends on I
+ // OK if map = -1 (non-APD atom in pair hybrid) b/c type2rhor not used
+
+ for (i = 1; i <= ntypes; i++)
+ for (j = 1; j <= ntypes; j++)
+ type2rhor[i][j] = map[i];
+
+ // ------------------------------------------------------------------
+ // setup z2r arrays
+ // ------------------------------------------------------------------
+
+ // allocate z2r arrays
+ // nz2r = N*(N+1)/2 where N = # of setfl elements
+
+ nz2r = setfl->nelements * (setfl->nelements+1) / 2;
+ memory->destroy(z2r);
+ memory->create(z2r,nz2r,nr+1,"pair:z2r");
+
+ // copy each element pair z2r to global z2r, only for I >= J
+
+ n = 0;
+ for (i = 0; i < setfl->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ for (m = 1; m <= nr; m++) z2r[n][m] = setfl->z2r[i][j][m];
+ n++;
+ }
+
+ // type2z2r[i][j] = which z2r array (0 to nz2r-1) each type pair maps to
+ // set of z2r arrays only fill lower triangular Nelement matrix
+ // value = n = sum over rows of lower-triangular matrix until reach irow,icol
+ // swap indices when irow < icol to stay lower triangular
+ // OK if map = -1 (non-ADP atom in pair hybrid) b/c type2z2r not used
+
+ int irow,icol;
+ for (i = 1; i <= ntypes; i++) {
+ for (j = 1; j <= ntypes; j++) {
+ irow = map[i];
+ icol = map[j];
+ if (irow == -1 || icol == -1) continue;
+ if (irow < icol) {
+ irow = map[j];
+ icol = map[i];
+ }
+ n = 0;
+ for (m = 0; m < irow; m++) n += m + 1;
+ n += icol;
+ type2z2r[i][j] = n;
+ }
+ }
+
+ // ------------------------------------------------------------------
+ // setup u2r arrays
+ // ------------------------------------------------------------------
+
+ // allocate u2r arrays
+ // nu2r = N*(N+1)/2 where N = # of setfl elements
+
+ nu2r = setfl->nelements * (setfl->nelements+1) / 2;
+ memory->destroy(u2r);
+ memory->create(u2r,nu2r,nr+1,"pair:u2r");
+
+ // copy each element pair z2r to global z2r, only for I >= J
+
+ n = 0;
+ for (i = 0; i < setfl->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ for (m = 1; m <= nr; m++) u2r[n][m] = setfl->u2r[i][j][m];
+ n++;
+ }
+
+ // type2z2r[i][j] = which z2r array (0 to nz2r-1) each type pair maps to
+ // set of z2r arrays only fill lower triangular Nelement matrix
+ // value = n = sum over rows of lower-triangular matrix until reach irow,icol
+ // swap indices when irow < icol to stay lower triangular
+ // OK if map = -1 (non-ADP atom in pair hybrid) b/c type2z2r not used
+
+ for (i = 1; i <= ntypes; i++) {
+ for (j = 1; j <= ntypes; j++) {
+ irow = map[i];
+ icol = map[j];
+ if (irow == -1 || icol == -1) continue;
+ if (irow < icol) {
+ irow = map[j];
+ icol = map[i];
+ }
+ n = 0;
+ for (m = 0; m < irow; m++) n += m + 1;
+ n += icol;
+ type2u2r[i][j] = n;
+ }
+ }
+
+ // ------------------------------------------------------------------
+ // setup w2r arrays
+ // ------------------------------------------------------------------
+
+ // allocate w2r arrays
+ // nw2r = N*(N+1)/2 where N = # of setfl elements
+
+ nw2r = setfl->nelements * (setfl->nelements+1) / 2;
+ memory->destroy(w2r);
+ memory->create(w2r,nw2r,nr+1,"pair:w2r");
+
+ // copy each element pair z2r to global z2r, only for I >= J
+
+ n = 0;
+ for (i = 0; i < setfl->nelements; i++)
+ for (j = 0; j <= i; j++) {
+ for (m = 1; m <= nr; m++) w2r[n][m] = setfl->w2r[i][j][m];
+ n++;
+ }
+
+ // type2z2r[i][j] = which z2r array (0 to nz2r-1) each type pair maps to
+ // set of z2r arrays only fill lower triangular Nelement matrix
+ // value = n = sum over rows of lower-triangular matrix until reach irow,icol
+ // swap indices when irow < icol to stay lower triangular
+ // OK if map = -1 (non-ADP atom in pair hybrid) b/c type2z2r not used
+
+ for (i = 1; i <= ntypes; i++) {
+ for (j = 1; j <= ntypes; j++) {
+ irow = map[i];
+ icol = map[j];
+ if (irow == -1 || icol == -1) continue;
+ if (irow < icol) {
+ irow = map[j];
+ icol = map[i];
+ }
+ n = 0;
+ for (m = 0; m < irow; m++) n += m + 1;
+ n += icol;
+ type2w2r[i][j] = n;
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairADP::array2spline()
+{
+ rdr = 1.0/dr;
+ rdrho = 1.0/drho;
+
+ memory->destroy(frho_spline);
+ memory->destroy(rhor_spline);
+ memory->destroy(z2r_spline);
+ memory->destroy(u2r_spline);
+ memory->destroy(w2r_spline);
+
+ memory->create(frho_spline,nfrho,nrho+1,7,"pair:frho");
+ memory->create(rhor_spline,nrhor,nr+1,7,"pair:rhor");
+ memory->create(z2r_spline,nz2r,nr+1,7,"pair:z2r");
+ memory->create(u2r_spline,nz2r,nr+1,7,"pair:u2r");
+ memory->create(w2r_spline,nz2r,nr+1,7,"pair:w2r");
+
+ for (int i = 0; i < nfrho; i++)
+ interpolate(nrho,drho,frho[i],frho_spline[i]);
+
+ for (int i = 0; i < nrhor; i++)
+ interpolate(nr,dr,rhor[i],rhor_spline[i]);
+
+ for (int i = 0; i < nz2r; i++)
+ interpolate(nr,dr,z2r[i],z2r_spline[i]);
+
+ for (int i = 0; i < nu2r; i++)
+ interpolate(nr,dr,u2r[i],u2r_spline[i]);
+
+ for (int i = 0; i < nw2r; i++)
+ interpolate(nr,dr,w2r[i],w2r_spline[i]);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairADP::interpolate(int n, double delta, double *f, double **spline)
+{
+ for (int m = 1; m <= n; m++) spline[m][6] = f[m];
+
+ spline[1][5] = spline[2][6] - spline[1][6];
+ spline[2][5] = 0.5 * (spline[3][6]-spline[1][6]);
+ spline[n-1][5] = 0.5 * (spline[n][6]-spline[n-2][6]);
+ spline[n][5] = spline[n][6] - spline[n-1][6];
+
+ for (int m = 3; m <= n-2; m++)
+ spline[m][5] = ((spline[m-2][6]-spline[m+2][6]) +
+ 8.0*(spline[m+1][6]-spline[m-1][6])) / 12.0;
+
+ for (int m = 1; m <= n-1; m++) {
+ spline[m][4] = 3.0*(spline[m+1][6]-spline[m][6]) -
+ 2.0*spline[m][5] - spline[m+1][5];
+ spline[m][3] = spline[m][5] + spline[m+1][5] -
+ 2.0*(spline[m+1][6]-spline[m][6]);
+ }
+
+ spline[n][4] = 0.0;
+ spline[n][3] = 0.0;
+
+ for (int m = 1; m <= n; m++) {
+ spline[m][2] = spline[m][5]/delta;
+ spline[m][1] = 2.0*spline[m][4]/delta;
+ spline[m][0] = 3.0*spline[m][3]/delta;
+ }
+}
+
+/* ----------------------------------------------------------------------
+ grab n values from file fp and put them in list
+ values can be several to a line
+ only called by proc 0
+------------------------------------------------------------------------- */
+
+void PairADP::grab(FILE *fp, int n, double *list)
+{
+ char *ptr;
+ char line[MAXLINE];
+
+ int i = 0;
+ while (i < n) {
+ fgets(line,MAXLINE,fp);
+ ptr = strtok(line," \t\n\r\f");
+ list[i++] = atof(ptr);
+ while (ptr = strtok(NULL," \t\n\r\f")) list[i++] = atof(ptr);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int PairADP::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = fp[j];
+ buf[m++] = mu[j][0];
+ buf[m++] = mu[j][1];
+ buf[m++] = mu[j][2];
+ buf[m++] = lambda[j][0];
+ buf[m++] = lambda[j][1];
+ buf[m++] = lambda[j][2];
+ buf[m++] = lambda[j][3];
+ buf[m++] = lambda[j][4];
+ buf[m++] = lambda[j][5];
+ }
+ return 10;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairADP::unpack_comm(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ fp[i] = buf[m++];
+ mu[i][0] = buf[m++];
+ mu[i][1] = buf[m++];
+ mu[i][2] = buf[m++];
+ lambda[i][0] = buf[m++];
+ lambda[i][1] = buf[m++];
+ lambda[i][2] = buf[m++];
+ lambda[i][3] = buf[m++];
+ lambda[i][4] = buf[m++];
+ lambda[i][5] = buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int PairADP::pack_reverse_comm(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ buf[m++] = rho[i];
+ buf[m++] = mu[i][0];
+ buf[m++] = mu[i][1];
+ buf[m++] = mu[i][2];
+ buf[m++] = lambda[i][0];
+ buf[m++] = lambda[i][1];
+ buf[m++] = lambda[i][2];
+ buf[m++] = lambda[i][3];
+ buf[m++] = lambda[i][4];
+ buf[m++] = lambda[i][5];
+ }
+ return 10;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairADP::unpack_reverse_comm(int n, int *list, double *buf)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ rho[j] += buf[m++];
+ mu[j][0] += buf[m++];
+ mu[j][1] += buf[m++];
+ mu[j][2] += buf[m++];
+ lambda[j][0] += buf[m++];
+ lambda[j][1] += buf[m++];
+ lambda[j][2] += buf[m++];
+ lambda[j][3] += buf[m++];
+ lambda[j][4] += buf[m++];
+ lambda[j][5] += buf[m++];
+ }
+}
+
+/* ----------------------------------------------------------------------
+ memory usage of local atom-based arrays
+------------------------------------------------------------------------- */
+
+double PairADP::memory_usage()
+{
+ double bytes = maxeatom * sizeof(double);
+ bytes += maxvatom*6 * sizeof(double);
+ bytes += 21 * nmax * sizeof(double);
+ return bytes;
+}
diff --git a/src/MANYBODY/pair_eam.h b/src/MANYBODY/pair_adp.h
similarity index 73%
copy from src/MANYBODY/pair_eam.h
copy to src/MANYBODY/pair_adp.h
index 5f94de7dd..ee1d9af00 100644
--- a/src/MANYBODY/pair_eam.h
+++ b/src/MANYBODY/pair_adp.h
@@ -1,109 +1,94 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
-PairStyle(eam,PairEAM)
+PairStyle(adp,PairADP)
#else
-#ifndef LMP_PAIR_EAM_H
-#define LMP_PAIR_EAM_H
+#ifndef LMP_PAIR_ADP_H
+#define LMP_PAIR_ADP_H
-#include "stdio.h"
#include "pair.h"
namespace LAMMPS_NS {
-class PairEAM : public Pair {
+class PairADP : public Pair {
public:
- PairEAM(class LAMMPS *);
- virtual ~PairEAM();
+ PairADP(class LAMMPS *);
+ ~PairADP();
void compute(int, int);
void settings(int, char **);
- virtual void coeff(int, char **);
+ void coeff(int, char **);
void init_style();
double init_one(int, int);
- double single(int, int, int, int, double, double, double, double &);
int pack_comm(int, int *, double *, int, int *);
void unpack_comm(int, int, double *);
int pack_reverse_comm(int, int, double *);
void unpack_reverse_comm(int, int *, double *);
double memory_usage();
- void swap_eam(double *, double **);
-
- protected:
+
+ private:
int nmax; // allocated size of per-atom arrays
double cutforcesq,cutmax;
// per-atom arrays
double *rho,*fp;
+ double **mu, **lambda;
// potentials as array data
int nrho,nr;
int nfrho,nrhor,nz2r;
+ int nu2r, nw2r;
double **frho,**rhor,**z2r;
+ double **u2r, **w2r;
int *type2frho,**type2rhor,**type2z2r;
+ int **type2u2r,**type2w2r;
// potentials in spline form used for force computation
double dr,rdr,drho,rdrho;
double ***rhor_spline,***frho_spline,***z2r_spline;
+ double ***u2r_spline, ***w2r_spline;
// potentials as file data
int *map; // which element each atom type maps to
- struct Funcfl {
- char *file;
- int nrho,nr;
- double drho,dr,cut,mass;
- double *frho,*rhor,*zr;
- };
- Funcfl *funcfl;
- int nfuncfl;
-
struct Setfl {
char **elements;
int nelements,nrho,nr;
double drho,dr,cut;
double *mass;
double **frho,**rhor,***z2r;
+ double ***u2r, ***w2r;
};
Setfl *setfl;
- struct Fs {
- char **elements;
- int nelements,nrho,nr;
- double drho,dr,cut;
- double *mass;
- double **frho,***rhor,***z2r;
- };
- Fs *fs;
-
void allocate();
void array2spline();
void interpolate(int, double, double *, double **);
void grab(FILE *, int, double *);
- virtual void read_file(char *);
- virtual void file2array();
+ void read_file(char *);
+ void file2array();
};
}
#endif
#endif
diff --git a/src/MANYBODY/pair_eam.h b/src/MANYBODY/pair_eam.h
index 5f94de7dd..4508cf476 100644
--- a/src/MANYBODY/pair_eam.h
+++ b/src/MANYBODY/pair_eam.h
@@ -1,109 +1,114 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(eam,PairEAM)
#else
#ifndef LMP_PAIR_EAM_H
#define LMP_PAIR_EAM_H
#include "stdio.h"
#include "pair.h"
namespace LAMMPS_NS {
class PairEAM : public Pair {
public:
+
+ // public variables so UESR-ATC package can access them
+
+ double cutmax;
+
+ // potentials as array data
+
+ int nrho,nr;
+ int nfrho,nrhor,nz2r;
+ double **frho,**rhor,**z2r;
+ int *type2frho,**type2rhor,**type2z2r;
+
+ // potentials in spline form used for force computation
+
+ double dr,rdr,drho,rdrho;
+ double ***rhor_spline,***frho_spline,***z2r_spline;
+
PairEAM(class LAMMPS *);
virtual ~PairEAM();
void compute(int, int);
void settings(int, char **);
virtual void coeff(int, char **);
void init_style();
double init_one(int, int);
double single(int, int, int, int, double, double, double, double &);
int pack_comm(int, int *, double *, int, int *);
void unpack_comm(int, int, double *);
int pack_reverse_comm(int, int, double *);
void unpack_reverse_comm(int, int *, double *);
double memory_usage();
void swap_eam(double *, double **);
protected:
int nmax; // allocated size of per-atom arrays
- double cutforcesq,cutmax;
+ double cutforcesq;
// per-atom arrays
double *rho,*fp;
- // potentials as array data
-
- int nrho,nr;
- int nfrho,nrhor,nz2r;
- double **frho,**rhor,**z2r;
- int *type2frho,**type2rhor,**type2z2r;
-
- // potentials in spline form used for force computation
-
- double dr,rdr,drho,rdrho;
- double ***rhor_spline,***frho_spline,***z2r_spline;
-
// potentials as file data
int *map; // which element each atom type maps to
struct Funcfl {
char *file;
int nrho,nr;
double drho,dr,cut,mass;
double *frho,*rhor,*zr;
};
Funcfl *funcfl;
int nfuncfl;
struct Setfl {
char **elements;
int nelements,nrho,nr;
double drho,dr,cut;
double *mass;
double **frho,**rhor,***z2r;
};
Setfl *setfl;
struct Fs {
char **elements;
int nelements,nrho,nr;
double drho,dr,cut;
double *mass;
double **frho,***rhor,***z2r;
};
Fs *fs;
void allocate();
void array2spline();
void interpolate(int, double, double *, double **);
void grab(FILE *, int, double *);
virtual void read_file(char *);
virtual void file2array();
};
}
#endif
#endif
diff --git a/src/MEAM/Install.sh b/src/MEAM/Install.sh
index 833a70f22..88d2955f0 100644
--- a/src/MEAM/Install.sh
+++ b/src/MEAM/Install.sh
@@ -1,32 +1,30 @@
# Install/unInstall package files in LAMMPS
# edit Makefile.package to include/exclude MEAM info
if (test $1 = 1) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*meam //' ../Makefile.package
- sed -i -e 's/[^ \t]*meam_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*meam[^ \t]* //' ../Makefile.package
sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/meam |' ../Makefile.package
sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/meam |' ../Makefile.package
sed -i -e 's|^PKG_LIB =[ \t]*|&-lmeam |' ../Makefile.package
sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(meam_SYSINC) |' ../Makefile.package
sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(meam_SYSLIB) |' ../Makefile.package
sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(meam_SYSPATH) |' ../Makefile.package
fi
cp pair_meam.cpp ..
cp pair_meam.h ..
elif (test $1 = 0) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*meam //' ../Makefile.package
- sed -i -e 's/[^ \t]*meam_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*meam[^ \t]* //' ../Makefile.package
fi
rm -f ../pair_meam.cpp
rm -f ../pair_meam.h
fi
diff --git a/src/MOLECULE/fix_bond_break.cpp b/src/MOLECULE/fix_bond_break.cpp
index 118d8b2cb..2b9f44e1e 100755
--- a/src/MOLECULE/fix_bond_break.cpp
+++ b/src/MOLECULE/fix_bond_break.cpp
@@ -1,392 +1,392 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "mpi.h"
#include "string.h"
#include "stdlib.h"
#include "fix_bond_break.h"
#include "update.h"
#include "respa.h"
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "neighbor.h"
#include "domain.h"
#include "random_mars.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 6) error->all("Illegal fix bond/break command");
MPI_Comm_rank(world,&me);
nevery = atoi(arg[3]);
if (nevery <= 0) error->all("Illegal fix bond/break command");
force_reneighbor = 1;
next_reneighbor = -1;
vector_flag = 1;
size_vector = 2;
global_freq = 1;
extvector = 0;
btype = atoi(arg[4]);
double cutoff = atof(arg[5]);
if (btype < 1 || btype > atom->nbondtypes)
error->all("Invalid bond type in fix bond/break command");
if (cutoff < 0.0) error->all("Illegal fix bond/break command");
cutsq = cutoff*cutoff;
// optional keywords
fraction = 1.0;
int seed = 12345;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"prob") == 0) {
if (iarg+3 > narg) error->all("Illegal fix bond/break command");
fraction = atof(arg[iarg+1]);
seed = atoi(arg[iarg+2]);
if (fraction < 0.0 || fraction > 1.0)
error->all("Illegal fix bond/break command");
if (seed <= 0) error->all("Illegal fix bond/break command");
iarg += 3;
} else error->all("Illegal fix bond/break command");
}
// error check
if (atom->molecular == 0)
error->all("Cannot use fix bond/break with non-molecular systems");
// initialize Marsaglia RNG with processor-unique seed
random = new RanMars(lmp,seed + me);
// set comm sizes needed by this fix
comm_forward = 2;
comm_reverse = 2;
// allocate arrays local to this fix
nmax = 0;
partner = NULL;
distsq = NULL;
// zero out stats
breakcount = 0;
breakcounttotal = 0;
}
/* ---------------------------------------------------------------------- */
FixBondBreak::~FixBondBreak()
{
delete random;
// delete locally stored arrays
memory->destroy(partner);
memory->destroy(distsq);
}
/* ---------------------------------------------------------------------- */
int FixBondBreak::setmask()
{
int mask = 0;
mask |= POST_INTEGRATE;
mask |= POST_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixBondBreak::init()
{
// require special bonds = 0,1,1
int flag = 0;
if (force->special_lj[1] != 0.0 || force->special_lj[2] != 1.0 ||
force->special_lj[3] != 1.0) flag = 1;
if (force->special_coul[1] != 0.0 || force->special_coul[2] != 1.0 ||
force->special_coul[3] != 1.0) flag = 1;
if (flag) error->all("Fix bond/break requires special_bonds = 0,1,1");
// warn if angles, dihedrals, impropers are being used
if (force->angle || force->dihedral || force->improper) {
if (me == 0)
error->warning("Broken bonds will not alter angles, "
"dihedrals, or impropers");
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixBondBreak::post_integrate()
{
int i,j,k,m,n,i1,i2,n1,n3,possible,type;
double delx,dely,delz,rsq,min,max;
int *slist;
if (update->ntimestep % nevery) return;
// need updated ghost atom positions
comm->forward_comm();
// resize bond partner list and initialize it
// probability array overlays distsq array
// needs to be atom->nmax in length
if (atom->nmax > nmax) {
memory->destroy(partner);
memory->destroy(distsq);
nmax = atom->nmax;
memory->create(partner,nmax,"bond/break:partner");
memory->create(distsq,nmax,"bond/break:distsq");
probability = distsq;
}
int nlocal = atom->nlocal;
int nall = atom->nlocal + atom->nghost;
for (i = 0; i < nall; i++) {
partner[i] = 0;
distsq[i] = 0.0;
}
// loop over bond list
// setup possible partner list of bonds to break
double **x = atom->x;
int *tag = atom->tag;
int *mask = atom->mask;
int **bondlist = neighbor->bondlist;
int nbondlist = neighbor->nbondlist;
for (n = 0; n < nbondlist; n++) {
i1 = bondlist[n][0];
i2 = bondlist[n][1];
type = bondlist[n][2];
if (!(mask[i1] & groupbit)) continue;
if (!(mask[i2] & groupbit)) continue;
if (type != btype) continue;
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
if (rsq <= cutsq) continue;
if (rsq > distsq[i1]) {
partner[i1] = tag[i2];
distsq[i1] = rsq;
}
if (rsq > distsq[i2]) {
partner[i2] = tag[i1];
distsq[i2] = rsq;
}
}
// reverse comm of partner info
if (force->newton_bond) comm->reverse_comm_fix(this);
// each atom now knows its winning partner
// for prob check, generate random value for each atom with a bond partner
// forward comm of partner and random value, so ghosts have it
if (fraction < 1.0) {
for (i = 0; i < nlocal; i++)
if (partner[i]) probability[i] = random->uniform();
}
comm->forward_comm_fix(this);
// break bonds
// if both atoms list each other as winning bond partner
// and probability constraint is satisfied
int **bond_type = atom->bond_type;
int **bond_atom = atom->bond_atom;
int *num_bond = atom->num_bond;
int **nspecial = atom->nspecial;
int **special = atom->special;
int nbreak = 0;
for (i = 0; i < nlocal; i++) {
if (partner[i] == 0) continue;
j = atom->map(partner[i]);
if (partner[j] != tag[i]) continue;
// apply probability constraint
// MIN,MAX insures values are added in same order on different procs
if (fraction < 1.0) {
min = MIN(probability[i],probability[j]);
max = MAX(probability[i],probability[j]);
if (0.5*(min+max) >= fraction) continue;
}
// delete bond from atom I if I stores it
// atom J will also do this
for (m = 0; m < num_bond[i]; m++) {
if (bond_atom[i][m] == partner[i]) {
for (k = m; k < num_bond[i]-1; k++) {
bond_atom[i][k] = bond_atom[i][k+1];
bond_type[i][k] = bond_type[i][k+1];
}
num_bond[i]--;
break;
}
}
// remove J from special bond list for atom I
// atom J will also do this
slist = atom->special[i];
n1 = nspecial[i][0];
n3 = nspecial[i][2];
for (m = 0; m < n1; m++)
if (slist[m] == partner[i]) break;
for (; m < n3-1; m++) slist[m] = slist[m+1];
nspecial[i][0]--;
nspecial[i][1]--;
nspecial[i][2]--;
// count the broken bond once
if (tag[i] < tag[j]) nbreak++;
}
// tally stats
MPI_Allreduce(&nbreak,&breakcount,1,MPI_INT,MPI_SUM,world);
breakcounttotal += breakcount;
atom->nbonds -= breakcount;
// trigger reneighboring if any bonds were formed
if (breakcount) next_reneighbor = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
void FixBondBreak::post_integrate_respa(int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_integrate();
}
/* ---------------------------------------------------------------------- */
int FixBondBreak::pack_comm(int n, int *list, double *buf,
int pbc_flag, int *pbc)
{
int i,j,m;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = partner[j];
buf[m++] = probability[j];
}
return 2;
}
/* ---------------------------------------------------------------------- */
void FixBondBreak::unpack_comm(int n, int first, double *buf)
{
int i,m,last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
partner[i] = static_cast<int> (buf[m++]);
probability[i] = buf[m++];
}
}
/* ---------------------------------------------------------------------- */
int FixBondBreak::pack_reverse_comm(int n, int first, double *buf)
{
int i,m,last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
buf[m++] = partner[i];
buf[m++] = distsq[i];
}
return 2;
}
/* ---------------------------------------------------------------------- */
void FixBondBreak::unpack_reverse_comm(int n, int *list, double *buf)
{
int i,j,m;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
if (buf[m+1] > distsq[j]) {
partner[j] = static_cast<int> (buf[m++]);
distsq[j] = buf[m++];
} else m += 2;
}
}
/* ---------------------------------------------------------------------- */
double FixBondBreak::compute_vector(int n)
{
if (n == 1) return (double) breakcount;
return (double) breakcounttotal;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixBondBreak::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += nmax * sizeof(double);
return bytes;
}
diff --git a/src/MOLECULE/fix_bond_create.cpp b/src/MOLECULE/fix_bond_create.cpp
index 68689c420..be7491fe5 100755
--- a/src/MOLECULE/fix_bond_create.cpp
+++ b/src/MOLECULE/fix_bond_create.cpp
@@ -1,617 +1,617 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "mpi.h"
#include "string.h"
#include "stdlib.h"
#include "fix_bond_create.h"
#include "update.h"
#include "respa.h"
#include "atom.h"
#include "force.h"
#include "pair.h"
#include "comm.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "random_mars.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define BIG 1.0e20
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 8) error->all("Illegal fix bond/create command");
MPI_Comm_rank(world,&me);
nevery = atoi(arg[3]);
if (nevery <= 0) error->all("Illegal fix bond/create command");
force_reneighbor = 1;
next_reneighbor = -1;
vector_flag = 1;
size_vector = 2;
global_freq = 1;
extvector = 0;
iatomtype = atoi(arg[4]);
jatomtype = atoi(arg[5]);
double cutoff = atof(arg[6]);
btype = atoi(arg[7]);
if (iatomtype < 1 || iatomtype > atom->ntypes ||
jatomtype < 1 || jatomtype > atom->ntypes)
error->all("Invalid atom type in fix bond/create command");
if (cutoff < 0.0) error->all("Illegal fix bond/create command");
if (btype < 1 || btype > atom->nbondtypes)
error->all("Invalid bond type in fix bond/create command");
cutsq = cutoff*cutoff;
// optional keywords
imaxbond = 0;
inewtype = iatomtype;
jmaxbond = 0;
jnewtype = jatomtype;
fraction = 1.0;
int seed = 12345;
int iarg = 8;
while (iarg < narg) {
if (strcmp(arg[iarg],"iparam") == 0) {
if (iarg+3 > narg) error->all("Illegal fix bond/create command");
imaxbond = atoi(arg[iarg+1]);
inewtype = atoi(arg[iarg+2]);
if (imaxbond < 0) error->all("Illegal fix bond/create command");
if (inewtype < 1 || inewtype > atom->ntypes)
error->all("Invalid atom type in fix bond/create command");
iarg += 3;
} else if (strcmp(arg[iarg],"jparam") == 0) {
if (iarg+3 > narg) error->all("Illegal fix bond/create command");
jmaxbond = atoi(arg[iarg+1]);
jnewtype = atoi(arg[iarg+2]);
if (jmaxbond < 0) error->all("Illegal fix bond/create command");
if (jnewtype < 1 || jnewtype > atom->ntypes)
error->all("Invalid atom type in fix bond/create command");
iarg += 3;
} else if (strcmp(arg[iarg],"prob") == 0) {
if (iarg+3 > narg) error->all("Illegal fix bond/create command");
fraction = atof(arg[iarg+1]);
seed = atoi(arg[iarg+2]);
if (fraction < 0.0 || fraction > 1.0)
error->all("Illegal fix bond/create command");
if (seed <= 0) error->all("Illegal fix bond/create command");
iarg += 3;
} else error->all("Illegal fix bond/create command");
}
// error check
if (atom->molecular == 0)
error->all("Cannot use fix bond/create with non-molecular systems");
if (iatomtype == jatomtype &&
((imaxbond != jmaxbond) || (inewtype != jnewtype)))
error->all("Inconsistent iparam/jparam values in fix bond/create command");
// initialize Marsaglia RNG with processor-unique seed
random = new RanMars(lmp,seed + me);
// perform initial allocation of atom-based arrays
// register with Atom class
// bondcount values will be initialized in setup()
bondcount = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
countflag = 0;
// set comm sizes needed by this fix
comm_forward = 2;
comm_reverse = 2;
// allocate arrays local to this fix
nmax = 0;
partner = NULL;
distsq = NULL;
// zero out stats
createcount = 0;
createcounttotal = 0;
}
/* ---------------------------------------------------------------------- */
FixBondCreate::~FixBondCreate()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
delete random;
// delete locally stored arrays
memory->destroy(bondcount);
memory->destroy(partner);
memory->destroy(distsq);
}
/* ---------------------------------------------------------------------- */
int FixBondCreate::setmask()
{
int mask = 0;
mask |= POST_INTEGRATE;
mask |= POST_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::init()
{
// check cutoff for iatomtype,jatomtype
if (force->pair == NULL || cutsq > force->pair->cutsq[iatomtype][jatomtype])
error->all("Fix bond/create cutoff is longer than pairwise cutoff");
// require special bonds = 0,1,1
if (force->special_lj[1] != 0.0 || force->special_lj[2] != 1.0 ||
force->special_lj[3] != 1.0)
error->all("Fix bond/create requires special_bonds lj = 0,1,1");
if (atom->q_flag)
if (force->special_coul[1] != 0.0 || force->special_coul[2] != 1.0 ||
force->special_coul[3] != 1.0)
error->all("Fix bond/create requires special_bonds coul = 0,1,1");
// warn if angles, dihedrals, impropers are being used
if (force->angle || force->dihedral || force->improper) {
if (me == 0)
error->warning("Created bonds will not create angles, "
"dihedrals, or impropers");
}
// need a half neighbor list, built when ever re-neighboring occurs
int irequest = neighbor->request((void *) this);
neighbor->requests[irequest]->pair = 0;
neighbor->requests[irequest]->fix = 1;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::init_list(int id, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::setup(int vflag)
{
int i,j,m;
// compute initial bondcount if this is first run
// can't do this earlier, like in constructor or init, b/c need ghost info
if (countflag) return;
countflag = 1;
// count bonds stored with each bond I own
// if newton bond is not set, just increment count on atom I
// if newton bond is set, also increment count on atom J even if ghost
// bondcount is long enough to tally ghost atom counts
int *num_bond = atom->num_bond;
int **bond_type = atom->bond_type;
int **bond_atom = atom->bond_atom;
int nlocal = atom->nlocal;
int nghost = atom->nghost;
int nall = nlocal + nghost;
int newton_bond = force->newton_bond;
for (i = 0; i < nall; i++) bondcount[i] = 0;
for (i = 0; i < nlocal; i++)
for (j = 0; j < num_bond[i]; j++) {
if (bond_type[i][j] == btype) {
bondcount[i]++;
if (newton_bond) {
m = atom->map(bond_atom[i][j]);
if (m < 0)
error->one("Could not count initial bonds in fix bond/create");
bondcount[m]++;
}
}
}
// if newton_bond is set, need to sum bondcount
commflag = 0;
if (newton_bond) comm->reverse_comm_fix(this);
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::post_integrate()
{
int i,j,m,ii,jj,inum,jnum,itype,jtype,n1,n3,possible;
double xtmp,ytmp,ztmp,delx,dely,delz,rsq,min,max;
int *ilist,*jlist,*numneigh,**firstneigh,*slist;
if (update->ntimestep % nevery) return;
// need updated ghost atom positions
comm->forward_comm();
// forward comm of bondcount, so ghosts have it
commflag = 0;
comm->forward_comm_fix(this);
// resize bond partner list and initialize it
// probability array overlays distsq array
// needs to be atom->nmax in length
if (atom->nmax > nmax) {
memory->destroy(partner);
memory->destroy(distsq);
nmax = atom->nmax;
memory->create(partner,nmax,"bond/create:partner");
memory->create(distsq,nmax,"bond/create:distsq");
probability = distsq;
}
int nlocal = atom->nlocal;
int nall = atom->nlocal + atom->nghost;
for (i = 0; i < nall; i++) {
partner[i] = 0;
distsq[i] = BIG;
}
// loop over neighbors of my atoms
// each atom sets one closest eligible partner atom ID to bond with
double **x = atom->x;
int *tag = atom->tag;
int *mask = atom->mask;
int *type = atom->type;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
if (!(mask[i] & groupbit)) continue;
itype = type[i];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
if (!(mask[j] & groupbit)) continue;
jtype = type[j];
possible = 0;
if (itype == iatomtype && jtype == jatomtype) {
if ((imaxbond == 0 || bondcount[i] < imaxbond) &&
(jmaxbond == 0 || bondcount[j] < jmaxbond))
possible = 1;
} else if (itype == jatomtype && jtype == iatomtype) {
if ((jmaxbond == 0 || bondcount[i] < jmaxbond) &&
(imaxbond == 0 || bondcount[j] < imaxbond))
possible = 1;
}
if (!possible) continue;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq >= cutsq) continue;
if (rsq < distsq[i]) {
partner[i] = tag[j];
distsq[i] = rsq;
}
if (rsq < distsq[j]) {
partner[j] = tag[i];
distsq[j] = rsq;
}
}
}
// reverse comm of distsq and partner
// not needed if newton_pair off since I,J pair was seen by both procs
commflag = 1;
if (force->newton_pair) comm->reverse_comm_fix(this);
// each atom now knows its winning partner
// for prob check, generate random value for each atom with a bond partner
// forward comm of partner and random value, so ghosts have it
if (fraction < 1.0) {
for (i = 0; i < nlocal; i++)
if (partner[i]) probability[i] = random->uniform();
}
commflag = 1;
comm->forward_comm_fix(this);
// create bonds for atoms I own
// if other atom is owned by another proc, it should create same bond
// if both atoms list each other as winning bond partner
// and probability constraint is satisfied
int **bond_type = atom->bond_type;
int **bond_atom = atom->bond_atom;
int *num_bond = atom->num_bond;
int **nspecial = atom->nspecial;
int **special = atom->special;
int newton_bond = force->newton_bond;
int ncreate = 0;
for (i = 0; i < nlocal; i++) {
if (partner[i] == 0) continue;
j = atom->map(partner[i]);
if (partner[j] != tag[i]) continue;
// apply probability constraint
// MIN,MAX insures values are added in same order on different procs
if (fraction < 1.0) {
min = MIN(probability[i],probability[j]);
max = MAX(probability[i],probability[j]);
if (0.5*(min+max) >= fraction) continue;
}
// if newton_bond is set, only store with I or J
// if not newton_bond, store bond with both I and J
if (!newton_bond || tag[i] < tag[j]) {
if (num_bond[i] == atom->bond_per_atom)
error->one("New bond exceeded bonds per atom in fix bond/create");
bond_type[i][num_bond[i]] = btype;
bond_atom[i][num_bond[i]] = tag[j];
num_bond[i]++;
}
// add a 1-2 neighbor to special bond list for atom I
// atom J will also do this
slist = atom->special[i];
n1 = nspecial[i][0];
n3 = nspecial[i][2];
if (n3 == atom->maxspecial)
error->one("New bond exceeded special list size in fix bond/create");
for (m = n3; m > n1; m--) slist[m+1] = slist[m];
slist[n1] = tag[j];
nspecial[i][0]++;
nspecial[i][1]++;
nspecial[i][2]++;
// increment bondcount, convert atom to new type if limit reached
bondcount[i]++;
if (type[i] == iatomtype) {
if (bondcount[i] == imaxbond) type[i] = inewtype;
} else {
if (bondcount[i] == jmaxbond) type[i] = jnewtype;
}
// count the created bond once
if (tag[i] < tag[j]) ncreate++;
}
// tally stats
MPI_Allreduce(&ncreate,&createcount,1,MPI_INT,MPI_SUM,world);
createcounttotal += createcount;
atom->nbonds += createcount;
// trigger reneighboring if any bonds were formed
if (createcount) next_reneighbor = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::post_integrate_respa(int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_integrate();
}
/* ---------------------------------------------------------------------- */
int FixBondCreate::pack_comm(int n, int *list, double *buf,
int pbc_flag, int *pbc)
{
int i,j,m;
m = 0;
if (commflag == 0) {
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = bondcount[j];
}
return 1;
} else {
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = partner[j];
buf[m++] = probability[j];
}
return 2;
}
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::unpack_comm(int n, int first, double *buf)
{
int i,m,last;
m = 0;
last = first + n;
if (commflag == 0) {
for (i = first; i < last; i++)
bondcount[i] = static_cast<int> (buf[m++]);
} else {
for (i = first; i < last; i++) {
partner[i] = static_cast<int> (buf[m++]);
probability[i] = buf[m++];
}
}
}
/* ---------------------------------------------------------------------- */
int FixBondCreate::pack_reverse_comm(int n, int first, double *buf)
{
int i,m,last;
m = 0;
last = first + n;
if (commflag == 0) {
for (i = first; i < last; i++)
buf[m++] = bondcount[i];
return 1;
} else {
for (i = first; i < last; i++) {
buf[m++] = distsq[i];
buf[m++] = partner[i];
}
return 2;
}
}
/* ---------------------------------------------------------------------- */
void FixBondCreate::unpack_reverse_comm(int n, int *list, double *buf)
{
int i,j,m;
m = 0;
if (commflag == 0) {
for (i = 0; i < n; i++) {
j = list[i];
bondcount[j] += static_cast<int> (buf[m++]);
}
} else {
for (i = 0; i < n; i++) {
j = list[i];
if (buf[m] < distsq[j]) {
distsq[j] = buf[m++];
partner[j] = static_cast<int> (buf[m++]);
} else m += 2;
}
}
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixBondCreate::grow_arrays(int nmax)
{
memory->grow(bondcount,nmax,"bond/create:bondcount");
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixBondCreate::copy_arrays(int i, int j)
{
bondcount[j] = bondcount[i];
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixBondCreate::pack_exchange(int i, double *buf)
{
buf[0] = bondcount[i];
return 1;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixBondCreate::unpack_exchange(int nlocal, double *buf)
{
bondcount[nlocal] = static_cast<int> (buf[0]);
return 1;
}
/* ---------------------------------------------------------------------- */
double FixBondCreate::compute_vector(int n)
{
if (n == 1) return (double) createcount;
return (double) createcounttotal;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixBondCreate::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax*2 * sizeof(int);
bytes += nmax * sizeof(double);
return bytes;
}
diff --git a/src/Makefile b/src/Makefile
index a1b626f66..1070bd502 100755
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,186 +1,196 @@
# LAMMPS multiple-machine Makefile
SHELL = /bin/sh
#.IGNORE:
# Definitions
ROOT = lmp
EXE = $(ROOT)_$@
SRC = $(wildcard *.cpp)
INC = $(wildcard *.h)
OBJ = $(SRC:.cpp=.o)
# Package variables
PACKAGE = asphere class2 colloid dipole dsmc gpu granular \
kspace manybody meam molecule opt peri poems reax replica \
shock srd xtc
-PACKUSER = user-ackland user-atc user-cd-eam user-cg-cmm user-cuda \
- user-eff user-ewaldn user-imd user-reaxc user-smd
+PACKUSER = user-ackland user-atc user-awpmd user-cd-eam user-cg-cmm \
+ user-eff user-ewaldn user-imd user-reaxc user-smd
+# user-cuda user-eff user-ewaldn user-imd user-reaxc user-smd
PACKALL = $(PACKAGE) $(PACKUSER)
PACKAGEUC = $(shell echo $(PACKAGE) | tr a-z A-Z)
PACKUSERUC = $(shell echo $(PACKUSER) | tr a-z A-Z)
YESDIR = $(shell echo $(@:yes-%=%) | tr a-z A-Z)
NODIR = $(shell echo $(@:no-%=%) | tr a-z A-Z)
# List of all targets
help:
@echo ''
@echo 'make clean-all delete all object files'
@echo 'make clean-machine delete object files for one machine'
@echo 'make tar lmp_src.tar.gz of src dir and packages'
@echo 'make makelib update Makefile.lib for library build'
@echo 'make makelist update Makefile.list used by old makes'
@echo ''
@echo 'make package list available packages'
@echo 'make package-status status of all packages'
@echo 'make yes-package install a single package in src dir'
@echo 'make no-package remove a single package from src dir'
@echo 'make yes-all install all packages in src dir'
@echo 'make no-all remove all packages from src dir'
@echo 'make yes-standard install all standard packages'
@echo 'make no-standard remove all standard packages'
@echo 'make yes-user install all user packages'
@echo 'make no-user remove all user packages'
@echo ''
@echo 'make package-update replace src files with package files'
@echo 'make package-overwrite replace package files with src files'
+ @echo 'make package-diff diff src files against package files'
@echo ''
@echo 'make machine build LAMMPS where machine is one of:'
@echo ''
@files="`ls MAKE/Makefile.*`"; \
for file in $$files; do head -1 $$file; done
@echo ''
# Build the code
.DEFAULT:
@test -f MAKE/Makefile.$@
@if [ ! -d Obj_$@ ]; then mkdir Obj_$@; fi
@$(SHELL) Make.sh style
@cp -p *.cpp *.h Obj_$@
@cp MAKE/Makefile.$@ Obj_$@/Makefile
@if [ ! -e Makefile.package ]; then make package-regenerate; fi
@cp Makefile.package Obj_$@
@cd Obj_$@; \
$(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE)
@if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi
# Remove machine-specific object files
clean:
@echo 'make clean-all delete all object files'
@echo 'make clean-machine delete object files for one machine'
clean-all:
rm -rf Obj_*
clean-%:
rm -rf Obj_$(@:clean-%=%)
# Create a tarball of src dir and packages
tar:
@cd STUBS; make clean
@cd ..; tar cvzf src/$(ROOT)_src.tar.gz \
src/Make* src/Package.sh src/MAKE src/*.cpp src/*.h src/STUBS \
$(patsubst %,src/%,$(PACKAGEUC)) $(patsubst %,src/%,$(PACKUSERUC)) \
--exclude=*/.svn
@cd STUBS; make
@echo "Created $(ROOT)_src.tar.gz"
# Update Makefile.lib and Makefile.list
makelib:
@$(SHELL) Make.sh style
@$(SHELL) Make.sh Makefile.lib
makelist:
@$(SHELL) Make.sh style
@$(SHELL) Make.sh Makefile.list
# Package management
package:
@echo 'Standard packages:' $(PACKAGE)
@echo ''
@echo 'User-contributed packages:' $(PACKUSER)
@echo ''
@echo 'make package list available packages'
@echo 'make package-status status of all packages'
@echo 'make yes-package install a single package in src dir'
@echo 'make no-package remove a single package from src dir'
@echo 'make yes-all install all packages in src dir'
@echo 'make no-all remove all packages from src dir'
@echo 'make yes-standard install all standard packages'
@echo 'make no-standard remove all standard packages'
@echo 'make yes-user install all user packages'
@echo 'make no-user remove all user packages'
@echo ''
@echo 'make package-update replace src files with package files'
@echo 'make package-overwrite replace package files with src files'
+ @echo 'make package-diff diff src files against package file'
yes-all:
@for p in $(PACKALL); do $(MAKE) yes-$$p; done
no-all:
@for p in $(PACKALL); do $(MAKE) no-$$p; done
yes-standard:
@for p in $(PACKAGE); do $(MAKE) yes-$$p; done
no-standard:
@for p in $(PACKAGE); do $(MAKE) no-$$p; done
yes-user:
@for p in $(PACKUSER); do $(MAKE) yes-$$p; done
no-user:
@for p in $(PACKUSER); do $(MAKE) no-$$p; done
yes-%:
@if [ ! -e $(YESDIR) ]; then \
echo "Package $(@:yes-%=%) does not exist"; \
else \
echo "Installing package $(@:yes-%=%)"; \
cd $(YESDIR); $(SHELL) Install.sh 1; cd ..; $(SHELL) Depend.sh 1; \
fi;
no-%:
@if [ ! -e $(NODIR) ]; then \
echo "Package $(@:no-%=%) does not exist"; \
else \
echo "Uninstalling package $(@:no-%=%)"; \
cd $(NODIR); $(SHELL) Install.sh 0; cd ..; $(SHELL) Depend.sh 0; \
fi;
-# status = list differences between src and package files
+# status = list src files that differ from package files
# update = replace src files with newer package files
# overwrite = overwrite package files with newer src files
# regenerate = regenerate Makefile.package from Makefile.package.empty
+# diff = show differences between src and package files
package-status:
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p status; done
@echo ''
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p status; done
package-update:
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p update; done
@echo ''
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p update; done
package-overwrite:
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p overwrite; done
@echo ''
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p overwrite; done
package-regenerate:
@cp Makefile.package.empty Makefile.package
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p regenerate; done
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p regenerate; done
+
+package-diff:
+ @for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p diff; done
+ @echo ''
+ @for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p diff; done
+
diff --git a/src/POEMS/Install.sh b/src/POEMS/Install.sh
index 064d83b25..87635f7bb 100644
--- a/src/POEMS/Install.sh
+++ b/src/POEMS/Install.sh
@@ -1,27 +1,27 @@
# Install/unInstall package files in LAMMPS
# edit Makefile.package to include/exclude POEMS info
if (test $1 = 1) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*poems //' ../Makefile.package
+ sed -i -e 's/[^ \t]*poems[^ \t]* //' ../Makefile.package
sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/poems |' ../Makefile.package
sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/poems |' ../Makefile.package
sed -i -e 's|^PKG_LIB =[ \t]*|&-lpoems |' ../Makefile.package
fi
cp fix_poems.cpp ..
cp fix_poems.h ..
elif (test $1 = 0) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*poems //' ../Makefile.package
+ sed -i -e 's/[^ \t]*poems[^ \t]* //' ../Makefile.package
fi
rm -f ../fix_poems.cpp
rm -f ../fix_poems.h
fi
diff --git a/src/POEMS/fix_poems.cpp b/src/POEMS/fix_poems.cpp
index 77d06affe..8fe57abaa 100644
--- a/src/POEMS/fix_poems.cpp
+++ b/src/POEMS/fix_poems.cpp
@@ -1,1596 +1,1596 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
FixPOEMS is a LAMMPS interface to the POEMS coupled multi-body simulator
POEMS authors: Rudranarayan Mukherjee (mukher@rpi.edu)
Kurt Anderson (anderk5@rpi.edu)
------------------------------------------------------------------------- */
#include "mpi.h"
#include "math.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "workspace.h"
#include "fix_poems.h"
#include "atom.h"
#include "domain.h"
#include "update.h"
#include "respa.h"
#include "modify.h"
#include "force.h"
#include "output.h"
#include "group.h"
#include "comm.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MAXBODY 2 // currently 2 since only linear chains allowed
#define DELTA 128
#define TOLERANCE 1.0e-6
#define EPSILON 1.0e-7
#define MAXJACOBI 50
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ----------------------------------------------------------------------
define rigid bodies and joints, initiate POEMS
------------------------------------------------------------------------- */
FixPOEMS::FixPOEMS(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
int i,j,ibody;
time_integrate = 1;
rigid_flag = 1;
virial_flag = 1;
MPI_Comm_rank(world,&me);
// perform initial allocation of atom-based arrays
// register with atom class
natom2body = NULL;
atom2body = NULL;
displace = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
// initialize each atom to belong to no rigid bodies
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) natom2body[i] = 0;
// create an atom map if one doesn't exist already
// readfile() and jointbuild() use global atom IDs
int mapflag = 0;
if (atom->map_style == 0) {
mapflag = 1;
atom->map_style = 1;
atom->map_init();
atom->map_set();
}
// parse command-line args
// set natom2body, atom2body for all atoms and nbody = # of rigid bodies
// atoms must also be in fix group to be in a body
if (narg < 4) error->all("Illegal fix poems command");
// group = arg has list of groups
if (strcmp(arg[3],"group") == 0) {
nbody = narg-4;
if (nbody <= 0) error->all("Illegal fix poems command");
int *igroups = new int[nbody];
for (ibody = 0; ibody < nbody; ibody++) {
igroups[ibody] = group->find(arg[ibody+4]);
if (igroups[ibody] == -1)
error->all("Could not find fix poems group ID");
}
int *mask = atom->mask;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
for (ibody = 0; ibody < nbody; ibody++)
if (mask[i] & group->bitmask[igroups[ibody]]) {
if (natom2body[i] < MAXBODY) atom2body[i][natom2body[i]] = ibody;
natom2body[i]++;
}
}
delete [] igroups;
// file = read bodies from file
// file read doesn't pay attention to fix group,
// so after read, reset natom2body = 0 if atom is not in fix group
} else if (strcmp(arg[3],"file") == 0) {
readfile(arg[4]);
int *mask = atom->mask;
for (int i = 0; i < nlocal; i++)
if (!(mask[i] & groupbit)) natom2body[i] = 0;
// each molecule in fix group is a rigid body
// maxmol = largest molecule #
// ncount = # of atoms in each molecule (have to sum across procs)
// nbody = # of non-zero ncount values
// use nall as incremented ptr to set atom2body[] values for each atom
} else if (strcmp(arg[3],"molecule") == 0) {
if (narg != 4) error->all("Illegal fix poems command");
if (atom->molecular == 0)
error->all("Must use a molecular atom style with fix poems molecule");
int *mask = atom->mask;
int *molecule = atom->molecule;
int nlocal = atom->nlocal;
int maxmol = -1;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) maxmol = MAX(maxmol,molecule[i]);
int itmp;
MPI_Allreduce(&maxmol,&itmp,1,MPI_INT,MPI_MAX,world);
maxmol = itmp + 1;
int *ncount = new int[maxmol];
for (i = 0; i < maxmol; i++) ncount[i] = 0;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) ncount[molecule[i]]++;
int *nall = new int[maxmol];
MPI_Allreduce(ncount,nall,maxmol,MPI_INT,MPI_SUM,world);
nbody = 0;
for (i = 0; i < maxmol; i++)
if (nall[i]) nall[i] = nbody++;
else nall[i] = -1;
for (i = 0; i < nlocal; i++) {
natom2body[i] = 0;
if (mask[i] & groupbit) {
natom2body[i] = 1;
atom2body[i][0] = nall[molecule[i]];
}
}
delete [] ncount;
delete [] nall;
} else error->all("Illegal fix poems command");
// error if no bodies
// error if any atom in too many bodies
if (nbody == 0) error->all("No rigid bodies defined");
int flag = 0;
for (int i = 0; i < nlocal; i++)
if (natom2body[i] > MAXBODY) flag = 1;
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall) error->all("Atom in too many rigid bodies - boost MAXBODY");
// create all nbody-length arrays
nrigid = new int[nbody];
masstotal = new double[nbody];
memory->create(xcm,nbody,3,"poems:xcm");
memory->create(vcm,nbody,3,"poems:vcm");
memory->create(fcm,nbody,3,"poems:fcm");
memory->create(inertia,nbody,3,"poems:inertia");
memory->create(ex_space,nbody,3,"poems:ex_space");
memory->create(ey_space,nbody,3,"poems:ey_space");
memory->create(ez_space,nbody,3,"poems:ez_space");
memory->create(angmom,nbody,3,"poems:angmom");
memory->create(omega,nbody,3,"poems:omega");
memory->create(torque,nbody,3,"poems:torque");
memory->create(sum,nbody,6,"poems:sum");
memory->create(all,nbody,6,"poems:all");
// nrigid[n] = # of atoms in Nth rigid body
// double count joint atoms as being in multiple bodies
// error if one or zero atoms
int *ncount = new int[nbody];
for (ibody = 0; ibody < nbody; ibody++) ncount[ibody] = 0;
for (i = 0; i < nlocal; i++)
for (j = 0; j < natom2body[i]; j++)
ncount[atom2body[i][j]]++;
MPI_Allreduce(ncount,nrigid,nbody,MPI_INT,MPI_SUM,world);
delete [] ncount;
for (ibody = 0; ibody < nbody; ibody++)
if (nrigid[ibody] <= 1) error->all("One or zero atoms in rigid body");
// build list of joint connections and check for cycles and trees
jointbuild();
// delete temporary atom map
if (mapflag) {
atom->map_delete();
atom->map_style = 0;
}
// create POEMS instance
poems = new Workspace;
// print statistics
int nsum = 0;
for (ibody = 0; ibody < nbody; ibody++) nsum += nrigid[ibody];
nsum -= njoint;
if (me == 0) {
if (screen)
fprintf(screen,"%d clusters, %d bodies, %d joints, %d atoms\n",
ncluster,nbody,njoint,nsum);
if (logfile)
fprintf(logfile,"%d clusters, %d bodies, %d joints, %d atoms\n",
ncluster,nbody,njoint,nsum);
}
}
/* ----------------------------------------------------------------------
free all memory for rigid bodies, joints, and POEMS
------------------------------------------------------------------------- */
FixPOEMS::~FixPOEMS()
{
// if atom class still exists:
// unregister this fix so atom class doesn't invoke it any more
if (atom) atom->delete_callback(id,0);
// delete locally stored arrays
memory->destroy(natom2body);
memory->destroy(atom2body);
memory->destroy(displace);
// delete nbody-length arrays
delete [] nrigid;
delete [] masstotal;
memory->destroy(xcm);
memory->destroy(vcm);
memory->destroy(fcm);
memory->destroy(inertia);
memory->destroy(ex_space);
memory->destroy(ey_space);
memory->destroy(ez_space);
memory->destroy(angmom);
memory->destroy(omega);
memory->destroy(torque);
memory->destroy(sum);
memory->destroy(all);
// delete joint arrays
memory->destroy(jointbody);
memory->destroy(xjoint);
delete [] freelist;
// delete POEMS object
delete poems;
}
/* ---------------------------------------------------------------------- */
int FixPOEMS::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= PRE_NEIGHBOR;
mask |= POST_FORCE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixPOEMS::init()
{
int i,j,ibody;
// warn if more than one POEMS fix
int count = 0;
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"poems") == 0) count++;
if (count > 1 && comm->me == 0) error->warning("More than one fix poems");
// error if npt,nph fix comes before rigid fix
for (i = 0; i < modify->nfix; i++) {
if (strcmp(modify->fix[i]->style,"npt") == 0) break;
if (strcmp(modify->fix[i]->style,"nph") == 0) break;
}
if (i < modify->nfix) {
for (int j = i; j < modify->nfix; j++)
if (strcmp(modify->fix[j]->style,"poems") == 0)
error->all("POEMS fix must come before NPT/NPH fix");
}
// timestep info
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
// rRESPA info
- if (strcmp(update->integrate_style,"respa") == 0) {
+ if (strstr(update->integrate_style,"respa")) {
step_respa = ((Respa *) update->integrate)->step;
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
// compute masstotal & center-of-mass xcm of each rigid body
// only count joint atoms in 1st body
int *type = atom->type;
int *image = atom->image;
double *mass = atom->mass;
double **x = atom->x;
double **v = atom->v;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
int xbox,ybox,zbox;
double massone;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
massone = mass[type[i]];
sum[ibody][0] += (x[i][0] + xbox*xprd) * massone;
sum[ibody][1] += (x[i][1] + ybox*yprd) * massone;
sum[ibody][2] += (x[i][2] + zbox*zprd) * massone;
sum[ibody][3] += massone;
sum[ibody][4] += massone *
(v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]);
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
total_ke = 0.0;
for (ibody = 0; ibody < nbody; ibody++) {
masstotal[ibody] = all[ibody][3];
xcm[ibody][0] = all[ibody][0]/masstotal[ibody];
xcm[ibody][1] = all[ibody][1]/masstotal[ibody];
xcm[ibody][2] = all[ibody][2]/masstotal[ibody];
total_ke += 0.5 * all[ibody][4];
}
// compute 6 moments of inertia of each body
// only count joint atoms in 1st body
// dx,dy,dz = coords relative to center-of-mass
double dx,dy,dz;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
massone = mass[type[i]];
sum[ibody][0] += massone * (dy*dy + dz*dz);
sum[ibody][1] += massone * (dx*dx + dz*dz);
sum[ibody][2] += massone * (dx*dx + dy*dy);
sum[ibody][3] -= massone * dx*dy;
sum[ibody][4] -= massone * dy*dz;
sum[ibody][5] -= massone * dx*dz;
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
// inertia = 3 eigenvalues = principal moments of inertia
// ex_space,ey_space,ez_space = 3 eigenvectors = principal axes of rigid body
double **tensor,**evectors;
memory->create(tensor,3,3,"fix_rigid:tensor");
memory->create(evectors,3,3,"fix_rigid:evectors");
int ierror;
double ez0,ez1,ez2;
for (ibody = 0; ibody < nbody; ibody++) {
tensor[0][0] = all[ibody][0];
tensor[1][1] = all[ibody][1];
tensor[2][2] = all[ibody][2];
tensor[0][1] = tensor[1][0] = all[ibody][3];
tensor[1][2] = tensor[2][1] = all[ibody][4];
tensor[0][2] = tensor[2][0] = all[ibody][5];
ierror = jacobi(tensor,inertia[ibody],evectors);
if (ierror) error->all("Insufficient Jacobi rotations for POEMS body");
ex_space[ibody][0] = evectors[0][0];
ex_space[ibody][1] = evectors[1][0];
ex_space[ibody][2] = evectors[2][0];
ey_space[ibody][0] = evectors[0][1];
ey_space[ibody][1] = evectors[1][1];
ey_space[ibody][2] = evectors[2][1];
ez_space[ibody][0] = evectors[0][2];
ez_space[ibody][1] = evectors[1][2];
ez_space[ibody][2] = evectors[2][2];
// if any principal moment < scaled EPSILON, error
// this is b/c POEMS cannot yet handle degenerate bodies
double max;
max = MAX(inertia[ibody][0],inertia[ibody][1]);
max = MAX(max,inertia[ibody][2]);
if (inertia[ibody][0] < EPSILON*max ||
inertia[ibody][1] < EPSILON*max ||
inertia[ibody][2] < EPSILON*max)
error->all("Rigid body has degenerate moment of inertia");
// enforce 3 evectors as a right-handed coordinate system
// flip 3rd evector if needed
ez0 = ex_space[ibody][1]*ey_space[ibody][2] -
ex_space[ibody][2]*ey_space[ibody][1];
ez1 = ex_space[ibody][2]*ey_space[ibody][0] -
ex_space[ibody][0]*ey_space[ibody][2];
ez2 = ex_space[ibody][0]*ey_space[ibody][1] -
ex_space[ibody][1]*ey_space[ibody][0];
if (ez0*ez_space[ibody][0] + ez1*ez_space[ibody][1] +
ez2*ez_space[ibody][2] < 0.0) {
ez_space[ibody][0] = -ez_space[ibody][0];
ez_space[ibody][1] = -ez_space[ibody][1];
ez_space[ibody][2] = -ez_space[ibody][2];
}
}
// free temporary memory
memory->destroy(tensor);
memory->destroy(evectors);
// displace = initial atom coords in basis of principal axes
// only set joint atoms relative to 1st body
// set displace = 0.0 for atoms not in any rigid body
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
displace[i][0] = dx*ex_space[ibody][0] + dy*ex_space[ibody][1] +
dz*ex_space[ibody][2];
displace[i][1] = dx*ey_space[ibody][0] + dy*ey_space[ibody][1] +
dz*ey_space[ibody][2];
displace[i][2] = dx*ez_space[ibody][0] + dy*ez_space[ibody][1] +
dz*ez_space[ibody][2];
} else displace[i][0] = displace[i][1] = displace[i][2] = 0.0;
}
// test for valid principal moments & axes
// recompute moments of inertia around new axes
// only count joint atoms in 1st body
// 3 diagonal moments should equal principal moments
// 3 off-diagonal moments should be 0.0
// (ddx,ddy,ddz) is projection of atom within rigid body onto principal axes
// 6 moments use (ddx,ddy,ddz) displacements from principal axes
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
double ddx,ddy,ddz;
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
massone = mass[type[i]];
ddx = dx*ex_space[ibody][0] + dy*ex_space[ibody][1] +
dz*ex_space[ibody][2];
ddy = dx*ey_space[ibody][0] + dy*ey_space[ibody][1] +
dz*ey_space[ibody][2];
ddz = dx*ez_space[ibody][0] + dy*ez_space[ibody][1] +
dz*ez_space[ibody][2];
sum[ibody][0] += massone * (ddy*ddy + ddz*ddz);
sum[ibody][1] += massone * (ddx*ddx + ddz*ddz);
sum[ibody][2] += massone * (ddx*ddx + ddy*ddy);
sum[ibody][3] -= massone * ddx*ddy;
sum[ibody][4] -= massone * ddy*ddz;
sum[ibody][5] -= massone * ddx*ddz;
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
if (fabs(all[ibody][0]-inertia[ibody][0]) > TOLERANCE ||
fabs(all[ibody][1]-inertia[ibody][1]) > TOLERANCE ||
fabs(all[ibody][2]-inertia[ibody][2]) > TOLERANCE)
error->all("Bad principal moments");
if (fabs(all[ibody][3]) > TOLERANCE ||
fabs(all[ibody][4]) > TOLERANCE ||
fabs(all[ibody][5]) > TOLERANCE)
error->all("Bad principal moments");
}
}
/* ----------------------------------------------------------------------
compute initial rigid body info
make setup call to POEMS
------------------------------------------------------------------------- */
void FixPOEMS::setup(int vflag)
{
int i,j,n,ibody;
// vcm = velocity of center-of-mass of each rigid body
// angmom = angular momentum of each rigid body
// only count joint atoms in 1st body
int *type = atom->type;
int *image = atom->image;
double *mass = atom->mass;
double **x = atom->x;
double **v = atom->v;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
int xbox,ybox,zbox;
double massone,dx,dy,dz;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
massone = mass[type[i]];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
sum[ibody][0] += v[i][0] * massone;
sum[ibody][1] += v[i][1] * massone;
sum[ibody][2] += v[i][2] * massone;
sum[ibody][3] += dy * massone*v[i][2] - dz * massone*v[i][1];
sum[ibody][4] += dz * massone*v[i][0] - dx * massone*v[i][2];
sum[ibody][5] += dx * massone*v[i][1] - dy * massone*v[i][0];
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
vcm[ibody][0] = all[ibody][0]/masstotal[ibody];
vcm[ibody][1] = all[ibody][1]/masstotal[ibody];
vcm[ibody][2] = all[ibody][2]/masstotal[ibody];
angmom[ibody][0] = all[ibody][3];
angmom[ibody][1] = all[ibody][4];
angmom[ibody][2] = all[ibody][5];
}
// virial setup before call to set_v
if (vflag) v_setup(vflag);
else evflag = 0;
// set velocities from angmom & omega
for (ibody = 0; ibody < nbody; ibody++)
omega_from_mq(angmom[ibody],ex_space[ibody],ey_space[ibody],
ez_space[ibody],inertia[ibody],omega[ibody]);
set_v();
// guestimate virial as 2x the set_v contribution
if (vflag_global)
for (n = 0; n < 6; n++) virial[n] *= 2.0;
if (vflag_atom) {
for (i = 0; i < nlocal; i++)
for (n = 0; n < 6; n++)
vatom[i][n] *= 2.0;
}
// use post_force() to compute initial fcm & torque
post_force(vflag);
// setup for POEMS
poems->MakeSystem(nbody,masstotal,inertia,xcm,vcm,omega,
ex_space,ey_space,ez_space,
njoint,jointbody,xjoint,nfree,freelist,
dthalf,dtv,force->ftm2v,total_ke);
}
/* ----------------------------------------------------------------------
update vcm,omega by 1/2 step and xcm,orientation by full step
set x,v of body atoms accordingly
/* ---------------------------------------------------------------------- */
void FixPOEMS::initial_integrate(int vflag)
{
// perform POEMS integration
poems->LobattoOne(xcm,vcm,omega,torque,fcm,ex_space,ey_space,ez_space);
// virial setup before call to set_xv
if (vflag) v_setup(vflag);
else evflag = 0;
// set coords and velocities of atoms in rigid bodies
set_xv();
}
/* ----------------------------------------------------------------------
compute fcm,torque on each rigid body
only count joint atoms in 1st body
------------------------------------------------------------------------- */
void FixPOEMS::post_force(int vflag)
{
int i,j,ibody;
int xbox,ybox,zbox;
double dx,dy,dz;
int *image = atom->image;
double **x = atom->x;
double **f = atom->f;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
sum[ibody][0] += f[i][0];
sum[ibody][1] += f[i][1];
sum[ibody][2] += f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
sum[ibody][3] += dy*f[i][2] - dz*f[i][1];
sum[ibody][4] += dz*f[i][0] - dx*f[i][2];
sum[ibody][5] += dx*f[i][1] - dy*f[i][0];
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
fcm[ibody][0] = all[ibody][0];
fcm[ibody][1] = all[ibody][1];
fcm[ibody][2] = all[ibody][2];
torque[ibody][0] = all[ibody][3];
torque[ibody][1] = all[ibody][4];
torque[ibody][2] = all[ibody][5];
}
}
/* ----------------------------------------------------------------------
update vcm,omega by last 1/2 step
set v of body atoms accordingly
------------------------------------------------------------------------- */
void FixPOEMS::final_integrate()
{
// perform POEMS integration
poems->LobattoTwo(vcm,omega,torque,fcm);
// set velocities of atoms in rigid bodies
// virial is already setup from initial_integrate
set_v();
}
/* ---------------------------------------------------------------------- */
void FixPOEMS::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dthalf = 0.5 * step_respa[ilevel];
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixPOEMS::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixPOEMS::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ----------------------------------------------------------------------
remap xcm of each rigid body back into periodic simulation box
done during pre_neighbor so will be after call to pbc()
and after fix_deform::pre_exchange() may have flipped box
if don't do this, then atoms of a body which drifts far away
from a triclinic box will be remapped back into box
with huge displacements when the box tilt changes via set_x()
NOTE: cannot do this by changing xcm of each body in cluster
or even 1st body in cluster
b/c POEMS library does not see xcm but only sets xcm
so remap needs to be coordinated with POEMS library
thus this routine does nothing for now
------------------------------------------------------------------------- */
void FixPOEMS::pre_neighbor() {}
/* ----------------------------------------------------------------------
count # of degrees-of-freedom removed by fix_poems for atoms in igroup
------------------------------------------------------------------------- */
int FixPOEMS::dof(int igroup)
{
int i,j;
int groupbit = group->bitmask[igroup];
// ncount = # of atoms in each rigid body that are also in group
// only count joint atoms as part of first body
int *mask = atom->mask;
int nlocal = atom->nlocal;
int *ncount = new int[nbody];
for (int ibody = 0; ibody < nbody; ibody++) ncount[ibody] = 0;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
if (natom2body[i]) ncount[atom2body[i][0]]++;
int *nall = new int[nbody];
MPI_Allreduce(ncount,nall,nbody,MPI_INT,MPI_SUM,world);
// remove 3N - 6 dof for each rigid body if at least 2 atoms are in igroup
int n = 0;
for (int ibody = 0; ibody < nbody; ibody++)
if (nall[ibody] > 2) n += 3*nall[ibody] - 6;
// subtract 3 additional dof for each joint if atom is also in igroup
int m = 0;
for (i = 0; i < nlocal; i++)
if (natom2body[i] > 1 && (mask[i] & groupbit)) m += 3*(natom2body[i]-1);
int mall;
MPI_Allreduce(&m,&mall,1,MPI_INT,MPI_SUM,world);
n += mall;
// delete local memory
delete [] ncount;
delete [] nall;
return n;
}
/* ----------------------------------------------------------------------
adjust xcm of each cluster due to box deformation
called by various fixes that change box size/shape
flag = 0/1 means map from box to lamda coords or vice versa
NOTE: cannot do this by changing xcm of each body in cluster
or even 1st body in cluster
b/c POEMS library does not see xcm but only sets xcm
so deform needs to be coordinated with POEMS library
thus this routine does nothing for now
------------------------------------------------------------------------- */
void FixPOEMS::deform(int flag) {}
/* ---------------------------------------------------------------------- */
void FixPOEMS::readfile(char *file)
{
FILE *fp;
if (me == 0) {
fp = fopen(file,"r");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open fix poems file %s",file);
error->one(str);
}
}
nbody = 0;
char *line = NULL;
int maxline = 0;
char *ptr;
int nlocal = atom->nlocal;
int i,id,nlen;
while (1) {
if (me == 0) nlen = readline(fp,&line,&maxline);
MPI_Bcast(&nlen,1,MPI_INT,0,world);
if (nlen == 0) break;
MPI_Bcast(line,nlen,MPI_CHAR,0,world);
ptr = strtok(line," ,\t\n\0");
if (ptr == NULL || ptr[0] == '#') continue;
ptr = strtok(NULL," ,\t\n\0");
while (ptr = strtok(NULL," ,\t\n\0")) {
id = atoi(ptr);
i = atom->map(id);
if (i < 0 || i >= nlocal) continue;
if (natom2body[i] < MAXBODY) atom2body[i][natom2body[i]] = nbody;
natom2body[i]++;
}
nbody++;
}
memory->destroy(line);
fclose(fp);
}
/* ---------------------------------------------------------------------- */
int FixPOEMS::readline(FILE *fp, char **pline, int *pmaxline)
{
int n = 0;
char *line = *pline;
int maxline = *pmaxline;
while (1) {
if (n+1 >= maxline) {
maxline += DELTA;
memory->grow(line,maxline,"fix_poems:line");
}
if (fgets(&line[n],maxline-n,fp) == NULL) {
n = 0;
break;
}
n = strlen(line);
if (n < maxline-1 || line[n-1] == '\n') break;
}
*pmaxline = maxline;
*pline = line;
return n;
}
/* ----------------------------------------------------------------------
build list of joints and error check for cycles and trees
------------------------------------------------------------------------- */
void FixPOEMS::jointbuild()
{
int i,j;
// convert atom2body into list of joint atoms on this proc
// mjoint = # of joint atoms in this proc
// an atom in N rigid bodies, infers N-1 joints between 1st body and others
// mylist = [0],[1] = 2 body indices, [2] = global ID of joint atom
int *tag = atom->tag;
int nlocal = atom->nlocal;
int mjoint = 0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i] <= 1) continue;
mjoint += natom2body[i]-1;
}
int **mylist = NULL;
if (mjoint) memory->create(mylist,mjoint,3,"poems:mylist");
mjoint = 0;
for (i = 0; i < nlocal; i++) {
if (natom2body[i] <= 1) continue;
for (j = 1; j < natom2body[i]; j++) {
mylist[mjoint][0] = atom2body[i][0];
mylist[mjoint][1] = atom2body[i][j];
mylist[mjoint][2] = tag[i];
mjoint++;
}
}
// jlist = mylist concatenated across all procs via MPI_Allgatherv
MPI_Allreduce(&mjoint,&njoint,1,MPI_INT,MPI_SUM,world);
int **jlist = NULL;
if (njoint) memory->create(jlist,njoint,3,"poems:jlist");
int nprocs;
MPI_Comm_size(world,&nprocs);
int *recvcounts = new int[nprocs];
int tmp = 3*mjoint;
MPI_Allgather(&tmp,1,MPI_INT,recvcounts,1,MPI_INT,world);
int *displs = new int[nprocs];
displs[0] = 0;
for (i = 1; i < nprocs; i++) displs[i] = displs[i-1] + recvcounts[i-1];
// allgather the local joint lists
// 2 versions in case mjoint is 0 on this proc
if (njoint) {
if (mjoint)
MPI_Allgatherv(mylist[0],3*mjoint,MPI_INT,jlist[0],
recvcounts,displs,MPI_INT,world);
else
MPI_Allgatherv(NULL,3*mjoint,MPI_INT,jlist[0],
recvcounts,displs,MPI_INT,world);
}
delete [] recvcounts;
delete [] displs;
// warning if no joints
if (njoint == 0 && me == 0)
error->warning("No joints between rigid bodies, use fix rigid instead");
// sort joint list in ascending order by body indices
// check for loops in joint connections between rigid bodies
// check for trees = same body in more than 2 joints
sortlist(njoint,jlist);
if (loopcheck(nbody,njoint,jlist))
error->all("Cyclic loop in joint connections");
int *bodyflag = new int[nbody];
for (i = 0; i < nbody; i++) bodyflag[i] = 0;
for (i = 0; i < njoint; i++) {
bodyflag[jlist[i][0]]++;
bodyflag[jlist[i][1]]++;
}
for (i = 0; i < nbody; i++)
if (bodyflag[i] > 2) error->all("Tree structure in joint connections");
delete [] bodyflag;
// allocate and setup joint arrays
// jointbody stores body indices from 1 to Nbody to pass to POEMS
// each proc sets myjoint if it owns joint atom
// MPI_Allreduce gives all procs the xjoint coords
jointbody = NULL;
xjoint = NULL;
double **myjoint = NULL;
if (njoint) {
memory->create(jointbody,njoint,2,"poems:jointbody");
memory->create(xjoint,njoint,3,"poems:xjoint");
memory->create(myjoint,njoint,3,"poems:myjoint");
}
double **x = atom->x;
for (i = 0; i < njoint; i++) {
jointbody[i][0] = jlist[i][0] + 1;
jointbody[i][1] = jlist[i][1] + 1;
j = atom->map(jlist[i][2]);
if (j >= 0 && j < nlocal) {
myjoint[i][0] = x[j][0];
myjoint[i][1] = x[j][1];
myjoint[i][2] = x[j][2];
} else myjoint[i][0] = myjoint[i][1] = myjoint[i][2] = 0.0;
}
if (njoint)
MPI_Allreduce(myjoint[0],xjoint[0],3*njoint,MPI_DOUBLE,MPI_SUM,world);
// compute freelist of nfree single unconnected bodies
// POEMS could do this itself
int *mark = new int[nbody];
for (i = 0; i < nbody; i++) mark[i] = 1;
for (i = 0; i < njoint; i++) {
mark[jointbody[i][0]-1] = 0;
mark[jointbody[i][1]-1] = 0;
}
nfree = 0;
for (i = 0; i < nbody; i++)
if (mark[i]) nfree++;
if (nfree) freelist = new int[nfree];
else freelist = NULL;
nfree = 0;
for (i = 0; i < nbody; i++)
if (mark[i]) freelist[nfree++] = i + 1;
delete [] mark;
// free memory local to this routine
memory->destroy(mylist);
memory->destroy(jlist);
memory->destroy(myjoint);
}
/* ----------------------------------------------------------------------
sort joint list (Numerical Recipes shell sort)
sort criterion: sort on 1st body, if equal sort on 2nd body
------------------------------------------------------------------------- */
void FixPOEMS::sortlist(int n, int **list)
{
int i,j,v0,v1,v2,flag;
int inc = 1;
while (inc <= n) inc = 3*inc + 1;
do {
inc /= 3;
for (i = inc+1; i <= n; i++) {
v0 = list[i-1][0];
v1 = list[i-1][1];
v2 = list[i-1][2];
j = i;
flag = 0;
if (list[j-inc-1][0] > v0 ||
(list[j-inc-1][0] == v0 && list[j-inc-1][1] > v1)) flag = 1;
while (flag) {
list[j-1][0] = list[j-inc-1][0];
list[j-1][1] = list[j-inc-1][1];
list[j-1][2] = list[j-inc-1][2];
j -= inc;
if (j <= inc) break;
flag = 0;
if (list[j-inc-1][0] > v0 ||
(list[j-inc-1][0] == v0 && list[j-inc-1][1] > v1)) flag = 1;
}
list[j-1][0] = v0;
list[j-1][1] = v1;
list[j-1][2] = v2;
}
} while (inc > 1);
}
/* ----------------------------------------------------------------------
check for cycles in list of joint connections between rigid bodies
treat as graph: vertex = body, edge = joint between 2 bodies
------------------------------------------------------------------------- */
int FixPOEMS::loopcheck(int nvert, int nedge, int **elist)
{
int i,j,k;
// ecount[i] = # of vertices connected to vertex i via edge
// elistfull[i][*] = list of vertices connected to vertex i
int *ecount = new int[nvert];
for (i = 0; i < nvert; i++) ecount[i] = 0;
for (i = 0; i < nedge; i++) {
ecount[elist[i][0]]++;
ecount[elist[i][1]]++;
}
int emax = 0;
for (i = 0; i < nvert; i++) emax = MAX(emax,ecount[i]);
int **elistfull;
memory->create(elistfull,nvert,emax,"poems:elistfull");
for (i = 0; i < nvert; i++) ecount[i] = 0;
for (i = 0; i < nedge; i++) {
elistfull[elist[i][0]][ecount[elist[i][0]]++] = elist[i][1];
elistfull[elist[i][1]][ecount[elist[i][1]]++] = elist[i][0];
}
// cycle detection algorithm
// mark = 0/1 marking of each vertex, all initially unmarked
// outer while loop:
// if all vertices are marked, no cycles, exit loop
// push an unmarked vertex on stack and mark it, parent is -1
// while stack is not empty:
// pop vertex I from stack
// loop over vertices J connected to I via edge
// if J is parent (vertex that pushed I on stack), skip it
// else if J is marked, a cycle is found, return 1
// else push J on stack and mark it, parent is I
// increment ncluster each time stack empties since that is new cluster
int *parent = new int[nvert];
int *mark = new int[nvert];
for (i = 0; i < nvert; i++) mark[i] = 0;
int nstack = 0;
int *stack = new int[nvert];
ncluster = 0;
while (1) {
for (i = 0; i < nvert; i++)
if (mark[i] == 0) break;
if (i == nvert) break;
stack[nstack++] = i;
mark[i] = 1;
parent[i] = -1;
while (nstack) {
i = stack[--nstack];
for (k = 0; k < ecount[i]; k++) {
j = elistfull[i][k];
if (j == parent[i]) continue;
if (mark[j]) return 1;
stack[nstack++] = j;
mark[j] = 1;
parent[j] = i;
}
}
ncluster++;
}
// free memory local to this routine
delete [] ecount;
memory->destroy(elistfull);
delete [] parent;
delete [] mark;
delete [] stack;
return 0;
}
/* ----------------------------------------------------------------------
compute evalues and evectors of 3x3 real symmetric matrix
based on Jacobi rotations
adapted from Numerical Recipes jacobi() function
------------------------------------------------------------------------- */
int FixPOEMS::jacobi(double **matrix, double *evalues, double **evectors)
{
int i,j,k;
double tresh,theta,tau,t,sm,s,h,g,c,b[3],z[3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) evectors[i][j] = 0.0;
evectors[i][i] = 1.0;
}
for (i = 0; i < 3; i++) {
b[i] = evalues[i] = matrix[i][i];
z[i] = 0.0;
}
for (int iter = 1; iter <= MAXJACOBI; iter++) {
sm = 0.0;
for (i = 0; i < 2; i++)
for (j = i+1; j < 3; j++)
sm += fabs(matrix[i][j]);
if (sm == 0.0) return 0;
if (iter < 4) tresh = 0.2*sm/(3*3);
else tresh = 0.0;
for (i = 0; i < 2; i++) {
for (j = i+1; j < 3; j++) {
g = 100.0*fabs(matrix[i][j]);
if (iter > 4 && fabs(evalues[i])+g == fabs(evalues[i])
&& fabs(evalues[j])+g == fabs(evalues[j]))
matrix[i][j] = 0.0;
else if (fabs(matrix[i][j]) > tresh) {
h = evalues[j]-evalues[i];
if (fabs(h)+g == fabs(h)) t = (matrix[i][j])/h;
else {
theta = 0.5*h/(matrix[i][j]);
t = 1.0/(fabs(theta)+sqrt(1.0+theta*theta));
if (theta < 0.0) t = -t;
}
c = 1.0/sqrt(1.0+t*t);
s = t*c;
tau = s/(1.0+c);
h = t*matrix[i][j];
z[i] -= h;
z[j] += h;
evalues[i] -= h;
evalues[j] += h;
matrix[i][j] = 0.0;
for (k = 0; k < i; k++) rotate(matrix,k,i,k,j,s,tau);
for (k = i+1; k < j; k++) rotate(matrix,i,k,k,j,s,tau);
for (k = j+1; k < 3; k++) rotate(matrix,i,k,j,k,s,tau);
for (k = 0; k < 3; k++) rotate(evectors,k,i,k,j,s,tau);
}
}
}
for (i = 0; i < 3; i++) {
evalues[i] = b[i] += z[i];
z[i] = 0.0;
}
}
return 1;
}
/* ----------------------------------------------------------------------
perform a single Jacobi rotation
------------------------------------------------------------------------- */
void FixPOEMS::rotate(double **matrix, int i, int j, int k, int l,
double s, double tau)
{
double g = matrix[i][j];
double h = matrix[k][l];
matrix[i][j] = g-s*(h+g*tau);
matrix[k][l] = h+s*(g-h*tau);
}
/* ----------------------------------------------------------------------
compute omega from angular momentum
w = omega = angular velocity in space frame
wbody = angular velocity in body frame
set wbody component to 0.0 if inertia component is 0.0
otherwise body can spin easily around that axis
project space-frame angular momentum onto body axes
and divide by principal moments
------------------------------------------------------------------------- */
void FixPOEMS::omega_from_mq(double *m, double *ex, double *ey, double *ez,
double *inertia, double *w)
{
double wbody[3];
if (inertia[0] == 0.0) wbody[0] = 0.0;
else wbody[0] = (m[0]*ex[0] + m[1]*ex[1] + m[2]*ex[2]) / inertia[0];
if (inertia[1] == 0.0) wbody[1] = 0.0;
else wbody[1] = (m[0]*ey[0] + m[1]*ey[1] + m[2]*ey[2]) / inertia[1];
if (inertia[2] == 0.0) wbody[2] = 0.0;
else wbody[2] = (m[0]*ez[0] + m[1]*ez[1] + m[2]*ez[2]) / inertia[2];
w[0] = wbody[0]*ex[0] + wbody[1]*ey[0] + wbody[2]*ez[0];
w[1] = wbody[0]*ex[1] + wbody[1]*ey[1] + wbody[2]*ez[1];
w[2] = wbody[0]*ex[2] + wbody[1]*ey[2] + wbody[2]*ez[2];
}
/* ----------------------------------------------------------------------
set space-frame coords and velocity of each atom in each rigid body
x = Q displace + Xcm, mapped back to periodic box
v = Vcm + (W cross (x - Xcm))
------------------------------------------------------------------------- */
void FixPOEMS::set_xv()
{
int ibody;
int xbox,ybox,zbox;
double x0,x1,x2,v0,v1,v2,fc0,fc1,fc2,massone;
double vr[6];
int *image = atom->image;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *mass = atom->mass;
int *type = atom->type;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
// set x and v of each atom
// only set joint atoms for 1st rigid body they belong to
for (int i = 0; i < nlocal; i++) {
if (natom2body[i] == 0) continue;
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
// save old positions and velocities for virial
if (evflag) {
x0 = x[i][0] + xbox*xprd;
x1 = x[i][1] + ybox*yprd;
x2 = x[i][2] + zbox*zprd;
v0 = v[i][0];
v1 = v[i][1];
v2 = v[i][2];
}
// x = displacement from center-of-mass, based on body orientation
// v = vcm + omega around center-of-mass
x[i][0] = ex_space[ibody][0]*displace[i][0] +
ey_space[ibody][0]*displace[i][1] +
ez_space[ibody][0]*displace[i][2];
x[i][1] = ex_space[ibody][1]*displace[i][0] +
ey_space[ibody][1]*displace[i][1] +
ez_space[ibody][1]*displace[i][2];
x[i][2] = ex_space[ibody][2]*displace[i][0] +
ey_space[ibody][2]*displace[i][1] +
ez_space[ibody][2]*displace[i][2];
v[i][0] = omega[ibody][1]*x[i][2] - omega[ibody][2]*x[i][1] +
vcm[ibody][0];
v[i][1] = omega[ibody][2]*x[i][0] - omega[ibody][0]*x[i][2] +
vcm[ibody][1];
v[i][2] = omega[ibody][0]*x[i][1] - omega[ibody][1]*x[i][0] +
vcm[ibody][2];
// add center of mass to displacement
// map back into periodic box via xbox,ybox,zbox
x[i][0] += xcm[ibody][0] - xbox*xprd;
x[i][1] += xcm[ibody][1] - ybox*yprd;
x[i][2] += xcm[ibody][2] - zbox*zprd;
// virial = unwrapped coords dotted into body constraint force
// body constraint force = implied force due to v change minus f external
// assume f does not include forces internal to body
// 1/2 factor b/c final_integrate contributes other half
// assume per-atom contribution is due to constraint force on that atom
if (evflag) {
massone = mass[type[i]];
fc0 = massone*(v[i][0] - v0)/dtf - f[i][0];
fc1 = massone*(v[i][1] - v1)/dtf - f[i][1];
fc2 = massone*(v[i][2] - v2)/dtf - f[i][2];
vr[0] = 0.5*fc0*x0;
vr[1] = 0.5*fc1*x1;
vr[2] = 0.5*fc2*x2;
vr[3] = 0.5*fc1*x0;
vr[4] = 0.5*fc2*x0;
vr[5] = 0.5*fc2*x1;
v_tally(1,&i,1.0,vr);
}
}
}
/* ----------------------------------------------------------------------
set space-frame velocity of each atom in a rigid body
v = Vcm + (W cross (x - Xcm))
------------------------------------------------------------------------- */
void FixPOEMS::set_v()
{
int ibody;
int xbox,ybox,zbox;
double dx,dy,dz;
double x0,x1,x2,v0,v1,v2,fc0,fc1,fc2,massone;
double vr[6];
double *mass = atom->mass;
double **f = atom->f;
double **x = atom->x;
double **v = atom->v;
int *type = atom->type;
int *image = atom->image;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
// set v of each atom
// only set joint atoms for 1st rigid body they belong to
for (int i = 0; i < nlocal; i++) {
if (natom2body[i] == 0) continue;
ibody = atom2body[i][0];
dx = ex_space[ibody][0]*displace[i][0] +
ey_space[ibody][0]*displace[i][1] +
ez_space[ibody][0]*displace[i][2];
dy = ex_space[ibody][1]*displace[i][0] +
ey_space[ibody][1]*displace[i][1] +
ez_space[ibody][1]*displace[i][2];
dz = ex_space[ibody][2]*displace[i][0] +
ey_space[ibody][2]*displace[i][1] +
ez_space[ibody][2]*displace[i][2];
// save old velocities for virial
if (evflag) {
v0 = v[i][0];
v1 = v[i][1];
v2 = v[i][2];
}
v[i][0] = omega[ibody][1]*dz - omega[ibody][2]*dy + vcm[ibody][0];
v[i][1] = omega[ibody][2]*dx - omega[ibody][0]*dz + vcm[ibody][1];
v[i][2] = omega[ibody][0]*dy - omega[ibody][1]*dx + vcm[ibody][2];
// virial = unwrapped coords dotted into body constraint force
// body constraint force = implied force due to v change minus f external
// assume f does not include forces internal to body
// 1/2 factor b/c initial_integrate contributes other half
// assume per-atom contribution is due to constraint force on that atom
if (evflag) {
massone = mass[type[i]];
fc0 = massone*(v[i][0] - v0)/dtf - f[i][0];
fc1 = massone*(v[i][1] - v1)/dtf - f[i][1];
fc2 = massone*(v[i][2] - v2)/dtf - f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
x0 = x[i][0] + xbox*xprd;
x1 = x[i][1] + ybox*yprd;
x2 = x[i][2] + zbox*zprd;
vr[0] = 0.5*fc0*x0;
vr[1] = 0.5*fc1*x1;
vr[2] = 0.5*fc2*x2;
vr[3] = 0.5*fc1*x0;
vr[4] = 0.5*fc2*x0;
vr[5] = 0.5*fc2*x1;
v_tally(1,&i,1.0,vr);
}
}
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixPOEMS::grow_arrays(int nmax)
{
memory->grow(natom2body,nmax,"fix_poems:natom2body");
memory->grow(atom2body,nmax,MAXBODY,"fix_poems:atom2body");
memory->grow(displace,nmax,3,"fix_poems:displace");
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixPOEMS::copy_arrays(int i, int j)
{
natom2body[j] = natom2body[i];
for (int k = 0; k < natom2body[j]; k++) atom2body[j][k] = atom2body[i][k];
displace[j][0] = displace[i][0];
displace[j][1] = displace[i][1];
displace[j][2] = displace[i][2];
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixPOEMS::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += nmax*MAXBODY * sizeof(int);
bytes += nmax*3 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixPOEMS::pack_exchange(int i, double *buf)
{
int m = 0;
buf[m++] = static_cast<double> (natom2body[i]);
for (int j = 0; j < natom2body[i]; j++)
buf[m++] = static_cast<double> (atom2body[i][j]);
buf[m++] = displace[i][0];
buf[m++] = displace[i][1];
buf[m++] = displace[i][2];
return m;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixPOEMS::unpack_exchange(int nlocal, double *buf)
{
int m = 0;
natom2body[nlocal] = static_cast<int> (buf[m++]);
for (int i = 0; i < natom2body[nlocal]; i++)
atom2body[nlocal][i] = static_cast<int> (buf[m++]);
displace[nlocal][0] = buf[m++];
displace[nlocal][1] = buf[m++];
displace[nlocal][2] = buf[m++];
return m;
}
/* ---------------------------------------------------------------------- */
void FixPOEMS::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
}
diff --git a/src/Package.sh b/src/Package.sh
index f1f7025d2..b42494503 100644
--- a/src/Package.sh
+++ b/src/Package.sh
@@ -1,90 +1,114 @@
# Package.sh = package management, called from Makefile
-# Syntax: sh Package.sh DIR status/update/overwrite/regenerate
+# Syntax: sh Package.sh DIR status/update/overwrite/regenerate/diff
# style used to translate dir name to package name
style=`echo $1 | sed 'y/-ABCDEFGHIJKLMNOPQRSTUVWXYZ/_abcdefghijklmnopqrstuvwxyz/'`
# package is already installed if any package *.cpp or *.h file is in src
# else not installed
cd $1
installed=0
for file in *.cpp *.h; do
if (test -e ../$file) then
installed=1
fi
done
# status
# if installed:
# issue warning if any package file is not in src or is different
if (test $2 = "status") then
if (test $installed = 1) then
echo "Installed YES: package $1"
for file in *.cpp *.h; do
if (test ! -e ../$file) then
echo " src/$file does not exist"
elif (test "`diff --brief $file ../$file`" != "") then
echo " src/$file and $1/$file are different"
fi
done
else
echo "Installed NO: package $1"
fi
# update
# if installed:
# cp package file to src if doesn't exist or is different
elif (test $2 = "update") then
echo "Updating src files from $1 package files"
if (test $installed = 1) then
if (test ! -e Package.sh) then
for file in *.cpp *.h; do
if (test ! -e ../$file) then
echo " creating src/$file"
cp $file ..
elif (test "`diff --brief $file ../$file`" != "") then
echo " updating src/$file"
cp $file ..
fi
done
else
/bin/sh Package.sh
fi
else
echo " $1 package is not installed, no action"
fi
# overwrite
# if installed:
# if package file not in src, issue warning
# if src file different than package file, overwrite package file
elif (test $2 = "overwrite") then
echo "Overwriting $1 package files with src files"
if (test $installed = 1) then
for file in *.cpp *.h; do
if (test ! -e ../$file) then
echo " src/$file does not exist"
elif (test "`diff --brief $file ../$file`" != "") then
echo " overwriting $1/$file"
cp ../$file .
fi
done
else
echo " $1 package is not installed, no action"
fi
-# regenernate Makefile.package from Makefile.package.empty
+# regenenate Makefile.package from Makefile.package.empty
# if installed:
# re-install so Install.sh will edit Makefile.pacakge
elif (test $2 = "regenerate") then
if (test $installed = 1) then
/bin/sh Install.sh 1
fi
+
+# diff
+# if installed:
+# show any differences between src files and package files
+
+elif (test $2 = "diff") then
+ if (test $installed = 1) then
+ echo "Installed YES: package $1"
+ for file in *.cpp *.h; do
+ if (test ! -e ../$file) then
+ echo "************************************************************************"
+ echo " src/$file does not exist"
+ echo "************************************************************************"
+ elif (test "`diff --brief $file ../$file`" != "") then
+ echo "************************************************************************"
+ echo "diff $1/$file src/$file "
+ echo "************************************************************************"
+ diff $file ../$file
+ fi
+ done
+ fi
fi
+
+
+
diff --git a/src/REAX/Install.sh b/src/REAX/Install.sh
index 1b98e9e13..849ed83b4 100644
--- a/src/REAX/Install.sh
+++ b/src/REAX/Install.sh
@@ -1,38 +1,36 @@
# Install/unInstall package files in LAMMPS
# edit Makefile.package to include/exclude REAX info
if (test $1 = 1) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*reax //' ../Makefile.package
- sed -i -e 's/[^ \t]*reax_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*reax[^ \t]* //' ../Makefile.package
sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/reax |' ../Makefile.package
sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/reax |' ../Makefile.package
sed -i -e 's|^PKG_LIB =[ \t]*|&-lreax |' ../Makefile.package
sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(reax_SYSINC) |' ../Makefile.package
sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(reax_SYSLIB) |' ../Makefile.package
sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(reax_SYSPATH) |' ../Makefile.package
fi
cp pair_reax.cpp ..
cp pair_reax.h ..
cp pair_reax_fortran.h ..
cp fix_reax_bonds.h ..
cp fix_reax_bonds.cpp ..
elif (test $1 = 0) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*reax //' ../Makefile.package
- sed -i -e 's/[^ \t]*reax_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*reax[^ \t]* //' ../Makefile.package
fi
rm -f ../pair_reax.cpp
rm -f ../pair_reax.h
rm -f ../pair_reax_fortran.h
rm -f ../fix_reax_bonds.h
rm -f ../fix_reax_bonds.cpp
fi
diff --git a/src/STUBS/mpi.cpp b/src/STUBS/mpi.cpp
index 3a949d294..35dab3b1d 100644
--- a/src/STUBS/mpi.cpp
+++ b/src/STUBS/mpi.cpp
@@ -1,430 +1,432 @@
/* -----------------------------------------------------------------------
LAMMPS 2003 (July 31) - Molecular Dynamics Simulator
Sandia National Laboratories, www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------ */
/* Single-processor "stub" versions of MPI routines */
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "stdint.h"
#include <sys/time.h>
#include "mpi.h"
/* lo-level function prototypes */
void mpi_copy_int(void *, void *, int);
void mpi_copy_float(void *, void *, int);
void mpi_copy_double(void *, void *, int);
void mpi_copy_char(void *, void *, int);
void mpi_copy_byte(void *, void *, int);
/* lo-level data structure */
struct {
double value;
int proc;
} double_int;
/* ---------------------------------------------------------------------- */
/* MPI Functions */
/* ---------------------------------------------------------------------- */
int MPI_Init(int *argc, char ***argv) {return 0;}
/* ---------------------------------------------------------------------- */
int MPI_Initialized(int *flag)
{
*flag = 1;
return 0;
}
/* ---------------------------------------------------------------------- */
/* Returns "localhost" as the name of the processor */
void MPI_Get_processor_name(char *name, int *resultlen)
{
const char host[] = "localhost";
int len;
if (!name || !resultlen) return;
len = strlen(host);
memcpy(name,host,len+1);
*resultlen = len;
return;
}
/* ---------------------------------------------------------------------- */
int MPI_Comm_rank(MPI_Comm comm, int *me)
{
*me = 0;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Comm_size(MPI_Comm comm, int *nprocs)
{
*nprocs = 1;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Abort(MPI_Comm comm, int errorcode)
{
exit(1);
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Finalize() {return 0;}
/* ---------------------------------------------------------------------- */
double MPI_Wtime()
{
double time;
struct timeval tv;
gettimeofday(&tv,NULL);
time = 1.0 * tv.tv_sec + 1.0e-6 * tv.tv_usec;
return time;
}
/* ---------------------------------------------------------------------- */
int MPI_Type_size(MPI_Datatype datatype, int *size)
{
if (datatype == MPI_INT) *size = sizeof(int);
else if (datatype == MPI_FLOAT) *size = sizeof(float);
else if (datatype == MPI_DOUBLE) *size = sizeof(double);
else if (datatype == MPI_CHAR) *size = sizeof(char);
else if (datatype == MPI_BYTE) *size = sizeof(char);
else if (datatype == MPI_LONG_LONG) *size = sizeof(uint64_t);
else if (datatype == MPI_DOUBLE_INT) *size = sizeof(double_int);
+
+ return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Send(void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm)
{
printf("MPI Stub WARNING: Should not send message to self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Rsend(void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm)
{
printf("MPI Stub WARNING: Should not rsend message to self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Recv(void *buf, int count, MPI_Datatype datatype,
int source, int tag, MPI_Comm comm, MPI_Status *status)
{
printf("MPI Stub WARNING: Should not recv message from self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype,
int source, int tag, MPI_Comm comm, MPI_Request *request)
{
printf("MPI Stub WARNING: Should not recv message from self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Wait(MPI_Request *request, MPI_Status *status)
{
printf("MPI Stub WARNING: Should not wait on message from self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Waitall(int n, MPI_Request *request, MPI_Status *status)
{
printf("MPI Stub WARNING: Should not wait on message from self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Waitany(int count, MPI_Request *request, int *index,
MPI_Status *status)
{
printf("MPI Stub WARNING: Should not wait on message from self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Sendrecv(void *sbuf, int scount, MPI_Datatype sdatatype,
int dest, int stag, void *rbuf, int rcount,
MPI_Datatype rdatatype, int source, int rtag,
MPI_Comm comm, MPI_Status *status)
{
printf("MPI Stub WARNING: Should not send message to self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count)
{
printf("MPI Stub WARNING: Should not get count of message to self\n");
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *comm_out)
{
*comm_out = comm;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *comm_out)
{
*comm_out = comm;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Comm_free(MPI_Comm *comm) {return 0;}
/* ---------------------------------------------------------------------- */
int MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods,
int reorder, MPI_Comm *comm_cart)
{
*comm_cart = comm_old;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, int *periods,
int *coords)
{
dims[0] = dims[1] = dims[2] = 1;
periods[0] = periods[1] = periods[2] = 1;
coords[0] = coords[1] = coords[2] = 0;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Cart_shift(MPI_Comm comm, int direction, int displ,
int *source, int *dest)
{
*source = *dest = 0;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank)
{
*rank = 0;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Barrier(MPI_Comm comm) {return 0;}
/* ---------------------------------------------------------------------- */
int MPI_Bcast(void *buf, int count, MPI_Datatype datatype,
int root, MPI_Comm comm) {return 0;}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Allreduce(void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
{
int n;
if (datatype == MPI_INT) n = count*sizeof(int);
else if (datatype == MPI_FLOAT) n = count*sizeof(float);
else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
else if (datatype == MPI_CHAR) n = count*sizeof(char);
else if (datatype == MPI_BYTE) n = count*sizeof(char);
else if (datatype == MPI_LONG_LONG) n = count*sizeof(uint64_t);
else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Reduce(void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op,
int root, MPI_Comm comm)
{
int n;
if (datatype == MPI_INT) n = count*sizeof(int);
else if (datatype == MPI_FLOAT) n = count*sizeof(float);
else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
else if (datatype == MPI_CHAR) n = count*sizeof(char);
else if (datatype == MPI_BYTE) n = count*sizeof(char);
else if (datatype == MPI_LONG_LONG) n = count*sizeof(uint64_t);
else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Scan(void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
{
int n;
if (datatype == MPI_INT) n = count*sizeof(int);
else if (datatype == MPI_FLOAT) n = count*sizeof(float);
else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
else if (datatype == MPI_CHAR) n = count*sizeof(char);
else if (datatype == MPI_BYTE) n = count*sizeof(char);
else if (datatype == MPI_LONG_LONG) n = count*sizeof(uint64_t);
else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
MPI_Comm comm)
{
int n;
if (sendtype == MPI_INT) n = sendcount*sizeof(int);
else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
else if (sendtype == MPI_LONG_LONG) n = sendcount*sizeof(uint64_t);
else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int *recvcounts, int *displs,
MPI_Datatype recvtype, MPI_Comm comm)
{
int n;
if (sendtype == MPI_INT) n = sendcount*sizeof(int);
else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
else if (sendtype == MPI_LONG_LONG) n = sendcount*sizeof(uint64_t);
else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
{
int n;
if (datatype == MPI_INT) n = *recvcounts*sizeof(int);
else if (datatype == MPI_FLOAT) n = *recvcounts*sizeof(float);
else if (datatype == MPI_DOUBLE) n = *recvcounts*sizeof(double);
else if (datatype == MPI_CHAR) n = *recvcounts*sizeof(char);
else if (datatype == MPI_BYTE) n = *recvcounts*sizeof(char);
else if (datatype == MPI_LONG_LONG) n = *recvcounts*sizeof(uint64_t);
else if (datatype == MPI_DOUBLE_INT) n = *recvcounts*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm)
{
int n;
if (sendtype == MPI_INT) n = sendcount*sizeof(int);
else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
else if (sendtype == MPI_LONG_LONG) n = sendcount*sizeof(uint64_t);
else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
/* ---------------------------------------------------------------------- */
/* copy values from data1 to data2 */
int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int *recvcounts, int *displs,
MPI_Datatype recvtype, int root, MPI_Comm comm)
{
int n;
if (sendtype == MPI_INT) n = sendcount*sizeof(int);
else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
else if (sendtype == MPI_LONG_LONG) n = sendcount*sizeof(uint64_t);
else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
memcpy(recvbuf,sendbuf,n);
return 0;
}
diff --git a/src/USER-ATC/Install.sh b/src/USER-ATC/Install.sh
index 91ce864c0..7fc1cd28d 100755
--- a/src/USER-ATC/Install.sh
+++ b/src/USER-ATC/Install.sh
@@ -1,31 +1,29 @@
# Install/unInstall package files in LAMMPS
# edit Makefile.package to include/exclude ATC info
if (test $1 = 1) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*atc //' ../Makefile.package
- sed -i -e 's/[^ \t]*atc_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*atc[^ \t]* //' ../Makefile.package
sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/atc |' ../Makefile.package
sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/atc |' ../Makefile.package
sed -i -e 's|^PKG_LIB =[ \t]*|&-latc |' ../Makefile.package
sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(user-atc_SYSINC) |' ../Makefile.package
sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(user-atc_SYSLIB) |' ../Makefile.package
sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(user-atc_SYSPATH) |' ../Makefile.package
fi
cp fix_atc.h ..
cp fix_atc.cpp ..
elif (test $1 = 0) then
if (test -e ../Makefile.package) then
- sed -i -e 's/[^ \t]*atc //' ../Makefile.package
- sed -i -e 's/[^ \t]*atc_[^ \t]*) //' ../Makefile.package
+ sed -i -e 's/[^ \t]*atc[^ \t]* //' ../Makefile.package
fi
rm -f ../fix_atc.h
rm -f ../fix_atc.cpp
fi
diff --git a/src/USER-AWPMD/Install.sh b/src/USER-AWPMD/Install.sh
new file mode 100644
index 000000000..a6e1d7a99
--- /dev/null
+++ b/src/USER-AWPMD/Install.sh
@@ -0,0 +1,37 @@
+# Install/unInstall package files in LAMMPS
+# edit Makefile.package to include/exclude ATC library
+
+if (test $1 = 1) then
+
+ if (test -e ../Makefile.package) then
+ sed -i -e 's/[^ \t]*awpmd[^ \t]* //g' ../Makefile.package
+ sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/awpmd/ivutils/include -I../../lib/awpmd/systems/interact |' ../Makefile.package
+ sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/awpmd |' ../Makefile.package
+ sed -i -e 's|^PKG_LIB =[ \t]*|&-lawpmd |' ../Makefile.package
+ sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(user-awpmd_SYSPATH) |' ../Makefile.package
+ sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(user-awpmd_SYSLIB) |' ../Makefile.package
+ fi
+
+ cp atom_vec_wavepacket.cpp ..
+ cp fix_nve_awpmd.cpp ..
+ cp pair_awpmd_cut.cpp ..
+
+ cp atom_vec_wavepacket.h ..
+ cp fix_nve_awpmd.h ..
+ cp pair_awpmd_cut.h ..
+
+elif (test $1 = 0) then
+
+ if (test -e ../Makefile.package) then
+ sed -i -e 's/[^ \t]*awpmd[^ \t]* //g' ../Makefile.package
+ fi
+
+ rm -f ../atom_vec_wavepacket.cpp
+ rm -f ../fix_nve_awpmd.cpp
+ rm -f ../pair_awpmd_cut.cpp
+
+ rm -f ../atom_vec_wavepacket.h
+ rm -f ../fix_nve_awpmd.h
+ rm -f ../pair_awpmd_cut.h
+
+fi
diff --git a/src/USER-AWPMD/README b/src/USER-AWPMD/README
new file mode 100644
index 000000000..66378cd45
--- /dev/null
+++ b/src/USER-AWPMD/README
@@ -0,0 +1,24 @@
+The files in this directory are a user-contributed package for LAMMPS.
+
+The person who created these files is Ilya Valuev
+(valuev@physik.hu-berlin.de). Contact him directly if you have
+questions.
+
+PACKAGE DESCRIPTION:
+
+Contains a LAMMPS implementation of the Antisymmetrized Wave Packet
+Molecular Dynamics (AWPMD) method.
+
+INSTALLATION:
+
+- compile the awpmd library in lib/awpmd
+- follow a normal LAMMPS package installation: make yes-user-awpmd
+
+OTHERS FILES INCLUDED:
+
+User examples are under examples/USER/awpmd
+
+ACKNOWLEDGMENTS:
+
+Thanks to Steve Plimpton and Aidan Thompson for their help in
+adaptation of the AWPMD code to LAMMPS.
diff --git a/src/USER-AWPMD/atom_vec_wavepacket.cpp b/src/USER-AWPMD/atom_vec_wavepacket.cpp
new file mode 100644
index 000000000..3b67d8c0b
--- /dev/null
+++ b/src/USER-AWPMD/atom_vec_wavepacket.cpp
@@ -0,0 +1,1008 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing author: Ilya Valuev (JIHT, Moscow, Russia)
+------------------------------------------------------------------------- */
+
+#include "math.h"
+#include "stdlib.h"
+#include "atom_vec_wavepacket.h"
+#include "atom.h"
+#include "domain.h"
+#include "modify.h"
+#include "force.h"
+#include "fix.h"
+#include "memory.h"
+#include "error.h"
+
+using namespace LAMMPS_NS;
+
+#define DELTA 10000
+
+
+/* ---------------------------------------------------------------------- */
+
+AtomVecWavepacket::AtomVecWavepacket(LAMMPS *lmp, int narg, char **arg) :
+ AtomVec(lmp, narg, arg)
+{
+ comm_x_only = comm_f_only = 0;
+
+ mass_type = 1;
+ molecular = 0;
+
+ size_forward = 4; // coords[3]+radius[1]
+ size_reverse = 10; // force[3]+erforce[1]+ervelforce[1]+vforce[3]+csforce[2]
+ size_border = 10; // coords[3]+tag[1]+type[1]+mask[1]+q[1]+spin[1]+eradius[1]+etag[1]
+ size_velocity = 6; // +velocities[3]+ ervel[1]+cs[2]
+ size_data_atom = 11; // for input file: 1-tag 2-type 3-q 4-spin 5-eradius 6-etag 7-cs_re 8-cs_im 9-x 10-y 11-z
+ size_data_vel = 5; // for input file: vx vy vz ervel <??>
+ xcol_data = 9; // starting column for x data
+
+ atom->wavepacket_flag = 1;
+ atom->electron_flag = 1; // compatible with eff
+ atom->q_flag = atom->spin_flag = atom->eradius_flag =
+ atom->ervel_flag = atom->erforce_flag = 1;
+
+ atom->cs_flag = atom->csforce_flag = atom->vforce_flag = atom->ervelforce_flag = atom->etag_flag = 1;
+
+
+}
+
+/* ----------------------------------------------------------------------
+ grow atom-electron arrays
+ n = 0 grows arrays by DELTA
+ n > 0 allocates arrays to size n
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::grow(int n)
+{
+ if (n == 0) nmax += DELTA;
+ else nmax = n;
+ atom->nmax = nmax;
+
+ tag = memory->grow(atom->tag,nmax,"atom:tag");
+ type = memory->grow(atom->type,nmax,"atom:type");
+ mask = memory->grow(atom->mask,nmax,"atom:mask");
+ image = memory->grow(atom->image,nmax,"atom:image");
+ x = memory->grow(atom->x,nmax,3,"atom:x");
+ v = memory->grow(atom->v,nmax,3,"atom:v");
+ f = memory->grow(atom->f,nmax,3,"atom:f");
+
+ q = memory->grow(atom->q,nmax,"atom:q");
+ spin = memory->grow(atom->spin,nmax,"atom:spin");
+ eradius = memory->grow(atom->eradius,nmax,"atom:eradius");
+ ervel = memory->grow(atom->ervel,nmax,"atom:ervel");
+ erforce = memory->grow(atom->erforce,nmax,"atom:erforce");
+
+ cs = memory->grow(atom->cs,2*nmax,"atom:cs");
+ csforce = memory->grow(atom->csforce,2*nmax,"atom:csforce");
+ vforce = memory->grow(atom->vforce,3*nmax,"atom:vforce");
+ ervelforce = memory->grow(atom->ervelforce,nmax,"atom:ervelforce");
+ etag = memory->grow(atom->etag,nmax,"atom:etag");
+
+ if (atom->nextra_grow)
+ for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
+ modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax);
+}
+
+/* ----------------------------------------------------------------------
+ reset local array ptrs
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::grow_reset()
+{
+ tag = atom->tag; type = atom->type;
+ mask = atom->mask; image = atom->image;
+ x = atom->x; v = atom->v; f = atom->f;
+ q = atom->q;
+ eradius = atom->eradius; ervel = atom->ervel; erforce = atom->erforce;
+
+ cs = atom->cs;
+ csforce = atom->csforce;
+ vforce = atom->vforce;
+ ervelforce = atom->ervelforce;
+ etag = atom->etag;
+
+}
+
+/* ----------------------------------------------------------------------
+ copy atom I info to atom J
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::copy(int i, int j, int delflag)
+{
+ tag[j] = tag[i];
+ type[j] = type[i];
+ mask[j] = mask[i];
+ image[j] = image[i];
+ x[j][0] = x[i][0];
+ x[j][1] = x[i][1];
+ x[j][2] = x[i][2];
+ v[j][0] = v[i][0];
+ v[j][1] = v[i][1];
+ v[j][2] = v[i][2];
+
+ q[j] = q[i];
+ spin[j] = spin[i];
+ eradius[j] = eradius[i];
+ ervel[j] = ervel[i];
+
+ cs[2*j] = cs[2*i];
+ cs[2*j+1] = cs[2*i+1];
+ etag[j] = etag[i];
+
+
+ if (atom->nextra_grow)
+ for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
+ modify->fix[atom->extra_grow[iextra]]->copy_arrays(i,j);
+}
+
+/* ---------------------------------------------------------------------- */
+// this will be used as partial pack for unsplit Hartree packets (v, ervel not regarded as separate variables)
+
+int AtomVecWavepacket::pack_comm(int n, int *list, double *buf,
+ int pbc_flag, int *pbc)
+{
+ int i,j,m;
+ double dx,dy,dz;
+
+ m = 0;
+ if (pbc_flag == 0) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0];
+ buf[m++] = x[j][1];
+ buf[m++] = x[j][2];
+ buf[m++] = eradius[j];
+ }
+ } else {
+ if (domain->triclinic == 0) {
+ dx = pbc[0]*domain->xprd;
+ dy = pbc[1]*domain->yprd;
+ dz = pbc[2]*domain->zprd;
+ } else {
+ dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz;
+ dy = pbc[1]*domain->yprd + pbc[3]*domain->yz;
+ dz = pbc[2]*domain->zprd;
+ }
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = eradius[j];
+ }
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+// this is a complete pack of all 'position' variables of AWPMD
+
+int AtomVecWavepacket::pack_comm_vel(int n, int *list, double *buf,
+ int pbc_flag, int *pbc)
+{
+ int i,j,m;
+ double dx,dy,dz,dvx,dvy,dvz;
+
+ m = 0;
+ if (pbc_flag == 0) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0];
+ buf[m++] = x[j][1];
+ buf[m++] = x[j][2];
+ buf[m++] = eradius[j];
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ } else {
+ if (domain->triclinic == 0) {
+ dx = pbc[0]*domain->xprd;
+ dy = pbc[1]*domain->yprd;
+ dz = pbc[2]*domain->zprd;
+ } else {
+ dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz;
+ dy = pbc[1]*domain->yprd + pbc[3]*domain->yz;
+ dz = pbc[2]*domain->zprd;
+ }
+ if (!deform_vremap) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = eradius[j];
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ } else {
+ dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4];
+ dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3];
+ dvz = pbc[2]*h_rate[2];
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = eradius[j];
+ if (mask[i] & deform_groupbit) {
+ buf[m++] = v[j][0] + dvx;
+ buf[m++] = v[j][1] + dvy;
+ buf[m++] = v[j][2] + dvz;
+ } else {
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+ }
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ }
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_comm_hybrid(int n, int *list, double *buf)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = eradius[j];
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void AtomVecWavepacket::unpack_comm(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ x[i][0] = buf[m++];
+ x[i][1] = buf[m++];
+ x[i][2] = buf[m++];
+ eradius[i] = buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void AtomVecWavepacket::unpack_comm_vel(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ x[i][0] = buf[m++];
+ x[i][1] = buf[m++];
+ x[i][2] = buf[m++];
+ eradius[i] = buf[m++];
+ v[i][0] = buf[m++];
+ v[i][1] = buf[m++];
+ v[i][2] = buf[m++];
+
+ ervel[i] = buf[m++];
+ cs[2*i] = buf[m++];
+ cs[2*i+1] = buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::unpack_comm_hybrid(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++){
+ eradius[i] = buf[m++];
+ ervel[i] = buf[m++];
+ cs[2*i] = buf[m++];
+ cs[2*i+1] = buf[m++];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_reverse(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) { //10
+ buf[m++] = f[i][0];
+ buf[m++] = f[i][1];
+ buf[m++] = f[i][2];
+ buf[m++] = erforce[i];
+
+ buf[m++] = ervelforce[i];
+ buf[m++] = vforce[3*i];
+ buf[m++] = vforce[3*i+1];
+ buf[m++] = vforce[3*i+2];
+ buf[m++] = csforce[2*i];
+ buf[m++] = csforce[2*i+1];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_reverse_hybrid(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++){
+ buf[m++] = erforce[i];
+
+ buf[m++] = ervelforce[i];
+ buf[m++] = vforce[3*i];
+ buf[m++] = vforce[3*i+1];
+ buf[m++] = vforce[3*i+2];
+ buf[m++] = csforce[2*i];
+ buf[m++] = csforce[2*i+1];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void AtomVecWavepacket::unpack_reverse(int n, int *list, double *buf)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ f[j][0] += buf[m++];
+ f[j][1] += buf[m++];
+ f[j][2] += buf[m++];
+ erforce[j] += buf[m++];
+
+ ervelforce[j] += buf[m++];
+ vforce[3*j] += buf[m++];
+ vforce[3*j+1] += buf[m++];
+ vforce[3*j+2] += buf[m++];
+ csforce[2*j] += buf[m++];
+ csforce[2*j+1] += buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::unpack_reverse_hybrid(int n, int *list, double *buf)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ erforce[j] += buf[m++];
+
+ ervelforce[j] += buf[m++];
+ vforce[3*j] += buf[m++];
+ vforce[3*j+1] += buf[m++];
+ vforce[3*j+2] += buf[m++];
+ csforce[2*j] += buf[m++];
+ csforce[2*j+1] += buf[m++];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+// will be used for Hartree unsplit version (the etag is added however)
+int AtomVecWavepacket::pack_border(int n, int *list, double *buf,
+ int pbc_flag, int *pbc)
+{
+ int i,j,m;
+ double dx,dy,dz;
+
+ m = 0;
+ if (pbc_flag == 0) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0];
+ buf[m++] = x[j][1];
+ buf[m++] = x[j][2];
+ buf[m++] = tag[j];
+ buf[m++] = type[j];
+ buf[m++] = mask[j];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+ buf[m++] = etag[j];
+ }
+ } else {
+ if (domain->triclinic == 0) {
+ dx = pbc[0]*domain->xprd;
+ dy = pbc[1]*domain->yprd;
+ dz = pbc[2]*domain->zprd;
+ } else {
+ dx = pbc[0];
+ dy = pbc[1];
+ dz = pbc[2];
+ }
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = tag[j];
+ buf[m++] = type[j];
+ buf[m++] = mask[j];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+ buf[m++] = etag[j];
+ }
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_border_vel(int n, int *list, double *buf,
+ int pbc_flag, int *pbc)
+{
+ int i,j,m;
+ double dx,dy,dz,dvx,dvy,dvz;
+
+ m = 0;
+ if (pbc_flag == 0) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0];
+ buf[m++] = x[j][1];
+ buf[m++] = x[j][2];
+ buf[m++] = tag[j];
+ buf[m++] = type[j];
+ buf[m++] = mask[j];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+ buf[m++] = etag[j];
+
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+
+
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ } else {
+ if (domain->triclinic == 0) {
+ dx = pbc[0]*domain->xprd;
+ dy = pbc[1]*domain->yprd;
+ dz = pbc[2]*domain->zprd;
+ } else {
+ dx = pbc[0];
+ dy = pbc[1];
+ dz = pbc[2];
+ }
+ if (domain->triclinic == 0) {
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = tag[j];
+ buf[m++] = type[j];
+ buf[m++] = mask[j];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+ buf[m++] = etag[j];
+
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+
+
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ } else {
+ dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4];
+ dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3];
+ dvz = pbc[2]*h_rate[2];
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = x[j][0] + dx;
+ buf[m++] = x[j][1] + dy;
+ buf[m++] = x[j][2] + dz;
+ buf[m++] = tag[j];
+ buf[m++] = type[j];
+ buf[m++] = mask[j];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+ buf[m++] = etag[j];
+
+ if (mask[i] & deform_groupbit) {
+ buf[m++] = v[j][0] + dvx;
+ buf[m++] = v[j][1] + dvy;
+ buf[m++] = v[j][2] + dvz;
+ } else {
+ buf[m++] = v[j][0];
+ buf[m++] = v[j][1];
+ buf[m++] = v[j][2];
+ }
+
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ }
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_border_hybrid(int n, int *list, double *buf)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = q[j];
+ buf[m++] = spin[j];
+ buf[m++] = eradius[j];
+
+ buf[m++] = etag[j];
+ buf[m++] = ervel[j];
+ buf[m++] = cs[2*j];
+ buf[m++] = cs[2*j+1];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void AtomVecWavepacket::unpack_border(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ if (i == nmax) grow(0);
+ x[i][0] = buf[m++];
+ x[i][1] = buf[m++];
+ x[i][2] = buf[m++];
+ tag[i] = static_cast<int> (buf[m++]);
+ type[i] = static_cast<int> (buf[m++]);
+ mask[i] = static_cast<int> (buf[m++]);
+ q[i] = buf[m++];
+ spin[i] = static_cast<int> (buf[m++]);
+ eradius[i] = buf[m++];
+ etag[i] = (int)buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void AtomVecWavepacket::unpack_border_vel(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ if (i == nmax) grow(0);
+ x[i][0] = buf[m++];
+ x[i][1] = buf[m++];
+ x[i][2] = buf[m++];
+ tag[i] = static_cast<int> (buf[m++]);
+ type[i] = static_cast<int> (buf[m++]);
+ mask[i] = static_cast<int> (buf[m++]);
+ q[i] = buf[m++];
+ spin[i] = static_cast<int> (buf[m++]);
+ eradius[i] = buf[m++];
+ etag[i] = (int)buf[m++];
+
+ v[i][0] = buf[m++];
+ v[i][1] = buf[m++];
+ v[i][2] = buf[m++];
+
+
+ ervel[i] = buf[m++];
+ cs[2*i] = buf[m++];
+ cs[2*i+1] = buf[m++];
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::unpack_border_hybrid(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++) {
+ q[i] = buf[m++];
+ spin[i] = static_cast<int> (buf[m++]);
+ eradius[i] = buf[m++];
+
+ etag[i] = (int)buf[m++];
+ ervel[i] = buf[m++];
+ cs[2*i] = buf[m++];
+ cs[2*i+1] = buf[m++];
+ }
+ return m;
+}
+
+/* ----------------------------------------------------------------------
+ pack data for atom I for sending to another proc
+ xyz must be 1st 3 values, so comm::exchange() can test on them
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_exchange(int i, double *buf)
+{
+ int m = 1;
+ buf[m++] = x[i][0];
+ buf[m++] = x[i][1];
+ buf[m++] = x[i][2];
+ buf[m++] = v[i][0];
+ buf[m++] = v[i][1];
+ buf[m++] = v[i][2];
+ buf[m++] = tag[i];
+ buf[m++] = type[i];
+ buf[m++] = mask[i];
+ buf[m++] = image[i];
+ buf[m++] = q[i];
+ buf[m++] = spin[i];
+ buf[m++] = eradius[i];
+ buf[m++] = ervel[i];
+
+ buf[m++] = etag[i];
+ buf[m++] = cs[2*i];
+ buf[m++] = cs[2*i+1];
+
+ if (atom->nextra_grow)
+ for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
+ m += modify->fix[atom->extra_grow[iextra]]->pack_exchange(i,&buf[m]);
+
+ buf[0] = m;
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int AtomVecWavepacket::unpack_exchange(double *buf)
+{
+ int nlocal = atom->nlocal;
+ if (nlocal == nmax) grow(0);
+
+ int m = 1;
+ x[nlocal][0] = buf[m++];
+ x[nlocal][1] = buf[m++];
+ x[nlocal][2] = buf[m++];
+ v[nlocal][0] = buf[m++];
+ v[nlocal][1] = buf[m++];
+ v[nlocal][2] = buf[m++];
+ tag[nlocal] = static_cast<int> (buf[m++]);
+ type[nlocal] = static_cast<int> (buf[m++]);
+ mask[nlocal] = static_cast<int> (buf[m++]);
+ image[nlocal] = static_cast<int> (buf[m++]);
+ q[nlocal] = buf[m++];
+ spin[nlocal] = static_cast<int> (buf[m++]);
+ eradius[nlocal] = buf[m++];
+ ervel[nlocal] = buf[m++];
+
+ etag[nlocal] = buf[m++];
+ cs[2*nlocal] = buf[m++];
+ cs[2*nlocal+1] = buf[m++];
+
+ if (atom->nextra_grow)
+ for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
+ m += modify->fix[atom->extra_grow[iextra]]->
+ unpack_exchange(nlocal,&buf[m]);
+
+ atom->nlocal++;
+ return m;
+}
+
+/* ----------------------------------------------------------------------
+ size of restart data for all atoms owned by this proc
+ include extra data stored by fixes
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::size_restart()
+{
+ int i;
+
+ int nlocal = atom->nlocal;
+ int n = 18 * nlocal; // Associated with pack_restart
+
+ if (atom->nextra_restart)
+ for (int iextra = 0; iextra < atom->nextra_restart; iextra++)
+ for (i = 0; i < nlocal; i++)
+ n += modify->fix[atom->extra_restart[iextra]]->size_restart(i);
+
+ return n;
+}
+
+/* ----------------------------------------------------------------------
+ pack atom I's data for restart file including extra quantities
+ xyz must be 1st 3 values, so that read_restart can test on them
+ molecular types may be negative, but write as positive
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::pack_restart(int i, double *buf)
+{
+ int m = 1;
+ buf[m++] = x[i][0];
+ buf[m++] = x[i][1];
+ buf[m++] = x[i][2];
+ buf[m++] = tag[i];
+ buf[m++] = type[i];
+ buf[m++] = mask[i];
+ buf[m++] = image[i];
+ buf[m++] = v[i][0];
+ buf[m++] = v[i][1];
+ buf[m++] = v[i][2];
+
+ buf[m++] = q[i];
+ buf[m++] = spin[i];
+ buf[m++] = eradius[i];
+ buf[m++] = ervel[i];
+
+ buf[m++] = etag[i];
+ buf[m++] = cs[2*i];
+ buf[m++] = cs[2*i+1];
+
+ if (atom->nextra_restart)
+ for (int iextra = 0; iextra < atom->nextra_restart; iextra++)
+ m += modify->fix[atom->extra_restart[iextra]]->pack_restart(i,&buf[m]);
+
+ buf[0] = m;
+ return m;
+}
+
+/* ----------------------------------------------------------------------
+ unpack data for one atom from restart file including extra quantities
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::unpack_restart(double *buf)
+{
+ int nlocal = atom->nlocal;
+ if (nlocal == nmax) {
+ grow(0);
+ if (atom->nextra_store)
+ memory->grow(atom->extra,nmax,atom->nextra_store,"atom:extra");
+ }
+
+ int m = 1;
+ x[nlocal][0] = buf[m++];
+ x[nlocal][1] = buf[m++];
+ x[nlocal][2] = buf[m++];
+ tag[nlocal] = static_cast<int> (buf[m++]);
+ type[nlocal] = static_cast<int> (buf[m++]);
+ mask[nlocal] = static_cast<int> (buf[m++]);
+ image[nlocal] = static_cast<int> (buf[m++]);
+ v[nlocal][0] = buf[m++];
+ v[nlocal][1] = buf[m++];
+ v[nlocal][2] = buf[m++];
+
+ q[nlocal] = buf[m++];
+ spin[nlocal] = static_cast<int> (buf[m++]);
+ eradius[nlocal] = buf[m++];
+ ervel[nlocal] = buf[m++];
+
+ etag[nlocal] = buf[m++];
+ cs[2*nlocal] = buf[m++];
+ cs[2*nlocal+1] = buf[m++];
+
+ double **extra = atom->extra;
+ if (atom->nextra_store) {
+ int size = static_cast<int> (buf[0]) - m;
+ for (int i = 0; i < size; i++) extra[nlocal][i] = buf[m++];
+ }
+
+ atom->nlocal++;
+ return m;
+}
+
+/* ----------------------------------------------------------------------
+ create one atom of itype at coord
+ set other values to defaults
+ AWPMD: creates a proton
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::create_atom(int itype, double *coord)
+{
+ int nlocal = atom->nlocal;
+ if (nlocal == nmax) grow(0);
+
+ tag[nlocal] = 0;
+ type[nlocal] = itype;
+ x[nlocal][0] = coord[0];
+ x[nlocal][1] = coord[1];
+ x[nlocal][2] = coord[2];
+ mask[nlocal] = 1;
+ image[nlocal] = (512 << 20) | (512 << 10) | 512;
+ v[nlocal][0] = 0.0;
+ v[nlocal][1] = 0.0;
+ v[nlocal][2] = 0.0;
+
+ q[nlocal] = 1.;
+ spin[nlocal] = 0.;
+ eradius[nlocal] = 0.0;
+ ervel[nlocal] = 0.0;
+
+ etag[nlocal]= 0.;
+ cs[2*nlocal] = 0.;
+ cs[2*nlocal+1] = 0.;
+
+ atom->nlocal++;
+}
+
+/* ----------------------------------------------------------------------
+ unpack one line from Atoms section of data file
+ initialize other atom quantities
+ AWPMD: 0-tag 1-type 2-q 3-spin 4-eradius 5-etag 6-cs_re 7-cs_im
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::data_atom(double *coord, int imagetmp, char **values)
+{
+ int nlocal = atom->nlocal;
+
+ if (nlocal == nmax) grow(0);
+
+ tag[nlocal] = atoi(values[0]);
+ if (tag[nlocal] <= 0)
+ error->one("Invalid atom ID in Atoms section of data file (ID tag must be >0)");
+
+ type[nlocal] = atoi(values[1]);
+ if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes)
+ error->one("Invalid atom type in Atoms section of data file");
+
+ q[nlocal] = atof(values[2]);
+ spin[nlocal] = atoi(values[3]);
+ eradius[nlocal] = atof(values[4]);
+ if (eradius[nlocal] < 0.0)
+ error->one("Invalid eradius in Atoms section of data file");
+
+
+ etag[nlocal] = atoi(values[5]);
+ cs[2*nlocal] = atoi(values[6]);
+ cs[2*nlocal+1] = atof(values[7]);
+
+
+ x[nlocal][0] = coord[0];
+ x[nlocal][1] = coord[1];
+ x[nlocal][2] = coord[2];
+
+ image[nlocal] = imagetmp;
+
+ mask[nlocal] = 1;
+ v[nlocal][0] = 0.0;
+ v[nlocal][1] = 0.0;
+ v[nlocal][2] = 0.0;
+ ervel[nlocal] = 0.0;
+
+ atom->nlocal++;
+}
+
+/* ----------------------------------------------------------------------
+ unpack hybrid quantities from one line in Atoms section of data file
+ initialize other atom quantities for this sub-style
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::data_atom_hybrid(int nlocal, char **values)
+{
+ q[nlocal] = atof(values[0]);
+ spin[nlocal] = atoi(values[1]);
+ eradius[nlocal] = atof(values[2]);
+ if (eradius[nlocal] < 0.0)
+ error->one("Invalid eradius in Atoms section of data file");
+
+ etag[nlocal] = atoi(values[3]);
+ cs[2*nlocal] = atoi(values[4]);
+ cs[2*nlocal+1] = atof(values[5]);
+
+
+ v[nlocal][0] = 0.0;
+ v[nlocal][1] = 0.0;
+ v[nlocal][2] = 0.0;
+ ervel[nlocal] = 0.0;
+
+ return 3;
+}
+
+/* ----------------------------------------------------------------------
+ unpack one line from Velocities section of data file
+------------------------------------------------------------------------- */
+
+void AtomVecWavepacket::data_vel(int m, char **values)
+{
+ v[m][0] = atof(values[0]);
+ v[m][1] = atof(values[1]);
+ v[m][2] = atof(values[2]);
+ ervel[m] = atof(values[3]);
+}
+
+/* ----------------------------------------------------------------------
+ unpack hybrid quantities from one line in Velocities section of data file
+------------------------------------------------------------------------- */
+
+int AtomVecWavepacket::data_vel_hybrid(int m, char **values)
+{
+ ervel[m] = atof(values[0]);
+ return 1;
+}
+
+/* ----------------------------------------------------------------------
+ return # of bytes of allocated memory
+------------------------------------------------------------------------- */
+
+bigint AtomVecWavepacket::memory_usage()
+{
+ bigint bytes = 0;
+
+ if (atom->memcheck("tag")) bytes += memory->usage(tag,nmax);
+ if (atom->memcheck("type")) bytes += memory->usage(type,nmax);
+ if (atom->memcheck("mask")) bytes += memory->usage(mask,nmax);
+ if (atom->memcheck("image")) bytes += memory->usage(image,nmax);
+ if (atom->memcheck("x")) bytes += memory->usage(x,nmax,3);
+ if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3);
+ if (atom->memcheck("f")) bytes += memory->usage(f,nmax,3);
+
+ if (atom->memcheck("q")) bytes += memory->usage(q,nmax);
+ if (atom->memcheck("spin")) bytes += memory->usage(spin,nmax);
+ if (atom->memcheck("eradius")) bytes += memory->usage(eradius,nmax);
+ if (atom->memcheck("ervel")) bytes += memory->usage(ervel,nmax);
+ if (atom->memcheck("erforce")) bytes += memory->usage(erforce,nmax);
+
+ if (atom->memcheck("ervelforce")) bytes += memory->usage(ervelforce,nmax);
+ if (atom->memcheck("cs")) bytes += memory->usage(cs,2*nmax);
+ if (atom->memcheck("csforce")) bytes += memory->usage(csforce,2*nmax);
+ if (atom->memcheck("vforce")) bytes += memory->usage(vforce,3*nmax);
+ if (atom->memcheck("etag")) bytes += memory->usage(etag,nmax);
+
+ return bytes;
+}
diff --git a/src/USER-AWPMD/atom_vec_wavepacket.h b/src/USER-AWPMD/atom_vec_wavepacket.h
new file mode 100644
index 000000000..4515dcf0f
--- /dev/null
+++ b/src/USER-AWPMD/atom_vec_wavepacket.h
@@ -0,0 +1,98 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing author: Ilya Valuev (JIHT RAS)
+------------------------------------------------------------------------- */
+
+
+#ifdef ATOM_CLASS
+
+AtomStyle(wavepacket,AtomVecWavepacket)
+
+#else
+
+#ifndef LMP_ATOM_VEC_WAVEPACKET_H
+#define LMP_ATOM_VEC_WAVEPACKET_H
+
+#include "atom_vec.h"
+
+namespace LAMMPS_NS {
+
+class AtomVecWavepacket : public AtomVec {
+public:
+ AtomVecWavepacket(class LAMMPS *, int, char **);
+ ~AtomVecWavepacket() {}
+ void grow(int);
+ void grow_reset();
+ void copy(int, int, int);
+ int pack_comm(int, int *, double *, int, int *);
+ int pack_comm_vel(int, int *, double *, int, int *);
+ int pack_comm_hybrid(int, int *, double *);
+ void unpack_comm(int, int, double *);
+ void unpack_comm_vel(int, int, double *);
+ int unpack_comm_hybrid(int, int, double *);
+ int pack_reverse(int, int, double *);
+ int pack_reverse_hybrid(int, int, double *);
+ void unpack_reverse(int, int *, double *);
+ int unpack_reverse_hybrid(int, int *, double *);
+ int pack_border(int, int *, double *, int, int *);
+ int pack_border_vel(int, int *, double *, int, int *);
+ int pack_border_hybrid(int, int *, double *);
+ void unpack_border(int, int, double *);
+ void unpack_border_vel(int, int, double *);
+ int unpack_border_hybrid(int, int, double *);
+ int pack_exchange(int, double *);
+ int unpack_exchange(double *);
+ int size_restart();
+ int pack_restart(int, double *);
+ int unpack_restart(double *);
+ void create_atom(int, double *);
+ void data_atom(double *, int, char **);
+ int data_atom_hybrid(int, char **);
+ void data_vel(int, char **);
+ int data_vel_hybrid(int, char **);
+ bigint memory_usage();
+
+private:
+ int *tag,*type,*mask,*image;
+ double **x,**v,**f;
+
+ ///\en spin: -1 or 1 for electron, 0 for ion (compatible with eff)
+ int *spin;
+ ///\en charge: must be specified in the corresponding units (-1 for electron in real units, eff compatible)
+ double *q;
+ ///\en width of the wavepacket (compatible with eff)
+ double *eradius;
+ ///\en width velocity for the wavepacket (compatible with eff)
+ double *ervel;
+ ///\en (generalized) force on width (compatible with eff)
+ double *erforce;
+
+ // AWPMD- specific:
+ ///\en electron tag: must be the same for the WPs belonging to the same electron
+ int *etag;
+ ///\en wavepacket split coeffcients: cre, cim, size is 2*N
+ double *cs;
+ ///\en force on wavepacket split coeffcients: re, im, size is 2*N
+ double *csforce;
+ ///\en (generalized) force on velocity, size is 3*N
+ double *vforce;
+ ///\en (generalized) force on radius velocity, size is N
+ double *ervelforce;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/USER-EFF/fix_nve_eff.cpp b/src/USER-AWPMD/fix_nve_awpmd.cpp
similarity index 61%
copy from src/USER-EFF/fix_nve_eff.cpp
copy to src/USER-AWPMD/fix_nve_awpmd.cpp
index 134317dde..418b942ec 100644
--- a/src/USER-EFF/fix_nve_eff.cpp
+++ b/src/USER-AWPMD/fix_nve_awpmd.cpp
@@ -1,171 +1,152 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
- Contributing author: Andres Jaramillo-Botero (Caltech)
+ Contributing author: Ilya Valuev (JIHT, Moscow, Russia)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "string.h"
-#include "fix_nve_eff.h"
+#include "fix_nve_awpmd.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "math.h"
+#include "TCP/wpmd_split.h"
+
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
-FixNVEEff::FixNVEEff(LAMMPS *lmp, int narg, char **arg) :
+FixNVEAwpmd::FixNVEAwpmd(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
- if (!atom->electron_flag)
- error->all("Fix nve/eff requires atom style electron");
+ if (!atom->wavepacket_flag)
+ error->all("Fix nve/awpmd requires atom style wavepacket");
+ //if (!atom->mass_type != 1)
+ // error->all("Fix nve/awpmd requires per type mass");
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
-int FixNVEEff::setmask()
+int FixNVEAwpmd::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
-void FixNVEEff::init()
+void FixNVEAwpmd::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
+
+ awpmd_pair=(PairAWPMDCut *)force->pair;
+ awpmd_pair->wpmd->norm_needed=1;
}
/* ----------------------------------------------------------------------
- allow for both per-type and per-atom mass
+ allow for only per-type mass
------------------------------------------------------------------------- */
-void FixNVEEff::initial_integrate(int vflag)
+void FixNVEAwpmd::initial_integrate(int vflag)
{
- double dtfm;
+
// update v,vr and x,radius of atoms in group
double **x = atom->x;
double *eradius = atom->eradius;
double **v = atom->v;
double *ervel = atom->ervel;
double **f = atom->f;
double *erforce = atom->erforce;
+ double *vforce=atom->vforce;
+ double *ervelforce=atom->ervelforce;
+ double *cs=atom->cs;
+ double *csforce=atom->csforce;
+
+
double *mass = atom->mass;
int *spin = atom->spin;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
// x + dt * [v + 0.5 * dt * (f / m)];
- if (mass) {
- for (int i = 0; i < nlocal; i++) {
- if (mask[i] & groupbit) {
- dtfm = dtf / mass[type[i]];
- v[i][0] += dtfm * f[i][0];
- v[i][1] += dtfm * f[i][1];
- v[i][2] += dtfm * f[i][2];
- x[i][0] += dtv * v[i][0];
- x[i][1] += dtv * v[i][1];
- x[i][2] += dtv * v[i][2];
- if (fabs(spin[i])==1) {
- ervel[i] += dtfm * erforce[i] / 0.75;
- eradius[i] += dtv * ervel[i];
- }
+ // simple Euler update
+ for (int i = 0; i < nlocal; i++) {
+ if (mask[i] & groupbit) {
+ double dtfm = dtf / mass[type[i]];
+ double dtfmr=dtfm;
+ for(int j=0;j<3;j++){
+ x[i][j] += dtv*vforce[3*i+j];
+ v[i][j] += dtfm*f[i][j];
}
+ eradius[i]+= dtv*ervelforce[i];
+ ervel[i] += dtfmr*erforce[i];
}
}
+
}
/* ---------------------------------------------------------------------- */
-void FixNVEEff::final_integrate()
-{
- double dtfm;
-
- double **v = atom->v;
- double *ervel = atom->ervel;
- double *erforce = atom->erforce;
- double **f = atom->f;
- double *mass = atom->mass;
- int *spin = atom->spin;
- int *type = atom->type;
- int *mask = atom->mask;
- int nlocal = atom->nlocal;
- if (igroup == atom->firstgroup) nlocal = atom->nfirst;
-
- // dyn_v[i] += m * dt * dyn_f[i];
-
- if (mass) {
- for (int i = 0; i < nlocal; i++) {
- if (mask[i] & groupbit) {
- dtfm = dtf / mass[type[i]];
- v[i][0] += dtfm * f[i][0];
- v[i][1] += dtfm * f[i][1];
- v[i][2] += dtfm * f[i][2];
- if (fabs(spin[i])==1)
- ervel[i] += dtfm * erforce[i] / 0.75;
- }
- }
- }
-}
+void FixNVEAwpmd::final_integrate(){}
/* ---------------------------------------------------------------------- */
-void FixNVEEff::initial_integrate_respa(int vflag, int ilevel, int iloop)
+void FixNVEAwpmd::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
// innermost level - NVE update of v and x
// all other levels - NVE update of v
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
-void FixNVEEff::final_integrate_respa(int ilevel, int iloop)
+void FixNVEAwpmd::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
-void FixNVEEff::reset_dt()
+void FixNVEAwpmd::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
}
diff --git a/src/USER-AWPMD/fix_nve_awpmd.h b/src/USER-AWPMD/fix_nve_awpmd.h
new file mode 100644
index 000000000..9bc6d3ebb
--- /dev/null
+++ b/src/USER-AWPMD/fix_nve_awpmd.h
@@ -0,0 +1,54 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing author: Ilya Valuev (JIHT RAS)
+------------------------------------------------------------------------- */
+
+#ifdef FIX_CLASS
+
+FixStyle(nve/awpmd,FixNVEAwpmd)
+
+#else
+
+#ifndef LMP_FIX_NVE_awpmd_H
+#define LMP_FIX_NVE_awpmd_H
+
+#include "fix.h"
+#include "pair_awpmd_cut.h"
+
+namespace LAMMPS_NS {
+
+class FixNVEAwpmd : public Fix {
+ public:
+ FixNVEAwpmd(class LAMMPS *, int, char **);
+ int setmask();
+ virtual void init();
+ virtual void initial_integrate(int);
+ virtual void final_integrate();
+ void initial_integrate_respa(int, int, int);
+ void final_integrate_respa(int, int);
+ void reset_dt();
+
+ protected:
+ double dtv,dtf;
+ double *step_respa;
+ int mass_require;
+
+ PairAWPMDCut *awpmd_pair;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/USER-AWPMD/pair_awpmd_cut.cpp b/src/USER-AWPMD/pair_awpmd_cut.cpp
new file mode 100644
index 000000000..ae276334b
--- /dev/null
+++ b/src/USER-AWPMD/pair_awpmd_cut.cpp
@@ -0,0 +1,756 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing author: Ilya Valuev (JIHT, Moscow, Russia)
+------------------------------------------------------------------------- */
+
+#include "math.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "pair_awpmd_cut.h"
+#include "atom.h"
+#include "update.h"
+#include "min.h"
+#include "domain.h"
+#include "comm.h"
+#include "force.h"
+#include "neighbor.h"
+#include "neigh_list.h"
+#include "neigh_request.h"
+#include "memory.h"
+#include "error.h"
+
+#include "TCP/wpmd_split.h"
+
+using namespace LAMMPS_NS;
+
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+
+/* ---------------------------------------------------------------------- */
+
+PairAWPMDCut::PairAWPMDCut(LAMMPS *lmp) : Pair(lmp)
+{
+ single_enable = 0;
+
+ nmax = 0;
+ min_var = NULL;
+ min_varforce = NULL;
+ nextra = 4;
+ pvector = new double[nextra];
+
+ ermscale=1.;
+ width_pbc=0.;
+ wpmd= new AWPMD_split();
+
+ half_box_length=0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+PairAWPMDCut::~PairAWPMDCut()
+{
+ delete [] pvector;
+ memory->destroy(min_var);
+ memory->destroy(min_varforce);
+
+ if (allocated) {
+ memory->destroy(setflag);
+ memory->destroy(cutsq);
+ memory->destroy(cut);
+ }
+
+ delete wpmd;
+}
+
+
+struct cmp_x{
+ double tol;
+ double **xx;
+ cmp_x(double **xx_=NULL, double tol_=1e-12):xx(xx_),tol(tol_){}
+ bool operator()(const pair<int,int> &left, const pair<int,int> &right) const {
+ if(left.first==right.first){
+ double d=xx[left.second][0]-xx[right.second][0];
+ if(d<-tol)
+ return true;
+ else if(d>tol)
+ return false;
+ d=xx[left.second][1]-xx[right.second][1];
+ if(d<-tol)
+ return true;
+ else if(d>tol)
+ return false;
+ d=xx[left.second][2]-xx[right.second][2];
+ if(d<-tol)
+ return true;
+ else
+ return false;
+ }
+ else
+ return left.first<right.first;
+ }
+};
+
+/* ---------------------------------------------------------------------- */
+
+void PairAWPMDCut::compute(int eflag, int vflag)
+{
+
+ // pvector = [KE, Pauli, ecoul, radial_restraint]
+ for (int i=0; i<4; i++) pvector[i] = 0.0;
+
+ if (eflag || vflag)
+ ev_setup(eflag,vflag);
+ else
+ evflag = vflag_fdotr = 0; //??
+
+ double **x = atom->x;
+ double **f = atom->f;
+ double *q = atom->q;
+ double *erforce = atom->erforce;
+ double *eradius = atom->eradius;
+ int *spin = atom->spin;
+ int *type = atom->type;
+ int *etag = atom->etag;
+ double **v = atom->v;
+
+ int nlocal = atom->nlocal;
+ int nghost = atom->nghost;
+ int ntot=nlocal+nghost;
+
+ int newton_pair = force->newton_pair;
+ double qqrd2e = force->qqrd2e;
+
+ int inum = list->inum;
+ int *ilist = list->ilist;
+ int *numneigh = list->numneigh;
+ int **firstneigh = list->firstneigh;
+
+
+
+
+ // width pbc
+ if(width_pbc<0)
+ wpmd->Lextra=2*half_box_length;
+ else
+ wpmd->Lextra=width_pbc;
+
+ wpmd->newton_pair=newton_pair;
+
+
+
+# if 1
+ // mapping of the LAMMPS numbers to the AWPMC numbers
+ vector<int> gmap(ntot,-1);
+
+ for (int ii = 0; ii < inum; ii++) {
+ int i = ilist[ii];
+ // local particles are all there
+ gmap[i]=0;
+ Vector_3 ri=Vector_3(x[i][0],x[i][1],x[i][2]);
+ int itype = type[i];
+ int *jlist = firstneigh[i];
+ int jnum = numneigh[i];
+ for (int jj = 0; jj < jnum; jj++) {
+ int j = jlist[jj];
+ j &= NEIGHMASK;
+ if(j>=nlocal){ // this is a ghost
+ Vector_3 rj=Vector_3(x[j][0],x[j][1],x[j][2]);
+ int jtype = type[j];
+ double rsq=(ri-rj).norm2();
+ if (rsq < cutsq[itype][jtype])
+ gmap[j]=0; //bingo, this ghost is really needed
+
+ }
+ }
+ }
+
+# else // old mapping
+ // mapping of the LAMMPS numbers to the AWPMC numbers
+ vector<int> gmap(ntot,-1);
+ // map for filtering the clones out: [tag,image] -> id
+ typedef map< pair<int,int>, int, cmp_x > map_t;
+ cmp_x cmp(x);
+ map_t idmap(cmp);
+ for (int ii = 0; ii < inum; ii++) {
+ int i = ilist[ii];
+ // local particles are all there
+ idmap[make_pair(atom->tag[i],i)]=i;
+ bool i_local= i<nlocal ? true : false;
+ if(i_local)
+ gmap[i]=0;
+ else if(gmap[i]==0) // this is a ghost which already has been tested
+ continue;
+ Vector_3 ri=Vector_3(x[i][0],x[i][1],x[i][2]);
+ int itype = type[i];
+ int *jlist = firstneigh[i];
+ int jnum = numneigh[i];
+ for (int jj = 0; jj < jnum; jj++) {
+ int j = jlist[jj];
+ j &= NEIGHMASK;
+
+ pair<map_t::iterator,bool> res=idmap.insert(make_pair(make_pair(atom->tag[j],j),j));
+ bool have_it=!res.second;
+ if(have_it){ // the clone of this particle is already listed
+ if(res.first->second!=j) // check that was not the very same particle
+ gmap[j]=-1; // filter out
+ continue;
+ }
+
+ bool j_local= j<nlocal ? true : false;
+ if((i_local && !j_local) || (j_local && !i_local)){ // some of them is a ghost
+ Vector_3 rj=Vector_3(x[j][0],x[j][1],x[j][2]);
+ int jtype = type[j];
+ double rsq=(ri-rj).norm2();
+ if (rsq < cutsq[itype][jtype]){
+ if(!i_local){
+ gmap[i]=0; //bingo, this ghost is really needed
+ break; // don't need to continue j loop
+ }
+ else
+ gmap[j]=0; //bingo, this ghost is really needed
+ }
+ }
+ }
+ }
+# endif
+ // prepare the solver object
+ wpmd->reset();
+
+ map<int,vector<int> > etmap;
+ // add particles to the AWPMD solver object
+ for (int i = 0; i < ntot; i++) {
+ //int i = ilist[ii];
+ if(gmap[i]<0) // this particle was filtered out
+ continue;
+ if(spin[i]==0) // this is an ion
+ gmap[i]=wpmd->add_ion(q[i], Vector_3(x[i][0],x[i][1],x[i][2]),i<nlocal ? atom->tag[i] : -atom->tag[i]);
+ else if(spin[i]==1 || spin[i]==-1){ // electron, sort them according to the tag
+ etmap[etag[i]].push_back(i);
+ }
+ else
+ error->all(fmt("Invalid spin value (%d) for particle %d !",spin[i],i));
+ }
+ // ion force vector
+ Vector_3 *fi=NULL;
+ if(wpmd->ni)
+ fi= new Vector_3[wpmd->ni];
+
+ // adding electrons
+ for(map<int,vector<int> >::iterator it=etmap.begin(); it!= etmap.end(); ++it){
+ vector<int> &el=it->second;
+ if(!el.size()) // should not happen
+ continue;
+ int s=spin[el[0]] >0 ? 0 : 1;
+ wpmd->add_electron(s); // starts adding the spits
+ for(size_t k=0;k<el.size();k++){
+ int i=el[k];
+ if(spin[el[0]]!=spin[i])
+ error->all(fmt("WP splits for one electron should have the same spin (at particles %d, %d)!",el[0],i));
+ double m= atom->mass ? atom->mass[type[i]] : force->e_mass;
+ Vector_3 xx=Vector_3(x[i][0],x[i][1],x[i][2]);
+ Vector_3 rv=m*Vector_3(v[i][0],v[i][1],v[i][2]);
+ double pv=ermscale*m*atom->ervel[i];
+ Vector_2 cc=Vector_2(atom->cs[2*i],atom->cs[2*i+1]);
+ gmap[i]=wpmd->add_split(xx,rv,atom->eradius[i],pv,cc,1.,atom->q[i],i<nlocal ? atom->tag[i] : -atom->tag[i]);
+ // resetting for the case constraints were applied
+ v[i][0]=rv[0]/m;
+ v[i][1]=rv[1]/m;
+ v[i][2]=rv[2]/m;
+ atom->ervel[i]=pv/(m*ermscale);
+ }
+ }
+ wpmd->set_pbc(NULL); // not required for LAMMPS
+ wpmd->interaction(0x1|0x4|0x10,fi);
+
+ // get forces from the AWPMD solver object
+ for (int ii = 0; ii < inum; ii++) {
+ int i = ilist[ii];
+ if(gmap[i]<0) // this particle was filtered out
+ continue;
+ if(spin[i]==0){ // this is an ion, copying forces
+ int ion=gmap[i];
+ f[i][0]=fi[ion][0];
+ f[i][0]=fi[ion][1];
+ f[i][0]=fi[ion][2];
+ }
+ else { // electron
+ int iel=gmap[i];
+ int s=spin[i] >0 ? 0 : 1;
+ wpmd->get_wp_force(s,iel,(Vector_3 *)f[i],(Vector_3 *)(atom->vforce+3*i),atom->erforce+i,atom->ervelforce+i,(Vector_2 *)(atom->csforce+2*i));
+ }
+ }
+
+ if(fi)
+ delete [] fi;
+
+ // update LAMMPS energy
+ if (eflag_either) {
+ if (eflag_global){
+ eng_coul+= wpmd->get_energy();
+ // pvector = [KE, Pauli, ecoul, radial_restraint]
+ pvector[0] = wpmd->Ee[0]+wpmd->Ee[1];
+ pvector[2] = wpmd->Eii+wpmd->Eei[0]+wpmd->Eei[1]+wpmd->Eee;
+ pvector[1] = pvector[0] + pvector[2] - wpmd->Edk - wpmd->Edc - wpmd->Eii; // All except diagonal terms
+ pvector[3] = wpmd->Ew;
+ }
+
+ if (eflag_atom) {
+ // transfer per-atom energies here
+ for (int i = 0; i < ntot; i++) {
+ if(gmap[i]<0) // this particle was filtered out
+ continue;
+ if(spin[i]==0){
+ eatom[i]=wpmd->Eiep[gmap[i]]+wpmd->Eiip[gmap[i]];
+ }
+ else {
+ int s=spin[i] >0 ? 0 : 1;
+ eatom[i]=wpmd->Eep[s][gmap[i]]+wpmd->Eeip[s][gmap[i]]+wpmd->Eeep[s][gmap[i]]+wpmd->Ewp[s][gmap[i]];
+ }
+ }
+ }
+ }
+ if (vflag_fdotr) {
+ virial_fdotr_compute();
+ if (flexible_pressure_flag)
+ virial_eradius_compute();
+ }
+}
+
+/* ----------------------------------------------------------------------
+ electron width-specific contribution to global virial
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::virial_eradius_compute()
+{
+ double *eradius = atom->eradius;
+ double *erforce = atom->erforce;
+ double e_virial;
+ int *spin = atom->spin;
+
+ // sum over force on all particles including ghosts
+
+ if (neighbor->includegroup == 0) {
+ int nall = atom->nlocal + atom->nghost;
+ for (int i = 0; i < nall; i++) {
+ if (spin[i]) {
+ e_virial = erforce[i]*eradius[i]/3;
+ virial[0] += e_virial;
+ virial[1] += e_virial;
+ virial[2] += e_virial;
+ }
+ }
+
+ // neighbor includegroup flag is set
+ // sum over force on initial nfirst particles and ghosts
+
+ } else {
+ int nall = atom->nfirst;
+ for (int i = 0; i < nall; i++) {
+ if (spin[i]) {
+ e_virial = erforce[i]*eradius[i]/3;
+ virial[0] += e_virial;
+ virial[1] += e_virial;
+ virial[2] += e_virial;
+ }
+ }
+
+ nall = atom->nlocal + atom->nghost;
+ for (int i = atom->nlocal; i < nall; i++) {
+ if (spin[i]) {
+ e_virial = erforce[i]*eradius[i]/3;
+ virial[0] += e_virial;
+ virial[1] += e_virial;
+ virial[2] += e_virial;
+ }
+ }
+ }
+}
+
+
+
+/* ----------------------------------------------------------------------
+ allocate all arrays
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::allocate()
+{
+ allocated = 1;
+ int n = atom->ntypes;
+
+ memory->create(setflag,n+1,n+1,"pair:setflag");
+ for (int i = 1; i <= n; i++)
+ for (int j = i; j <= n; j++)
+ setflag[i][j] = 0;
+
+ memory->create(cutsq,n+1,n+1,"pair:cutsq");
+ memory->create(cut,n+1,n+1,"pair:cut");
+}
+
+/* ---------------------------------------------------------------------
+ global settings
+------------------------------------------------------------------------- */
+// the format is: pair_style awpmd/cut [<global_cutoff|-1> [command1] [command2] ...]
+// commands:
+// [hartree|dproduct|uhf] -- quantum approximation level (default is hartree)
+// [free|pbc <length|-1>|fix <w0|-1>|relax|harm <w0>] -- width restriction (default is free)
+// [ermscale <number>] -- scaling factor between electron mass and effective width mass (used for equations of motion only) (default is 1)
+// [flex_press] -- set flexible pressure flag
+// -1 for length means default setting (L/2 for cutoff and L for width PBC)
+
+void PairAWPMDCut::settings(int narg, char **arg){
+ if (narg < 1) error->all("Illegal pair_style command");
+
+ cut_global = force->numeric(arg[0]);
+
+ ermscale=1.;
+ width_pbc=0.;
+
+ for(int i=1;i<narg;i++){
+ // reading commands
+ if(!strcmp(arg[i],"hartree"))
+ wpmd->approx=AWPMD::HARTREE;
+ else if(!strcmp(arg[i],"dproduct"))
+ wpmd->approx=AWPMD::DPRODUCT;
+ else if(!strcmp(arg[i],"uhf"))
+ wpmd->approx=AWPMD::UHF;
+ else if(!strcmp(arg[i],"free"))
+ wpmd->constraint=AWPMD::NONE;
+ else if(!strcmp(arg[i],"fix")){
+ wpmd->constraint=AWPMD::FIX;
+ i++;
+ if(i>=narg)
+ error->all("Setting 'fix' should be followed by a number in awpmd/cut");
+ wpmd->w0=force->numeric(arg[i]);
+ }
+ else if(!strcmp(arg[i],"harm")){
+ wpmd->constraint=AWPMD::HARM;
+ i++;
+ if(i>=narg)
+ error->all("Setting 'harm' should be followed by a number in awpmd/cut");
+ wpmd->w0=force->numeric(arg[i]);
+ wpmd->set_harm_constr(wpmd->w0);
+ }
+ else if(!strcmp(arg[i],"pbc")){
+ i++;
+ if(i>=narg)
+ error->all("Setting 'pbc' should be followed by a number in awpmd/cut");
+ width_pbc=force->numeric(arg[i]);
+ }
+ else if(!strcmp(arg[i],"relax"))
+ wpmd->constraint=AWPMD::RELAX;
+ else if(!strcmp(arg[i],"ermscale")){
+ i++;
+ if(i>=narg)
+ error->all("Setting 'ermscale' should be followed by a number in awpmd/cut");
+ ermscale=force->numeric(arg[i]);
+ }
+ else if(!strcmp(arg[i],"flex_press"))
+ flexible_pressure_flag = 1;
+ }
+
+
+ // reset cutoffs that have been explicitly set
+ /*
+ if (allocated) {
+ int i,j;
+ for (i = 1; i <= atom->ntypes; i++)
+ for (j = i+1; j <= atom->ntypes; j++)
+ if (setflag[i][j]) cut[i][j] = cut_global;
+ }*/
+}
+
+/* ----------------------------------------------------------------------
+ set coeffs for one or more type pairs
+------------------------------------------------------------------------- */
+// pair settings are as usual
+void PairAWPMDCut::coeff(int narg, char **arg)
+{
+ if (narg < 2 || narg > 3) error->all("Incorrect args for pair coefficients");
+
+ /*if(domain->xperiodic == 1 || domain->yperiodic == 1 ||
+ domain->zperiodic == 1) {*/
+ double delx = domain->boxhi[0]-domain->boxlo[0];
+ double dely = domain->boxhi[1]-domain->boxlo[1];
+ double delz = domain->boxhi[2]-domain->boxlo[2];
+ half_box_length = 0.5 * MIN(delx, MIN(dely, delz));
+ //}
+ if(cut_global<0)
+ cut_global=half_box_length;
+
+ if (!allocated)
+ allocate();
+ else{
+ int i,j;
+ for (i = 1; i <= atom->ntypes; i++)
+ for (j = i+1; j <= atom->ntypes; j++)
+ if (setflag[i][j]) cut[i][j] = cut_global;
+ }
+
+ int ilo,ihi,jlo,jhi;
+ force->bounds(arg[0],atom->ntypes,ilo,ihi);
+ force->bounds(arg[1],atom->ntypes,jlo,jhi);
+
+ double cut_one = cut_global;
+ if (narg == 3) cut_one = atof(arg[2]);
+
+ int count = 0;
+ for (int i = ilo; i <= ihi; i++) {
+ for (int j = MAX(jlo,i); j <= jhi; j++) {
+ cut[i][j] = cut_one;
+ setflag[i][j] = 1;
+ count++;
+ }
+ }
+
+ if (count == 0) error->all("Incorrect args for pair coefficients");
+}
+
+/* ----------------------------------------------------------------------
+ init specific to this pair style
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::init_style()
+{
+ // error and warning checks
+
+ if (!atom->q_flag || !atom->spin_flag ||
+ !atom->eradius_flag || !atom->erforce_flag ) // TO DO: adjust this to match approximation used
+ error->all("Pair awpmd/cut requires atom attributes "
+ "q, spin, eradius, erforce");
+
+ /*
+ if(vflag_atom){ // can't compute virial per atom
+ //warning->
+ error->all("Pair style awpmd can't compute per atom virials");
+ }*/
+
+ // add hook to minimizer for eradius and erforce
+
+ if (update->whichflag == 2)
+ int ignore = update->minimize->request(this,1,0.01);
+
+ // make sure to use the appropriate timestep when using real units
+
+ /*if (update->whichflag == 1) {
+ if (force->qqr2e == 332.06371 && update->dt == 1.0)
+ error->all("You must lower the default real units timestep for pEFF ");
+ }*/
+
+ // need a half neigh list and optionally a granular history neigh list
+
+ //int irequest = neighbor->request(this);
+
+ //if (atom->tag_enable == 0)
+ // error->all("Pair style reax requires atom IDs");
+
+ //if (force->newton_pair == 0)
+ //error->all("Pair style awpmd requires newton pair on");
+
+ //if (strcmp(update->unit_style,"real") != 0 && comm->me == 0)
+ //error->warning("Not using real units with pair reax");
+
+ int irequest = neighbor->request(this);
+ neighbor->requests[irequest]->newton = 2;
+
+ if(force->e_mass==0. || force->hhmrr2e==0. || force->mvh2r==0.)
+ error->all("Pair style awpmd requires e_mass and conversions hhmrr2e, mvh2r to be properly set for unit system");
+
+ wpmd->me=force->e_mass;
+ wpmd->h2_me=force->hhmrr2e/force->e_mass;
+ wpmd->one_h=force->mvh2r;
+ wpmd->coul_pref=force->qqrd2e;
+
+ wpmd->calc_ii=1;
+}
+
+/* ----------------------------------------------------------------------
+ init for one type pair i,j and corresponding j,i
+------------------------------------------------------------------------- */
+
+double PairAWPMDCut::init_one(int i, int j)
+{
+ if (setflag[i][j] == 0)
+ cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
+
+ return cut[i][j];
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 writes to restart file
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::write_restart(FILE *fp)
+{
+ write_restart_settings(fp);
+
+ int i,j;
+ for (i = 1; i <= atom->ntypes; i++)
+ for (j = i; j <= atom->ntypes; j++) {
+ fwrite(&setflag[i][j],sizeof(int),1,fp);
+ if (setflag[i][j]) fwrite(&cut[i][j],sizeof(double),1,fp);
+ }
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 reads from restart file, bcasts
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::read_restart(FILE *fp)
+{
+ read_restart_settings(fp);
+ allocate();
+
+ int i,j;
+ int me = comm->me;
+ for (i = 1; i <= atom->ntypes; i++)
+ for (j = i; j <= atom->ntypes; j++) {
+ if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
+ MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
+ if (setflag[i][j]) {
+ if (me == 0) fread(&cut[i][j],sizeof(double),1,fp);
+ MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 writes to restart file
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::write_restart_settings(FILE *fp)
+{
+ fwrite(&cut_global,sizeof(double),1,fp);
+ fwrite(&offset_flag,sizeof(int),1,fp);
+ fwrite(&mix_flag,sizeof(int),1,fp);
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 reads from restart file, bcasts
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::read_restart_settings(FILE *fp)
+{
+ if (comm->me == 0) {
+ fread(&cut_global,sizeof(double),1,fp);
+ fread(&offset_flag,sizeof(int),1,fp);
+ fread(&mix_flag,sizeof(int),1,fp);
+ }
+ MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
+ MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
+ MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
+}
+
+/* ----------------------------------------------------------------------
+ returns pointers to the log() of electron radius and corresponding force
+ minimizer operates on log(radius) so radius never goes negative
+ these arrays are stored locally by pair style
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::min_xf_pointers(int ignore, double **xextra, double **fextra)
+{
+ // grow arrays if necessary
+ // need to be atom->nmax in length
+ int nvar=atom->nmax*(3+1+1+2); // w(1), vel(3), pw(1), cs(2)
+
+ if (nvar > nmax) {
+ memory->destroy(min_var);
+ memory->destroy(min_varforce);
+ nmax = nvar;
+ memory->create(min_var,nmax,"pair:min_var");
+ memory->create(min_varforce,nmax,"pair:min_varforce");
+ }
+
+ *xextra = min_var;
+ *fextra = min_varforce;
+}
+
+/* ----------------------------------------------------------------------
+ minimizer requests the log() of electron radius and corresponding force
+ calculate and store in min_eradius and min_erforce
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::min_xf_get(int ignore)
+{
+ double *eradius = atom->eradius;
+ double *erforce = atom->erforce;
+ double **v=atom->v;
+ double *vforce=atom->vforce;
+ double *ervel=atom->ervel;
+ double *ervelforce=atom->ervelforce;
+ double *cs=atom->cs;
+ double *csforce=atom->csforce;
+
+ int *spin = atom->spin;
+ int nlocal = atom->nlocal;
+
+ for (int i = 0; i < nlocal; i++)
+ if (spin[i]) {
+ min_var[7*i] = log(eradius[i]);
+ min_varforce[7*i] = eradius[i]*erforce[i];
+ for(int j=0;j<3;j++){
+ min_var[7*i+1+3*j] = v[i][j];
+ min_varforce[7*i+1+3*j] = vforce[3*i+j];
+ }
+ min_var[7*i+4] = ervel[i];
+ min_varforce[7*i+4] = ervelforce[i];
+ min_var[7*i+5] = cs[2*i];
+ min_varforce[7*i+5] = csforce[2*i];
+ min_var[7*i+6] = cs[2*i+1];
+ min_varforce[7*i+6] = csforce[2*i+1];
+
+ } else {
+ for(int j=0;j<7;j++)
+ min_var[7*i+j] = min_varforce[7*i+j] = 0.0;
+ }
+}
+
+/* ----------------------------------------------------------------------
+ propagate the minimizer values to the atom values
+------------------------------------------------------------------------- */
+
+void PairAWPMDCut::min_x_set(int ignore)
+{
+ double *eradius = atom->eradius;
+ double **v=atom->v;
+ double *ervel=atom->ervel;
+ double *cs=atom->cs;
+
+ int *spin = atom->spin;
+ int nlocal = atom->nlocal;
+
+ for (int i = 0; i < nlocal; i++) {
+ if (spin[i]){
+ eradius[i]=exp(min_var[7*i]);
+ for(int j=0;j<3;j++)
+ v[i][j]=min_var[7*i+1+3*j];
+ ervel[i]=min_var[7*i+4];
+ cs[2*i]=min_var[7*i+5];
+ cs[2*i+1]=min_var[7*i+6];
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ memory usage of local atom-based arrays
+------------------------------------------------------------------------- */
+
+double PairAWPMDCut::memory_usage()
+{
+ double bytes = maxeatom * sizeof(double);
+ bytes += maxvatom*6 * sizeof(double);
+ bytes += 2 * nmax * sizeof(double);
+ return bytes;
+}
diff --git a/src/USER-AWPMD/pair_awpmd_cut.h b/src/USER-AWPMD/pair_awpmd_cut.h
new file mode 100644
index 000000000..b1511d449
--- /dev/null
+++ b/src/USER-AWPMD/pair_awpmd_cut.h
@@ -0,0 +1,81 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+ ------------------------------------------------------------------------- */
+/* ----------------------------------------------------------------------
+ Contributing author: Ilya Valuev (JIHT RAS)
+------------------------------------------------------------------------- */
+
+
+#ifdef PAIR_CLASS
+
+PairStyle(awpmd/cut,PairAWPMDCut)
+
+#else
+
+#ifndef LMP_PAIR_AWPMD_CUT_H
+#define LMP_PAIR_AWPMD_CUT_H
+
+#include "pair.h"
+
+
+class AWPMD_split;
+
+
+namespace LAMMPS_NS {
+
+class PairAWPMDCut : public Pair {
+ friend class FixNVEAwpmd;
+ public:
+ PairAWPMDCut(class LAMMPS *);
+ virtual ~PairAWPMDCut();
+ virtual void compute(int, int);
+ virtual void settings(int, char **);
+ void coeff(int, char **);
+ void init_style();
+ void min_pointers(double **, double **);
+ double init_one(int, int);
+ void write_restart(FILE *);
+ void read_restart(FILE *);
+ virtual void write_restart_settings(FILE *);
+ virtual void read_restart_settings(FILE *);
+
+ void min_xf_pointers(int, double **, double **);
+ void min_xf_get(int);
+ void min_x_set(int);
+ double memory_usage();
+
+ private:
+
+
+ int flexible_pressure_flag;
+ double cut_global;
+ double **cut;
+
+
+ int nmax; // number of additional variables for minimizer
+ double *min_var,*min_varforce; // additional variables for minimizer
+
+ void allocate();
+
+ void virial_eradius_compute();
+
+
+ AWPMD_split *wpmd; // solver oblect
+ double ermscale; // scale of width mass for motion
+ double width_pbc; // setting for width pbc
+ double half_box_length; // calculated by coeff function
+};
+
+}
+
+#endif
+#endif
diff --git a/src/USER-CG-CMM/pair_cg_cmm_coul_cut.cpp b/src/USER-CG-CMM/pair_cg_cmm_coul_cut.cpp
index 87b9db2ba..7b270b351 100644
--- a/src/USER-CG-CMM/pair_cg_cmm_coul_cut.cpp
+++ b/src/USER-CG-CMM/pair_cg_cmm_coul_cut.cpp
@@ -1,246 +1,246 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
CMM coarse grained MD potentials. Coulomb with cutoff version.
Contributing author: Axel Kohlmeyer <akohlmey@gmail.com>
------------------------------------------------------------------------- */
#include "pair_cg_cmm_coul_cut.h"
#include "memory.h"
#include "atom.h"
#include "string.h"
#define MIN(a,b) ((a) < (b) ? (a) : (b))
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairCGCMMCoulCut::PairCGCMMCoulCut(LAMMPS *lmp) : PairCMMCommon(lmp)
{
respa_enable = 0;
single_enable = 0;
}
/* ---------------------------------------------------------------------- */
PairCGCMMCoulCut::~PairCGCMMCoulCut()
{
if (allocated_coul) {
memory->destroy(cut_lj);
memory->destroy(cut_ljsq);
memory->destroy(cut_coul);
memory->destroy(cut_coulsq);
allocated_coul=0;
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::allocate()
{
PairCMMCommon::allocate();
allocated_coul = 1;
int n = atom->ntypes;
memory->create(cut_lj,n+1,n+1,"paircg:cut_lj");
memory->create(cut_ljsq,n+1,n+1,"paircg:cut_ljsq");
memory->create(cut_coul,n+1,n+1,"paircg:cut_coul");
memory->create(cut_coulsq,n+1,n+1,"paircg:cut_coulsq");
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::init_style()
{
if (!atom->q_flag)
error->all("Pair style cg/cut/coul/cut requires atom attribute q");
PairCMMCommon::init_style();
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulCut::init_one(int i, int j)
{
double mycut = PairCMMCommon::init_one(i,j);
// check interior rRESPA cutoff
if (cut_respa && MIN(cut_lj[i][j],cut_coul[i][j]) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
return mycut;
}
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- *
* the real compute work is done in the PairCMMCommon::eval_XXX<>() templates
* in the common PairCG class. Through using templates we can have one
* implementation for all CG varieties _and_ gain speed through having
* the compiler optimize away conditionals within the innerloops that
* can be predetermined outside the loop through instantiation of the
* different combination of template flags.
* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::compute(int eflag, int vflag)
{
if (eflag || vflag) {
ev_setup(eflag,vflag);
} else {
evflag = vflag_fdotr = 0;
}
if (evflag) {
if (eflag) {
if (force->newton_pair) {
return eval_verlet<1,1,1,CG_COUL_CUT>();
} else {
return eval_verlet<1,1,0,CG_COUL_CUT>();
}
} else {
if (force->newton_pair) {
return eval_verlet<1,0,1,CG_COUL_CUT>();
} else {
return eval_verlet<1,0,0,CG_COUL_CUT>();
}
}
} else {
if (force->newton_pair) {
return eval_verlet<0,0,1,CG_COUL_CUT>();
} else {
return eval_verlet<0,0,0,CG_COUL_CUT>();
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::compute_inner()
{
if (force->newton_pair) {
return eval_inner<1,CG_COUL_CUT>();
} else {
return eval_inner<0,CG_COUL_CUT>();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::compute_middle()
{
if (force->newton_pair) {
return eval_middle<1,CG_COUL_CUT>();
} else {
return eval_middle<0,CG_COUL_CUT>();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::compute_outer(int eflag, int vflag)
{
if (eflag || vflag) {
ev_setup(eflag,vflag);
} else {
evflag = 0;
}
if (evflag) {
if (eflag) {
if (vflag) {
if (force->newton_pair) {
return eval_outer<1,1,1,1,CG_COUL_CUT>();
} else {
return eval_outer<1,1,1,0,CG_COUL_CUT>();
}
} else {
if (force->newton_pair) {
return eval_outer<1,1,0,1,CG_COUL_CUT>();
} else {
return eval_outer<1,1,0,0,CG_COUL_CUT>();
}
}
} else {
if (vflag) {
if (force->newton_pair) {
return eval_outer<1,0,1,1,CG_COUL_CUT>();
} else {
return eval_outer<1,0,1,0,CG_COUL_CUT>();
}
} else {
if (force->newton_pair) {
return eval_outer<1,0,0,1,CG_COUL_CUT>();
} else {
return eval_outer<1,0,0,0,CG_COUL_CUT>();
}
}
}
} else {
if (force->newton_pair) {
return eval_outer<0,0,0,1,CG_COUL_CUT>();
} else {
return eval_outer<0,0,0,0,CG_COUL_CUT>();
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::write_restart(FILE *fp)
{
write_restart_settings(fp);
PairCMMCommon::write_restart(fp);
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCut::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
PairCMMCommon::read_restart(fp);
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulCut::memory_usage()
{
double bytes=PairCMMCommon::memory_usage();
int n = atom->ntypes;
// cut_coul/cut_coulsq/cut_lj/cut_ljsq;
bytes += (n+1)*(n+1)*sizeof(double)*4;
return bytes;
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulCut::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj, double &fforce)
{
return eval_single(CG_COUL_CUT,i,j,itype,jtype,rsq,factor_coul,factor_lj,fforce);
}
diff --git a/src/USER-CG-CMM/pair_cg_cmm_coul_long.cpp b/src/USER-CG-CMM/pair_cg_cmm_coul_long.cpp
index 567f92e93..2947b3ce6 100644
--- a/src/USER-CG-CMM/pair_cg_cmm_coul_long.cpp
+++ b/src/USER-CG-CMM/pair_cg_cmm_coul_long.cpp
@@ -1,454 +1,454 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
CMM coarse grained MD potentials. Coulomb with k-space version.
Contributing author: Axel Kohlmeyer <akohlmey@gmail.com>
------------------------------------------------------------------------- */
#include "pair_cg_cmm_coul_long.h"
#include "memory.h"
#include "atom.h"
#include "force.h"
#include "kspace.h"
#include "string.h"
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define EWALD_F 1.12837917
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairCGCMMCoulLong::PairCGCMMCoulLong(LAMMPS *lmp) : PairCMMCommon(lmp)
{
respa_enable = 0;
single_enable = 0;
}
/* ---------------------------------------------------------------------- */
PairCGCMMCoulLong::~PairCGCMMCoulLong()
{
if (allocated_coul) {
memory->destroy(cut_lj);
memory->destroy(cut_ljsq);
memory->destroy(cut_coul);
memory->destroy(cut_coulsq);
allocated_coul=0;
}
if (ftable) free_tables();
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::allocate()
{
PairCMMCommon::allocate();
allocated_coul = 1;
int n = atom->ntypes;
memory->create(cut_lj,n+1,n+1,"paircg:cut_lj");
memory->create(cut_ljsq,n+1,n+1,"paircg:cut_ljsq");
memory->create(cut_coul,n+1,n+1,"paircg:cut_coul");
memory->create(cut_coulsq,n+1,n+1,"paircg:cut_coulsq");
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairCGCMMCoulLong::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::init_style()
{
if (!atom->q_flag)
error->all("Pair style cg/cut/coul/long requires atom attribute q");
PairCMMCommon::init_style();
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
// ensure use of KSpace long-range solver, set g_ewald
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
// setup force tables
if (ncoultablebits) init_tables();
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulLong::init_one(int i, int j)
{
double mycut = PairCMMCommon::init_one(i,j);
// check interior rRESPA cutoff
if (cut_respa && MIN(cut_lj[i][j],cut_coul_global) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
return mycut;
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul_global,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable,"pair:vtable");
memory->create(ptable,ntable,"pair:ptable");
memory->create(dvtable,ntable,"pair:dvtable");
memory->create(dptable,ntable,"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq_global) {
rsq_lookup.f = cut_coulsq_global;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- *
* the real compute work is done in the PairCMMCommon::eval_XXX<>() templates
* in the common PairCG class. Through using templates we can have one
* implementation for all CG varieties _and_ gain speed through having
* the compiler optimize away conditionals within the innerloops that
* can be predetermined outside the loop through instantiation of the
* different combination of template flags.
* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::compute(int eflag, int vflag)
{
if (eflag || vflag) {
ev_setup(eflag,vflag);
} else {
evflag = vflag_fdotr = 0;
}
if (evflag) {
if (eflag) {
if (force->newton_pair) {
return eval_verlet<1,1,1,CG_COUL_LONG>();
} else {
return eval_verlet<1,1,0,CG_COUL_LONG>();
}
} else {
if (force->newton_pair) {
return eval_verlet<1,0,1,CG_COUL_LONG>();
} else {
return eval_verlet<1,0,0,CG_COUL_LONG>();
}
}
} else {
if (force->newton_pair) {
return eval_verlet<0,0,1,CG_COUL_LONG>();
} else {
return eval_verlet<0,0,0,CG_COUL_LONG>();
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::compute_inner()
{
if (force->newton_pair) {
return eval_inner<1,CG_COUL_LONG>();
} else {
return eval_inner<0,CG_COUL_LONG>();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::compute_middle()
{
if (force->newton_pair) {
return eval_middle<1,CG_COUL_LONG>();
} else {
return eval_middle<0,CG_COUL_LONG>();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::compute_outer(int eflag, int vflag)
{
if (eflag || vflag) {
ev_setup(eflag,vflag);
} else {
evflag = 0;
}
if (evflag) {
if (eflag) {
if (vflag) {
if (force->newton_pair) {
return eval_outer<1,1,1,1,CG_COUL_LONG>();
} else {
return eval_outer<1,1,1,0,CG_COUL_LONG>();
}
} else {
if (force->newton_pair) {
return eval_outer<1,1,0,1,CG_COUL_LONG>();
} else {
return eval_outer<1,1,0,0,CG_COUL_LONG>();
}
}
} else {
if (vflag) {
if (force->newton_pair) {
return eval_outer<1,0,1,1,CG_COUL_LONG>();
} else {
return eval_outer<1,0,1,0,CG_COUL_LONG>();
}
} else {
if (force->newton_pair) {
return eval_outer<1,0,0,1,CG_COUL_LONG>();
} else {
return eval_outer<1,0,0,0,CG_COUL_LONG>();
}
}
}
} else {
if (force->newton_pair) {
return eval_outer<0,0,0,1,CG_COUL_LONG>();
} else {
return eval_outer<0,0,0,0,CG_COUL_LONG>();
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::write_restart(FILE *fp)
{
write_restart_settings(fp);
PairCMMCommon::write_restart(fp);
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLong::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
PairCMMCommon::read_restart(fp);
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulLong::memory_usage()
{
double bytes=PairCMMCommon::memory_usage();
int n = atom->ntypes;
// cut_coul/cut_coulsq/cut_ljsq
bytes += (n+1)*(n+1)*sizeof(double)*4;
return bytes;
}
/* ---------------------------------------------------------------------- */
double PairCGCMMCoulLong::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj, double &fforce)
{
return eval_single(CG_COUL_LONG,i,j,itype,jtype,rsq,factor_coul,factor_lj,fforce);
}
/* ---------------------------------------------------------------------- */
void *PairCGCMMCoulLong::extract(char *str, int &dim)
{
dim = 0;
if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul_global;
return NULL;
}
diff --git a/src/USER-CG-CMM/pair_cmm_common.cpp b/src/USER-CG-CMM/pair_cmm_common.cpp
index 8dc7e9cac..043716e9f 100644
--- a/src/USER-CG-CMM/pair_cmm_common.cpp
+++ b/src/USER-CG-CMM/pair_cmm_common.cpp
@@ -1,476 +1,476 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Common functionality for the CMM coarse grained MD potentials.
Contributing author: Axel Kohlmeyer <akohlmey@gmail.com>
------------------------------------------------------------------------- */
#include "pair_cmm_common.h"
#include "memory.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "math.h"
using namespace LAMMPS_NS;
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define SMALL 1.0e-6
/* ---------------------------------------------------------------------- */
PairCMMCommon::PairCMMCommon(class LAMMPS *lmp) : Pair(lmp)
{
ftable = NULL;
allocated_coul = 0;
kappa = 0.0;
respa_enable = 0;
single_enable = 0;
}
/* ---------------------------------------------------------------------- *
* clean up common arrays *
* ---------------------------------------------------------------------- */
PairCMMCommon::~PairCMMCommon() {
if (allocated) {
memory->destroy(setflag);
memory->destroy(cg_type);
memory->destroy(cut);
memory->destroy(cutsq);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(offset);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
allocated = 0;
}
}
/* ---------------------------------------------------------------------- *
* allocate common arrays *
* ---------------------------------------------------------------------- */
void PairCMMCommon::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"paircg:setflag");
memory->create(cg_type,n+1,n+1,"paircg:cg_type");
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
setflag[i][j] = 0;
cg_type[i][j] = CG_NOT_SET;
}
}
memory->create(cut,n+1,n+1,"paircg:cut");
memory->create(cutsq,n+1,n+1,"paircg:cutsq");
memory->create(epsilon,n+1,n+1,"paircg:epsilon");
memory->create(sigma,n+1,n+1,"paircg:sigma");
memory->create(offset,n+1,n+1,"paircg:offset");
memory->create(lj1,n+1,n+1,"paircg:lj1");
memory->create(lj2,n+1,n+1,"paircg:lj2");
memory->create(lj3,n+1,n+1,"paircg:lj3");
memory->create(lj4,n+1,n+1,"paircg:lj4");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
// arguments to the pair_style command (global version)
// args = cutoff (cutoff2 (kappa))
void PairCMMCommon::settings(int narg, char **arg)
{
if ((narg < 1) || (narg > 3)) error->all("Illegal pair_style command");
cut_lj_global = force->numeric(arg[0]);
if (narg == 1) cut_coul_global = cut_lj_global;
else cut_coul_global = force->numeric(arg[1]);
cut_coulsq_global = cut_coul_global*cut_coul_global;
// exponential coulomb screening (optional)
if (narg == 3) kappa = force->numeric(arg[2]);
if (fabs(kappa) < SMALL) kappa=0.0;
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++) {
for (j = i+1; j <= atom->ntypes; j++) {
if (setflag[i][j]) {
cut[i][j] = cut_lj_global;
if (allocated_coul) {
cut[i][j] = MAX(cut_lj_global,cut_coul_global);
cut_lj[i][j] = cut_lj_global;
cut_coul[i][j] = cut_coul_global;
}
}
}
}
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairCMMCommon::coeff(int narg, char **arg)
{
if (narg < 5 || narg > 7) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
int cg_type_one=find_cg_type(arg[2]);
if (cg_type_one == CG_NOT_SET) error->all("Error reading CG type flag.");
double epsilon_one = force->numeric(arg[3]);
double sigma_one = force->numeric(arg[4]);
double cut_lj_one = cut_lj_global;
double cut_coul_one = cut_coul_global;
if (narg >= 6) cut_lj_one = force->numeric(arg[5]);
if (narg == 7) cut_coul_one = force->numeric(arg[6]);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
cg_type[i][j] = cg_type_one;
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
setflag[i][j] = 1;
if (allocated_coul) {
cut_lj[i][j] = cut_lj_one;
cut_coul[i][j] = cut_coul_one;
} else {
cut[i][j] = cut_lj_one;
}
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairCMMCommon::init_style()
{
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairCMMCommon::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairCMMCommon::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
error->all("for CG styles, epsilon and sigma need to be set explicitly for all pairs.");
}
const int cgt = cg_type[i][j];
if (cgt == CG_NOT_SET)
error->all("unrecognized LJ parameter flag");
lj1[i][j] = cg_prefact[cgt] * cg_pow1[cgt] * epsilon[i][j] * pow(sigma[i][j],cg_pow1[cgt]);
lj2[i][j] = cg_prefact[cgt] * cg_pow2[cgt] * epsilon[i][j] * pow(sigma[i][j],cg_pow2[cgt]);
lj3[i][j] = cg_prefact[cgt] * epsilon[i][j] * pow(sigma[i][j],cg_pow1[cgt]);
lj4[i][j] = cg_prefact[cgt] * epsilon[i][j] * pow(sigma[i][j],cg_pow2[cgt]);
double mycut = cut[i][j];
if (offset_flag) {
double ratio = sigma[i][j] / mycut;
offset[i][j] = cg_prefact[cgt] * epsilon[i][j] * (pow(ratio,cg_pow1[cgt]) - pow(ratio,cg_pow2[cgt]));
} else offset[i][j] = 0.0;
if (allocated_coul) {
mycut = MAX(cut_lj[i][j],cut_coul[i][j]);
cut[i][j] = mycut;
cut_ljsq[i][j]=cut_lj[i][j]*cut_lj[i][j];
cut_coulsq[i][j]=cut_coul[i][j]*cut_coul[i][j];
if (offset_flag) {
double ratio = sigma[i][j] / cut_lj[i][j];
offset[i][j] = cg_prefact[cgt] * epsilon[i][j] * (pow(ratio,cg_pow1[cgt]) - pow(ratio,cg_pow2[cgt]));
} else offset[i][j] = 0.0;
}
// make sure data is stored symmetrically
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
offset[j][i] = offset[i][j];
cg_type[j][i] = cg_type[i][j];
cut[j][i] = mycut;
if (allocated_coul) {
cut_lj[j][i]=cut_lj[i][j];
cut_ljsq[j][i]=cut_ljsq[i][j];
cut_coul[j][i]=cut_coul[i][j];
cut_coulsq[j][i]=cut_coulsq[i][j];
}
// compute I,J contribution to long-range tail correction
// count total # of atoms of type I and J via Allreduce
if (tail_flag) {
#if 1
error->all("tail correction not (yet) supported by CG potentials.");
#else
int *type = atom->type;
int nlocal = atom->nlocal;
double count[2],all[2];
count[0] = count[1] = 0.0;
for (int k = 0; k < nlocal; k++) {
if (type[k] == i) count[0] += 1.0;
if (type[k] == j) count[1] += 1.0;
}
MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world);
double PI = 4.0*atan(1.0);
double sig2 = sigma[i][j]*sigma[i][j];
double sig6 = sig2*sig2*sig2;
double rc3 = cut[i][j]*cut[i][j]*cut[i][j];
double rc6 = rc3*rc3;
double rc9 = rc3*rc6;
etail_ij = 8.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (sig6 - 3.0*rc6) / (9.0*rc9);
ptail_ij = 16.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9);
#endif
}
return mycut;
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairCMMCommon::write_restart(FILE *fp)
{
int i,j;
for (i = 1; i <= atom->ntypes; i++) {
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&cg_type[i][j],sizeof(int),1,fp);
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
if (allocated_coul) {
fwrite(&cut_lj[i][j],sizeof(double),1,fp);
fwrite(&cut_coul[i][j],sizeof(double),1,fp);
}
}
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairCMMCommon::read_restart(FILE *fp)
{
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++) {
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&cg_type[i][j],sizeof(int),1,fp);
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&cut[i][j],sizeof(double),1,fp);
if(allocated_coul) {
fread(&cut_lj[i][j],sizeof(double),1,fp);
fread(&cut_coul[i][j],sizeof(double),1,fp);
}
}
MPI_Bcast(&cg_type[i][j],1,MPI_INT,0,world);
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
if (allocated_coul) {
MPI_Bcast(&cut_lj[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul[i][j],1,MPI_DOUBLE,0,world);
}
}
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairCMMCommon::write_restart_settings(FILE *fp)
{
fwrite(&cut_lj_global,sizeof(double),1,fp);
fwrite(&cut_coul_global,sizeof(double),1,fp);
fwrite(&kappa,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairCMMCommon::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
fread(&cut_lj_global,sizeof(double),1,fp);
fread(&cut_coul_global,sizeof(double),1,fp);
fread(&kappa,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&kappa,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
cut_coulsq_global = cut_coul_global*cut_coul_global;
}
/* ---------------------------------------------------------------------- */
double PairCMMCommon::memory_usage()
{
double bytes=Pair::memory_usage();
int n = atom->ntypes;
// setflag/cg_type
bytes += (n+1)*(n+1)*sizeof(int)*2;
// cut/cutsq/epsilon/sigma/offset/lj1/lj2/lj3/lj4
bytes += (n+1)*(n+1)*sizeof(double)*9;
return bytes;
}
/* ------------------------------------------------------------------------ */
double PairCMMCommon::eval_single(int coul_type, int i, int j, int itype, int jtype,
double rsq, double factor_coul, double factor_lj,
double &fforce)
{
double lj_force, lj_erg, coul_force, coul_erg;
lj_force=lj_erg=coul_force=coul_erg=0.0;
if (rsq < cut_ljsq[itype][jtype]) {
const int cgt = cg_type[itype][jtype];
const double cgpow1 = cg_pow1[cgt];
const double cgpow2 = cg_pow2[cgt];
const double cgpref = cg_prefact[cgt];
const double ratio = sigma[itype][jtype]/sqrt(rsq);
const double eps = epsilon[itype][jtype];
lj_force = cgpref*eps * (cgpow1*pow(ratio,cgpow1)
- cgpow2*pow(ratio,cgpow2))/rsq;
lj_erg = cgpref*eps * (pow(ratio,cgpow1) - pow(ratio,cgpow2));
}
if (rsq < cut_coul[itype][jtype]) {
if(coul_type == CG_COUL_LONG) {
error->all("single energy computation with long-range coulomb not supported by CG potentials.");
} else if ((coul_type == CG_COUL_CUT) || (coul_type == CG_COUL_DEBYE)) {
const double r2inv = 1.0/rsq;
const double rinv = sqrt(r2inv);
const double qscreen=exp(-kappa*sqrt(rsq));
coul_force = force->qqrd2e * atom->q[i]*atom->q[j]*rinv * qscreen * (kappa + rinv);
coul_erg = force->qqrd2e * atom->q[i]*atom->q[j]*rinv * qscreen;
// error->all("single energy computation with coulomb not supported by CG potentials.");
} else if (coul_type == CG_COUL_NONE) {
; // do nothing
} else {
error->all("unknown coulomb type with CG potentials.");
}
}
fforce = factor_lj*lj_force + factor_coul*coul_force;
return factor_lj*lj_erg + factor_coul*coul_erg;
}
diff --git a/src/USER-CUDA/comm_cuda.cu b/src/USER-CUDA/comm_cuda.cu
deleted file mode 100644
index 0233f3ee1..000000000
--- a/src/USER-CUDA/comm_cuda.cu
+++ /dev/null
@@ -1,483 +0,0 @@
-/* ----------------------------------------------------------------------
- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
-
- Original Version:
- http://lammps.sandia.gov, Sandia National Laboratories
- Steve Plimpton, sjplimp@sandia.gov
-
- See the README file in the top-level LAMMPS directory.
-
- -----------------------------------------------------------------------
-
- USER-CUDA Package and associated modifications:
- https://sourceforge.net/projects/lammpscuda/
-
- Christian Trott, christian.trott@tu-ilmenau.de
- Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
- Theoretical Physics II, University of Technology Ilmenau, Germany
-
- See the README file in the USER-CUDA directory.
-
- This software is distributed under the GNU General Public License.
-------------------------------------------------------------------------- */
-
-#include <stdio.h>
-#define MY_PREFIX comm_cuda
-#include "cuda_shared.h"
-#include "cuda_common.h"
-
-#include "crm_cuda_utils.cu"
-
-#include "comm_cuda_cu.h"
-#include "comm_cuda_kernel.cu"
-#include <ctime>
-
-void Cuda_CommCuda_UpdateBuffer(cuda_shared_data* sdata,int n)
-{
- int size=n*3*sizeof(X_FLOAT);
- if(sdata->buffersize<size)
- {
- MYDBG(printf("Cuda_ComputeTempCuda Resizing Buffer at %p with %i kB to\n",sdata->buffer,sdata->buffersize);)
- CudaWrapper_FreeCudaData(sdata->buffer,sdata->buffersize);
- sdata->buffer = CudaWrapper_AllocCudaData(size);
- sdata->buffersize=size;
- sdata->buffer_new++;
- MYDBG(printf("New buffer at %p with %i kB\n",sdata->buffer,sdata->buffersize);)
- }
- cudaMemcpyToSymbol(MY_CONST(buffer), & sdata->buffer, sizeof(int*) );
-}
-
-
-void Cuda_CommCuda_UpdateNmax(cuda_shared_data* sdata)
-{
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- cudaMemcpyToSymbol(MY_CONST(nmax) , & sdata->atom.nmax , sizeof(int) );
- cudaMemcpyToSymbol(MY_CONST(x) , & sdata->atom.x .dev_data, sizeof(X_FLOAT*) );
- cudaMemcpyToSymbol(MY_CONST(v) , & sdata->atom.v .dev_data, sizeof(X_FLOAT*) );
- cudaMemcpyToSymbol(MY_CONST(f) , & sdata->atom.f .dev_data, sizeof(F_FLOAT*) );
- cudaMemcpyToSymbol(MY_CONST(type) , & sdata->atom.type .dev_data, sizeof(int*) );
-}
-
-
-void Cuda_CommCuda_Init(cuda_shared_data* sdata)
-{
- Cuda_CommCuda_UpdateNmax(sdata);
- int ntypesp=sdata->atom.ntypes+1;
- cudaMemcpyToSymbol(MY_CONST(cuda_ntypes) , &ntypesp, sizeof(int));
- cudaMemcpyToSymbol(MY_CONST(prd) , sdata->domain.prd, 3*sizeof(X_FLOAT));
- cudaMemcpyToSymbol(MY_CONST(flag) , &sdata->flag, sizeof(int*));
- cudaMemcpyToSymbol(MY_CONST(debugdata) , &sdata->debugdata, sizeof(int*));
-}
-
-int Cuda_CommCuda_PackComm(cuda_shared_data* sdata,int n,int iswap,void* buf_send,int* pbc,int pbc_flag)
-{
-
- timespec time1,time2;
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
- X_FLOAT dx=0.0;
- X_FLOAT dy=0.0;
- X_FLOAT dz=0.0;
- if (pbc_flag != 0) {
- if (sdata->domain.triclinic == 0) {
- dx = pbc[0]*sdata->domain.prd[0];
- dy = pbc[1]*sdata->domain.prd[1];
- dz = pbc[2]*sdata->domain.prd[2];
- } else {
- dx = pbc[0]*sdata->domain.prd[0] + pbc[5]*sdata->domain.xy + pbc[4]*sdata->domain.xz;
- dy = pbc[1]*sdata->domain.prd[1] + pbc[3]*sdata->domain.yz;
- dz = pbc[2]*sdata->domain.prd[2];
- }}
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
-
- if(sdata->atom.nlocal>0)
- {
- cudaMemset( sdata->flag,0,sizeof(int));
-
-clock_gettime(CLOCK_REALTIME,&time1);
-
- void* buf=sdata->overlap_comm?sdata->comm.buf_send_dev[iswap]:sdata->buffer;
- Cuda_CommCuda_PackComm_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n
- ,sdata->comm.maxlistlength,iswap,dx,dy,dz,buf);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_kernel_pack+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm: Kernel execution failed");
- if(not sdata->overlap_comm)
- cudaMemcpy(buf_send, sdata->buffer, n*3*sizeof(X_FLOAT), cudaMemcpyDeviceToHost);
- //cudaMemcpy(buf_send, sdata->comm.buf_send_dev[iswap], n*3*sizeof(X_FLOAT), cudaMemcpyDeviceToHost);
-
-clock_gettime(CLOCK_REALTIME,&time1);
-sdata->cuda_timings.comm_forward_download+=
- time1.tv_sec-time2.tv_sec+1.0*(time1.tv_nsec-time2.tv_nsec)/1000000000;
-
- int aflag;
- cudaMemcpy(&aflag, sdata->flag, sizeof(int), cudaMemcpyDeviceToHost);
- if(aflag!=0) printf("aflag PackComm: %i\n",aflag);
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm: Kernel execution failed");
-
- }
- return 3*n;
-}
-
-int Cuda_CommCuda_PackCommVel(cuda_shared_data* sdata,int n,int iswap,void* buf_send,int* pbc,int pbc_flag)
-{
-
- timespec time1,time2;
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*6*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
- X_FLOAT dx=0.0;
- X_FLOAT dy=0.0;
- X_FLOAT dz=0.0;
- if (pbc_flag != 0) {
- if (sdata->domain.triclinic == 0) {
- dx = pbc[0]*sdata->domain.prd[0];
- dy = pbc[1]*sdata->domain.prd[1];
- dz = pbc[2]*sdata->domain.prd[2];
- } else {
- dx = pbc[0]*sdata->domain.prd[0] + pbc[5]*sdata->domain.xy + pbc[4]*sdata->domain.xz;
- dy = pbc[1]*sdata->domain.prd[1] + pbc[3]*sdata->domain.yz;
- dz = pbc[2]*sdata->domain.prd[2];
- }}
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
-
- if(sdata->atom.nlocal>0)
- {
- cudaMemset( sdata->flag,0,sizeof(int));
-
-clock_gettime(CLOCK_REALTIME,&time1);
-
- void* buf=sdata->overlap_comm?sdata->comm.buf_send_dev[iswap]:sdata->buffer;
- Cuda_CommCuda_PackComm_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n
- ,sdata->comm.maxlistlength,iswap,dx,dy,dz,buf);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_kernel_pack+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm: Kernel execution failed");
- if(not sdata->overlap_comm)
- cudaMemcpy(buf_send, sdata->buffer, n*6*sizeof(X_FLOAT), cudaMemcpyDeviceToHost);
- //cudaMemcpy(buf_send, sdata->comm.buf_send_dev[iswap], n*3*sizeof(X_FLOAT), cudaMemcpyDeviceToHost);
-
-clock_gettime(CLOCK_REALTIME,&time1);
-sdata->cuda_timings.comm_forward_download+=
- time1.tv_sec-time2.tv_sec+1.0*(time1.tv_nsec-time2.tv_nsec)/1000000000;
-
- int aflag;
- cudaMemcpy(&aflag, sdata->flag, sizeof(int), cudaMemcpyDeviceToHost);
- if(aflag!=0) printf("aflag PackComm: %i\n",aflag);
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm: Kernel execution failed");
-
- }
- return 6*n;
-}
-
-int Cuda_CommCuda_PackComm_Self(cuda_shared_data* sdata,int n,int iswap,int first,int* pbc,int pbc_flag)
-{
- MYDBG(printf(" # CUDA: CommCuda_PackComm_Self\n");)
- timespec time1,time2;
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
- static int count=-1;
- count++;
- X_FLOAT dx=0.0;
- X_FLOAT dy=0.0;
- X_FLOAT dz=0.0;
- if (pbc_flag != 0) {
- if (sdata->domain.triclinic == 0) {
- dx = pbc[0]*sdata->domain.prd[0];
- dy = pbc[1]*sdata->domain.prd[1];
- dz = pbc[2]*sdata->domain.prd[2];
- } else {
- dx = pbc[0]*sdata->domain.prd[0] + pbc[5]*sdata->domain.xy + pbc[4]*sdata->domain.xz;
- dy = pbc[1]*sdata->domain.prd[1] + pbc[3]*sdata->domain.yz;
- dz = pbc[2]*sdata->domain.prd[2];
- }}
-
-
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
- if(sdata->atom.nlocal>0)
- {
-
-clock_gettime(CLOCK_REALTIME,&time1);
-
- Cuda_CommCuda_PackComm_Self_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n,sdata->comm.maxlistlength,iswap,dx,dy,dz,first);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_kernel_self+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm_Self: Kernel execution failed");
- }
-
- return 3*n;
-}
-
-int Cuda_CommCuda_PackCommVel_Self(cuda_shared_data* sdata,int n,int iswap,int first,int* pbc,int pbc_flag)
-{
- MYDBG(printf(" # CUDA: CommCuda_PackComm_Self\n");)
- timespec time1,time2;
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*6*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
- static int count=-1;
- count++;
- X_FLOAT dx=0.0;
- X_FLOAT dy=0.0;
- X_FLOAT dz=0.0;
- if (pbc_flag != 0) {
- if (sdata->domain.triclinic == 0) {
- dx = pbc[0]*sdata->domain.prd[0];
- dy = pbc[1]*sdata->domain.prd[1];
- dz = pbc[2]*sdata->domain.prd[2];
- } else {
- dx = pbc[0]*sdata->domain.prd[0] + pbc[5]*sdata->domain.xy + pbc[4]*sdata->domain.xz;
- dy = pbc[1]*sdata->domain.prd[1] + pbc[3]*sdata->domain.yz;
- dz = pbc[2]*sdata->domain.prd[2];
- }}
-
-
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
- if(sdata->atom.nlocal>0)
- {
-
-clock_gettime(CLOCK_REALTIME,&time1);
-
- Cuda_CommCuda_PackComm_Self_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n,sdata->comm.maxlistlength,iswap,dx,dy,dz,first);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_kernel_self+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_PackComm_Self: Kernel execution failed");
- }
-
- return 6*n;
-}
-
-void Cuda_CommCuda_UnpackComm(cuda_shared_data* sdata,int n,int first,void* buf_recv,int iswap)
-{
- timespec time1,time2;
-
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
- if(sdata->atom.nlocal>0)
- {
-clock_gettime(CLOCK_REALTIME,&time1);
- if(not sdata->overlap_comm||iswap<0)
- cudaMemcpy(sdata->buffer,(void*)buf_recv, n*3*sizeof(X_FLOAT), cudaMemcpyHostToDevice);
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_upload+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
- void* buf=(sdata->overlap_comm&&iswap>=0)?sdata->comm.buf_recv_dev[iswap]:sdata->buffer;
- Cuda_CommCuda_UnpackComm_Kernel<<<grid, threads,0>>>(n,first,buf);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time1);
-sdata->cuda_timings.comm_forward_kernel_unpack+=
- time1.tv_sec-time2.tv_sec+1.0*(time1.tv_nsec-time2.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_UnpackComm: Kernel execution failed");
-
- }
-}
-
-void Cuda_CommCuda_UnpackCommVel(cuda_shared_data* sdata,int n,int first,void* buf_recv,int iswap)
-{
- timespec time1,time2;
-
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*6*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
- if(sdata->atom.nlocal>0)
- {
-clock_gettime(CLOCK_REALTIME,&time1);
-
- if(not sdata->overlap_comm||iswap<0)
- cudaMemcpy(sdata->buffer,(void*)buf_recv, n*6*sizeof(X_FLOAT), cudaMemcpyHostToDevice);
-
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_forward_upload+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
- void* buf=(sdata->overlap_comm&&iswap>=0)?sdata->comm.buf_recv_dev[iswap]:sdata->buffer;
- Cuda_CommCuda_UnpackComm_Kernel<<<grid, threads,0>>>(n,first,buf);
- cudaThreadSynchronize();
-
-clock_gettime(CLOCK_REALTIME,&time1);
-sdata->cuda_timings.comm_forward_kernel_unpack+=
- time1.tv_sec-time2.tv_sec+1.0*(time1.tv_nsec-time2.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_UnpackComm: Kernel execution failed");
-
- }
-}
-
-int Cuda_CommCuda_PackReverse(cuda_shared_data* sdata,int n,int first,void* buf_send)
-{
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(F_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
-
- F_FLOAT* buf=(F_FLOAT*)buf_send;
- F_FLOAT* f_dev=(F_FLOAT*)sdata->atom.f.dev_data;
- f_dev+=first;
- cudaMemcpy(buf, f_dev, n*sizeof(F_FLOAT), cudaMemcpyDeviceToHost);
- buf+=n; f_dev+=sdata->atom.nmax;
- cudaMemcpy(buf, f_dev, n*sizeof(F_FLOAT), cudaMemcpyDeviceToHost);
- buf+=n; f_dev+=sdata->atom.nmax;
- cudaMemcpy(buf, f_dev, n*sizeof(F_FLOAT), cudaMemcpyDeviceToHost);
- return n*3;
-}
-
-
-void Cuda_CommCuda_UnpackReverse(cuda_shared_data* sdata,int n,int iswap,void* buf_recv)
-{
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(F_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
- if(sdata->atom.nlocal>0)
- {
- cudaMemcpy(sdata->buffer,buf_recv, size, cudaMemcpyHostToDevice);
- Cuda_CommCuda_UnpackReverse_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n,sdata->comm.maxlistlength,iswap);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("Cuda_CommCuda_UnpackReverse: Kernel execution failed");
- }
-}
-
-void Cuda_CommCuda_UnpackReverse_Self(cuda_shared_data* sdata,int n,int iswap,int first)
-{
- if(sdata->atom.update_nmax)
- Cuda_CommCuda_UpdateNmax(sdata);
- if(sdata->atom.update_nlocal)
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- int size=n*3*sizeof(X_FLOAT);
- if(sdata->buffer_new or (size>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,n);
-
- int3 layout=getgrid(n);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x, layout.y, 1);
-
- if(sdata->atom.nlocal>0)
- {
- Cuda_CommCuda_UnpackReverse_Self_Kernel<<<grid, threads,0>>>((int*) sdata->comm.sendlist.dev_data,n,sdata->comm.maxlistlength,iswap,first);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("Cuda_CommCuda_PackReverse_Self: Kernel execution failed");
-
- }
-}
-
-
-int Cuda_CommCuda_BuildSendlist(cuda_shared_data* sdata,int bordergroup,int ineed,int style,int atom_nfirst,int nfirst,int nlast,int dim,int iswap)
-{
- MYDBG(printf(" # CUDA: CommCuda_BuildSendlist\n");)
- timespec time1,time2;
- Cuda_CommCuda_UpdateNmax(sdata);
- cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal , sizeof(int) );
- if(sdata->buffer_new or (80>sdata->buffersize))
- Cuda_CommCuda_UpdateBuffer(sdata,10);
- int n;
- if (!bordergroup || ineed >= 2)
- n=nlast-nfirst+1;
- else
- {
- n=atom_nfirst;
- if(nlast-sdata->atom.nlocal+1>n) n=nlast-sdata->atom.nlocal+1;
- }
- int3 layout=getgrid(n,0,512,true);
- dim3 threads(layout.z, 1, 1);
- dim3 grid(layout.x+1, layout.y, 1);
-
-
- cudaMemset((int*) (sdata->buffer),0,sizeof(int));
-
-clock_gettime(CLOCK_REALTIME,&time1);
- if(style==1)
- Cuda_CommCuda_BuildSendlist_Single<<<grid, threads,(threads.x+1)*sizeof(int)>>>(bordergroup, ineed, atom_nfirst, nfirst, nlast, dim, iswap,(X_FLOAT*) sdata->comm.slablo.dev_data,(X_FLOAT*) sdata->comm.slabhi.dev_data,(int*) sdata->comm.sendlist.dev_data,sdata->comm.maxlistlength);
- else
- Cuda_CommCuda_BuildSendlist_Multi<<<grid, threads,(threads.x+1)*sizeof(int)>>>(bordergroup, ineed, atom_nfirst, nfirst, nlast, dim, iswap,(X_FLOAT*) sdata->comm.multilo.dev_data,(X_FLOAT*) sdata->comm.multihi.dev_data,(int*) sdata->comm.sendlist.dev_data,sdata->comm.maxlistlength);
- cudaThreadSynchronize();
-clock_gettime(CLOCK_REALTIME,&time2);
-sdata->cuda_timings.comm_border_kernel_buildlist+=
- time2.tv_sec-time1.tv_sec+1.0*(time2.tv_nsec-time1.tv_nsec)/1000000000;
-
- CUT_CHECK_ERROR("Cuda_CommCuda_BuildSendlist: Kernel execution failed");
- int nsend;
- cudaMemcpy(&nsend, sdata->buffer, sizeof(int), cudaMemcpyDeviceToHost);
- return nsend;
-
-
-}
-
diff --git a/src/USER-CUDA/fix_addforce_cuda.cpp b/src/USER-CUDA/fix_addforce_cuda.cpp
index acb83aa13..acf4d6d7e 100644
--- a/src/USER-CUDA/fix_addforce_cuda.cpp
+++ b/src/USER-CUDA/fix_addforce_cuda.cpp
@@ -1,190 +1,190 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cstring>
#include <cstdlib>
#include "fix_addforce_cuda.h"
#include "fix_addforce_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "domain.h"
#include "cuda.h"
#include "memory.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixAddForceCuda::FixAddForceCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg < 6) error->all("Illegal fix addforce/cuda command");
scalar_flag = 1;
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extscalar = 1;
extvector = 1;
xvalue = atof(arg[3]);
yvalue = atof(arg[4]);
zvalue = atof(arg[5]);
// optional args
iregion = -1;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"region") == 0) {
if (iarg+2 > narg) error->all("Illegal fix addforce/cuda command");
iregion = domain->find_region(arg[iarg+1]);
if (iregion == -1) error->all("Fix addforce/cuda region ID does not exist");
iarg += 2;
} else error->all("Illegal fix addforce/cuda command");
}
if(iregion!=-1) error->all("Error: fix addforce/cuda does not currently support 'region' option");
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
cu_foriginal = NULL;
}
/* ---------------------------------------------------------------------- */
int FixAddForceCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
mask |= THERMO_ENERGY_CUDA;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::init()
{
if(not cu_foriginal)
cu_foriginal = new cCudaData<double, F_FLOAT, x> (foriginal,4);
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::setup(int vflag)
{
MYDBG( printf("# CUDA: FixAddForceCuda::setup\n"); )
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixAddForceCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
post_force(vflag);
cuda->cu_f->download();
}
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
cuda->cu_f->download();
post_force_respa(vflag,nlevels_respa-1,0);
cuda->cu_f->upload();
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
MYDBG( printf("# CUDA: FixAddForceCuda::setup done\n"); )
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::post_force(int vflag)
{
MYDBG( printf("# CUDA: FixAddForceCuda::postforce start\n"); )
force_flag = 0;
cu_foriginal->memset_device(0);
Cuda_FixAddForceCuda_PostForce(&cuda->shared_data, groupbit, xvalue, yvalue,zvalue,(F_FLOAT*) cu_foriginal->dev_data());
cu_foriginal->download();
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAddForceCuda::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
potential energy of added force
------------------------------------------------------------------------- */
double FixAddForceCuda::compute_scalar()
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[0];
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixAddForceCuda::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n+1];
}
diff --git a/src/USER-CUDA/fix_aveforce_cuda.cpp b/src/USER-CUDA/fix_aveforce_cuda.cpp
index 06d81ad18..10b4555e8 100644
--- a/src/USER-CUDA/fix_aveforce_cuda.cpp
+++ b/src/USER-CUDA/fix_aveforce_cuda.cpp
@@ -1,229 +1,229 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include "mpi.h"
#include <cstring>
#include <cstdlib>
#include "fix_aveforce_cuda.h"
#include "fix_aveforce_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "domain.h"
#include "cuda.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixAveForceCuda::FixAveForceCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg != 6) error->all("Illegal fix aveforce command");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
xflag = yflag = zflag = 1;
if (strcmp(arg[3],"NULL") == 0) xflag = 0;
else xvalue = atof(arg[3]);
if (strcmp(arg[4],"NULL") == 0) yflag = 0;
else yvalue = atof(arg[4]);
if (strcmp(arg[5],"NULL") == 0) zflag = 0;
else zvalue = atof(arg[5]);
// optional args
iregion = -1;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"region") == 0) {
if (iarg+2 > narg) error->all("Illegal fix aveforce command");
iregion = domain->find_region(arg[iarg+1]);
if (iregion == -1) error->all("Fix aveforce region ID does not exist");
iarg += 2;
} else error->all("Illegal fix aveforce command");
}
if(iregion!=-1) error->all("Error: fix aveforce/cuda does not currently support 'region' option");
foriginal_all[0] = foriginal_all[1] = foriginal_all[2] = foriginal_all[3] = 0.0;
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
cu_foriginal = NULL;
}
/* ---------------------------------------------------------------------- */
int FixAveForceCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::init()
{
if(not cu_foriginal)
cu_foriginal = new cCudaData<double, F_FLOAT, x> (foriginal,4);
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
// ncount = total # of atoms in group
int *mask = atom->mask;
int nlocal = atom->nlocal;
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixAveForceCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
post_force(vflag);
cuda->cu_f->download();
}
else
{
cuda->cu_f->download();
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
cuda->cu_f->upload();
}
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::post_force(int vflag)
{
// sum forces on participating atoms
cu_foriginal->memset_device(0);
Cuda_FixAveForceCuda_PostForce_FOrg(&cuda->shared_data, groupbit,(F_FLOAT*) cu_foriginal->dev_data());
cu_foriginal->download();
// average the force on participating atoms
// add in requested amount
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
int ncount = static_cast<int> (foriginal_all[3]);
if (ncount == 0) return;
double fave[3];
fave[0] = foriginal_all[0]/ncount + xvalue;
fave[1] = foriginal_all[1]/ncount + yvalue;
fave[2] = foriginal_all[2]/ncount + zvalue;
// set force of all participating atoms to same value
// only for active dimensions
Cuda_FixAveForceCuda_PostForce_Set(&cuda->shared_data, groupbit,xflag,yflag,zflag,fave[0],fave[1],fave[2]);
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::post_force_respa(int vflag, int ilevel, int iloop)
{
// ave + extra force on outermost level
// just ave on inner levels
if (ilevel == nlevels_respa-1) post_force(vflag);
else {
cuda->cu_f->download();
cuda->cu_mask->download();
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double foriginal[4];
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
foriginal[3] += 1;
}
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
int ncount = static_cast<int> (foriginal_all[3]);
if (ncount == 0) return;
double fave[3];
fave[0] = foriginal_all[0]/ncount;
fave[1] = foriginal_all[1]/ncount;
fave[2] = foriginal_all[2]/ncount;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (xflag) f[i][0] = fave[0];
if (yflag) f[i][1] = fave[1];
if (zflag) f[i][2] = fave[2];
}
cuda->cu_f->upload();
}
}
/* ---------------------------------------------------------------------- */
void FixAveForceCuda::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixAveForceCuda::compute_vector(int n)
{
return foriginal_all[n];
}
diff --git a/src/USER-CUDA/fix_enforce2d_cuda.cpp b/src/USER-CUDA/fix_enforce2d_cuda.cpp
index 3ad0a0bbc..91a1661c0 100644
--- a/src/USER-CUDA/fix_enforce2d_cuda.cpp
+++ b/src/USER-CUDA/fix_enforce2d_cuda.cpp
@@ -1,169 +1,169 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <cstring>
#include "fix_enforce2d_cuda.h"
#include "fix_enforce2d_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "respa.h"
#include "error.h"
#include "cuda.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixEnforce2DCuda::FixEnforce2DCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg != 3) error->all("Illegal fix enforce2d command");
}
/* ---------------------------------------------------------------------- */
int FixEnforce2DCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::init()
{
if (domain->dimension == 3)
error->all("Cannot use fix enforce2d/cuda with 3d simulation");
if (atom->omega_flag)
error->warning("Enforce2d/cuda does not support omega_flag on gpu yet. Will be handled on cpu.");
if (atom->angmom_flag)
error->warning("Enforce2d/cuda does not support angmom_flag (angular momentum) on gpu yet. Will be handled on cpu.");
if (atom->torque_flag)
error->warning("Enforce2d/cuda does not support torque_flag on gpu yet. Will be handled on cpu.");
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixEnforce2dCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
cuda->cu_v->upload();
post_force(vflag);
cuda->cu_f->download();
cuda->cu_v->download();
}
else {
int nlevels_respa = ((Respa *) update->integrate)->nlevels;
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::post_force(int vflag)
{
Cuda_FixEnforce2dCuda_PostForce(&cuda->shared_data, groupbit);
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (atom->omega_flag) {
double **omega = atom->omega;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
omega[i][0] = 0.0;
omega[i][1] = 0.0;
}
}
if (atom->angmom_flag) {
double **angmom = atom->angmom;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
angmom[i][0] = 0.0;
angmom[i][1] = 0.0;
}
}
if (atom->torque_flag) {
double **torque = atom->torque;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
torque[i][0] = 0.0;
torque[i][1] = 0.0;
}
}
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::post_force_respa(int vflag, int ilevel, int iloop)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixEnforce2DCuda::min_post_force(int vflag)
{
post_force(vflag);
}
diff --git a/src/USER-CUDA/fix_freeze_cuda.cpp b/src/USER-CUDA/fix_freeze_cuda.cpp
index c9ff85e4e..d52642280 100644
--- a/src/USER-CUDA/fix_freeze_cuda.cpp
+++ b/src/USER-CUDA/fix_freeze_cuda.cpp
@@ -1,135 +1,135 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cstring>
#include <cstdlib>
#include "fix_freeze_cuda.h"
#include "fix_freeze_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "cuda.h"
#include "memory.h"
#include "modify.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixFreezeCuda::FixFreezeCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg != 3) error->all("Illegal fix freeze command");
if (!atom->torque_flag)
error->all("Fix freeze requires atom attribute torque");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
cu_foriginal=NULL;
}
/* ---------------------------------------------------------------------- */
int FixFreezeCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
mask |= THERMO_ENERGY_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixFreezeCuda::init()
{
if(not cu_foriginal)
cu_foriginal = new cCudaData<double, F_FLOAT, x> (foriginal,3);
int count = 0;
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"freeze") == 0) count++;
if (count > 1) error->all("More than one fix freeze");
}
/* ---------------------------------------------------------------------- */
void FixFreezeCuda::setup(int vflag)
{
MYDBG( printf("# CUDA: FixFreezeCuda::setup\n"); )
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixFreezeCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
post_force(vflag);
cuda->cu_f->download();
}
MYDBG( printf("# CUDA: FixFreezeCuda::setup done\n"); )
}
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
void FixFreezeCuda::post_force(int vflag)
{
MYDBG( printf("# CUDA: FixFreezeCuda::postforce start\n"); )
force_flag = 0;
cu_foriginal->memset_device(0);
Cuda_FixFreezeCuda_PostForce(&cuda->shared_data, groupbit, (F_FLOAT*) cu_foriginal->dev_data());
cu_foriginal->download();
}
/* ---------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixFreezeCuda::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n+1];
}
diff --git a/src/USER-CUDA/fix_gravity_cuda.cpp b/src/USER-CUDA/fix_gravity_cuda.cpp
index fbd902d17..0c69dffcc 100644
--- a/src/USER-CUDA/fix_gravity_cuda.cpp
+++ b/src/USER-CUDA/fix_gravity_cuda.cpp
@@ -1,181 +1,181 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include "fix_gravity_cuda.h"
#include "fix_gravity_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "respa.h"
#include "error.h"
#include "cuda.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
enum{CHUTE,SPHERICAL,GRADIENT,VECTOR};
/* ---------------------------------------------------------------------- */
FixGravityCuda::FixGravityCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg < 5) error->all("Illegal fix gravity command");
time_depend = 1;
magnitude = atof(arg[3]);
if (strcmp(arg[4],"chute") == 0) {
if (narg != 6) error->all("Illegal fix gravity command");
style = CHUTE;
phi = 0.0;
theta = 180.0 - atof(arg[5]);
} else if (strcmp(arg[4],"spherical") == 0) {
if (narg != 7) error->all("Illegal fix gravity command");
style = SPHERICAL;
phi = atof(arg[5]);
theta = atof(arg[6]);
} else if (strcmp(arg[4],"gradient") == 0) {
if (narg != 9) error->all("Illegal fix gravity command");
style = GRADIENT;
phi = atof(arg[5]);
theta = atof(arg[6]);
phigrad = atof(arg[7]);
thetagrad = atof(arg[8]);
} else if (strcmp(arg[4],"vector") == 0) {
if (narg != 8) error->all("Illegal fix gravity command");
style = VECTOR;
xdir = atof(arg[5]);
ydir = atof(arg[6]);
zdir = atof(arg[7]);
} else error->all("Illegal fix gravity command");
double PI = 4.0*atan(1.0);
degree2rad = PI/180.0;
if (style == CHUTE || style == SPHERICAL || style == GRADIENT) {
if (domain->dimension == 3) {
xgrav = sin(degree2rad * theta) * cos(degree2rad * phi);
ygrav = sin(degree2rad * theta) * sin(degree2rad * phi);
zgrav = cos(degree2rad * theta);
} else {
xgrav = sin(degree2rad * theta);
ygrav = cos(degree2rad * theta);
zgrav = 0.0;
}
} else if (style == VECTOR) {
if (domain->dimension == 3) {
double length = sqrt(xdir*xdir + ydir*ydir + zdir*zdir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = zdir/length;
} else {
double length = sqrt(xdir*xdir + ydir*ydir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = 0.0;
}
}
time_origin = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
int FixGravityCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixGravityCuda::init()
{
dt = update->dt;
xacc = magnitude*xgrav;
yacc = magnitude*ygrav;
zacc = magnitude*zgrav;
}
/* ---------------------------------------------------------------------- */
void FixGravityCuda::setup(int vflag)
{
MYDBG( printf("# CUDA: FixGravityCuda::setup\n"); )
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixGravityCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
post_force(vflag);
cuda->cu_f->download();
}
else {
}
MYDBG( printf("# CUDA: FixGravityCuda::setup done\n"); )
}
/* ---------------------------------------------------------------------- */
void FixGravityCuda::post_force(int vflag)
{
// update direction of gravity vector if gradient style
if (style == GRADIENT) {
if (domain->dimension == 3) {
double phi_current = degree2rad *
(phi + (update->ntimestep - time_origin)*dt*phigrad*360.0);
double theta_current = degree2rad *
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
xgrav = sin(theta_current) * cos(phi_current);
ygrav = sin(theta_current) * sin(phi_current);
zgrav = cos(theta_current);
} else {
double theta_current = degree2rad *
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
xgrav = sin(theta_current);
ygrav = cos(theta_current);
}
xacc = magnitude*xgrav;
yacc = magnitude*ygrav;
zacc = magnitude*zgrav;
}
MYDBG( printf("# CUDA: FixGravityCuda::postforce start\n"); )
Cuda_FixGravityCuda_PostForce(&cuda->shared_data, groupbit, xacc,yacc,zacc);
}
diff --git a/src/USER-CUDA/fix_nh_cuda.cpp b/src/USER-CUDA/fix_nh_cuda.cpp
index 4152e5624..45cfd2616 100644
--- a/src/USER-CUDA/fix_nh_cuda.cpp
+++ b/src/USER-CUDA/fix_nh_cuda.cpp
@@ -1,2077 +1,2077 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Mark Stevens (SNL), Aidan Thompson (SNL)
------------------------------------------------------------------------- */
#include <cstring>
#include <cstdlib>
#include <cmath>
#include "fix_nh_cuda.h"
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "modify.h"
#include "fix_deform.h"
#include "compute.h"
#include "kspace.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "memory.h"
#include "error.h"
#include "math_extra.h"
#include "cuda.h"
#include "fix_nh_cuda_cu.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
enum{NOBIAS,BIAS};
enum{NONE,XYZ,XY,YZ,XZ};
enum{ISO,ANISO,TRICLINIC};
/* ----------------------------------------------------------------------
NVT,NPH,NPT integrators for improved Nose-Hoover equations of motion
---------------------------------------------------------------------- */
FixNHCuda::FixNHCuda(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg < 4) error->all("Illegal fix nvt/npt/nph command");
restart_global = 1;
time_integrate = 1;
scalar_flag = 1;
vector_flag = 1;
global_freq = 1;
extscalar = 1;
extvector = 0;
// default values
pcouple = NONE;
drag = 0.0;
allremap = 1;
mtchain = mpchain = 3;
nc_tchain = nc_pchain = 1;
mtk_flag = 1;
deviatoric_flag = 0;
nreset_h0 = 0;
// Used by FixNVTSllod to preserve non-default value
mtchain_default_flag = 1;
tstat_flag = 0;
double t_period = 0.0;
double p_period[6];
for (int i = 0; i < 6; i++) {
p_start[i] = p_stop[i] = p_period[i] = 0.0;
p_flag[i] = 0;
}
// process keywords
dimension = domain->dimension;
int iarg = 3;
while (iarg < narg) {
if (strcmp(arg[iarg],"temp") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
tstat_flag = 1;
t_start = atof(arg[iarg+1]);
t_stop = atof(arg[iarg+2]);
t_period = atof(arg[iarg+3]);
if (t_start < 0.0 || t_stop <= 0.0)
error->all("Target T for fix nvt/npt/nph cannot be 0.0");
iarg += 4;
} else if (strcmp(arg[iarg],"iso") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = XYZ;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
}
iarg += 4;
} else if (strcmp(arg[iarg],"aniso") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = NONE;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
}
iarg += 4;
} else if (strcmp(arg[iarg],"tri") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = NONE;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
p_start[3] = p_start[4] = p_start[5] = 0.0;
p_stop[3] = p_stop[4] = p_stop[5] = 0.0;
p_period[3] = p_period[4] = p_period[5] = atof(arg[iarg+3]);
p_flag[3] = p_flag[4] = p_flag[5] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
p_start[3] = p_stop[3] = p_period[3] = 0.0;
p_flag[3] = 0;
p_start[4] = p_stop[4] = p_period[4] = 0.0;
p_flag[4] = 0;
}
iarg += 4;
} else if (strcmp(arg[iarg],"x") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[0] = atof(arg[iarg+1]);
p_stop[0] = atof(arg[iarg+2]);
p_period[0] = atof(arg[iarg+3]);
p_flag[0] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"y") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[1] = atof(arg[iarg+1]);
p_stop[1] = atof(arg[iarg+2]);
p_period[1] = atof(arg[iarg+3]);
p_flag[1] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"z") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[2] = atof(arg[iarg+1]);
p_stop[2] = atof(arg[iarg+2]);
p_period[2] = atof(arg[iarg+3]);
p_flag[2] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"yz") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[3] = atof(arg[iarg+1]);
p_stop[3] = atof(arg[iarg+2]);
p_period[3] = atof(arg[iarg+3]);
p_flag[3] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"xz") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[4] = atof(arg[iarg+1]);
p_stop[4] = atof(arg[iarg+2]);
p_period[4] = atof(arg[iarg+3]);
p_flag[4] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"xy") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[5] = atof(arg[iarg+1]);
p_stop[5] = atof(arg[iarg+2]);
p_period[5] = atof(arg[iarg+3]);
p_flag[5] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"couple") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"xyz") == 0) pcouple = XYZ;
else if (strcmp(arg[iarg+1],"xy") == 0) pcouple = XY;
else if (strcmp(arg[iarg+1],"yz") == 0) pcouple = YZ;
else if (strcmp(arg[iarg+1],"xz") == 0) pcouple = XZ;
else if (strcmp(arg[iarg+1],"none") == 0) pcouple = NONE;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"drag") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
drag = atof(arg[iarg+1]);
if (drag < 0.0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"dilate") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"all") == 0) allremap = 1;
else if (strcmp(arg[iarg+1],"partial") == 0) allremap = 0;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"tchain") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
mtchain = atoi(arg[iarg+1]);
if (mtchain < 1) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"pchain") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
mpchain = atoi(arg[iarg+1]);
if (mpchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"mtk") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"yes") == 0) mtk_flag = 1;
else if (strcmp(arg[iarg+1],"no") == 0) mtk_flag = 0;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"tloop") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nc_tchain = atoi(arg[iarg+1]);
if (nc_tchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"ploop") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nc_pchain = atoi(arg[iarg+1]);
if (nc_pchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"nreset") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nreset_h0 = atoi(arg[iarg+1]);
if (nreset_h0 < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else error->all("Illegal fix nvt/npt/nph command");
}
// error checks
if (dimension == 2 && (p_flag[2] || p_flag[3] || p_flag[4]))
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
if (dimension == 2 && (pcouple == YZ || pcouple == XZ))
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
if (pcouple == XYZ && (p_flag[0] == 0 || p_flag[1] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XYZ && dimension == 3 && p_flag[2] == 0)
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XY && (p_flag[0] == 0 || p_flag[1] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == YZ && (p_flag[1] == 0 || p_flag[2] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XZ && (p_flag[0] == 0 || p_flag[2] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (p_flag[0] && domain->xperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[1] && domain->yperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[2] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[3] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
if (p_flag[4] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
if (p_flag[5] && domain->yperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
if (!domain->triclinic && (p_flag[3] || p_flag[4] || p_flag[5]))
error->all("Can not specify Pxy/Pxz/Pyz in "
"fix nvt/npt/nph with non-triclinic box");
if (pcouple == XYZ && dimension == 3 &&
(p_start[0] != p_start[1] || p_start[0] != p_start[2] ||
p_stop[0] != p_stop[1] || p_stop[0] != p_stop[2] ||
p_period[0] != p_period[1] || p_period[0] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XYZ && dimension == 2 &&
(p_start[0] != p_start[1] || p_stop[0] != p_stop[1] ||
p_period[0] != p_period[1]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XY &&
(p_start[0] != p_start[1] || p_stop[0] != p_stop[1] ||
p_period[0] != p_period[1]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == YZ &&
(p_start[1] != p_start[2] || p_stop[1] != p_stop[2] ||
p_period[1] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XZ &&
(p_start[0] != p_start[2] || p_stop[0] != p_stop[2] ||
p_period[0] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if ((tstat_flag && t_period <= 0.0) ||
(p_flag[0] && p_period[0] <= 0.0) ||
(p_flag[1] && p_period[1] <= 0.0) ||
(p_flag[2] && p_period[2] <= 0.0) ||
(p_flag[3] && p_period[3] <= 0.0) ||
(p_flag[4] && p_period[4] <= 0.0) ||
(p_flag[5] && p_period[5] <= 0.0))
error->all("Fix nvt/npt/nph damping parameters must be > 0.0");
// set pstat_flag and box change variables
pstat_flag = 0;
for (int i = 0; i < 6; i++)
if (p_flag[i]) pstat_flag = 1;
if (pstat_flag) {
box_change = 1;
if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1;
if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1;
no_change_box = 1;
if (allremap == 0) restart_pbc = 1;
}
// pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof
// else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof
// else pstyle = ANISO -> 3 dof
if (p_flag[3] || p_flag[4] || p_flag[5]) pstyle = TRICLINIC;
else if (pcouple == XYZ || (dimension == 2 && pcouple == XY)) pstyle = ISO;
else pstyle = ANISO;
// convert input periods to frequencies
t_freq = 0.0;
p_freq[0] = p_freq[1] = p_freq[2] = p_freq[3] = p_freq[4] = p_freq[5] = 0.0;
if (tstat_flag) t_freq = 1.0 / t_period;
if (p_flag[0]) p_freq[0] = 1.0 / p_period[0];
if (p_flag[1]) p_freq[1] = 1.0 / p_period[1];
if (p_flag[2]) p_freq[2] = 1.0 / p_period[2];
if (p_flag[3]) p_freq[3] = 1.0 / p_period[3];
if (p_flag[4]) p_freq[4] = 1.0 / p_period[4];
if (p_flag[5]) p_freq[5] = 1.0 / p_period[5];
// Nose/Hoover temp and pressure init
size_vector = 0;
if (tstat_flag) {
int ich;
eta = new double[mtchain];
// add one extra dummy thermostat, set to zero
eta_dot = new double[mtchain+1];
eta_dot[mtchain] = 0.0;
eta_dotdot = new double[mtchain];
for (ich = 0; ich < mtchain; ich++) {
eta[ich] = eta_dot[ich] = eta_dotdot[ich] = 0.0;
}
eta_mass = new double[mtchain];
size_vector += 2*2*mtchain;
}
if (pstat_flag) {
omega[0] = omega[1] = omega[2] = 0.0;
omega_dot[0] = omega_dot[1] = omega_dot[2] = 0.0;
omega_mass[0] = omega_mass[1] = omega_mass[2] = 0.0;
omega[3] = omega[4] = omega[5] = 0.0;
omega_dot[3] = omega_dot[4] = omega_dot[5] = 0.0;
omega_mass[3] = omega_mass[4] = omega_mass[5] = 0.0;
if (pstyle == ISO) size_vector += 2*2*1;
else if (pstyle == ANISO) size_vector += 2*2*3;
else if (pstyle == TRICLINIC) size_vector += 2*2*6;
if (mpchain) {
int ich;
etap = new double[mpchain];
// add one extra dummy thermostat, set to zero
etap_dot = new double[mpchain+1];
etap_dot[mpchain] = 0.0;
etap_dotdot = new double[mpchain];
for (ich = 0; ich < mpchain; ich++) {
etap[ich] = etap_dot[ich] =
etap_dotdot[ich] = 0.0;
}
etap_mass = new double[mpchain];
size_vector += 2*2*mpchain;
}
if (deviatoric_flag) size_vector += 1;
}
nrigid = 0;
rfix = NULL;
// initialize vol0,t0 to zero to signal uninitialized
// values then assigned in init(), if necessary
vol0 = t0 = 0.0;
}
/* ---------------------------------------------------------------------- */
FixNHCuda::~FixNHCuda()
{
delete [] rfix;
// delete temperature and pressure if fix created them
if (tflag) modify->delete_compute(id_temp);
delete [] id_temp;
if (tstat_flag) {
delete [] eta;
delete [] eta_dot;
delete [] eta_dotdot;
delete [] eta_mass;
}
if (pstat_flag) {
if (pflag) modify->delete_compute(id_press);
delete [] id_press;
if (mpchain) {
delete [] etap;
delete [] etap_dot;
delete [] etap_dotdot;
delete [] etap_mass;
}
}
}
/* ---------------------------------------------------------------------- */
int FixNHCuda::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE_CUDA;
mask |= FINAL_INTEGRATE_CUDA;
mask |= THERMO_ENERGY_CUDA;
//mask |= INITIAL_INTEGRATE_RESPA;
//mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::init()
{
// insure no conflict with fix deform
if (pstat_flag)
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"deform") == 0) {
int *dimflag = ((FixDeform *) modify->fix[i])->dimflag;
if ((p_flag[0] && dimflag[0]) || (p_flag[1] && dimflag[1]) ||
(p_flag[2] && dimflag[2]) || (p_flag[3] && dimflag[3]) ||
(p_flag[4] && dimflag[4]) || (p_flag[5] && dimflag[5]))
error->all("Cannot use fix npt and fix deform on "
"same component of stress tensor");
}
// set temperature and pressure ptrs
int icompute = modify->find_compute(id_temp);
if (icompute < 0)
error->all("Temperature ID for fix nvt/nph/npt does not exist");
temperature = modify->compute[icompute];
if (temperature->tempbias) which = BIAS;
else which = NOBIAS;
if (pstat_flag) {
icompute = modify->find_compute(id_press);
if (icompute < 0) error->all("Pressure ID for fix npt/nph does not exist");
pressure = modify->compute[icompute];
}
// set timesteps and frequencies
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
dt4 = 0.25 * update->dt;
dt8 = 0.125 * update->dt;
dto = dthalf;
p_freq_max = 0.0;
if (pstat_flag) {
p_freq_max = MAX(p_freq[0],p_freq[1]);
p_freq_max = MAX(p_freq_max,p_freq[2]);
if (pstyle == TRICLINIC) {
p_freq_max = MAX(p_freq_max,p_freq[3]);
p_freq_max = MAX(p_freq_max,p_freq[4]);
p_freq_max = MAX(p_freq_max,p_freq[5]);
}
pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain);
}
if (tstat_flag)
tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain);
// tally the number of dimensions that are barostatted
// also compute the initial volume and reference cell
// set initial volume and reference cell, if not already done
if (pstat_flag) {
pdim = p_flag[0] + p_flag[1] + p_flag[2];
if (vol0 == 0.0) {
if (dimension == 3) vol0 = domain->xprd * domain->yprd * domain->zprd;
else vol0 = domain->xprd * domain->yprd;
h0_inv[0] = domain->h_inv[0];
h0_inv[1] = domain->h_inv[1];
h0_inv[2] = domain->h_inv[2];
h0_inv[3] = domain->h_inv[3];
h0_inv[4] = domain->h_inv[4];
h0_inv[5] = domain->h_inv[5];
}
}
boltz = force->boltz;
nktv2p = force->nktv2p;
if (force->kspace) kspace_flag = 1;
else kspace_flag = 0;
- if (strcmp(update->integrate_style,"respa") == 0) {
+ if (strstr(update->integrate_style,"respa")) {
nlevels_respa = ((Respa *) update->integrate)->nlevels;
step_respa = ((Respa *) update->integrate)->step;
dto = 0.5*step_respa[0];
}
// detect if any rigid fixes exist so rigid bodies move when box is remapped
// rfix[] = indices to each fix rigid
delete [] rfix;
nrigid = 0;
rfix = NULL;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) nrigid++;
if (nrigid) {
rfix = new int[nrigid];
nrigid = 0;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) rfix[nrigid++] = i;
}
triggerneighsq= cuda->shared_data.atom.triggerneighsq;
cuda->neighbor_decide_by_integrator=1;
Cuda_FixNHCuda_Init(&cuda->shared_data,dtv,dtf);
}
/* ----------------------------------------------------------------------
compute T,P before integrator starts
------------------------------------------------------------------------- */
void FixNHCuda::setup(int vflag)
{
// initialize some quantities that were not available earlier
//if (mtk_flag) mtk_factor = 1.0 + 1.0/atom->natoms;
//else mtk_factor = 1.0;
tdof = temperature->dof;
// t_target is used by compute_scalar(), even for NPH
if (tstat_flag) t_target = t_start;
else if (pstat_flag) {
// t0 = initial value for piston mass and energy conservation
// cannot be done in init() b/c temperature cannot be called there
// is b/c Modify::init() inits computes after fixes due to dof dependence
// guesstimate a unit-dependent t0 if actual T = 0.0
// if it was read in from a restart file, leave it be
if (t0 == 0.0) {
t0 = temperature->compute_scalar();
if (t0 == 0.0) {
if (strcmp(update->unit_style,"lj") == 0) t0 = 1.0;
else t0 = 300.0;
}
}
t_target = t0;
}
if (pstat_flag) compute_press_target();
t_current = temperature->compute_scalar();
if (pstat_flag) {
if (pstyle == ISO) double tmp = pressure->compute_scalar();
else pressure->compute_vector();
couple();
pressure->addstep(update->ntimestep+1);
}
// initial forces on thermostat variables
if (tstat_flag) {
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++) {
eta_dotdot[ich] = (eta_mass[ich-1]*eta_dot[ich-1]*eta_dot[ich-1] -
boltz*t_target) / eta_mass[ich];
}
}
if (pstat_flag) {
double kt = boltz * t_target;
double nkt = atom->natoms * kt;
for (int i = 0; i < 3; i++)
if (p_flag[i])
omega_mass[i] = nkt/(p_freq[i]*p_freq[i]);
if (pstyle == TRICLINIC) {
for (int i = 3; i < 6; i++)
if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]);
}
// initial forces on barostat thermostat variables
if (mpchain) {
etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max);
for (int ich = 1; ich < mpchain; ich++)
etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max);
for (int ich = 1; ich < mpchain; ich++)
etap_dotdot[ich] =
(etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] -
boltz*t_target) / etap_mass[ich];
}
// compute appropriately coupled elements of mvv_current
//if (mtk_flag) couple_ke();
}
}
/* ----------------------------------------------------------------------
1st half of Verlet update
------------------------------------------------------------------------- */
void FixNHCuda::initial_integrate(int vflag)
{
if(!temperature->cudable) cuda->downloadAll();
if(triggerneighsq!=cuda->shared_data.atom.triggerneighsq)
{
triggerneighsq= cuda->shared_data.atom.triggerneighsq;
Cuda_FixNHCuda_Init(&cuda->shared_data,dtv,dtf);
}
// update eta_press_dot
if (pstat_flag && mpchain) nhc_press_integrate();
// update eta_dot
if (tstat_flag) {
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
t_target = t_start + delta * (t_stop-t_start);
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
nhc_temp_integrate();
}
// need to recompute pressure to account for change in KE
// t_current is up-to-date, but compute_temperature is not
// compute appropriately coupled elements of mvv_current
if (pstat_flag) {
if (pstyle == ISO) {
temperature->compute_scalar();
double tmp = pressure->compute_scalar();
} else {
temperature->compute_vector();
pressure->compute_vector();
}
couple();
pressure->addstep(update->ntimestep+1);
//if (mtk_flag) couple_ke();
}
if(which==NOBIAS)
{
if (pstat_flag) {
compute_press_target();
nh_omega_dot();
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
Cuda_FixNHCuda_nh_v_press_and_nve_v_NoBias(&cuda->shared_data, groupbit, factor,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal,(pstyle == TRICLINIC)?1:0);
}
else
Cuda_FixNHCuda_nve_v(&cuda->shared_data,groupbit,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
}
else if(which==BIAS)
{
if(pstat_flag)
{
compute_press_target();
nh_omega_dot();
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
if(!temperature->cudable)
{
nh_v_press();
cuda->cu_v->upload();
}
else
{
int groupbit_org=temperature->groupbit;
temperature->groupbit=groupbit;
temperature->remove_bias_all();
Cuda_FixNHCuda_nh_v_press(&cuda->shared_data, groupbit, factor,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal,(pstyle == TRICLINIC)?1:0);
temperature->restore_bias_all();
temperature->groupbit=groupbit_org;
}
}
Cuda_FixNHCuda_nve_v(&cuda->shared_data,groupbit,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
}
// remap simulation box by 1/2 step
if (pstat_flag) remap();
Cuda_FixNHCuda_nve_x(&cuda->shared_data,groupbit,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
// remap simulation box by 1/2 step
// redo KSpace coeffs since volume has changed
if (pstat_flag) {
remap();
if (kspace_flag) force->kspace->setup();
}
}
/* ----------------------------------------------------------------------
2nd half of Verlet update
------------------------------------------------------------------------- */
void FixNHCuda::final_integrate()
{
if(!temperature->cudable) cuda->downloadAll();
if(which==NOBIAS)
{
if(pstat_flag)
{
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
Cuda_FixNHCuda_nve_v_and_nh_v_press_NoBias(&cuda->shared_data, groupbit, factor,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal,(pstyle == TRICLINIC)?1:0);
}
else
Cuda_FixNHCuda_nve_v(&cuda->shared_data,groupbit,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
}
else if(which==BIAS)
{
Cuda_FixNHCuda_nve_v(&cuda->shared_data,groupbit,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
if(pstat_flag)
{
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
if(!temperature->cudable)
{
cuda->cu_v->download();
nh_v_press();
cuda->cu_v->upload();
}
else
{
int groupbit_org=temperature->groupbit;
temperature->groupbit=groupbit;
temperature->remove_bias_all();
Cuda_FixNHCuda_nh_v_press(&cuda->shared_data, groupbit, factor,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal,(pstyle == TRICLINIC)?1:0);
temperature->restore_bias_all();
temperature->groupbit=groupbit_org;
}
}
}
// compute new T,P
// compute appropriately coupled elements of mvv_current
if(!temperature->cudable) cuda->cu_v->download();
t_current = temperature->compute_scalar();
if (pstat_flag) {
if (pstyle == ISO) double tmp = pressure->compute_scalar();
else pressure->compute_vector();
couple();
pressure->addstep(update->ntimestep+1);
}
if (pstat_flag) nh_omega_dot();
// update eta_dot
// update eta_press_dot
if (tstat_flag) nhc_temp_integrate();
if (pstat_flag && mpchain) nhc_press_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
int i;
// set timesteps by level
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dthalf = 0.5 * step_respa[ilevel];
// outermost level - update eta_dot and omega_dot, apply to v, remap box
// all other levels - NVE update of v
// x,v updates only performed for atoms in group
if (ilevel == nlevels_respa-1) {
// update eta_press_dot
if (pstat_flag && mpchain) nhc_press_integrate();
// update eta_dot
if (tstat_flag) {
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
t_target = t_start + delta * (t_stop-t_start);
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
nhc_temp_integrate();
}
// recompute pressure to account for change in KE
// t_current is up-to-date, but compute_temperature is not
// compute appropriately coupled elements of mvv_current
if (pstat_flag) {
if (pstyle == ISO) {
temperature->compute_scalar();
double tmp = pressure->compute_scalar();
} else {
temperature->compute_vector();
pressure->compute_vector();
}
couple();
pressure->addstep(update->ntimestep+1);
if (mtk_flag) couple_ke();
}
if (pstat_flag) {
compute_press_target();
nh_omega_dot();
nh_v_press();
}
nve_v();
} else nve_v();
// innermost level - also update x only for atoms in group
// if barostat, perform 1/2 step remap before and after
if (ilevel == 0) {
if (pstat_flag) remap();
nve_x();
if (pstat_flag) remap();
}
// if barostat, redo KSpace coeffs at outermost level,
// since volume has changed
if (ilevel == nlevels_respa-1 && kspace_flag && pstat_flag)
force->kspace->setup();
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::final_integrate_respa(int ilevel, int iloop)
{
// set timesteps by level
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dthalf = 0.5 * step_respa[ilevel];
// outermost level - update eta_dot and omega_dot, apply via final_integrate
// all other levels - NVE update of v
if (ilevel == nlevels_respa-1) final_integrate();
else nve_v();
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::couple()
{
double *tensor = pressure->vector;
if (pstyle == ISO)
p_current[0] = p_current[1] = p_current[2] = pressure->scalar;
else if (pcouple == XYZ) {
double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]);
p_current[0] = p_current[1] = p_current[2] = ave;
} else if (pcouple == XY) {
double ave = 0.5 * (tensor[0] + tensor[1]);
p_current[0] = p_current[1] = ave;
p_current[2] = tensor[2];
} else if (pcouple == YZ) {
double ave = 0.5 * (tensor[1] + tensor[2]);
p_current[1] = p_current[2] = ave;
p_current[0] = tensor[0];
} else if (pcouple == XZ) {
double ave = 0.5 * (tensor[0] + tensor[2]);
p_current[0] = p_current[2] = ave;
p_current[1] = tensor[1];
} else {
p_current[0] = tensor[0];
p_current[1] = tensor[1];
p_current[2] = tensor[2];
}
// switch order from xy-xz-yz to Voigt
if (pstyle == TRICLINIC) {
p_current[3] = tensor[5];
p_current[4] = tensor[4];
p_current[5] = tensor[3];
}
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::couple_ke()
{
double *tensor = temperature->vector;
if (pstyle == ISO)
mvv_current[0] = mvv_current[1] = mvv_current[2] =
tdof * boltz * t_current/dimension;
else if (pcouple == XYZ) {
double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]);
mvv_current[0] = mvv_current[1] = mvv_current[2] = ave;
} else if (pcouple == XY) {
double ave = 0.5 * (tensor[0] + tensor[1]);
mvv_current[0] = mvv_current[1] = ave;
mvv_current[2] = tensor[2];
} else if (pcouple == YZ) {
double ave = 0.5 * (tensor[1] + tensor[2]);
mvv_current[1] = mvv_current[2] = ave;
mvv_current[0] = tensor[0];
} else if (pcouple == XZ) {
double ave = 0.5 * (tensor[0] + tensor[2]);
mvv_current[0] = mvv_current[2] = ave;
mvv_current[1] = tensor[1];
} else {
mvv_current[0] = tensor[0];
mvv_current[1] = tensor[1];
mvv_current[2] = tensor[2];
}
}
/* ----------------------------------------------------------------------
change box size
remap all atoms or fix group atoms depending on allremap flag
if rigid bodies exist, scale rigid body centers-of-mass
------------------------------------------------------------------------- */
void FixNHCuda::remap()
{
int i;
double oldlo,oldhi,ctr;
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *h = domain->h;
// omega is not used, except for book-keeping
for (int i = 0; i < 6; i++) omega[i] += dto*omega_dot[i];
// convert pertinent atoms and rigid bodies to lamda coords
if (allremap) domain->x2lamda(nlocal);
else {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->x2lamda(x[i],x[i]);
}
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(0);
// reset global and local box to new size/shape
// This operation corresponds to applying the
// translate and scale operations
// corresponding to the solution of the following ODE:
//
// h_dot = omega_dot * h
//
// where h_dot, omega_dot and h are all upper-triangular
// 3x3 tensors. In Voigt notation, the elements of the
// RHS product tensor are:
// h_dot = [0*0, 1*1, 2*2, 1*3+3*2, 0*4+5*3+4*2, 0*5+5*1]
//
// Ordering of operations preserves time symmetry.
double dto2 = dto/2.0;
double dto4 = dto/4.0;
double dto8 = dto/8.0;
if (pstyle == TRICLINIC) {
h[4] *= exp(dto8*omega_dot[0]);
h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
h[4] *= exp(dto8*omega_dot[0]);
h[3] *= exp(dto4*omega_dot[1]);
h[3] += dto2*(omega_dot[3]*h[2]);
h[3] *= exp(dto4*omega_dot[1]);
h[5] *= exp(dto4*omega_dot[0]);
h[5] += dto2*(omega_dot[5]*h[1]);
h[5] *= exp(dto4*omega_dot[0]);
h[4] *= exp(dto8*omega_dot[0]);
h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
h[4] *= exp(dto8*omega_dot[0]);
}
for (i = 0; i < 3; i++) {
if (p_flag[i]) {
oldlo = domain->boxlo[i];
oldhi = domain->boxhi[i];
ctr = 0.5 * (oldlo + oldhi);
domain->boxlo[i] = (oldlo-ctr)*exp(dto*omega_dot[i]) + ctr;
domain->boxhi[i] = (oldhi-ctr)*exp(dto*omega_dot[i]) + ctr;
}
}
if (pstyle == TRICLINIC) {
h[4] *= exp(dto8*omega_dot[0]);
h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
h[4] *= exp(dto8*omega_dot[0]);
h[3] *= exp(dto4*omega_dot[1]);
h[3] += dto2*(omega_dot[3]*h[2]);
h[3] *= exp(dto4*omega_dot[1]);
h[5] *= exp(dto4*omega_dot[0]);
h[5] += dto2*(omega_dot[5]*h[1]);
h[5] *= exp(dto4*omega_dot[0]);
h[4] *= exp(dto8*omega_dot[0]);
h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
h[4] *= exp(dto8*omega_dot[0]);
domain->yz = h[3];
domain->xz = h[4];
domain->xy = h[5];
if (domain->yz < -0.5*domain->yprd || domain->yz > 0.5*domain->yprd ||
domain->xz < -0.5*domain->xprd || domain->xz > 0.5*domain->xprd ||
domain->xy < -0.5*domain->xprd || domain->xy > 0.5*domain->xprd)
error->all("Fix npt/nph has tilted box too far - "
"box flips are not yet implemented");
}
domain->set_global_box();
domain->set_local_box();
// convert pertinent atoms and rigid bodies back to box coords
if (allremap) domain->lamda2x(nlocal);
else {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->lamda2x(x[i],x[i]);
}
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(1);
}
/* ----------------------------------------------------------------------
pack entire state of Fix into one write
------------------------------------------------------------------------- */
void FixNHCuda::write_restart(FILE *fp)
{
int nsize = 2;
if (tstat_flag) nsize += 1 + 2*mtchain;
if (pstat_flag) {
nsize += 16 + 2*mpchain;
if (deviatoric_flag) nsize += 6;
}
double* list = (double *) memory->smalloc(nsize*sizeof(double),"nh:list");
int n = 0;
list[n++] = tstat_flag;
if (tstat_flag) {
list[n++] = mtchain;
for (int ich = 0; ich < mtchain; ich++)
list[n++] = eta[ich];
for (int ich = 0; ich < mtchain; ich++)
list[n++] = eta_dot[ich];
}
list[n++] = pstat_flag;
if (pstat_flag) {
list[n++] = omega[0];
list[n++] = omega[1];
list[n++] = omega[2];
list[n++] = omega[3];
list[n++] = omega[4];
list[n++] = omega[5];
list[n++] = omega_dot[0];
list[n++] = omega_dot[1];
list[n++] = omega_dot[2];
list[n++] = omega_dot[3];
list[n++] = omega_dot[4];
list[n++] = omega_dot[5];
list[n++] = vol0;
list[n++] = t0;
list[n++] = mpchain;
if (mpchain) {
for (int ich = 0; ich < mpchain; ich++)
list[n++] = etap[ich];
for (int ich = 0; ich < mpchain; ich++)
list[n++] = etap_dot[ich];
}
list[n++] = deviatoric_flag;
if (deviatoric_flag) {
list[n++] = h0_inv[0];
list[n++] = h0_inv[1];
list[n++] = h0_inv[2];
list[n++] = h0_inv[3];
list[n++] = h0_inv[4];
list[n++] = h0_inv[5];
}
}
if (comm->me == 0) {
int size = nsize * sizeof(double);
fwrite(&size,sizeof(int),1,fp);
fwrite(list,sizeof(double),nsize,fp);
}
memory->sfree(list);
}
/* ----------------------------------------------------------------------
use state info from restart file to restart the Fix
------------------------------------------------------------------------- */
void FixNHCuda::restart(char *buf)
{
int n = 0;
double *list = (double *) buf;
int flag = static_cast<int> (list[n++]);
if (flag) {
int m = static_cast<int> (list[n++]);
if (tstat_flag && m == mtchain) {
for (int ich = 0; ich < mtchain; ich++)
eta[ich] = list[n++];
for (int ich = 0; ich < mtchain; ich++)
eta_dot[ich] = list[n++];
} else n += 2*m;
}
flag = static_cast<int> (list[n++]);
if (flag) {
omega[0] = list[n++];
omega[1] = list[n++];
omega[2] = list[n++];
omega[3] = list[n++];
omega[4] = list[n++];
omega[5] = list[n++];
omega_dot[0] = list[n++];
omega_dot[1] = list[n++];
omega_dot[2] = list[n++];
omega_dot[3] = list[n++];
omega_dot[4] = list[n++];
omega_dot[5] = list[n++];
vol0 = list[n++];
t0 = list[n++];
int m = static_cast<int> (list[n++]);
if (pstat_flag && m == mpchain) {
for (int ich = 0; ich < mpchain; ich++)
etap[ich] = list[n++];
for (int ich = 0; ich < mpchain; ich++)
etap_dot[ich] = list[n++];
} else n+=2*m;
flag = static_cast<int> (list[n++]);
if (flag) {
h0_inv[0] = list[n++];
h0_inv[1] = list[n++];
h0_inv[2] = list[n++];
h0_inv[3] = list[n++];
h0_inv[4] = list[n++];
h0_inv[5] = list[n++];
}
}
}
/* ---------------------------------------------------------------------- */
int FixNHCuda::modify_param(int narg, char **arg)
{
if (strcmp(arg[0],"temp") == 0) {
if (narg < 2) error->all("Illegal fix_modify command");
if (tflag) {
modify->delete_compute(id_temp);
tflag = 0;
}
delete [] id_temp;
int n = strlen(arg[1]) + 1;
id_temp = new char[n];
strcpy(id_temp,arg[1]);
int icompute = modify->find_compute(arg[1]);
if (icompute < 0) error->all("Could not find fix_modify temperature ID");
temperature = modify->compute[icompute];
if (temperature->tempflag == 0)
error->all("Fix_modify temperature ID does not compute temperature");
if (temperature->igroup != 0 && comm->me == 0)
error->warning("Temperature for fix modify is not for group all");
// reset id_temp of pressure to new temperature ID
if (pstat_flag) {
icompute = modify->find_compute(id_press);
if (icompute < 0)
error->all("Pressure ID for fix modify does not exist");
modify->compute[icompute]->reset_extra_compute_fix(id_temp);
}
return 2;
} else if (strcmp(arg[0],"press") == 0) {
if (narg < 2) error->all("Illegal fix_modify command");
if (!pstat_flag) error->all("Illegal fix_modify command");
if (pflag) {
modify->delete_compute(id_press);
pflag = 0;
}
delete [] id_press;
int n = strlen(arg[1]) + 1;
id_press = new char[n];
strcpy(id_press,arg[1]);
int icompute = modify->find_compute(arg[1]);
if (icompute < 0) error->all("Could not find fix_modify pressure ID");
pressure = modify->compute[icompute];
if (pressure->pressflag == 0)
error->all("Fix_modify pressure ID does not compute pressure");
return 2;
}
return 0;
}
/* ---------------------------------------------------------------------- */
double FixNHCuda::compute_scalar()
{
int i;
double volume;
double energy;
double kt = boltz * t_target;
double lkt = tdof * kt;
double lkt_press = kt;
int ich;
if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd;
else volume = domain->xprd * domain->yprd;
energy = 0.0;
// thermostat chain energy is equivalent to Eq. (2) in
// Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117
// Sum(0.5*p_eta_k^2/Q_k,k=1,M) + L*k*T*eta_1 + Sum(k*T*eta_k,k=2,M),
// where L = tdof
// M = mtchain
// p_eta_k = Q_k*eta_dot[k-1]
// Q_1 = L*k*T/t_freq^2
// Q_k = k*T/t_freq^2, k > 1
if (tstat_flag) {
energy += lkt * eta[0] + 0.5*eta_mass[0]*eta_dot[0]*eta_dot[0];
for (ich = 1; ich < mtchain; ich++)
energy += kt * eta[ich] + 0.5*eta_mass[ich]*eta_dot[ich]*eta_dot[ich];
}
// barostat energy is equivalent to Eq. (8) in
// Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117
// Sum(0.5*p_omega^2/W + P*V),
// where N = natoms
// p_omega = W*omega_dot
// W = N*k*T/p_freq^2
// sum is over barostatted dimensions
if (pstat_flag) {
for (i = 0; i < 3; i++)
if (p_flag[i])
energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] +
p_hydro*(volume-vol0) / (pdim*nktv2p);
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i])
energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i];
}
// extra contributions from thermostat chain for barostat
if (mpchain) {
energy += lkt_press * etap[0] + 0.5*etap_mass[0]*etap_dot[0]*etap_dot[0];
for (ich = 1; ich < mpchain; ich++)
energy += kt * etap[ich] +
0.5*etap_mass[ich]*etap_dot[ich]*etap_dot[ich];
}
// extra contribution from strain energy
if (deviatoric_flag) energy += compute_strain_energy();
}
return energy;
}
/* ----------------------------------------------------------------------
return a single element of the following vectors, in this order:
eta[tchain], eta_dot[tchain], omega[ndof], omega_dot[ndof]
etap[pchain], etap_dot[pchain], PE_eta[tchain], KE_eta_dot[tchain]
PE_omega[ndof], KE_omega_dot[ndof], PE_etap[pchain], KE_etap_dot[pchain]
PE_strain[1]
if no thermostat exists, related quantities are omitted from the list
if no barostat exists, related quantities are omitted from the list
ndof = 1,3,6 degrees of freedom for pstyle = ISO,ANISO,TRI
------------------------------------------------------------------------- */
double FixNHCuda::compute_vector(int n)
{
int ilen;
if (tstat_flag) {
ilen = mtchain;
if (n < ilen) return eta[n];
n -= ilen;
ilen = mtchain;
if (n < ilen) return eta_dot[n];
n -= ilen;
}
if (pstat_flag) {
if (pstyle == ISO) {
ilen = 1;
if (n < ilen) return omega[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen) return omega[n];
n -= ilen;
} else {
ilen = 6;
if (n < ilen) return omega[n];
n -= ilen;
}
if (pstyle == ISO) {
ilen = 1;
if (n < ilen) return omega_dot[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen) return omega_dot[n];
n -= ilen;
} else {
ilen = 6;
if (n < ilen) return omega_dot[n];
n -= ilen;
}
if (mpchain) {
ilen = mpchain;
if (n < ilen) return etap[n];
n -= ilen;
ilen = mpchain;
if (n < ilen) return etap_dot[n];
n -= ilen;
}
}
int i;
double volume;
double kt = boltz * t_target;
double lkt = tdof * kt;
double lkt_press = kt;
int ich;
if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd;
else volume = domain->xprd * domain->yprd;
if (tstat_flag) {
ilen = mtchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return lkt * eta[0];
else
return kt * eta[ich];
}
n -= ilen;
ilen = mtchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return 0.5*eta_mass[0]*eta_dot[0]*eta_dot[0];
else
return 0.5*eta_mass[ich]*eta_dot[ich]*eta_dot[ich];
}
n -= ilen;
}
if (pstat_flag) {
if (pstyle == ISO) {
ilen = 1;
if (n < ilen)
return p_hydro*(volume-vol0) / nktv2p;
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen)
if (p_flag[n])
return p_hydro*(volume-vol0) / (pdim*nktv2p);
else
return 0.0;
n -= ilen;
} else {
ilen = 6;
if (n < ilen)
if (n > 2) return 0.0;
else if (p_flag[n])
return p_hydro*(volume-vol0) / (pdim*nktv2p);
else
return 0.0;
n -= ilen;
}
if (pstyle == ISO) {
ilen = 1;
if (n < ilen)
return pdim*0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen)
if (p_flag[n])
return 0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
else return 0.0;
n -= ilen;
} else {
ilen = 6;
if (n < ilen)
if (p_flag[n])
return 0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
else return 0.0;
n -= ilen;
}
if (mpchain) {
ilen = mpchain;
if (n < ilen) {
ich = n;
if (ich == 0) return lkt_press * etap[0];
else return kt * etap[ich];
}
n -= ilen;
ilen = mpchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return 0.5*etap_mass[0]*etap_dot[0]*etap_dot[0];
else
return 0.5*etap_mass[ich]*etap_dot[ich]*etap_dot[ich];
}
n -= ilen;
}
if (deviatoric_flag) {
ilen = 1;
if (n < ilen)
return compute_strain_energy();
n -= ilen;
}
}
return 0.0;
}
/* ---------------------------------------------------------------------- */
void FixNHCuda::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
dt4 = 0.25 * update->dt;
dt8 = 0.125 * update->dt;
dto = dthalf;
// If using respa, then remap is performed in innermost level
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
dto = 0.5*step_respa[0];
p_freq_max = 0.0;
if (pstat_flag) {
p_freq_max = MAX(p_freq[0],p_freq[1]);
p_freq_max = MAX(p_freq_max,p_freq[2]);
if (pstyle == TRICLINIC) {
p_freq_max = MAX(p_freq_max,p_freq[3]);
p_freq_max = MAX(p_freq_max,p_freq[4]);
p_freq_max = MAX(p_freq_max,p_freq[5]);
}
pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain);
}
if (tstat_flag)
tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain);
}
/* ----------------------------------------------------------------------
perform half-step update of chain thermostat variables
------------------------------------------------------------------------- */
void FixNHCuda::nhc_temp_integrate()
{
int ich;
double expfac;
double lkt = tdof * boltz * t_target;
double kecurrent = tdof * boltz * t_current;
eta_dotdot[0] = (kecurrent - lkt)/eta_mass[0];
double ncfac = 1.0/nc_tchain;
for (int iloop = 0; iloop < nc_tchain; iloop++) {
for (ich = mtchain-1; ich > 0; ich--) {
expfac = exp(-ncfac*dt8*eta_dot[ich+1]);
eta_dot[ich] *= expfac;
eta_dot[ich] += eta_dotdot[ich] * ncfac*dt4;
eta_dot[ich] *= tdrag_factor;
eta_dot[ich] *= expfac;
}
expfac = exp(-ncfac*dt8*eta_dot[1]);
eta_dot[0] *= expfac;
eta_dot[0] += eta_dotdot[0] * ncfac*dt4;
eta_dot[0] *= tdrag_factor;
eta_dot[0] *= expfac;
factor_eta = exp(-ncfac*dthalf*eta_dot[0]);
if(which==NOBIAS)
Cuda_FixNHCuda_nh_v_temp(&cuda->shared_data,groupbit,factor_eta,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
else if(which==BIAS)
{
if(!temperature->cudable)
{
cuda->downloadAll();
nh_v_temp();
cuda->cu_v->upload();
}
else
{
int groupbit_org=temperature->groupbit;
temperature->groupbit=groupbit;
temperature->remove_bias_all();
Cuda_FixNHCuda_nh_v_temp(&cuda->shared_data,groupbit,factor_eta,(igroup == atom->firstgroup)?atom->nfirst:atom->nlocal);
temperature->restore_bias_all();
temperature->groupbit=groupbit_org;
}
}
// rescale temperature due to velocity scaling
// should not be necessary to explicitly recompute the temperature
t_current *= factor_eta*factor_eta;
kecurrent = tdof * boltz * t_current;
eta_dotdot[0] = (kecurrent - lkt)/eta_mass[0];
for (ich = 0; ich < mtchain; ich++)
eta[ich] += ncfac*dthalf*eta_dot[ich];
eta_dot[0] *= expfac;
eta_dot[0] += eta_dotdot[0] * ncfac*dt4;
eta_dot[0] *= expfac;
for (ich = 1; ich < mtchain; ich++) {
expfac = exp(-ncfac*dt8*eta_dot[ich+1]);
eta_dot[ich] *= expfac;
eta_dotdot[ich] = (eta_mass[ich-1]*eta_dot[ich-1]*eta_dot[ich-1]
- boltz * t_target)/eta_mass[ich];
eta_dot[ich] += eta_dotdot[ich] * ncfac*dt4;
eta_dot[ich] *= expfac;
}
}
}
/* ----------------------------------------------------------------------
perform half-step update of chain thermostat variables for barostat
scale barostat velocities
------------------------------------------------------------------------- */
void FixNHCuda::nhc_press_integrate()
{
int ich,i;
double expfac,factor_etap,wmass,kecurrent;
double kt = boltz * t_target;
double lkt_press = kt;
kecurrent = 0.0;
for (i = 0; i < 3; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
}
etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0];
double ncfac = 1.0/nc_pchain;
for (int iloop = 0; iloop < nc_pchain; iloop++) {
for (ich = mpchain-1; ich > 0; ich--) {
expfac = exp(-ncfac*dt8*etap_dot[ich+1]);
etap_dot[ich] *= expfac;
etap_dot[ich] += etap_dotdot[ich] * ncfac*dt4;
etap_dot[ich] *= pdrag_factor;
etap_dot[ich] *= expfac;
}
expfac = exp(-ncfac*dt8*etap_dot[1]);
etap_dot[0] *= expfac;
etap_dot[0] += etap_dotdot[0] * ncfac*dt4;
etap_dot[0] *= pdrag_factor;
etap_dot[0] *= expfac;
for (ich = 0; ich < mpchain; ich++)
etap[ich] += ncfac*dthalf*etap_dot[ich];
factor_etap = exp(-ncfac*dthalf*etap_dot[0]);
for (i = 0; i < 3; i++)
if (p_flag[i]) omega_dot[i] *= factor_etap;
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) omega_dot[i] *= factor_etap;
}
kecurrent = 0.0;
for (i = 0; i < 3; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
}
etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0];
etap_dot[0] *= expfac;
etap_dot[0] += etap_dotdot[0] * ncfac*dt4;
etap_dot[0] *= expfac;
for (ich = 1; ich < mpchain; ich++) {
expfac = exp(-ncfac*dt8*etap_dot[ich+1]);
etap_dot[ich] *= expfac;
etap_dotdot[ich] =
(etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] - boltz*t_target) /
etap_mass[ich];
etap_dot[ich] += etap_dotdot[ich] * ncfac*dt4;
etap_dot[ich] *= expfac;
}
}
}
/* ----------------------------------------------------------------------
perform half-step barostat scaling of velocities
-----------------------------------------------------------------------*/
void FixNHCuda::nh_v_press()
{
double factor[3];
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
if (pstyle == TRICLINIC) {
v[i][0] += -dthalf*(v[i][1]*omega_dot[5] + v[i][2]*omega_dot[4]);
v[i][1] += -dthalf*v[i][2]*omega_dot[3];
}
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
}
}
} else if (which == BIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
temperature->remove_bias(i,v[i]);
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
if (pstyle == TRICLINIC) {
v[i][0] += -dthalf*(v[i][1]*omega_dot[5] + v[i][2]*omega_dot[4]);
v[i][1] += -dthalf*v[i][2]*omega_dot[3];
}
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
temperature->restore_bias(i,v[i]);
}
}
}
}
/* ----------------------------------------------------------------------
perform half-step update of velocities
-----------------------------------------------------------------------*/
void FixNHCuda::nve_v()
{
double dtfm;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm*f[i][0];
v[i][1] += dtfm*f[i][1];
v[i][2] += dtfm*f[i][2];
}
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm*f[i][0];
v[i][1] += dtfm*f[i][1];
v[i][2] += dtfm*f[i][2];
}
}
}
}
/* ----------------------------------------------------------------------
perform full-step update of positions
-----------------------------------------------------------------------*/
void FixNHCuda::nve_x()
{
double **x = atom->x;
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
// x update by full step only for atoms in group
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
/* ----------------------------------------------------------------------
perform half-step thermostat scaling of velocities
-----------------------------------------------------------------------*/
void FixNHCuda::nh_v_temp()
{
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
v[i][0] *= factor_eta;
v[i][1] *= factor_eta;
v[i][2] *= factor_eta;
}
}
} else if (which == BIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
temperature->remove_bias(i,v[i]);
v[i][0] *= factor_eta;
v[i][1] *= factor_eta;
v[i][2] *= factor_eta;
temperature->restore_bias(i,v[i]);
}
}
}
}
/* ----------------------------------------------------------------------
compute sigma tensor
needed whenever p_target or h0_inv changes
-----------------------------------------------------------------------*/
void FixNHCuda::compute_sigma()
{
// if nreset_h0 > 0, reset vol0 and h0_inv
// every nreset_h0 timesteps
if (nreset_h0 > 0) {
int delta = update->ntimestep - update->beginstep;
if (delta % nreset_h0 == 0) {
if (dimension == 3) vol0 = domain->xprd * domain->yprd * domain->zprd;
else vol0 = domain->xprd * domain->yprd;
h0_inv[0] = domain->h_inv[0];
h0_inv[1] = domain->h_inv[1];
h0_inv[2] = domain->h_inv[2];
h0_inv[3] = domain->h_inv[3];
h0_inv[4] = domain->h_inv[4];
h0_inv[5] = domain->h_inv[5];
}
}
// generate upper-triangular half of
// sigma = vol0*h0inv*(p_target-p_hydro)*h0inv^t
// units of sigma are are PV/L^2 e.g. atm.A
//
// [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ]
// [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ]
// [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ]
sigma[0] =
vol0*(h0_inv[0]*((p_target[0]-p_hydro)*h0_inv[0] +
p_target[5]*h0_inv[5]+p_target[4]*h0_inv[4]) +
h0_inv[5]*(p_target[5]*h0_inv[0] +
(p_target[1]-p_hydro)*h0_inv[5]+p_target[3]*h0_inv[4]) +
h0_inv[4]*(p_target[4]*h0_inv[0]+p_target[3]*h0_inv[5] +
(p_target[2]-p_hydro)*h0_inv[4]));
sigma[1] =
vol0*(h0_inv[1]*((p_target[1]-p_hydro)*h0_inv[1] +
p_target[3]*h0_inv[3]) +
h0_inv[3]*(p_target[3]*h0_inv[1] +
(p_target[2]-p_hydro)*h0_inv[3]));
sigma[2] =
vol0*(h0_inv[2]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[3] =
vol0*(h0_inv[1]*(p_target[3]*h0_inv[2]) +
h0_inv[3]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[4] =
vol0*(h0_inv[0]*(p_target[4]*h0_inv[2]) +
h0_inv[5]*(p_target[3]*h0_inv[2]) +
h0_inv[4]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[5] =
vol0*(h0_inv[0]*(p_target[5]*h0_inv[1]+p_target[4]*h0_inv[3]) +
h0_inv[5]*((p_target[1]-p_hydro)*h0_inv[1]+p_target[3]*h0_inv[3]) +
h0_inv[4]*(p_target[3]*h0_inv[1]+(p_target[2]-p_hydro)*h0_inv[3]));
}
/* ----------------------------------------------------------------------
compute strain energy
-----------------------------------------------------------------------*/
double FixNHCuda::compute_strain_energy()
{
// compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units
double* h = domain->h;
double d0,d1,d2;
d0 =
sigma[0]*(h[0]*h[0]+h[5]*h[5]+h[4]*h[4]) +
sigma[5]*( h[1]*h[5]+h[3]*h[4]) +
sigma[4]*( h[2]*h[4]);
d1 =
sigma[5]*( h[5]*h[1]+h[4]*h[3]) +
sigma[1]*( h[1]*h[1]+h[3]*h[3]) +
sigma[3]*( h[2]*h[3]);
d2 =
sigma[4]*( h[4]*h[2]) +
sigma[3]*( h[3]*h[2]) +
sigma[2]*( h[2]*h[2]);
double energy = 0.5*(d0+d1+d2)/nktv2p;
return energy;
}
/* ----------------------------------------------------------------------
compute deviatoric barostat force = h*sigma*h^t
-----------------------------------------------------------------------*/
void FixNHCuda::compute_deviatoric()
{
// generate upper-triangular part of h*sigma*h^t
// units of fdev are are PV, e.g. atm*A^3
// [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ]
// [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ]
// [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ]
double* h = domain->h;
fdev[0] =
h[0]*(sigma[0]*h[0]+sigma[5]*h[5]+sigma[4]*h[4]) +
h[5]*(sigma[5]*h[0]+sigma[1]*h[5]+sigma[3]*h[4]) +
h[4]*(sigma[4]*h[0]+sigma[3]*h[5]+sigma[2]*h[4]);
fdev[1] =
h[1]*( sigma[1]*h[1]+sigma[3]*h[3]) +
h[3]*( sigma[3]*h[1]+sigma[2]*h[3]);
fdev[2] =
h[2]*( sigma[2]*h[2]);
fdev[3] =
h[1]*( sigma[3]*h[2]) +
h[3]*( sigma[2]*h[2]);
fdev[4] =
h[0]*( sigma[4]*h[2]) +
h[5]*( sigma[3]*h[2]) +
h[4]*( sigma[2]*h[2]);
fdev[5] =
h[0]*( sigma[5]*h[1]+sigma[4]*h[3]) +
h[5]*( sigma[1]*h[1]+sigma[3]*h[3]) +
h[4]*( sigma[3]*h[1]+sigma[2]*h[3]);
}
/* ----------------------------------------------------------------------
compute hydrostatic target pressure
-----------------------------------------------------------------------*/
void FixNHCuda::compute_press_target()
{
double delta = update->ntimestep - update->beginstep;
if (update->endstep > update->beginstep)
delta /= update->endstep - update->beginstep;
else delta = 0.0;
p_hydro = 0.0;
for (int i = 0; i < 3; i++)
if (p_flag[i]) {
p_target[i] = p_start[i] + delta * (p_stop[i]-p_start[i]);
p_hydro += p_target[i];
}
p_hydro /= pdim;
if (pstyle == TRICLINIC)
for (int i = 3; i < 6; i++)
p_target[i] = p_start[i] + delta * (p_stop[i]-p_start[i]);
// if deviatoric, recompute sigma each time p_target changes
if (deviatoric_flag) compute_sigma();
}
/* ----------------------------------------------------------------------
update omega_dot, omega, dilation
-----------------------------------------------------------------------*/
void FixNHCuda::nh_omega_dot()
{
double f_omega,volume;
if (dimension == 3) volume = domain->xprd*domain->yprd*domain->zprd;
else volume = domain->xprd*domain->yprd;
if (deviatoric_flag) compute_deviatoric();
mtk_term1 = 0.0;
if (mtk_flag)
if (pstyle == ISO) {
mtk_term1 = tdof * boltz * t_current;
mtk_term1 /= pdim * atom->natoms;
} else {
double *mvv_current = temperature->vector;
for (int i = 0; i < 3; i++)
if (p_flag[i])
mtk_term1 += mvv_current[i];
mtk_term1 /= pdim * atom->natoms;
}
for (int i = 0; i < 3; i++)
if (p_flag[i]) {
f_omega = (p_current[i]-p_hydro)*volume /
(omega_mass[i] * nktv2p) + mtk_term1 / omega_mass[i];
if (deviatoric_flag) f_omega -= fdev[i]/(omega_mass[i] * nktv2p);
omega_dot[i] += f_omega*dthalf;
omega_dot[i] *= pdrag_factor;
}
mtk_term2 = 0.0;
if (mtk_flag) {
for (int i = 0; i < 3; i++)
if (p_flag[i])
mtk_term2 += omega_dot[i];
mtk_term2 /= pdim * atom->natoms;
}
if (pstyle == TRICLINIC) {
for (int i = 3; i < 6; i++) {
if (p_flag[i]) {
f_omega = p_current[i]*volume/(omega_mass[i] * nktv2p);
if (deviatoric_flag)
f_omega -= fdev[i]/(omega_mass[i] * nktv2p);
omega_dot[i] += f_omega*dthalf;
omega_dot[i] *= pdrag_factor;
}
}
}
}
diff --git a/src/USER-CUDA/fix_nve_cuda.cpp b/src/USER-CUDA/fix_nve_cuda.cpp
index a3e8e73ab..88ef34dbf 100644
--- a/src/USER-CUDA/fix_nve_cuda.cpp
+++ b/src/USER-CUDA/fix_nve_cuda.cpp
@@ -1,155 +1,155 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <cstdio>
#include <cstring>
#include "fix_nve_cuda.h"
#include "fix_nve_cuda_cu.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "cuda.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixNVECuda::FixNVECuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (strcmp(style,"nve/sphere") != 0 && narg < 3)
error->all("Illegal fix nve command");
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
int FixNVECuda::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE_CUDA;
mask |= FINAL_INTEGRATE_CUDA;
// mask |= INITIAL_INTEGRATE_RESPA_CUDA;
// mask |= FINAL_INTEGRATE_RESPA_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVECuda::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
triggerneighsq= cuda->shared_data.atom.triggerneighsq;
cuda->neighbor_decide_by_integrator=1;
Cuda_FixNVECuda_Init(&cuda->shared_data,dtv,dtf);
}
/* ----------------------------------------------------------------------
allow for both per-type and per-atom mass
------------------------------------------------------------------------- */
void FixNVECuda::initial_integrate(int vflag)
{
if(triggerneighsq!=cuda->shared_data.atom.triggerneighsq)
{
triggerneighsq= cuda->shared_data.atom.triggerneighsq;
Cuda_FixNVECuda_Init(&cuda->shared_data,dtv,dtf);
}
int nlocal = atom->nlocal;
if(igroup == atom->firstgroup) nlocal = atom->nfirst;
Cuda_FixNVECuda_InitialIntegrate(& cuda->shared_data, groupbit,nlocal);
}
/* ---------------------------------------------------------------------- */
void FixNVECuda::final_integrate()
{
int nlocal = atom->nlocal;
if(igroup == atom->firstgroup) nlocal = atom->nfirst;
Cuda_FixNVECuda_FinalIntegrate(& cuda->shared_data, groupbit,nlocal);
}
/* ---------------------------------------------------------------------- */
void FixNVECuda::initial_integrate_respa(int vflag, int ilevel, int flag)
{
//this point should not be reached yet since RESPA is not supported
if (flag) return; // only used by NPT,NPH
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
// innermost level - NVE update of v and x
// all other levels - NVE update of v
if(ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVECuda::final_integrate_respa(int ilevel, int iloop)
{
//this point should not be reached yet since RESPA is not supported
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVECuda::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
Cuda_FixNVECuda_Init(&cuda->shared_data,dtv,dtf);
}
diff --git a/src/USER-CUDA/fix_set_force_cuda.cpp b/src/USER-CUDA/fix_set_force_cuda.cpp
index 39fbb1e62..bd9665c8c 100644
--- a/src/USER-CUDA/fix_set_force_cuda.cpp
+++ b/src/USER-CUDA/fix_set_force_cuda.cpp
@@ -1,181 +1,181 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cstring>
#include <cstdlib>
#include "fix_set_force_cuda.h"
#include "fix_set_force_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "cuda.h"
#include "memory.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixSetForceCuda::FixSetForceCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
if (narg != 6) error->all("Illegal fix setforce/cuda command");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
flagx = flagy = flagz = 1;
if (strcmp(arg[3],"NULL") == 0) flagx = 0;
else xvalue = atof(arg[3]);
if (strcmp(arg[4],"NULL") == 0) flagy = 0;
else yvalue = atof(arg[4]);
if (strcmp(arg[5],"NULL") == 0) flagz = 0;
else zvalue = atof(arg[5]);
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
cu_foriginal=NULL;
}
/* ---------------------------------------------------------------------- */
int FixSetForceCuda::setmask()
{
int mask = 0;
mask |= POST_FORCE_CUDA;
mask |= THERMO_ENERGY_CUDA;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE_CUDA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::init()
{
if(not cu_foriginal)
cu_foriginal = new cCudaData<double, F_FLOAT, x> (foriginal,3);
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::setup(int vflag)
{
MYDBG( printf("# CUDA: FixSetForceCuda::setup\n"); )
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
{
Cuda_FixSetForceCuda_Init(&cuda->shared_data);
cuda->cu_f->upload();
post_force(vflag);
cuda->cu_f->download();
}
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
cuda->cu_f->download();
post_force_respa(vflag,nlevels_respa-1,0);
cuda->cu_f->upload();
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
MYDBG( printf("# CUDA: FixSetForceCuda::setup done\n"); )
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::post_force(int vflag)
{
MYDBG( printf("# CUDA: FixSetForceCuda::postforce start\n"); )
force_flag = 0;
cu_foriginal->memset_device(0);
Cuda_FixSetForceCuda_PostForce(&cuda->shared_data, groupbit, xvalue, yvalue,zvalue,(F_FLOAT*) cu_foriginal->dev_data(),flagx,flagy,flagz);
cu_foriginal->download();
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
else {
cuda->cu_f->download();
cuda->cu_mask->download();
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
force_flag = 0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
if (flagx) f[i][0] = 0.0;
if (flagy) f[i][1] = 0.0;
if (flagz) f[i][2] = 0.0;
}
cuda->cu_f->upload();
}
}
/* ---------------------------------------------------------------------- */
void FixSetForceCuda::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixSetForceCuda::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n+1];
}
diff --git a/src/USER-CUDA/fix_shake_cuda.cpp b/src/USER-CUDA/fix_shake_cuda.cpp
index 46220e3f6..20883889c 100644
--- a/src/USER-CUDA/fix_shake_cuda.cpp
+++ b/src/USER-CUDA/fix_shake_cuda.cpp
@@ -1,2619 +1,2619 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mpi.h"
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <ctime>
#include "fix_shake_cuda.h"
#include "fix_shake_cuda_cu.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "modify.h"
#include "domain.h"
#include "force.h"
#include "bond.h"
#include "angle.h"
#include "comm.h"
#include "group.h"
#include "fix_respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
#include "cuda_modify_flags.h"
using namespace LAMMPS_NS;
#define BIG 1.0e20
#define MASSDELTA 0.1
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
FixShakeCuda::FixShakeCuda(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
cuda->accelerator(0,NULL);
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
neighbor_step=true;
PI = 4.0*atan(1.0);
virial_flag = 1;
create_attribute = 1;
// error check
if (atom->molecular == 0)
error->all("Cannot use fix shake with non-molecular system");
// perform initial allocation of atom-based arrays
// register with Atom class
shake_flag = NULL;
shake_atom = shake_type = NULL;
xshake = NULL;
cu_shake_flag = NULL;
cu_shake_atom = NULL;
cu_shake_type = NULL;
cu_xshake = NULL;
cu_list = NULL;
cu_bond_distance = NULL;
cu_angle_distance = NULL;
cu_virial = new cCudaData<double , ENERGY_FLOAT , xx >(virial,6);
grow_arrays(atom->nmax);
atom->add_callback(0);
// set comm size needed by this fix
comm_forward = 3;
// parse SHAKE args
if (narg < 8) error->all("Illegal fix shake command");
tolerance = atof(arg[3]);
max_iter = atoi(arg[4]);
output_every = atoi(arg[5]);
// parse SHAKE args for bond and angle types
// will be used by find_clusters
// store args for "b" "a" "t" as flags in (1:n) list for fast access
// store args for "m" in list of length nmass for looping over
// for "m" verify that atom masses have been set
bond_flag = new int[atom->nbondtypes+1];
for (int i = 1; i <= atom->nbondtypes; i++) bond_flag[i] = 0;
angle_flag = new int[atom->nangletypes+1];
for (int i = 1; i <= atom->nangletypes; i++) angle_flag[i] = 0;
type_flag = new int[atom->ntypes+1];
for (int i = 1; i <= atom->ntypes; i++) type_flag[i] = 0;
mass_list = new double[atom->ntypes];
nmass = 0;
char mode = '\0';
int next = 6;
while (next < narg) {
if (strcmp(arg[next],"b") == 0) mode = 'b';
else if (strcmp(arg[next],"a") == 0) mode = 'a';
else if (strcmp(arg[next],"t") == 0) mode = 't';
else if (strcmp(arg[next],"m") == 0) {
mode = 'm';
atom->check_mass();
} else if (mode == 'b') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->nbondtypes)
error->all("Invalid bond type index for fix shake");
bond_flag[i] = 1;
} else if (mode == 'a') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->nangletypes)
error->all("Invalid angle type index for fix shake");
angle_flag[i] = 1;
} else if (mode == 't') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->ntypes)
error->all("Invalid atom type index for fix shake");
type_flag[i] = 1;
} else if (mode == 'm') {
double massone = atof(arg[next]);
if (massone == 0.0) error->all("Invalid atom mass for fix shake");
if (nmass == atom->ntypes) error->all("Too many masses for fix shake");
mass_list[nmass++] = massone;
} else error->all("Illegal fix shake command");
next++;
}
// allocate bond and angle distance arrays, indexed from 1 to n
bond_distance = new double[atom->nbondtypes+1];
angle_distance = new double[atom->nangletypes+1];
cu_bond_distance = new cCudaData<double, X_FLOAT, xx> (bond_distance, atom->nbondtypes+1);
cu_angle_distance = new cCudaData<double, X_FLOAT, xx> (angle_distance, atom->nangletypes+1);
// allocate statistics arrays
if (output_every) {
int nb = atom->nbondtypes + 1;
b_count = new int[nb];
b_count_all = new int[nb];
b_ave = new double[nb];
b_ave_all = new double[nb];
b_max = new double[nb];
b_max_all = new double[nb];
b_min = new double[nb];
b_min_all = new double[nb];
int na = atom->nangletypes + 1;
a_count = new int[na];
a_count_all = new int[na];
a_ave = new double[na];
a_ave_all = new double[na];
a_max = new double[na];
a_max_all = new double[na];
a_min = new double[na];
a_min_all = new double[na];
}
cudable_comm=true;
// identify all SHAKE clusters
find_clusters();
// initialize list of SHAKE clusters to constrain
maxlist = 0;
list = NULL;
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
/* ---------------------------------------------------------------------- */
FixShakeCuda::~FixShakeCuda()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
// set bond_type and angle_type back to positive for SHAKE clusters
// must set for all SHAKE bonds and angles stored by each atom
int **bond_type = atom->bond_type;
int **angle_type = atom->angle_type;
int nlocal = atom->nlocal;
int n;
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
else if (shake_flag[i] == 1) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n >= 0) angle_type[i][n] = -angle_type[i][n];
} else if (shake_flag[i] == 2) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 3) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 4) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][3]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
}
}
// delete locally stored arrays
memory->destroy(shake_flag);
memory->destroy(shake_atom);
memory->destroy(shake_type);
memory->destroy(xshake);
delete [] bond_flag;
delete [] angle_flag;
delete [] type_flag;
delete [] mass_list;
delete [] bond_distance;
delete [] angle_distance;
if (output_every) {
delete [] b_count;
delete [] b_count_all;
delete [] b_ave;
delete [] b_ave_all;
delete [] b_max;
delete [] b_max_all;
delete [] b_min;
delete [] b_min_all;
delete [] a_count;
delete [] a_count_all;
delete [] a_ave;
delete [] a_ave_all;
delete [] a_max;
delete [] a_max_all;
delete [] a_min;
delete [] a_min_all;
}
memory->destroy(list);
delete cu_shake_flag;
delete cu_shake_atom;
delete cu_shake_type;
delete cu_xshake;
delete cu_list;
delete cu_bond_distance;
delete cu_angle_distance;
}
/* ---------------------------------------------------------------------- */
int FixShakeCuda::setmask()
{
int mask = 0;
mask |= PRE_NEIGHBOR_CUDA;
mask |= POST_FORCE_CUDA;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ----------------------------------------------------------------------
set bond and angle distances
this init must happen after force->bond and force->angle inits
------------------------------------------------------------------------- */
void FixShakeCuda::init()
{
int i,m,flag,flag_all,type1,type2,bond1_type,bond2_type;
double rsq,angle;
// error if more than one shake fix
int count = 0;
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"shake") == 0) count++;
if (count > 1) error->all("More than one fix shake");
// cannot use with minimization since SHAKE turns off bonds
// that should contribute to potential energy
if (update->whichflag == 2)
error->all("Fix shake cannot be used with minimization");
// error if npt,nph fix comes before shake fix
for (i = 0; i < modify->nfix; i++) {
if (strcmp(modify->fix[i]->style,"npt") == 0) break;
if (strcmp(modify->fix[i]->style,"nph") == 0) break;
}
if (i < modify->nfix) {
for (int j = i; j < modify->nfix; j++)
if (strcmp(modify->fix[j]->style,"shake") == 0)
error->all("Shake fix must come before NPT/NPH fix");
}
// if rRESPA, find associated fix that must exist
// could have changed locations in fix list since created
// set ptrs to rRESPA variables
- if (strcmp(update->integrate_style,"respa") == 0) {
+ if (strstr(update->integrate_style,"respa")) {
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"RESPA") == 0) ifix_respa = i;
nlevels_respa = ((Respa *) update->integrate)->nlevels;
loop_respa = ((Respa *) update->integrate)->loop;
step_respa = ((Respa *) update->integrate)->step;
}
// set equilibrium bond distances
if (force->bond == NULL)
error->all("Bond potential must be defined for SHAKE");
for (i = 1; i <= atom->nbondtypes; i++)
bond_distance[i] = force->bond->equilibrium_distance(i);
// set equilibrium angle distances
int nlocal = atom->nlocal;
for (i = 1; i <= atom->nangletypes; i++) {
if (angle_flag[i] == 0) continue;
if (force->angle == NULL)
error->all("Angle potential must be defined for SHAKE");
// scan all atoms for a SHAKE angle cluster
// extract bond types for the 2 bonds in the cluster
// bond types must be same in all clusters of this angle type,
// else set error flag
flag = 0;
bond1_type = bond2_type = 0;
for (m = 0; m < nlocal; m++) {
if (shake_flag[m] != 1) continue;
if (shake_type[m][2] != i) continue;
type1 = MIN(shake_type[m][0],shake_type[m][1]);
type2 = MAX(shake_type[m][0],shake_type[m][1]);
if (bond1_type > 0) {
if (type1 != bond1_type || type2 != bond2_type) {
flag = 1;
break;
}
}
bond1_type = type1;
bond2_type = type2;
}
// error check for any bond types that are not the same
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_MAX,world);
if (flag_all) error->all("Shake angles have different bond types");
// insure all procs have bond types
MPI_Allreduce(&bond1_type,&flag_all,1,MPI_INT,MPI_MAX,world);
bond1_type = flag_all;
MPI_Allreduce(&bond2_type,&flag_all,1,MPI_INT,MPI_MAX,world);
bond2_type = flag_all;
// if bond types are 0, no SHAKE angles of this type exist
// just skip this angle
if (bond1_type == 0) {
angle_distance[i] = 0.0;
continue;
}
// compute the angle distance as a function of 2 bond distances
angle = force->angle->equilibrium_angle(i);
rsq = 2.0*bond_distance[bond1_type]*bond_distance[bond2_type] *
(1.0-cos(angle));
angle_distance[i] = sqrt(rsq);
}
}
/* ----------------------------------------------------------------------
SHAKE as pre-integrator constraint
------------------------------------------------------------------------- */
void FixShakeCuda::setup(int vflag)
{
pre_neighbor();
if (output_every) stats();
// setup SHAKE output
int ntimestep = update->ntimestep;
next_output = ntimestep + output_every;
if (output_every == 0) next_output = update->laststep + 1;
if (output_every && ntimestep % output_every != 0)
next_output = (ntimestep/output_every)*output_every + output_every;
// half timestep constraint on pre-step, full timestep thereafter
- if (strcmp(update->integrate_style,"verlet") == 0) {
+ if (strstr(update->integrate_style,"verlet")) {
dtv = update->dt;
dtfsq = 0.5 * update->dt * update->dt * force->ftm2v;
post_force(vflag);
dtfsq = update->dt * update->dt * force->ftm2v;
} else {
dtv = step_respa[0];
dtf_innerhalf = 0.5 * step_respa[0] * force->ftm2v;
dtf_inner = dtf_innerhalf;
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
dtf_inner = step_respa[0] * force->ftm2v;
}
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
/* ----------------------------------------------------------------------
build list of SHAKE clusters to constrain
if one or more atoms in cluster are on this proc,
this proc lists the cluster exactly once
------------------------------------------------------------------------- */
void FixShakeCuda::pre_neighbor()
{
int atom1,atom2,atom3,atom4;
// local copies of atom quantities
// used by SHAKE until next re-neighboring
x = atom->x;
v = atom->v;
f = atom->f;
mass = atom->mass;
rmass = atom->rmass;
type = atom->type;
nlocal = atom->nlocal;
// extend size of SHAKE list if necessary
if (nlocal > maxlist) {
maxlist = nlocal;
memory->destroy(list);
memory->create(list,maxlist,"shake:list");
delete cu_list; cu_list = new cCudaData<int , int , xx >(list,maxlist);
}
// build list of SHAKE clusters I compute
nlist = 0;
int count2=0,count3=0,count4=0,count3a=0;
for (int i = 0; i < nlocal; i++)
if (shake_flag[i]) {
if(shake_flag[i] == 2) count2++;
if(shake_flag[i] == 3) count3++;
if(shake_flag[i] == 4) count4++;
if(shake_flag[i] == 1) count3a++;
if (shake_flag[i] == 2) {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
if (atom1 == -1 || atom2 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d missing on proc %d at step " BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2) list[nlist++] = i;
} else if (shake_flag[i] % 2 == 1) {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
atom3 = atom->map(shake_atom[i][2]);
if (atom1 == -1 || atom2 == -1 || atom3 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d %d missing on proc %d at step "
BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],shake_atom[i][2],
me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2 && i <= atom3) list[nlist++] = i;
} else {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
atom3 = atom->map(shake_atom[i][2]);
atom4 = atom->map(shake_atom[i][3]);
if (atom1 == -1 || atom2 == -1 || atom3 == -1 || atom4 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d %d %d missing on proc %d at step "
BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],
shake_atom[i][2],shake_atom[i][3],
me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2 && i <= atom3 && i <= atom4)
list[nlist++] = i;
}
}
count2/=2;
count3/=3;
count4/=4;
count3a/=3;
count3+=count2;
count4+=count3;
count3a+=count4;
for(int k = 0,l = count2; k < count2; k++)
{
if(shake_flag[list[k]]!=2)
{
while(shake_flag[list[l]]!=2 && l<nlist-1) l++;
if(shake_flag[list[l]]!=2) {printf("FixShakeCuda: Error in List SortA %i %i\n",k,l);return;}
int tmp = list[k]; list[k]=list[l]; list[l]=tmp;
}
}
for(int k = count2,l = count3; k < count3; k++)
{
if(shake_flag[list[k]]!=3)
{
while(shake_flag[list[l]]!=3 && l<nlist-1) l++;
if(shake_flag[list[l]]!=3) {printf("FixShakeCuda: Error in List SortB %i %i\n",k,l);return;}
int tmp = list[k]; list[k]=list[l]; list[l]=tmp;
}
}
for(int k = count3,l = count4; k < count4; k++)
{
if(shake_flag[list[k]]!=4)
{
while(shake_flag[list[l]]!=4 && l<nlist-1) l++;
if(shake_flag[list[l]]!=4) {printf("FixShakeCuda: Error in List SortC %i %i\n",k,l);return;}
int tmp = list[k]; list[k]=list[l]; list[l]=tmp;
}
}
cu_list->upload();
cu_bond_distance->upload();
cu_angle_distance->upload();
cu_shake_flag->upload();
cu_shake_atom->upload();
cu_shake_type->upload();
neighbor_step=true;
}
/* ----------------------------------------------------------------------
compute the force adjustment for SHAKE constraint
------------------------------------------------------------------------- */
void FixShakeCuda::post_force(int vflag)
{
timespec starttime;
timespec endtime;
if(cuda->finished_setup && neighbor_step)
{
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
if(not cuda->finished_setup)
cuda->downloadAll();
if (update->ntimestep == next_output)
{
if(cuda->finished_setup)
cuda->cu_x->download();
stats();
}
// xshake = unconstrained move with current v,f
unconstrained_update();
// communicate results if necessary
//if(cuda->finished_setup) cu_xshake->download();
if (nprocs > 1)
{
//if(cuda->finished_setup)
//cu_xshake->download();
comm->forward_comm_fix(this);
//if(cuda->finished_setup)
//cu_xshake->upload();
}
// virial setup
if (vflag) v_setup(vflag);
else evflag = 0;
// loop over clusters
clock_gettime(CLOCK_REALTIME,&starttime);
if(cuda->finished_setup)
{
cu_virial->upload();
if(vflag_atom) cuda->cu_vatom->upload();
Cuda_FixShakeCuda_Shake(&cuda->shared_data,vflag,vflag_atom,(int*)cu_list->dev_data(),nlist);
cu_virial->download();
if(vflag_atom) cuda->cu_vatom->download();
}
else
for (int i = 0; i < nlist; i++) {
int m = list[i];
if (shake_flag[m] == 2) shake2(m);
else if (shake_flag[m] == 3) shake3(m);
else if (shake_flag[m] == 4) shake4(m);
else shake3angle(m);
}
if((not cuda->finished_setup)) cuda->cu_f->upload();
clock_gettime(CLOCK_REALTIME,&endtime);
if(cuda->finished_setup)
time_postforce+=(endtime.tv_sec-starttime.tv_sec+1.0*(endtime.tv_nsec-starttime.tv_nsec)/1000000000);
else
time_postforce=0.0;
//printf("Postforce time: %lf\n",time_postforce);
}
/* ----------------------------------------------------------------------
count # of degrees-of-freedom removed by SHAKE for atoms in igroup
------------------------------------------------------------------------- */
int FixShakeCuda::dof(int igroup)
{
int groupbit = group->bitmask[igroup];
int *mask = atom->mask;
int *tag = atom->tag;
int nlocal = atom->nlocal;
// count dof in a cluster if and only if
// the central atom is in group and atom i is the central atom
int n = 0;
for (int i = 0; i < nlocal; i++) {
if (!(mask[i] & groupbit)) continue;
if (shake_flag[i] == 0) continue;
if (shake_atom[i][0] != tag[i]) continue;
if (shake_flag[i] == 1) n += 3;
else if (shake_flag[i] == 2) n += 1;
else if (shake_flag[i] == 3) n += 2;
else if (shake_flag[i] == 4) n += 3;
}
int nall;
MPI_Allreduce(&n,&nall,1,MPI_INT,MPI_SUM,world);
return nall;
}
/* ----------------------------------------------------------------------
identify whether each atom is in a SHAKE cluster
only include atoms in fix group and those bonds/angles specified in input
test whether all clusters are valid
set shake_flag, shake_atom, shake_type values
set bond,angle types negative so will be ignored in neighbor lists
------------------------------------------------------------------------- */
void FixShakeCuda::find_clusters()
{
int i,j,m,n;
int flag,flag_all,messtag,loop,nbuf,nbufmax,size;
double massone;
int *buf,*bufcopy;
MPI_Request request;
MPI_Status status;
if (me == 0 && screen) fprintf(screen,"Finding SHAKE clusters ...\n");
// local copies of atom ptrs
int *tag = atom->tag;
int *type = atom->type;
int *mask = atom->mask;
double *mass = atom->mass;
double *rmass = atom->rmass;
int **bond_type = atom->bond_type;
int **angle_type = atom->angle_type;
int **nspecial = atom->nspecial;
int **special = atom->special;
int nlocal = atom->nlocal;
// setup ring of procs
int next = me + 1;
int prev = me -1;
if (next == nprocs) next = 0;
if (prev < 0) prev = nprocs - 1;
// -----------------------------------------------------
// allocate arrays for self (1d) and bond partners (2d)
// max = max # of bond partners for owned atoms = 2nd dim of partner arrays
// npartner[i] = # of bonds attached to atom i
// nshake[i] = # of SHAKE bonds attached to atom i
// partner_tag[i][] = global IDs of each partner
// partner_mask[i][] = mask of each partner
// partner_type[i][] = type of each partner
// partner_massflag[i][] = 1 if partner meets mass criterion, 0 if not
// partner_bondtype[i][] = type of bond attached to each partner
// partner_shake[i][] = 1 if SHAKE bonded to partner, 0 if not
// partner_nshake[i][] = nshake value for each partner
// -----------------------------------------------------
int max = 0;
for (i = 0; i < nlocal; i++) max = MAX(max,nspecial[i][0]);
int *npartner,*nshake;
memory->create(npartner,nlocal,"shake:npartner");
memory->create(nshake,nlocal,"shake:nshake");
int **partner_tag,**partner_mask,**partner_type,**partner_massflag;
int ** partner_bondtype,**partner_shake,**partner_nshake;
memory->create(partner_tag,nlocal,max,"shake:partner_tag");
memory->create(partner_mask,nlocal,max,"shake:partner_mask");
memory->create(partner_type,nlocal,max,"shake:partner_type");
memory->create(partner_massflag,nlocal,max,"shake:partner_massflag");
memory->create(partner_bondtype,nlocal,max,"shake:partner_bondtype");
memory->create(partner_shake,nlocal,max,"shake:partner_shake");
memory->create(partner_nshake,nlocal,max,"shake:partner_nshake");
// -----------------------------------------------------
// set npartner and partner_tag from special arrays
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
npartner[i] = nspecial[i][0];
for (j = 0; j < npartner[i]; j++) partner_tag[i][j] = special[i][j];
}
// -----------------------------------------------------
// set partner_mask, partner_type, partner_massflag, partner_bondtype
// for bonded partners
// requires communication for off-proc partners
// -----------------------------------------------------
// fill in mask, type, massflag, bondtype if own bond partner
// info to store in buf for each off-proc bond = nper = 6
// 2 atoms IDs in bond, space for mask, type, massflag, bondtype
// nbufmax = largest buffer needed to hold info from any proc
int nper = 6;
nbuf = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
partner_mask[i][j] = 0;
partner_type[i][j] = 0;
partner_massflag[i][j] = 0;
partner_bondtype[i][j] = 0;
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) {
partner_mask[i][j] = mask[m];
partner_type[i][j] = type[m];
if (nmass) {
if (rmass) massone = rmass[m];
else massone = mass[type[m]];
partner_massflag[i][j] = masscheck(massone);
}
n = bondfind(i,tag[i],partner_tag[i][j]);
if (n >= 0) partner_bondtype[i][j] = bond_type[i][n];
else {
n = bondfind(m,tag[i],partner_tag[i][j]);
if (n >= 0) partner_bondtype[i][j] = bond_type[m][n];
}
} else nbuf += nper;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = tag[i];
buf[size+1] = partner_tag[i][j];
buf[size+2] = 0;
buf[size+3] = 0;
buf[size+4] = 0;
n = bondfind(i,tag[i],partner_tag[i][j]);
if (n >= 0) buf[size+5] = bond_type[i][n];
else buf[size+5] = 0;
size += nper;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan bond partner IDs for atoms I own
// if I own partner:
// fill in mask and type and massflag
// search for bond with 1st atom and fill in bondtype
messtag = 1;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i+1]);
if (m >= 0 && m < nlocal) {
buf[i+2] = mask[m];
buf[i+3] = type[m];
if (nmass) {
if (rmass) massone = rmass[m];
else massone = mass[type[m]];
buf[i+4] = masscheck(massone);
}
if (buf[i+5] == 0) {
n = bondfind(m,buf[i],buf[i+1]);
if (n >= 0) buf[i+5] = bond_type[m][n];
}
}
i += nper;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
// store partner info returned to me
m = 0;
while (m < size) {
i = atom->map(buf[m]);
for (j = 0; j < npartner[i]; j++)
if (buf[m+1] == partner_tag[i][j]) break;
partner_mask[i][j] = buf[m+2];
partner_type[i][j] = buf[m+3];
partner_massflag[i][j] = buf[m+4];
partner_bondtype[i][j] = buf[m+5];
m += nper;
}
delete [] buf;
delete [] bufcopy;
// error check for unfilled partner info
// if partner_type not set, is an error
// partner_bondtype may not be set if special list is not consistent
// with bondatom (e.g. due to delete_bonds command)
// this is OK if one or both atoms are not in fix group, since
// bond won't be SHAKEn anyway
// else it's an error
flag = 0;
for (i = 0; i < nlocal; i++)
for (j = 0; j < npartner[i]; j++) {
if (partner_type[i][j] == 0) flag = 1;
if (!(mask[i] & groupbit)) continue;
if (!(partner_mask[i][j] & groupbit)) continue;
if (partner_bondtype[i][j] == 0) flag = 1;
}
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Did not find fix shake partner info");
// -----------------------------------------------------
// identify SHAKEable bonds
// set nshake[i] = # of SHAKE bonds attached to atom i
// set partner_shake[i][] = 1 if SHAKE bonded to partner, 0 if not
// both atoms must be in group, bondtype must be > 0
// check if bondtype is in input bond_flag
// check if type of either atom is in input type_flag
// check if mass of either atom is in input mass_list
// -----------------------------------------------------
int np;
for (i = 0; i < nlocal; i++) {
nshake[i] = 0;
np = npartner[i];
for (j = 0; j < np; j++) {
partner_shake[i][j] = 0;
if (!(mask[i] & groupbit)) continue;
if (!(partner_mask[i][j] & groupbit)) continue;
if (partner_bondtype[i][j] <= 0) continue;
if (bond_flag[partner_bondtype[i][j]]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
if (type_flag[type[i]] || type_flag[partner_type[i][j]]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
if (nmass) {
if (partner_massflag[i][j]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
} else {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
if (masscheck(massone)) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
}
}
}
}
// -----------------------------------------------------
// set partner_nshake for bonded partners
// requires communication for off-proc partners
// -----------------------------------------------------
// fill in partner_nshake if own bond partner
// info to store in buf for each off-proc bond =
// 2 atoms IDs in bond, space for nshake value
// nbufmax = largest buffer needed to hold info from any proc
nbuf = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) partner_nshake[i][j] = nshake[m];
else nbuf += 3;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = tag[i];
buf[size+1] = partner_tag[i][j];
size += 3;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan bond partner IDs for atoms I own
// if I own partner, fill in nshake value
messtag = 2;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i+1]);
if (m >= 0 && m < nlocal) buf[i+2] = nshake[m];
i += 3;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
// store partner info returned to me
m = 0;
while (m < size) {
i = atom->map(buf[m]);
for (j = 0; j < npartner[i]; j++)
if (buf[m+1] == partner_tag[i][j]) break;
partner_nshake[i][j] = buf[m+2];
m += 3;
}
delete [] buf;
delete [] bufcopy;
// -----------------------------------------------------
// error checks
// no atom with nshake > 3
// no connected atoms which both have nshake > 1
// -----------------------------------------------------
flag = 0;
for (i = 0; i < nlocal; i++) if (nshake[i] > 3) flag = 1;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Shake cluster of more than 4 atoms");
flag = 0;
for (i = 0; i < nlocal; i++) {
if (nshake[i] <= 1) continue;
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j] && partner_nshake[i][j] > 1) flag = 1;
}
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Shake clusters are connected");
// -----------------------------------------------------
// set SHAKE arrays that are stored with atoms & add angle constraints
// zero shake arrays for all owned atoms
// if I am central atom set shake_flag & shake_atom & shake_type
// for 2-atom clusters, I am central atom if my atom ID < partner ID
// for 3-atom clusters, test for angle constraint
// angle will be stored by this atom if it exists
// if angle type matches angle_flag, then it is angle-constrained
// shake_flag[] = 0 if atom not in SHAKE cluster
// 2,3,4 = size of bond-only cluster
// 1 = 3-atom angle cluster
// shake_atom[][] = global IDs of 2,3,4 atoms in cluster
// central atom is 1st
// for 2-atom cluster, lowest ID is 1st
// shake_type[][] = bondtype of each bond in cluster
// for 3-atom angle cluster, 3rd value is angletype
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
shake_flag[i] = 0;
shake_atom[i][0] = 0;
shake_atom[i][1] = 0;
shake_atom[i][2] = 0;
shake_atom[i][3] = 0;
shake_type[i][0] = 0;
shake_type[i][1] = 0;
shake_type[i][2] = 0;
if (nshake[i] == 1) {
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j]) break;
if (partner_nshake[i][j] == 1 && tag[i] < partner_tag[i][j]) {
shake_flag[i] = 2;
shake_atom[i][0] = tag[i];
shake_atom[i][1] = partner_tag[i][j];
shake_type[i][0] = partner_bondtype[i][j];
}
}
if (nshake[i] > 1) {
shake_flag[i] = 1;
shake_atom[i][0] = tag[i];
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j]) {
m = shake_flag[i];
shake_atom[i][m] = partner_tag[i][j];
shake_type[i][m-1] = partner_bondtype[i][j];
shake_flag[i]++;
}
}
if (nshake[i] == 2) {
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n < 0) continue;
if (angle_type[i][n] < 0) continue;
if (angle_flag[angle_type[i][n]]) {
shake_flag[i] = 1;
shake_type[i][2] = angle_type[i][n];
}
}
}
// -----------------------------------------------------
// set shake_flag,shake_atom,shake_type for non-central atoms
// requires communication for off-proc atoms
// -----------------------------------------------------
// fill in shake arrays for each bond partner I own
// info to store in buf for each off-proc bond =
// all values from shake_flag, shake_atom, shake_type
// nbufmax = largest buffer needed to hold info from any proc
nbuf = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
for (j = 0; j < npartner[i]; j++) {
if (partner_shake[i][j] == 0) continue;
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) {
shake_flag[m] = shake_flag[i];
shake_atom[m][0] = shake_atom[i][0];
shake_atom[m][1] = shake_atom[i][1];
shake_atom[m][2] = shake_atom[i][2];
shake_atom[m][3] = shake_atom[i][3];
shake_type[m][0] = shake_type[i][0];
shake_type[m][1] = shake_type[i][1];
shake_type[m][2] = shake_type[i][2];
} else nbuf += 9;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
for (j = 0; j < npartner[i]; j++) {
if (partner_shake[i][j] == 0) continue;
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = partner_tag[i][j];
buf[size+1] = shake_flag[i];
buf[size+2] = shake_atom[i][0];
buf[size+3] = shake_atom[i][1];
buf[size+4] = shake_atom[i][2];
buf[size+5] = shake_atom[i][3];
buf[size+6] = shake_type[i][0];
buf[size+7] = shake_type[i][1];
buf[size+8] = shake_type[i][2];
size += 9;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan for ID that I own
// if I own ID, fill in shake array values
messtag = 3;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i]);
if (m >= 0 && m < nlocal) {
shake_flag[m] = buf[i+1];
shake_atom[m][0] = buf[i+2];
shake_atom[m][1] = buf[i+3];
shake_atom[m][2] = buf[i+4];
shake_atom[m][3] = buf[i+5];
shake_type[m][0] = buf[i+6];
shake_type[m][1] = buf[i+7];
shake_type[m][2] = buf[i+8];
}
i += 9;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
delete [] buf;
delete [] bufcopy;
// -----------------------------------------------------
// free local memory
// -----------------------------------------------------
memory->destroy(npartner);
memory->destroy(nshake);
memory->destroy(partner_tag);
memory->destroy(partner_mask);
memory->destroy(partner_type);
memory->destroy(partner_massflag);
memory->destroy(partner_bondtype);
memory->destroy(partner_shake);
memory->destroy(partner_nshake);
// -----------------------------------------------------
// set bond_type and angle_type negative for SHAKE clusters
// must set for all SHAKE bonds and angles stored by each atom
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
else if (shake_flag[i] == 1) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n >= 0) angle_type[i][n] = -angle_type[i][n];
} else if (shake_flag[i] == 2) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 3) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 4) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][3]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
}
}
// -----------------------------------------------------
// print info on SHAKE clusters
// -----------------------------------------------------
int count1,count2,count3,count4;
count1 = count2 = count3 = count4 = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 1) count1++;
else if (shake_flag[i] == 2) count2++;
else if (shake_flag[i] == 3) count3++;
else if (shake_flag[i] == 4) count4++;
}
for(int i=0;i<nlocal;i++)
{
}
int tmp;
tmp = count1;
MPI_Allreduce(&tmp,&count1,1,MPI_INT,MPI_SUM,world);
tmp = count2;
MPI_Allreduce(&tmp,&count2,1,MPI_INT,MPI_SUM,world);
tmp = count3;
MPI_Allreduce(&tmp,&count3,1,MPI_INT,MPI_SUM,world);
tmp = count4;
MPI_Allreduce(&tmp,&count4,1,MPI_INT,MPI_SUM,world);
if (me == 0) {
if (screen) {
fprintf(screen," %d = # of size 2 clusters\n",count2/2);
fprintf(screen," %d = # of size 3 clusters\n",count3/3);
fprintf(screen," %d = # of size 4 clusters\n",count4/4);
fprintf(screen," %d = # of frozen angles\n",count1/3);
}
if (logfile) {
fprintf(logfile," %d = # of size 2 clusters\n",count2/2);
fprintf(logfile," %d = # of size 3 clusters\n",count3/3);
fprintf(logfile," %d = # of size 4 clusters\n",count4/4);
fprintf(logfile," %d = # of frozen angles\n",count1/3);
}
}
cu_shake_flag->upload();
cu_shake_atom->upload();
cu_shake_type->upload();
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
void FixShakeCuda::swap_clusters(int i, int j)
{
int tmp;
tmp = shake_flag[i]; shake_flag[i] = shake_flag[j]; shake_flag[j] = tmp;
tmp = shake_atom[i][0]; shake_atom[i][0] = shake_atom[j][0]; shake_atom[j][0] = tmp;
tmp = shake_atom[i][1]; shake_atom[i][1] = shake_atom[j][1]; shake_atom[j][1] = tmp;
tmp = shake_atom[i][2]; shake_atom[i][2] = shake_atom[j][2]; shake_atom[j][2] = tmp;
tmp = shake_atom[i][3]; shake_atom[i][3] = shake_atom[j][3]; shake_atom[j][3] = tmp;
tmp = shake_type[i][0]; shake_type[i][0] = shake_type[j][0]; shake_type[j][0] = tmp;
tmp = shake_type[i][1]; shake_type[i][1] = shake_type[j][1]; shake_type[j][1] = tmp;
tmp = shake_type[i][2]; shake_type[i][2] = shake_type[j][2]; shake_type[j][2] = tmp;
}
/* ----------------------------------------------------------------------
check if massone is within MASSDELTA of any mass in mass_list
return 1 if yes, 0 if not
------------------------------------------------------------------------- */
int FixShakeCuda::masscheck(double massone)
{
for (int i = 0; i < nmass; i++)
if (fabs(mass_list[i]-massone) <= MASSDELTA) return 1;
return 0;
}
/* ----------------------------------------------------------------------
update the unconstrained position of each atom
only for SHAKE clusters, else set to 0.0
assumes NVE update, seems to be accurate enough for NVT,NPT,NPH as well
------------------------------------------------------------------------- */
void FixShakeCuda::unconstrained_update()
{
if(cuda->finished_setup)
{
Cuda_FixShakeCuda_UnconstrainedUpdate(&cuda->shared_data);
return;
}
double dtfmsq;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
dtfmsq = dtfsq / rmass[i];
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
} else {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
dtfmsq = dtfsq / mass[type[i]];
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
}
cu_xshake->upload();
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::shake2(int m)
{
int nlist,list[2];
double v[6];
double invmass0,invmass1;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
double bond1 = bond_distance[shake_type[m][0]];
// r01 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
// s01 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
// a,b,c = coeffs in quadratic equation for lamda
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
}
double a = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double b = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double c = s01sq - bond1*bond1;
// error check
double determ = b*b - 4.0*a*c;
if (determ < 0.0) {
error->warning("Shake determinant < 0.0");
determ = 0.0;
}
// exact quadratic solution for lamda
double lamda,lamda1,lamda2;
lamda1 = (-b+sqrt(determ)) / (2.0*a);
lamda2 = (-b-sqrt(determ)) / (2.0*a);
if (fabs(lamda1) <= fabs(lamda2)) lamda = lamda1;
else lamda = lamda2;
// update forces if atom is owned by this processor
lamda /= dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda*r01[0];
f[i0][1] += lamda*r01[1];
f[i0][2] += lamda*r01[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda*r01[0];
f[i1][1] -= lamda*r01[1];
f[i1][2] -= lamda*r01[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
v[0] = lamda*r01[0]*r01[0];
v[1] = lamda*r01[1]*r01[1];
v[2] = lamda*r01[2]*r01[2];
v[3] = lamda*r01[0]*r01[1];
v[4] = lamda*r01[0]*r01[2];
v[5] = lamda*r01[1]*r01[2];
v_tally(nlist,list,2.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::shake3(int m)
{
int nlist,list[3];
double v[6];
double invmass0,invmass1,invmass2;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
// r01,r02 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
// s01,s02 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
// inverse of matrix
double determ = a11*a22 - a12*a21;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = a22*determinv;
double a12inv = -a12*determinv;
double a21inv = -a21*determinv;
double a22inv = a11*determinv;
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,b1,b2,lamda01_new,lamda02_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 + quad1_0202 * lamda02*lamda02 +
quad1_0102 * lamda01*lamda02;
quad2 = quad2_0101 * lamda01*lamda01 + quad2_0202 * lamda02*lamda02 +
quad2_0102 * lamda01*lamda02;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
lamda01_new = a11inv*b1 + a12inv*b2;
lamda02_new = a21inv*b1 + a22inv*b2;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0];
f[i1][1] -= lamda01*r01[1];
f[i1][2] -= lamda01*r01[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0];
f[i2][1] -= lamda02*r02[1];
f[i2][2] -= lamda02*r02[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
v[0] = lamda01*r01[0]*r01[0] + lamda02*r02[0]*r02[0];
v[1] = lamda01*r01[1]*r01[1] + lamda02*r02[1]*r02[1];
v[2] = lamda01*r01[2]*r01[2] + lamda02*r02[2]*r02[2];
v[3] = lamda01*r01[0]*r01[1] + lamda02*r02[0]*r02[1];
v[4] = lamda01*r01[0]*r01[2] + lamda02*r02[0]*r02[2];
v[5] = lamda01*r01[1]*r01[2] + lamda02*r02[1]*r02[2];
v_tally(nlist,list,3.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::shake4(int m)
{
int nlist,list[4];
double v[6];
double invmass0,invmass1,invmass2,invmass3;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
int i3 = atom->map(shake_atom[m][3]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
double bond3 = bond_distance[shake_type[m][2]];
// r01,r02,r03 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
double r03[3];
r03[0] = x[i0][0] - x[i3][0];
r03[1] = x[i0][1] - x[i3][1];
r03[2] = x[i0][2] - x[i3][2];
domain->minimum_image(r03);
// s01,s02,s03 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
double s03[3];
s03[0] = xshake[i0][0] - xshake[i3][0];
s03[1] = xshake[i0][1] - xshake[i3][1];
s03[2] = xshake[i0][2] - xshake[i3][2];
domain->minimum_image(s03);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double r03sq = r03[0]*r03[0] + r03[1]*r03[1] + r03[2]*r03[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
double s03sq = s03[0]*s03[0] + s03[1]*s03[1] + s03[2]*s03[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
invmass3 = 1.0/rmass[i3];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
invmass3 = 1.0/mass[type[i3]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a13 = 2.0 * invmass0 *
(s01[0]*r03[0] + s01[1]*r03[1] + s01[2]*r03[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
double a23 = 2.0 * invmass0 *
(s02[0]*r03[0] + s02[1]*r03[1] + s02[2]*r03[2]);
double a31 = 2.0 * invmass0 *
(s03[0]*r01[0] + s03[1]*r01[1] + s03[2]*r01[2]);
double a32 = 2.0 * invmass0 *
(s03[0]*r02[0] + s03[1]*r02[1] + s03[2]*r02[2]);
double a33 = 2.0 * (invmass0+invmass3) *
(s03[0]*r03[0] + s03[1]*r03[1] + s03[2]*r03[2]);
// inverse of matrix;
double determ = a11*a22*a33 + a12*a23*a31 + a13*a21*a32 -
a11*a23*a32 - a12*a21*a33 - a13*a22*a31;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = determinv * (a22*a33 - a23*a32);
double a12inv = -determinv * (a12*a33 - a13*a32);
double a13inv = determinv * (a12*a23 - a13*a22);
double a21inv = -determinv * (a21*a33 - a23*a31);
double a22inv = determinv * (a11*a33 - a13*a31);
double a23inv = -determinv * (a11*a23 - a13*a21);
double a31inv = determinv * (a21*a32 - a22*a31);
double a32inv = -determinv * (a11*a32 - a12*a31);
double a33inv = determinv * (a11*a22 - a12*a21);
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double r0103 = (r01[0]*r03[0] + r01[1]*r03[1] + r01[2]*r03[2]);
double r0203 = (r02[0]*r03[0] + r02[1]*r03[1] + r02[2]*r03[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_0303 = invmass0*invmass0 * r03sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad1_0103 = 2.0 * (invmass0+invmass1)*invmass0 * r0103;
double quad1_0203 = 2.0 * invmass0*invmass0 * r0203;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_0303 = invmass0*invmass0 * r03sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
double quad2_0103 = 2.0 * invmass0*invmass0 * r0103;
double quad2_0203 = 2.0 * (invmass0+invmass2)*invmass0 * r0203;
double quad3_0101 = invmass0*invmass0 * r01sq;
double quad3_0202 = invmass0*invmass0 * r02sq;
double quad3_0303 = (invmass0+invmass3)*(invmass0+invmass3) * r03sq;
double quad3_0102 = 2.0 * invmass0*invmass0 * r0102;
double quad3_0103 = 2.0 * (invmass0+invmass3)*invmass0 * r0103;
double quad3_0203 = 2.0 * (invmass0+invmass3)*invmass0 * r0203;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
double lamda03 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,quad3,b1,b2,b3,lamda01_new,lamda02_new,lamda03_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 +
quad1_0202 * lamda02*lamda02 +
quad1_0303 * lamda03*lamda03 +
quad1_0102 * lamda01*lamda02 +
quad1_0103 * lamda01*lamda03 +
quad1_0203 * lamda02*lamda03;
quad2 = quad2_0101 * lamda01*lamda01 +
quad2_0202 * lamda02*lamda02 +
quad2_0303 * lamda03*lamda03 +
quad2_0102 * lamda01*lamda02 +
quad2_0103 * lamda01*lamda03 +
quad2_0203 * lamda02*lamda03;
quad3 = quad3_0101 * lamda01*lamda01 +
quad3_0202 * lamda02*lamda02 +
quad3_0303 * lamda03*lamda03 +
quad3_0102 * lamda01*lamda02 +
quad3_0103 * lamda01*lamda03 +
quad3_0203 * lamda02*lamda03;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
b3 = bond3*bond3 - s03sq - quad3;
lamda01_new = a11inv*b1 + a12inv*b2 + a13inv*b3;
lamda02_new = a21inv*b1 + a22inv*b2 + a23inv*b3;
lamda03_new = a31inv*b1 + a32inv*b2 + a33inv*b3;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
if (fabs(lamda03_new-lamda03) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
lamda03 = lamda03_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
lamda03 = lamda03/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0] + lamda03*r03[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1] + lamda03*r03[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2] + lamda03*r03[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0];
f[i1][1] -= lamda01*r01[1];
f[i1][2] -= lamda01*r01[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0];
f[i2][1] -= lamda02*r02[1];
f[i2][2] -= lamda02*r02[2];
}
if (i3 < nlocal) {
f[i3][0] -= lamda03*r03[0];
f[i3][1] -= lamda03*r03[1];
f[i3][2] -= lamda03*r03[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
if (i3 < nlocal) list[nlist++] = i3;
v[0] = lamda01*r01[0]*r01[0]+lamda02*r02[0]*r02[0]+lamda03*r03[0]*r03[0];
v[1] = lamda01*r01[1]*r01[1]+lamda02*r02[1]*r02[1]+lamda03*r03[1]*r03[1];
v[2] = lamda01*r01[2]*r01[2]+lamda02*r02[2]*r02[2]+lamda03*r03[2]*r03[2];
v[3] = lamda01*r01[0]*r01[1]+lamda02*r02[0]*r02[1]+lamda03*r03[0]*r03[1];
v[4] = lamda01*r01[0]*r01[2]+lamda02*r02[0]*r02[2]+lamda03*r03[0]*r03[2];
v[5] = lamda01*r01[1]*r01[2]+lamda02*r02[1]*r02[2]+lamda03*r03[1]*r03[2];
//if(i0==7271) printf("%lf %lf %lf %lf %lf %lf\n",v[0],v[1],v[2],v[3],v[4],v[5]);
v_tally(nlist,list,4.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::shake3angle(int m)
{
int nlist,list[3];
double v[6];
double invmass0,invmass1,invmass2;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
double bond12 = angle_distance[shake_type[m][2]];
// r01,r02,r12 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
double r12[3];
r12[0] = x[i1][0] - x[i2][0];
r12[1] = x[i1][1] - x[i2][1];
r12[2] = x[i1][2] - x[i2][2];
domain->minimum_image(r12);
// s01,s02,s12 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
double s12[3];
s12[0] = xshake[i1][0] - xshake[i2][0];
s12[1] = xshake[i1][1] - xshake[i2][1];
s12[2] = xshake[i1][2] - xshake[i2][2];
domain->minimum_image(s12);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double r12sq = r12[0]*r12[0] + r12[1]*r12[1] + r12[2]*r12[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
double s12sq = s12[0]*s12[0] + s12[1]*s12[1] + s12[2]*s12[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a13 = - 2.0 * invmass1 *
(s01[0]*r12[0] + s01[1]*r12[1] + s01[2]*r12[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
double a23 = 2.0 * invmass2 *
(s02[0]*r12[0] + s02[1]*r12[1] + s02[2]*r12[2]);
double a31 = - 2.0 * invmass1 *
(s12[0]*r01[0] + s12[1]*r01[1] + s12[2]*r01[2]);
double a32 = 2.0 * invmass2 *
(s12[0]*r02[0] + s12[1]*r02[1] + s12[2]*r02[2]);
double a33 = 2.0 * (invmass1+invmass2) *
(s12[0]*r12[0] + s12[1]*r12[1] + s12[2]*r12[2]);
// inverse of matrix
double determ = a11*a22*a33 + a12*a23*a31 + a13*a21*a32 -
a11*a23*a32 - a12*a21*a33 - a13*a22*a31;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = determinv * (a22*a33 - a23*a32);
double a12inv = -determinv * (a12*a33 - a13*a32);
double a13inv = determinv * (a12*a23 - a13*a22);
double a21inv = -determinv * (a21*a33 - a23*a31);
double a22inv = determinv * (a11*a33 - a13*a31);
double a23inv = -determinv * (a11*a23 - a13*a21);
double a31inv = determinv * (a21*a32 - a22*a31);
double a32inv = -determinv * (a11*a32 - a12*a31);
double a33inv = determinv * (a11*a22 - a12*a21);
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double r0112 = (r01[0]*r12[0] + r01[1]*r12[1] + r01[2]*r12[2]);
double r0212 = (r02[0]*r12[0] + r02[1]*r12[1] + r02[2]*r12[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_1212 = invmass1*invmass1 * r12sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad1_0112 = - 2.0 * (invmass0+invmass1)*invmass1 * r0112;
double quad1_0212 = - 2.0 * invmass0*invmass1 * r0212;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_1212 = invmass2*invmass2 * r12sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
double quad2_0112 = 2.0 * invmass0*invmass2 * r0112;
double quad2_0212 = 2.0 * (invmass0+invmass2)*invmass2 * r0212;
double quad3_0101 = invmass1*invmass1 * r01sq;
double quad3_0202 = invmass2*invmass2 * r02sq;
double quad3_1212 = (invmass1+invmass2)*(invmass1+invmass2) * r12sq;
double quad3_0102 = - 2.0 * invmass1*invmass2 * r0102;
double quad3_0112 = - 2.0 * (invmass1+invmass2)*invmass1 * r0112;
double quad3_0212 = 2.0 * (invmass1+invmass2)*invmass2 * r0212;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
double lamda12 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,quad3,b1,b2,b3,lamda01_new,lamda02_new,lamda12_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 +
quad1_0202 * lamda02*lamda02 +
quad1_1212 * lamda12*lamda12 +
quad1_0102 * lamda01*lamda02 +
quad1_0112 * lamda01*lamda12 +
quad1_0212 * lamda02*lamda12;
quad2 = quad2_0101 * lamda01*lamda01 +
quad2_0202 * lamda02*lamda02 +
quad2_1212 * lamda12*lamda12 +
quad2_0102 * lamda01*lamda02 +
quad2_0112 * lamda01*lamda12 +
quad2_0212 * lamda02*lamda12;
quad3 = quad3_0101 * lamda01*lamda01 +
quad3_0202 * lamda02*lamda02 +
quad3_1212 * lamda12*lamda12 +
quad3_0102 * lamda01*lamda02 +
quad3_0112 * lamda01*lamda12 +
quad3_0212 * lamda02*lamda12;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
b3 = bond12*bond12 - s12sq - quad3;
lamda01_new = a11inv*b1 + a12inv*b2 + a13inv*b3;
lamda02_new = a21inv*b1 + a22inv*b2 + a23inv*b3;
lamda12_new = a31inv*b1 + a32inv*b2 + a33inv*b3;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
if (fabs(lamda12_new-lamda12) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
lamda12 = lamda12_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
lamda12 = lamda12/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0] - lamda12*r12[0];
f[i1][1] -= lamda01*r01[1] - lamda12*r12[1];
f[i1][2] -= lamda01*r01[2] - lamda12*r12[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0] + lamda12*r12[0];
f[i2][1] -= lamda02*r02[1] + lamda12*r12[1];
f[i2][2] -= lamda02*r02[2] + lamda12*r12[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
v[0] = lamda01*r01[0]*r01[0]+lamda02*r02[0]*r02[0]+lamda12*r12[0]*r12[0];
v[1] = lamda01*r01[1]*r01[1]+lamda02*r02[1]*r02[1]+lamda12*r12[1]*r12[1];
v[2] = lamda01*r01[2]*r01[2]+lamda02*r02[2]*r02[2]+lamda12*r12[2]*r12[2];
v[3] = lamda01*r01[0]*r01[1]+lamda02*r02[0]*r02[1]+lamda12*r12[0]*r12[1];
v[4] = lamda01*r01[0]*r01[2]+lamda02*r02[0]*r02[2]+lamda12*r12[0]*r12[2];
v[5] = lamda01*r01[1]*r01[2]+lamda02*r02[1]*r02[2]+lamda12*r12[1]*r12[2];
v_tally(nlist,list,3.0,v);
}
}
/* ----------------------------------------------------------------------
print-out bond & angle statistics
------------------------------------------------------------------------- */
void FixShakeCuda::stats()
{
int i,j,m,n,iatom,jatom,katom;
double delx,dely,delz;
double r,r1,r2,r3,angle;
// zero out accumulators
int nb = atom->nbondtypes + 1;
int na = atom->nangletypes + 1;
for (i = 0; i < nb; i++) {
b_count[i] = 0;
b_ave[i] = b_max[i] = 0.0;
b_min[i] = BIG;
}
for (i = 0; i < na; i++) {
a_count[i] = 0;
a_ave[i] = a_max[i] = 0.0;
a_min[i] = BIG;
}
// log stats for each bond & angle
// OK to double count since are just averaging
double **x = atom->x;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
// bond stats
n = shake_flag[i];
if (n == 1) n = 3;
iatom = atom->map(shake_atom[i][0]);
for (j = 1; j < n; j++) {
jatom = atom->map(shake_atom[i][j]);
delx = x[iatom][0] - x[jatom][0];
dely = x[iatom][1] - x[jatom][1];
delz = x[iatom][2] - x[jatom][2];
domain->minimum_image(delx,dely,delz);
r = sqrt(delx*delx + dely*dely + delz*delz);
m = shake_type[i][j-1];
b_count[m]++;
b_ave[m] += r;
b_max[m] = MAX(b_max[m],r);
b_min[m] = MIN(b_min[m],r);
}
// angle stats
if (shake_flag[i] == 1) {
iatom = atom->map(shake_atom[i][0]);
jatom = atom->map(shake_atom[i][1]);
katom = atom->map(shake_atom[i][2]);
delx = x[iatom][0] - x[jatom][0];
dely = x[iatom][1] - x[jatom][1];
delz = x[iatom][2] - x[jatom][2];
domain->minimum_image(delx,dely,delz);
r1 = sqrt(delx*delx + dely*dely + delz*delz);
delx = x[iatom][0] - x[katom][0];
dely = x[iatom][1] - x[katom][1];
delz = x[iatom][2] - x[katom][2];
domain->minimum_image(delx,dely,delz);
r2 = sqrt(delx*delx + dely*dely + delz*delz);
delx = x[jatom][0] - x[katom][0];
dely = x[jatom][1] - x[katom][1];
delz = x[jatom][2] - x[katom][2];
domain->minimum_image(delx,dely,delz);
r3 = sqrt(delx*delx + dely*dely + delz*delz);
angle = acos((r1*r1 + r2*r2 - r3*r3) / (2.0*r1*r2));
angle *= 180.0/PI;
m = shake_type[i][2];
a_count[m]++;
a_ave[m] += angle;
a_max[m] = MAX(a_max[m],angle);
a_min[m] = MIN(a_min[m],angle);
}
}
// sum across all procs
MPI_Allreduce(b_count,b_count_all,nb,MPI_INT,MPI_SUM,world);
MPI_Allreduce(b_ave,b_ave_all,nb,MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(b_max,b_max_all,nb,MPI_DOUBLE,MPI_MAX,world);
MPI_Allreduce(b_min,b_min_all,nb,MPI_DOUBLE,MPI_MIN,world);
MPI_Allreduce(a_count,a_count_all,na,MPI_INT,MPI_SUM,world);
MPI_Allreduce(a_ave,a_ave_all,na,MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(a_max,a_max_all,na,MPI_DOUBLE,MPI_MAX,world);
MPI_Allreduce(a_min,a_min_all,na,MPI_DOUBLE,MPI_MIN,world);
// print stats only for non-zero counts
if (me == 0) {
if (screen) {
fprintf(screen,
"SHAKE stats (type/ave/delta) on step " BIGINT_FORMAT "\n",
update->ntimestep);
for (i = 1; i < nb; i++)
if (b_count_all[i])
fprintf(screen," %d %g %g\n",i,
b_ave_all[i]/b_count_all[i],b_max_all[i]-b_min_all[i]);
for (i = 1; i < na; i++)
if (a_count_all[i])
fprintf(screen," %d %g %g\n",i,
a_ave_all[i]/a_count_all[i],a_max_all[i]-a_min_all[i]);
}
if (logfile) {
fprintf(logfile,
"SHAKE stats (type/ave/delta) on step " BIGINT_FORMAT "\n",
update->ntimestep);
for (i = 0; i < nb; i++)
if (b_count_all[i])
fprintf(logfile," %d %g %g\n",i,
b_ave_all[i]/b_count_all[i],b_max_all[i]-b_min_all[i]);
for (i = 0; i < na; i++)
if (a_count_all[i])
fprintf(logfile," %d %g %g\n",i,
a_ave_all[i]/a_count_all[i],a_max_all[i]-a_min_all[i]);
}
}
// next timestep for stats
next_output += output_every;
}
/* ----------------------------------------------------------------------
find a bond between global tags n1 and n2 stored with local atom i
return -1 if don't find it
return bond index if do find it
------------------------------------------------------------------------- */
int FixShakeCuda::bondfind(int i, int n1, int n2)
{
int *tag = atom->tag;
int **bond_atom = atom->bond_atom;
int nbonds = atom->num_bond[i];
int m;
for (m = 0; m < nbonds; m++) {
if (n1 == tag[i] && n2 == bond_atom[i][m]) break;
if (n1 == bond_atom[i][m] && n2 == tag[i]) break;
}
if (m < nbonds) return m;
return -1;
}
/* ----------------------------------------------------------------------
find an angle with global end atoms n1 and n2 stored with local atom i
return -1 if don't find it
return angle index if do find it
------------------------------------------------------------------------- */
int FixShakeCuda::anglefind(int i, int n1, int n2)
{
int **angle_atom1 = atom->angle_atom1;
int **angle_atom3 = atom->angle_atom3;
int nangles = atom->num_angle[i];
int m;
for (m = 0; m < nangles; m++) {
if (n1 == angle_atom1[i][m] && n2 == angle_atom3[i][m]) break;
if (n1 == angle_atom3[i][m] && n2 == angle_atom1[i][m]) break;
}
if (m < nangles) return m;
return -1;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixShakeCuda::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += nmax*4 * sizeof(int);
bytes += nmax*3 * sizeof(int);
bytes += nmax*3 * sizeof(double);
bytes += maxvatom*6 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixShakeCuda::grow_arrays(int nmax)
{
memory->grow(shake_flag,nmax,"shake:shake_flag");
memory->grow(shake_atom,nmax,4,"shake:shake_atom");
memory->grow(shake_type,nmax,3,"shake:shake_type");
memory->destroy(xshake);
memory->create(xshake,nmax,3,"shake:xshake");
delete cu_shake_flag; cu_shake_flag = new cCudaData<int, int, xx > (shake_flag, nmax );
delete cu_shake_atom; cu_shake_atom = new cCudaData<int, int, yx> ((int*)shake_atom, nmax, 4);
delete cu_shake_type; cu_shake_type = new cCudaData<int, int, yx> ((int*)shake_type, nmax, 3);
delete cu_xshake; cu_xshake = new cCudaData<double, X_FLOAT, xy> ((double*)xshake, nmax, 3);
cu_shake_flag->upload();
cu_shake_atom->upload();
cu_shake_type->upload();
if(cu_bond_distance)
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixShakeCuda::copy_arrays(int i, int j)
{
int flag = shake_flag[j] = shake_flag[i];
if (flag == 1) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
shake_type[j][2] = shake_type[i][2];
} else if (flag == 2) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_type[j][0] = shake_type[i][0];
} else if (flag == 3) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
} else if (flag == 4) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_atom[j][3] = shake_atom[i][3];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
shake_type[j][2] = shake_type[i][2];
}
}
/* ----------------------------------------------------------------------
initialize one atom's array values, called when atom is created
------------------------------------------------------------------------- */
void FixShakeCuda::set_arrays(int i)
{
shake_flag[i] = 0;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixShakeCuda::pack_exchange(int i, double *buf)
{
int m = 0;
buf[m++] = shake_flag[i];
int flag = shake_flag[i];
if (flag == 1) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
buf[m++] = shake_type[i][2];
} else if (flag == 2) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_type[i][0];
} else if (flag == 3) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
} else if (flag == 4) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_atom[i][3];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
buf[m++] = shake_type[i][2];
}
return m;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixShakeCuda::unpack_exchange(int nlocal, double *buf)
{
int m = 0;
int flag = shake_flag[nlocal] = static_cast<int> (buf[m++]);
if (flag == 1) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][2] = static_cast<int> (buf[m++]);
} else if (flag == 2) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
} else if (flag == 3) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
} else if (flag == 4) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_atom[nlocal][3] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][2] = static_cast<int> (buf[m++]);
}
return m;
}
/* ----------------------------------------------------------------------
enforce SHAKE constraints from rRESPA
prediction portion is different than Verlet
rRESPA updating of atom coords is done with full v, but only portions of f
------------------------------------------------------------------------- */
/*
void FixShakeCuda::post_force_respa(int vflag, int ilevel, int iloop)
{
// call stats only on outermost level
if (ilevel == nlevels_respa-1 && update->ntimestep == next_output) stats();
// perform SHAKE on every loop iteration of every rRESPA level
// except last loop iteration of inner levels
if (ilevel < nlevels_respa-1 && iloop == loop_respa[ilevel]-1) return;
// xshake = atom coords after next x update in innermost loop
// depends on rRESPA level
// for levels > 0 this includes more than one velocity update
// xshake = predicted position from call to this routine at level N =
// x + dt0 (v + dtN/m fN + 1/2 dt(N-1)/m f(N-1) + ... + 1/2 dt0/m f0)
double ***f_level = ((FixRespa *) modify->fix[ifix_respa])->f_level;
dtfsq = dtf_inner * step_respa[ilevel];
double invmass,dtfmsq;
int jlevel;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
invmass = 1.0 / rmass[i];
dtfmsq = dtfsq * invmass;
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
for (jlevel = 0; jlevel < ilevel; jlevel++) {
dtfmsq = dtf_innerhalf * step_respa[jlevel] * invmass;
xshake[i][0] += dtfmsq*f_level[i][jlevel][0];
xshake[i][1] += dtfmsq*f_level[i][jlevel][1];
xshake[i][2] += dtfmsq*f_level[i][jlevel][2];
}
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
} else {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
invmass = 1.0 / mass[type[i]];
dtfmsq = dtfsq * invmass;
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
for (jlevel = 0; jlevel < ilevel; jlevel++) {
dtfmsq = dtf_innerhalf * step_respa[jlevel] * invmass;
xshake[i][0] += dtfmsq*f_level[i][jlevel][0];
xshake[i][1] += dtfmsq*f_level[i][jlevel][1];
xshake[i][2] += dtfmsq*f_level[i][jlevel][2];
}
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
}
// communicate results if necessary
if (nprocs > 1) comm->forward_comm_fix(this);
// virial setup
if (vflag) v_setup(vflag);
else evflag = 0;
// loop over clusters
int m;
for (int i = 0; i < nlist; i++) {
m = list[i];
if (shake_flag[m] == 2) shake2(m);
else if (shake_flag[m] == 3) shake3(m);
else if (shake_flag[m] == 4) shake4(m);
else shake3angle(m);
}
}
/* ---------------------------------------------------------------------- */
int FixShakeCuda::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc)
{
if(cuda->finished_setup)
{
int iswap=*list;
if(iswap<0)
{
iswap=-iswap-1;
int first= ((int*) buf)[0];
Cuda_FixShakeCuda_PackComm_Self(&cuda->shared_data,n,iswap,first,pbc,pbc_flag);
}
else
Cuda_FixShakeCuda_PackComm(&cuda->shared_data,n,iswap,(void*) buf,pbc,pbc_flag);
return 3;
}
int i,j,m;
double dx,dy,dz;
m = 0;
if (pbc_flag == 0) {
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = xshake[j][0];
buf[m++] = xshake[j][1];
buf[m++] = xshake[j][2];
}
} else {
if (domain->triclinic == 0) {
dx = pbc[0]*domain->xprd;
dy = pbc[1]*domain->yprd;
dz = pbc[2]*domain->zprd;
} else {
dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz;
dy = pbc[1]*domain->yprd + pbc[3]*domain->yz;
dz = pbc[2]*domain->zprd;
}
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = xshake[j][0] + dx;
buf[m++] = xshake[j][1] + dy;
buf[m++] = xshake[j][2] + dz;
}
}
return 3;
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::unpack_comm(int n, int first, double *buf)
{
if(cuda->finished_setup)
{
Cuda_FixShakeCuda_UnpackComm(&cuda->shared_data,n,first,(void*)buf);
return;
}
int i,m,last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
xshake[i][0] = buf[m++];
xshake[i][1] = buf[m++];
xshake[i][2] = buf[m++];
}
}
/* ---------------------------------------------------------------------- */
void FixShakeCuda::reset_dt()
{
- if (strcmp(update->integrate_style,"verlet") == 0) {
+ if (strstr(update->integrate_style,"verlet")) {
dtv = update->dt;
dtfsq = update->dt * update->dt * force->ftm2v;
} else {
dtv = step_respa[0];
dtf_innerhalf = 0.5 * step_respa[0] * force->ftm2v;
dtf_inner = step_respa[0] * force->ftm2v;
}
if(cu_shake_atom)
Cuda_FixShakeCuda_Init(&cuda->shared_data,dtv, dtfsq,
cu_shake_flag->dev_data(),cu_shake_atom->dev_data(),cu_shake_type->dev_data(), cu_xshake->dev_data(),
cu_bond_distance->dev_data(),cu_angle_distance->dev_data(),cu_virial->dev_data(),
max_iter,tolerance);
}
diff --git a/src/USER-CUDA/modify_cuda.cpp b/src/USER-CUDA/modify_cuda.cpp
index f57e42527..6eb832803 100644
--- a/src/USER-CUDA/modify_cuda.cpp
+++ b/src/USER-CUDA/modify_cuda.cpp
@@ -1,444 +1,443 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <cstdio>
#include <cstring>
#include "modify_cuda.h"
#include "style_compute.h"
#include "style_fix.h"
#include "atom.h"
#include "comm.h"
#include "fix.h"
#include "compute.h"
#include "group.h"
#include "update.h"
#include "domain.h"
#include "cuda.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define DELTA 4
// mask settings - same as in fix.cpp
#define INITIAL_INTEGRATE 1
#define POST_INTEGRATE 2
#define PRE_EXCHANGE 4
#define PRE_NEIGHBOR 8
#define PRE_FORCE 16
#define POST_FORCE 32
#define FINAL_INTEGRATE 64
#define END_OF_STEP 128
#define THERMO_ENERGY 256
#define INITIAL_INTEGRATE_RESPA 512
#define POST_INTEGRATE_RESPA 1024
#define PRE_FORCE_RESPA 2048
#define POST_FORCE_RESPA 4096
#define FINAL_INTEGRATE_RESPA 8192
#define MIN_PRE_EXCHANGE 16384
#define MIN_POST_FORCE 32768
#define MIN_ENERGY 65536
#include "cuda_modify_flags.h"
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
#define BIG 1.0e20
/* ---------------------------------------------------------------------- */
ModifyCuda::ModifyCuda(LAMMPS *lmp) : Modify(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
n_initial_integrate_cuda = 0;
n_post_integrate_cuda = 0;
n_pre_exchange = 0;
n_pre_neighbor_cuda = 0;
n_pre_force_cuda = 0;
n_post_force_cuda = 0;
n_final_integrate_cuda = 0;
n_end_of_step_cuda = 0;
n_thermo_energy_cuda = 0;
n_initial_integrate_host = 0;
n_post_integrate_host = 0;
n_pre_exchange = 0;
n_pre_neighbor_host = 0;
n_pre_force_host = 0;
n_post_force_host = 0;
n_final_integrate_host = 0;
n_end_of_step_host = 0;
n_thermo_energy_host = 0;
list_initial_integrate_cuda = NULL;
list_post_integrate_cuda = NULL;
list_pre_exchange_cuda = NULL;
list_pre_neighbor_cuda = NULL;
list_pre_force_cuda = NULL;
list_post_force_cuda = NULL;
list_final_integrate_cuda = NULL;
list_end_of_step_cuda = NULL;
list_thermo_energy_cuda = NULL;
end_of_step_every_cuda = NULL;
}
/* ---------------------------------------------------------------------- */
ModifyCuda::~ModifyCuda()
{
delete [] list_initial_integrate_cuda;
delete [] list_post_integrate_cuda;
delete [] list_pre_exchange_cuda;
delete [] list_pre_neighbor_cuda;
delete [] list_pre_force_cuda;
delete [] list_post_force_cuda;
delete [] list_final_integrate_cuda;
delete [] list_end_of_step_cuda;
delete [] list_thermo_energy_cuda;
delete [] end_of_step_every_cuda;
}
/* ----------------------------------------------------------------------
initialize all fixes and computes
------------------------------------------------------------------------- */
void ModifyCuda::init()
{
int i,j;
// delete storage of restart info since it is not valid after 1st run
restart_deallocate();
// create lists of fixes to call at each stage of run
list_init(INITIAL_INTEGRATE,n_initial_integrate,list_initial_integrate);
list_init(POST_INTEGRATE,n_post_integrate,list_post_integrate);
list_init(PRE_EXCHANGE,n_pre_exchange,list_pre_exchange);
list_init(PRE_NEIGHBOR,n_pre_neighbor,list_pre_neighbor);
list_init(PRE_FORCE,n_pre_force,list_pre_force);
list_init(POST_FORCE,n_post_force,list_post_force);
list_init(FINAL_INTEGRATE,n_final_integrate,list_final_integrate);
list_init_end_of_step(END_OF_STEP,n_end_of_step,list_end_of_step);
list_init_thermo_energy(THERMO_ENERGY,n_thermo_energy,list_thermo_energy);
list_init(INITIAL_INTEGRATE_CUDA, n_initial_integrate_cuda, list_initial_integrate_cuda);
list_init(POST_INTEGRATE_CUDA, n_post_integrate_cuda, list_post_integrate_cuda);
list_init(PRE_EXCHANGE_CUDA, n_pre_exchange_cuda, list_pre_exchange_cuda);
list_init(PRE_NEIGHBOR_CUDA, n_pre_neighbor_cuda, list_pre_neighbor_cuda);
list_init(PRE_FORCE_CUDA, n_pre_force_cuda, list_pre_force_cuda);
list_init(POST_FORCE_CUDA, n_post_force_cuda, list_post_force_cuda);
list_init(FINAL_INTEGRATE_CUDA, n_final_integrate_cuda, list_final_integrate_cuda);
list_init_end_of_step_cuda(END_OF_STEP_CUDA, n_end_of_step_cuda, list_end_of_step_cuda);
list_init_thermo_energy(THERMO_ENERGY_CUDA, n_thermo_energy_cuda, list_thermo_energy_cuda);
n_initial_integrate_host = n_initial_integrate;
n_post_integrate_host = n_post_integrate;
n_pre_exchange_host = n_pre_exchange;
n_pre_neighbor_host = n_pre_neighbor;
n_pre_force_host = n_pre_force;
n_post_force_host = n_post_force;
n_final_integrate_host = n_final_integrate;
n_end_of_step_host = n_end_of_step;
n_thermo_energy_host = n_thermo_energy;
n_initial_integrate = n_initial_integrate_cuda+n_initial_integrate_host;
n_post_integrate = n_post_integrate_cuda+n_post_integrate_host;
n_pre_exchange = n_pre_exchange_cuda+n_pre_exchange_host;
n_pre_neighbor = n_pre_neighbor_cuda+n_pre_neighbor_host;
n_pre_force = n_pre_force_cuda+n_pre_force_host;
n_post_force = n_post_force_cuda+n_post_force_host;
n_final_integrate = n_final_integrate_cuda+n_final_integrate_host;
n_end_of_step = n_end_of_step_cuda+n_end_of_step_host;
n_thermo_energy = n_thermo_energy_cuda+n_thermo_energy_host;
list_init(INITIAL_INTEGRATE_RESPA,
n_initial_integrate_respa,list_initial_integrate_respa);
list_init(POST_INTEGRATE_RESPA,
n_post_integrate_respa,list_post_integrate_respa);
list_init(POST_FORCE_RESPA,
n_post_force_respa,list_post_force_respa);
list_init(PRE_FORCE_RESPA,
n_pre_force_respa,list_pre_force_respa);
list_init(FINAL_INTEGRATE_RESPA,
n_final_integrate_respa,list_final_integrate_respa);
list_init(MIN_PRE_EXCHANGE,n_min_pre_exchange,list_min_pre_exchange);
list_init(MIN_POST_FORCE,n_min_post_force,list_min_post_force);
list_init(MIN_ENERGY,n_min_energy,list_min_energy);
// init each fix
// needs to come before compute init
// this is b/c some computes call fix->dof()
// FixRigid::dof() depends on its own init having been called
- comm->maxforward_fix = comm->maxreverse_fix = 0;
for (i = 0; i < nfix; i++) fix[i]->init();
// set global flag if any fix has its restart_pbc flag set
restart_pbc_any = 0;
for (i = 0; i < nfix; i++)
if (fix[i]->restart_pbc) restart_pbc_any = 1;
// create list of computes that store invocation times
list_init_compute();
// init each compute
// set invoked_scalar,vector,etc to -1 to force new run to re-compute them
// add initial timestep to all computes that store invocation times
// since any of them may be invoked by initial thermo
// do not clear out invocation times stored within a compute,
// b/c some may be holdovers from previous run, like for ave fixes
for (i = 0; i < ncompute; i++) {
compute[i]->init();
compute[i]->invoked_scalar = -1;
compute[i]->invoked_vector = -1;
compute[i]->invoked_array = -1;
compute[i]->invoked_peratom = -1;
compute[i]->invoked_local = -1;
}
addstep_compute_all(update->ntimestep);
// warn if any particle is time integrated more than once
int nlocal = atom->nlocal;
int *mask = atom->mask;
int *flag = new int[nlocal];
for (i = 0; i < nlocal; i++) flag[i] = 0;
int groupbit;
for (i = 0; i < nfix; i++) {
if (fix[i]->time_integrate == 0) continue;
groupbit = fix[i]->groupbit;
for (j = 0; j < nlocal; j++)
if (mask[j] & groupbit) flag[j]++;
}
int check = 0;
for (i = 0; i < nlocal; i++)
if (flag[i] > 1) check = 1;
delete [] flag;
int checkall;
MPI_Allreduce(&check,&checkall,1,MPI_INT,MPI_SUM,world);
if (comm->me == 0 && checkall)
error->warning("One or more atoms are time integrated more than once");
}
/* ----------------------------------------------------------------------
1st half of integrate call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::initial_integrate(int vflag)
{
for(int i = 0; i < n_initial_integrate_cuda; i++)
fix[list_initial_integrate_cuda[i]]->initial_integrate(vflag);
if(n_initial_integrate_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_initial_integrate_host; i++)
fix[list_initial_integrate[i]]->initial_integrate(vflag);
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
post_integrate call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::post_integrate()
{
for(int i = 0; i < n_post_integrate_cuda; i++)
fix[list_post_integrate_cuda[i]]->post_integrate();
if(n_post_integrate_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_post_integrate_host; i++)
fix[list_post_integrate[i]]->post_integrate();
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
pre_exchange call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::pre_exchange()
{
for(int i = 0; i < n_pre_exchange_cuda; i++)
fix[list_pre_exchange_cuda[i]]->pre_exchange();
if(n_pre_exchange_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_pre_exchange_host; i++)
fix[list_pre_exchange[i]]->pre_exchange();
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
pre_neighbor call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::pre_neighbor()
{
for(int i = 0; i < n_pre_neighbor_cuda; i++)
fix[list_pre_neighbor_cuda[i]]->pre_neighbor();
if(n_pre_neighbor_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_pre_neighbor_host; i++)
fix[list_pre_neighbor[i]]->pre_neighbor();
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
pre_force call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::pre_force(int vflag)
{
for(int i = 0; i < n_pre_force_cuda; i++)
fix[list_pre_force_cuda[i]]->pre_force(vflag);
if(n_pre_force_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_pre_force_host; i++)
fix[list_pre_force[i]]->pre_force(vflag);
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
post_force call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::post_force(int vflag)
{
for(int i = 0; i < n_post_force_cuda; i++)
fix[list_post_force_cuda[i]]->post_force(vflag);
if(n_post_force_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_post_force_host; i++)
fix[list_post_force[i]]->post_force(vflag);
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
2nd half of integrate call, only for relevant fixes
------------------------------------------------------------------------- */
void ModifyCuda::final_integrate()
{
for (int i = 0; i < n_final_integrate_cuda; i++)
fix[list_final_integrate_cuda[i]]->final_integrate();
if(n_final_integrate_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_final_integrate_host; i++)
fix[list_final_integrate[i]]->final_integrate();
cuda->uploadAll(); cuda->oncpu = false;
}
}
/* ----------------------------------------------------------------------
end-of-timestep call, only for relevant fixes
only call fix->end_of_step() on timesteps that are multiples of nevery
------------------------------------------------------------------------- */
void ModifyCuda::end_of_step()
{
for (int i = 0; i < n_end_of_step_cuda; i++)
if (update->ntimestep % end_of_step_every_cuda[i] == 0)
fix[list_end_of_step_cuda[i]]->end_of_step();
if(n_end_of_step_host != 0)
{
int do_thisstep=0;
for (int i = 0; i < n_end_of_step_host; i++)
if (update->ntimestep % end_of_step_every[i] == 0) do_thisstep=1;
if(do_thisstep)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_end_of_step_host; i++)
if (update->ntimestep % end_of_step_every[i] == 0)
fix[list_end_of_step[i]]->end_of_step();
cuda->uploadAll(); cuda->oncpu = false;
}
}
}
/* ----------------------------------------------------------------------
thermo energy call, only for relevant fixes
called by Thermo class
compute_scalar() is fix call to return energy
------------------------------------------------------------------------- */
double ModifyCuda::thermo_energy()
{
double energy = 0.0;
for (int i = 0; i < n_thermo_energy_cuda; i++)
energy += fix[list_thermo_energy_cuda[i]]->compute_scalar();
if(n_thermo_energy_host != 0)
{
cuda->downloadAll(); cuda->oncpu = true;
for (int i = 0; i < n_thermo_energy_host; i++)
energy += fix[list_thermo_energy[i]]->compute_scalar();
cuda->uploadAll(); cuda->oncpu = false;
}
return energy;
}
void ModifyCuda::list_init_end_of_step_cuda(int mask, int &n, int *&list)
{
delete [] list;
delete [] end_of_step_every_cuda;
n = 0;
for (int i = 0; i < nfix; i++) if (fmask[i] & mask) n++;
list = new int[n];
end_of_step_every_cuda = new int[n];
n = 0;
for (int i = 0; i < nfix; i++)
if (fmask[i] & mask) {
list[n] = i;
end_of_step_every_cuda[n++] = fix[i]->nevery;
}
}
diff --git a/src/USER-CUDA/pair_born_coul_long_cuda.cpp b/src/USER-CUDA/pair_born_coul_long_cuda.cpp
index 264809940..8e107a515 100644
--- a/src/USER-CUDA/pair_born_coul_long_cuda.cpp
+++ b/src/USER-CUDA/pair_born_coul_long_cuda.cpp
@@ -1,186 +1,186 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
Contributing author: Paul Crozier (SNL)
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_born_coul_long_cuda.h"
#include "pair_born_coul_long_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairBornCoulLongCuda::PairBornCoulLongCuda(LAMMPS *lmp) : PairBornCoulLong(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->shared_data.pair.use_block_per_atom = 0;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairBornCoulLongCuda::allocate()
{
if(! allocated) PairBornCoulLong::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.coeff1 = rhoinv;
cuda->shared_data.pair.coeff2 = sigma;
cuda->shared_data.pair.coeff3 = a;
cuda->shared_data.pair.coeff4 = c;
cuda->shared_data.pair.coeff5 = d;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairBornCoulLongCuda::compute(int eflag, int vflag)
{
MYDBG( printf("PairBornCoulLongCuda compute start\n"); fflush(stdout);)
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
#ifdef CUDA_USE_BINNING
Cuda_PairBornCoulLongCuda(& cuda->shared_data, eflag, vflag);
#else
Cuda_PairBornCoulLongCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
#endif
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
MYDBG( printf("PairBornCoulLongCuda compute end\n"); fflush(stdout);)
}
/* ---------------------------------------------------------------------- */
void PairBornCoulLongCuda::settings(int narg, char **arg)
{
PairBornCoulLong::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
}
/* ---------------------------------------------------------------------- */
void PairBornCoulLongCuda::coeff(int narg, char **arg)
{
PairBornCoulLong::coeff(narg, arg);
allocate();
}
void PairBornCoulLongCuda::init_style()
{
if (!atom->q_flag)
error->all("Pair style born/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (strcmp(update->integrate_style,"respa") == 0) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
+ if (strstr(update->integrate_style,"respa")) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
cut_coulsq = cut_coul * cut_coul;
cuda->shared_data.pair.cut_coulsq_global=cut_coulsq;
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
cuda->shared_data.pair.g_ewald=g_ewald;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
if(ncoultablebits) error->warning("# CUDA: You asked for the useage of Coulomb Tables. This is not supported in CUDA Pair forces. Setting is ignored.\n");
}
void PairBornCoulLongCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairBornCoulLongCuda::init_list\n");)
PairBornCoulLong::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairBornCoulLongCuda::init_list end\n");)
}
void PairBornCoulLongCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairBornCoulLong::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_buck_coul_cut_cuda.cpp b/src/USER-CUDA/pair_buck_coul_cut_cuda.cpp
index 182624319..76d56d426 100644
--- a/src/USER-CUDA/pair_buck_coul_cut_cuda.cpp
+++ b/src/USER-CUDA/pair_buck_coul_cut_cuda.cpp
@@ -1,173 +1,173 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
Contributing author: Paul Crozier (SNL)
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_buck_coul_cut_cuda.h"
#include "pair_buck_coul_cut_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairBuckCoulCutCuda::PairBuckCoulCutCuda(LAMMPS *lmp) : PairBuckCoulCut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->shared_data.pair.use_block_per_atom = 0;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairBuckCoulCutCuda::allocate()
{
if(! allocated) PairBuckCoulCut::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut_coul = cut_coul;
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.coeff1 = rhoinv;
cuda->shared_data.pair.coeff2 = buck1;
cuda->shared_data.pair.coeff3 = buck2;
cuda->shared_data.pair.coeff4 = a;
cuda->shared_data.pair.coeff5 = c;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulCutCuda::compute(int eflag, int vflag)
{
MYDBG( printf("PairBuckCoulCutCuda compute start\n"); fflush(stdout);)
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairBuckCoulCutCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
MYDBG( printf("PairBuckCoulCutCuda compute end\n"); fflush(stdout);)
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulCutCuda::settings(int narg, char **arg)
{
PairBuckCoulCut::settings(narg, arg);
cuda->shared_data.pair.cut_coul_global = (F_FLOAT) cut_coul_global;
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulCutCuda::coeff(int narg, char **arg)
{
PairBuckCoulCut::coeff(narg, arg);
allocate();
}
void PairBuckCoulCutCuda::init_style()
{
if (!atom->q_flag)
error->all("Pair style buck/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (strcmp(update->integrate_style,"respa") == 0) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
+ if (strstr(update->integrate_style,"respa")) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
cuda->shared_data.pair.cut_coulsq_global=cut_coul_global * cut_coul_global;
if(ncoultablebits) error->warning("# CUDA: You asked for the useage of Coulomb Tables. This is not supported in CUDA Pair forces. Setting is ignored.\n");
}
void PairBuckCoulCutCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairBuckCoulCutCuda::init_list\n");)
PairBuckCoulCut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairBuckCoulCutCuda::init_list end\n");)
}
void PairBuckCoulCutCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairBuckCoulCut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_buck_coul_long_cuda.cpp b/src/USER-CUDA/pair_buck_coul_long_cuda.cpp
index abab49184..e825ee90b 100644
--- a/src/USER-CUDA/pair_buck_coul_long_cuda.cpp
+++ b/src/USER-CUDA/pair_buck_coul_long_cuda.cpp
@@ -1,184 +1,184 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
Contributing author: Paul Crozier (SNL)
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_buck_coul_long_cuda.h"
#include "pair_buck_coul_long_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairBuckCoulLongCuda::PairBuckCoulLongCuda(LAMMPS *lmp) : PairBuckCoulLong(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->shared_data.pair.use_block_per_atom = 0;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairBuckCoulLongCuda::allocate()
{
if(! allocated) PairBuckCoulLong::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.coeff1 = rhoinv;
cuda->shared_data.pair.coeff2 = buck1;
cuda->shared_data.pair.coeff3 = buck2;
cuda->shared_data.pair.coeff4 = a;
cuda->shared_data.pair.coeff5 = c;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulLongCuda::compute(int eflag, int vflag)
{
MYDBG( printf("PairBuckCoulLongCuda compute start\n"); fflush(stdout);)
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairBuckCoulLongCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
MYDBG( printf("PairBuckCoulLongCuda compute end\n"); fflush(stdout);)
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulLongCuda::settings(int narg, char **arg)
{
PairBuckCoulLong::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
}
/* ---------------------------------------------------------------------- */
void PairBuckCoulLongCuda::coeff(int narg, char **arg)
{
PairBuckCoulLong::coeff(narg, arg);
allocate();
}
void PairBuckCoulLongCuda::init_style()
{
if (!atom->q_flag)
error->all("Pair style buck/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (strcmp(update->integrate_style,"respa") == 0) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
+ if (strstr(update->integrate_style,"respa")) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
cut_coulsq = cut_coul * cut_coul;
cuda->shared_data.pair.cut_coulsq_global=cut_coulsq;
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
cuda->shared_data.pair.g_ewald=g_ewald;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
if(ncoultablebits) error->warning("# CUDA: You asked for the useage of Coulomb Tables. This is not supported in CUDA Pair forces. Setting is ignored.\n");
}
void PairBuckCoulLongCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairBuckCoulLongCuda::init_list\n");)
PairBuckCoulLong::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairBuckCoulLongCuda::init_list end\n");)
}
void PairBuckCoulLongCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairBuckCoulLong::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_buck_cuda.cpp b/src/USER-CUDA/pair_buck_cuda.cpp
index 53dfbbfc8..a4c4f15bd 100644
--- a/src/USER-CUDA/pair_buck_cuda.cpp
+++ b/src/USER-CUDA/pair_buck_cuda.cpp
@@ -1,169 +1,169 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
Contributing author: Paul Crozier (SNL)
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_buck_cuda.h"
#include "pair_buck_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairBuckCuda::PairBuckCuda(LAMMPS *lmp) : PairBuck(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->shared_data.pair.use_block_per_atom = 0;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairBuckCuda::allocate()
{
if(! allocated) PairBuck::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = rhoinv;
cuda->shared_data.pair.coeff2 = buck1;
cuda->shared_data.pair.coeff3 = buck2;
cuda->shared_data.pair.coeff4 = a;
cuda->shared_data.pair.coeff5 = c;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
}
}
/* ---------------------------------------------------------------------- */
void PairBuckCuda::compute(int eflag, int vflag)
{
MYDBG( printf("PairBuckCuda compute start\n"); fflush(stdout);)
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairBuckCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
MYDBG( printf("PairBuckCuda compute end\n"); fflush(stdout);)
}
/* ---------------------------------------------------------------------- */
void PairBuckCuda::settings(int narg, char **arg)
{
PairBuck::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairBuckCuda::coeff(int narg, char **arg)
{
PairBuck::coeff(narg, arg);
allocate();
}
void PairBuckCuda::init_style()
{
if (!atom->q_flag)
error->all("Pair style buck/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (strcmp(update->integrate_style,"respa") == 0) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
+ if (strstr(update->integrate_style,"respa")) error->all("Integrate Style Respa is not supported by pair style buck/coul/long/cuda");
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
if(ncoultablebits) error->warning("# CUDA: You asked for the useage of Coulomb Tables. This is not supported in CUDA Pair forces. Setting is ignored.\n");
}
void PairBuckCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairBuckCuda::init_list\n");)
PairBuck::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairBuckCuda::init_list end\n");)
}
void PairBuckCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairBuck::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.cpp b/src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.cpp
index c0128777d..2a4f7d2a9 100644
--- a/src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.cpp
+++ b/src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.cpp
@@ -1,204 +1,204 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_cg_cmm_coul_cut_cuda.h"
#include "pair_cg_cmm_coul_cut_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairCGCMMCoulCutCuda::PairCGCMMCoulCutCuda(LAMMPS *lmp) : PairCGCMMCoulCut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cg_type_double = NULL;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairCGCMMCoulCutCuda::allocate()
{
if(! allocated) PairCGCMMCoulCut::allocate();
int n = atom->ntypes;
if(! allocated2)
{
allocated2 = true;
memory->create(cg_type_double,n+1,n+1,"paircg:cgtypedouble");
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.cut_coul= cut_coul;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.coeff5 = cg_type_double;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
cg_type_double[i][j] = cg_type[i][j];
cg_type_double[j][i] = cg_type[i][j];
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCutCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairCGCMMCoulCutCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCutCuda::settings(int narg, char **arg)
{
PairCGCMMCoulCut::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
cuda->shared_data.pair.cut_coul_global = (F_FLOAT) cut_coul_global;
cuda->shared_data.pair.kappa = (F_FLOAT) kappa;
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulCutCuda::coeff(int narg, char **arg)
{
PairCGCMMCoulCut::coeff(narg, arg);
allocate();
}
void PairCGCMMCoulCutCuda::init_style()
{
MYDBG(printf("# CUDA PairCGCMMCoulCutCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
cut_respa=NULL;
if (force->newton) error->warning("Pair style uses does not use \"newton\" setting. You might test if \"newton off\" makes the simulation run faster.");
MYDBG(printf("# CUDA PairCGCMMCoulCutCuda::init_style end\n"); )
}
void PairCGCMMCoulCutCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairCGCMMCoulCutCuda::init_list\n");)
PairCGCMMCoulCut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairCGCMMCoulCutCuda::init_list end\n");)
}
void PairCGCMMCoulCutCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairCGCMMCoulCut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.cpp b/src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.cpp
index 6637c3dc8..12b9169dc 100644
--- a/src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.cpp
+++ b/src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.cpp
@@ -1,204 +1,204 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_cg_cmm_coul_debye_cuda.h"
#include "pair_cg_cmm_coul_debye_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairCGCMMCoulDebyeCuda::PairCGCMMCoulDebyeCuda(LAMMPS *lmp) : PairCGCMMCoulCut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cg_type_double = NULL;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairCGCMMCoulDebyeCuda::allocate()
{
if(! allocated) PairCGCMMCoulCut::allocate();
int n = atom->ntypes;
if(! allocated2)
{
allocated2 = true;
memory->create(cg_type_double,n+1,n+1,"paircg:cgtypedouble");
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.cut_coul= cut_coul;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.coeff5 = cg_type_double;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
cg_type_double[i][j] = cg_type[i][j];
cg_type_double[j][i] = cg_type[i][j];
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulDebyeCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairCGCMMCoulDebyeCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulDebyeCuda::settings(int narg, char **arg)
{
PairCGCMMCoulCut::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
cuda->shared_data.pair.cut_coul_global = (F_FLOAT) cut_coul_global;
cuda->shared_data.pair.kappa = (F_FLOAT) kappa;
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulDebyeCuda::coeff(int narg, char **arg)
{
PairCGCMMCoulCut::coeff(narg, arg);
allocate();
}
void PairCGCMMCoulDebyeCuda::init_style()
{
MYDBG(printf("# CUDA PairCGCMMCoulDebyeCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
cut_respa=NULL;
if (force->newton) error->warning("Pair style uses does not use \"newton\" setting. You might test if \"newton off\" makes the simulation run faster.");
MYDBG(printf("# CUDA PairCGCMMCoulDebyeCuda::init_style end\n"); )
}
void PairCGCMMCoulDebyeCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairCGCMMCoulDebyeCuda::init_list\n");)
PairCGCMMCoulCut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairCGCMMCoulDebyeCuda::init_list end\n");)
}
void PairCGCMMCoulDebyeCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairCGCMMCoulCut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_cg_cmm_coul_long_cuda.cpp b/src/USER-CUDA/pair_cg_cmm_coul_long_cuda.cpp
index fe8038900..2e8e2d0c9 100644
--- a/src/USER-CUDA/pair_cg_cmm_coul_long_cuda.cpp
+++ b/src/USER-CUDA/pair_cg_cmm_coul_long_cuda.cpp
@@ -1,206 +1,206 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_cg_cmm_coul_long_cuda.h"
#include "pair_cg_cmm_coul_long_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairCGCMMCoulLongCuda::PairCGCMMCoulLongCuda(LAMMPS *lmp) : PairCGCMMCoulLong(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cg_type_double = NULL;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairCGCMMCoulLongCuda::allocate()
{
if(! allocated) PairCGCMMCoulLong::allocate();
int n = atom->ntypes;
if(! allocated2)
{
allocated2 = true;
memory->create(cg_type_double,n+1,n+1,"paircg:cgtypedouble");
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.cut_coul= cut_coul;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.coeff5 = cg_type_double;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
cg_type_double[i][j] = cg_type[i][j];
cg_type_double[j][i] = cg_type[i][j];
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLongCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairCGCMMCoulLongCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLongCuda::settings(int narg, char **arg)
{
PairCGCMMCoulLong::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
cuda->shared_data.pair.cut_coul_global = (F_FLOAT) cut_coul_global;
cuda->shared_data.pair.kappa = (F_FLOAT) kappa;
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCoulLongCuda::coeff(int narg, char **arg)
{
PairCGCMMCoulLong::coeff(narg, arg);
allocate();
}
void PairCGCMMCoulLongCuda::init_style()
{
MYDBG(printf("# CUDA PairCGCMMCoulLongCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
g_ewald = force->kspace->g_ewald;
cuda->shared_data.pair.g_ewald=g_ewald;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
cut_respa=NULL;
if (force->newton) error->warning("Pair style uses does not use \"newton\" setting. You might test if \"newton off\" makes the simulation run faster.");
MYDBG(printf("# CUDA PairCGCMMCoulLongCuda::init_style end\n"); )
}
void PairCGCMMCoulLongCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairCGCMMCoulLongCuda::init_list\n");)
PairCGCMMCoulLong::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairCGCMMCoulLongCuda::init_list end\n");)
}
void PairCGCMMCoulLongCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairCGCMMCoulLong::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_cg_cmm_cuda.cpp b/src/USER-CUDA/pair_cg_cmm_cuda.cpp
index c08bf45b5..f7db7ef96 100644
--- a/src/USER-CUDA/pair_cg_cmm_cuda.cpp
+++ b/src/USER-CUDA/pair_cg_cmm_cuda.cpp
@@ -1,201 +1,201 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_cg_cmm_cuda.h"
#include "pair_cg_cmm_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairCGCMMCuda::PairCGCMMCuda(LAMMPS *lmp) : PairCGCMM(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cg_type_double = NULL;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairCGCMMCuda::allocate()
{
if(! allocated) PairCGCMM::allocate();
int n = atom->ntypes;
if(! allocated2)
{
allocated2 = true;
memory->create(cg_type_double,n+1,n+1,"paircg:cgtypedouble");
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.coeff5 = cg_type_double;
/*cu_lj1_gm = new cCudaData<double, F_FLOAT, x> ((double*)lj1, &cuda->shared_data.pair.coeff1_gm, (atom->ntypes+1)*(atom->ntypes+1));
cu_lj2_gm = new cCudaData<double, F_FLOAT, x> ((double*)lj2, &cuda->shared_data.pair.coeff2_gm, (atom->ntypes+1)*(atom->ntypes+1));
cu_lj3_gm = new cCudaData<double, F_FLOAT, x> ((double*)lj3, &cuda->shared_data.pair.coeff3_gm, (atom->ntypes+1)*(atom->ntypes+1));
cu_lj4_gm = new cCudaData<double, F_FLOAT, x> ((double*)lj4, &cuda->shared_data.pair.coeff4_gm, (atom->ntypes+1)*(atom->ntypes+1));
cu_cg_type_double_gm = new cCudaData<double, F_FLOAT, x> ((double*)cg_type_double, &cuda->shared_data.pair.coeff5_gm, (atom->ntypes+1)*(atom->ntypes+1));*/
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
}
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
cg_type_double[i][j] = cg_type[i][j];
cg_type_double[j][i] = cg_type[i][j];
}
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairCGCMMCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCuda::settings(int narg, char **arg)
{
PairCGCMM::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
}
/* ---------------------------------------------------------------------- */
void PairCGCMMCuda::coeff(int narg, char **arg)
{
PairCGCMM::coeff(narg, arg);
allocate();
}
void PairCGCMMCuda::init_style()
{
MYDBG(printf("# CUDA PairCGCMMCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cut_respa=NULL;
MYDBG(printf("# CUDA PairCGCMMCuda::init_style end\n"); )
}
void PairCGCMMCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairCGCMMCuda::init_list\n");)
PairCGCMM::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairCGCMMCuda::init_list end\n");)
}
void PairCGCMMCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairCGCMM::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_gran_hooke_cuda.cpp b/src/USER-CUDA/pair_gran_hooke_cuda.cpp
index bcdefac7f..6d3dd7324 100644
--- a/src/USER-CUDA/pair_gran_hooke_cuda.cpp
+++ b/src/USER-CUDA/pair_gran_hooke_cuda.cpp
@@ -1,247 +1,247 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_gran_hooke_cuda.h"
#include "pair_gran_hooke_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "modify.h"
#include "fix_pour.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairGranHookeCuda::PairGranHookeCuda(LAMMPS *lmp) : PairGranHooke(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairGranHookeCuda::allocate()
{
if(! allocated) PairGranHooke::allocate();
if(! allocated2)
{
allocated2 = true;
int n = atom->ntypes;
cuda->shared_data.pair.cutsq = cutsq;
memory->create(cuda->shared_data.pair.coeff1,n+1,n+1,
"pair:cuda_coeff1");
memory->create(cuda->shared_data.pair.coeff2,
n+1,n+1,"pair:cuda_coeff2");
cuda->shared_data.pair.coeff1[0][0]=kn;
cuda->shared_data.pair.coeff1[0][1]=kt;
cuda->shared_data.pair.coeff1[1][0]=gamman;
cuda->shared_data.pair.coeff1[1][1]=gammat;
cuda->shared_data.pair.coeff2[0][0]=xmu;
cuda->shared_data.pair.coeff2[0][1]=dampflag;
}
}
/* ---------------------------------------------------------------------- */
void PairGranHookeCuda::compute(int eflag, int vflag)
{
cuda->shared_data.pair.use_block_per_atom = 0;
//cuda->cu_debugdata->memset_device(0);
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairGranHookeCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
//cuda->cu_debugdata->download();
//printf("%lf %lf %lf %lf %lf %lf\n",1.0e-6*cuda->debugdata[0],1.0e-6*cuda->debugdata[1],1.0e-6*cuda->debugdata[2],1.0e-6*cuda->debugdata[3],1.0e-6*cuda->debugdata[4],1.0e-6*cuda->debugdata[5]);
}
/* ---------------------------------------------------------------------- */
void PairGranHookeCuda::settings(int narg, char **arg)
{
PairGranHooke::settings(narg, arg);
}
/* ---------------------------------------------------------------------- */
void PairGranHookeCuda::coeff(int narg, char **arg)
{
PairGranHooke::coeff(narg, arg);
allocate();
}
void PairGranHookeCuda::init_style()
{
int i;
MYDBG(printf("# CUDA PairGranHookeCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->gran = 1;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
if (!atom->radius_flag || !atom->omega_flag || !atom->torque_flag)
error->all("Pair granular requires atom attributes radius, omega, torque");
if (comm->ghost_velocity == 0)
error->all("Pair granular requires ghost atoms store velocity");
// need a half neigh list and optionally a granular history neigh list
dt = update->dt;
// check for Fix freeze and set freeze_group_bit
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"freeze") == 0) break;
if (i < modify->nfix) freeze_group_bit = modify->fix[i]->groupbit;
else freeze_group_bit = 0;
cuda->shared_data.pair.freeze_group_bit=freeze_group_bit;
// check for Fix pour and set pour_type and pour_maxdiam
int pour_type = 0;
double pour_maxrad = 0.0;
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"pour") == 0) break;
if (i < modify->nfix) {
pour_type = ((FixPour *) modify->fix[i])->ntype;
pour_maxrad = ((FixPour *) modify->fix[i])->radius_hi;
}
// set maxrad_dynamic and maxrad_frozen for each type
// include future Fix pour particles as dynamic
for (i = 1; i <= atom->ntypes; i++)
onerad_dynamic[i] = onerad_frozen[i] = 0.0;
if (pour_type) onerad_dynamic[pour_type] = pour_maxrad;
double *radius = atom->radius;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++){
if (mask[i] & freeze_group_bit)
onerad_frozen[type[i]] = MAX(onerad_frozen[type[i]],radius[i]);
else
onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius[i]);
}
MPI_Allreduce(&onerad_dynamic[1],&maxrad_dynamic[1],atom->ntypes,
MPI_DOUBLE,MPI_MAX,world);
MPI_Allreduce(&onerad_frozen[1],&maxrad_frozen[1],atom->ntypes,
MPI_DOUBLE,MPI_MAX,world);
MYDBG(printf("# CUDA PairGranHookeCuda::init_style end\n"); )
}
void PairGranHookeCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairGranHookeCuda::init_list\n");)
PairGranHooke::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairGranHookeCuda::init_list end\n");)
}
void PairGranHookeCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairGranHooke::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_lj96_cut_cuda.cpp b/src/USER-CUDA/pair_lj96_cut_cuda.cpp
index 2550be94a..c5ad2b1ad 100644
--- a/src/USER-CUDA/pair_lj96_cut_cuda.cpp
+++ b/src/USER-CUDA/pair_lj96_cut_cuda.cpp
@@ -1,184 +1,184 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_lj96_cut_cuda.h"
#include "pair_lj96_cut_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJ96CutCuda::PairLJ96CutCuda(LAMMPS *lmp) : PairLJ96Cut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairLJ96CutCuda::allocate()
{
if(! allocated) PairLJ96Cut::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairLJ96CutCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairLJ96CutCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairLJ96CutCuda::settings(int narg, char **arg)
{
PairLJ96Cut::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairLJ96CutCuda::coeff(int narg, char **arg)
{
PairLJ96Cut::coeff(narg, arg);
allocate();
}
void PairLJ96CutCuda::init_style()
{
MYDBG(printf("# CUDA PairLJ96CutCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cut_respa = NULL;
MYDBG(printf("# CUDA PairLJ96CutCuda::init_style end\n"); )
}
void PairLJ96CutCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairLJ96CutCuda::init_list\n");)
PairLJ96Cut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairLJ96CutCuda::init_list end\n");)
}
void PairLJ96CutCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairLJ96Cut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_lj_cut_coul_long_cuda.cpp b/src/USER-CUDA/pair_lj_cut_coul_long_cuda.cpp
index bdf4c367d..3498421f1 100644
--- a/src/USER-CUDA/pair_lj_cut_coul_long_cuda.cpp
+++ b/src/USER-CUDA/pair_lj_cut_coul_long_cuda.cpp
@@ -1,221 +1,221 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
Contributing author: Paul Crozier (SNL)
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_lj_cut_coul_long_cuda.h"
#include "pair_lj_cut_coul_long_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "kspace.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairLJCutCoulLongCuda::PairLJCutCoulLongCuda(LAMMPS *lmp) : PairLJCutCoulLong(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairLJCutCoulLongCuda::allocate()
{
if(! allocated) PairLJCutCoulLong::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut_lj;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLongCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(eflag) cuda->cu_eng_coul->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairLJCutCoulLongCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(eflag) cuda->cu_eng_coul->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLongCuda::settings(int narg, char **arg)
{
PairLJCutCoulLong::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_lj_global;
}
/* ---------------------------------------------------------------------- */
void PairLJCutCoulLongCuda::coeff(int narg, char **arg)
{
PairLJCutCoulLong::coeff(narg, arg);
allocate();
}
void PairLJCutCoulLongCuda::init_style()
{
if (!atom->q_flag)
error->all("Pair style lj/cut/coul/long requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
}
cut_coulsq = cut_coul * cut_coul;
cuda->shared_data.pair.cut_coul_global=cut_coul;
cuda->shared_data.pair.cut_coulsq_global=cut_coulsq;
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
if (force->newton) error->warning("Pair style uses does not use \"newton\" setting. You might test if \"newton off\" makes the simulation run faster.");
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
cuda->shared_data.pair.g_ewald=g_ewald;
cuda->shared_data.pppm.qqrd2e=force->qqrd2e;
if(ncoultablebits) error->warning("# CUDA: You asked for the useage of Coulomb Tables. This is not supported in CUDA Pair forces. Setting is ignored.\n");
}
void PairLJCutCoulLongCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairLJCutCoulLongCuda::init_list\n");)
PairLJCutCoulLong::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairLJCutCoulLongCuda::init_list end\n");)
}
void PairLJCutCoulLongCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairLJCutCoulLong::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_lj_cut_cuda.cpp b/src/USER-CUDA/pair_lj_cut_cuda.cpp
index 52c2cf7d0..0d8304ad9 100644
--- a/src/USER-CUDA/pair_lj_cut_cuda.cpp
+++ b/src/USER-CUDA/pair_lj_cut_cuda.cpp
@@ -1,184 +1,184 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_lj_cut_cuda.h"
#include "pair_lj_cut_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJCutCuda::PairLJCutCuda(LAMMPS *lmp) : PairLJCut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairLJCutCuda::allocate()
{
if(! allocated) PairLJCut::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairLJCutCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutCuda::settings(int narg, char **arg)
{
PairLJCut::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairLJCutCuda::coeff(int narg, char **arg)
{
PairLJCut::coeff(narg, arg);
allocate();
}
void PairLJCutCuda::init_style()
{
MYDBG(printf("# CUDA PairLJCutCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cut_respa = NULL;
MYDBG(printf("# CUDA PairLJCutCuda::init_style end\n"); )
}
void PairLJCutCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairLJCutCuda::init_list\n");)
PairLJCut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairLJCutCuda::init_list end\n");)
}
void PairLJCutCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairLJCut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_lj_cut_experimental_cuda.cpp b/src/USER-CUDA/pair_lj_cut_experimental_cuda.cpp
index 1cc388162..408eb2193 100644
--- a/src/USER-CUDA/pair_lj_cut_experimental_cuda.cpp
+++ b/src/USER-CUDA/pair_lj_cut_experimental_cuda.cpp
@@ -1,183 +1,183 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_lj_cut_experimental_cuda.h"
#include "pair_lj_cut_experimental_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJCutExperimentalCuda::PairLJCutExperimentalCuda(LAMMPS *lmp) : PairLJCut(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairLJCutExperimentalCuda::allocate()
{
if(! allocated) PairLJCut::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutExperimentalCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairLJCutExperimentalCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
CudaWrapper_Sync();
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairLJCutExperimentalCuda::settings(int narg, char **arg)
{
PairLJCut::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairLJCutExperimentalCuda::coeff(int narg, char **arg)
{
PairLJCut::coeff(narg, arg);
allocate();
}
void PairLJCutExperimentalCuda::init_style()
{
MYDBG(printf("# CUDA PairLJCutExperimentalCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
cut_respa = NULL;
MYDBG(printf("# CUDA PairLJCutExperimentalCuda::init_style end\n"); )
}
void PairLJCutExperimentalCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairLJCutExperimentalCuda::init_list\n");)
PairLJCut::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairLJCutExperimentalCuda::init_list end\n");)
}
void PairLJCutExperimentalCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairLJCut::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_lj_expand_cuda.cpp b/src/USER-CUDA/pair_lj_expand_cuda.cpp
index 045fa6bce..a326c633f 100644
--- a/src/USER-CUDA/pair_lj_expand_cuda.cpp
+++ b/src/USER-CUDA/pair_lj_expand_cuda.cpp
@@ -1,185 +1,185 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_lj_expand_cuda.h"
#include "pair_lj_expand_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJExpandCuda::PairLJExpandCuda(LAMMPS *lmp) : PairLJExpand(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairLJExpandCuda::allocate()
{
if(! allocated) PairLJExpand::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.cutsq = cutsq;
cuda->shared_data.pair.coeff1 = lj1;
cuda->shared_data.pair.coeff2 = lj2;
cuda->shared_data.pair.coeff3 = lj3;
cuda->shared_data.pair.coeff4 = lj4;
cuda->shared_data.pair.coeff5 = shift;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
cuda->shared_data.pair.special_coul = force->special_coul;
}
}
/* ---------------------------------------------------------------------- */
void PairLJExpandCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairLJExpandCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairLJExpandCuda::settings(int narg, char **arg)
{
PairLJExpand::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairLJExpandCuda::coeff(int narg, char **arg)
{
PairLJExpand::coeff(narg, arg);
allocate();
}
void PairLJExpandCuda::init_style()
{
MYDBG(printf("# CUDA PairLJExpandCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
MYDBG(printf("# CUDA PairLJExpandCuda::init_style end\n"); )
}
void PairLJExpandCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairLJExpandCuda::init_list\n");)
PairLJExpand::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairLJExpandCuda::init_list end\n");)
}
void PairLJExpandCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairLJExpand::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pair_morse_cuda.cpp b/src/USER-CUDA/pair_morse_cuda.cpp
index ed67c1185..2ad2bb7ea 100644
--- a/src/USER-CUDA/pair_morse_cuda.cpp
+++ b/src/USER-CUDA/pair_morse_cuda.cpp
@@ -1,182 +1,182 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
Original Version:
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
See the README file in the top-level LAMMPS directory.
-----------------------------------------------------------------------
USER-CUDA Package and associated modifications:
https://sourceforge.net/projects/lammpscuda/
Christian Trott, christian.trott@tu-ilmenau.de
Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
Theoretical Physics II, University of Technology Ilmenau, Germany
See the README file in the USER-CUDA directory.
This software is distributed under the GNU General Public License.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_morse_cuda.h"
#include "pair_morse_cuda_cu.h"
#include "cuda_data.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "cuda_neigh_list.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
#include "cuda.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairMorseCuda::PairMorseCuda(LAMMPS *lmp) : PairMorse(lmp)
{
cuda = lmp->cuda;
if(cuda == NULL)
error->all("You cannot use a /cuda class, without activating 'cuda' acceleration. Provide '-c on' as command-line argument to LAMMPS..");
allocated2 = false;
cuda->shared_data.pair.cudable_force = 1;
cuda->setSystemParams();
}
/* ----------------------------------------------------------------------
remember pointer to arrays in cuda shared data
------------------------------------------------------------------------- */
void PairMorseCuda::allocate()
{
if(! allocated) PairMorse::allocate();
if(! allocated2)
{
allocated2 = true;
cuda->shared_data.pair.cut = cut;
cuda->shared_data.pair.coeff1 = r0;
cuda->shared_data.pair.coeff2 = alpha;
cuda->shared_data.pair.coeff3 = morse1;
cuda->shared_data.pair.coeff4 = d0;
cuda->shared_data.pair.offset = offset;
cuda->shared_data.pair.special_lj = force->special_lj;
}
}
/* ---------------------------------------------------------------------- */
void PairMorseCuda::compute(int eflag, int vflag)
{
if (eflag || vflag) ev_setup(eflag,vflag);
if(eflag) cuda->cu_eng_vdwl->upload();
if(vflag) cuda->cu_virial->upload();
Cuda_PairMorseCuda(& cuda->shared_data, & cuda_neigh_list->sneighlist, eflag, vflag, eflag_atom, vflag_atom);
if(not cuda->shared_data.pair.collect_forces_later)
{
if(eflag) cuda->cu_eng_vdwl->download();
if(vflag) cuda->cu_virial->download();
}
}
/* ---------------------------------------------------------------------- */
void PairMorseCuda::settings(int narg, char **arg)
{
PairMorse::settings(narg, arg);
cuda->shared_data.pair.cut_global = (F_FLOAT) cut_global;
}
/* ---------------------------------------------------------------------- */
void PairMorseCuda::coeff(int narg, char **arg)
{
PairMorse::coeff(narg, arg);
allocate();
}
void PairMorseCuda::init_style()
{
MYDBG(printf("# CUDA PairMorseCuda::init_style start\n"); )
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
}
else
{
irequest = neighbor->request(this);
neighbor->requests[irequest]->full = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->cudable = 1;
//neighbor->style=0; //0=NSQ neighboring
}
MYDBG(printf("# CUDA PairMorseCuda::init_style end\n"); )
}
void PairMorseCuda::init_list(int id, NeighList *ptr)
{
MYDBG(printf("# CUDA PairMorseCuda::init_list\n");)
PairMorse::init_list(id, ptr);
#ifndef CUDA_USE_BINNING
// right now we can only handle verlet (id 0), not respa
if(id == 0) cuda_neigh_list = cuda->registerNeighborList(ptr);
// see Neighbor::init() for details on lammps lists' logic
#endif
MYDBG(printf("# CUDA PairMorseCuda::init_list end\n");)
}
void PairMorseCuda::ev_setup(int eflag, int vflag)
{
int maxeatomold=maxeatom;
PairMorse::ev_setup(eflag,vflag);
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_eatom; cuda->cu_eatom = new cCudaData<double, ENERGY_FLOAT, x > ((double*)eatom, & cuda->shared_data.atom.eatom , atom->nmax );}
if (eflag_atom && atom->nmax > maxeatomold)
{delete cuda->cu_vatom; cuda->cu_vatom = new cCudaData<double, ENERGY_FLOAT, yx > ((double*)vatom, & cuda->shared_data.atom.eatom , atom->nmax, 6 );}
}
diff --git a/src/USER-CUDA/pppm_cuda.cu b/src/USER-CUDA/pppm_cuda.cu
deleted file mode 100644
index cabea885d..000000000
--- a/src/USER-CUDA/pppm_cuda.cu
+++ /dev/null
@@ -1,579 +0,0 @@
-/* ----------------------------------------------------------------------
- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
-
- Original Version:
- http://lammps.sandia.gov, Sandia National Laboratories
- Steve Plimpton, sjplimp@sandia.gov
-
- See the README file in the top-level LAMMPS directory.
-
- -----------------------------------------------------------------------
-
- USER-CUDA Package and associated modifications:
- https://sourceforge.net/projects/lammpscuda/
-
- Christian Trott, christian.trott@tu-ilmenau.de
- Lars Winterfeld, lars.winterfeld@tu-ilmenau.de
- Theoretical Physics II, University of Technology Ilmenau, Germany
-
- See the README file in the USER-CUDA directory.
-
- This software is distributed under the GNU General Public License.
-------------------------------------------------------------------------- */
-
-#include "cuda_precision.h"
-//#define FFT_CUFFT
-#define MY_PREFIX pppm
-#include "cuda_shared.h"
-#include "cuda_common.h"
-#include "pppm_cuda_cu.h"
-#include "cuda_runtime.h"
-#include <stdio.h>
-
-//#include "crm_cuda_utils.cu"
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
-
- __device__ __constant__ FFT_FLOAT* work1;
- __device__ __constant__ FFT_FLOAT* work2;
- __device__ __constant__ FFT_FLOAT* work3;
- __device__ __constant__ PPPM_FLOAT* greensfn;
- __device__ __constant__ PPPM_FLOAT* gf_b;
- __device__ __constant__ PPPM_FLOAT* fkx;
- __device__ __constant__ PPPM_FLOAT* fky;
- __device__ __constant__ PPPM_FLOAT* fkz;
- __device__ __constant__ PPPM_FLOAT* vg;
- __device__ __constant__ int* part2grid;
- __device__ __constant__ PPPM_FLOAT* density_brick;
- __device__ __constant__ int* density_brick_int;
- __device__ __constant__ PPPM_FLOAT density_intScale;
- __device__ __constant__ PPPM_FLOAT* vdx_brick;
- __device__ __constant__ PPPM_FLOAT* vdy_brick;
- __device__ __constant__ PPPM_FLOAT* vdz_brick;
- __device__ __constant__ PPPM_FLOAT* density_fft;
- __device__ __constant__ ENERGY_FLOAT* energy;
- __device__ __constant__ ENERGY_FLOAT* virial;
- __device__ __constant__ int nxlo_in;
- __device__ __constant__ int nxhi_in;
- __device__ __constant__ int nxlo_out;
- __device__ __constant__ int nxhi_out;
- __device__ __constant__ int nylo_in;
- __device__ __constant__ int nyhi_in;
- __device__ __constant__ int nylo_out;
- __device__ __constant__ int nyhi_out;
- __device__ __constant__ int nzlo_in;
- __device__ __constant__ int nzhi_in;
- __device__ __constant__ int nzlo_out;
- __device__ __constant__ int nzhi_out;
- __device__ __constant__ int nxlo_fft;
- __device__ __constant__ int nxhi_fft;
- __device__ __constant__ int nylo_fft;
- __device__ __constant__ int nyhi_fft;
- __device__ __constant__ int nzlo_fft;
- __device__ __constant__ int nzhi_fft;
- __device__ __constant__ int nx_pppm;
- __device__ __constant__ int ny_pppm;
- __device__ __constant__ int nz_pppm;
- __device__ __constant__ int slabflag;
- __device__ __constant__ PPPM_FLOAT qqrd2e;
- __device__ __constant__ int order;
- //__device__ __constant__ float3 sublo;
- __device__ __constant__ PPPM_FLOAT* rho_coeff;
- __device__ __constant__ int nmax;
- __device__ __constant__ int nlocal;
- __device__ __constant__ PPPM_FLOAT* debugdata;
- __device__ __constant__ PPPM_FLOAT delxinv;
- __device__ __constant__ PPPM_FLOAT delyinv;
- __device__ __constant__ PPPM_FLOAT delzinv;
- __device__ __constant__ int nlower;
- __device__ __constant__ int nupper;
- __device__ __constant__ PPPM_FLOAT shiftone;
-
-
-#include "pppm_cuda_kernel.cu"
-#include "stdio.h"
-void pppm_device_init(void* cu_density_brick, void* cu_vdx_brick, void* cu_vdy_brick, void* cu_vdz_brick, void* cu_density_fft, void* cu_energy, void* cu_virial
- ,void* cu_work1,void* cu_work2, void* cu_work3,void* cu_greensfn, void* cu_fkx, void* cu_fky, void* cu_fkz, void* cu_vg
- ,int cu_nxlo_in,int cu_nxhi_in,int cu_nylo_in,int cu_nyhi_in,int cu_nzlo_in,int cu_nzhi_in,int cu_nxlo_out,int cu_nxhi_out,int cu_nylo_out,int cu_nyhi_out,int cu_nzlo_out,int cu_nzhi_out,int cu_nx_pppm,int cu_ny_pppm,int cu_nz_pppm
- ,int cu_nxlo_fft,int cu_nxhi_fft,int cu_nylo_fft,int cu_nyhi_fft,int cu_nzlo_fft,int cu_nzhi_fft,void* cu_gf_b
- ,double cu_qqrd2e, int cu_order, void* cu_rho_coeff,void* cu_debugdata,void* cu_density_brick_int,int cu_slabflag
- )
-{
- CUT_CHECK_ERROR("ERROR-CUDA poisson_init Start");
- cudaMemcpyToSymbol("density_brick",&cu_density_brick, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("density_brick_int",&cu_density_brick_int, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("vdx_brick",&cu_vdx_brick, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("vdy_brick",&cu_vdy_brick, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("vdz_brick",&cu_vdz_brick, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("density_fft",&cu_density_fft, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("energy",&cu_energy, sizeof(ENERGY_FLOAT*));
- cudaMemcpyToSymbol("virial",&cu_virial, sizeof(ENERGY_FLOAT*));
- cudaMemcpyToSymbol("nxlo_in",&cu_nxlo_in, sizeof(int));
- cudaMemcpyToSymbol("nxhi_in",&cu_nxhi_in, sizeof(int));
- cudaMemcpyToSymbol("nxlo_out",&cu_nxlo_out, sizeof(int));
- cudaMemcpyToSymbol("nxhi_out",&cu_nxhi_out, sizeof(int));
- cudaMemcpyToSymbol("nylo_in",&cu_nylo_in, sizeof(int));
- cudaMemcpyToSymbol("nyhi_in",&cu_nyhi_in, sizeof(int));
- cudaMemcpyToSymbol("nylo_out",&cu_nylo_out, sizeof(int));
- cudaMemcpyToSymbol("nyhi_out",&cu_nyhi_out, sizeof(int));
- cudaMemcpyToSymbol("nzlo_in",&cu_nzlo_in, sizeof(int));
- cudaMemcpyToSymbol("nzhi_in",&cu_nzhi_in, sizeof(int));
- cudaMemcpyToSymbol("nzlo_out",&cu_nzlo_out, sizeof(int));
- cudaMemcpyToSymbol("nzhi_out",&cu_nzhi_out, sizeof(int));
- cudaMemcpyToSymbol("nxlo_fft",&cu_nxlo_fft, sizeof(int));
- cudaMemcpyToSymbol("nxhi_fft",&cu_nxhi_fft, sizeof(int));
- cudaMemcpyToSymbol("nylo_fft",&cu_nylo_fft, sizeof(int));
- cudaMemcpyToSymbol("nyhi_fft",&cu_nyhi_fft, sizeof(int));
- cudaMemcpyToSymbol("nzlo_fft",&cu_nzlo_fft, sizeof(int));
- cudaMemcpyToSymbol("nzhi_fft",&cu_nzhi_fft, sizeof(int));
- cudaMemcpyToSymbol("slabflag",&cu_slabflag, sizeof(int));
- cudaMemcpyToSymbol("nx_pppm",&cu_nx_pppm, sizeof(int));
- cudaMemcpyToSymbol("ny_pppm",&cu_ny_pppm, sizeof(int));
- cudaMemcpyToSymbol("nz_pppm",&cu_nz_pppm, sizeof(int));
- cudaMemcpyToSymbol("work1",&cu_work1, sizeof(FFT_FLOAT*));
- cudaMemcpyToSymbol("work2",&cu_work2, sizeof(FFT_FLOAT*));
- cudaMemcpyToSymbol("work3",&cu_work3, sizeof(FFT_FLOAT*));
- cudaMemcpyToSymbol("greensfn",&cu_greensfn, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("gf_b",&cu_gf_b, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("fkx",&cu_fkx, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("fky",&cu_fky, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("fkz",&cu_fkz, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("vg",&cu_vg, sizeof(PPPM_FLOAT*));
-
- PPPM_FLOAT cu_qqrd2e_a=cu_qqrd2e;
- cudaMemcpyToSymbol("qqrd2e",&cu_qqrd2e_a, sizeof(PPPM_FLOAT));
- cudaMemcpyToSymbol("order",&cu_order, sizeof(int));
- cudaMemcpyToSymbol("rho_coeff",&cu_rho_coeff, sizeof(PPPM_FLOAT*));
- cudaMemcpyToSymbol("debugdata",&cu_debugdata, sizeof(PPPM_FLOAT*));
-
- CUT_CHECK_ERROR("ERROR-CUDA poisson_init");
-
-/*if(sizeof(CUDA_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision\n");
-
-#ifdef PPPM_PRECISION
-if(sizeof(PPPM_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision for pppm core\n");
-if(sizeof(PPPM_FLOAT)==sizeof(double)) printf("PPPMCuda Kernel: Using double precision for pppm core\n");
-#endif
-#ifdef ENERGY_PRECISION
-if(sizeof(ENERGY_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision for energy\n");
-if(sizeof(ENERGY_FLOAT)==sizeof(double)) printf("PPPMCuda Kernel: Using double precision for energy\n");
-#endif
-#ifdef ENERGY_PRECISION
-if(sizeof(FFT_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision for fft\n");
-if(sizeof(FFT_FLOAT)==sizeof(double)) printf("PPPMCuda Kernel: Using double precision for fft\n");
-#endif
-#ifdef X_PRECISION
-if(sizeof(X_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision for positions\n");
-if(sizeof(X_FLOAT)==sizeof(double)) printf("PPPMCuda Kernel: Using double precision for positions\n");
-#endif
-#ifdef F_PRECISION
-if(sizeof(F_FLOAT)==sizeof(float)) printf("PPPMCuda Kernel: Using single precision for forces\n");
-if(sizeof(F_FLOAT)==sizeof(double)) printf("PPPMCuda Kernel: Using double precision for forces\n");
-#endif*/
-}
-
-void pppm_device_init_setup(cuda_shared_data* sdata,PPPM_FLOAT cu_shiftone,PPPM_FLOAT cu_delxinv,PPPM_FLOAT cu_delyinv,PPPM_FLOAT cu_delzinv,int cu_nlower,int cu_nupper)
-{
- cudaMemcpyToSymbol("delxinv",&cu_delxinv, sizeof(PPPM_FLOAT));
- cudaMemcpyToSymbol("delyinv",&cu_delyinv, sizeof(PPPM_FLOAT));
- cudaMemcpyToSymbol("delzinv",&cu_delzinv, sizeof(PPPM_FLOAT));
- cudaMemcpyToSymbol("shiftone",&cu_shiftone, sizeof(PPPM_FLOAT));
- cudaMemcpyToSymbol("nlower",&cu_nlower, sizeof(int));
- cudaMemcpyToSymbol("nupper",&cu_nupper, sizeof(int));
- cudaMemcpyToSymbol(MY_CONST(sublo) , sdata->domain.sublo, 3*sizeof(X_FLOAT));
- cudaMemcpyToSymbol(MY_CONST(subhi) , sdata->domain.subhi, 3*sizeof(X_FLOAT));
- cudaMemcpyToSymbol(MY_CONST(boxlo) , sdata->domain.boxlo, 3*sizeof(X_FLOAT));
- CUT_CHECK_ERROR("ERROR-CUDA pppm_init_setup");
-}
-
-void pppm_device_update(cuda_shared_data* sdata,void* cu_part2grid, int nlocala,int nmaxa)
-{
- cudaMemcpyToSymbol("part2grid",&cu_part2grid, sizeof(int*));
- cudaMemcpyToSymbol(MY_CONST(x) , & sdata->atom.x .dev_data, sizeof(X_FLOAT*));
- cudaMemcpyToSymbol(MY_CONST(f) , & sdata->atom.f .dev_data, sizeof(F_FLOAT*));
- cudaMemcpyToSymbol(MY_CONST(q) , & sdata->atom.q .dev_data, sizeof(F_FLOAT*));
- cudaMemcpyToSymbol(MY_CONST(tag) , & sdata->atom.tag .dev_data, sizeof(int*));
- //cudaMemcpyToSymbol(MY_CONST(nlocal) , & sdata->atom.nlocal .dev_data, sizeof(int));
- cudaMemcpyToSymbol("nlocal" , &nlocala, sizeof(int));
- cudaMemcpyToSymbol("nmax" , &nmaxa, sizeof(int));
- CUT_CHECK_ERROR("ERROR-CUDA pppm_device_update");
-
-}
-
-void pppm_update_nlocal(int nlocala)
-{
- cudaMemcpyToSymbol("nlocal" , &nlocala, sizeof(int));
- CUT_CHECK_ERROR("ERROR-CUDA update_nlocal b");
-}
-
-
-void Cuda_PPPM_Setup_fkxyz_vg(int nx_pppma,int ny_pppma,int nz_pppma,PPPM_FLOAT unitkx,PPPM_FLOAT unitky,PPPM_FLOAT unitkz,PPPM_FLOAT g_ewald)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- setup_fkxyz_vg<<<grid,threads,0>>>(unitkx,unitky,unitkz,g_ewald);
- cudaThreadSynchronize();
-
- CUT_CHECK_ERROR("ERROR-CUDA Cuda_PPPM_Setup_fkxyz_vg ");
-}
-
-void Cuda_PPPM_setup_greensfn(int nx_pppma,int ny_pppma,int nz_pppma,PPPM_FLOAT unitkx,PPPM_FLOAT unitky,PPPM_FLOAT unitkz,PPPM_FLOAT g_ewald,
-int nbx,int nby,int nbz,PPPM_FLOAT xprd,PPPM_FLOAT yprd,PPPM_FLOAT zprd_slab)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- setup_greensfn<<<grid,threads,0>>>(unitkx,unitky,unitkz,g_ewald,nbx,nby,nbz,xprd,yprd, zprd_slab);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA Cuda_PPPM_Setup_greensfn ");
-}
-
-void poisson_scale(int nx_pppma,int ny_pppma,int nz_pppma)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- poisson_scale_kernel<<<grid,threads,0>>>();
- CUT_CHECK_ERROR("ERROR-CUDA poisson_scale ");
-
-}
-
-void poisson_xgrad(int nx_pppma,int ny_pppma,int nz_pppma)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- poisson_xgrad_kernel<<<grid,threads,0>>>();
- CUT_CHECK_ERROR("ERROR-CUDA poisson_xgrad ");
-}
-
-void poisson_ygrad(int nx_pppma,int ny_pppma,int nz_pppma)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- poisson_ygrad_kernel<<<grid,threads,0>>>();
- CUT_CHECK_ERROR("ERROR-CUDA poisson_ygrad ");
-}
-
-void poisson_zgrad(int nx_pppma,int ny_pppma,int nz_pppma)
-{
- dim3 grid;
- dim3 threads;
- grid.x=nz_pppma;
- grid.y=ny_pppma;
- grid.z=1;
- threads.x=nx_pppma;
- threads.y=1;
- threads.z=1;
- poisson_zgrad_kernel<<<grid,threads,0>>>();
- CUT_CHECK_ERROR("ERROR-CUDA poisson_zgrad ");
-}
-
-void poisson_vdx_brick(int ihi,int ilo,int jhi,int jlo,int khi,int klo,int nx_pppma,int ny_pppma,int nz_pppma)
-{
-
- dim3 grid;
- dim3 threads;
- grid.x=khi-klo+1;
- grid.y=jhi-jlo+1;
- grid.z=1;
- threads.x=ihi-ilo+1;
- threads.y=1;
- threads.z=1;
- //printf("VDX_BRICK CUDA: %i %i %i\n",grid.x,grid.y,threads.x);
- poisson_vdx_brick_kernel<<<grid,threads,0>>>(ilo,jlo,klo);
- CUT_CHECK_ERROR("ERROR-CUDA poisson_vdxbrick ");
- cudaThreadSynchronize();
-}
-
-void poisson_vdy_brick(int ihi,int ilo,int jhi,int jlo,int khi,int klo,int nx_pppm,int ny_pppm,int nz_pppm)
-{
- dim3 grid;
- dim3 threads;
- grid.x=khi-klo+1;
- grid.y=jhi-jlo+1;
- grid.z=1;
- threads.x=ihi-ilo+1;
- threads.y=1;
- threads.z=1;
- poisson_vdy_brick_kernel<<<grid,threads,0>>>(ilo,jlo,klo);
- CUT_CHECK_ERROR("ERROR-CUDA poisson_vdybrick ");
- cudaThreadSynchronize();
-}
-
-void poisson_vdz_brick(int ihi,int ilo,int jhi,int jlo,int khi,int klo,int nx_pppm,int ny_pppm,int nz_pppm)
-{
- dim3 grid;
- dim3 threads;
- grid.x=khi-klo+1;
- grid.y=jhi-jlo+1;
- grid.z=1;
- threads.x=ihi-ilo+1;
- threads.y=1;
- threads.z=1;
- poisson_vdz_brick_kernel<<<grid,threads,0>>>(ilo,jlo,klo);
- CUT_CHECK_ERROR("ERROR-CUDA poisson_vdzbrick ");
- cudaThreadSynchronize();
-}
-
-
-void poisson_energy(int nxlo_fft,int nxhi_fft,int nylo_fft,int nyhi_fft,int nzlo_fft,int nzhi_fft,int vflag)
-{
- //printf("VFLAG_GPU: %i\n",vflag);
- CUT_CHECK_ERROR("ERROR-CUDA poisson_energy start ");
- dim3 grid;
- dim3 threads;
- grid.x=nzhi_fft-nzlo_fft+1;
- grid.y=nyhi_fft-nylo_fft+1;
- grid.z=1;
- threads.x=nxhi_fft-nxlo_fft+1;
- threads.y=1;
- threads.z=1;
- poisson_energy_kernel<<<grid,threads,threads.x*sizeof(ENERGY_FLOAT)>>>(nxlo_fft,nylo_fft,nzlo_fft,vflag);
-
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA poisson_energy end ");
-}
-
-ENERGY_FLOAT sum_energy(void* cu_virial,void* cu_energy,int nx_pppma,int ny_pppma,int nz_pppma,int vflag,ENERGY_FLOAT* cpu_virial)
-{
- ENERGY_FLOAT host_energy=0;
- dim3 grid;
- dim3 threads;
-
- grid.x=nz_pppma;
- grid.y=1;
- grid.z=1;
- threads.x=ny_pppma;
- threads.y=1;
- threads.z=1;
- sum_energy_kernel1<<<grid,threads,ny_pppma*sizeof(ENERGY_FLOAT)>>>(vflag);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA sumenergy_kernel1 ");
-
- grid.x=1;
- grid.y=1;
- grid.z=1;
- threads.x=nz_pppma;
- threads.y=1;
- threads.z=1;
- sum_energy_kernel2<<<grid,threads,nz_pppma*sizeof(ENERGY_FLOAT)>>>(vflag);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA sumenergy_kernel2 ");
-
- cudaMemcpy((void*) (&host_energy), cu_energy, sizeof(ENERGY_FLOAT),cudaMemcpyDeviceToHost);
- if(vflag)
- cudaMemcpy((void*) cpu_virial, (void*) cu_virial, 6*sizeof(ENERGY_FLOAT),cudaMemcpyDeviceToHost);
- CUT_CHECK_ERROR("ERROR-CUDA sumenergy_memcopy");
-
- return host_energy;
-}
-
-void cuda_make_rho(cuda_shared_data* sdata,void* flag,PPPM_FLOAT* cu_density_intScale,int ihi,int ilo,int jhi,int jlo,int khi,int klo,void* cu_density_brick,void* cu_density_brick_int)
-{
- CUT_CHECK_ERROR("cuda_make_rho begin");
- dim3 grid,threads;
- int cpu_flag[3];
- grid.x=(sdata->atom.nlocal+31)/32;
- grid.y=1;
- grid.z=1;
- threads.x=32;
- threads.y=1;
- threads.z=1;
- int sharedmemsize=(32+32*(sdata->pppm.nupper-sdata->pppm.nlower+1)+sdata->pppm.order*(sdata->pppm.order/2-(1-sdata->pppm.order)/2+1))*sizeof(PPPM_FLOAT);
- do
- {
- cpu_flag[0]=0;
- cpu_flag[1]=0;
- cpu_flag[2]=0;
- cudaMemcpyToSymbol("density_intScale",cu_density_intScale,sizeof(PPPM_FLOAT*));
- CUT_CHECK_ERROR("ERROR-CUDA make_rho pre Z");
- cudaMemset(flag,0,3*sizeof(int));
- CUT_CHECK_ERROR("ERROR-CUDA make_rho pre A");
- cudaMemset(cu_density_brick,0,(khi-klo+1)*(jhi-jlo+1)*(ihi-ilo+1)*sizeof(PPPM_FLOAT));
- CUT_CHECK_ERROR("ERROR-CUDA make_rho pre B");
- cudaMemset(cu_density_brick_int,0,(khi-klo+1)*(jhi-jlo+1)*(ihi-ilo+1)*sizeof(int));
- CUT_CHECK_ERROR("ERROR-CUDA make_rho pre C");
- make_rho_kernel<<<grid,threads,sharedmemsize>>>((int*) flag,32/(sdata->pppm.nupper-sdata->pppm.nlower+1));
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA make_rho A");
- cudaMemcpy((void*) &cpu_flag, flag, 3*sizeof(int),cudaMemcpyDeviceToHost);
- if(cpu_flag[0]!=0) {(*cu_density_intScale)/=2; MYDBG(printf("PPPM_Cuda::cuda_make_rho: Decrease cu_density_intScale to: %e\n",*cu_density_intScale);)}
- if((cpu_flag[0]==0)&&(cpu_flag[1]==0)) {(*cu_density_intScale)*=2; MYDBG(printf("PPPM_Cuda::cuda_make_rho: Increase cu_density_intScale to: %e\n",*cu_density_intScale);)}
- /* if((*cu_density_intScale)>0xe0000000)
- {
- printf("Error Scaling\n");
- cpu_flag[0]=0;
- cpu_flag[1]=1;
- }*/
- CUT_CHECK_ERROR("ERROR-CUDA make_rho B");
- } while((cpu_flag[0]!=0)||(cpu_flag[1]==0));
-
-
- grid.x=khi-klo+1;
- grid.y=jhi-jlo+1;
- threads.x=ihi-ilo+1;
- scale_rho_kernel<<<grid,threads,0>>>();
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA make_rho_scale");
-}
-
-
-int cuda_particle_map(cuda_shared_data* sdata,void* flag)
-{
- dim3 grid,threads;
- int cpu_flag;
- grid.x=(sdata->atom.nlocal+31)/32;
- grid.y=1;
- grid.z=1;
- threads.x=32;
- threads.y=1;
- threads.z=1;
- CUT_CHECK_ERROR("ERROR-CUDA particla_map ..pre");
- particle_map_kernel<<<grid,threads,0>>>((int*) flag);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA particla_map a");
- cudaMemcpy((void*) &cpu_flag, flag, sizeof(int),cudaMemcpyDeviceToHost);
- CUT_CHECK_ERROR("ERROR-CUDA particla_map b");
- return cpu_flag;
-}
-
-
-void cuda_fieldforce(cuda_shared_data* sdata,void* flag)
-{
- dim3 grid,threads;
- grid.x=(sdata->atom.nlocal+31)/32;
- grid.y=1;
- grid.z=1;
- threads.x=32;
- threads.y=1;
- threads.z=1;
- int sharedmemsize=(32+3*32*(sdata->pppm.nupper-sdata->pppm.nlower+1)+sdata->pppm.order*(sdata->pppm.order/2-(1-sdata->pppm.order)/2+1))*sizeof(PPPM_FLOAT);
- fieldforce_kernel<<<grid,threads,sharedmemsize>>>
- (sdata->pppm.nupper-sdata->pppm.nlower+1,32/(sdata->pppm.nupper-sdata->pppm.nlower+1),(int*) flag);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA fieldforce");
-}
-
-double cuda_slabcorr_energy(cuda_shared_data* sdata, ENERGY_FLOAT* buf, ENERGY_FLOAT* dev_buf)
-{
- dim3 grid,threads;
- grid.x=(sdata->atom.nlocal+31)/32;
- grid.y=1;
- grid.z=1;
- threads.x=32;
- threads.y=1;
- threads.z=1;
- slabcorr_energy_kernel<<<grid,threads,32*sizeof(ENERGY_FLOAT)>>>(dev_buf);
- cudaThreadSynchronize();
- cudaMemcpy((void*) buf, dev_buf, grid.x*sizeof(ENERGY_FLOAT),cudaMemcpyDeviceToHost);
-
- double dipole_all=0.0;
- for(int i=0;i<grid.x;i++)
- dipole_all+=buf[i];
-
- return dipole_all;
-}
-
-void cuda_slabcorr_force(cuda_shared_data* sdata, F_FLOAT ffact)
-{
- dim3 grid,threads;
- grid.x=(sdata->atom.nlocal+31)/32;
- grid.y=1;
- grid.z=1;
- threads.x=32;
- threads.y=1;
- threads.z=1;
- slabcorr_force_kernel<<<grid,threads>>>(ffact);
- cudaThreadSynchronize();
-}
-
-void sum_virial(double* host_virial)
-{
-}
-
-void pppm_initfftdata(cuda_shared_data* sdata,PPPM_FLOAT* in,FFT_FLOAT* out)
-{
- int nslow=sdata->pppm.nzhi_in-sdata->pppm.nzlo_in;
- int nmid=sdata->pppm.nyhi_in-sdata->pppm.nylo_in;
- int nfast=sdata->pppm.nxhi_in-sdata->pppm.nxlo_in;
- int nrimz=MAX(sdata->pppm.nzlo_in-sdata->pppm.nzlo_out,sdata->pppm.nzhi_out-sdata->pppm.nzhi_in);
- int nrimy=MAX(sdata->pppm.nylo_in-sdata->pppm.nylo_out,sdata->pppm.nyhi_out-sdata->pppm.nyhi_in);
- int nrimx=MAX(sdata->pppm.nxlo_in-sdata->pppm.nxlo_out,sdata->pppm.nxhi_out-sdata->pppm.nxhi_in);
- dim3 grid;
- grid.x=nslow+1;
- grid.y=nmid+1;
- grid.z=1;
- dim3 threads;
- threads.x=nfast+1;
- threads.y=1;
- threads.z=1;
- cudaThreadSynchronize();
- initfftdata_core_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nrimz;
- grid.y=nmid+1;
- threads.x=nfast+1;
- initfftdata_z_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nslow+1;
- grid.y=nrimy;
- threads.x=nfast+1;
- initfftdata_y_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nslow+1;
- grid.y=nmid+1;
- threads.x=nrimx;
- initfftdata_x_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nrimz;
- grid.y=nrimy;
- threads.x=nfast+1;
- initfftdata_yz_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nrimz;
- grid.y=nmid+1;
- threads.x=nrimx;
- initfftdata_xz_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nslow+1;
- grid.y=nrimy;
- threads.x=nrimx;
- initfftdata_xy_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- grid.x=nrimz;
- grid.y=nrimy;
- threads.x=nrimx;
- initfftdata_xyz_kernel<<<grid,threads,0>>>(in,out);
- cudaThreadSynchronize();
- CUT_CHECK_ERROR("ERROR-CUDA initfftdata_kernel");
-}
-
-
diff --git a/src/USER-EFF/fix_nve_eff.cpp b/src/USER-EFF/fix_nve_eff.cpp
index 134317dde..392f6b786 100644
--- a/src/USER-EFF/fix_nve_eff.cpp
+++ b/src/USER-EFF/fix_nve_eff.cpp
@@ -1,171 +1,171 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Andres Jaramillo-Botero (Caltech)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "string.h"
#include "fix_nve_eff.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
#include "math.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixNVEEff::FixNVEEff(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (!atom->electron_flag)
error->all("Fix nve/eff requires atom style electron");
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
int FixNVEEff::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVEEff::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ----------------------------------------------------------------------
allow for both per-type and per-atom mass
------------------------------------------------------------------------- */
void FixNVEEff::initial_integrate(int vflag)
{
double dtfm;
// update v,vr and x,radius of atoms in group
double **x = atom->x;
double *eradius = atom->eradius;
double **v = atom->v;
double *ervel = atom->ervel;
double **f = atom->f;
double *erforce = atom->erforce;
double *mass = atom->mass;
int *spin = atom->spin;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
// x + dt * [v + 0.5 * dt * (f / m)];
if (mass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
if (fabs(spin[i])==1) {
ervel[i] += dtfm * erforce[i] / 0.75;
eradius[i] += dtv * ervel[i];
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVEEff::final_integrate()
{
double dtfm;
double **v = atom->v;
double *ervel = atom->ervel;
double *erforce = atom->erforce;
double **f = atom->f;
double *mass = atom->mass;
int *spin = atom->spin;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
// dyn_v[i] += m * dt * dyn_f[i];
if (mass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
if (fabs(spin[i])==1)
ervel[i] += dtfm * erforce[i] / 0.75;
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVEEff::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
// innermost level - NVE update of v and x
// all other levels - NVE update of v
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVEEff::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVEEff::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
}
diff --git a/src/USER-EWALDN/README b/src/USER-EWALDN/README
index 8931245a2..77295f017 100644
--- a/src/USER-EWALDN/README
+++ b/src/USER-EWALDN/README
@@ -1,22 +1,23 @@
The files in this directory are a user-contributed package for LAMMPS.
-The person who created these files is Pieter in' t Veld at Sandia
-(pjintve@sandia.gov). Contact him directly if you have questions.
+The person who created these files is Pieter in' t Veld while at
+Sandia. He is now at BASF (pieter.intveld@basf.com). Contact him
+directly if you have questions.
This package implements 3 commands which can be used in a LAMMPS input
script: pair_style lj/coul, pair_style buck/coul, and kspace_style
ewald/n. See the documentation files for these commands for details.
The "kspace_style ewald/n" command is similar to standard Ewald for
charges, but also enables the Lennard-Jones interaction, or any 1/r^N
interaction to be of infinite extent, instead of being cutoff. LAMMPS
pair potentials for long-range Coulombic interactions, such as
lj/cut/coul/long can be used with ewald/n. The two new pair_style
commands provide the modifications for the short-range LJ and
Buckingham interactions that can also be used with ewald/n.
Another advantage of kspace_style ewald/n is that it can be used with
non-orthogonal (triclinic symmetry) simulation boxes, either for just
long-range Coulombic interactions, or for both Coulombic and 1/r^N LJ
or Buckingham, which is not currently possible for other kspace styles
such as PPPM and ewald.
diff --git a/src/USER-EWALDN/pair_buck_coul.cpp b/src/USER-EWALDN/pair_buck_coul.cpp
index 41a611a5a..bb2f4f0ed 100644
--- a/src/USER-EWALDN/pair_buck_coul.cpp
+++ b/src/USER-EWALDN/pair_buck_coul.cpp
@@ -1,1171 +1,1171 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Pieter J. in 't Veld (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "math_vector.h"
#include "pair_buck_coul.h"
#include "atom.h"
#include "comm.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "force.h"
#include "kspace.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairBuckCoul::PairBuckCoul(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
ftable = NULL;
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
#define PAIR_ILLEGAL "Illegal pair_style buck/coul command"
#define PAIR_CUTOFF "Only one cut-off allowed when requesting all long"
#define PAIR_MISSING "Cut-offs missing in pair_style buck/coul"
#define PAIR_LJ_OFF "LJ6 off not supported in pair_style buck/coul"
#define PAIR_COUL_CUT "Coulombic cut not supported in pair_style buck/coul"
#define PAIR_LARGEST "Using largest cut-off for buck/coul long long"
#define PAIR_MIX "Geometric mixing assumed for 1/r^6 coefficients"
void PairBuckCoul::options(char **arg, int order)
{
char *option[] = {"long", "cut", "off", NULL};
int i;
if (!*arg) error->all(PAIR_ILLEGAL);
for (i=0; option[i]&&strcmp(arg[0], option[i]); ++i);
switch (i) {
default: error->all(PAIR_ILLEGAL);
case 0: ewald_order |= 1<<order; break; // set kspace r^-order
case 2: ewald_off |= 1<<order; // turn r^-order off
case 1: break;
}
}
void PairBuckCoul::settings(int narg, char **arg)
{
if (narg != 3 && narg != 4) error->all("Illegal pair_style command");
ewald_order = 0;
ewald_off = 0;
options(arg, 6);
options(++arg, 1);
if (!comm->me && ewald_order&(1<<6)) error->warning(PAIR_MIX);
if (!comm->me && ewald_order==((1<<1)|(1<<6))) error->warning(PAIR_LARGEST);
if (!*(++arg)) error->all(PAIR_MISSING);
if (ewald_off&(1<<6)) error->all(PAIR_LJ_OFF);
if (!((ewald_order^ewald_off)&(1<<1))) error->all(PAIR_COUL_CUT);
cut_buck_global = force->numeric(*(arg++));
if (*arg&&(ewald_order&0x42==0x42)) error->all(PAIR_CUTOFF);
if (narg == 4) cut_coul = force->numeric(*arg);
else cut_coul = cut_buck_global;
if (allocated) { // reset explicit cuts
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut_buck[i][j] = cut_buck_global;
}
}
/* ----------------------------------------------------------------------
free all arrays
------------------------------------------------------------------------- */
PairBuckCoul::~PairBuckCoul()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut_buck_read);
memory->destroy(cut_buck);
memory->destroy(cut_bucksq);
memory->destroy(buck_a_read);
memory->destroy(buck_a);
memory->destroy(buck_c_read);
memory->destroy(buck_c);
memory->destroy(buck_rho_read);
memory->destroy(buck_rho);
memory->destroy(buck1);
memory->destroy(buck2);
memory->destroy(rhoinv);
memory->destroy(offset);
}
if (ftable) free_tables();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairBuckCoul::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut_buck_read,n+1,n+1,"pair:cut_buck_read");
memory->create(cut_buck,n+1,n+1,"pair:cut_buck");
memory->create(cut_bucksq,n+1,n+1,"pair:cut_bucksq");
memory->create(buck_a_read,n+1,n+1,"pair:buck_a_read");
memory->create(buck_a,n+1,n+1,"pair:buck_a");
memory->create(buck_c_read,n+1,n+1,"pair:buck_c_read");
memory->create(buck_c,n+1,n+1,"pair:buck_c");
memory->create(buck_rho_read,n+1,n+1,"pair:buck_rho_read");
memory->create(buck_rho,n+1,n+1,"pair:buck_rho");
memory->create(buck1,n+1,n+1,"pair:buck1");
memory->create(buck2,n+1,n+1,"pair:buck2");
memory->create(rhoinv,n+1,n+1,"pair:rhoinv");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
extract protected data from object
------------------------------------------------------------------------- */
void *PairBuckCoul::extract(char *id, int &dim)
{
char *ids[] = {
"B", "ewald_order", "ewald_cut", "ewald_mix", "cut_coul", NULL};
void *ptrs[] = {
buck_c, &ewald_order, &cut_coul, &mix_flag, &cut_coul, NULL};
int i;
for (i=0; ids[i]&&strcmp(ids[i], id); ++i);
if (i == 0) dim = 2;
else dim = 0;
return ptrs[i];
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairBuckCoul::coeff(int narg, char **arg)
{
if (narg < 5 || narg > 6) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(*(arg++),atom->ntypes,ilo,ihi);
force->bounds(*(arg++),atom->ntypes,jlo,jhi);
double buck_a_one = force->numeric(*(arg++));
double buck_rho_one = force->numeric(*(arg++));
double buck_c_one = force->numeric(*(arg++));
double cut_buck_one = cut_buck_global;
if (narg == 6) cut_buck_one = force->numeric(*(arg++));
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
buck_a_read[i][j] = buck_a_one;
buck_c_read[i][j] = buck_c_one;
buck_rho_read[i][j] = buck_rho_one;
cut_buck_read[i][j] = cut_buck_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairBuckCoul::init_style()
{
// require an atom style with charge defined
if (!atom->q_flag && (ewald_order&(1<<1)))
error->all(
"Invoking coulombic in pair style lj/coul requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
cut_coulsq = cut_coul * cut_coul;
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
// ensure use of KSpace long-range solver, set g_ewald
if (ewald_order&(1<<1)) { // r^-1 kspace
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
}
if (ewald_order&(1<<6)) { // r^-6 kspace
if (!force->kspace && strcmp(force->kspace_style,"ewald/n"))
error->all("Pair style is incompatible with KSpace style");
g_ewald = force->kspace->g_ewald;
}
// setup force tables
if (ncoultablebits) init_tables();
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairBuckCoul::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairBuckCoul::init_one(int i, int j)
{
if (setflag[i][j] == 0) error->all("All pair coeffs are not set");
cut_buck[i][j] = cut_buck_read[i][j];
buck_a[i][j] = buck_a_read[i][j];
buck_c[i][j] = buck_c_read[i][j];
buck_rho[i][j] = buck_rho_read[i][j];
double cut = MAX(cut_buck[i][j],cut_coul);
cutsq[i][j] = cut*cut;
cut_bucksq[i][j] = cut_buck[i][j] * cut_buck[i][j];
buck1[i][j] = buck_a[i][j]/buck_rho[i][j];
buck2[i][j] = 6.0*buck_c[i][j];
rhoinv[i][j] = 1.0/buck_rho[i][j];
// check interior rRESPA cutoff
if (cut_respa && MIN(cut_buck[i][j],cut_coul) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
if (offset_flag) {
double rexp = exp(-cut_buck[i][j]/buck_rho[i][j]);
offset[i][j] = buck_a[i][j]*rexp - buck_c[i][j]/pow(cut_buck[i][j],6.0);
} else offset[i][j] = 0.0;
cutsq[j][i] = cutsq[i][j];
cut_bucksq[j][i] = cut_bucksq[i][j];
buck_a[j][i] = buck_a[i][j];
buck_c[j][i] = buck_c[i][j];
rhoinv[j][i] = rhoinv[i][j];
buck1[j][i] = buck1[i][j];
buck2[j][i] = buck2[i][j];
offset[j][i] = offset[i][j];
return cut;
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairBuckCoul::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&buck_a_read[i][j],sizeof(double),1,fp);
fwrite(&buck_rho_read[i][j],sizeof(double),1,fp);
fwrite(&buck_c_read[i][j],sizeof(double),1,fp);
fwrite(&cut_buck_read[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairBuckCoul::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&buck_a_read[i][j],sizeof(double),1,fp);
fread(&buck_rho_read[i][j],sizeof(double),1,fp);
fread(&buck_c_read[i][j],sizeof(double),1,fp);
fread(&cut_buck_read[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&buck_a_read[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&buck_rho_read[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&buck_c_read[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_buck_read[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairBuckCoul::write_restart_settings(FILE *fp)
{
fwrite(&cut_buck_global,sizeof(double),1,fp);
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
fwrite(&ewald_order,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairBuckCoul::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&cut_buck_global,sizeof(double),1,fp);
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
fread(&ewald_order,sizeof(int),1,fp);
}
MPI_Bcast(&cut_buck_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
MPI_Bcast(&ewald_order,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
compute pair interactions
------------------------------------------------------------------------- */
void PairBuckCoul::compute(int eflag, int vflag)
{
double evdwl,ecoul,fpair;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x, *x0 = x[0];
double **f = atom->f, *f0 = f[0], *fi = f0;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
int i, j, order1 = ewald_order&(1<<1), order6 = ewald_order&(1<<6);
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
double qi, qri, *cutsqi, *cut_bucksqi,
*buck1i, *buck2i, *buckai, *buckci, *rhoinvi, *offseti;
double r, rsq, r2inv, force_coul, force_buck;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2;
vector xi, d;
ineighn = (ineigh = list->ilist)+list->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
if (order1) qri = (qi = q[i])*qqrd2e; // initialize constants
offseti = offset[typei = type[i]];
buck1i = buck1[typei]; buck2i = buck2[typei];
buckai = buck_a[typei]; buckci = buck_c[typei], rhoinvi = rhoinv[typei];
cutsqi = cutsq[typei]; cut_bucksqi = cut_bucksq[typei];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
jneighn = (jneigh = list->firstneigh[i])+list->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cutsqi[typej = type[j]]) continue;
r2inv = 1.0/rsq;
r = sqrt(rsq);
if (order1 && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double x = g_ewald*r;
register double s = qri*q[j], t = 1.0/(1.0+EWALD_P*x);
if (ni == 0) {
s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s;
if (eflag) ecoul = t;
}
else { // special case
register double f = s*(1.0-special_coul[ni])/r;
s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-f;
if (eflag) ecoul = t-f;
}
} // table real space
else {
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask) >> ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = qi*q[j];
if (ni == 0) {
force_coul = qiqj*(ftable[k]+f*dftable[k]);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]);
}
else { // special case
t.f = (1.0-special_coul[ni])*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]-t.f);
}
}
}
else force_coul = ecoul = 0.0;
if (rsq < cut_bucksqi[typej]) { // buckingham
register double rn = r2inv*r2inv*r2inv,
expr = exp(-r*rhoinvi[typej]);
if (order6) { // long-range
register double x2 = g2*rsq, a2 = 1.0/x2;
x2 = a2*exp(-x2)*buckci[typej];
if (ni == 0) {
force_buck =
r*expr*buck1i[typej]-g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq;
if (eflag) evdwl = expr*buckai[typej]-g6*((a2+1.0)*a2+0.5)*x2;
}
else { // special case
register double f = special_lj[ni], t = rn*(1.0-f);
force_buck = f*r*expr*buck1i[typej]-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq+t*buck2i[typej];
if (eflag) evdwl = f*expr*buckai[typej] -
g6*((a2+1.0)*a2+0.5)*x2+t*buckci[typej];
}
}
else { // cut
if (ni == 0) {
force_buck = r*expr*buck1i[typej]-rn*buck2i[typej];
if (eflag) evdwl = expr*buckai[typej] -
rn*buckci[typej]-offseti[typej];
}
else { // special case
register double f = special_lj[ni];
force_buck = f*(r*expr*buck1i[typej]-rn*buck2i[typej]);
if (eflag)
evdwl = f*(expr*buckai[typej]-rn*buckci[typej]-offseti[typej]);
}
}
}
else force_buck = evdwl = 0.0;
fpair = (force_coul+force_buck)*r2inv;
if (newton_pair || j < nlocal) {
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,d[0],d[1],d[2]);
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairBuckCoul::compute_inner()
{
double r, rsq, r2inv, force_coul, force_buck, fpair;
int *type = atom->type;
int nlocal = atom->nlocal;
double *x0 = atom->x[0], *f0 = atom->f[0], *fi = f0, *q = atom->q;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
int i, j, order1 = (ewald_order|(ewald_off^-1))&(1<<1);
double qri, *cut_bucksqi, *buck1i, *buck2i, *rhoinvi;
vector xi, d;
ineighn = (ineigh = listinner->ilist)+listinner->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
qri = qqrd2e*q[i];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
cut_bucksqi = cut_bucksq[typei = type[i]];
buck1i = buck1[typei]; buck2i = buck2[typei]; rhoinvi = rhoinv[typei];
jneighn = (jneigh = listinner->firstneigh[i])+listinner->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cut_out_off_sq) continue;
r2inv = 1.0/rsq;
r = sqrt(rsq);
if (order1 && (rsq < cut_coulsq)) // coulombic
force_coul = ni == 0 ?
qri*q[j]/r : qri*q[j]/r*special_coul[ni];
if (rsq < cut_bucksqi[typej = type[j]]) { // buckingham
register double rn = r2inv*r2inv*r2inv,
expr = exp(-r*rhoinvi[typej]);
force_buck = ni == 0 ?
(r*expr*buck1i[typej]-rn*buck2i[typej]) :
(r*expr*buck1i[typej]-rn*buck2i[typej])*special_lj[ni];
}
else force_buck = 0.0;
fpair = (force_coul + force_buck) * r2inv;
if (rsq > cut_out_on_sq) { // switching
register double rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
if (newton_pair || j < nlocal) { // force update
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairBuckCoul::compute_middle()
{
double r, rsq, r2inv, force_coul, force_buck, fpair;
int *type = atom->type;
int nlocal = atom->nlocal;
double *x0 = atom->x[0], *f0 = atom->f[0], *fi = f0, *q = atom->q;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
int i, j, order1 = (ewald_order|(ewald_off^-1))&(1<<1);
double qri, *cut_bucksqi, *buck1i, *buck2i, *rhoinvi;
vector xi, d;
ineighn = (ineigh = listmiddle->ilist)+listmiddle->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
qri = qqrd2e*q[i];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
cut_bucksqi = cut_bucksq[typei = type[i]];
buck1i = buck1[typei]; buck2i = buck2[typei]; rhoinvi = rhoinv[typei];
jneighn = (jneigh = listmiddle->firstneigh[i])+listmiddle->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cut_out_off_sq) continue;
if (rsq <= cut_in_off_sq) continue;
r2inv = 1.0/rsq;
r = sqrt(rsq);
if (order1 && (rsq < cut_coulsq)) // coulombic
force_coul = ni == 0 ?
qri*q[j]/r : qri*q[j]/r*special_coul[ni];
if (rsq < cut_bucksqi[typej = type[j]]) { // buckingham
register double rn = r2inv*r2inv*r2inv,
expr = exp(-r*rhoinvi[typej]);
force_buck = ni == 0 ?
(r*expr*buck1i[typej]-rn*buck2i[typej]) :
(r*expr*buck1i[typej]-rn*buck2i[typej])*special_lj[ni];
}
else force_buck = 0.0;
fpair = (force_coul + force_buck) * r2inv;
if (rsq < cut_in_on_sq) { // switching
register double rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
register double rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
if (newton_pair || j < nlocal) { // force update
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairBuckCoul::compute_outer(int eflag, int vflag)
{
double evdwl,ecoul,fpair;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x, *x0 = x[0];
double **f = atom->f, *f0 = f[0], *fi = f0;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
int i, j, order1 = ewald_order&(1<<1), order6 = ewald_order&(1<<6);
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni, respa_flag;
double qi, qri, *cutsqi, *cut_bucksqi,
*buck1i, *buck2i, *buckai, *buckci, *rhoinvi, *offseti;
double r, rsq, r2inv, force_coul, force_buck;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2;
double respa_buck, respa_coul, frespa;
vector xi, d;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
ineighn = (ineigh = listouter->ilist)+listouter->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
if (order1) qri = (qi = q[i])*qqrd2e; // initialize constants
offseti = offset[typei = type[i]];
buck1i = buck1[typei]; buck2i = buck2[typei];
buckai = buck_a[typei]; buckci = buck_c[typei]; rhoinvi = rhoinv[typei];
cutsqi = cutsq[typei]; cut_bucksqi = cut_bucksq[typei];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
jneighn = (jneigh = listouter->firstneigh[i])+listouter->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cutsqi[typej = type[j]]) continue;
r2inv = 1.0/rsq;
r = sqrt(rsq);
if ((respa_flag = (rsq>cut_in_off_sq)&&(rsq<cut_in_on_sq))) {
register double rsw = (r-cut_in_off)/cut_in_diff;
frespa = rsw*rsw*(3.0-2.0*rsw);
}
if (order1 && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double s = qri*q[j];
if (respa_flag) // correct for respa
respa_coul = ni == 0 ? frespa*s/r : frespa*s/r*special_coul[ni];
register double x = g_ewald*r, t = 1.0/(1.0+EWALD_P*x);
if (ni == 0) {
s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s;
if (eflag) ecoul = t;
}
else { // correct for special
r = s*(1.0-special_coul[ni])/r; s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-r;
if (eflag) ecoul = t-r;
}
} // table real space
else {
if (respa_flag) respa_coul = ni == 0 ? // correct for respa
frespa*qri*q[j]/r :
frespa*qri*q[j]/r*special_coul[ni];
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask) >> ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = qi*q[j];
if (ni == 0) {
force_coul = qiqj*(ftable[k]+f*dftable[k]);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]);
}
else { // correct for special
t.f = (1.0-special_coul[ni])*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]-t.f);
}
}
}
else force_coul = respa_coul = ecoul = 0.0;
if (rsq < cut_bucksqi[typej]) { // buckingham
register double rn = r2inv*r2inv*r2inv,
expr = exp(-r*rhoinvi[typej]);
if (respa_flag) respa_buck = ni == 0 ? // correct for respa
frespa*(r*expr*buck1i[typej]-rn*buck2i[typej]) :
frespa*(r*expr*buck1i[typej]-rn*buck2i[typej])*special_lj[ni];
if (order6) { // long-range form
register double x2 = g2*rsq, a2 = 1.0/x2;
x2 = a2*exp(-x2)*buckci[typej];
if (ni == 0) {
force_buck =
r*expr*buck1i[typej]-g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq;
if (eflag) evdwl = expr*buckai[typej]-g6*((a2+1.0)*a2+0.5)*x2;
}
else { // correct for special
register double f = special_lj[ni], t = rn*(1.0-f);
force_buck = f*r*expr*buck1i[typej]-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq+t*buck2i[typej];
if (eflag) evdwl = f*expr*buckai[typej] -
g6*((a2+1.0)*a2+0.5)*x2+t*buckci[typej];
}
}
else { // cut form
if (ni == 0) {
force_buck = r*expr*buck1i[typej]-rn*buck2i[typej];
if (eflag)
evdwl = expr*buckai[typej]-rn*buckci[typej]-offseti[typej];
}
else { // correct for special
register double f = special_lj[ni];
force_buck = f*(r*expr*buck1i[typej]-rn*buck2i[typej]);
if (eflag)
evdwl = f*(expr*buckai[typej]-rn*buckci[typej]-offseti[typej]);
}
}
}
else force_buck = respa_buck = evdwl = 0.0;
fpair = (force_coul+force_buck)*r2inv;
frespa = fpair-(respa_coul+respa_buck)*r2inv;
if (newton_pair || j < nlocal) {
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*frespa; fj[0] -= f;
fi[1] += f = d[1]*frespa; fj[1] -= f;
fi[2] += f = d[2]*frespa; fj[2] -= f;
}
else {
fi[0] += d[0]*frespa;
fi[1] += d[1]*frespa;
fi[2] += d[2]*frespa;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,d[0],d[1],d[2]);
}
}
}
/* ----------------------------------------------------------------------
setup force tables used in compute routines
------------------------------------------------------------------------- */
void PairBuckCoul::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable,"pair:vtable");
memory->create(ptable,ntable,"pair:ptable");
memory->create(dvtable,ntable,"pair:dvtable");
memory->create(dptable,ntable,"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrt(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq) {
rsq_lookup.f = cut_coulsq;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairBuckCoul::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
double PairBuckCoul::single(int i, int j, int itype, int jtype,
double rsq, double factor_coul, double factor_buck,
double &fforce)
{
double f, r, r2inv, r6inv, force_coul, force_buck;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2, *q = atom->q;
r = sqrt(rsq);
r2inv = 1.0/rsq;
double eng = 0.0;
if ((ewald_order&2) && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double x = g_ewald*r;
register double s = force->qqrd2e*q[i]*q[j], t = 1.0/(1.0+EWALD_P*x);
f = s*(1.0-factor_coul)/r; s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-f;
eng += t-f;
}
else { // table real space
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask) >> ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = q[i]*q[j];
t.f = (1.0-factor_coul)*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
eng += qiqj*(etable[k]+f*detable[k]-t.f);
}
} else force_coul = 0.0;
if (rsq < cut_bucksq[itype][jtype]) { // buckingham
register double expr = factor_buck*exp(-sqrt(rsq)*rhoinv[itype][jtype]);
r6inv = r2inv*r2inv*r2inv;
if (ewald_order&64) { // long-range
register double x2 = g2*rsq, a2 = 1.0/x2, t = r6inv*(1.0-factor_buck);
x2 = a2*exp(-x2)*buck_c[itype][jtype];
force_buck = buck1[itype][jtype]*r*expr-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+a2)*x2*rsq+t*buck2[itype][jtype];
eng += buck_a[itype][jtype]*expr-
g6*((a2+1.0)*a2+0.5)*x2+t*buck_c[itype][jtype];
}
else { // cut
force_buck =
buck1[itype][jtype]*r*expr-factor_buck*buck_c[itype][jtype]*r6inv;
eng += buck_a[itype][jtype]*expr-
factor_buck*(buck_c[itype][jtype]*r6inv-offset[itype][jtype]);
}
} else force_buck = 0.0;
fforce = (force_coul+force_buck)*r2inv;
return eng;
}
diff --git a/src/USER-EWALDN/pair_lj_coul.cpp b/src/USER-EWALDN/pair_lj_coul.cpp
index 81a15a0bd..b6ee94bbd 100644
--- a/src/USER-EWALDN/pair_lj_coul.cpp
+++ b/src/USER-EWALDN/pair_lj_coul.cpp
@@ -1,1161 +1,1161 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Pieter J. in 't Veld (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "math_vector.h"
#include "pair_lj_coul.h"
#include "atom.h"
#include "comm.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "force.h"
#include "kspace.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define EWALD_F 1.12837917
#define EWALD_P 0.3275911
#define A1 0.254829592
#define A2 -0.284496736
#define A3 1.421413741
#define A4 -1.453152027
#define A5 1.061405429
/* ---------------------------------------------------------------------- */
PairLJCoul::PairLJCoul(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
ftable = NULL;
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
#define PAIR_ILLEGAL "Illegal pair_style lj/coul command"
#define PAIR_CUTOFF "Only one cut-off allowed when requesting all long"
#define PAIR_MISSING "Cut-offs missing in pair_style lj/coul"
#define PAIR_COUL_CUT "Coulombic cut not supported in pair_style lj/coul"
#define PAIR_LARGEST "Using largest cut-off for lj/coul long long"
#define PAIR_MIX "Mixing forced for lj coefficients"
void PairLJCoul::options(char **arg, int order)
{
char *option[] = {"long", "cut", "off", NULL};
int i;
if (!*arg) error->all(PAIR_ILLEGAL);
for (i=0; option[i]&&strcmp(arg[0], option[i]); ++i);
switch (i) {
default: error->all(PAIR_ILLEGAL);
case 0: ewald_order |= 1<<order; break; // set kspace r^-order
case 2: ewald_off |= 1<<order; // turn r^-order off
case 1: break;
}
}
void PairLJCoul::settings(int narg, char **arg)
{
if (narg != 3 && narg != 4) error->all("Illegal pair_style command");
ewald_off = 0;
ewald_order = 0;
options(arg, 6);
options(++arg, 1);
if (!comm->me && ewald_order&(1<<6)) error->warning(PAIR_MIX);
if (!comm->me && ewald_order==((1<<1)|(1<<6))) error->warning(PAIR_LARGEST);
if (!*(++arg)) error->all(PAIR_MISSING);
if (!((ewald_order^ewald_off)&(1<<1))) error->all(PAIR_COUL_CUT);
cut_lj_global = force->numeric(*(arg++));
if (*arg&&(ewald_order&0x42==0x42)) error->all(PAIR_CUTOFF);
if (narg == 4) cut_coul = force->numeric(*arg);
else cut_coul = cut_lj_global;
if (allocated) { // reset explicit cuts
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut_lj[i][j] = cut_lj_global;
}
}
/* ----------------------------------------------------------------------
free all arrays
------------------------------------------------------------------------- */
PairLJCoul::~PairLJCoul()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut_lj_read);
memory->destroy(cut_lj);
memory->destroy(cut_ljsq);
memory->destroy(epsilon_read);
memory->destroy(epsilon);
memory->destroy(sigma_read);
memory->destroy(sigma);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(offset);
}
if (ftable) free_tables();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJCoul::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut_lj_read,n+1,n+1,"pair:cut_lj_read");
memory->create(cut_lj,n+1,n+1,"pair:cut_lj");
memory->create(cut_ljsq,n+1,n+1,"pair:cut_ljsq");
memory->create(epsilon_read,n+1,n+1,"pair:epsilon_read");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma_read,n+1,n+1,"pair:sigma_read");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
extract protected data from object
------------------------------------------------------------------------- */
void *PairLJCoul::extract(char *id, int &dim)
{
char *ids[] = {
"B", "sigma", "epsilon", "ewald_order", "ewald_cut", "ewald_mix",
"cut_coul", NULL};
void *ptrs[] = {
lj4, sigma, epsilon, &ewald_order, &cut_coul, &mix_flag, &cut_coul, NULL};
int i;
for (i=0; ids[i]&&strcmp(ids[i], id); ++i);
if (i <= 2) dim = 2;
else dim = 0;
return ptrs[i];
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJCoul::coeff(int narg, char **arg)
{
if (narg < 4 || narg > 5) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
double epsilon_one = force->numeric(arg[2]);
double sigma_one = force->numeric(arg[3]);
double cut_lj_one = cut_lj_global;
if (narg == 5) cut_lj_one = force->numeric(arg[4]);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon_read[i][j] = epsilon_one;
sigma_read[i][j] = sigma_one;
cut_lj_read[i][j] = cut_lj_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJCoul::init_style()
{
char *style1[] = {"ewald", "ewald/n", "pppm", NULL};
char *style6[] = {"ewald/n", NULL};
int i;
// require an atom style with charge defined
if (!atom->q_flag && (ewald_order&(1<<1)))
error->all(
"Invoking coulombic in pair style lj/coul requires atom attribute q");
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 0 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 0 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
cut_coulsq = cut_coul * cut_coul;
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
// ensure use of KSpace long-range solver, set g_ewald
if (ewald_order&(1<<1)) { // r^-1 kspace
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
for (i=0; style1[i]&&strcmp(force->kspace_style, style1[i]); ++i);
if (!style1[i]) error->all("Pair style is incompatible with KSpace style");
}
if (ewald_order&(1<<6)) { // r^-6 kspace
if (force->kspace == NULL)
error->all("Pair style is incompatible with KSpace style");
for (i=0; style6[i]&&strcmp(force->kspace_style, style6[i]); ++i);
if (!style6[i]) error->all("Pair style is incompatible with KSpace style");
}
if (force->kspace) g_ewald = force->kspace->g_ewald;
// setup force tables
if (ncoultablebits) init_tables();
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairLJCoul::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJCoul::init_one(int i, int j)
{
if ((ewald_order&(1<<6))||(setflag[i][j] == 0)) {
epsilon[i][j] = mix_energy(epsilon_read[i][i],epsilon_read[j][j],
sigma_read[i][i],sigma_read[j][j]);
sigma[i][j] = mix_distance(sigma_read[i][i],sigma_read[j][j]);
if (ewald_order&(1<<6))
cut_lj[i][j] = cut_lj_global;
else
cut_lj[i][j] = mix_distance(cut_lj_read[i][i],cut_lj_read[j][j]);
}
else {
sigma[i][j] = sigma_read[i][j];
epsilon[i][j] = epsilon_read[i][j];
cut_lj[i][j] = cut_lj_read[i][j];
}
double cut = MAX(cut_lj[i][j], cut_coul);
cutsq[i][j] = cut*cut;
cut_ljsq[i][j] = cut_lj[i][j] * cut_lj[i][j];
lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
// check interior rRESPA cutoff
if (cut_respa && MIN(cut_lj[i][j],cut_coul) < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
if (offset_flag) {
double ratio = sigma[i][j] / cut_lj[i][j];
offset[i][j] = 4.0 * epsilon[i][j] * (pow(ratio,12.0) - pow(ratio,6.0));
} else offset[i][j] = 0.0;
cutsq[j][i] = cutsq[i][j];
cut_ljsq[j][i] = cut_ljsq[i][j];
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
offset[j][i] = offset[i][j];
return cut;
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCoul::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilon_read[i][j],sizeof(double),1,fp);
fwrite(&sigma_read[i][j],sizeof(double),1,fp);
fwrite(&cut_lj_read[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCoul::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilon_read[i][j],sizeof(double),1,fp);
fread(&sigma_read[i][j],sizeof(double),1,fp);
fread(&cut_lj_read[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilon_read[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma_read[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_lj_read[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCoul::write_restart_settings(FILE *fp)
{
fwrite(&cut_lj_global,sizeof(double),1,fp);
fwrite(&cut_coul,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
fwrite(&ewald_order,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCoul::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
fread(&cut_lj_global,sizeof(double),1,fp);
fread(&cut_coul,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
fread(&ewald_order,sizeof(int),1,fp);
}
MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
MPI_Bcast(&ewald_order,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
compute pair interactions
------------------------------------------------------------------------- */
void PairLJCoul::compute(int eflag, int vflag)
{
double evdwl,ecoul,fpair;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x, *x0 = x[0];
double **f = atom->f, *f0 = f[0], *fi = f0;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
int i, j, order1 = ewald_order&(1<<1), order6 = ewald_order&(1<<6);
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
double qi, qri, *cutsqi, *cut_ljsqi, *lj1i, *lj2i, *lj3i, *lj4i, *offseti;
double rsq, r2inv, force_coul, force_lj;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2;
vector xi, d;
ineighn = (ineigh = list->ilist)+list->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
if (order1) qri = (qi = q[i])*qqrd2e; // initialize constants
offseti = offset[typei = type[i]];
lj1i = lj1[typei]; lj2i = lj2[typei]; lj3i = lj3[typei]; lj4i = lj4[typei];
cutsqi = cutsq[typei]; cut_ljsqi = cut_ljsq[typei];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
jneighn = (jneigh = list->firstneigh[i])+list->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cutsqi[typej = type[j]]) continue;
r2inv = 1.0/rsq;
if (order1 && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double r = sqrt(rsq), x = g_ewald*r;
register double s = qri*q[j], t = 1.0/(1.0+EWALD_P*x);
if (ni == 0) {
s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s;
if (eflag) ecoul = t;
}
else { // special case
r = s*(1.0-special_coul[ni])/r; s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-r;
if (eflag) ecoul = t-r;
}
} // table real space
else {
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask)>>ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = qi*q[j];
if (ni == 0) {
force_coul = qiqj*(ftable[k]+f*dftable[k]);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]);
}
else { // special case
t.f = (1.0-special_coul[ni])*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]-t.f);
}
}
}
else force_coul = ecoul = 0.0;
if (rsq < cut_ljsqi[typej]) { // lj
if (order6) { // long-range lj
register double rn = r2inv*r2inv*r2inv;
register double x2 = g2*rsq, a2 = 1.0/x2;
x2 = a2*exp(-x2)*lj4i[typej];
if (ni == 0) {
force_lj =
(rn*=rn)*lj1i[typej]-g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq;
if (eflag)
evdwl = rn*lj3i[typej]-g6*((a2+1.0)*a2+0.5)*x2;
}
else { // special case
register double f = special_lj[ni], t = rn*(1.0-f);
force_lj = f*(rn *= rn)*lj1i[typej]-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq+t*lj2i[typej];
if (eflag)
evdwl = f*rn*lj3i[typej]-g6*((a2+1.0)*a2+0.5)*x2+t*lj4i[typej];
}
}
else { // cut lj
register double rn = r2inv*r2inv*r2inv;
if (ni == 0) {
force_lj = rn*(rn*lj1i[typej]-lj2i[typej]);
if (eflag) evdwl = rn*(rn*lj3i[typej]-lj4i[typej])-offseti[typej];
}
else { // special case
register double f = special_lj[ni];
force_lj = f*rn*(rn*lj1i[typej]-lj2i[typej]);
if (eflag)
evdwl = f * (rn*(rn*lj3i[typej]-lj4i[typej])-offseti[typej]);
}
}
}
else force_lj = evdwl = 0.0;
fpair = (force_coul+force_lj)*r2inv;
if (newton_pair || j < nlocal) {
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,d[0],d[1],d[2]);
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairLJCoul::compute_inner()
{
double rsq, r2inv, force_coul, force_lj, fpair;
int *type = atom->type;
int nlocal = atom->nlocal;
double *x0 = atom->x[0], *f0 = atom->f[0], *fi = f0, *q = atom->q;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
int i, j, order1 = (ewald_order|(ewald_off^-1))&(1<<1);
double qri, *cut_ljsqi, *lj1i, *lj2i;
vector xi, d;
ineighn = (ineigh = list->ilist)+list->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
qri = qqrd2e*q[i];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
cut_ljsqi = cut_ljsq[typei = type[i]];
lj1i = lj1[typei]; lj2i = lj2[typei];
jneighn = (jneigh = list->firstneigh[i])+list->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cut_out_off_sq) continue;
r2inv = 1.0/rsq;
if (order1 && (rsq < cut_coulsq)) // coulombic
force_coul = ni == 0 ?
qri*q[j]*sqrt(r2inv) : qri*q[j]*sqrt(r2inv)*special_coul[ni];
if (rsq < cut_ljsqi[typej = type[j]]) { // lennard-jones
register double rn = r2inv*r2inv*r2inv;
force_lj = ni == 0 ?
rn*(rn*lj1i[typej]-lj2i[typej]) :
rn*(rn*lj1i[typej]-lj2i[typej])*special_lj[ni];
}
else force_lj = 0.0;
fpair = (force_coul + force_lj) * r2inv;
if (rsq > cut_out_on_sq) { // switching
register double rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
if (newton_pair || j < nlocal) { // force update
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCoul::compute_middle()
{
double rsq, r2inv, force_coul, force_lj, fpair;
int *type = atom->type;
int nlocal = atom->nlocal;
double *x0 = atom->x[0], *f0 = atom->f[0], *fi = f0, *q = atom->q;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni;
int i, j, order1 = (ewald_order|(ewald_off^-1))&(1<<1);
double qri, *cut_ljsqi, *lj1i, *lj2i;
vector xi, d;
ineighn = (ineigh = list->ilist)+list->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
qri = qqrd2e*q[i];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
cut_ljsqi = cut_ljsq[typei = type[i]];
lj1i = lj1[typei]; lj2i = lj2[typei];
jneighn = (jneigh = list->firstneigh[i])+list->numneigh[i];
for (; jneigh<jneighn; ++jneigh) {
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cut_out_off_sq) continue;
if (rsq <= cut_in_off_sq) continue;
r2inv = 1.0/rsq;
if (order1 && (rsq < cut_coulsq)) // coulombic
force_coul = ni == 0 ?
qri*q[j]*sqrt(r2inv) : qri*q[j]*sqrt(r2inv)*special_coul[ni];
if (rsq < cut_ljsqi[typej = type[j]]) { // lennard-jones
register double rn = r2inv*r2inv*r2inv;
force_lj = ni == 0 ?
rn*(rn*lj1i[typej]-lj2i[typej]) :
rn*(rn*lj1i[typej]-lj2i[typej])*special_lj[ni];
}
else force_lj = 0.0;
fpair = (force_coul + force_lj) * r2inv;
if (rsq < cut_in_on_sq) { // switching
register double rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
register double rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0);
}
if (newton_pair || j < nlocal) { // force update
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*fpair; fj[0] -= f;
fi[1] += f = d[1]*fpair; fj[1] -= f;
fi[2] += f = d[2]*fpair; fj[2] -= f;
}
else {
fi[0] += d[0]*fpair;
fi[1] += d[1]*fpair;
fi[2] += d[2]*fpair;
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCoul::compute_outer(int eflag, int vflag)
{
double evdwl,ecoul,fpair;
evdwl = ecoul = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x, *x0 = x[0];
double **f = atom->f, *f0 = f[0], *fi = f0;
double *q = atom->q;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_coul = force->special_coul;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double qqrd2e = force->qqrd2e;
int i, j, order1 = ewald_order&(1<<1), order6 = ewald_order&(1<<6);
int *ineigh, *ineighn, *jneigh, *jneighn, typei, typej, ni, respa_flag;
double qi, qri, *cutsqi, *cut_ljsqi, *lj1i, *lj2i, *lj3i, *lj4i, *offseti;
double rsq, r2inv, force_coul, force_lj;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2;
double respa_lj, respa_coul, frespa;
vector xi, d;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
ineighn = (ineigh = list->ilist)+list->inum;
for (; ineigh<ineighn; ++ineigh) { // loop over my atoms
i = *ineigh; fi = f0+3*i;
if (order1) qri = (qi = q[i])*qqrd2e; // initialize constants
offseti = offset[typei = type[i]];
lj1i = lj1[typei]; lj2i = lj2[typei]; lj3i = lj3[typei]; lj4i = lj4[typei];
cutsqi = cutsq[typei]; cut_ljsqi = cut_ljsq[typei];
memcpy(xi, x0+(i+(i<<1)), sizeof(vector));
jneighn = (jneigh = list->firstneigh[i])+list->numneigh[i];
for (; jneigh<jneighn; ++jneigh) { // loop over neighbors
j = *jneigh;
ni = sbmask(j);
j &= NEIGHMASK;
{ register double *xj = x0+(j+(j<<1));
d[0] = xi[0] - xj[0]; // pair vector
d[1] = xi[1] - xj[1];
d[2] = xi[2] - xj[2]; }
if ((rsq = vec_dot(d, d)) >= cutsqi[typej = type[j]]) continue;
r2inv = 1.0/rsq;
if ((respa_flag = (rsq>cut_in_off_sq)&&(rsq<cut_in_on_sq))) {
register double rsw = (sqrt(rsq)-cut_in_off)/cut_in_diff;
frespa = rsw*rsw*(3.0-2.0*rsw);
}
if (order1 && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double r = sqrt(rsq), s = qri*q[j];
if (respa_flag) // correct for respa
respa_coul = ni == 0 ? frespa*s/r : frespa*s/r*special_coul[ni];
register double x = g_ewald*r, t = 1.0/(1.0+EWALD_P*x);
if (ni == 0) {
s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s;
if (eflag) ecoul = t;
}
else { // correct for special
r = s*(1.0-special_coul[ni])/r; s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-r;
if (eflag) ecoul = t-r;
}
} // table real space
else {
if (respa_flag) respa_coul = ni == 0 ? // correct for respa
frespa*qri*q[j]/sqrt(rsq) :
frespa*qri*q[j]/sqrt(rsq)*special_coul[ni];
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask) >> ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = qi*q[j];
if (ni == 0) {
force_coul = qiqj*(ftable[k]+f*dftable[k]);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]);
}
else { // correct for special
t.f = (1.0-special_coul[ni])*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
if (eflag) ecoul = qiqj*(etable[k]+f*detable[k]-t.f);
}
}
}
else force_coul = respa_coul = ecoul = 0.0;
if (rsq < cut_ljsqi[typej]) { // lennard-jones
register double rn = r2inv*r2inv*r2inv;
if (respa_flag) respa_lj = ni == 0 ? // correct for respa
frespa*rn*(rn*lj1i[typej]-lj2i[typej]) :
frespa*rn*(rn*lj1i[typej]-lj2i[typej])*special_lj[ni];
if (order6) { // long-range form
register double x2 = g2*rsq, a2 = 1.0/x2;
x2 = a2*exp(-x2)*lj4i[typej];
if (ni == 0) {
force_lj =
(rn*=rn)*lj1i[typej]-g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq;
if (eflag) evdwl = rn*lj3i[typej]-g6*((a2+1.0)*a2+0.5)*x2;
}
else { // correct for special
register double f = special_lj[ni], t = rn*(1.0-f);
force_lj = f*(rn *= rn)*lj1i[typej]-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+1.0)*x2*rsq+t*lj2i[typej];
if (eflag)
evdwl = f*rn*lj3i[typej]-g6*((a2+1.0)*a2+0.5)*x2+t*lj4i[typej];
}
}
else { // cut form
if (ni == 0) {
force_lj = rn*(rn*lj1i[typej]-lj2i[typej]);
if (eflag) evdwl = rn*(rn*lj3i[typej]-lj4i[typej])-offseti[typej];
}
else { // correct for special
register double f = special_lj[ni];
force_lj = f*rn*(rn*lj1i[typej]-lj2i[typej]);
if (eflag)
evdwl = f*(rn*(rn*lj3i[typej]-lj4i[typej])-offseti[typej]);
}
}
}
else force_lj = respa_lj = evdwl = 0.0;
fpair = (force_coul+force_lj)*r2inv;
frespa = fpair-(respa_coul+respa_lj)*r2inv;
if (newton_pair || j < nlocal) {
register double *fj = f0+(j+(j<<1)), f;
fi[0] += f = d[0]*frespa; fj[0] -= f;
fi[1] += f = d[1]*frespa; fj[1] -= f;
fi[2] += f = d[2]*frespa; fj[2] -= f;
}
else {
fi[0] += d[0]*frespa;
fi[1] += d[1]*frespa;
fi[2] += d[2]*frespa;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,ecoul,fpair,d[0],d[1],d[2]);
}
}
}
/* ----------------------------------------------------------------------
setup force tables used in compute routines
------------------------------------------------------------------------- */
void PairLJCoul::init_tables()
{
int masklo,maskhi;
double r,grij,expm2,derfc,rsw;
double qqrd2e = force->qqrd2e;
tabinnersq = tabinner*tabinner;
init_bitmap(tabinner,cut_coul,ncoultablebits,
masklo,maskhi,ncoulmask,ncoulshiftbits);
int ntable = 1;
for (int i = 0; i < ncoultablebits; i++) ntable *= 2;
// linear lookup tables of length N = 2^ncoultablebits
// stored value = value at lower edge of bin
// d values = delta from lower edge to upper edge of bin
if (ftable) free_tables();
memory->create(rtable,ntable,"pair:rtable");
memory->create(ftable,ntable,"pair:ftable");
memory->create(ctable,ntable,"pair:ctable");
memory->create(etable,ntable,"pair:etable");
memory->create(drtable,ntable,"pair:drtable");
memory->create(dftable,ntable,"pair:dftable");
memory->create(dctable,ntable,"pair:dctable");
memory->create(detable,ntable,"pair:detable");
if (cut_respa == NULL) {
vtable = ptable = dvtable = dptable = NULL;
} else {
memory->create(vtable,ntable,"pair:vtable");
memory->create(ptable,ntable,"pair:ptable");
memory->create(dvtable,ntable,"pair:dvtable");
memory->create(dptable,ntable,"pair:dptable");
}
union_int_float_t rsq_lookup;
union_int_float_t minrsq_lookup;
int itablemin;
minrsq_lookup.i = 0 << ncoulshiftbits;
minrsq_lookup.i |= maskhi;
for (int i = 0; i < ntable; i++) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= masklo;
if (rsq_lookup.f < tabinnersq) {
rsq_lookup.i = i << ncoulshiftbits;
rsq_lookup.i |= maskhi;
}
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
etable[i] = qqrd2e/r * derfc;
} else {
rtable[i] = rsq_lookup.f;
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
ctable[i] = 0.0;
etable[i] = qqrd2e/r * derfc;
ptable[i] = qqrd2e/r;
vtable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
ftable[i] = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
ctable[i] = qqrd2e/r;
}
}
}
minrsq_lookup.f = MIN(minrsq_lookup.f,rsq_lookup.f);
}
tabinnersq = minrsq_lookup.f;
int ntablem1 = ntable - 1;
for (int i = 0; i < ntablem1; i++) {
drtable[i] = 1.0/(rtable[i+1] - rtable[i]);
dftable[i] = ftable[i+1] - ftable[i];
dctable[i] = ctable[i+1] - ctable[i];
detable[i] = etable[i+1] - etable[i];
}
if (cut_respa) {
for (int i = 0; i < ntablem1; i++) {
dvtable[i] = vtable[i+1] - vtable[i];
dptable[i] = ptable[i+1] - ptable[i];
}
}
// get the delta values for the last table entries
// tables are connected periodically between 0 and ntablem1
drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]);
dftable[ntablem1] = ftable[0] - ftable[ntablem1];
dctable[ntablem1] = ctable[0] - ctable[ntablem1];
detable[ntablem1] = etable[0] - etable[ntablem1];
if (cut_respa) {
dvtable[ntablem1] = vtable[0] - vtable[ntablem1];
dptable[ntablem1] = ptable[0] - ptable[ntablem1];
}
// get the correct delta values at itablemax
// smallest r is in bin itablemin
// largest r is in bin itablemax, which is itablemin-1,
// or ntablem1 if itablemin=0
// deltas at itablemax only needed if corresponding rsq < cut*cut
// if so, compute deltas between rsq and cut*cut
double f_tmp,c_tmp,e_tmp,p_tmp,v_tmp;
itablemin = minrsq_lookup.i & ncoulmask;
itablemin >>= ncoulshiftbits;
int itablemax = itablemin - 1;
if (itablemin == 0) itablemax = ntablem1;
rsq_lookup.i = itablemax << ncoulshiftbits;
rsq_lookup.i |= maskhi;
if (rsq_lookup.f < cut_coulsq) {
rsq_lookup.f = cut_coulsq;
r = sqrtf(rsq_lookup.f);
grij = g_ewald * r;
expm2 = exp(-grij*grij);
derfc = erfc(grij);
if (cut_respa == NULL) {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
e_tmp = qqrd2e/r * derfc;
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2 - 1.0);
c_tmp = 0.0;
e_tmp = qqrd2e/r * derfc;
p_tmp = qqrd2e/r;
v_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
if (rsq_lookup.f > cut_respa[2]*cut_respa[2]) {
if (rsq_lookup.f < cut_respa[3]*cut_respa[3]) {
rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]);
f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw);
} else {
f_tmp = qqrd2e/r * (derfc + EWALD_F*grij*expm2);
c_tmp = qqrd2e/r;
}
}
}
drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]);
dftable[itablemax] = f_tmp - ftable[itablemax];
dctable[itablemax] = c_tmp - ctable[itablemax];
detable[itablemax] = e_tmp - etable[itablemax];
if (cut_respa) {
dvtable[itablemax] = v_tmp - vtable[itablemax];
dptable[itablemax] = p_tmp - ptable[itablemax];
}
}
}
/* ----------------------------------------------------------------------
free memory for tables used in pair computations
------------------------------------------------------------------------- */
void PairLJCoul::free_tables()
{
memory->destroy(rtable);
memory->destroy(drtable);
memory->destroy(ftable);
memory->destroy(dftable);
memory->destroy(ctable);
memory->destroy(dctable);
memory->destroy(etable);
memory->destroy(detable);
memory->destroy(vtable);
memory->destroy(dvtable);
memory->destroy(ptable);
memory->destroy(dptable);
}
/* ---------------------------------------------------------------------- */
double PairLJCoul::single(int i, int j, int itype, int jtype,
double rsq, double factor_coul, double factor_lj,
double &fforce)
{
double r2inv, r6inv, force_coul, force_lj;
double g2 = g_ewald*g_ewald, g6 = g2*g2*g2, g8 = g6*g2, *q = atom->q;
double eng = 0.0;
r2inv = 1.0/rsq;
if ((ewald_order&2) && (rsq < cut_coulsq)) { // coulombic
if (!ncoultablebits || rsq <= tabinnersq) { // series real space
register double r = sqrt(rsq), x = g_ewald*r;
register double s = force->qqrd2e*q[i]*q[j], t = 1.0/(1.0+EWALD_P*x);
r = s*(1.0-factor_coul)/r; s *= g_ewald*exp(-x*x);
force_coul = (t *= ((((t*A5+A4)*t+A3)*t+A2)*t+A1)*s/x)+EWALD_F*s-r;
eng += t-r;
}
else { // table real space
register union_int_float_t t;
t.f = rsq;
register const int k = (t.i & ncoulmask) >> ncoulshiftbits;
register double f = (rsq-rtable[k])*drtable[k], qiqj = q[i]*q[j];
t.f = (1.0-factor_coul)*(ctable[k]+f*dctable[k]);
force_coul = qiqj*(ftable[k]+f*dftable[k]-t.f);
eng += qiqj*(etable[k]+f*detable[k]-t.f);
}
} else force_coul = 0.0;
if (rsq < cut_ljsq[itype][jtype]) { // lennard-jones
r6inv = r2inv*r2inv*r2inv;
if (ewald_order&64) { // long-range
register double x2 = g2*rsq, a2 = 1.0/x2, t = r6inv*(1.0-factor_lj);
x2 = a2*exp(-x2)*lj4[itype][jtype];
force_lj = factor_lj*(r6inv *= r6inv)*lj1[itype][jtype]-
g8*(((6.0*a2+6.0)*a2+3.0)*a2+a2)*x2*rsq+t*lj2[itype][jtype];
eng += factor_lj*r6inv*lj3[itype][jtype]-
g6*((a2+1.0)*a2+0.5)*x2+t*lj4[itype][jtype];
}
else { // cut
force_lj = factor_lj*r6inv*(lj1[itype][jtype]*r6inv-lj2[itype][jtype]);
eng += factor_lj*(r6inv*(r6inv*lj3[itype][jtype]-
lj4[itype][jtype])-offset[itype][jtype]);
}
} else force_lj = 0.0;
fforce = (force_coul+force_lj)*r2inv;
return eng;
}
diff --git a/src/USER-IMD/fix_imd.cpp b/src/USER-IMD/fix_imd.cpp
index 758947dd6..790121254 100644
--- a/src/USER-IMD/fix_imd.cpp
+++ b/src/USER-IMD/fix_imd.cpp
@@ -1,1355 +1,1355 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
The FixIMD class contains code from VMD and NAMD which is copyrighted
by the Board of Trustees of the University of Illinois and is free to
use with LAMMPS according to point 2 of the UIUC license (10% clause):
" Licensee may, at its own expense, create and freely distribute
complimentary works that interoperate with the Software, directing others to
the TCBG server to license and obtain the Software itself. Licensee may, at
its own expense, modify the Software to make derivative works. Except as
explicitly provided below, this License shall apply to any derivative work
as it does to the original Software distributed by Illinois. Any derivative
work should be clearly marked and renamed to notify users that it is a
modified version and not the original Software distributed by Illinois.
Licensee agrees to reproduce the copyright notice and other proprietary
markings on any derivative work and to include in the documentation of such
work the acknowledgement:
"This software includes code developed by the Theoretical and Computational
Biophysics Group in the Beckman Institute for Advanced Science and
Technology at the University of Illinois at Urbana-Champaign."
Licensee may redistribute without restriction works with up to 1/2 of their
non-comment source code derived from at most 1/10 of the non-comment source
code developed by Illinois and contained in the Software, provided that the
above directions for notice and acknowledgement are observed. Any other
distribution of the Software or any derivative work requires a separate
license with Illinois. Licensee may contact Illinois (vmd@ks.uiuc.edu) to
negotiate an appropriate license for such distribution."
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (TempleU)
IMD API, hash, and socket code written by: John E. Stone,
Justin Gullingsrud, and James Phillips, (TCBG, Beckman Institute, UIUC)
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#if defined(_MSC_VER)
#include <winsock2.h>
#else
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/file.h>
#endif
#include <errno.h>
#include "fix_imd.h"
#include "atom.h"
#include "comm.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "error.h"
#include "group.h"
#include "memory.h"
/********** API definitions of the VMD/NAMD code ************************
* This code was taken and adapted from VMD-1.8.7/NAMD-2.7 in Sep 2009. *
* If there are any bugs or problems, please contact akohlmey@gmail.com *
************************************************************************/
/***************************************************************************
*cr
*cr (C) Copyright 1995-2009 The Board of Trustees of the
*cr University of Illinois
*cr All Rights Reserved
*cr
***************************************************************************/
/* part 1: integer hash table */
/** hash table top level data structure */
typedef struct inthash_t {
struct inthash_node_t **bucket; /* array of hash nodes */
int size; /* size of the array */
int entries; /* number of entries in table */
int downshift; /* shift cound, used in hash function */
int mask; /* used to select bits for hashing */
} inthash_t;
/** hash table node data structure */
typedef struct inthash_node_t {
int data; /* data in hash node */
int key; /* key for hash lookup */
struct inthash_node_t *next; /* next node in hash chain */
} inthash_node_t;
#define HASH_FAIL -1
#define HASH_LIMIT 0.5
/* initialize new hash table */
static void inthash_init(inthash_t *tptr, int buckets);
/* lookup entry in hash table */
static int inthash_lookup(const inthash_t *tptr, int key);
/* generate list of keys for reverse lookups. */
static int *inthash_keys(inthash_t *tptr);
/* insert an entry into hash table. */
static int inthash_insert(inthash_t *tptr, int key, int data);
/* delete the hash table */
static void inthash_destroy(inthash_t *tptr);
/* part 2: Interactive MD (IMD) API */
#include <limits.h>
#if ( INT_MAX == 2147483647 )
typedef int int32;
#else
typedef short int32;
#endif
typedef struct {
int32 type;
int32 length;
} IMDheader;
#define IMDHEADERSIZE 8
#define IMDVERSION 2
typedef enum IMDType_t {
IMD_DISCONNECT, /**< close IMD connection, leaving sim running */
IMD_ENERGIES, /**< energy data block */
IMD_FCOORDS, /**< atom coordinates */
IMD_GO, /**< start the simulation */
IMD_HANDSHAKE, /**< endianism and version check message */
IMD_KILL, /**< kill the simulation job, shutdown IMD */
IMD_MDCOMM, /**< MDComm style force data */
IMD_PAUSE, /**< pause the running simulation */
IMD_TRATE, /**< set IMD update transmission rate */
IMD_IOERROR /**< indicate an I/O error */
} IMDType; /**< IMD command message type enumerations */
typedef struct {
int32 tstep; /**< integer timestep index */
float T; /**< Temperature in degrees Kelvin */
float Etot; /**< Total energy, in Kcal/mol */
float Epot; /**< Potential energy, in Kcal/mol */
float Evdw; /**< Van der Waals energy, in Kcal/mol */
float Eelec; /**< Electrostatic energy, in Kcal/mol */
float Ebond; /**< Bond energy, Kcal/mol */
float Eangle; /**< Angle energy, Kcal/mol */
float Edihe; /**< Dihedral energy, Kcal/mol */
float Eimpr; /**< Improper energy, Kcal/mol */
} IMDEnergies; /**< IMD simulation energy report structure */
/** Send control messages - these consist of a header with no subsequent data */
static int imd_handshake(void *); /**< check endianness, version compat */
/** Receive header and data */
static IMDType imd_recv_header(void *, int32 *);
/** Receive MDComm-style forces, units are Kcal/mol/angstrom */
static int imd_recv_mdcomm(void *, int32, int32 *, float *);
/** Receive energies */
static int imd_recv_energies(void *, IMDEnergies *);
/** Receive atom coordinates. */
static int imd_recv_fcoords(void *, int32, float *);
/** Prepare IMD data packet header */
static void imd_fill_header(IMDheader *header, IMDType type, int32 length);
/** Write data to socket */
static int32 imd_writen(void *s, const char *ptr, int32 n);
/* part 3: abstracts platform-dependent routines/APIs for using sockets */
typedef struct {
struct sockaddr_in addr; /* address of socket provided by bind() */
int addrlen; /* size of the addr struct */
int sd; /* socket file descriptor */
} imdsocket;
static int imdsock_init(void);
static void *imdsock_create(void);
static int imdsock_bind(void *, int);
static int imdsock_listen(void *);
static void *imdsock_accept(void *); /* return new socket */
static int imdsock_write(void *, const void *, int);
static int imdsock_read(void *, void *, int);
static int imdsock_selread(void *, int);
static int imdsock_selwrite(void *, int);
static void imdsock_shutdown(void *);
static void imdsock_destroy(void *);
/***************************************************************
* End of API definitions of the VMD/NAMD code. *
* The implementation follows at the end of the file. *
***************************************************************/
using namespace LAMMPS_NS;
/* adapted sort for in-place sorting of map indices. */
static void id_sort(int *idmap, int left, int right);
/* struct for packed data communication of coordinates and forces. */
struct commdata {
int tag;
float x,y,z;
};
/***************************************************************
* create class and parse arguments in LAMMPS script. Syntax:
* fix ID group-ID imd <imd_trate> <imd_port> [unwrap (on|off)] [fscale <imd_fscale>]
***************************************************************/
FixIMD::FixIMD(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 4)
error->all("Illegal fix imd command");
imd_port = atoi(arg[3]);
if (imd_port < 1024)
error->all("Illegal fix imd parameter: port < 1024");
/* default values for optional flags */
unwrap_flag = 0;
nowait_flag = 0;
connect_msg = 1;
imd_fscale = 1.0;
imd_trate = 1;
/* parse optional arguments */
int argsdone = 4;
while (argsdone+1 < narg) {
if (0 == strcmp(arg[argsdone], "unwrap")) {
if (0 == strcmp(arg[argsdone+1], "on")) {
unwrap_flag = 1;
} else {
unwrap_flag = 0;
}
} else if (0 == strcmp(arg[argsdone], "nowait")) {
if (0 == strcmp(arg[argsdone+1], "on")) {
nowait_flag = 1;
} else {
nowait_flag = 0;
}
} else if (0 == strcmp(arg[argsdone], "fscale")) {
imd_fscale = atof(arg[argsdone+1]);
} else if (0 == strcmp(arg[argsdone], "trate")) {
imd_trate = atoi(arg[argsdone+1]);
} else {
error->all("Unknown fix imd parameter");
}
++argsdone; ++argsdone;
}
/* sanity check on parameters */
if (imd_trate < 1)
error->all("Illegal fix imd parameter. trate < 1.");
bigint n = group->count(igroup);
if (n > MAXSMALLINT) error->all("Too many atoms for fix imd");
num_coords = static_cast<int> (n);
MPI_Comm_rank(world,&me);
/* initialize various imd state variables. */
clientsock = NULL;
localsock = NULL;
nlevels_respa = 0;
imd_inactive = 0;
imd_terminate = 0;
imd_forces = 0;
force_buf = NULL;
maxbuf = 0;
comm_buf = NULL;
idmap = NULL;
rev_idmap = NULL;
if (me == 0) {
/* set up incoming socket on MPI rank 0. */
imdsock_init();
localsock = imdsock_create();
clientsock = NULL;
if (imdsock_bind(localsock,imd_port)) {
perror("bind to socket failed");
imdsock_destroy(localsock);
imd_terminate = 1;
} else {
imdsock_listen(localsock);
}
}
MPI_Bcast(&imd_terminate, 1, MPI_INT, 0, world);
if (imd_terminate)
error->all("LAMMPS Terminated on error in IMD.");
/* storage required to communicate a single coordinate or force. */
size_one = sizeof(struct commdata);
}
/*********************************
* Clean up on deleting the fix. *
*********************************/
FixIMD::~FixIMD()
{
inthash_t *hashtable = (inthash_t *)idmap;
memory->sfree(comm_buf);
memory->sfree(force_buf);
inthash_destroy(hashtable);
delete hashtable;
free(rev_idmap);
// close sockets
imdsock_shutdown(clientsock);
imdsock_destroy(clientsock);
imdsock_shutdown(localsock);
imdsock_destroy(localsock);
clientsock=NULL;
localsock=NULL;
return;
}
/* ---------------------------------------------------------------------- */
int FixIMD::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixIMD::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
return;
}
/* ---------------------------------------------------------------------- */
/* (re-)connect to an IMD client (e.g. VMD). return 1 if
new connection was made, 0 if not. */
int FixIMD::reconnect()
{
/* set up IMD communication, but only if needed. */
imd_inactive = 0;
imd_terminate = 0;
if (me == 0) {
if (clientsock) return 1;
if (screen && connect_msg)
if (nowait_flag)
fprintf(screen,"Listening for IMD connection on port %d.\n",imd_port);
else
fprintf(screen,"Waiting for IMD connection on port %d.\n",imd_port);
connect_msg = 0;
clientsock = NULL;
if (nowait_flag) {
int retval = imdsock_selread(localsock,0);
if (retval > 0) {
clientsock = imdsock_accept(localsock);
} else {
imd_inactive = 1;
return 0;
}
} else {
int retval=0;
do {
retval = imdsock_selread(localsock, 60);
} while (retval <= 0);
clientsock = imdsock_accept(localsock);
}
if (!imd_inactive && !clientsock) {
if (screen)
fprintf(screen, "IMD socket accept error. Dropping connection.\n");
imd_terminate = 1;
return 0;
} else {
/* check endianness and IMD protocol version. */
if (imd_handshake(clientsock)) {
if (screen)
fprintf(screen, "IMD handshake error. Dropping connection.\n");
imdsock_destroy(clientsock);
imd_terminate = 1;
return 0;
} else {
int32 length;
if (imdsock_selread(clientsock, 1) != 1 ||
imd_recv_header(clientsock, &length) != IMD_GO) {
if (screen)
fprintf(screen, "Incompatible IMD client version? Dropping connection.\n");
imdsock_destroy(clientsock);
imd_terminate = 1;
return 0;
} else {
return 1;
}
}
}
}
return 0;
}
/* ---------------------------------------------------------------------- */
/* wait for IMD client (e.g. VMD) to respond, initialize communication
* buffers and collect tag/id maps. */
void FixIMD::setup(int)
{
/* nme: number of atoms in group on this MPI task
* nmax: max number of atoms in group across all MPI tasks
* nlocal: all local atoms
*/
int i,j;
int nmax,nme,nlocal;
int *mask = atom->mask;
int *tag = atom->tag;
nlocal = atom->nlocal;
nme=0;
for (i=0; i < nlocal; ++i)
if (mask[i] & groupbit) ++nme;
MPI_Allreduce(&nme,&nmax,1,MPI_INT,MPI_MAX,world);
maxbuf = nmax*size_one;
comm_buf = (void *) memory->smalloc(maxbuf,"imd:comm_buf");
connect_msg = 1;
reconnect();
MPI_Bcast(&imd_inactive, 1, MPI_INT, 0, world);
MPI_Bcast(&imd_terminate, 1, MPI_INT, 0, world);
if (imd_terminate)
error->all("LAMMPS terminated on error in setting up IMD connection.");
/* initialize and build hashtable. */
inthash_t *hashtable=new inthash_t;
inthash_init(hashtable, num_coords);
idmap = (void *)hashtable;
MPI_Status status;
MPI_Request request;
int tmp, ndata;
struct commdata *buf = static_cast<struct commdata *>(comm_buf);
if (me == 0) {
int *taglist = new int[num_coords];
int numtag=0; /* counter to map atom tags to a 0-based consecutive index list */
for (i=0; i < nlocal; ++i) {
if (mask[i] & groupbit) {
taglist[numtag] = tag[i];
++numtag;
}
}
/* loop over procs to receive remote data */
for (i=1; i < comm->nprocs; ++i) {
MPI_Irecv(comm_buf, maxbuf, MPI_BYTE, i, 0, world, &request);
MPI_Send(&tmp, 0, MPI_INT, i, 0, world);
MPI_Wait(&request, &status);
MPI_Get_count(&status, MPI_BYTE, &ndata);
ndata /= size_one;
for (j=0; j < ndata; ++j) {
taglist[numtag] = buf[j].tag;
++numtag;
}
}
/* sort list of tags by value to have consistently the
* same list when running in parallel and build hash table. */
id_sort(taglist, 0, num_coords-1);
for (i=0; i < num_coords; ++i) {
inthash_insert(hashtable, taglist[i], i);
}
delete[] taglist;
/* generate reverse index-to-tag map for communicating
* IMD forces back to the proper atoms */
rev_idmap=inthash_keys(hashtable);
} else {
nme=0;
for (i=0; i < nlocal; ++i) {
if (mask[i] & groupbit) {
buf[nme].tag = tag[i];
++nme;
}
}
/* blocking receive to wait until it is our turn to send data. */
MPI_Recv(&tmp, 0, MPI_INT, 0, 0, world, &status);
MPI_Rsend(comm_buf, nme*size_one, MPI_BYTE, 0, 0, world);
}
return;
}
/* ---------------------------------------------------------------------- */
/* Main IMD protocol handler:
* Send coodinates, energies, and add IMD forces to atoms. */
void FixIMD::post_force(int vflag)
{
/* check for reconnect */
if (imd_inactive) {
reconnect();
MPI_Bcast(&imd_inactive, 1, MPI_INT, 0, world);
MPI_Bcast(&imd_terminate, 1, MPI_INT, 0, world);
if (imd_terminate)
error->all("LAMMPS terminated on error in setting up IMD connection.");
if (imd_inactive)
return; /* IMD client has detached and not yet come back. do nothing. */
}
int *tag = atom->tag;
double **x = atom->x;
int *image = atom->image;
int nlocal = atom->nlocal;
int *mask = atom->mask;
struct commdata *buf;
/* Check if we need to communicate coordinates to the client.
* Tuning imd_trate allows to keep the overhead for IMD low
* at the expense of a more jumpy display. Rather than using
* end_of_step() we do everything here in one go.
*
* If we don't communicate, only check if we have forces
* stored away and apply them. */
if (update->ntimestep % imd_trate) {
if (imd_forces > 0) {
double **f = atom->f;
buf = static_cast<struct commdata *>(force_buf);
/* XXX. this is in principle O(N**2) = not good.
* however we assume for now that the number of atoms
* that we manipulate via IMD will be small compared
* to the total system size, so we don't hurt too much. */
for (int j=0; j < imd_forces; ++j) {
for (int i=0; i < nlocal; ++i) {
if (mask[i] & groupbit) {
if (buf[j].tag == tag[i]) {
f[i][0] += buf[j].x;
f[i][1] += buf[j].y;
f[i][2] += buf[j].z;
}
}
}
}
}
return;
}
/* check and potentially grow local communication buffers. */
int i, k, nmax, nme=0;
for (i=0; i < nlocal; ++i)
if (mask[i] & groupbit) ++nme;
MPI_Allreduce(&nme,&nmax,1,MPI_INT,MPI_MAX,world);
if (nmax*size_one > maxbuf) {
memory->destroy(comm_buf);
maxbuf = nmax*size_one;
comm_buf = (void *) memory->smalloc(maxbuf,"imd:comm_buf");
}
MPI_Status status;
MPI_Request request;
int tmp, ndata;
buf = static_cast<struct commdata *>(comm_buf);
if (me == 0) {
/* collect data into new array. we bypass the IMD API to save
* us one extra copy of the data. */
int msglen = 3*sizeof(float)*num_coords+IMDHEADERSIZE;
char *msgdata = new char[msglen];
imd_fill_header((IMDheader *)msgdata, IMD_FCOORDS, num_coords);
/* array pointer, to the offset where we receive the coordinates. */
float *recvcoord = (float *) (msgdata+IMDHEADERSIZE);
/* add local data */
if (unwrap_flag) {
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
for (i=0; i<nlocal; ++i) {
if (mask[i] & groupbit) {
const int j = 3*inthash_lookup((inthash_t *)idmap, tag[i]);
if (j != HASH_FAIL) {
recvcoord[j] = x[i][0] + ((image[i] & 1023) - 512) * xprd;
recvcoord[j+1] = x[i][1] + ((image[i] >> 10 & 1023) - 512) * yprd;
recvcoord[j+2] = x[i][2] + ((image[i] >> 20) - 512) * zprd;
}
}
}
} else {
for (i=0; i<nlocal; ++i) {
if (mask[i] & groupbit) {
const int j = 3*inthash_lookup((inthash_t *)idmap, tag[i]);
if (j != HASH_FAIL) {
recvcoord[j] = x[i][0];
recvcoord[j+1] = x[i][1];
recvcoord[j+2] = x[i][2];
}
}
}
}
/* loop over procs to receive remote data */
for (i=1; i < comm->nprocs; ++i) {
MPI_Irecv(comm_buf, maxbuf, MPI_BYTE, i, 0, world, &request);
MPI_Send(&tmp, 0, MPI_INT, i, 0, world);
MPI_Wait(&request, &status);
MPI_Get_count(&status, MPI_BYTE, &ndata);
ndata /= size_one;
for (k=0; k<ndata; ++k) {
const int j = 3*inthash_lookup((inthash_t *)idmap, buf[k].tag);
if (j != HASH_FAIL) {
recvcoord[j] = buf[k].x;
recvcoord[j+1] = buf[k].y;
recvcoord[j+2] = buf[k].z;
}
}
}
/* done collecting frame data now communicate with IMD client. */
/* send coordinate data, if client is able to accept */
if (clientsock && imdsock_selwrite(clientsock,0)) {
imd_writen(clientsock, msgdata, msglen);
}
delete[] msgdata;
/* process all pending incoming data. */
int imd_paused=0;
while ((imdsock_selread(clientsock, 0) > 0) || imd_paused) {
/* if something requested to turn off IMD while paused get out */
if (imd_inactive) break;
int32 length;
int msg = imd_recv_header(clientsock, &length);
switch(msg) {
case IMD_GO:
if (screen)
fprintf(screen, "Ignoring unexpected IMD_GO message.\n");
break;
case IMD_IOERROR:
if (screen)
fprintf(screen, "IMD connection lost.\n");
/* fallthrough */
case IMD_DISCONNECT: {
/* disconnect from client. wait for new connection. */
imd_paused = 0;
imd_forces = 0;
memory->destroy(force_buf);
force_buf = NULL;
imdsock_destroy(clientsock);
clientsock = NULL;
if (screen)
fprintf(screen, "IMD client detached. LAMMPS run continues.\n");
connect_msg = 1;
reconnect();
if (imd_terminate) imd_inactive = 1;
break;
}
case IMD_KILL:
/* stop the simulation job and shutdown IMD */
if (screen)
fprintf(screen, "IMD client requested termination of run.\n");
imd_inactive = 1;
imd_terminate = 1;
imd_paused = 0;
imdsock_destroy(clientsock);
clientsock = NULL;
break;
case IMD_PAUSE:
/* pause the running simulation. wait for second IMD_PAUSE to continue. */
if (imd_paused) {
if (screen)
fprintf(screen, "Continuing run on IMD client request.\n");
imd_paused = 0;
} else {
if (screen)
fprintf(screen, "Pausing run on IMD client request.\n");
imd_paused = 1;
}
break;
case IMD_TRATE:
/* change the IMD transmission data rate */
if (length > 0)
imd_trate = length;
if (screen)
fprintf(screen, "IMD client requested change of transfer rate. Now it is %d.\n", imd_trate);
break;
case IMD_ENERGIES: {
IMDEnergies dummy_energies;
imd_recv_energies(clientsock, &dummy_energies);
break;
}
case IMD_FCOORDS: {
float *dummy_coords = new float[3*length];
imd_recv_fcoords(clientsock, length, dummy_coords);
delete[] dummy_coords;
break;
}
case IMD_MDCOMM: {
int32 *imd_tags = new int32[length];
float *imd_fdat = new float[3*length];
imd_recv_mdcomm(clientsock, length, imd_tags, imd_fdat);
if (imd_forces < length) { /* grow holding space for forces, if needed. */
memory->destroy(force_buf);
force_buf = (void *) memory->smalloc(length*size_one,
"imd:force_buf");
}
imd_forces = length;
buf = static_cast<struct commdata *>(force_buf);
/* compare data to hash table */
for (int ii=0; ii < length; ++ii) {
buf[ii].tag = rev_idmap[imd_tags[ii]];
buf[ii].x = imd_fdat[3*ii];
buf[ii].y = imd_fdat[3*ii+1];
buf[ii].z = imd_fdat[3*ii+2];
}
delete[] imd_tags;
delete[] imd_fdat;
break;
}
default:
if (screen)
fprintf(screen, "Unhandled incoming IMD message #%d. length=%d\n", msg, length);
break;
}
}
} else {
/* copy coordinate data into communication buffer */
nme = 0;
if (unwrap_flag) {
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
for (i=0; i<nlocal; ++i) {
if (mask[i] & groupbit) {
buf[nme].tag = tag[i];
buf[nme].x = x[i][0] + ((image[i] & 1023) - 512) * xprd;
buf[nme].y = x[i][1] + ((image[i] >> 10 & 1023) - 512) * yprd;
buf[nme].z = x[i][2] + ((image[i] >> 20) - 512) * zprd;
++nme;
}
}
} else {
for (i=0; i<nlocal; ++i) {
if (mask[i] & groupbit) {
buf[nme].tag = tag[i];
buf[nme].x = x[i][0];
buf[nme].y = x[i][1];
buf[nme].z = x[i][2];
++nme;
}
}
}
/* blocking receive to wait until it is our turn to send data. */
MPI_Recv(&tmp, 0, MPI_INT, 0, 0, world, &status);
MPI_Rsend(comm_buf, nme*size_one, MPI_BYTE, 0, 0, world);
}
/* update all tasks with current settings. */
int old_imd_forces = imd_forces;
MPI_Bcast(&imd_trate, 1, MPI_INT, 0, world);
MPI_Bcast(&imd_inactive, 1, MPI_INT, 0, world);
MPI_Bcast(&imd_forces, 1, MPI_INT, 0, world);
MPI_Bcast(&imd_terminate, 1, MPI_INT, 0, world);
if (imd_terminate)
error->all("LAMMPS terminated on IMD request.");
if (imd_forces > 0) {
/* check if we need to readjust the forces comm buffer on the receiving nodes. */
if (me != 0) {
if (old_imd_forces < imd_forces) { /* grow holding space for forces, if needed. */
memory->destroy(force_buf);
force_buf = (void *) memory->smalloc(imd_forces*size_one,
"imd:force_buf");
}
}
MPI_Bcast(force_buf, imd_forces*size_one, MPI_BYTE, 0, world);
}
return;
}
/* ---------------------------------------------------------------------- */
void FixIMD::post_force_respa(int vflag, int ilevel, int iloop)
{
/* only process IMD on the outmost RESPA level. */
if (ilevel == nlevels_respa-1) post_force(vflag);
return;
}
/* ---------------------------------------------------------------------- */
/* local memory usage. approximately. */
double FixIMD::memory_usage(void)
{
return static_cast<double>(num_coords+maxbuf+imd_forces)*size_one;
}
/* End of FixIMD class implementation. */
/************************************************************************
* integer list sort code:
************************************************************************/
/* sort for integer map. initial call id_sort(idmap, 0, natoms - 1); */
void id_sort(int *idmap, int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = idmap[left];
while (left < right) {
while ((idmap[right] >= pivot) && (left < right))
right--;
if (left != right) {
idmap[left] = idmap[right];
left++;
}
while ((idmap[left] <= pivot) && (left < right))
left++;
if (left != right) {
idmap[right] = idmap[left];
right--;
}
}
idmap[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
id_sort(idmap, left, pivot-1);
if (right > pivot)
id_sort(idmap, pivot+1, right);
}
/***************************************************************************/
/* NOTE: the following code is the based on the example implementation
* of the IMD protocol API from VMD and NAMD. The UIUC license allows
* to re-use up to 10% of a project's code to be used in other software */
/***************************************************************************
* DESCRIPTION:
* Socket interface, abstracts machine dependent APIs/routines.
***************************************************************************/
int imdsock_init(void) {
#if defined(_MSC_VER)
int rc = 0;
static int initialized=0;
if (!initialized) {
WSADATA wsdata;
rc = WSAStartup(MAKEWORD(1,1), &wsdata);
if (rc == 0)
initialized = 1;
}
return rc;
#else
return 0;
#endif
}
void * imdsock_create(void) {
imdsocket * s;
s = (imdsocket *) malloc(sizeof(imdsocket));
if (s != NULL)
memset(s, 0, sizeof(imdsocket));
if ((s->sd = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
printf("Failed to open socket.");
free(s);
return NULL;
}
return (void *) s;
}
int imdsock_bind(void * v, int port) {
imdsocket *s = (imdsocket *) v;
memset(&(s->addr), 0, sizeof(s->addr));
s->addr.sin_family = PF_INET;
s->addr.sin_port = htons(port);
return bind(s->sd, (struct sockaddr *) &s->addr, sizeof(s->addr));
}
int imdsock_listen(void * v) {
imdsocket *s = (imdsocket *) v;
return listen(s->sd, 5);
}
void *imdsock_accept(void * v) {
int rc;
imdsocket *new_s = NULL, *s = (imdsocket *) v;
#if defined(ARCH_AIX5) || defined(ARCH_AIX5_64) || defined(ARCH_AIX6_64)
unsigned int len;
#elif defined(SOCKLEN_T)
SOCKLEN_T len;
#elif defined(_POSIX_SOURCE)
socklen_t len;
#else
int len;
#endif
len = sizeof(s->addr);
rc = accept(s->sd, (struct sockaddr *) &s->addr, ( socklen_t * ) &len);
if (rc >= 0) {
new_s = (imdsocket *) malloc(sizeof(imdsocket));
if (new_s != NULL) {
*new_s = *s;
new_s->sd = rc;
}
}
return (void *)new_s;
}
int imdsock_write(void * v, const void *buf, int len) {
imdsocket *s = (imdsocket *) v;
#if defined(_MSC_VER)
return send(s->sd, (const char*) buf, len, 0); /* windows lacks the write() call */
#else
return write(s->sd, buf, len);
#endif
}
int imdsock_read(void * v, void *buf, int len) {
imdsocket *s = (imdsocket *) v;
#if defined(_MSC_VER)
return recv(s->sd, (char*) buf, len, 0); /* windows lacks the read() call */
#else
return read(s->sd, buf, len);
#endif
}
void imdsock_shutdown(void *v) {
imdsocket * s = (imdsocket *) v;
if (s == NULL)
return;
#if defined(_MSC_VER)
shutdown(s->sd, SD_SEND);
#else
shutdown(s->sd, 1); /* complete sends and send FIN */
#endif
}
void imdsock_destroy(void * v) {
imdsocket * s = (imdsocket *) v;
if (s == NULL)
return;
#if defined(_MSC_VER)
closesocket(s->sd);
#else
close(s->sd);
#endif
free(s);
}
int imdsock_selread(void *v, int sec) {
imdsocket *s = (imdsocket *)v;
fd_set rfd;
struct timeval tv;
int rc;
if (v == NULL) return 0;
FD_ZERO(&rfd);
FD_SET(s->sd, &rfd);
memset((void *)&tv, 0, sizeof(struct timeval));
tv.tv_sec = sec;
do {
rc = select(s->sd+1, &rfd, NULL, NULL, &tv);
} while (rc < 0 && errno == EINTR);
return rc;
}
int imdsock_selwrite(void *v, int sec) {
imdsocket *s = (imdsocket *)v;
fd_set wfd;
struct timeval tv;
int rc;
if (v == NULL) return 0;
FD_ZERO(&wfd);
FD_SET(s->sd, &wfd);
memset((void *)&tv, 0, sizeof(struct timeval));
tv.tv_sec = sec;
do {
rc = select(s->sd + 1, NULL, &wfd, NULL, &tv);
} while (rc < 0 && errno == EINTR);
return rc;
}
/* end of socket code. */
/*************************************************************************/
/*************************************************************************/
/* start of imd API code. */
/* Only works with aligned 4-byte quantities, will cause a bus error */
/* on some platforms if used on unaligned data. */
void swap4_aligned(void *v, long ndata) {
int *data = (int *) v;
long i;
int *N;
for (i=0; i<ndata; i++) {
N = data + i;
*N=(((*N>>24)&0xff) | ((*N&0xff)<<24) |
((*N>>8)&0xff00) | ((*N&0xff00)<<8));
}
}
/** structure used to perform byte swapping operations */
typedef union {
int32 i;
struct {
unsigned int highest : 8;
unsigned int high : 8;
unsigned int low : 8;
unsigned int lowest : 8;
} b;
} netint;
static int32 imd_htonl(int32 h) {
netint n;
n.b.highest = h >> 24;
n.b.high = h >> 16;
n.b.low = h >> 8;
n.b.lowest = h;
return n.i;
}
static int32 imd_ntohl(int32 n) {
netint u;
u.i = n;
return (u.b.highest << 24 | u.b.high << 16 | u.b.low << 8 | u.b.lowest);
}
static void imd_fill_header(IMDheader *header, IMDType type, int32 length) {
header->type = imd_htonl((int32)type);
header->length = imd_htonl(length);
}
static void swap_header(IMDheader *header) {
header->type = imd_ntohl(header->type);
header->length= imd_ntohl(header->length);
}
static int32 imd_readn(void *s, char *ptr, int32 n) {
int32 nleft;
int32 nread;
nleft = n;
while (nleft > 0) {
if ((nread = imdsock_read(s, ptr, nleft)) < 0) {
if (errno == EINTR)
nread = 0; /* and call read() again */
else
return -1;
} else if (nread == 0)
break; /* EOF */
nleft -= nread;
ptr += nread;
}
return n-nleft;
}
static int32 imd_writen(void *s, const char *ptr, int32 n) {
int32 nleft;
int32 nwritten;
nleft = n;
while (nleft > 0) {
if ((nwritten = imdsock_write(s, ptr, nleft)) <= 0) {
if (errno == EINTR)
nwritten = 0;
else
return -1;
}
nleft -= nwritten;
ptr += nwritten;
}
return n;
}
int imd_disconnect(void *s) {
IMDheader header;
imd_fill_header(&header, IMD_DISCONNECT, 0);
return (imd_writen(s, (char *)&header, IMDHEADERSIZE) != IMDHEADERSIZE);
}
int imd_handshake(void *s) {
IMDheader header;
imd_fill_header(&header, IMD_HANDSHAKE, 1);
header.length = IMDVERSION; /* Not byteswapped! */
return (imd_writen(s, (char *)&header, IMDHEADERSIZE) != IMDHEADERSIZE);
}
/* The IMD receive functions */
IMDType imd_recv_header(void *s, int32 *length) {
IMDheader header;
if (imd_readn(s, (char *)&header, IMDHEADERSIZE) != IMDHEADERSIZE)
return IMD_IOERROR;
swap_header(&header);
*length = header.length;
return IMDType(header.type);
}
int imd_recv_mdcomm(void *s, int32 n, int32 *indices, float *forces) {
if (imd_readn(s, (char *)indices, 4*n) != 4*n) return 1;
if (imd_readn(s, (char *)forces, 12*n) != 12*n) return 1;
return 0;
}
int imd_recv_energies(void *s, IMDEnergies *energies) {
return (imd_readn(s, (char *)energies, sizeof(IMDEnergies))
!= sizeof(IMDEnergies));
}
int imd_recv_fcoords(void *s, int32 n, float *coords) {
return (imd_readn(s, (char *)coords, 12*n) != 12*n);
}
/************************************************************************
* integer hash code:
************************************************************************/
/* inthash() - Hash function returns a hash number for a given key.
* tptr: Pointer to a hash table, key: The key to create a hash number for */
static int inthash(const inthash_t *tptr, int key) {
int hashvalue;
hashvalue = (((key*1103515249)>>tptr->downshift) & tptr->mask);
if (hashvalue < 0) {
hashvalue = 0;
}
return hashvalue;
}
/*
* rebuild_table_int() - Create new hash table when old one fills up.
*
* tptr: Pointer to a hash table
*/
static void rebuild_table_int(inthash_t *tptr) {
inthash_node_t **old_bucket, *old_hash, *tmp;
int old_size, h, i;
old_bucket=tptr->bucket;
old_size=tptr->size;
/* create a new table and rehash old buckets */
inthash_init(tptr, old_size<<1);
for (i=0; i<old_size; i++) {
old_hash=old_bucket[i];
while(old_hash) {
tmp=old_hash;
old_hash=old_hash->next;
h=inthash(tptr, tmp->key);
tmp->next=tptr->bucket[h];
tptr->bucket[h]=tmp;
tptr->entries++;
} /* while */
} /* for */
/* free memory used by old table */
free(old_bucket);
return;
}
/*
* inthash_init() - Initialize a new hash table.
*
* tptr: Pointer to the hash table to initialize
* buckets: The number of initial buckets to create
*/
void inthash_init(inthash_t *tptr, int buckets) {
/* make sure we allocate something */
if (buckets==0)
buckets=16;
/* initialize the table */
tptr->entries=0;
tptr->size=2;
tptr->mask=1;
tptr->downshift=29;
/* ensure buckets is a power of 2 */
while (tptr->size<buckets) {
tptr->size<<=1;
tptr->mask=(tptr->mask<<1)+1;
tptr->downshift--;
} /* while */
/* allocate memory for table */
tptr->bucket=(inthash_node_t **) calloc(tptr->size, sizeof(inthash_node_t *));
return;
}
/*
* inthash_lookup() - Lookup an entry in the hash table and return a pointer to
* it or HASH_FAIL if it wasn't found.
*
* tptr: Pointer to the hash table
* key: The key to lookup
*/
int inthash_lookup(const inthash_t *tptr, int key) {
int h;
inthash_node_t *node;
/* find the entry in the hash table */
h=inthash(tptr, key);
for (node=tptr->bucket[h]; node!=NULL; node=node->next) {
if (node->key == key)
break;
}
/* return the entry if it exists, or HASH_FAIL */
return(node ? node->data : HASH_FAIL);
}
/*
* inthash_keys() - Return a list of keys.
* NOTE: the returned list must be freed with free(3).
*/
int *inthash_keys(inthash_t *tptr) {
int *keys;
inthash_node_t *node;
keys = (int *)calloc(tptr->entries, sizeof(int));
for (int i=0; i < tptr->size; ++i) {
for (node=tptr->bucket[i]; node != NULL; node=node->next) {
keys[node->data] = node->key;
}
}
return keys;
}
/*
* inthash_insert() - Insert an entry into the hash table. If the entry already
* exists return a pointer to it, otherwise return HASH_FAIL.
*
* tptr: A pointer to the hash table
* key: The key to insert into the hash table
* data: A pointer to the data to insert into the hash table
*/
int inthash_insert(inthash_t *tptr, int key, int data) {
int tmp;
inthash_node_t *node;
int h;
/* check to see if the entry exists */
if ((tmp=inthash_lookup(tptr, key)) != HASH_FAIL)
return(tmp);
/* expand the table if needed */
while (tptr->entries>=HASH_LIMIT*tptr->size)
rebuild_table_int(tptr);
/* insert the new entry */
h=inthash(tptr, key);
node=(struct inthash_node_t *) malloc(sizeof(inthash_node_t));
node->data=data;
node->key=key;
node->next=tptr->bucket[h];
tptr->bucket[h]=node;
tptr->entries++;
return HASH_FAIL;
}
/*
* inthash_destroy() - Delete the entire table, and all remaining entries.
*
*/
void inthash_destroy(inthash_t *tptr) {
inthash_node_t *node, *last;
int i;
for (i=0; i<tptr->size; i++) {
node = tptr->bucket[i];
while (node != NULL) {
last = node;
node = node->next;
free(last);
}
}
/* free the entire array of buckets */
if (tptr->bucket != NULL) {
free(tptr->bucket);
memset(tptr, 0, sizeof(inthash_t));
}
}
// Local Variables:
// mode: c++
// compile-command: "make -j4 openmpi"
// c-basic-offset: 2
// fill-column: 76
// indent-tabs-mode: nil
// End:
diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp
index 0ae8ea74a..6a2bba5d8 100644
--- a/src/USER-REAXC/fix_qeq_reax.cpp
+++ b/src/USER-REAXC/fix_qeq_reax.cpp
@@ -1,849 +1,849 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Hasan Metin Aktulga, Purdue University
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "fix_qeq_reax.h"
#include "atom.h"
#include "comm.h"
#include "domain.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "update.h"
#include "force.h"
#include "pair.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define EV_TO_KCAL_PER_MOL 14.4
#define SAFE_ZONE 1.2
#define DANGER_ZONE 0.95
#define LOOSE_ZONE 0.7
#define SQR(x) ((x)*(x))
#define CUBE(x) ((x)*(x)*(x))
#define MIN_CAP 50
#define MIN_NBRS 100
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixQEqReax::FixQEqReax(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 8) error->all("Illegal fix qeq/reax command");
nevery = atoi(arg[3]);
swa = atof(arg[4]);
swb = atof(arg[5]);
tolerance = atof(arg[6]);
pertype_parameters(arg[7]);
shld = NULL;
n = n_cap = 0;
N = nmax = 0;
m_fill = m_cap = 0;
pack_flag = 0;
s = NULL;
t = NULL;
nprev = 5;
Hdia_inv = NULL;
b_s = NULL;
b_t = NULL;
b_prc = NULL;
b_prm = NULL;
// CG
p = NULL;
q = NULL;
r = NULL;
d = NULL;
// GMRES
//g = NULL;
//y = NULL;
//hstr = NULL;
//v = NULL;
//h = NULL;
//hc = NULL;
//hs = NULL;
// perform initial allocation of atom-based arrays
// register with Atom class
s_hist = t_hist = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
for( int i = 0; i < atom->nmax; i++ )
for (int j = 0; j < nprev; ++j )
s_hist[i][j] = t_hist[i][j] = 0;
}
/* ---------------------------------------------------------------------- */
FixQEqReax::~FixQEqReax()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
memory->destroy(s_hist);
memory->destroy(t_hist);
deallocate_storage();
deallocate_matrix();
memory->destroy(shld);
if (!reaxflag) {
memory->destroy(chi);
memory->destroy(eta);
memory->destroy(gamma);
}
}
/* ---------------------------------------------------------------------- */
int FixQEqReax::setmask()
{
int mask = 0;
mask |= PRE_FORCE;
mask |= MIN_PRE_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::pertype_parameters(char *arg)
{
if (strcmp(arg,"reax/c") == 0) {
reaxflag = 1;
Pair *pair = force->pair_match("reax/c",1);
if (pair == NULL) error->all("No pair reax/c for fix qeq/reax");
int tmp;
chi = (double *) pair->extract("chi",tmp);
eta = (double *) pair->extract("eta",tmp);
gamma = (double *) pair->extract("gamma",tmp);
if (chi == NULL || eta == NULL || gamma == NULL)
error->all("Fix qeq/reax could not extract params from pair reax/c");
return;
}
int i,itype,ntypes;
double v1,v2,v3;
FILE *pf;
reaxflag = 0;
ntypes = atom->ntypes;
memory->create(chi,ntypes+1,"qeq/reax:chi");
memory->create(eta,ntypes+1,"qeq/reax:eta");
memory->create(gamma,ntypes+1,"qeq/reax:gamma");
if (comm->me == 0) {
if ((pf = fopen(arg,"r")) == NULL)
error->one("Fix qeq/reax parameter file could not be found");
for (i = 1; i <= ntypes && !feof(pf); i++) {
fscanf(pf,"%d %lg %lg %lg",&itype,&v1,&v2,&v3);
if (itype < 1 || itype > ntypes)
error->one("Fix qeq/reax invalid atom type in param file");
chi[itype] = v1;
eta[itype] = v2;
gamma[itype] = v3;
}
if (i <= ntypes) error->one("Invalid param file for fix qeq/reax");
fclose(pf);
}
MPI_Bcast(&chi[1],ntypes,MPI_DOUBLE,0,world);
MPI_Bcast(&eta[1],ntypes,MPI_DOUBLE,0,world);
MPI_Bcast(&gamma[1],ntypes,MPI_DOUBLE,0,world);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::allocate_storage()
{
nmax = atom->nmax;
memory->create(s,nmax,"qeq:s");
memory->create(t,nmax,"qeq:t");
memory->create(Hdia_inv,nmax,"qeq:Hdia_inv");
memory->create(b_s,nmax,"qeq:b_s");
memory->create(b_t,nmax,"qeq:b_t");
memory->create(b_prc,nmax,"qeq:b_prc");
memory->create(b_prm,nmax,"qeq:b_prm");
memory->create(p,nmax,"qeq:p");
memory->create(q,nmax,"qeq:q");
memory->create(r,nmax,"qeq:r");
memory->create(d,nmax,"qeq:d");
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::deallocate_storage()
{
memory->destroy(s);
memory->destroy(t);
memory->destroy( Hdia_inv );
memory->destroy( b_s );
memory->destroy( b_t );
memory->destroy( b_prc );
memory->destroy( b_prm );
memory->destroy( p );
memory->destroy( q );
memory->destroy( r );
memory->destroy( d );
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::reallocate_storage()
{
deallocate_storage();
allocate_storage();
init_storage();
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::allocate_matrix()
{
int i,ii;
n = atom->nlocal;
n_cap = MAX( (int)(n * SAFE_ZONE), MIN_CAP );
// determine the total space for the H matrix
int m = 0;
for( ii = 0; ii < list->inum; ii++ ) {
i = list->ilist[ii];
m += list->numneigh[i];
}
m_cap = MAX( (int)(m * SAFE_ZONE), MIN_CAP * MIN_NBRS );
H.n = n_cap;
H.m = m_cap;
memory->create(H.firstnbr,n_cap,"qeq:H.firstnbr");
memory->create(H.numnbrs,n_cap,"qeq:H.numnbrs");
memory->create(H.jlist,m_cap,"qeq:H.jlist");
memory->create(H.val,m_cap,"qeq:H.val");
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::deallocate_matrix()
{
memory->destroy( H.firstnbr );
memory->destroy( H.numnbrs );
memory->destroy( H.jlist );
memory->destroy( H.val );
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::reallocate_matrix()
{
deallocate_matrix();
allocate_matrix();
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init()
{
if (!atom->q_flag) error->all("Fix qeq/reax requires atom attribute q");
// need a half neighbor list w/ Newton off
// built whenever re-neighboring occurs
int irequest = neighbor->request(this);
neighbor->requests[irequest]->pair = 0;
neighbor->requests[irequest]->fix = 1;
neighbor->requests[irequest]->newton = 2;
init_shielding();
init_taper();
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init_list(int id, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init_shielding()
{
int i,j;
int ntypes;
ntypes = atom->ntypes;
memory->create(shld,ntypes+1,ntypes+1,"qeq:shileding");
for( i = 1; i <= ntypes; ++i )
for( j = 1; j <= ntypes; ++j )
shld[i][j] = pow( gamma[i] * gamma[j], -1.5 );
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init_taper()
{
double d7, swa2, swa3, swb2, swb3;
if (fabs(swa) > 0.01 && comm->me == 0)
error->warning("Fix qeq/reax has non-zero lower Taper radius cutoff");
if (swb < 0)
error->all( "Fix qeq/reax has negative upper Taper radius cutoff");
else if (swb < 5 && comm->me == 0)
error->warning("Fix qeq/reax has very low Taper radius cutoff");
d7 = pow( swb - swa, 7 );
swa2 = SQR( swa );
swa3 = CUBE( swa );
swb2 = SQR( swb );
swb3 = CUBE( swb );
Tap[7] = 20.0 / d7;
Tap[6] = -70.0 * (swa + swb) / d7;
Tap[5] = 84.0 * (swa2 + 3.0*swa*swb + swb2) / d7;
Tap[4] = -35.0 * (swa3 + 9.0*swa2*swb + 9.0*swa*swb2 + swb3 ) / d7;
Tap[3] = 140.0 * (swa3*swb + 3.0*swa2*swb2 + swa*swb3 ) / d7;
Tap[2] =-210.0 * (swa3*swb2 + swa2*swb3) / d7;
Tap[1] = 140.0 * swa3 * swb3 / d7;
Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 +
7.0*swa*swb3*swb3 + swb3*swb3*swb ) / d7;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::setup_pre_force(int vflag)
{
neighbor->build_one(list->index);
allocate_storage();
init_storage();
allocate_matrix();
pre_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::setup_pre_force_respa(int vflag, int ilevel)
{
if (ilevel < nlevels_respa-1) return;
setup_pre_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::min_setup_pre_force(int vflag)
{
setup_pre_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init_storage()
{
N = atom->nlocal + atom->nghost;
for( int i = 0; i < N; i++ ) {
Hdia_inv[i] = 1. / eta[atom->type[i]];
b_s[i] = -chi[atom->type[i]];
b_t[i] = -1.0;
b_prc[i] = 0;
b_prm[i] = 0;
s[i] = t[i] = 0;
}
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::pre_force(int vflag)
{
double t_start, t_end;
if (update->ntimestep % nevery) return;
if( comm->me == 0 ) t_start = MPI_Wtime();
n = atom->nlocal;
N = atom->nlocal + atom->nghost;
// grow arrays if necessary
// need to be atom->nmax in length
if( atom->nmax > nmax ) reallocate_storage();
if( n > n_cap*DANGER_ZONE || m_fill > m_cap*DANGER_ZONE )
reallocate_matrix();
init_matvec();
matvecs = CG(b_s, s); // CG on s - parallel
matvecs += CG(b_t, t); // CG on t - parallel
calculate_Q();
if( comm->me == 0 ) {
t_end = MPI_Wtime();
qeq_time = t_end - t_start;
}
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::pre_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) pre_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::min_pre_force(int vflag)
{
pre_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::init_matvec()
{
/* fill-in H matrix */
compute_H();
for( int i = 0; i < n; ++i ) {
/* init pre-conditioner for H and init solution vectors */
Hdia_inv[i] = 1. / eta[ atom->type[i] ];
b_s[i] = -chi[ atom->type[i] ];
b_t[i] = -1.0;
/* linear extrapolation for s & t from previous solutions */
//s[i] = 2 * s_hist[i][0] - s_hist[i][1];
//t[i] = 2 * t_hist[i][0] - t_hist[i][1];
/* quadratic extrapolation for s & t from previous solutions */
//s[i] = s_hist[i][2] + 3 * ( s_hist[i][0] - s_hist[i][1] );
t[i] = t_hist[i][2] + 3 * ( t_hist[i][0] - t_hist[i][1] );
/* cubic extrapolation for s & t from previous solutions */
s[i] = 4*(s_hist[i][0]+s_hist[i][2])-(6*s_hist[i][1]+s_hist[i][3]);
//t[i] = 4*(t_hist[i][0]+t_hist[i][2])-(6*t_hist[i][1]+t_hist[i][3]);
}
pack_flag = 2;
comm->forward_comm_fix(this); //Dist_vector( s );
pack_flag = 3;
comm->forward_comm_fix(this); //Dist_vector( t );
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::compute_H()
{
int inum, jnum, *ilist, *jlist, *numneigh, **firstneigh;
int i, j, ii, jj, temp, newnbr;
int *type;
double **x;
double dx, dy, dz, r_sqr;
type = atom->type;
x = atom->x;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// fill in the H matrix
m_fill = 0;
r_sqr = 0;
for( ii = 0; ii < inum; ii++ ) {
i = ilist[ii];
jlist = firstneigh[i];
jnum = numneigh[i];
H.firstnbr[i] = m_fill;
for( jj = 0; jj < jnum; jj++ ) {
j = jlist[jj];
dx = x[i][0] - x[j][0];
dy = x[i][1] - x[j][1];
dz = x[i][2] - x[j][2];
r_sqr = SQR(dx) + SQR(dy) + SQR(dz);
if( r_sqr <= SQR(swb) && (j < n || atom->tag[i] <= atom->tag[j]) ) {
H.jlist[m_fill] = j;
H.val[m_fill] = calculate_H( sqrt(r_sqr), shld[type[i]][type[j]] );
m_fill++;
}
}
H.numnbrs[i] = m_fill - H.firstnbr[i];
}
if (m_fill >= H.m) {
char str[128];
sprintf(str,"H matrix size has been exceeded: m_fill=%d H.m=%d\n",
m_fill, H.m );
error->warning(str);
error->all("Fix qeq/reax has insufficient QEq matrix size");
}
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::calculate_H( double r, double gamma )
{
double Taper, denom;
Taper = Tap[7] * r + Tap[6];
Taper = Taper * r + Tap[5];
Taper = Taper * r + Tap[4];
Taper = Taper * r + Tap[3];
Taper = Taper * r + Tap[2];
Taper = Taper * r + Tap[1];
Taper = Taper * r + Tap[0];
denom = r * r * r + gamma;
denom = pow(denom,0.3333333333333);
return Taper * EV_TO_KCAL_PER_MOL / denom;
}
/* ---------------------------------------------------------------------- */
int FixQEqReax::CG( double *b, double *x )
{
int i, j;
double tmp, alpha, beta, b_norm;
double sig_old, sig_new, sig0;
pack_flag = 1;
sparse_matvec( &H, x, q );
comm->reverse_comm_fix( this ); //Coll_Vector( q );
vector_sum( r , 1., b, -1., q, n );
for( j = 0; j < n; ++j )
d[j] = r[j] * Hdia_inv[j]; //pre-condition
b_norm = parallel_norm( b, n );
sig_new = parallel_dot( r, d, n );
sig0 = sig_new;
for( i = 1; i < 100 && sqrt(sig_new) / b_norm > tolerance; ++i ) {
comm->forward_comm_fix(this); //Dist_vector( d );
sparse_matvec( &H, d, q );
comm->reverse_comm_fix(this); //Coll_vector( q );
tmp = parallel_dot( d, q, n );
alpha = sig_new / tmp;
// comm->me, i, parallel_norm( d, n ), parallel_norm( q, n ), tmp );
vector_add( x, alpha, d, n );
vector_add( r, -alpha, q, n );
// pre-conditioning
for( j = 0; j < n; ++j )
p[j] = r[j] * Hdia_inv[j];
sig_old = sig_new;
sig_new = parallel_dot( r, p, n );
beta = sig_new / sig_old;
vector_sum( d, 1., p, beta, d, n );
}
if (i >= 100 && comm->me == 0)
error->warning("Fix qeq/reax CG convergence failed");
return i;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::sparse_matvec( sparse_matrix *A, double *x, double *b )
{
int i, j, itr_j;
for( i = 0; i < n; ++i )
b[i] = eta[ atom->type[i] ] * x[i];
for( i = n; i < N; ++i )
b[i] = 0;
for( i = 0; i < n; ++i ) {
for( itr_j=A->firstnbr[i]; itr_j<A->firstnbr[i]+A->numnbrs[i]; itr_j++) {
j = A->jlist[itr_j];
b[i] += A->val[itr_j] * x[j];
b[j] += A->val[itr_j] * x[i];
}
}
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::calculate_Q()
{
int i, k;
double u, s_sum, t_sum;
double *q = atom->q;
s_sum = parallel_vector_acc( s, n );
t_sum = parallel_vector_acc( t, n);
u = s_sum / t_sum;
for( i = 0; i < n; ++i ) {
q[i] = s[i] - u * t[i];
/* backup s & t */
for( k = 4; k > 0; --k ) {
s_hist[i][k] = s_hist[i][k-1];
t_hist[i][k] = t_hist[i][k-1];
}
s_hist[i][0] = s[i];
t_hist[i][0] = t[i];
}
pack_flag = 4;
comm->forward_comm_fix( this ); //Dist_vector( atom->q );
}
/* ---------------------------------------------------------------------- */
int FixQEqReax::pack_comm(int n, int *list, double *buf,
int pbc_flag, int *pbc)
{
int m;
if( pack_flag == 1)
for(m = 0; m < n; m++) buf[m] = d[list[m]];
else if( pack_flag == 2 )
for(m = 0; m < n; m++) buf[m] = s[list[m]];
else if( pack_flag == 3 )
for(m = 0; m < n; m++) buf[m] = t[list[m]];
else if( pack_flag == 4 )
for(m = 0; m < n; m++) buf[m] = atom->q[list[m]];
return 1;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::unpack_comm(int n, int first, double *buf)
{
int i, m;
if( pack_flag == 1)
for(m = 0, i = first; m < n; m++, i++) d[i] = buf[m];
else if( pack_flag == 2)
for(m = 0, i = first; m < n; m++, i++) s[i] = buf[m];
else if( pack_flag == 3)
for(m = 0, i = first; m < n; m++, i++) t[i] = buf[m];
else if( pack_flag == 4)
for(m = 0, i = first; m < n; m++, i++) atom->q[i] = buf[m];
}
/* ---------------------------------------------------------------------- */
int FixQEqReax::pack_reverse_comm(int n, int first, double *buf)
{
int i, m;
for(m = 0, i = first; m < n; m++, i++) buf[m] = q[i];
return 1;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::unpack_reverse_comm(int n, int *list, double *buf)
{
for(int m = 0; m < n; m++) q[list[m]] += buf[m];
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixQEqReax::memory_usage()
{
double bytes;
bytes = atom->nmax*nprev*2 * sizeof(double); // s_hist & t_hist
bytes += atom->nmax*11 * sizeof(double); // storage
bytes += n_cap*2 * sizeof(int); // matrix...
bytes += m_cap * sizeof(int);
bytes += m_cap * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate fictitious charge arrays
------------------------------------------------------------------------- */
void FixQEqReax::grow_arrays(int nmax)
{
memory->grow(s_hist,nmax,nprev,"qeq:s_hist");
memory->grow(t_hist,nmax,nprev,"qeq:t_hist");
}
/* ----------------------------------------------------------------------
copy values within fictitious charge arrays
------------------------------------------------------------------------- */
void FixQEqReax::copy_arrays(int i, int j)
{
for (int m = 0; m < nprev; m++) {
s_hist[j][m] = s_hist[i][m];
t_hist[j][m] = t_hist[i][m];
}
}
/* ----------------------------------------------------------------------
pack values in local atom-based array for exchange with another proc
------------------------------------------------------------------------- */
int FixQEqReax::pack_exchange(int i, double *buf)
{
for (int m = 0; m < nprev; m++) buf[m] = s_hist[i][m];
for (int m = 0; m < nprev; m++) buf[nprev+m] = t_hist[i][m];
return nprev*2;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based array from exchange with another proc
------------------------------------------------------------------------- */
int FixQEqReax::unpack_exchange(int nlocal, double *buf)
{
for (int m = 0; m < nprev; m++) s_hist[nlocal][m] = buf[m];
for (int m = 0; m < nprev; m++) t_hist[nlocal][m] = buf[nprev+m];
return nprev*2;
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::parallel_norm( double *v, int n )
{
int i;
double my_sum, norm_sqr;
my_sum = 0;
for( i = 0; i < n; ++i )
my_sum += SQR( v[i] );
MPI_Allreduce( &my_sum, &norm_sqr, 1, MPI_DOUBLE, MPI_SUM, world );
return sqrt( norm_sqr );
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::parallel_dot( double *v1, double *v2, int n )
{
int i;
double my_dot, res;
my_dot = 0;
res = 0;
for( i = 0; i < n; ++i )
my_dot += v1[i] * v2[i];
MPI_Allreduce( &my_dot, &res, 1, MPI_DOUBLE, MPI_SUM, world );
return res;
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::parallel_vector_acc( double *v, int n )
{
int i;
double my_acc, res;
my_acc = 0;
for( i = 0; i < n; ++i )
my_acc += v[i];
MPI_Allreduce( &my_acc, &res, 1, MPI_DOUBLE, MPI_SUM, world );
return res;
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::norm( double* v1, int k )
{
double ret = 0;
for( --k; k>=0; --k )
ret += ( v1[k] * v1[k] );
return sqrt( ret );
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::vector_sum( double* dest, double c, double* v,
double d, double* y, int k )
{
for( --k; k>=0; --k )
dest[k] = c * v[k] + d * y[k];
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::vector_scale( double* dest, double c, double* v, int k )
{
for( --k; k>=0; --k )
dest[k] = c * v[k];
}
/* ---------------------------------------------------------------------- */
double FixQEqReax::dot( double* v1, double* v2, int k )
{
double ret = 0;
for( --k; k>=0; --k )
ret += v1[k] * v2[k];
return ret;
}
/* ---------------------------------------------------------------------- */
void FixQEqReax::vector_add( double* dest, double c, double* v, int k )
{
for( --k; k>=0; --k )
dest[k] += c * v[k];
}
diff --git a/src/USER-SMD/fix_smd.cpp b/src/USER-SMD/fix_smd.cpp
index 239b3655c..4d251d3fe 100644
--- a/src/USER-SMD/fix_smd.cpp
+++ b/src/USER-SMD/fix_smd.cpp
@@ -1,403 +1,403 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (UPenn)
based on fix spring by: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_smd.h"
#include "atom.h"
#include "comm.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "error.h"
#include "group.h"
using namespace LAMMPS_NS;
enum { SMD_NONE=0,
SMD_TETHER=1<<0, SMD_COUPLE=1<<1,
SMD_CVEL=1<<2, SMD_CFOR=1<<3,
SMD_AUTOX=1<<4, SMD_AUTOY=1<<5, SMD_AUTOZ=1<<6};
#define SMALL 0.001
/* ---------------------------------------------------------------------- */
FixSMD::FixSMD(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
styleflag = SMD_NONE;
k_smd = f_smd = v_smd = -1.0;
xflag = yflag = zflag = 1;
xc = yc = zc = 0.0;
xn = yn = zn = 1.0;
pmf = r_old = r_now = r0 = 0.0;
restart_global = 1;
vector_flag = 1;
size_vector = 7;
global_freq = 1;
extvector = 1;
int argoffs=3;
if (strcmp(arg[argoffs],"cvel") == 0) {
if (narg < argoffs+3) error->all("Illegal fix smd command");
styleflag |= SMD_CVEL;
k_smd = atof(arg[argoffs+1]);
v_smd = atof(arg[argoffs+2]); // to be multiplied by update->dt when used.
argoffs += 3;
} else if (strcmp(arg[argoffs],"cfor") == 0) {
if (narg < argoffs+2) error->all("Illegal fix smd command");
styleflag |= SMD_CFOR;
f_smd = atof(arg[argoffs+1]);
argoffs += 2;
} else error->all("Illegal fix smd command");
if (strcmp(arg[argoffs],"tether") == 0) {
if (narg < argoffs+5) error->all("Illegal fix smd command");
styleflag |= SMD_TETHER;
if (strcmp(arg[argoffs+1],"NULL") == 0) xflag = 0;
else xc = atof(arg[argoffs+1]);
if (strcmp(arg[argoffs+2],"NULL") == 0) yflag = 0;
else yc = atof(arg[argoffs+2]);
if (strcmp(arg[argoffs+3],"NULL") == 0) zflag = 0;
else zc = atof(arg[argoffs+3]);
r0 = atof(arg[argoffs+4]);
if (r0 < 0) error->all("R0 < 0 for fix smd command");
argoffs += 5;
} else if (strcmp(arg[argoffs],"couple") == 0) {
if (narg < argoffs+6) error->all("Illegal fix smd command");
styleflag |= SMD_COUPLE;
igroup2 = group->find(arg[argoffs+1]);
if (igroup2 == -1)
error->all("Could not find fix smd couple group ID");
if (igroup2 == igroup)
error->all("Two groups cannot be the same in fix smd couple");
group2bit = group->bitmask[igroup2];
if (strcmp(arg[argoffs+2],"NULL") == 0) xflag = 0;
else if (strcmp(arg[argoffs+2],"auto") == 0) styleflag |= SMD_AUTOX;
else xc = atof(arg[argoffs+2]);
if (strcmp(arg[argoffs+3],"NULL") == 0) yflag = 0;
else if (strcmp(arg[argoffs+3],"auto") == 0) styleflag |= SMD_AUTOY;
else yc = atof(arg[argoffs+3]);
if (strcmp(arg[argoffs+4],"NULL") == 0) zflag = 0;
else if (strcmp(arg[argoffs+4],"auto") == 0) styleflag |= SMD_AUTOZ;
else zc = atof(arg[argoffs+4]);
r0 = atof(arg[argoffs+5]);
if (r0 < 0) error->all("R0 < 0 for fix smd command");
argoffs +=6;
} else error->all("Illegal fix smd command");
force_flag = 0;
ftotal[0] = ftotal[1] = ftotal[2] = 0.0;
}
/* ---------------------------------------------------------------------- */
int FixSMD::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSMD::init()
{
double xcm[3], xcm2[3];
masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
double dx,dy,dz;
if (styleflag & SMD_TETHER) {
dx = xc - xcm[0];
dy = yc - xcm[1];
dz = zc - xcm[2];
} else { /* SMD_COUPLE */
masstotal2 = group->mass(igroup2);
group->xcm(igroup2,masstotal2,xcm2);
if (styleflag & SMD_AUTOX) dx = xcm2[0] - xcm[0];
else dx = xc;
if (styleflag & SMD_AUTOY) dy = xcm2[1] - xcm[1];
else dy = yc;
if (styleflag & SMD_AUTOZ) dz = xcm2[2] - xcm[2];
else dz = zc;
}
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r_old = sqrt(dx*dx + dy*dy + dz*dz);
if (r_old > SMALL) {
xn = dx/r_old;
yn = dy/r_old;
zn = dz/r_old;
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixSMD::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixSMD::post_force(int vflag)
{
if (styleflag & SMD_TETHER) smd_tether();
else smd_couple();
if (styleflag & SMD_CVEL) r_old += v_smd * update->dt;
}
/* ---------------------------------------------------------------------- */
void FixSMD::smd_tether()
{
double xcm[3];
group->xcm(igroup,masstotal,xcm);
// fx,fy,fz = components of k * (r-r0)
double dx,dy,dz,fx,fy,fz,r,dr;
dx = xcm[0] - xc;
dy = xcm[1] - yc;
dz = xcm[2] - zc;
r_now = sqrt(dx*dx + dy*dy + dz*dz);
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r = sqrt(dx*dx + dy*dy + dz*dz);
if (styleflag & SMD_CVEL) {
if(r > SMALL) {
double fsign;
fsign = (v_smd<0.0) ? -1.0 : 1.0;
dr = r - r0 - r_old;
fx = k_smd*dx*dr/r;
fy = k_smd*dy*dr/r;
fz = k_smd*dz*dr/r;
pmf += (fx*xn + fy*yn + fz*zn) * v_smd * update->dt;
}
} else {
r_old = r;
fx = f_smd*dx/r;
fy = f_smd*dy/r;
fz = f_smd*dz/r;
}
// apply restoring force to atoms in group
// f = -k*(r-r0)*mass/masstotal
double **f = atom->f;
int *mask = atom->mask;
int *type = atom->type;
double *mass = atom->mass;
int nlocal = atom->nlocal;
ftotal[0] = ftotal[1] = ftotal[2] = 0.0;
force_flag = 0;
double massfrac;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
massfrac = mass[type[i]]/masstotal;
f[i][0] -= fx*massfrac;
f[i][1] -= fy*massfrac;
f[i][2] -= fz*massfrac;
ftotal[0] -= fx*massfrac;
ftotal[1] -= fy*massfrac;
ftotal[2] -= fz*massfrac;
}
}
/* ---------------------------------------------------------------------- */
void FixSMD::smd_couple()
{
double xcm[3],xcm2[3];
group->xcm(igroup,masstotal,xcm);
group->xcm(igroup2,masstotal2,xcm2);
// renormalize direction of spring
double dx,dy,dz,r,dr;
if (styleflag & SMD_AUTOX) dx = xcm2[0] - xcm[0];
else dx = xn*r_old;
if (styleflag & SMD_AUTOY) dy = xcm2[1] - xcm[1];
else dy = yn*r_old;
if (styleflag & SMD_AUTOZ) dz = xcm2[2] - xcm[2];
else dz = zn*r_old;
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r = sqrt(dx*dx + dy*dy + dz*dz);
if (r > SMALL) {
xn = dx/r; yn = dy/r; zn = dz/r;
}
double fx,fy,fz;
if (styleflag & SMD_CVEL) {
dx = xcm2[0] - xcm[0];
dy = xcm2[1] - xcm[1];
dz = xcm2[2] - xcm[2];
r_now = sqrt(dx*dx + dy*dy + dz*dz);
dx -= xn*r_old;
dy -= yn*r_old;
dz -= zn*r_old;
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r = sqrt(dx*dx + dy*dy + dz*dz);
dr = r - r0;
if (r > SMALL) {
double fsign;
fsign = (v_smd<0.0) ? -1.0 : 1.0;
fx = k_smd*dx*dr/r;
fy = k_smd*dy*dr/r;
fz = k_smd*dz*dr/r;
pmf += (fx*xn + fy*yn + fz*zn) * fsign * v_smd * update->dt;
}
} else {
dx = xcm2[0] - xcm[0];
dy = xcm2[1] - xcm[1];
dz = xcm2[2] - xcm[2];
r_now = sqrt(dx*dx + dy*dy + dz*dz);
r_old = r;
fx = f_smd*xn;
fy = f_smd*yn;
fz = f_smd*zn;
}
// apply restoring force to atoms in group
// f = -k*(r-r0)*mass/masstotal
double **f = atom->f;
int *mask = atom->mask;
int *type = atom->type;
double *mass = atom->mass;
int nlocal = atom->nlocal;
ftotal[0] = ftotal[1] = ftotal[2] = 0.0;
force_flag = 0;
double massfrac;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
massfrac = mass[type[i]]/masstotal;
f[i][0] += fx*massfrac;
f[i][1] += fy*massfrac;
f[i][2] += fz*massfrac;
ftotal[0] += fx*massfrac;
ftotal[1] += fy*massfrac;
ftotal[2] += fz*massfrac;
}
if (mask[i] & group2bit) {
massfrac = mass[type[i]]/masstotal2;
f[i][0] -= fx*massfrac;
f[i][1] -= fy*massfrac;
f[i][2] -= fz*massfrac;
}
}
}
/* ---------------------------------------------------------------------- */
void FixSMD::write_restart(FILE *fp)
{
#define RESTART_ITEMS 5
double buf[RESTART_ITEMS], fsign;
if (comm->me == 0) {
// make sure we project the force into the direction of the pulling.
fsign = (v_smd<0.0) ? -1.0 : 1.0;
buf[0] = r_old;
buf[1] = xn*fsign;
buf[2] = yn*fsign;
buf[3] = zn*fsign;
buf[4] = pmf;
int size = RESTART_ITEMS*sizeof(double);
fwrite(&size,sizeof(int),1,fp);
fwrite(&buf[0],sizeof(double),RESTART_ITEMS,fp);
}
}
/* ---------------------------------------------------------------------- */
void FixSMD::restart(char *buf)
{
double *list = (double *)buf;
r_old = list[0];
xn=list[1];
yn=list[2];
zn=list[3];
pmf=list[4];
}
/* ---------------------------------------------------------------------- */
void FixSMD::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total smd force on fix group
------------------------------------------------------------------------- */
double FixSMD::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(ftotal,ftotal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
if (styleflag & SMD_CVEL) {
ftotal_all[3]=ftotal_all[0]*xn+ftotal_all[1]*yn+ftotal_all[2]*zn;
ftotal_all[4]=r_old;
} else {
ftotal_all[3]=f_smd;
ftotal_all[4]=r_old;
}
ftotal_all[5]=r_now;
ftotal_all[6]=pmf;
}
return ftotal_all[n];
}
diff --git a/src/WINDOWS/AWPMD.sln b/src/WINDOWS/AWPMD.sln
new file mode 100644
index 000000000..9e8185c52
--- /dev/null
+++ b/src/WINDOWS/AWPMD.sln
@@ -0,0 +1,36 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stubs", "STUBS.vcproj", "{FD83089F-1BF6-455F-9BEA-BB1C21FC137C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AWPMD", "AWPMD.vcproj", "{B11BF870-BC44-4A87-9938-94D33EB5E219}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_STUBS|Win32 = Debug_STUBS|Win32
+ Debug|Win32 = Debug|Win32
+ Release_STUBS|Win32 = Release_STUBS|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug|Win32.ActiveCfg = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug|Win32.Build.0 = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release|Win32.ActiveCfg = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release|Win32.Build.0 = Release_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug|Win32.Build.0 = Debug|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release|Win32.ActiveCfg = Release|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/WINDOWS/AWPMD.vcproj b/src/WINDOWS/AWPMD.vcproj
new file mode 100644
index 000000000..3a607d140
--- /dev/null
+++ b/src/WINDOWS/AWPMD.vcproj
@@ -0,0 +1,2339 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="AWPMD"
+ ProjectGUID="{B11BF870-BC44-4A87-9938-94D33EB5E219}"
+ RootNamespace="AWPMD"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_awpmd;../../lib/awpmd/ivutils/include,../../lib/awpmd/systems/interact"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_awpmd;../../lib/awpmd/ivutils/include,../../lib/awpmd/systems/interact"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_awpmd;../../lib/awpmd/ivutils/include,../../lib/awpmd/systems/interact;../STUBS"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Debug_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_awpmd;../../lib/awpmd/ivutils/include,../../lib/awpmd/systems/interact;../STUBS"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Release_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="src"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\accelerator_cuda.h"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\error.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\error.h"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.h"
+ >
+ </File>
+ <File
+ RelativePath="..\input.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\input.h"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\library.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\library.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lmptype.h"
+ >
+ </File>
+ <File
+ RelativePath="..\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.h"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_derive.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_bin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_multi.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_nsq.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_stencil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\output.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\output.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pointers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.h"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\run.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\run.h"
+ >
+ </File>
+ <File
+ RelativePath="..\set.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\set.h"
+ >
+ </File>
+ <File
+ RelativePath="..\special.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\special.h"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\update.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\update.h"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\version.h"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="lib_awpmd"
+ >
+ <Filter
+ Name="ivutils"
+ >
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\cerf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\cvector_3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\lapack_inter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\src\logexc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\logexc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\pairhash.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\refobj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\vector_3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\ivutils\include\wavepacket.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="TCP"
+ >
+ <File
+ RelativePath="..\..\lib\awpmd\systems\interact\TCP\tcpdefs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\systems\interact\TCP\wpmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\systems\interact\TCP\wpmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\systems\interact\TCP\wpmd_split.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\awpmd\systems\interact\TCP\wpmd_split.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Extra"
+ >
+ <File
+ RelativePath=".\extra\erf.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\erf_namd.c"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PACKAGES"
+ >
+ <Filter
+ Name="USER_AWPMD"
+ >
+ <File
+ RelativePath="..\USER-AWPMD\atom_vec_wavepacket.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-AWPMD\atom_vec_wavepacket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-AWPMD\fix_nve_awpmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-AWPMD\fix_nve_awpmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-AWPMD\pair_awpmd_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-AWPMD\pair_awpmd_cut.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Settings"
+ >
+ <File
+ RelativePath=".\settings_awpmd\style_angle.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_atom.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_bond.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_command.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_compute.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_dump.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_fix.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_improper.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_integrate.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_kspace.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_pair.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_awpmd\style_region.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/WINDOWS/LAMMPS-std-user.vcproj b/src/WINDOWS/LAMMPS-std-user.vcproj
new file mode 100644
index 000000000..aefe05cf8
--- /dev/null
+++ b/src/WINDOWS/LAMMPS-std-user.vcproj
@@ -0,0 +1,3867 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="LAMMPS-std-user"
+ ProjectGUID="{0D805535-F87A-4E1F-AA3D-F00462E9F222}"
+ RootNamespace="LAMMPS"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../STUBS;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Debug_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../STUBS;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Release_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="src"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\accelerator_cuda.h"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\error.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\error.h"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.h"
+ >
+ </File>
+ <File
+ RelativePath="..\input.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\input.h"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\library.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\library.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lmptype.h"
+ >
+ </File>
+ <File
+ RelativePath="..\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.h"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_derive.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_bin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_multi.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_nsq.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_stencil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\output.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\output.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pointers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.h"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\run.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\run.h"
+ >
+ </File>
+ <File
+ RelativePath="..\set.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\set.h"
+ >
+ </File>
+ <File
+ RelativePath="..\special.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\special.h"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\update.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\update.h"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\version.h"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="extra"
+ >
+ <File
+ RelativePath=".\extra\erf.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\erf_namd.c"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\math.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PACKAGES"
+ >
+ <Filter
+ Name="MOLECULE"
+ >
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="KSPACE"
+ >
+ <File
+ RelativePath="..\KSPACE\ewald.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\ewald.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="MANYBODY"
+ >
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="ASPHERE"
+ >
+ <File
+ RelativePath="..\ASPHERE\compute_erotate_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_erotate_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_temp_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_temp_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nh_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nh_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nph_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nph_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_npt_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_npt_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nve_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nve_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nvt_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nvt_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_gayberne.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_gayberne.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_resquared.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_resquared.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="CLASS2"
+ >
+ <File
+ RelativePath="..\CLASS2\angle_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\angle_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\bond_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\bond_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\dihedral_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\dihedral_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\improper_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\improper_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_long.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="COLLOID"
+ >
+ <File
+ RelativePath="..\COLLOID\fix_wall_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\fix_wall_colloid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_colloid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_lubricate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_lubricate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_yukawa_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_yukawa_colloid.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="DIPOLE"
+ >
+ <File
+ RelativePath="..\DIPOLE\atom_vec_dipole.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\atom_vec_dipole.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\pair_dipole_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\pair_dipole_cut.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="DSMC"
+ >
+ <File
+ RelativePath="..\DSMC\pair_dsmc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DSMC\pair_dsmc.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="GRANULAR"
+ >
+ <File
+ RelativePath="..\GRANULAR\fix_freeze.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_freeze.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_pour.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_pour.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_wall_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_wall_gran.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hertz_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hertz_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke_history.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PERI"
+ >
+ <File
+ RelativePath="..\PERI\atom_vec_peri.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\atom_vec_peri.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\compute_damage_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\compute_damage_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\fix_peri_neigh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\fix_peri_neigh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_lps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_lps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_pmb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_pmb.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="POEMS"
+ >
+ <File
+ RelativePath="..\POEMS\fix_poems.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\POEMS\fix_poems.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="SHOCK"
+ >
+ <File
+ RelativePath="..\SHOCK\fix_msst.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SHOCK\fix_msst.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="SRD"
+ >
+ <File
+ RelativePath="..\SRD\fix_srd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_srd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_wall_srd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_wall_srd.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="USER-CG-CMM"
+ >
+ <File
+ RelativePath="..\USER-CG-CMM\angle_cg_cmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\angle_cg_cmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\cg_cmm_parms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\cg_cmm_parms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cg_cmm_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cmm_common.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-CG-CMM\pair_cmm_common.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="USER-REAXC"
+ >
+ <File
+ RelativePath="..\USER-REAXC\fix_qeq_reax.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\fix_qeq_reax.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\fix_reax_c.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\fix_reax_c.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\pair_reax_c.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\pair_reax_c.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_allocate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_allocate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_basic_comm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_basic_comm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_bond_orders.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_bond_orders.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_control.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_defs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_ffield.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_ffield.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_forces.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_forces.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_hydrogen_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_hydrogen_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_init_md.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_init_md.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_io_tools.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_io_tools.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_list.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_list.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_lookup.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_lookup.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_multi_body.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_multi_body.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_nonbonded.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_nonbonded.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_reset_tools.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_reset_tools.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_system_props.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_system_props.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_tool_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_tool_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_torsion_angles.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_torsion_angles.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_traj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_traj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_valence_angles.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_valence_angles.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_vector.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-REAXC\reaxc_vector.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="USER-EFF"
+ >
+ <File
+ RelativePath="..\USER-EFF\atom_vec_electron.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\atom_vec_electron.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_ke_atom_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_ke_atom_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_ke_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_ke_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_deform_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_deform_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_region_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\compute_temp_region_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_langevin_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_langevin_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nh_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nh_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nph_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nph_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_npt_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_npt_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nve_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nve_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nvt_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nvt_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nvt_sllod_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_nvt_sllod_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_temp_rescale_eff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\fix_temp_rescale_eff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\pair_eff_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\pair_eff_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\USER-EFF\pair_eff_inline.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="OPT"
+ >
+ <File
+ RelativePath="..\OPT\pair_eam_alloy_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_alloy_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_fs_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_fs_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_charmm_coul_long_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_charmm_coul_long_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_cut_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_cut_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_morse_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_morse_opt.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="settings"
+ >
+ <File
+ RelativePath=".\settings_stduser\style_angle.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_atom.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_bond.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_command.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_compute.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_dump.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_fix.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_improper.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_integrate.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_kspace.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_pair.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_stduser\style_region.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="lib_poems"
+ >
+ <File
+ RelativePath="..\..\lib\poems\bodies.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body23joint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body23joint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatmap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatmap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\defines.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\eulerparameters.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\eulerparameters.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fastmatrixops.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fastmatrixops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fixedpoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fixedpoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\freebodyjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\freebodyjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\inertialframe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\inertialframe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joints.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat3x3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat3x3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat4x4.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat4x4.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat6x6.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat6x6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrices.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrixfun.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrixfun.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mixedjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mixedjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\norm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\norm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onbody.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onbody.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onfunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onfunctions.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onsolver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onsolver.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\particle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\particle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\POEMSChain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemslist.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsnodelib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsobject.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsobject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstree.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstreenode.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstreenode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\point.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\point.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\points.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\prismaticjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\prismaticjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\revolutejoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\revolutejoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rigidbody.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rigidbody.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rowmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rowmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\solver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\solver.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\sphericaljoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\sphericaljoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\system.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\system.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\SystemProcessor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect4.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect4.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect6.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualcolmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualcolmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualrowmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualrowmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\workspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\workspace.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/WINDOWS/LAMMPS-std.vcproj b/src/WINDOWS/LAMMPS-std.vcproj
new file mode 100644
index 000000000..8c5fb09a3
--- /dev/null
+++ b/src/WINDOWS/LAMMPS-std.vcproj
@@ -0,0 +1,3483 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="LAMMPS-stdandard"
+ ProjectGUID="{56FA6262-F9C1-4FB5-A684-2DC631E91591}"
+ RootNamespace="LAMMPS"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../STUBS;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Debug_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_standard;../STUBS;../ASPHERE;../CLASS2;../COLLOID;../DIPOLE;../DSMC;../GRANULAR;../KSPACE;../MANYBODY;../MOLECULE;../OPT;../PERI;../POEMS;../SHOCK;../SRD;../../lib/poems"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Release_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="src"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\accelerator_cuda.h"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\error.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\error.h"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.h"
+ >
+ </File>
+ <File
+ RelativePath="..\input.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\input.h"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\library.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\library.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lmptype.h"
+ >
+ </File>
+ <File
+ RelativePath="..\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.h"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_derive.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_bin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_multi.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_nsq.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_stencil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\output.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\output.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pointers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.h"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\run.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\run.h"
+ >
+ </File>
+ <File
+ RelativePath="..\set.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\set.h"
+ >
+ </File>
+ <File
+ RelativePath="..\special.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\special.h"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\update.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\update.h"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\version.h"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="extra"
+ >
+ <File
+ RelativePath=".\extra\erf.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\erf_namd.c"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\math.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PACKAGES"
+ >
+ <Filter
+ Name="MOLECULE"
+ >
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="KSPACE"
+ >
+ <File
+ RelativePath="..\KSPACE\ewald.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\ewald.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="MANYBODY"
+ >
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="ASPHERE"
+ >
+ <File
+ RelativePath="..\ASPHERE\compute_erotate_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_erotate_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_temp_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\compute_temp_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nh_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nh_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nph_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nph_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_npt_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_npt_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nve_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nve_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nvt_asphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\fix_nvt_asphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_gayberne.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_gayberne.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_resquared.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ASPHERE\pair_resquared.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="CLASS2"
+ >
+ <File
+ RelativePath="..\CLASS2\angle_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\angle_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\bond_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\bond_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\dihedral_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\dihedral_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\improper_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\improper_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CLASS2\pair_lj_class2_coul_long.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="COLLOID"
+ >
+ <File
+ RelativePath="..\COLLOID\fix_wall_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\fix_wall_colloid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_colloid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_lubricate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_lubricate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_yukawa_colloid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\COLLOID\pair_yukawa_colloid.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="DIPOLE"
+ >
+ <File
+ RelativePath="..\DIPOLE\atom_vec_dipole.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\atom_vec_dipole.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\pair_dipole_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DIPOLE\pair_dipole_cut.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="DSMC"
+ >
+ <File
+ RelativePath="..\DSMC\pair_dsmc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DSMC\pair_dsmc.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="GRANULAR"
+ >
+ <File
+ RelativePath="..\GRANULAR\fix_freeze.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_freeze.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_pour.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_pour.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_wall_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\fix_wall_gran.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hertz_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hertz_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\GRANULAR\pair_gran_hooke_history.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="OPT"
+ >
+ <File
+ RelativePath="..\OPT\pair_eam_alloy_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_alloy_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_fs_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_fs_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_eam_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_charmm_coul_long_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_charmm_coul_long_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_cut_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_lj_cut_opt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_morse_opt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\OPT\pair_morse_opt.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PERI"
+ >
+ <File
+ RelativePath="..\PERI\atom_vec_peri.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\atom_vec_peri.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\compute_damage_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\compute_damage_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\fix_peri_neigh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\fix_peri_neigh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_lps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_lps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_pmb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\PERI\pair_peri_pmb.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="POEMS"
+ >
+ <File
+ RelativePath="..\POEMS\fix_poems.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\POEMS\fix_poems.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="SHOCK"
+ >
+ <File
+ RelativePath="..\SHOCK\fix_msst.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SHOCK\fix_msst.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="SRD"
+ >
+ <File
+ RelativePath="..\SRD\fix_srd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_srd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_wall_srd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\SRD\fix_wall_srd.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="settings"
+ >
+ <File
+ RelativePath=".\settings_standard\style_angle.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_atom.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_bond.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_command.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_compute.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_dump.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_fix.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_improper.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_integrate.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_kspace.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_pair.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_standard\style_region.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="lib_poems"
+ >
+ <File
+ RelativePath="..\..\lib\poems\bodies.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body23joint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\body23joint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatmap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatmap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\colmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\defines.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\eulerparameters.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\eulerparameters.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fastmatrixops.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fastmatrixops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fixedpoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\fixedpoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\freebodyjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\freebodyjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\inertialframe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\inertialframe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\joints.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat3x3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat3x3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat4x4.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat4x4.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat6x6.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mat6x6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrices.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrixfun.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\matrixfun.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mixedjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\mixedjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\norm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\norm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onbody.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onbody.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onfunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onfunctions.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onsolver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\onsolver.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\particle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\particle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\POEMSChain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemslist.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsnodelib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsobject.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemsobject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstree.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstreenode.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\poemstreenode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\point.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\point.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\points.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\prismaticjoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\prismaticjoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\revolutejoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\revolutejoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rigidbody.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rigidbody.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rowmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\rowmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\solver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\solver.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\sphericaljoint.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\sphericaljoint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\system.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\system.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\SystemProcessor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect3.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect4.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect4.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect6.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\vect6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualcolmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualcolmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualrowmatrix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\virtualrowmatrix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\workspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\poems\workspace.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/WINDOWS/LAMMPS.sln b/src/WINDOWS/LAMMPS.sln
new file mode 100644
index 000000000..0c83d20c4
--- /dev/null
+++ b/src/WINDOWS/LAMMPS.sln
@@ -0,0 +1,56 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stubs", "STUBS.vcproj", "{FD83089F-1BF6-455F-9BEA-BB1C21FC137C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAMMPS-stdandard", "LAMMPS-std.vcproj", "{56FA6262-F9C1-4FB5-A684-2DC631E91591}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAMMPS-default", "LAMMPS.vcproj", "{B11BF870-BC44-4A87-9938-94D33EB5E219}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAMMPS-std-user", "LAMMPS-std-user.vcproj", "{0D805535-F87A-4E1F-AA3D-F00462E9F222}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_STUBS|Win32 = Debug_STUBS|Win32
+ Debug|Win32 = Debug|Win32
+ Release_STUBS|Win32 = Release_STUBS|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug|Win32.ActiveCfg = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Debug|Win32.Build.0 = Debug_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release|Win32.ActiveCfg = Release_STUBS|Win32
+ {FD83089F-1BF6-455F-9BEA-BB1C21FC137C}.Release|Win32.Build.0 = Release_STUBS|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Debug|Win32.ActiveCfg = Debug|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Debug|Win32.Build.0 = Debug|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Release|Win32.ActiveCfg = Release|Win32
+ {56FA6262-F9C1-4FB5-A684-2DC631E91591}.Release|Win32.Build.0 = Release|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Debug|Win32.Build.0 = Debug|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release|Win32.ActiveCfg = Release|Win32
+ {B11BF870-BC44-4A87-9938-94D33EB5E219}.Release|Win32.Build.0 = Release|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Debug_STUBS|Win32.ActiveCfg = Debug_STUBS|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Debug_STUBS|Win32.Build.0 = Debug_STUBS|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Debug|Win32.Build.0 = Debug|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Release_STUBS|Win32.ActiveCfg = Release_STUBS|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Release_STUBS|Win32.Build.0 = Release_STUBS|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Release|Win32.ActiveCfg = Release|Win32
+ {0D805535-F87A-4E1F-AA3D-F00462E9F222}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/WINDOWS/LAMMPS.vcproj b/src/WINDOWS/LAMMPS.vcproj
new file mode 100644
index 000000000..60db7a51b
--- /dev/null
+++ b/src/WINDOWS/LAMMPS.vcproj
@@ -0,0 +1,2739 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="LAMMPS-default"
+ ProjectGUID="{B11BF870-BC44-4A87-9938-94D33EB5E219}"
+ RootNamespace="LAMMPS"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_default;../KSPACE;../MANYBODY;../MOLECULE"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_default;../KSPACE;../MANYBODY;../MOLECULE"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib mpi.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_default;../STUBS;../KSPACE;../MANYBODY;../MOLECULE"
+ PreprocessorDefinitions="_DEBUG;FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Debug_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_STUBS|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ FavorSizeOrSpeed="1"
+ AdditionalIncludeDirectories="..;extra;extra/fftw2;settings_default;../STUBS;../KSPACE;../MANYBODY;../MOLECULE"
+ PreprocessorDefinitions="FFT_FFTW; _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(TargetName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="extra/fftw2/FFTW2dll.lib Release_STUBS/stubs.lib mkl_c_dll.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="&quot;S:\Program Files (x86)\MPICH2\lib&quot;;&quot;S:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32&quot;;D:\download\LAMMPS\LAMMPS\Release;D:\download\LAMMPS\fftw213"
+ GenerateDebugInformation="false"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="src"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\accelerator_cuda.h"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_atomic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_charge.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_ellipsoid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\atom_vec_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bond_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\change_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\comm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_angle_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_atom_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_bond_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_centro_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cluster_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_cna_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_com_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_coord_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_dihedral_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_displace_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_erotate_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_group_group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_gyration_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_heat_flux.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_improper_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ke_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_msd_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pair_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pe_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_pressure.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_property_molecule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_rdf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_reduce_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_slice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_stress_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_com.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_partial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_profile.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_ramp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_temp_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\compute_ti.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\create_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\delete_bonds.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_atoms.h"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\displace_box.h"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\domain.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_cfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_custom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_dcd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_image.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_local.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dump_xyz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\error.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\error.h"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\finish.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_adapt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_addforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_atom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_correlate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_histo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_spatial.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ave_time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_aveforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_box_relax.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_deposit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_drag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_dt_reset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_efield.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_enforce2d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_evaporate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_external.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_gravity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_heat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_indent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_langevin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_lineforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_momentum.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_move.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nh_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nph_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_npt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_limit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_noforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nve_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sllod.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_nvt_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_orient_fcc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_planeforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_press_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_print.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_recenter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nve.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_rigid_nvt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_setforce.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shake.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_shear_history.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_rg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_spring_self.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_store_state.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_berendsen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_temp_rescale.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_thermal_conductivity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_tmd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_ttm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscosity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_viscous.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj126.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_lj93.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_reflect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\fix_wall_region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\force.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\force.h"
+ >
+ </File>
+ <File
+ RelativePath="..\group.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\group.h"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\improper.h"
+ >
+ </File>
+ <File
+ RelativePath="..\input.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\input.h"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\integrate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\irregular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\kspace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lammps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lattice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\library.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\library.h"
+ >
+ </File>
+ <File
+ RelativePath="..\lmptype.h"
+ >
+ </File>
+ <File
+ RelativePath="..\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\math_extra.h"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\memory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_cg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_fire.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_hftn.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_linesearch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_quickmin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\min_sd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\minimize.h"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\modify.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_derive.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_gran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_bin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_multi.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_half_nsq.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_list.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neigh_stencil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\neighbor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\output.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\output.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pack.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_born.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_buck_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_dpd_tstat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_gauss.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_hybrid_overlay.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj96_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_cut.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_cut_coul_debye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_gromacs_coul_gromacs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_lj_smooth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_soft.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\pair_yukawa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\pointers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_mars.h"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\random_park.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_data.h"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\read_restart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_block.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cone.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_cylinder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_intersect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_plane.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_prism.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_sphere.h"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\region_union.h"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\replicate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\respa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\run.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\run.h"
+ >
+ </File>
+ <File
+ RelativePath="..\set.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\set.h"
+ >
+ </File>
+ <File
+ RelativePath="..\special.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\special.h"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\thermo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\universe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\update.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\update.h"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\variable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\velocity.h"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\verlet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\version.h"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\write_restart.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="extra"
+ >
+ <File
+ RelativePath=".\extra\erf.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\erf_namd.c"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\math.h"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\extra\sleep.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="PACKAGES"
+ >
+ <Filter
+ Name="MOLECULE"
+ >
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_delta.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_periodic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_cosine_squared.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\angle_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_angle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_bond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_full.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\atom_vec_molecular.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_fene_expand.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_nonlinear.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_quartic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\bond_table.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_helix.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_multi_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\dihedral_opls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_break.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_create.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\fix_bond_swap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_cvff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_harmonic.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_hybrid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\improper_umbrella.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_lj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_hbond_dreiding_morse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MOLECULE\pair_lj_charmm_coul_charmm_implicit.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="KSPACE"
+ >
+ <File
+ RelativePath="..\KSPACE\ewald.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\ewald.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\fft3d_wrap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_born_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_buck_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_charmm_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pair_lj_cut_coul_long_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\pppm_tip4p.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\KSPACE\remap_wrap.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="MANYBODY"
+ >
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\fix_qeq_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_airebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_comb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_alloy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eam_fs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_eim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_rebo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_sw.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MANYBODY\pair_tersoff_zbl.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="settings"
+ >
+ <File
+ RelativePath=".\settings_default\style_angle.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_atom.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_bond.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_command.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_compute.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_dihedral.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_dump.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_fix.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_improper.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_integrate.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_kspace.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_minimize.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_pair.h"
+ >
+ </File>
+ <File
+ RelativePath=".\settings_default\style_region.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/WINDOWS/README.txt b/src/WINDOWS/README.txt
new file mode 100644
index 000000000..f17f4fa94
--- /dev/null
+++ b/src/WINDOWS/README.txt
@@ -0,0 +1,46 @@
+INSTRUCTIONS FOR COMPILING LAMMPS WITH VISUAL STUDIO 2005
+
+
+There are 3 VS projects provided:
+LAMMPS.vcproj -- minimal package set: KSPACE, MANYBODY, MOLECULE
+LAMMPS-std.vcproj -- standard package set (except for REPLICA, REAX, GPU)
+LAMMPS-std-user.vcproj -- standard set with some user packages
+
+
+Each of the projects has configurations to compile either with MPI support or
+with MPI stubs.
+
+
+To compile with MPI:
+
+1. Install MPICH for Windows, specify the corresponding include
+ and lib directories in MSVS/Tools/Options/Projects and Solutions/VC++ Directories
+2. Compile LAMMPS using Debug or Release configurations from the provided projects
+
+
+To compile with MPI STUBS
+
+1. Compile the STUBS.vcproj
+2. Compile LAMMPS using Debug_STUBS or Release_STUBS configurations from the provided projects
+
+
+
+To run the code you will need the mpich and fftw213 dlls accessible
+by the system search (they may be copied to Windows/system32 directory).
+The fftw213 ddlls may be found in vs9/extra/fftw213 or downloaded from the fftw site
+
+
+
+
+To include additional packages into LAMMPS projects, you may follow the pattern of LAMMPS-std-user.vcproj:
+
+
+1. Add the appropriate *.cpp files to the project (for example to USER-* filter)
+
+2. Add corresponding .h files from the project directory
+ to the style_* headers listed in the Settings filter of the project.
+ For example, if there is a pair_*.h file in the project directory, it should be added
+ to settings/style_pair.h aggregate header.
+
+
+
diff --git a/src/WINDOWS/STUBS.vcproj b/src/WINDOWS/STUBS.vcproj
new file mode 100644
index 000000000..ec94668d7
--- /dev/null
+++ b/src/WINDOWS/STUBS.vcproj
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="stubs"
+ ProjectGUID="{FD83089F-1BF6-455F-9BEA-BB1C21FC137C}"
+ RootNamespace="stubs"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug_STUBS|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="extra"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(ProjectName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_STUBS|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="extra"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ ProgramDataBaseFileName="$(IntDir)\$(ProjectName).pdb"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\STUBS\mpi.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\STUBS\mpi.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/WINDOWS/extra/dirent.h b/src/WINDOWS/extra/dirent.h
new file mode 100644
index 000000000..79e946d07
--- /dev/null
+++ b/src/WINDOWS/extra/dirent.h
@@ -0,0 +1,372 @@
+/*****************************************************************************
+ * dirent.h - dirent API for Microsoft Visual Studio
+ *
+ * Copyright (C) 2006 Toni Ronkko
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * ``Software''), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Mar 15, 2011, Toni Ronkko
+ * Defined FILE_ATTRIBUTE_DEVICE for MSVC 6.0.
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Added d_type and d_namlen fields to dirent structure. The former is
+ * especially useful for determining whether directory entry represents a
+ * file or a directory. For more information, see
+ * http://www.delorie.com/gnu/docs/glibc/libc_270.html
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Improved conformance to the standards. For example, errno is now set
+ * properly on failure and assert() is never used. Thanks to Peter Brockam
+ * for suggestions.
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Fixed a bug in rewinddir(): when using relative directory names, change
+ * of working directory no longer causes rewinddir() to fail.
+ *
+ * Dec 15, 2009, John Cunningham
+ * Added rewinddir member function
+ *
+ * Jan 18, 2008, Toni Ronkko
+ * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string
+ * between multi-byte and unicode representations. This makes the
+ * code simpler and also allows the code to be compiled under MingW. Thanks
+ * to Azriel Fasten for the suggestion.
+ *
+ * Mar 4, 2007, Toni Ronkko
+ * Bug fix: due to the strncpy_s() function this file only compiled in
+ * Visual Studio 2005. Using the new string functions only when the
+ * compiler version allows.
+ *
+ * Nov 2, 2006, Toni Ronkko
+ * Major update: removed support for Watcom C, MS-DOS and Turbo C to
+ * simplify the file, updated the code to compile cleanly on Visual
+ * Studio 2005 with both unicode and multi-byte character strings,
+ * removed rewinddir() as it had a bug.
+ *
+ * Aug 20, 2006, Toni Ronkko
+ * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified
+ * comments by removing SGML tags.
+ *
+ * May 14 2002, Toni Ronkko
+ * Embedded the function definitions directly to the header so that no
+ * source modules need to be included in the Visual Studio project. Removed
+ * all the dependencies to other projects so that this very header can be
+ * used independently.
+ *
+ * May 28 1998, Toni Ronkko
+ * First version.
+ *****************************************************************************/
+#ifndef DIRENT_H
+#define DIRENT_H
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+/* Entries missing from MSVC 6.0 */
+#if !defined(FILE_ATTRIBUTE_DEVICE)
+# define FILE_ATTRIBUTE_DEVICE 0x40
+#endif
+
+/* File type and permission flags for stat() */
+#if defined(_MSC_VER) && !defined(S_IREAD)
+# define S_IFMT _S_IFMT /* file type mask */
+# define S_IFDIR _S_IFDIR /* directory */
+# define S_IFCHR _S_IFCHR /* character device */
+# define S_IFFIFO _S_IFFIFO /* pipe */
+# define S_IFREG _S_IFREG /* regular file */
+# define S_IREAD _S_IREAD /* read permission */
+# define S_IWRITE _S_IWRITE /* write permission */
+# define S_IEXEC _S_IEXEC /* execute permission */
+#endif
+#define S_IFBLK 0 /* block device */
+#define S_IFLNK 0 /* link */
+#define S_IFSOCK 0 /* socket */
+
+#if defined(_MSC_VER)
+# define S_IRUSR S_IREAD /* read, user */
+# define S_IWUSR S_IWRITE /* write, user */
+# define S_IXUSR 0 /* execute, user */
+# define S_IRGRP 0 /* read, group */
+# define S_IWGRP 0 /* write, group */
+# define S_IXGRP 0 /* execute, group */
+# define S_IROTH 0 /* read, others */
+# define S_IWOTH 0 /* write, others */
+# define S_IXOTH 0 /* execute, others */
+#endif
+
+/* Indicates that d_type field is available in dirent structure */
+#define _DIRENT_HAVE_D_TYPE
+
+/* File type flags for d_type */
+#define DT_UNKNOWN 0
+#define DT_REG S_IFREG
+#define DT_DIR S_IFDIR
+#define DT_FIFO S_IFFIFO
+#define DT_SOCK S_IFSOCK
+#define DT_CHR S_IFCHR
+#define DT_BLK S_IFBLK
+
+/* Macros for converting between st_mode and d_type */
+#define IFTODT(mode) ((mode) & S_IFMT)
+#define DTTOIF(type) (type)
+
+/*
+ * File type macros. Note that block devices, sockets and links cannot be
+ * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are
+ * only defined for compatibility. These macros should always return false
+ * on Windows.
+ */
+#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO)
+#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
+#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
+#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
+#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
+#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef struct dirent
+{
+ char d_name[MAX_PATH + 1]; /* File name */
+ size_t d_namlen; /* Length of name without \0 */
+ int d_type; /* File type */
+} dirent;
+
+
+typedef struct DIR
+{
+ dirent curentry; /* Current directory entry */
+ WIN32_FIND_DATAA find_data; /* Private file data */
+ int cached; /* True if data is valid */
+ HANDLE search_handle; /* Win32 search handle */
+ char patt[MAX_PATH + 3]; /* Initial directory name */
+} DIR;
+
+
+/* Forward declarations */
+static DIR *opendir(const char *dirname);
+static struct dirent *readdir(DIR *dirp);
+static int closedir(DIR *dirp);
+static void rewinddir(DIR* dirp);
+
+
+/* Use the new safe string functions introduced in Visual Studio 2005 */
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE)
+#else
+# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size))
+#endif
+
+/* Set errno variable */
+#if defined(_MSC_VER)
+#define DIRENT_SET_ERRNO(x) _set_errno (x)
+#else
+#define DIRENT_SET_ERRNO(x) (errno = (x))
+#endif
+
+
+/*****************************************************************************
+ * Open directory stream DIRNAME for read and return a pointer to the
+ * internal working area that is used to retrieve individual directory
+ * entries.
+ */
+static DIR *opendir(const char *dirname)
+{
+ DIR *dirp;
+
+ /* ensure that the resulting search pattern will be a valid file name */
+ if (dirname == NULL) {
+ DIRENT_SET_ERRNO (ENOENT);
+ return NULL;
+ }
+ if (strlen (dirname) + 3 >= MAX_PATH) {
+ DIRENT_SET_ERRNO (ENAMETOOLONG);
+ return NULL;
+ }
+
+ /* construct new DIR structure */
+ dirp = (DIR*) malloc (sizeof (struct DIR));
+ if (dirp != NULL) {
+ int error;
+
+ /*
+ * Convert relative directory name to an absolute one. This
+ * allows rewinddir() to function correctly when the current working
+ * directory is changed between opendir() and rewinddir().
+ */
+ if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) {
+ char *p;
+
+ /* append the search pattern "\\*\0" to the directory name */
+ p = strchr (dirp->patt, '\0');
+ if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') {
+ *p++ = '\\';
+ }
+ *p++ = '*';
+ *p = '\0';
+
+ /* open directory stream and retrieve the first entry */
+ dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data);
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ /* a directory entry is now waiting in memory */
+ dirp->cached = 1;
+ error = 0;
+ } else {
+ /* search pattern is not a directory name? */
+ DIRENT_SET_ERRNO (ENOENT);
+ error = 1;
+ }
+ } else {
+ /* buffer too small */
+ DIRENT_SET_ERRNO (ENOMEM);
+ error = 1;
+ }
+
+ if (error) {
+ free (dirp);
+ dirp = NULL;
+ }
+ }
+
+ return dirp;
+}
+
+
+/*****************************************************************************
+ * Read a directory entry, and return a pointer to a dirent structure
+ * containing the name of the entry in d_name field. Individual directory
+ * entries returned by this very function include regular files,
+ * sub-directories, pseudo-directories "." and "..", but also volume labels,
+ * hidden files and system files may be returned.
+ */
+static struct dirent *readdir(DIR *dirp)
+{
+ DWORD attr;
+ if (dirp == NULL) {
+ /* directory stream did not open */
+ DIRENT_SET_ERRNO (EBADF);
+ return NULL;
+ }
+
+ /* get next directory entry */
+ if (dirp->cached != 0) {
+ /* a valid directory entry already in memory */
+ dirp->cached = 0;
+ } else {
+ /* get the next directory entry from stream */
+ if (dirp->search_handle == INVALID_HANDLE_VALUE) {
+ return NULL;
+ }
+ if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) {
+ /* the very last entry has been processed or an error occured */
+ FindClose (dirp->search_handle);
+ dirp->search_handle = INVALID_HANDLE_VALUE;
+ return NULL;
+ }
+ }
+
+ /* copy as a multibyte character string */
+ DIRENT_STRNCPY ( dirp->curentry.d_name,
+ dirp->find_data.cFileName,
+ sizeof(dirp->curentry.d_name) );
+ dirp->curentry.d_name[MAX_PATH] = '\0';
+
+ /* compute the length of name */
+ dirp->curentry.d_namlen = strlen (dirp->curentry.d_name);
+
+ /* determine file type */
+ attr = dirp->find_data.dwFileAttributes;
+ if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
+ dirp->curentry.d_type = DT_CHR;
+ } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
+ dirp->curentry.d_type = DT_DIR;
+ } else {
+ dirp->curentry.d_type = DT_REG;
+ }
+ return &dirp->curentry;
+}
+
+
+/*****************************************************************************
+ * Close directory stream opened by opendir() function. Close of the
+ * directory stream invalidates the DIR structure as well as any previously
+ * read directory entry.
+ */
+static int closedir(DIR *dirp)
+{
+ if (dirp == NULL) {
+ /* invalid directory stream */
+ DIRENT_SET_ERRNO (EBADF);
+ return -1;
+ }
+
+ /* release search handle */
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ FindClose (dirp->search_handle);
+ dirp->search_handle = INVALID_HANDLE_VALUE;
+ }
+
+ /* release directory structure */
+ free (dirp);
+ return 0;
+}
+
+
+/*****************************************************************************
+ * Resets the position of the directory stream to which dirp refers to the
+ * beginning of the directory. It also causes the directory stream to refer
+ * to the current state of the corresponding directory, as a call to opendir()
+ * would have done. If dirp does not refer to a directory stream, the effect
+ * is undefined.
+ */
+static void rewinddir(DIR* dirp)
+{
+ if (dirp != NULL) {
+ /* release search handle */
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ FindClose (dirp->search_handle);
+ }
+
+ /* open new search handle and retrieve the first entry */
+ dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data);
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ /* a directory entry is now waiting in memory */
+ dirp->cached = 1;
+ } else {
+ /* failed to re-open directory: no directory entry in memory */
+ dirp->cached = 0;
+ }
+ }
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*DIRENT_H*/
diff --git a/src/WINDOWS/extra/erf.h b/src/WINDOWS/extra/erf.h
new file mode 100644
index 000000000..0e7b0549a
--- /dev/null
+++ b/src/WINDOWS/extra/erf.h
@@ -0,0 +1,19 @@
+# ifndef ERF_H
+# define ERF_H
+
+# ifdef _WIN32
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+double erf(double x);
+double erfc(double x);
+
+# ifdef __cplusplus
+}
+# endif
+
+# endif
+
+# endif
diff --git a/src/WINDOWS/extra/erf_namd.c b/src/WINDOWS/extra/erf_namd.c
new file mode 100644
index 000000000..50e81733d
--- /dev/null
+++ b/src/WINDOWS/extra/erf_namd.c
@@ -0,0 +1,345 @@
+/*
+ * Copied from OpenBSD project (src/lib/libm/src/s_erf.c)
+ * Specialized for 32-bit little endian architectures.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* double erf(double x)
+ * double erfc(double x)
+ * x
+ * 2 |\
+ * erf(x) = --------- | exp(-t*t)dt
+ * sqrt(pi) \|
+ * 0
+ *
+ * erfc(x) = 1-erf(x)
+ * Note that
+ * erf(-x) = -erf(x)
+ * erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ * 1. For |x| in [0, 0.84375]
+ * erf(x) = x + x*R(x^2)
+ * erfc(x) = 1 - erf(x) if x in [-.84375,0.25]
+ * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375]
+ * where R = P/Q where P is an odd poly of degree 8 and
+ * Q is an odd poly of degree 10.
+ * -57.90
+ * | R - (erf(x)-x)/x | <= 2
+ *
+ *
+ * Remark. The formula is derived by noting
+ * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ * and that
+ * 2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ * is close to one. The interval is chosen because the fix
+ * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
+ * near 0.6174), and by some experiment, 0.84375 is chosen to
+ * guarantee the error is less than one ulp for erf.
+ *
+ * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and
+ * c = 0.84506291151 rounded to single (24 bits)
+ * erf(x) = sign(x) * (c + P1(s)/Q1(s))
+ * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0
+ * 1+(c+P1(s)/Q1(s)) if x < 0
+ * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06
+ * Remark: here we use the taylor series expansion at x=1.
+ * erf(1+s) = erf(1) + s*Poly(s)
+ * = 0.845.. + P1(s)/Q1(s)
+ * That is, we use rational approximation to approximate
+ * erf(1+s) - (c = (single)0.84506291151)
+ * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ * where
+ * P1(s) = degree 6 poly in s
+ * Q1(s) = degree 6 poly in s
+ *
+ * 3. For x in [1.25,1/0.35(~2.857143)],
+ * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
+ * erf(x) = 1 - erfc(x)
+ * where
+ * R1(z) = degree 7 poly in z, (z=1/x^2)
+ * S1(z) = degree 8 poly in z
+ *
+ * 4. For x in [1/0.35,28]
+ * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
+ * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0
+ * = 2.0 - tiny (if x <= -6)
+ * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else
+ * erf(x) = sign(x)*(1.0 - tiny)
+ * where
+ * R2(z) = degree 6 poly in z, (z=1/x^2)
+ * S2(z) = degree 7 poly in z
+ *
+ * Note1:
+ * To compute exp(-x*x-0.5625+R/S), let s be a single
+ * precision number and s := x; then
+ * -x*x = -s*s + (s-x)*(s+x)
+ * exp(-x*x-0.5626+R/S) =
+ * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ * Note2:
+ * Here 4 and 5 make use of the asymptotic series
+ * exp(-x*x)
+ * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ * x*sqrt(pi)
+ * We use rational approximation to approximate
+ * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625
+ * Here is the error bound for R1/S1 and R2/S2
+ * |R1/S1 - f(x)| < 2**(-62.57)
+ * |R2/S2 - f(x)| < 2**(-61.52)
+ *
+ * 5. For inf > x >= 28
+ * erf(x) = sign(x) *(1 - tiny) (raise inexact)
+ * erfc(x) = tiny*tiny (raise underflow) if x > 0
+ * = 2 - tiny if x<0
+ *
+ * 7. Special case:
+ * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1,
+ * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ * erfc/erf(NaN) is NaN
+ */
+
+#include <math.h>
+
+//extern "C" {
+
+/* assume 32 bit int */
+
+typedef int int32_t;
+typedef unsigned int u_int32_t;
+
+/* assume little endian */
+typedef union
+{
+ double value;
+ struct
+ {
+ u_int32_t lsw;
+ u_int32_t msw;
+ } parts;
+} ieee_double_shape_type;
+
+
+/* Get the more significant 32 bit int from a double. */
+
+#define GET_HIGH_WORD(i,d) \
+do { \
+ ieee_double_shape_type gh_u; \
+ gh_u.value = (d); \
+ (i) = gh_u.parts.msw; \
+} while (0)
+
+
+/* Set the less significant 32 bits of a double from an int. */
+
+#define SET_LOW_WORD(d,v) \
+do { \
+ ieee_double_shape_type sl_u; \
+ sl_u.value = (d); \
+ sl_u.parts.lsw = (v); \
+ (d) = sl_u.value; \
+} while (0)
+
+
+/* Eliminate reference to internal OpenBSD call */
+
+#define __ieee754_exp(X) exp(X)
+
+
+static const double
+tiny = 1e-300,
+half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
+ /* c = (float)0.84506291151 */
+erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */
+/*
+ * Coefficients for approximation to erf on [0,0.84375]
+ */
+efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */
+efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */
+pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */
+pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */
+pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */
+pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */
+pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */
+qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */
+qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */
+qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
+qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
+qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
+/*
+ * Coefficients for approximation to erf in [0.84375,1.25]
+ */
+pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
+pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
+pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */
+pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */
+pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */
+pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */
+pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */
+qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */
+qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */
+qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */
+qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */
+qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */
+qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */
+/*
+ * Coefficients for approximation to erfc in [1.25,1/0.35]
+ */
+ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */
+ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */
+ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */
+ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */
+ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */
+ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */
+ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */
+ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */
+sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */
+sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */
+sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */
+sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */
+sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */
+sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */
+sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */
+sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */
+/*
+ * Coefficients for approximation to erfc in [1/.35,28]
+ */
+rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */
+rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */
+rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */
+rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */
+rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */
+rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */
+rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */
+sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */
+sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */
+sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */
+sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */
+sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */
+sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */
+sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
+
+ double erf(double x)
+{
+ int32_t hx,ix,i;
+ double R,S,P,Q,s,y,z,r;
+ GET_HIGH_WORD(hx,x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) { /* erf(nan)=nan */
+ i = ((u_int32_t)hx>>31)<<1;
+ return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */
+ }
+
+ if(ix < 0x3feb0000) { /* |x|<0.84375 */
+ if(ix < 0x3e300000) { /* |x|<2**-28 */
+ if (ix < 0x00800000)
+ return 0.125*(8.0*x+efx8*x); /*avoid underflow */
+ return x + efx*x;
+ }
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ return x + x*y;
+ }
+ if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabs(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) return erx + P/Q; else return -erx - P/Q;
+ }
+ if (ix >= 0x40180000) { /* inf>|x|>=6 */
+ if(hx>=0) return one-tiny; else return tiny-one;
+ }
+ x = fabs(x);
+ s = one/(x*x);
+ if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/0.35 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ z = x;
+ SET_LOW_WORD(z,0);
+ r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
+ if(hx>=0) return one-r/x; else return r/x-one;
+}
+
+ double erfc(double x)
+{
+ int32_t hx,ix;
+ double R,S,P,Q,s,y,z,r;
+ GET_HIGH_WORD(hx,x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) { /* erfc(nan)=nan */
+ /* erfc(+-inf)=0,2 */
+ return (double)(((u_int32_t)hx>>31)<<1)+one/x;
+ }
+
+ if(ix < 0x3feb0000) { /* |x|<0.84375 */
+ if(ix < 0x3c700000) /* |x|<2**-56 */
+ return one-x;
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ if(hx < 0x3fd00000) { /* x<1/4 */
+ return one-(x+x*y);
+ } else {
+ r = x*y;
+ r += (x-half);
+ return half - r ;
+ }
+ }
+ if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabs(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) {
+ z = one-erx; return z - P/Q;
+ } else {
+ z = erx+P/Q; return one+z;
+ }
+ }
+ if (ix < 0x403c0000) { /* |x|<28 */
+ x = fabs(x);
+ s = one/(x*x);
+ if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/.35 ~ 2.857143 */
+ if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ z = x;
+ SET_LOW_WORD(z,0);
+ r = __ieee754_exp(-z*z-0.5625)*
+ __ieee754_exp((z-x)*(z+x)+R/S);
+ if(hx>0) return r/x; else return two-r/x;
+ } else {
+ if(hx>0) return tiny*tiny; else return two-tiny;
+ }
+}
+
+//}
diff --git a/src/WINDOWS/extra/fftw2/FFTW2dll.dll b/src/WINDOWS/extra/fftw2/FFTW2dll.dll
new file mode 100644
index 000000000..1b4755e8c
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/FFTW2dll.dll differ
diff --git a/src/WINDOWS/extra/fftw2/FFTW2dll.lib b/src/WINDOWS/extra/fftw2/FFTW2dll.lib
new file mode 100644
index 000000000..d494b6d34
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/FFTW2dll.lib differ
diff --git a/src/WINDOWS/extra/fftw2/FFTW2st.lib b/src/WINDOWS/extra/fftw2/FFTW2st.lib
new file mode 100644
index 000000000..8193ba975
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/FFTW2st.lib differ
diff --git a/src/WINDOWS/extra/fftw2/RFFTW2dll.dll b/src/WINDOWS/extra/fftw2/RFFTW2dll.dll
new file mode 100644
index 000000000..c1f5652a6
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/RFFTW2dll.dll differ
diff --git a/src/WINDOWS/extra/fftw2/RFFTW2dll.lib b/src/WINDOWS/extra/fftw2/RFFTW2dll.lib
new file mode 100644
index 000000000..ce0acda6f
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/RFFTW2dll.lib differ
diff --git a/src/WINDOWS/extra/fftw2/RFFTW2st.lib b/src/WINDOWS/extra/fftw2/RFFTW2st.lib
new file mode 100644
index 000000000..b9d6eddb0
Binary files /dev/null and b/src/WINDOWS/extra/fftw2/RFFTW2st.lib differ
diff --git a/src/WINDOWS/extra/fftw2/fftw.h b/src/WINDOWS/extra/fftw2/fftw.h
new file mode 100644
index 000000000..75039c778
--- /dev/null
+++ b/src/WINDOWS/extra/fftw2/fftw.h
@@ -0,0 +1,421 @@
+/* -*- C -*- */
+/*
+ * Copyright (c) 1997-1999, 2003 Massachusetts Institute of Technology
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+/* fftw.h -- system-wide definitions */
+/* $Id: fftw.h,v 1.1 2011/06/10 17:15:07 morozov Exp $ */
+
+#ifndef FFTW_H
+#define FFTW_H
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Define for using single precision */
+/*
+ * If you can, use configure --enable-float instead of changing this
+ * flag directly
+ */
+/* #undef FFTW_ENABLE_FLOAT */
+
+/* our real numbers */
+#ifdef FFTW_ENABLE_FLOAT
+typedef float fftw_real;
+#else
+typedef double fftw_real;
+#endif
+
+/*********************************************
+ * Complex numbers and operations
+ *********************************************/
+typedef struct {
+ fftw_real re, im;
+} fftw_complex;
+#define c_re(c) ((c).re)
+#define c_im(c) ((c).im)
+
+typedef enum {
+ FFTW_FORWARD = -1, FFTW_BACKWARD = 1
+} fftw_direction;
+
+/* backward compatibility with FFTW-1.3 */
+typedef fftw_complex FFTW_COMPLEX;
+typedef fftw_real FFTW_REAL;
+
+#ifndef FFTW_1_0_COMPATIBILITY
+#define FFTW_1_0_COMPATIBILITY 0
+#endif
+
+#if FFTW_1_0_COMPATIBILITY
+/* backward compatibility with FFTW-1.0 */
+#define REAL fftw_real
+#define COMPLEX fftw_complex
+#endif
+
+/*********************************************
+ * Success or failure status
+ *********************************************/
+
+typedef enum {
+ FFTW_SUCCESS = 0, FFTW_FAILURE = -1
+} fftw_status;
+
+/*********************************************
+ * Codelets
+ *********************************************/
+typedef void (fftw_notw_codelet)
+ (const fftw_complex *, fftw_complex *, int, int);
+typedef void (fftw_twiddle_codelet)
+ (fftw_complex *, const fftw_complex *, int,
+ int, int);
+typedef void (fftw_generic_codelet)
+ (fftw_complex *, const fftw_complex *, int,
+ int, int, int);
+typedef void (fftw_real2hc_codelet)
+ (const fftw_real *, fftw_real *, fftw_real *,
+ int, int, int);
+typedef void (fftw_hc2real_codelet)
+ (const fftw_real *, const fftw_real *,
+ fftw_real *, int, int, int);
+typedef void (fftw_hc2hc_codelet)
+ (fftw_real *, const fftw_complex *,
+ int, int, int);
+typedef void (fftw_rgeneric_codelet)
+ (fftw_real *, const fftw_complex *, int,
+ int, int, int);
+
+/*********************************************
+ * Configurations
+ *********************************************/
+/*
+ * A configuration is a database of all known codelets
+ */
+
+enum fftw_node_type {
+ FFTW_NOTW, FFTW_TWIDDLE, FFTW_GENERIC, FFTW_RADER,
+ FFTW_REAL2HC, FFTW_HC2REAL, FFTW_HC2HC, FFTW_RGENERIC
+};
+
+/* description of a codelet */
+typedef struct {
+ const char *name; /* name of the codelet */
+ void (*codelet) (); /* pointer to the codelet itself */
+ int size; /* size of the codelet */
+ fftw_direction dir; /* direction */
+ enum fftw_node_type type; /* TWIDDLE or NO_TWIDDLE */
+ int signature; /* unique id */
+ int ntwiddle; /* number of twiddle factors */
+ const int *twiddle_order; /*
+ * array that determines the order
+ * in which the codelet expects
+ * the twiddle factors
+ */
+} fftw_codelet_desc;
+
+/* On Win32, you need to do funny things to access global variables
+ in shared libraries. Thanks to Andrew Sterian for this hack. */
+#ifdef HAVE_WIN32
+# if defined(BUILD_FFTW_DLL)
+# define DL_IMPORT(type) __declspec(dllexport) type
+# elif defined(USE_FFTW_DLL)
+# define DL_IMPORT(type) __declspec(dllimport) type
+# else
+# define DL_IMPORT(type) type
+# endif
+#else
+# define DL_IMPORT(type) type
+#endif
+
+extern DL_IMPORT(const char *) fftw_version;
+
+/*****************************
+ * Plans
+ *****************************/
+/*
+ * A plan is a sequence of reductions to compute a FFT of
+ * a given size. At each step, the FFT algorithm can:
+ *
+ * 1) apply a notw codelet, or
+ * 2) recurse and apply a twiddle codelet, or
+ * 3) apply the generic codelet.
+ */
+
+/* structure that contains twiddle factors */
+typedef struct fftw_twiddle_struct {
+ int n;
+ const fftw_codelet_desc *cdesc;
+ fftw_complex *twarray;
+ struct fftw_twiddle_struct *next;
+ int refcnt;
+} fftw_twiddle;
+
+typedef struct fftw_rader_data_struct {
+ struct fftw_plan_struct *plan;
+ fftw_complex *omega;
+ int g, ginv;
+ int p, flags, refcount;
+ struct fftw_rader_data_struct *next;
+ fftw_codelet_desc *cdesc;
+} fftw_rader_data;
+
+typedef void (fftw_rader_codelet)
+ (fftw_complex *, const fftw_complex *, int,
+ int, int, fftw_rader_data *);
+
+/* structure that holds all the data needed for a given step */
+typedef struct fftw_plan_node_struct {
+ enum fftw_node_type type;
+
+ union {
+ /* nodes of type FFTW_NOTW */
+ struct {
+ int size;
+ fftw_notw_codelet *codelet;
+ const fftw_codelet_desc *codelet_desc;
+ } notw;
+
+ /* nodes of type FFTW_TWIDDLE */
+ struct {
+ int size;
+ fftw_twiddle_codelet *codelet;
+ fftw_twiddle *tw;
+ struct fftw_plan_node_struct *recurse;
+ const fftw_codelet_desc *codelet_desc;
+ } twiddle;
+
+ /* nodes of type FFTW_GENERIC */
+ struct {
+ int size;
+ fftw_generic_codelet *codelet;
+ fftw_twiddle *tw;
+ struct fftw_plan_node_struct *recurse;
+ } generic;
+
+ /* nodes of type FFTW_RADER */
+ struct {
+ int size;
+ fftw_rader_codelet *codelet;
+ fftw_rader_data *rader_data;
+ fftw_twiddle *tw;
+ struct fftw_plan_node_struct *recurse;
+ } rader;
+
+ /* nodes of type FFTW_REAL2HC */
+ struct {
+ int size;
+ fftw_real2hc_codelet *codelet;
+ const fftw_codelet_desc *codelet_desc;
+ } real2hc;
+
+ /* nodes of type FFTW_HC2REAL */
+ struct {
+ int size;
+ fftw_hc2real_codelet *codelet;
+ const fftw_codelet_desc *codelet_desc;
+ } hc2real;
+
+ /* nodes of type FFTW_HC2HC */
+ struct {
+ int size;
+ fftw_direction dir;
+ fftw_hc2hc_codelet *codelet;
+ fftw_twiddle *tw;
+ struct fftw_plan_node_struct *recurse;
+ const fftw_codelet_desc *codelet_desc;
+ } hc2hc;
+
+ /* nodes of type FFTW_RGENERIC */
+ struct {
+ int size;
+ fftw_direction dir;
+ fftw_rgeneric_codelet *codelet;
+ fftw_twiddle *tw;
+ struct fftw_plan_node_struct *recurse;
+ } rgeneric;
+ } nodeu;
+
+ int refcnt;
+} fftw_plan_node;
+
+typedef enum {
+ FFTW_NORMAL_RECURSE = 0,
+ FFTW_VECTOR_RECURSE = 1
+} fftw_recurse_kind;
+
+struct fftw_plan_struct {
+ int n;
+ int refcnt;
+ fftw_direction dir;
+ int flags;
+ int wisdom_signature;
+ enum fftw_node_type wisdom_type;
+ struct fftw_plan_struct *next;
+ fftw_plan_node *root;
+ double cost;
+ fftw_recurse_kind recurse_kind;
+ int vector_size;
+};
+
+typedef struct fftw_plan_struct *fftw_plan;
+
+/* flags for the planner */
+#define FFTW_ESTIMATE (0)
+#define FFTW_MEASURE (1)
+
+#define FFTW_OUT_OF_PLACE (0)
+#define FFTW_IN_PLACE (8)
+#define FFTW_USE_WISDOM (16)
+
+#define FFTW_THREADSAFE (128) /* guarantee plan is read-only so that the
+ same plan can be used in parallel by
+ multiple threads */
+
+#define FFTWND_FORCE_BUFFERED (256) /* internal flag, forces buffering
+ in fftwnd transforms */
+
+#define FFTW_NO_VECTOR_RECURSE (512) /* internal flag, prevents use
+ of vector recursion */
+
+extern fftw_plan fftw_create_plan_specific(int n, fftw_direction dir,
+ int flags,
+ fftw_complex *in, int istride,
+ fftw_complex *out, int ostride);
+#define FFTW_HAS_PLAN_SPECIFIC
+extern fftw_plan fftw_create_plan(int n, fftw_direction dir, int flags);
+extern void fftw_print_plan(fftw_plan plan);
+extern void fftw_destroy_plan(fftw_plan plan);
+extern void fftw(fftw_plan plan, int howmany, fftw_complex *in, int istride,
+ int idist, fftw_complex *out, int ostride, int odist);
+extern void fftw_one(fftw_plan plan, fftw_complex *in, fftw_complex *out);
+extern void fftw_die(const char *s);
+extern void *fftw_malloc(size_t n);
+extern void fftw_free(void *p);
+extern void fftw_check_memory_leaks(void);
+extern void fftw_print_max_memory_usage(void);
+
+typedef void *(*fftw_malloc_type_function) (size_t n);
+typedef void (*fftw_free_type_function) (void *p);
+typedef void (*fftw_die_type_function) (const char *errString);
+extern DL_IMPORT(fftw_malloc_type_function) fftw_malloc_hook;
+extern DL_IMPORT(fftw_free_type_function) fftw_free_hook;
+extern DL_IMPORT(fftw_die_type_function) fftw_die_hook;
+
+extern size_t fftw_sizeof_fftw_real(void);
+
+/* Wisdom: */
+/*
+ * define this symbol so that users know we are using a version of FFTW
+ * with wisdom
+ */
+#define FFTW_HAS_WISDOM
+extern void fftw_forget_wisdom(void);
+extern void fftw_export_wisdom(void (*emitter) (char c, void *), void *data);
+extern fftw_status fftw_import_wisdom(int (*g) (void *), void *data);
+extern void fftw_export_wisdom_to_file(FILE *output_file);
+extern fftw_status fftw_import_wisdom_from_file(FILE *input_file);
+extern char *fftw_export_wisdom_to_string(void);
+extern fftw_status fftw_import_wisdom_from_string(const char *input_string);
+
+/*
+ * define symbol so we know this function is available (it is not in
+ * older FFTWs)
+ */
+#define FFTW_HAS_FPRINT_PLAN
+extern void fftw_fprint_plan(FILE *f, fftw_plan plan);
+
+/*****************************
+ * N-dimensional code
+ *****************************/
+typedef struct {
+ int is_in_place; /* 1 if for in-place FFTs, 0 otherwise */
+
+ int rank; /*
+ * the rank (number of dimensions) of the
+ * array to be FFTed
+ */
+ int *n; /*
+ * the dimensions of the array to the
+ * FFTed
+ */
+ fftw_direction dir;
+
+ int *n_before; /*
+ * n_before[i] = product of n[j] for j < i
+ */
+ int *n_after; /* n_after[i] = product of n[j] for j > i */
+
+ fftw_plan *plans; /* 1d fftw plans for each dimension */
+
+ int nbuffers, nwork;
+ fftw_complex *work; /*
+ * work array big enough to hold
+ * nbuffers+1 of the largest dimension
+ * (has nwork elements)
+ */
+} fftwnd_data;
+
+typedef fftwnd_data *fftwnd_plan;
+
+/* Initializing the FFTWND plan: */
+extern fftwnd_plan fftw2d_create_plan(int nx, int ny, fftw_direction dir,
+ int flags);
+extern fftwnd_plan fftw3d_create_plan(int nx, int ny, int nz,
+ fftw_direction dir, int flags);
+extern fftwnd_plan fftwnd_create_plan(int rank, const int *n,
+ fftw_direction dir,
+ int flags);
+
+extern fftwnd_plan fftw2d_create_plan_specific(int nx, int ny,
+ fftw_direction dir,
+ int flags,
+ fftw_complex *in, int istride,
+ fftw_complex *out, int ostride);
+extern fftwnd_plan fftw3d_create_plan_specific(int nx, int ny, int nz,
+ fftw_direction dir, int flags,
+ fftw_complex *in, int istride,
+ fftw_complex *out, int ostride);
+extern fftwnd_plan fftwnd_create_plan_specific(int rank, const int *n,
+ fftw_direction dir,
+ int flags,
+ fftw_complex *in, int istride,
+ fftw_complex *out, int ostride);
+
+/* Freeing the FFTWND plan: */
+extern void fftwnd_destroy_plan(fftwnd_plan plan);
+
+/* Printing the plan: */
+extern void fftwnd_fprint_plan(FILE *f, fftwnd_plan p);
+extern void fftwnd_print_plan(fftwnd_plan p);
+#define FFTWND_HAS_PRINT_PLAN
+
+/* Computing the N-Dimensional FFT */
+extern void fftwnd(fftwnd_plan plan, int howmany,
+ fftw_complex *in, int istride, int idist,
+ fftw_complex *out, int ostride, int odist);
+extern void fftwnd_one(fftwnd_plan p, fftw_complex *in, fftw_complex *out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+
+#endif /* __cplusplus */
+#endif /* FFTW_H */
diff --git a/src/WINDOWS/extra/inttypes.h b/src/WINDOWS/extra/inttypes.h
new file mode 100644
index 000000000..25542771f
--- /dev/null
+++ b/src/WINDOWS/extra/inttypes.h
@@ -0,0 +1,305 @@
+// ISO C9x compliant inttypes.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
+// Copyright (c) 2006 Alexander Chemeris
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// 3. The name of the author may be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_INTTYPES_H_ // [
+#define _MSC_INTTYPES_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include "stdint.h"
+
+// 7.8 Format conversion of integer types
+
+typedef struct {
+ intmax_t quot;
+ intmax_t rem;
+} imaxdiv_t;
+
+// 7.8.1 Macros for format specifiers
+
+#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198
+
+// The fprintf macros for signed integers are:
+#define PRId8 "d"
+#define PRIi8 "i"
+#define PRIdLEAST8 "d"
+#define PRIiLEAST8 "i"
+#define PRIdFAST8 "d"
+#define PRIiFAST8 "i"
+
+#define PRId16 "hd"
+#define PRIi16 "hi"
+#define PRIdLEAST16 "hd"
+#define PRIiLEAST16 "hi"
+#define PRIdFAST16 "hd"
+#define PRIiFAST16 "hi"
+
+#define PRId32 "I32d"
+#define PRIi32 "I32i"
+#define PRIdLEAST32 "I32d"
+#define PRIiLEAST32 "I32i"
+#define PRIdFAST32 "I32d"
+#define PRIiFAST32 "I32i"
+
+#define PRId64 "I64d"
+#define PRIi64 "I64i"
+#define PRIdLEAST64 "I64d"
+#define PRIiLEAST64 "I64i"
+#define PRIdFAST64 "I64d"
+#define PRIiFAST64 "I64i"
+
+#define PRIdMAX "I64d"
+#define PRIiMAX "I64i"
+
+#define PRIdPTR "Id"
+#define PRIiPTR "Ii"
+
+// The fprintf macros for unsigned integers are:
+#define PRIo8 "o"
+#define PRIu8 "u"
+#define PRIx8 "x"
+#define PRIX8 "X"
+#define PRIoLEAST8 "o"
+#define PRIuLEAST8 "u"
+#define PRIxLEAST8 "x"
+#define PRIXLEAST8 "X"
+#define PRIoFAST8 "o"
+#define PRIuFAST8 "u"
+#define PRIxFAST8 "x"
+#define PRIXFAST8 "X"
+
+#define PRIo16 "ho"
+#define PRIu16 "hu"
+#define PRIx16 "hx"
+#define PRIX16 "hX"
+#define PRIoLEAST16 "ho"
+#define PRIuLEAST16 "hu"
+#define PRIxLEAST16 "hx"
+#define PRIXLEAST16 "hX"
+#define PRIoFAST16 "ho"
+#define PRIuFAST16 "hu"
+#define PRIxFAST16 "hx"
+#define PRIXFAST16 "hX"
+
+#define PRIo32 "I32o"
+#define PRIu32 "I32u"
+#define PRIx32 "I32x"
+#define PRIX32 "I32X"
+#define PRIoLEAST32 "I32o"
+#define PRIuLEAST32 "I32u"
+#define PRIxLEAST32 "I32x"
+#define PRIXLEAST32 "I32X"
+#define PRIoFAST32 "I32o"
+#define PRIuFAST32 "I32u"
+#define PRIxFAST32 "I32x"
+#define PRIXFAST32 "I32X"
+
+#define PRIo64 "I64o"
+#define PRIu64 "I64u"
+#define PRIx64 "I64x"
+#define PRIX64 "I64X"
+#define PRIoLEAST64 "I64o"
+#define PRIuLEAST64 "I64u"
+#define PRIxLEAST64 "I64x"
+#define PRIXLEAST64 "I64X"
+#define PRIoFAST64 "I64o"
+#define PRIuFAST64 "I64u"
+#define PRIxFAST64 "I64x"
+#define PRIXFAST64 "I64X"
+
+#define PRIoMAX "I64o"
+#define PRIuMAX "I64u"
+#define PRIxMAX "I64x"
+#define PRIXMAX "I64X"
+
+#define PRIoPTR "Io"
+#define PRIuPTR "Iu"
+#define PRIxPTR "Ix"
+#define PRIXPTR "IX"
+
+// The fscanf macros for signed integers are:
+#define SCNd8 "d"
+#define SCNi8 "i"
+#define SCNdLEAST8 "d"
+#define SCNiLEAST8 "i"
+#define SCNdFAST8 "d"
+#define SCNiFAST8 "i"
+
+#define SCNd16 "hd"
+#define SCNi16 "hi"
+#define SCNdLEAST16 "hd"
+#define SCNiLEAST16 "hi"
+#define SCNdFAST16 "hd"
+#define SCNiFAST16 "hi"
+
+#define SCNd32 "ld"
+#define SCNi32 "li"
+#define SCNdLEAST32 "ld"
+#define SCNiLEAST32 "li"
+#define SCNdFAST32 "ld"
+#define SCNiFAST32 "li"
+
+#define SCNd64 "I64d"
+#define SCNi64 "I64i"
+#define SCNdLEAST64 "I64d"
+#define SCNiLEAST64 "I64i"
+#define SCNdFAST64 "I64d"
+#define SCNiFAST64 "I64i"
+
+#define SCNdMAX "I64d"
+#define SCNiMAX "I64i"
+
+#ifdef _WIN64 // [
+# define SCNdPTR "I64d"
+# define SCNiPTR "I64i"
+#else // _WIN64 ][
+# define SCNdPTR "ld"
+# define SCNiPTR "li"
+#endif // _WIN64 ]
+
+// The fscanf macros for unsigned integers are:
+#define SCNo8 "o"
+#define SCNu8 "u"
+#define SCNx8 "x"
+#define SCNX8 "X"
+#define SCNoLEAST8 "o"
+#define SCNuLEAST8 "u"
+#define SCNxLEAST8 "x"
+#define SCNXLEAST8 "X"
+#define SCNoFAST8 "o"
+#define SCNuFAST8 "u"
+#define SCNxFAST8 "x"
+#define SCNXFAST8 "X"
+
+#define SCNo16 "ho"
+#define SCNu16 "hu"
+#define SCNx16 "hx"
+#define SCNX16 "hX"
+#define SCNoLEAST16 "ho"
+#define SCNuLEAST16 "hu"
+#define SCNxLEAST16 "hx"
+#define SCNXLEAST16 "hX"
+#define SCNoFAST16 "ho"
+#define SCNuFAST16 "hu"
+#define SCNxFAST16 "hx"
+#define SCNXFAST16 "hX"
+
+#define SCNo32 "lo"
+#define SCNu32 "lu"
+#define SCNx32 "lx"
+#define SCNX32 "lX"
+#define SCNoLEAST32 "lo"
+#define SCNuLEAST32 "lu"
+#define SCNxLEAST32 "lx"
+#define SCNXLEAST32 "lX"
+#define SCNoFAST32 "lo"
+#define SCNuFAST32 "lu"
+#define SCNxFAST32 "lx"
+#define SCNXFAST32 "lX"
+
+#define SCNo64 "I64o"
+#define SCNu64 "I64u"
+#define SCNx64 "I64x"
+#define SCNX64 "I64X"
+#define SCNoLEAST64 "I64o"
+#define SCNuLEAST64 "I64u"
+#define SCNxLEAST64 "I64x"
+#define SCNXLEAST64 "I64X"
+#define SCNoFAST64 "I64o"
+#define SCNuFAST64 "I64u"
+#define SCNxFAST64 "I64x"
+#define SCNXFAST64 "I64X"
+
+#define SCNoMAX "I64o"
+#define SCNuMAX "I64u"
+#define SCNxMAX "I64x"
+#define SCNXMAX "I64X"
+
+#ifdef _WIN64 // [
+# define SCNoPTR "I64o"
+# define SCNuPTR "I64u"
+# define SCNxPTR "I64x"
+# define SCNXPTR "I64X"
+#else // _WIN64 ][
+# define SCNoPTR "lo"
+# define SCNuPTR "lu"
+# define SCNxPTR "lx"
+# define SCNXPTR "lX"
+#endif // _WIN64 ]
+
+#endif // __STDC_FORMAT_MACROS ]
+
+// 7.8.2 Functions for greatest-width integer types
+
+// 7.8.2.1 The imaxabs function
+#define imaxabs _abs64
+
+// 7.8.2.2 The imaxdiv function
+
+// This is modified version of div() function from Microsoft's div.c found
+// in %MSVC.NET%\crt\src\div.c
+#ifdef STATIC_IMAXDIV // [
+static
+#else // STATIC_IMAXDIV ][
+_inline
+#endif // STATIC_IMAXDIV ]
+imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
+{
+ imaxdiv_t result;
+
+ result.quot = numer / denom;
+ result.rem = numer % denom;
+
+ if (numer < 0 && result.rem > 0) {
+ // did division wrong; must fix up
+ ++result.quot;
+ result.rem -= denom;
+ }
+
+ return result;
+}
+
+// 7.8.2.3 The strtoimax and strtoumax functions
+#define strtoimax _strtoi64
+#define strtoumax _strtoui64
+
+// 7.8.2.4 The wcstoimax and wcstoumax functions
+#define wcstoimax _wcstoi64
+#define wcstoumax _wcstoui64
+
+
+#endif // _MSC_INTTYPES_H_ ]
diff --git a/src/MAKE/Windows/sleep.cpp b/src/WINDOWS/extra/sleep.cpp
similarity index 91%
rename from src/MAKE/Windows/sleep.cpp
rename to src/WINDOWS/extra/sleep.cpp
index d9ce7508b..f2a87041e 100644
--- a/src/MAKE/Windows/sleep.cpp
+++ b/src/WINDOWS/extra/sleep.cpp
@@ -1,10 +1,10 @@
-#include "sleep.h"
-#include "windows.h"
-
-void usleep (int x)
-{
- int y = x;
- y = x/1000;
-
- Sleep(y);
-}
+#include "sleep.h"
+#include "windows.h"
+
+void usleep (int x)
+{
+ int y = x;
+ y = x/1000;
+
+ Sleep(y);
+}
diff --git a/src/MAKE/Windows/sleep.h b/src/WINDOWS/extra/sleep.h
similarity index 95%
rename from src/MAKE/Windows/sleep.h
rename to src/WINDOWS/extra/sleep.h
index f58e0cdd6..3716fc386 100644
--- a/src/MAKE/Windows/sleep.h
+++ b/src/WINDOWS/extra/sleep.h
@@ -1 +1 @@
-void usleep(int x);
+void usleep(int x);
diff --git a/src/WINDOWS/extra/stdint.h b/src/WINDOWS/extra/stdint.h
new file mode 100644
index 000000000..59d067302
--- /dev/null
+++ b/src/WINDOWS/extra/stdint.h
@@ -0,0 +1,247 @@
+// ISO C9x compliant stdint.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
+// Copyright (c) 2006-2008 Alexander Chemeris
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// 3. The name of the author may be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_STDINT_H_ // [
+#define _MSC_STDINT_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <limits.h>
+
+// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
+// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
+// or compiler give many errors like this:
+// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
+#ifdef __cplusplus
+extern "C" {
+#endif
+# include <wchar.h>
+#ifdef __cplusplus
+}
+#endif
+
+// Define _W64 macros to mark types changing their size, like intptr_t.
+#ifndef _W64
+# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
+# define _W64 __w64
+# else
+# define _W64
+# endif
+#endif
+
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+// Visual Studio 6 and Embedded Visual C++ 4 doesn't
+// realize that, e.g. char has the same size as __int8
+// so we give up on __intX for them.
+#if (_MSC_VER < 1300)
+ typedef signed char int8_t;
+ typedef signed short int16_t;
+ typedef signed int int32_t;
+ typedef unsigned char uint8_t;
+ typedef unsigned short uint16_t;
+ typedef unsigned int uint32_t;
+#else
+ typedef signed __int8 int8_t;
+ typedef signed __int16 int16_t;
+ typedef signed __int32 int32_t;
+ typedef unsigned __int8 uint8_t;
+ typedef unsigned __int16 uint16_t;
+ typedef unsigned __int32 uint32_t;
+#endif
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+
+// 7.18.1.2 Minimum-width integer types
+typedef int8_t int_least8_t;
+typedef int16_t int_least16_t;
+typedef int32_t int_least32_t;
+typedef int64_t int_least64_t;
+typedef uint8_t uint_least8_t;
+typedef uint16_t uint_least16_t;
+typedef uint32_t uint_least32_t;
+typedef uint64_t uint_least64_t;
+
+// 7.18.1.3 Fastest minimum-width integer types
+typedef int8_t int_fast8_t;
+typedef int16_t int_fast16_t;
+typedef int32_t int_fast32_t;
+typedef int64_t int_fast64_t;
+typedef uint8_t uint_fast8_t;
+typedef uint16_t uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+typedef uint64_t uint_fast64_t;
+
+// 7.18.1.4 Integer types capable of holding object pointers
+#ifdef _WIN64 // [
+ typedef signed __int64 intptr_t;
+ typedef unsigned __int64 uintptr_t;
+#else // _WIN64 ][
+ typedef _W64 signed int intptr_t;
+ typedef _W64 unsigned int uintptr_t;
+#endif // _WIN64 ]
+
+// 7.18.1.5 Greatest-width integer types
+typedef int64_t intmax_t;
+typedef uint64_t uintmax_t;
+
+
+// 7.18.2 Limits of specified-width integer types
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
+
+// 7.18.2.1 Limits of exact-width integer types
+#define INT8_MIN ((int8_t)_I8_MIN)
+#define INT8_MAX _I8_MAX
+#define INT16_MIN ((int16_t)_I16_MIN)
+#define INT16_MAX _I16_MAX
+#define INT32_MIN ((int32_t)_I32_MIN)
+#define INT32_MAX _I32_MAX
+#define INT64_MIN ((int64_t)_I64_MIN)
+#define INT64_MAX _I64_MAX
+#define UINT8_MAX _UI8_MAX
+#define UINT16_MAX _UI16_MAX
+#define UINT32_MAX _UI32_MAX
+#define UINT64_MAX _UI64_MAX
+
+// 7.18.2.2 Limits of minimum-width integer types
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MIN INT64_MIN
+#define INT_LEAST64_MAX INT64_MAX
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+#define INT_FAST8_MIN INT8_MIN
+#define INT_FAST8_MAX INT8_MAX
+#define INT_FAST16_MIN INT16_MIN
+#define INT_FAST16_MAX INT16_MAX
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MIN INT64_MIN
+#define INT_FAST64_MAX INT64_MAX
+#define UINT_FAST8_MAX UINT8_MAX
+#define UINT_FAST16_MAX UINT16_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+#ifdef _WIN64 // [
+# define INTPTR_MIN INT64_MIN
+# define INTPTR_MAX INT64_MAX
+# define UINTPTR_MAX UINT64_MAX
+#else // _WIN64 ][
+# define INTPTR_MIN INT32_MIN
+# define INTPTR_MAX INT32_MAX
+# define UINTPTR_MAX UINT32_MAX
+#endif // _WIN64 ]
+
+// 7.18.2.5 Limits of greatest-width integer types
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+#define UINTMAX_MAX UINT64_MAX
+
+// 7.18.3 Limits of other integer types
+
+#ifdef _WIN64 // [
+# define PTRDIFF_MIN _I64_MIN
+# define PTRDIFF_MAX _I64_MAX
+#else // _WIN64 ][
+# define PTRDIFF_MIN _I32_MIN
+# define PTRDIFF_MAX _I32_MAX
+#endif // _WIN64 ]
+
+#define SIG_ATOMIC_MIN INT_MIN
+#define SIG_ATOMIC_MAX INT_MAX
+
+#ifndef SIZE_MAX // [
+# ifdef _WIN64 // [
+# define SIZE_MAX _UI64_MAX
+# else // _WIN64 ][
+# define SIZE_MAX _UI32_MAX
+# endif // _WIN64 ]
+#endif // SIZE_MAX ]
+
+// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
+#ifndef WCHAR_MIN // [
+# define WCHAR_MIN 0
+#endif // WCHAR_MIN ]
+#ifndef WCHAR_MAX // [
+# define WCHAR_MAX _UI16_MAX
+#endif // WCHAR_MAX ]
+
+#define WINT_MIN 0
+#define WINT_MAX _UI16_MAX
+
+#endif // __STDC_LIMIT_MACROS ]
+
+
+// 7.18.4 Limits of other integer types
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
+
+// 7.18.4.1 Macros for minimum-width integer constants
+
+#define INT8_C(val) val##i8
+#define INT16_C(val) val##i16
+#define INT32_C(val) val##i32
+#define INT64_C(val) val##i64
+
+#define UINT8_C(val) val##ui8
+#define UINT16_C(val) val##ui16
+#define UINT32_C(val) val##ui32
+#define UINT64_C(val) val##ui64
+
+// 7.18.4.2 Macros for greatest-width integer constants
+#define INTMAX_C INT64_C
+#define UINTMAX_C UINT64_C
+
+#endif // __STDC_CONSTANT_MACROS ]
+
+
+#endif // _MSC_STDINT_H_ ]
diff --git a/src/WINDOWS/extra/sys/time.h b/src/WINDOWS/extra/sys/time.h
new file mode 100644
index 000000000..92ad18d64
--- /dev/null
+++ b/src/WINDOWS/extra/sys/time.h
@@ -0,0 +1,35 @@
+#ifndef GETTIMEOFDAY_H
+#define GETTIMEOFDAY_H
+
+//#include <config.h>
+#include <sys/timeb.h>
+//#include "../include/time.h"
+
+
+struct timeval
+{
+ time_t tv_sec;
+ time_t tv_usec;
+};
+
+
+
+
+
+
+
+inline int gettimeofday(struct timeval *tp, void *tzp)
+{
+
+ struct _timeb timebuffer;
+
+ _ftime(&timebuffer);
+ tp->tv_sec = timebuffer.time;
+ tp->tv_usec = timebuffer.millitm * 1000;
+
+ return 0;
+
+
+}
+
+#endif /* GETTIMEOFDAY_H */
\ No newline at end of file
diff --git a/src/WINDOWS/extra/unistd.h b/src/WINDOWS/extra/unistd.h
new file mode 100644
index 000000000..216ff3206
--- /dev/null
+++ b/src/WINDOWS/extra/unistd.h
@@ -0,0 +1 @@
+# include <direct.h>
\ No newline at end of file
diff --git a/src/WINDOWS/settings_awpmd/style_angle.h b/src/WINDOWS/settings_awpmd/style_angle.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/WINDOWS/settings_awpmd/style_atom.h b/src/WINDOWS/settings_awpmd/style_atom.h
new file mode 100644
index 000000000..7d7a2f331
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_atom.h
@@ -0,0 +1,6 @@
+#include "atom_vec_atomic.h"
+#include "atom_vec_charge.h"
+#include "atom_vec_ellipsoid.h"
+#include "atom_vec_hybrid.h"
+#include "atom_vec_sphere.h"
+#include "USER-AWPMD/atom_vec_wavepacket.h"
diff --git a/src/WINDOWS/settings_awpmd/style_bond.h b/src/WINDOWS/settings_awpmd/style_bond.h
new file mode 100644
index 000000000..01e347451
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_bond.h
@@ -0,0 +1 @@
+#include "bond_hybrid.h"
diff --git a/src/WINDOWS/settings_awpmd/style_command.h b/src/WINDOWS/settings_awpmd/style_command.h
new file mode 100644
index 000000000..92e847de8
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_command.h
@@ -0,0 +1,15 @@
+#include "change_box.h"
+#include "create_atoms.h"
+#include "create_box.h"
+#include "delete_atoms.h"
+#include "delete_bonds.h"
+#include "displace_atoms.h"
+#include "displace_box.h"
+#include "minimize.h"
+#include "read_data.h"
+#include "read_restart.h"
+#include "replicate.h"
+#include "run.h"
+#include "set.h"
+#include "velocity.h"
+#include "write_restart.h"
diff --git a/src/WINDOWS/settings_awpmd/style_compute.h b/src/WINDOWS/settings_awpmd/style_compute.h
new file mode 100644
index 000000000..e5a287a8f
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_compute.h
@@ -0,0 +1,43 @@
+#include "compute_angle_local.h"
+#include "compute_atom_molecule.h"
+#include "compute_bond_local.h"
+#include "compute_centro_atom.h"
+#include "compute_cluster_atom.h"
+#include "compute_cna_atom.h"
+#include "compute_com.h"
+#include "compute_com_molecule.h"
+#include "compute_coord_atom.h"
+#include "compute_dihedral_local.h"
+#include "compute_displace_atom.h"
+#include "compute_erotate_sphere.h"
+#include "compute_group_group.h"
+#include "compute_gyration.h"
+#include "compute_gyration_molecule.h"
+#include "compute_heat_flux.h"
+#include "compute_improper_local.h"
+#include "compute_ke_atom.h"
+#include "compute_ke.h"
+#include "compute_msd.h"
+#include "compute_msd_molecule.h"
+#include "compute_pair.h"
+#include "compute_pair_local.h"
+#include "compute_pe_atom.h"
+#include "compute_pe.h"
+#include "compute_pressure.h"
+#include "compute_property_atom.h"
+#include "compute_property_local.h"
+#include "compute_property_molecule.h"
+#include "compute_rdf.h"
+#include "compute_reduce.h"
+#include "compute_reduce_region.h"
+#include "compute_slice.h"
+#include "compute_stress_atom.h"
+#include "compute_temp_com.h"
+#include "compute_temp_deform.h"
+#include "compute_temp.h"
+#include "compute_temp_partial.h"
+#include "compute_temp_profile.h"
+#include "compute_temp_ramp.h"
+#include "compute_temp_region.h"
+#include "compute_temp_sphere.h"
+#include "compute_ti.h"
diff --git a/src/WINDOWS/settings_awpmd/style_dihedral.h b/src/WINDOWS/settings_awpmd/style_dihedral.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/WINDOWS/settings_awpmd/style_dump.h b/src/WINDOWS/settings_awpmd/style_dump.h
new file mode 100644
index 000000000..41e59f75f
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_dump.h
@@ -0,0 +1,7 @@
+#include "dump_atom.h"
+#include "dump_cfg.h"
+#include "dump_custom.h"
+#include "dump_dcd.h"
+#include "dump_image.h"
+#include "dump_local.h"
+#include "dump_xyz.h"
diff --git a/src/WINDOWS/settings_awpmd/style_fix.h b/src/WINDOWS/settings_awpmd/style_fix.h
new file mode 100644
index 000000000..221935519
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_fix.h
@@ -0,0 +1,67 @@
+#include "fix_adapt.h"
+#include "fix_addforce.h"
+#include "fix_ave_atom.h"
+#include "fix_ave_correlate.h"
+#include "fix_aveforce.h"
+#include "fix_ave_histo.h"
+#include "fix_ave_spatial.h"
+#include "fix_ave_time.h"
+#include "fix_box_relax.h"
+#include "fix_deform.h"
+#include "fix_deposit.h"
+#include "fix_drag.h"
+#include "fix_dt_reset.h"
+#include "fix_efield.h"
+#include "fix_enforce2d.h"
+#include "fix_evaporate.h"
+#include "fix_external.h"
+#include "fix_gravity.h"
+#include "fix_heat.h"
+#include "fix_indent.h"
+#include "fix_langevin.h"
+#include "fix_lineforce.h"
+#include "fix_minimize.h"
+#include "fix_momentum.h"
+#include "fix_move.h"
+#include "fix_nph.h"
+#include "fix_nph_sphere.h"
+#include "fix_npt.h"
+#include "fix_npt_sphere.h"
+#include "USER-AWPMD/fix_nve_awpmd.h"
+#include "fix_nve.h"
+#include "fix_nve_limit.h"
+#include "fix_nve_noforce.h"
+#include "fix_nve_sphere.h"
+#include "fix_nvt.h"
+#include "fix_nvt_sllod.h"
+#include "fix_nvt_sphere.h"
+#include "fix_orient_fcc.h"
+#include "fix_planeforce.h"
+#include "fix_press_berendsen.h"
+#include "fix_print.h"
+#include "fix_read_restart.h"
+#include "fix_recenter.h"
+#include "fix_respa.h"
+#include "fix_rigid.h"
+#include "fix_rigid_nve.h"
+#include "fix_rigid_nvt.h"
+#include "fix_setforce.h"
+#include "fix_shake.h"
+#include "fix_shear_history.h"
+#include "fix_spring.h"
+#include "fix_spring_rg.h"
+#include "fix_spring_self.h"
+#include "fix_store_force.h"
+#include "fix_store_state.h"
+#include "fix_temp_berendsen.h"
+#include "fix_temp_rescale.h"
+#include "fix_thermal_conductivity.h"
+#include "fix_tmd.h"
+#include "fix_ttm.h"
+#include "fix_viscosity.h"
+#include "fix_viscous.h"
+#include "fix_wall_harmonic.h"
+#include "fix_wall_lj126.h"
+#include "fix_wall_lj93.h"
+#include "fix_wall_reflect.h"
+#include "fix_wall_region.h"
diff --git a/src/WINDOWS/settings_awpmd/style_improper.h b/src/WINDOWS/settings_awpmd/style_improper.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/WINDOWS/settings_awpmd/style_integrate.h b/src/WINDOWS/settings_awpmd/style_integrate.h
new file mode 100644
index 000000000..99ce35583
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_integrate.h
@@ -0,0 +1,2 @@
+#include "respa.h"
+#include "verlet.h"
diff --git a/src/WINDOWS/settings_awpmd/style_kspace.h b/src/WINDOWS/settings_awpmd/style_kspace.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/WINDOWS/settings_awpmd/style_minimize.h b/src/WINDOWS/settings_awpmd/style_minimize.h
new file mode 100644
index 000000000..5e544263a
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_minimize.h
@@ -0,0 +1,5 @@
+#include "min_cg.h"
+#include "min_fire.h"
+#include "min_hftn.h"
+#include "min_quickmin.h"
+#include "min_sd.h"
diff --git a/src/WINDOWS/settings_awpmd/style_pair.h b/src/WINDOWS/settings_awpmd/style_pair.h
new file mode 100644
index 000000000..074b763c8
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_pair.h
@@ -0,0 +1,23 @@
+#include "USER-AWPMD/pair_awpmd_cut.h"
+#include "pair_born.h"
+#include "pair_buck_coul_cut.h"
+#include "pair_buck.h"
+#include "pair_coul_cut.h"
+#include "pair_coul_debye.h"
+#include "pair_dpd.h"
+#include "pair_dpd_tstat.h"
+#include "pair_gauss.h"
+#include "pair_hybrid.h"
+#include "pair_hybrid_overlay.h"
+#include "pair_lj96_cut.h"
+#include "pair_lj_cut_coul_cut.h"
+#include "pair_lj_cut_coul_debye.h"
+#include "pair_lj_cut.h"
+#include "pair_lj_expand.h"
+#include "pair_lj_gromacs_coul_gromacs.h"
+#include "pair_lj_gromacs.h"
+#include "pair_lj_smooth.h"
+#include "pair_morse.h"
+#include "pair_soft.h"
+#include "pair_table.h"
+#include "pair_yukawa.h"
diff --git a/src/WINDOWS/settings_awpmd/style_region.h b/src/WINDOWS/settings_awpmd/style_region.h
new file mode 100644
index 000000000..3fd652579
--- /dev/null
+++ b/src/WINDOWS/settings_awpmd/style_region.h
@@ -0,0 +1,8 @@
+#include "region_block.h"
+#include "region_cone.h"
+#include "region_cylinder.h"
+#include "region_intersect.h"
+#include "region_plane.h"
+#include "region_prism.h"
+#include "region_sphere.h"
+#include "region_union.h"
diff --git a/src/WINDOWS/settings_default/style_angle.h b/src/WINDOWS/settings_default/style_angle.h
new file mode 100644
index 000000000..a1b0ec79f
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_angle.h
@@ -0,0 +1,8 @@
+#include "angle_charmm.h"
+#include "angle_cosine_delta.h"
+#include "angle_cosine.h"
+#include "angle_cosine_periodic.h"
+#include "angle_cosine_squared.h"
+#include "angle_harmonic.h"
+#include "angle_hybrid.h"
+#include "angle_table.h"
diff --git a/src/WINDOWS/settings_default/style_atom.h b/src/WINDOWS/settings_default/style_atom.h
new file mode 100644
index 000000000..209745666
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_atom.h
@@ -0,0 +1,9 @@
+#include "atom_vec_angle.h"
+#include "atom_vec_atomic.h"
+#include "atom_vec_bond.h"
+#include "atom_vec_charge.h"
+#include "atom_vec_ellipsoid.h"
+#include "atom_vec_full.h"
+#include "atom_vec_hybrid.h"
+#include "atom_vec_molecular.h"
+#include "atom_vec_sphere.h"
diff --git a/src/WINDOWS/settings_default/style_bond.h b/src/WINDOWS/settings_default/style_bond.h
new file mode 100644
index 000000000..5cbc80e63
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_bond.h
@@ -0,0 +1,8 @@
+#include "bond_fene_expand.h"
+#include "bond_fene.h"
+#include "bond_harmonic.h"
+#include "bond_hybrid.h"
+#include "bond_morse.h"
+#include "bond_nonlinear.h"
+#include "bond_quartic.h"
+#include "bond_table.h"
diff --git a/src/WINDOWS/settings_default/style_command.h b/src/WINDOWS/settings_default/style_command.h
new file mode 100644
index 000000000..92e847de8
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_command.h
@@ -0,0 +1,15 @@
+#include "change_box.h"
+#include "create_atoms.h"
+#include "create_box.h"
+#include "delete_atoms.h"
+#include "delete_bonds.h"
+#include "displace_atoms.h"
+#include "displace_box.h"
+#include "minimize.h"
+#include "read_data.h"
+#include "read_restart.h"
+#include "replicate.h"
+#include "run.h"
+#include "set.h"
+#include "velocity.h"
+#include "write_restart.h"
diff --git a/src/WINDOWS/settings_default/style_compute.h b/src/WINDOWS/settings_default/style_compute.h
new file mode 100644
index 000000000..e5a287a8f
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_compute.h
@@ -0,0 +1,43 @@
+#include "compute_angle_local.h"
+#include "compute_atom_molecule.h"
+#include "compute_bond_local.h"
+#include "compute_centro_atom.h"
+#include "compute_cluster_atom.h"
+#include "compute_cna_atom.h"
+#include "compute_com.h"
+#include "compute_com_molecule.h"
+#include "compute_coord_atom.h"
+#include "compute_dihedral_local.h"
+#include "compute_displace_atom.h"
+#include "compute_erotate_sphere.h"
+#include "compute_group_group.h"
+#include "compute_gyration.h"
+#include "compute_gyration_molecule.h"
+#include "compute_heat_flux.h"
+#include "compute_improper_local.h"
+#include "compute_ke_atom.h"
+#include "compute_ke.h"
+#include "compute_msd.h"
+#include "compute_msd_molecule.h"
+#include "compute_pair.h"
+#include "compute_pair_local.h"
+#include "compute_pe_atom.h"
+#include "compute_pe.h"
+#include "compute_pressure.h"
+#include "compute_property_atom.h"
+#include "compute_property_local.h"
+#include "compute_property_molecule.h"
+#include "compute_rdf.h"
+#include "compute_reduce.h"
+#include "compute_reduce_region.h"
+#include "compute_slice.h"
+#include "compute_stress_atom.h"
+#include "compute_temp_com.h"
+#include "compute_temp_deform.h"
+#include "compute_temp.h"
+#include "compute_temp_partial.h"
+#include "compute_temp_profile.h"
+#include "compute_temp_ramp.h"
+#include "compute_temp_region.h"
+#include "compute_temp_sphere.h"
+#include "compute_ti.h"
diff --git a/src/WINDOWS/settings_default/style_dihedral.h b/src/WINDOWS/settings_default/style_dihedral.h
new file mode 100644
index 000000000..7cb530fd3
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_dihedral.h
@@ -0,0 +1,6 @@
+#include "dihedral_charmm.h"
+#include "dihedral_harmonic.h"
+#include "dihedral_helix.h"
+#include "dihedral_hybrid.h"
+#include "dihedral_multi_harmonic.h"
+#include "dihedral_opls.h"
diff --git a/src/WINDOWS/settings_default/style_dump.h b/src/WINDOWS/settings_default/style_dump.h
new file mode 100644
index 000000000..41e59f75f
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_dump.h
@@ -0,0 +1,7 @@
+#include "dump_atom.h"
+#include "dump_cfg.h"
+#include "dump_custom.h"
+#include "dump_dcd.h"
+#include "dump_image.h"
+#include "dump_local.h"
+#include "dump_xyz.h"
diff --git a/src/WINDOWS/settings_default/style_fix.h b/src/WINDOWS/settings_default/style_fix.h
new file mode 100644
index 000000000..1b532e713
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_fix.h
@@ -0,0 +1,70 @@
+#include "fix_adapt.h"
+#include "fix_addforce.h"
+#include "fix_ave_atom.h"
+#include "fix_ave_correlate.h"
+#include "fix_aveforce.h"
+#include "fix_ave_histo.h"
+#include "fix_ave_spatial.h"
+#include "fix_ave_time.h"
+#include "fix_bond_break.h"
+#include "fix_bond_create.h"
+#include "fix_bond_swap.h"
+#include "fix_box_relax.h"
+#include "fix_deform.h"
+#include "fix_deposit.h"
+#include "fix_drag.h"
+#include "fix_dt_reset.h"
+#include "fix_efield.h"
+#include "fix_enforce2d.h"
+#include "fix_evaporate.h"
+#include "fix_external.h"
+#include "fix_gravity.h"
+#include "fix_heat.h"
+#include "fix_indent.h"
+#include "fix_langevin.h"
+#include "fix_lineforce.h"
+#include "fix_minimize.h"
+#include "fix_momentum.h"
+#include "fix_move.h"
+#include "fix_nph.h"
+#include "fix_nph_sphere.h"
+#include "fix_npt.h"
+#include "fix_npt_sphere.h"
+#include "fix_nve.h"
+#include "fix_nve_limit.h"
+#include "fix_nve_noforce.h"
+#include "fix_nve_sphere.h"
+#include "fix_nvt.h"
+#include "fix_nvt_sllod.h"
+#include "fix_nvt_sphere.h"
+#include "fix_orient_fcc.h"
+#include "fix_planeforce.h"
+#include "fix_press_berendsen.h"
+#include "fix_print.h"
+#include "fix_qeq_comb.h"
+#include "fix_read_restart.h"
+#include "fix_recenter.h"
+#include "fix_respa.h"
+#include "fix_rigid.h"
+#include "fix_rigid_nve.h"
+#include "fix_rigid_nvt.h"
+#include "fix_setforce.h"
+#include "fix_shake.h"
+#include "fix_shear_history.h"
+#include "fix_spring.h"
+#include "fix_spring_rg.h"
+#include "fix_spring_self.h"
+#include "fix_store_force.h"
+#include "fix_store_state.h"
+#include "fix_temp_berendsen.h"
+#include "fix_temp_rescale.h"
+#include "fix_thermal_conductivity.h"
+#include "fix_tmd.h"
+#include "fix_ttm.h"
+#include "fix_viscosity.h"
+#include "fix_viscous.h"
+#include "fix_wall_harmonic.h"
+#include "fix_wall_lj126.h"
+#include "fix_wall_lj93.h"
+#include "fix_wall_reflect.h"
+#include "fix_wall_region.h"
diff --git a/src/WINDOWS/settings_default/style_improper.h b/src/WINDOWS/settings_default/style_improper.h
new file mode 100644
index 000000000..488d1022c
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_improper.h
@@ -0,0 +1,4 @@
+#include "improper_cvff.h"
+#include "improper_harmonic.h"
+#include "improper_hybrid.h"
+#include "improper_umbrella.h"
diff --git a/src/WINDOWS/settings_default/style_integrate.h b/src/WINDOWS/settings_default/style_integrate.h
new file mode 100644
index 000000000..99ce35583
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_integrate.h
@@ -0,0 +1,2 @@
+#include "respa.h"
+#include "verlet.h"
diff --git a/src/WINDOWS/settings_default/style_kspace.h b/src/WINDOWS/settings_default/style_kspace.h
new file mode 100644
index 000000000..d82b9514d
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_kspace.h
@@ -0,0 +1,3 @@
+#include "ewald.h"
+#include "pppm.h"
+#include "pppm_tip4p.h"
diff --git a/src/WINDOWS/settings_default/style_minimize.h b/src/WINDOWS/settings_default/style_minimize.h
new file mode 100644
index 000000000..5e544263a
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_minimize.h
@@ -0,0 +1,5 @@
+#include "min_cg.h"
+#include "min_fire.h"
+#include "min_hftn.h"
+#include "min_quickmin.h"
+#include "min_sd.h"
diff --git a/src/WINDOWS/settings_default/style_pair.h b/src/WINDOWS/settings_default/style_pair.h
new file mode 100644
index 000000000..f9ff20e4a
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_pair.h
@@ -0,0 +1,42 @@
+#include "pair_airebo.h"
+#include "pair_born_coul_long.h"
+#include "pair_born.h"
+#include "pair_buck_coul_cut.h"
+#include "pair_buck_coul_long.h"
+#include "pair_buck.h"
+#include "pair_comb.h"
+#include "pair_coul_cut.h"
+#include "pair_coul_debye.h"
+#include "pair_coul_long.h"
+#include "pair_dpd.h"
+#include "pair_dpd_tstat.h"
+#include "pair_eam_alloy.h"
+#include "pair_eam_fs.h"
+#include "pair_eam.h"
+#include "pair_eim.h"
+#include "pair_gauss.h"
+#include "pair_hbond_dreiding_lj.h"
+#include "pair_hbond_dreiding_morse.h"
+#include "pair_hybrid.h"
+#include "pair_hybrid_overlay.h"
+#include "pair_lj96_cut.h"
+#include "pair_lj_charmm_coul_charmm.h"
+#include "pair_lj_charmm_coul_charmm_implicit.h"
+#include "pair_lj_charmm_coul_long.h"
+#include "pair_lj_cut_coul_cut.h"
+#include "pair_lj_cut_coul_debye.h"
+#include "pair_lj_cut_coul_long.h"
+#include "pair_lj_cut_coul_long_tip4p.h"
+#include "pair_lj_cut.h"
+#include "pair_lj_expand.h"
+#include "pair_lj_gromacs_coul_gromacs.h"
+#include "pair_lj_gromacs.h"
+#include "pair_lj_smooth.h"
+#include "pair_morse.h"
+#include "pair_rebo.h"
+#include "pair_soft.h"
+#include "pair_sw.h"
+#include "pair_table.h"
+#include "pair_tersoff.h"
+#include "pair_tersoff_zbl.h"
+#include "pair_yukawa.h"
diff --git a/src/WINDOWS/settings_default/style_region.h b/src/WINDOWS/settings_default/style_region.h
new file mode 100644
index 000000000..3fd652579
--- /dev/null
+++ b/src/WINDOWS/settings_default/style_region.h
@@ -0,0 +1,8 @@
+#include "region_block.h"
+#include "region_cone.h"
+#include "region_cylinder.h"
+#include "region_intersect.h"
+#include "region_plane.h"
+#include "region_prism.h"
+#include "region_sphere.h"
+#include "region_union.h"
diff --git a/src/WINDOWS/settings_standard/style_angle.h b/src/WINDOWS/settings_standard/style_angle.h
new file mode 100644
index 000000000..b628a4a11
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_angle.h
@@ -0,0 +1,9 @@
+#include "angle_charmm.h"
+#include "angle_class2.h"
+#include "angle_cosine_delta.h"
+#include "angle_cosine.h"
+#include "angle_cosine_periodic.h"
+#include "angle_cosine_squared.h"
+#include "angle_harmonic.h"
+#include "angle_hybrid.h"
+#include "angle_table.h"
diff --git a/src/WINDOWS/settings_standard/style_atom.h b/src/WINDOWS/settings_standard/style_atom.h
new file mode 100644
index 000000000..0f9bb0562
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_atom.h
@@ -0,0 +1,11 @@
+#include "atom_vec_angle.h"
+#include "atom_vec_atomic.h"
+#include "atom_vec_bond.h"
+#include "atom_vec_charge.h"
+#include "atom_vec_dipole.h"
+#include "atom_vec_ellipsoid.h"
+#include "atom_vec_full.h"
+#include "atom_vec_hybrid.h"
+#include "atom_vec_molecular.h"
+#include "atom_vec_peri.h"
+#include "atom_vec_sphere.h"
diff --git a/src/WINDOWS/settings_standard/style_bond.h b/src/WINDOWS/settings_standard/style_bond.h
new file mode 100644
index 000000000..14fb3951d
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_bond.h
@@ -0,0 +1,9 @@
+#include "bond_class2.h"
+#include "bond_fene_expand.h"
+#include "bond_fene.h"
+#include "bond_harmonic.h"
+#include "bond_hybrid.h"
+#include "bond_morse.h"
+#include "bond_nonlinear.h"
+#include "bond_quartic.h"
+#include "bond_table.h"
diff --git a/src/WINDOWS/settings_standard/style_command.h b/src/WINDOWS/settings_standard/style_command.h
new file mode 100644
index 000000000..92e847de8
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_command.h
@@ -0,0 +1,15 @@
+#include "change_box.h"
+#include "create_atoms.h"
+#include "create_box.h"
+#include "delete_atoms.h"
+#include "delete_bonds.h"
+#include "displace_atoms.h"
+#include "displace_box.h"
+#include "minimize.h"
+#include "read_data.h"
+#include "read_restart.h"
+#include "replicate.h"
+#include "run.h"
+#include "set.h"
+#include "velocity.h"
+#include "write_restart.h"
diff --git a/src/WINDOWS/settings_standard/style_compute.h b/src/WINDOWS/settings_standard/style_compute.h
new file mode 100644
index 000000000..d43b4b3aa
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_compute.h
@@ -0,0 +1,46 @@
+#include "compute_angle_local.h"
+#include "compute_atom_molecule.h"
+#include "compute_bond_local.h"
+#include "compute_centro_atom.h"
+#include "compute_cluster_atom.h"
+#include "compute_cna_atom.h"
+#include "compute_com.h"
+#include "compute_com_molecule.h"
+#include "compute_coord_atom.h"
+#include "compute_damage_atom.h"
+#include "compute_dihedral_local.h"
+#include "compute_displace_atom.h"
+#include "compute_erotate_asphere.h"
+#include "compute_erotate_sphere.h"
+#include "compute_group_group.h"
+#include "compute_gyration.h"
+#include "compute_gyration_molecule.h"
+#include "compute_heat_flux.h"
+#include "compute_improper_local.h"
+#include "compute_ke_atom.h"
+#include "compute_ke.h"
+#include "compute_msd.h"
+#include "compute_msd_molecule.h"
+#include "compute_pair.h"
+#include "compute_pair_local.h"
+#include "compute_pe_atom.h"
+#include "compute_pe.h"
+#include "compute_pressure.h"
+#include "compute_property_atom.h"
+#include "compute_property_local.h"
+#include "compute_property_molecule.h"
+#include "compute_rdf.h"
+#include "compute_reduce.h"
+#include "compute_reduce_region.h"
+#include "compute_slice.h"
+#include "compute_stress_atom.h"
+#include "compute_temp_asphere.h"
+#include "compute_temp_com.h"
+#include "compute_temp_deform.h"
+#include "compute_temp.h"
+#include "compute_temp_partial.h"
+#include "compute_temp_profile.h"
+#include "compute_temp_ramp.h"
+#include "compute_temp_region.h"
+#include "compute_temp_sphere.h"
+#include "compute_ti.h"
diff --git a/src/WINDOWS/settings_standard/style_dihedral.h b/src/WINDOWS/settings_standard/style_dihedral.h
new file mode 100644
index 000000000..002e6e3c4
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_dihedral.h
@@ -0,0 +1,7 @@
+#include "dihedral_charmm.h"
+#include "dihedral_class2.h"
+#include "dihedral_harmonic.h"
+#include "dihedral_helix.h"
+#include "dihedral_hybrid.h"
+#include "dihedral_multi_harmonic.h"
+#include "dihedral_opls.h"
diff --git a/src/WINDOWS/settings_standard/style_dump.h b/src/WINDOWS/settings_standard/style_dump.h
new file mode 100644
index 000000000..41e59f75f
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_dump.h
@@ -0,0 +1,7 @@
+#include "dump_atom.h"
+#include "dump_cfg.h"
+#include "dump_custom.h"
+#include "dump_dcd.h"
+#include "dump_image.h"
+#include "dump_local.h"
+#include "dump_xyz.h"
diff --git a/src/WINDOWS/settings_standard/style_fix.h b/src/WINDOWS/settings_standard/style_fix.h
new file mode 100644
index 000000000..32143fe3f
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_fix.h
@@ -0,0 +1,83 @@
+#include "fix_adapt.h"
+#include "fix_addforce.h"
+#include "fix_ave_atom.h"
+#include "fix_ave_correlate.h"
+#include "fix_aveforce.h"
+#include "fix_ave_histo.h"
+#include "fix_ave_spatial.h"
+#include "fix_ave_time.h"
+#include "fix_bond_break.h"
+#include "fix_bond_create.h"
+#include "fix_bond_swap.h"
+#include "fix_box_relax.h"
+#include "fix_deform.h"
+#include "fix_deposit.h"
+#include "fix_drag.h"
+#include "fix_dt_reset.h"
+#include "fix_efield.h"
+#include "fix_enforce2d.h"
+#include "fix_evaporate.h"
+#include "fix_external.h"
+#include "fix_freeze.h"
+#include "fix_gravity.h"
+#include "fix_heat.h"
+#include "fix_indent.h"
+#include "fix_langevin.h"
+#include "fix_lineforce.h"
+#include "fix_minimize.h"
+#include "fix_momentum.h"
+#include "fix_move.h"
+#include "fix_msst.h"
+#include "fix_nph_asphere.h"
+#include "fix_nph.h"
+#include "fix_nph_sphere.h"
+#include "fix_npt_asphere.h"
+#include "fix_npt.h"
+#include "fix_npt_sphere.h"
+#include "fix_nve_asphere.h"
+#include "fix_nve.h"
+#include "fix_nve_limit.h"
+#include "fix_nve_noforce.h"
+#include "fix_nve_sphere.h"
+#include "fix_nvt_asphere.h"
+#include "fix_nvt.h"
+#include "fix_nvt_sllod.h"
+#include "fix_nvt_sphere.h"
+#include "fix_orient_fcc.h"
+#include "fix_peri_neigh.h"
+#include "fix_planeforce.h"
+#include "fix_poems.h"
+#include "fix_pour.h"
+#include "fix_press_berendsen.h"
+#include "fix_print.h"
+#include "fix_qeq_comb.h"
+#include "fix_read_restart.h"
+#include "fix_recenter.h"
+#include "fix_respa.h"
+#include "fix_rigid.h"
+#include "fix_rigid_nve.h"
+#include "fix_rigid_nvt.h"
+#include "fix_setforce.h"
+#include "fix_shake.h"
+#include "fix_shear_history.h"
+#include "fix_spring.h"
+#include "fix_spring_rg.h"
+#include "fix_spring_self.h"
+#include "fix_srd.h"
+#include "fix_store_force.h"
+#include "fix_store_state.h"
+#include "fix_temp_berendsen.h"
+#include "fix_temp_rescale.h"
+#include "fix_thermal_conductivity.h"
+#include "fix_tmd.h"
+#include "fix_ttm.h"
+#include "fix_viscosity.h"
+#include "fix_viscous.h"
+#include "fix_wall_colloid.h"
+#include "fix_wall_gran.h"
+#include "fix_wall_harmonic.h"
+#include "fix_wall_lj126.h"
+#include "fix_wall_lj93.h"
+#include "fix_wall_reflect.h"
+#include "fix_wall_region.h"
+#include "fix_wall_srd.h"
diff --git a/src/WINDOWS/settings_standard/style_improper.h b/src/WINDOWS/settings_standard/style_improper.h
new file mode 100644
index 000000000..37cc6b983
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_improper.h
@@ -0,0 +1,5 @@
+#include "improper_class2.h"
+#include "improper_cvff.h"
+#include "improper_harmonic.h"
+#include "improper_hybrid.h"
+#include "improper_umbrella.h"
diff --git a/src/WINDOWS/settings_standard/style_integrate.h b/src/WINDOWS/settings_standard/style_integrate.h
new file mode 100644
index 000000000..99ce35583
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_integrate.h
@@ -0,0 +1,2 @@
+#include "respa.h"
+#include "verlet.h"
diff --git a/src/WINDOWS/settings_standard/style_kspace.h b/src/WINDOWS/settings_standard/style_kspace.h
new file mode 100644
index 000000000..d82b9514d
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_kspace.h
@@ -0,0 +1,3 @@
+#include "ewald.h"
+#include "pppm.h"
+#include "pppm_tip4p.h"
diff --git a/src/WINDOWS/settings_standard/style_minimize.h b/src/WINDOWS/settings_standard/style_minimize.h
new file mode 100644
index 000000000..5e544263a
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_minimize.h
@@ -0,0 +1,5 @@
+#include "min_cg.h"
+#include "min_fire.h"
+#include "min_hftn.h"
+#include "min_quickmin.h"
+#include "min_sd.h"
diff --git a/src/WINDOWS/settings_standard/style_pair.h b/src/WINDOWS/settings_standard/style_pair.h
new file mode 100644
index 000000000..eca12bccb
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_pair.h
@@ -0,0 +1,63 @@
+#include "pair_airebo.h"
+#include "pair_born_coul_long.h"
+#include "pair_born.h"
+#include "pair_buck_coul_cut.h"
+#include "pair_buck_coul_long.h"
+#include "pair_buck.h"
+#include "pair_colloid.h"
+#include "pair_comb.h"
+#include "pair_coul_cut.h"
+#include "pair_coul_debye.h"
+#include "pair_coul_long.h"
+#include "pair_dipole_cut.h"
+#include "pair_dpd.h"
+#include "pair_dpd_tstat.h"
+#include "pair_dsmc.h"
+#include "pair_eam_alloy.h"
+#include "pair_eam_alloy_opt.h"
+#include "pair_eam_fs.h"
+#include "pair_eam_fs_opt.h"
+#include "pair_eam.h"
+#include "pair_eam_opt.h"
+#include "pair_eim.h"
+#include "pair_gauss.h"
+#include "pair_gayberne.h"
+#include "pair_gran_hertz_history.h"
+#include "pair_gran_hooke.h"
+#include "pair_gran_hooke_history.h"
+#include "pair_hbond_dreiding_lj.h"
+#include "pair_hbond_dreiding_morse.h"
+#include "pair_hybrid.h"
+#include "pair_hybrid_overlay.h"
+#include "pair_lj96_cut.h"
+#include "pair_lj_charmm_coul_charmm.h"
+#include "pair_lj_charmm_coul_charmm_implicit.h"
+#include "pair_lj_charmm_coul_long.h"
+#include "pair_lj_charmm_coul_long_opt.h"
+#include "pair_lj_class2_coul_cut.h"
+#include "pair_lj_class2_coul_long.h"
+#include "pair_lj_class2.h"
+#include "pair_lj_cut_coul_cut.h"
+#include "pair_lj_cut_coul_debye.h"
+#include "pair_lj_cut_coul_long.h"
+#include "pair_lj_cut_coul_long_tip4p.h"
+#include "pair_lj_cut.h"
+#include "pair_lj_cut_opt.h"
+#include "pair_lj_expand.h"
+#include "pair_lj_gromacs_coul_gromacs.h"
+#include "pair_lj_gromacs.h"
+#include "pair_lj_smooth.h"
+#include "pair_lubricate.h"
+#include "pair_morse.h"
+#include "pair_morse_opt.h"
+#include "pair_peri_lps.h"
+#include "pair_peri_pmb.h"
+#include "pair_rebo.h"
+#include "pair_resquared.h"
+#include "pair_soft.h"
+#include "pair_sw.h"
+#include "pair_table.h"
+#include "pair_tersoff.h"
+#include "pair_tersoff_zbl.h"
+#include "pair_yukawa_colloid.h"
+#include "pair_yukawa.h"
diff --git a/src/WINDOWS/settings_standard/style_region.h b/src/WINDOWS/settings_standard/style_region.h
new file mode 100644
index 000000000..3fd652579
--- /dev/null
+++ b/src/WINDOWS/settings_standard/style_region.h
@@ -0,0 +1,8 @@
+#include "region_block.h"
+#include "region_cone.h"
+#include "region_cylinder.h"
+#include "region_intersect.h"
+#include "region_plane.h"
+#include "region_prism.h"
+#include "region_sphere.h"
+#include "region_union.h"
diff --git a/src/atom.cpp b/src/atom.cpp
index e1b459750..b9c9c3e70 100644
--- a/src/atom.cpp
+++ b/src/atom.cpp
@@ -1,1656 +1,1663 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mpi.h"
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "limits.h"
#include "atom.h"
#include "style_atom.h"
#include "atom_vec.h"
#include "atom_vec_ellipsoid.h"
#include "comm.h"
#include "neighbor.h"
#include "force.h"
#include "modify.h"
#include "fix.h"
#include "output.h"
#include "thermo.h"
#include "update.h"
#include "domain.h"
#include "group.h"
#include "accelerator_cuda.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define DELTA 1
#define DELTA_MEMSTR 1024
#define EPSILON 1.0e-6
#define CUDA_CHUNK 3000
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
Atom::Atom(LAMMPS *lmp) : Pointers(lmp)
{
natoms = 0;
nlocal = nghost = nmax = 0;
ntypes = 0;
nbondtypes = nangletypes = ndihedraltypes = nimpropertypes = 0;
nbonds = nangles = ndihedrals = nimpropers = 0;
bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0;
extra_bond_per_atom = 0;
firstgroupname = NULL;
sortfreq = 1000;
nextsort = 0;
userbinsize = 0.0;
maxbin = maxnext = 0;
binhead = NULL;
next = permute = NULL;
// initialize atom arrays
// customize by adding new array
tag = type = mask = image = NULL;
x = v = f = NULL;
molecule = NULL;
q = NULL;
mu = NULL;
omega = angmom = torque = NULL;
radius = rmass = NULL;
vfrac = s0 = NULL;
x0 = NULL;
ellipsoid = NULL;
spin = NULL;
eradius = ervel = erforce = NULL;
+ cs = csforce = vforce = ervelforce = NULL;
+ etag = NULL;
maxspecial = 1;
nspecial = NULL;
special = NULL;
num_bond = NULL;
bond_type = bond_atom = NULL;
num_angle = NULL;
angle_type = angle_atom1 = angle_atom2 = angle_atom3 = NULL;
num_dihedral = NULL;
dihedral_type = dihedral_atom1 = dihedral_atom2 = NULL;
dihedral_atom3 = dihedral_atom4 = NULL;
num_improper = NULL;
improper_type = improper_atom1 = improper_atom2 = NULL;
improper_atom3 = improper_atom4 = NULL;
// initialize atom style and array existence flags
// customize by adding new flag
sphere_flag = ellipsoid_flag = peri_flag = electron_flag = 0;
+ wavepacket_flag = 0;
molecule_flag = q_flag = mu_flag = 0;
rmass_flag = radius_flag = omega_flag = torque_flag = angmom_flag = 0;
vfrac_flag = spin_flag = eradius_flag = ervel_flag = erforce_flag = 0;
+ cs_flag = csforce_flag = vforce_flag = ervelforce_flag= etag_flag = 0;
// ntype-length arrays
mass = NULL;
mass_setflag = NULL;
// callback lists & extra restart info
nextra_grow = nextra_restart = 0;
extra_grow = extra_restart = NULL;
nextra_grow_max = nextra_restart_max = 0;
nextra_store = 0;
extra = NULL;
// default mapping values and hash table primes
tag_enable = 1;
map_style = 0;
map_tag_max = 0;
map_nhash = 0;
nprimes = 38;
primes = new int[nprimes];
int plist[] = {5041,10007,20011,30011,40009,50021,60013,70001,80021,
90001,100003,110017,120011,130003,140009,150001,160001,
170003,180001,190027,200003,210011,220009,230003,240007,
250007,260003,270001,280001,290011,300007,310019,320009,
330017,340007,350003,362881,3628801};
for (int i = 0; i < nprimes; i++) primes[i] = plist[i];
// default atom style = atomic
atom_style = NULL;
avec = NULL;
create_avec("atomic",0,NULL);
}
/* ---------------------------------------------------------------------- */
Atom::~Atom()
{
delete [] atom_style;
delete avec;
delete [] firstgroupname;
memory->destroy(binhead);
memory->destroy(next);
memory->destroy(permute);
// delete atom arrays
// customize by adding new array
memory->destroy(tag);
memory->destroy(type);
memory->destroy(mask);
memory->destroy(image);
memory->destroy(x);
memory->destroy(v);
memory->destroy(f);
memory->destroy(q);
memory->destroy(mu);
memory->destroy(omega);
memory->destroy(angmom);
memory->destroy(torque);
memory->destroy(radius);
memory->destroy(rmass);
memory->destroy(vfrac);
memory->destroy(s0);
memory->destroy(x0);
memory->destroy(ellipsoid);
memory->destroy(spin);
memory->destroy(eradius);
memory->destroy(ervel);
memory->destroy(erforce);
memory->destroy(molecule);
memory->destroy(nspecial);
memory->destroy(special);
memory->destroy(num_bond);
memory->destroy(bond_type);
memory->destroy(bond_atom);
memory->destroy(num_angle);
memory->destroy(angle_type);
memory->destroy(angle_atom1);
memory->destroy(angle_atom2);
memory->destroy(angle_atom3);
memory->destroy(num_dihedral);
memory->destroy(dihedral_type);
memory->destroy(dihedral_atom1);
memory->destroy(dihedral_atom2);
memory->destroy(dihedral_atom3);
memory->destroy(dihedral_atom4);
memory->destroy(num_improper);
memory->destroy(improper_type);
memory->destroy(improper_atom1);
memory->destroy(improper_atom2);
memory->destroy(improper_atom3);
memory->destroy(improper_atom4);
// delete per-type arrays
delete [] mass;
delete [] mass_setflag;
// delete extra arrays
memory->destroy(extra_grow);
memory->destroy(extra_restart);
memory->destroy(extra);
// delete mapping data structures
map_delete();
delete [] primes;
}
/* ----------------------------------------------------------------------
copy modify settings from old Atom class to current Atom class
------------------------------------------------------------------------- */
void Atom::settings(Atom *old)
{
map_style = old->map_style;
}
/* ----------------------------------------------------------------------
create an AtomVec style
called from input script, restart file, replicate
------------------------------------------------------------------------- */
void Atom::create_avec(const char *style, int narg, char **arg, char *suffix)
{
delete [] atom_style;
if (avec) delete avec;
// unset atom style and array existence flags
// may have been set by old avec
// customize by adding new flag
sphere_flag = ellipsoid_flag = peri_flag = electron_flag = 0;
molecule_flag = q_flag = mu_flag = 0;
rmass_flag = radius_flag = omega_flag = torque_flag = angmom_flag = 0;
vfrac_flag = spin_flag = eradius_flag = ervel_flag = erforce_flag = 0;
int sflag;
avec = new_avec(style,narg,arg,suffix,sflag);
if (sflag) {
char estyle[256];
sprintf(estyle,"%s/%s",style,suffix);
int n = strlen(estyle) + 1;
atom_style = new char[n];
strcpy(atom_style,estyle);
} else {
int n = strlen(style) + 1;
atom_style = new char[n];
strcpy(atom_style,style);
}
// if molecular system, default is to have array map
molecular = avec->molecular;
if (map_style == 0 && molecular) map_style = 1;
}
/* ----------------------------------------------------------------------
generate an AtomVec class, first with suffix appended
------------------------------------------------------------------------- */
AtomVec *Atom::new_avec(const char *style, int narg, char **arg,
char *suffix, int &sflag)
{
if (suffix && lmp->suffix_enable) {
sflag = 1;
char estyle[256];
sprintf(estyle,"%s/%s",style,suffix);
if (0) return NULL;
#define ATOM_CLASS
#define AtomStyle(key,Class) \
else if (strcmp(estyle,#key) == 0) return new Class(lmp,narg,arg);
#include "style_atom.h"
#undef AtomStyle
#undef ATOM_CLASS
}
sflag = 0;
if (0) return NULL;
#define ATOM_CLASS
#define AtomStyle(key,Class) \
else if (strcmp(style,#key) == 0) return new Class(lmp,narg,arg);
#include "style_atom.h"
#undef ATOM_CLASS
else error->all("Invalid atom style");
return NULL;
}
/* ---------------------------------------------------------------------- */
void Atom::init()
{
// delete extra array since it doesn't persist past first run
if (nextra_store) {
memory->destroy(extra);
extra = NULL;
nextra_store = 0;
}
// check arrays that are atom type in length
check_mass();
// setup of firstgroup
if (firstgroupname) {
firstgroup = group->find(firstgroupname);
if (firstgroup < 0)
error->all("Could not find atom_modify first group ID");
} else firstgroup = -1;
// init AtomVec
avec->init();
}
/* ---------------------------------------------------------------------- */
void Atom::setup()
{
// setup bins for sorting
// cannot do this in init() because uses neighbor cutoff
if (sortfreq > 0) setup_sort_bins();
}
/* ----------------------------------------------------------------------
return ptr to AtomVec class if matches style or to matching hybrid sub-class
return NULL if no match
------------------------------------------------------------------------- */
AtomVec *Atom::style_match(const char *style)
{
if (strcmp(atom_style,style) == 0) return avec;
else if (strcmp(atom_style,"hybrid") == 0) {
AtomVecHybrid *avec_hybrid = (AtomVecHybrid *) avec;
for (int i = 0; i < avec_hybrid->nstyles; i++)
if (strcmp(avec_hybrid->keywords[i],style) == 0)
return avec_hybrid->styles[i];
}
return NULL;
}
/* ----------------------------------------------------------------------
modify parameters of the atom style
some options can only be invoked before simulation box is defined
first and sort options cannot be used together
------------------------------------------------------------------------- */
void Atom::modify_params(int narg, char **arg)
{
if (narg == 0) error->all("Illegal atom_modify command");
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"map") == 0) {
if (iarg+2 > narg) error->all("Illegal atom_modify command");
if (strcmp(arg[iarg+1],"array") == 0) map_style = 1;
else if (strcmp(arg[iarg+1],"hash") == 0) map_style = 2;
else error->all("Illegal atom_modify command");
if (domain->box_exist)
error->all("Atom_modify map command after simulation box is defined");
iarg += 2;
} else if (strcmp(arg[iarg],"first") == 0) {
if (iarg+2 > narg) error->all("Illegal atom_modify command");
if (strcmp(arg[iarg+1],"all") == 0) {
delete [] firstgroupname;
firstgroupname = NULL;
} else {
int n = strlen(arg[iarg+1]) + 1;
firstgroupname = new char[n];
strcpy(firstgroupname,arg[iarg+1]);
sortfreq = 0;
}
iarg += 2;
} else if (strcmp(arg[iarg],"sort") == 0) {
if (iarg+3 > narg) error->all("Illegal atom_modify command");
sortfreq = atoi(arg[iarg+1]);
userbinsize = atof(arg[iarg+2]);
if (sortfreq < 0 || userbinsize < 0.0)
error->all("Illegal atom_modify command");
if (sortfreq >= 0 && firstgroupname)
error->all("Atom_modify sort and first options "
"cannot be used together");
iarg += 3;
} else error->all("Illegal atom_modify command");
}
}
/* ----------------------------------------------------------------------
allocate and initialize array or hash table for global -> local map
set map_tag_max = largest atom ID (may be larger than natoms)
for array option:
array length = 1 to largest tag of any atom
set entire array to -1 as initial values
for hash option:
map_nhash = length of hash table
map_nbucket = # of hash buckets, prime larger than map_nhash
so buckets will only be filled with 0 or 1 atoms on average
------------------------------------------------------------------------- */
void Atom::map_init()
{
map_delete();
if (tag_enable == 0)
error->all("Cannot create an atom map unless atoms have IDs");
int max = 0;
for (int i = 0; i < nlocal; i++) max = MAX(max,tag[i]);
MPI_Allreduce(&max,&map_tag_max,1,MPI_INT,MPI_MAX,world);
if (map_style == 1) {
memory->create(map_array,map_tag_max+1,"atom:map_array");
for (int i = 0; i <= map_tag_max; i++) map_array[i] = -1;
} else {
// map_nhash = max of atoms/proc or total atoms, times 2, at least 1000
int nper = static_cast<int> (natoms/comm->nprocs);
map_nhash = MAX(nper,nmax);
if (map_nhash > natoms) map_nhash = static_cast<int> (natoms);
if (comm->nprocs > 1) map_nhash *= 2;
map_nhash = MAX(map_nhash,1000);
// map_nbucket = prime just larger than map_nhash
int n = map_nhash/10000;
n = MIN(n,nprimes-1);
map_nbucket = primes[n];
if (map_nbucket < map_nhash && n < nprimes-1) map_nbucket = primes[n+1];
// set all buckets to empty
// set hash to map_nhash in length
// put all hash entries in free list and point them to each other
map_bucket = new int[map_nbucket];
for (int i = 0; i < map_nbucket; i++) map_bucket[i] = -1;
map_hash = new HashElem[map_nhash];
map_nused = 0;
map_free = 0;
for (int i = 0; i < map_nhash; i++) map_hash[i].next = i+1;
map_hash[map_nhash-1].next = -1;
}
}
/* ----------------------------------------------------------------------
clear global -> local map for all of my own and ghost atoms
for hash table option:
global ID may not be in table if image atom was already cleared
------------------------------------------------------------------------- */
void Atom::map_clear()
{
if (map_style == 1) {
int nall = nlocal + nghost;
for (int i = 0; i < nall; i++) map_array[tag[i]] = -1;
} else {
int previous,global,ibucket,index;
int nall = nlocal + nghost;
for (int i = 0; i < nall; i++) {
// search for key
// if don't find it, done
previous = -1;
global = tag[i];
ibucket = global % map_nbucket;
index = map_bucket[ibucket];
while (index > -1) {
if (map_hash[index].global == global) break;
previous = index;
index = map_hash[index].next;
}
if (index == -1) continue;
// delete the hash entry and add it to free list
// special logic if entry is 1st in the bucket
if (previous == -1) map_bucket[ibucket] = map_hash[index].next;
else map_hash[previous].next = map_hash[index].next;
map_hash[index].next = map_free;
map_free = index;
map_nused--;
}
}
}
/* ----------------------------------------------------------------------
set global -> local map for all of my own and ghost atoms
loop in reverse order so that nearby images take precedence over far ones
and owned atoms take precedence over images
this enables valid lookups of bond topology atoms
for hash table option:
if hash table too small, re-init
global ID may already be in table if image atom was set
------------------------------------------------------------------------- */
void Atom::map_set()
{
if (map_style == 1) {
int nall = nlocal + nghost;
for (int i = nall-1; i >= 0 ; i--) map_array[tag[i]] = i;
} else {
int previous,global,ibucket,index;
int nall = nlocal + nghost;
if (nall > map_nhash) map_init();
for (int i = nall-1; i >= 0 ; i--) {
// search for key
// if found it, just overwrite local value with index
previous = -1;
global = tag[i];
ibucket = global % map_nbucket;
index = map_bucket[ibucket];
while (index > -1) {
if (map_hash[index].global == global) break;
previous = index;
index = map_hash[index].next;
}
if (index > -1) {
map_hash[index].local = i;
continue;
}
// take one entry from free list
// add the new global/local pair as entry at end of bucket list
// special logic if this entry is 1st in bucket
index = map_free;
map_free = map_hash[map_free].next;
if (previous == -1) map_bucket[ibucket] = index;
else map_hash[previous].next = index;
map_hash[index].global = global;
map_hash[index].local = i;
map_hash[index].next = -1;
map_nused++;
}
}
}
/* ----------------------------------------------------------------------
set global to local map for one atom
for hash table option:
global ID may already be in table if atom was already set
------------------------------------------------------------------------- */
void Atom::map_one(int global, int local)
{
if (map_style == 1) map_array[global] = local;
else {
// search for key
// if found it, just overwrite local value with index
int previous = -1;
int ibucket = global % map_nbucket;
int index = map_bucket[ibucket];
while (index > -1) {
if (map_hash[index].global == global) break;
previous = index;
index = map_hash[index].next;
}
if (index > -1) {
map_hash[index].local = local;
return;
}
// take one entry from free list
// add the new global/local pair as entry at end of bucket list
// special logic if this entry is 1st in bucket
index = map_free;
map_free = map_hash[map_free].next;
if (previous == -1) map_bucket[ibucket] = index;
else map_hash[previous].next = index;
map_hash[index].global = global;
map_hash[index].local = local;
map_hash[index].next = -1;
map_nused++;
}
}
/* ----------------------------------------------------------------------
free the array or hash table for global to local mapping
------------------------------------------------------------------------- */
void Atom::map_delete()
{
if (map_style == 1) {
if (map_tag_max) memory->destroy(map_array);
} else {
if (map_nhash) {
delete [] map_bucket;
delete [] map_hash;
}
map_nhash = 0;
}
map_tag_max = 0;
}
/* ----------------------------------------------------------------------
lookup global ID in hash table, return local index
------------------------------------------------------------------------- */
int Atom::map_find_hash(int global)
{
int local = -1;
int index = map_bucket[global % map_nbucket];
while (index > -1) {
if (map_hash[index].global == global) {
local = map_hash[index].local;
break;
}
index = map_hash[index].next;
}
return local;
}
/* ----------------------------------------------------------------------
add unique tags to any atoms with tag = 0
new tags are grouped by proc and start after max current tag
called after creating new atoms
------------------------------------------------------------------------- */
void Atom::tag_extend()
{
// maxtag_all = max tag for all atoms
int maxtag = 0;
for (int i = 0; i < nlocal; i++) maxtag = MAX(maxtag,tag[i]);
int maxtag_all;
MPI_Allreduce(&maxtag,&maxtag_all,1,MPI_INT,MPI_MAX,world);
// notag = # of atoms I own with no tag (tag = 0)
// notag_sum = # of total atoms on procs <= me with no tag
int notag = 0;
for (int i = 0; i < nlocal; i++) if (tag[i] == 0) notag++;
int notag_sum;
MPI_Scan(&notag,&notag_sum,1,MPI_INT,MPI_SUM,world);
// itag = 1st new tag that my untagged atoms should use
int itag = maxtag_all + notag_sum - notag + 1;
for (int i = 0; i < nlocal; i++) if (tag[i] == 0) tag[i] = itag++;
}
/* ----------------------------------------------------------------------
check that atom IDs span range from 1 to Natoms
return 0 if mintag != 1 or maxtag != Natoms
return 1 if OK
doesn't actually check if all tag values are used
------------------------------------------------------------------------- */
int Atom::tag_consecutive()
{
int idmin = MAXTAGINT;
int idmax = 0;
for (int i = 0; i < nlocal; i++) {
idmin = MIN(idmin,tag[i]);
idmax = MAX(idmax,tag[i]);
}
int idminall,idmaxall;
MPI_Allreduce(&idmin,&idminall,1,MPI_INT,MPI_MIN,world);
MPI_Allreduce(&idmax,&idmaxall,1,MPI_INT,MPI_MAX,world);
if (idminall != 1 || idmaxall != static_cast<int> (natoms)) return 0;
return 1;
}
/* ----------------------------------------------------------------------
count and return words in a single line
make copy of line before using strtok so as not to change line
trim anything from '#' onward
------------------------------------------------------------------------- */
int Atom::count_words(const char *line)
{
int n = strlen(line) + 1;
char *copy;
memory->create(copy,n,"atom:copy");
strcpy(copy,line);
char *ptr;
if (ptr = strchr(copy,'#')) *ptr = '\0';
if (strtok(copy," \t\n\r\f") == NULL) {
memory->destroy(copy);
return 0;
}
n = 1;
while (strtok(NULL," \t\n\r\f")) n++;
memory->destroy(copy);
return n;
}
/* ----------------------------------------------------------------------
unpack n lines from Atom section of data file
call style-specific routine to parse line
------------------------------------------------------------------------- */
void Atom::data_atoms(int n, char *buf)
{
int m,imagedata,xptr,iptr;
double xdata[3],lamda[3],sublo[3],subhi[3];
double *coord;
char *next;
next = strchr(buf,'\n');
*next = '\0';
int nwords = count_words(buf);
*next = '\n';
if (nwords != avec->size_data_atom && nwords != avec->size_data_atom + 3)
error->all("Incorrect atom format in data file");
char **values = new char*[nwords];
// set bounds for my proc
// if periodic and I am lo/hi proc, adjust bounds by EPSILON
// insures all data atoms will be owned even with round-off
int triclinic = domain->triclinic;
if (triclinic == 0) {
sublo[0] = domain->sublo[0]; subhi[0] = domain->subhi[0];
sublo[1] = domain->sublo[1]; subhi[1] = domain->subhi[1];
sublo[2] = domain->sublo[2]; subhi[2] = domain->subhi[2];
} else {
sublo[0] = domain->sublo_lamda[0]; subhi[0] = domain->subhi_lamda[0];
sublo[1] = domain->sublo_lamda[1]; subhi[1] = domain->subhi_lamda[1];
sublo[2] = domain->sublo_lamda[2]; subhi[2] = domain->subhi_lamda[2];
}
if (domain->xperiodic) {
if (comm->myloc[0] == 0) sublo[0] -= EPSILON;
if (comm->myloc[0] == comm->procgrid[0]-1) subhi[0] += EPSILON;
}
if (domain->yperiodic) {
if (comm->myloc[1] == 0) sublo[1] -= EPSILON;
if (comm->myloc[1] == comm->procgrid[1]-1) subhi[1] += EPSILON;
}
if (domain->zperiodic) {
if (comm->myloc[2] == 0) sublo[2] -= EPSILON;
if (comm->myloc[2] == comm->procgrid[2]-1) subhi[2] += EPSILON;
}
// xptr = which word in line starts xyz coords
// iptr = which word in line starts ix,iy,iz image flags
xptr = avec->xcol_data - 1;
int imageflag = 0;
if (nwords > avec->size_data_atom) imageflag = 1;
if (imageflag) iptr = nwords - 3;
// loop over lines of atom data
// tokenize the line into values
// extract xyz coords and image flags
// remap atom into simulation box
// if atom is in my sub-domain, unpack its values
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
values[0] = strtok(buf," \t\n\r\f");
- for (m = 1; m < nwords; m++)
+ if (values[0] == NULL) error->all("Incorrect atom format in data file");
+ for (m = 1; m < nwords; m++) {
values[m] = strtok(NULL," \t\n\r\f");
+ if (values[m] == NULL) error->all("Incorrect atom format in data file");
+ }
if (imageflag)
imagedata = ((atoi(values[iptr+2]) + 512 & 1023) << 20) |
((atoi(values[iptr+1]) + 512 & 1023) << 10) |
(atoi(values[iptr]) + 512 & 1023);
else imagedata = (512 << 20) | (512 << 10) | 512;
xdata[0] = atof(values[xptr]);
xdata[1] = atof(values[xptr+1]);
xdata[2] = atof(values[xptr+2]);
domain->remap(xdata,imagedata);
if (triclinic) {
domain->x2lamda(xdata,lamda);
coord = lamda;
} else coord = xdata;
if (coord[0] >= sublo[0] && coord[0] < subhi[0] &&
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2])
avec->data_atom(xdata,imagedata,values);
buf = next + 1;
}
delete [] values;
}
/* ----------------------------------------------------------------------
unpack n lines from Velocity section of data file
check that atom IDs are > 0 and <= map_tag_max
call style-specific routine to parse line
------------------------------------------------------------------------- */
void Atom::data_vels(int n, char *buf)
{
int j,m,tagdata;
char *next;
next = strchr(buf,'\n');
*next = '\0';
int nwords = count_words(buf);
*next = '\n';
if (nwords != avec->size_data_vel)
error->all("Incorrect velocity format in data file");
char **values = new char*[nwords];
// loop over lines of atom velocities
// tokenize the line into values
// if I own atom tag, unpack its values
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
values[0] = strtok(buf," \t\n\r\f");
for (j = 1; j < nwords; j++)
values[j] = strtok(NULL," \t\n\r\f");
tagdata = atoi(values[0]);
if (tagdata <= 0 || tagdata > map_tag_max)
error->one("Invalid atom ID in Velocities section of data file");
if ((m = map(tagdata)) >= 0) avec->data_vel(m,&values[1]);
buf = next + 1;
}
delete [] values;
}
/* ----------------------------------------------------------------------
unpack n lines from atom-style specific section of data file
check that atom IDs are > 0 and <= map_tag_max
call style-specific routine to parse line
------------------------------------------------------------------------- */
void Atom::data_bonus(int n, char *buf, AtomVec *avec_bonus)
{
int j,m,tagdata;
char *next;
next = strchr(buf,'\n');
*next = '\0';
int nwords = count_words(buf);
*next = '\n';
if (nwords != avec_bonus->size_data_bonus)
error->all("Incorrect bonus data format in data file");
char **values = new char*[nwords];
// loop over lines of bonus atom data
// tokenize the line into values
// if I own atom tag, unpack its values
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
values[0] = strtok(buf," \t\n\r\f");
for (j = 1; j < nwords; j++)
values[j] = strtok(NULL," \t\n\r\f");
tagdata = atoi(values[0]);
if (tagdata <= 0 || tagdata > map_tag_max)
error->one("Invalid atom ID in Bonus section of data file");
// ok to call child's data_atom_bonus() method thru parent avec_bonus,
// since data_bonus() was called with child ptr, and method is virtual
if ((m = map(tagdata)) >= 0) avec_bonus->data_atom_bonus(m,&values[1]);
buf = next + 1;
}
delete [] values;
}
/* ----------------------------------------------------------------------
check that atom IDs are > 0 and <= map_tag_max
------------------------------------------------------------------------- */
void Atom::data_bonds(int n, char *buf)
{
int m,tmp,itype,atom1,atom2;
char *next;
int newton_bond = force->newton_bond;
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
*next = '\0';
sscanf(buf,"%d %d %d %d",&tmp,&itype,&atom1,&atom2);
if (atom1 <= 0 || atom1 > map_tag_max ||
atom2 <= 0 || atom2 > map_tag_max)
error->one("Invalid atom ID in Bonds section of data file");
if (itype <= 0 || itype > nbondtypes)
error->one("Invalid bond type in Bonds section of data file");
if ((m = map(atom1)) >= 0) {
bond_type[m][num_bond[m]] = itype;
bond_atom[m][num_bond[m]] = atom2;
num_bond[m]++;
}
if (newton_bond == 0) {
if ((m = map(atom2)) >= 0) {
bond_type[m][num_bond[m]] = itype;
bond_atom[m][num_bond[m]] = atom1;
num_bond[m]++;
}
}
buf = next + 1;
}
}
/* ----------------------------------------------------------------------
check that atom IDs are > 0 and <= map_tag_max
------------------------------------------------------------------------- */
void Atom::data_angles(int n, char *buf)
{
int m,tmp,itype,atom1,atom2,atom3;
char *next;
int newton_bond = force->newton_bond;
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
*next = '\0';
sscanf(buf,"%d %d %d %d %d",&tmp,&itype,&atom1,&atom2,&atom3);
if (atom1 <= 0 || atom1 > map_tag_max ||
atom2 <= 0 || atom2 > map_tag_max ||
atom3 <= 0 || atom3 > map_tag_max)
error->one("Invalid atom ID in Angles section of data file");
if (itype <= 0 || itype > nangletypes)
error->one("Invalid angle type in Angles section of data file");
if ((m = map(atom2)) >= 0) {
angle_type[m][num_angle[m]] = itype;
angle_atom1[m][num_angle[m]] = atom1;
angle_atom2[m][num_angle[m]] = atom2;
angle_atom3[m][num_angle[m]] = atom3;
num_angle[m]++;
}
if (newton_bond == 0) {
if ((m = map(atom1)) >= 0) {
angle_type[m][num_angle[m]] = itype;
angle_atom1[m][num_angle[m]] = atom1;
angle_atom2[m][num_angle[m]] = atom2;
angle_atom3[m][num_angle[m]] = atom3;
num_angle[m]++;
}
if ((m = map(atom3)) >= 0) {
angle_type[m][num_angle[m]] = itype;
angle_atom1[m][num_angle[m]] = atom1;
angle_atom2[m][num_angle[m]] = atom2;
angle_atom3[m][num_angle[m]] = atom3;
num_angle[m]++;
}
}
buf = next + 1;
}
}
/* ----------------------------------------------------------------------
check that atom IDs are > 0 and <= map_tag_max
------------------------------------------------------------------------- */
void Atom::data_dihedrals(int n, char *buf)
{
int m,tmp,itype,atom1,atom2,atom3,atom4;
char *next;
int newton_bond = force->newton_bond;
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
*next = '\0';
sscanf(buf,"%d %d %d %d %d %d",&tmp,&itype,&atom1,&atom2,&atom3,&atom4);
if (atom1 <= 0 || atom1 > map_tag_max ||
atom2 <= 0 || atom2 > map_tag_max ||
atom3 <= 0 || atom3 > map_tag_max ||
atom4 <= 0 || atom4 > map_tag_max)
error->one("Invalid atom ID in Dihedrals section of data file");
if (itype <= 0 || itype > ndihedraltypes)
error->one("Invalid dihedral type in Dihedrals section of data file");
if ((m = map(atom2)) >= 0) {
dihedral_type[m][num_dihedral[m]] = itype;
dihedral_atom1[m][num_dihedral[m]] = atom1;
dihedral_atom2[m][num_dihedral[m]] = atom2;
dihedral_atom3[m][num_dihedral[m]] = atom3;
dihedral_atom4[m][num_dihedral[m]] = atom4;
num_dihedral[m]++;
}
if (newton_bond == 0) {
if ((m = map(atom1)) >= 0) {
dihedral_type[m][num_dihedral[m]] = itype;
dihedral_atom1[m][num_dihedral[m]] = atom1;
dihedral_atom2[m][num_dihedral[m]] = atom2;
dihedral_atom3[m][num_dihedral[m]] = atom3;
dihedral_atom4[m][num_dihedral[m]] = atom4;
num_dihedral[m]++;
}
if ((m = map(atom3)) >= 0) {
dihedral_type[m][num_dihedral[m]] = itype;
dihedral_atom1[m][num_dihedral[m]] = atom1;
dihedral_atom2[m][num_dihedral[m]] = atom2;
dihedral_atom3[m][num_dihedral[m]] = atom3;
dihedral_atom4[m][num_dihedral[m]] = atom4;
num_dihedral[m]++;
}
if ((m = map(atom4)) >= 0) {
dihedral_type[m][num_dihedral[m]] = itype;
dihedral_atom1[m][num_dihedral[m]] = atom1;
dihedral_atom2[m][num_dihedral[m]] = atom2;
dihedral_atom3[m][num_dihedral[m]] = atom3;
dihedral_atom4[m][num_dihedral[m]] = atom4;
num_dihedral[m]++;
}
}
buf = next + 1;
}
}
/* ----------------------------------------------------------------------
check that atom IDs are > 0 and <= map_tag_max
------------------------------------------------------------------------- */
void Atom::data_impropers(int n, char *buf)
{
int m,tmp,itype,atom1,atom2,atom3,atom4;
char *next;
int newton_bond = force->newton_bond;
for (int i = 0; i < n; i++) {
next = strchr(buf,'\n');
*next = '\0';
sscanf(buf,"%d %d %d %d %d %d",&tmp,&itype,&atom1,&atom2,&atom3,&atom4);
if (atom1 <= 0 || atom1 > map_tag_max ||
atom2 <= 0 || atom2 > map_tag_max ||
atom3 <= 0 || atom3 > map_tag_max ||
atom4 <= 0 || atom4 > map_tag_max)
error->one("Invalid atom ID in Impropers section of data file");
if (itype <= 0 || itype > nimpropertypes)
error->one("Invalid improper type in Impropers section of data file");
if ((m = map(atom2)) >= 0) {
improper_type[m][num_improper[m]] = itype;
improper_atom1[m][num_improper[m]] = atom1;
improper_atom2[m][num_improper[m]] = atom2;
improper_atom3[m][num_improper[m]] = atom3;
improper_atom4[m][num_improper[m]] = atom4;
num_improper[m]++;
}
if (newton_bond == 0) {
if ((m = map(atom1)) >= 0) {
improper_type[m][num_improper[m]] = itype;
improper_atom1[m][num_improper[m]] = atom1;
improper_atom2[m][num_improper[m]] = atom2;
improper_atom3[m][num_improper[m]] = atom3;
improper_atom4[m][num_improper[m]] = atom4;
num_improper[m]++;
}
if ((m = map(atom3)) >= 0) {
improper_type[m][num_improper[m]] = itype;
improper_atom1[m][num_improper[m]] = atom1;
improper_atom2[m][num_improper[m]] = atom2;
improper_atom3[m][num_improper[m]] = atom3;
improper_atom4[m][num_improper[m]] = atom4;
num_improper[m]++;
}
if ((m = map(atom4)) >= 0) {
improper_type[m][num_improper[m]] = itype;
improper_atom1[m][num_improper[m]] = atom1;
improper_atom2[m][num_improper[m]] = atom2;
improper_atom3[m][num_improper[m]] = atom3;
improper_atom4[m][num_improper[m]] = atom4;
num_improper[m]++;
}
}
buf = next + 1;
}
}
/* ----------------------------------------------------------------------
allocate arrays of length ntypes
only done after ntypes is set
------------------------------------------------------------------------- */
void Atom::allocate_type_arrays()
{
if (avec->mass_type) {
mass = new double[ntypes+1];
mass_setflag = new int[ntypes+1];
for (int itype = 1; itype <= ntypes; itype++) mass_setflag[itype] = 0;
}
}
/* ----------------------------------------------------------------------
set a mass and flag it as set
called from reading of data file
------------------------------------------------------------------------- */
void Atom::set_mass(const char *str)
{
if (mass == NULL) error->all("Cannot set mass for this atom style");
int itype;
double mass_one;
int n = sscanf(str,"%d %lg",&itype,&mass_one);
if (n != 2) error->all("Invalid mass line in data file");
if (itype < 1 || itype > ntypes) error->all("Invalid type for mass set");
mass[itype] = mass_one;
mass_setflag[itype] = 1;
if (mass[itype] <= 0.0) error->all("Invalid mass value");
}
/* ----------------------------------------------------------------------
set a mass and flag it as set
called from EAM pair routine
------------------------------------------------------------------------- */
void Atom::set_mass(int itype, double value)
{
if (mass == NULL) error->all("Cannot set mass for this atom style");
if (itype < 1 || itype > ntypes) error->all("Invalid type for mass set");
mass[itype] = value;
mass_setflag[itype] = 1;
if (mass[itype] <= 0.0) error->all("Invalid mass value");
}
/* ----------------------------------------------------------------------
set one or more masses and flag them as set
called from reading of input script
------------------------------------------------------------------------- */
void Atom::set_mass(int narg, char **arg)
{
if (mass == NULL) error->all("Cannot set mass for this atom style");
int lo,hi;
force->bounds(arg[0],ntypes,lo,hi);
if (lo < 1 || hi > ntypes) error->all("Invalid type for mass set");
for (int itype = lo; itype <= hi; itype++) {
mass[itype] = atof(arg[1]);
mass_setflag[itype] = 1;
if (mass[itype] <= 0.0) error->all("Invalid mass value");
}
}
/* ----------------------------------------------------------------------
set all masses as read in from restart file
------------------------------------------------------------------------- */
void Atom::set_mass(double *values)
{
for (int itype = 1; itype <= ntypes; itype++) {
mass[itype] = values[itype];
mass_setflag[itype] = 1;
}
}
/* ----------------------------------------------------------------------
check that all masses have been set
------------------------------------------------------------------------- */
void Atom::check_mass()
{
if (mass == NULL) return;
for (int itype = 1; itype <= ntypes; itype++)
if (mass_setflag[itype] == 0) error->all("All masses are not set");
}
/* ----------------------------------------------------------------------
check that radii of all particles of itype are the same
return 1 if true, else return 0
also return the radius value for that type
------------------------------------------------------------------------- */
int Atom::radius_consistency(int itype, double &rad)
{
double value = -1.0;
int flag = 0;
for (int i = 0; i < nlocal; i++) {
if (type[i] != itype) continue;
if (value < 0.0) value = radius[i];
else if (value != radius[i]) flag = 1;
}
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall) return 0;
MPI_Allreduce(&value,&rad,1,MPI_DOUBLE,MPI_MAX,world);
return 1;
}
/* ----------------------------------------------------------------------
check that shape of all particles of itype are the same
return 1 if true, else return 0
also return the 3 shape params for itype
------------------------------------------------------------------------- */
int Atom::shape_consistency(int itype,
double &shapex, double &shapey, double &shapez)
{
double zero[3] = {0.0, 0.0, 0.0};
double one[3] = {-1.0, -1.0, -1.0};
double *shape;
AtomVecEllipsoid *avec_ellipsoid =
(AtomVecEllipsoid *) style_match("ellipsoid");
AtomVecEllipsoid::Bonus *bonus = avec_ellipsoid->bonus;
int flag = 0;
for (int i = 0; i < nlocal; i++) {
if (type[i] != itype) continue;
if (ellipsoid[i] < 0) shape = zero;
else shape = bonus[ellipsoid[i]].shape;
if (one[0] < 0.0) {
one[0] = shape[0];
one[1] = shape[1];
one[2] = shape[2];
} else if (one[0] != shape[0] || one[1] != shape[1] || one[2] != shape[2])
flag = 1;
}
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall) return 0;
double oneall[3];
MPI_Allreduce(one,oneall,3,MPI_DOUBLE,MPI_MAX,world);
shapex = oneall[0];
shapey = oneall[1];
shapez = oneall[2];
return 1;
}
/* ----------------------------------------------------------------------
reorder owned atoms so those in firstgroup appear first
called by comm->exchange() if atom_modify first group is set
only owned atoms exist at this point, no ghost atoms
------------------------------------------------------------------------- */
void Atom::first_reorder()
{
// insure there is one extra atom location at end of arrays for swaps
if (nlocal == nmax) avec->grow(0);
// loop over owned atoms
// nfirst = index of first atom not in firstgroup
// when find firstgroup atom out of place, swap it with atom nfirst
int bitmask = group->bitmask[firstgroup];
nfirst = 0;
while (nfirst < nlocal && mask[nfirst] & bitmask) nfirst++;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & bitmask && i > nfirst) {
avec->copy(i,nlocal,0);
avec->copy(nfirst,i,0);
avec->copy(nlocal,nfirst,0);
while (nfirst < nlocal && mask[nfirst] & bitmask) nfirst++;
}
}
}
/* ----------------------------------------------------------------------
perform spatial sort of atoms within my sub-domain
always called between comm->exchange() and comm->borders()
don't have to worry about clearing/setting atom->map since done in comm
------------------------------------------------------------------------- */
void Atom::sort()
{
int i,m,n,ix,iy,iz,ibin,empty;
// set next timestep for sorting to take place
nextsort = (update->ntimestep/sortfreq)*sortfreq + sortfreq;
// download data from GPU if necessary
if (lmp->cuda && !lmp->cuda->oncpu) lmp->cuda->downloadAll();
// re-setup sort bins if needed
if (domain->box_change) setup_sort_bins();
if (nbins == 1) return;
// reallocate per-atom vectors if needed
if (nlocal > maxnext) {
memory->destroy(next);
memory->destroy(permute);
maxnext = atom->nmax;
memory->create(next,maxnext,"atom:next");
memory->create(permute,maxnext,"atom:permute");
}
// insure there is one extra atom location at end of arrays for swaps
if (nlocal == nmax) avec->grow(0);
// bin atoms in reverse order so linked list will be in forward order
for (i = 0; i < nbins; i++) binhead[i] = -1;
for (i = nlocal-1; i >= 0; i--) {
ix = static_cast<int> ((x[i][0]-bboxlo[0])*bininvx);
iy = static_cast<int> ((x[i][1]-bboxlo[1])*bininvy);
iz = static_cast<int> ((x[i][2]-bboxlo[2])*bininvz);
ix = MAX(ix,0);
iy = MAX(iy,0);
iz = MAX(iz,0);
ix = MIN(ix,nbinx-1);
iy = MIN(iy,nbiny-1);
iz = MIN(iz,nbinz-1);
ibin = iz*nbiny*nbinx + iy*nbinx + ix;
next[i] = binhead[ibin];
binhead[ibin] = i;
}
// permute = desired permutation of atoms
// permute[I] = J means Ith new atom will be Jth old atom
n = 0;
for (m = 0; m < nbins; m++) {
i = binhead[m];
while (i >= 0) {
permute[n++] = i;
i = next[i];
}
}
// current = current permutation, just reuse next vector
// current[I] = J means Ith current atom is Jth old atom
int *current = next;
for (i = 0; i < nlocal; i++) current[i] = i;
// reorder local atom list, when done, current = permute
// perform "in place" using copy() to extra atom location at end of list
// inner while loop processes one cycle of the permutation
// copy before inner-loop moves an atom to end of atom list
// copy after inner-loop moves atom at end of list back into list
// empty = location in atom list that is currently empty
for (i = 0; i < nlocal; i++) {
if (current[i] == permute[i]) continue;
avec->copy(i,nlocal,0);
empty = i;
while (permute[empty] != i) {
avec->copy(permute[empty],empty,0);
empty = current[empty] = permute[empty];
}
avec->copy(nlocal,empty,0);
current[empty] = permute[empty];
}
// upload data back to GPU if necessary
if (lmp->cuda && !lmp->cuda->oncpu) lmp->cuda->uploadAll();
// sanity check that current = permute
//int flag = 0;
//for (i = 0; i < nlocal; i++)
// if (current[i] != permute[i]) flag = 1;
//int flagall;
//MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
//if (flagall) error->all("Atom sort did not operate correctly");
}
/* ----------------------------------------------------------------------
setup bins for spatial sorting of atoms
------------------------------------------------------------------------- */
void Atom::setup_sort_bins()
{
// binsize:
// user setting if explicitly set
// 1/2 of neighbor cutoff for non-CUDA
// CUDA_CHUNK atoms/proc for CUDA
// check if neighbor cutoff = 0.0
double binsize;
if (userbinsize > 0.0) binsize = userbinsize;
else if (!lmp->cuda) binsize = 0.5 * neighbor->cutneighmax;
else {
if (domain->dimension == 3) {
double vol = (domain->boxhi[0]-domain->boxlo[0]) *
(domain->boxhi[1]-domain->boxlo[1]) *
(domain->boxhi[2]-domain->boxlo[2]);
binsize = pow(1.0*CUDA_CHUNK/natoms*vol,1.0/3.0);
} else {
double area = (domain->boxhi[0]-domain->boxlo[0]) *
(domain->boxhi[1]-domain->boxlo[1]);
binsize = pow(1.0*CUDA_CHUNK/natoms*area,1.0/2.0);
}
}
if (binsize == 0.0) error->all("Atom sorting has bin size = 0.0");
double bininv = 1.0/binsize;
// nbin xyz = local bins
// bbox lo/hi = bounding box of my sub-domain
if (domain->triclinic)
domain->bbox(domain->sublo_lamda,domain->subhi_lamda,bboxlo,bboxhi);
else {
bboxlo[0] = domain->sublo[0];
bboxlo[1] = domain->sublo[1];
bboxlo[2] = domain->sublo[2];
bboxhi[0] = domain->subhi[0];
bboxhi[1] = domain->subhi[1];
bboxhi[2] = domain->subhi[2];
}
nbinx = static_cast<int> ((bboxhi[0]-bboxlo[0]) * bininv);
nbiny = static_cast<int> ((bboxhi[1]-bboxlo[1]) * bininv);
nbinz = static_cast<int> ((bboxhi[2]-bboxlo[2]) * bininv);
if (domain->dimension == 2) nbinz = 1;
if (nbinx == 0) nbinx = 1;
if (nbiny == 0) nbiny = 1;
if (nbinz == 0) nbinz = 1;
bininvx = nbinx / (bboxhi[0]-bboxlo[0]);
bininvy = nbiny / (bboxhi[1]-bboxlo[1]);
bininvz = nbinz / (bboxhi[2]-bboxlo[2]);
if (1.0*nbinx*nbiny*nbinz > INT_MAX)
error->one("Too many atom sorting bins");
nbins = nbinx*nbiny*nbinz;
// reallocate per-bin memory if needed
if (nbins > maxbin) {
memory->destroy(binhead);
maxbin = nbins;
memory->create(binhead,maxbin,"atom:binhead");
}
}
/* ----------------------------------------------------------------------
register a callback to a fix so it can manage atom-based arrays
happens when fix is created
flag = 0 for grow, 1 for restart
------------------------------------------------------------------------- */
void Atom::add_callback(int flag)
{
int ifix;
// find the fix
// if find NULL ptr:
// it's this one, since it is being replaced and has just been deleted
// at this point in re-creation
// if don't find NULL ptr:
// i is set to nfix = new one currently being added at end of list
for (ifix = 0; ifix < modify->nfix; ifix++)
if (modify->fix[ifix] == NULL) break;
// add callback to lists, reallocating if necessary
if (flag == 0) {
if (nextra_grow == nextra_grow_max) {
nextra_grow_max += DELTA;
memory->grow(extra_grow,nextra_grow_max,"atom:extra_grow");
}
extra_grow[nextra_grow] = ifix;
nextra_grow++;
} else if (flag == 1) {
if (nextra_restart == nextra_restart_max) {
nextra_restart_max += DELTA;
memory->grow(extra_restart,nextra_restart_max,"atom:extra_restart");
}
extra_restart[nextra_restart] = ifix;
nextra_restart++;
}
}
/* ----------------------------------------------------------------------
unregister a callback to a fix
happens when fix is deleted, called by its destructor
flag = 0 for grow, 1 for restart
------------------------------------------------------------------------- */
void Atom::delete_callback(const char *id, int flag)
{
int ifix;
for (ifix = 0; ifix < modify->nfix; ifix++)
if (strcmp(id,modify->fix[ifix]->id) == 0) break;
// compact the list of callbacks
if (flag == 0) {
int match;
for (match = 0; match < nextra_grow; match++)
if (extra_grow[match] == ifix) break;
for (int i = match; i < nextra_grow-1; i++)
extra_grow[i] = extra_grow[i+1];
nextra_grow--;
} else if (flag == 1) {
int match;
for (match = 0; match < nextra_grow; match++)
if (extra_restart[match] == ifix) break;
for (int i = ifix; i < nextra_restart-1; i++)
extra_restart[i] = extra_restart[i+1];
nextra_restart--;
}
}
/* ----------------------------------------------------------------------
decrement ptrs in callback lists to fixes beyond the deleted ifix
happens after fix is deleted
------------------------------------------------------------------------- */
void Atom::update_callback(int ifix)
{
for (int i = 0; i < nextra_grow; i++)
if (extra_grow[i] > ifix) extra_grow[i]--;
for (int i = 0; i < nextra_restart; i++)
if (extra_restart[i] > ifix) extra_restart[i]--;
}
/* ----------------------------------------------------------------------
return a pointer to a named internal variable
if don't recognize name, return NULL
customize by adding names
------------------------------------------------------------------------- */
void *Atom::extract(char *name)
{
if (strcmp(name,"id") == 0) return (void *) tag;
if (strcmp(name,"type") == 0) return (void *) type;
if (strcmp(name,"x") == 0) return (void *) x;
if (strcmp(name,"v") == 0) return (void *) v;
if (strcmp(name,"f") == 0) return (void *) f;
if (strcmp(name,"mass") == 0) return (void *) mass;
if (strcmp(name,"rmass") == 0) return (void *) rmass;
return NULL;
}
/* ----------------------------------------------------------------------
return # of bytes of allocated memory
call to avec tallies per-atom vectors
add in global to local mapping storage
------------------------------------------------------------------------- */
bigint Atom::memory_usage()
{
memlength = DELTA_MEMSTR;
memory->create(memstr,memlength,"atom:memstr");
memstr[0] = '\0';
bigint bytes = avec->memory_usage();
memory->destroy(memstr);
if (map_style == 1)
bytes += memory->usage(map_array,map_tag_max+1);
else if (map_style == 2) {
bytes += map_nbucket*sizeof(int);
bytes += map_nhash*sizeof(HashElem);
}
if (maxnext) {
bytes += memory->usage(next,maxnext);
bytes += memory->usage(permute,maxnext);
}
return bytes;
}
/* ----------------------------------------------------------------------
accumulate per-atom vec names in memstr, padded by spaces
return 1 if padded str is not already in memlist, else 0
------------------------------------------------------------------------- */
int Atom::memcheck(const char *str)
{
int n = strlen(str) + 3;
char *padded = new char[n];
strcpy(padded," ");
strcat(padded,str);
strcat(padded," ");
if (strstr(memstr,padded)) {
delete [] padded;
return 0;
}
if (strlen(memstr) + n >= memlength) {
memlength += DELTA_MEMSTR;
memory->grow(memstr,memlength,"atom:memstr");
}
strcat(memstr,padded);
delete [] padded;
return 1;
}
diff --git a/src/atom.h b/src/atom.h
index e4972b27e..9b56510ca 100644
--- a/src/atom.h
+++ b/src/atom.h
@@ -1,221 +1,225 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_ATOM_H
#define LMP_ATOM_H
#include "pointers.h"
namespace LAMMPS_NS {
class Atom : protected Pointers {
public:
char *atom_style;
class AtomVec *avec;
// atom counts
bigint natoms; // total # of atoms in system, could be 0
int nlocal,nghost; // # of owned and ghost atoms on this proc
int nmax; // max # of owned+ghost in arrays on this proc
int tag_enable; // 0/1 if atom ID tags are defined
int molecular; // 0 = atomic, 1 = molecular system
bigint nbonds,nangles,ndihedrals,nimpropers;
int ntypes,nbondtypes,nangletypes,ndihedraltypes,nimpropertypes;
int bond_per_atom,angle_per_atom,dihedral_per_atom,improper_per_atom;
int extra_bond_per_atom;
int firstgroup; // store atoms in this group first, -1 if unset
int nfirst; // # of atoms in first group on this proc
char *firstgroupname; // group-ID to store first, NULL if unset
// per-atom arrays
// customize by adding new array
int *tag,*type,*mask,*image;
double **x,**v,**f;
int *molecule;
double *q,**mu;
double **omega,**angmom,**torque;
double *radius,*rmass,*vfrac,*s0;
double **x0;
int *ellipsoid;
int *spin;
- double *eradius,*ervel,*erforce;
+ double *eradius,*ervel,*erforce,*ervelforce;
+ double *cs,*csforce,*vforce;
+ int *etag;
int **nspecial; // 0,1,2 = cummulative # of 1-2,1-3,1-4 neighs
int **special; // IDs of 1-2,1-3,1-4 neighs of each atom
int maxspecial; // special[nlocal][maxspecial]
int *num_bond;
int **bond_type;
int **bond_atom;
int *num_angle;
int **angle_type;
int **angle_atom1,**angle_atom2,**angle_atom3;
int *num_dihedral;
int **dihedral_type;
int **dihedral_atom1,**dihedral_atom2,**dihedral_atom3,**dihedral_atom4;
int *num_improper;
int **improper_type;
int **improper_atom1,**improper_atom2,**improper_atom3,**improper_atom4;
// atom style and per-atom array existence flags
// customize by adding new flag
int sphere_flag,ellipsoid_flag,peri_flag,electron_flag;
+ int wavepacket_flag;
int molecule_flag,q_flag,mu_flag;
int rmass_flag,radius_flag,omega_flag,torque_flag,angmom_flag;
int vfrac_flag,spin_flag,eradius_flag,ervel_flag,erforce_flag;
+ int cs_flag,csforce_flag,vforce_flag,ervelforce_flag,etag_flag;
// extra peratom info in restart file destined for fix & diag
double **extra;
// per-type arrays
double *mass;
int *mass_setflag;
// callback ptrs for atom arrays managed by fix classes
int nextra_grow,nextra_restart; // # of callbacks of each type
int *extra_grow,*extra_restart; // index of fix to callback to
int nextra_grow_max,nextra_restart_max; // size of callback lists
int nextra_store;
int map_style; // default or user-specified style of map
// 0 = none, 1 = array, 2 = hash
// spatial sorting of atoms
int sortfreq; // sort atoms every this many steps, 0 = off
bigint nextsort; // next timestep to sort on
// functions
Atom(class LAMMPS *);
~Atom();
void settings(class Atom *);
void create_avec(const char *, int, char **, char *suffix = NULL);
class AtomVec *new_avec(const char *, int, char **, char *, int &);
void init();
void setup();
class AtomVec *style_match(const char *);
void modify_params(int, char **);
void tag_extend();
int tag_consecutive();
int parse_data(const char *);
int count_words(const char *);
void data_atoms(int, char *);
void data_vels(int, char *);
void data_bonus(int, char *, class AtomVec *);
void data_bonds(int, char *);
void data_angles(int, char *);
void data_dihedrals(int, char *);
void data_impropers(int, char *);
void allocate_type_arrays();
void set_mass(const char *);
void set_mass(int, double);
void set_mass(int, char **);
void set_mass(double *);
void check_mass();
int radius_consistency(int, double &);
int shape_consistency(int, double &, double &, double &);
void first_reorder();
void sort();
void add_callback(int);
void delete_callback(const char *, int);
void update_callback(int);
void *extract(char *);
inline int* get_map_array() {return map_array;};
inline int get_map_size() {return map_tag_max+1;};
bigint memory_usage();
int memcheck(const char *);
// functions for global to local ID mapping
// map lookup function inlined for efficiency
inline int map(int global) {
if (map_style == 1) return map_array[global];
else return map_find_hash(global);
};
void map_init();
void map_clear();
void map_set();
void map_one(int, int);
void map_delete();
int map_find_hash(int);
private:
// global to local ID mapping
int map_tag_max;
int *map_array;
struct HashElem {
int global; // key to search on = global ID
int local; // value associated with key = local index
int next; // next entry in this bucket, -1 if last
};
int map_nhash; // # of entries hash table can hold
int map_nused; // # of actual entries in hash table
int map_free; // ptr to 1st unused entry in hash table
int map_nbucket; // # of hash buckets
int *map_bucket; // ptr to 1st entry in each bucket
HashElem *map_hash; // hash table
int *primes; // table of prime #s for hashing
int nprimes; // # of primes
// spatial sorting of atoms
int nbins; // # of sorting bins
int nbinx,nbiny,nbinz; // bins in each dimension
int maxbin; // max # of bins
int maxnext; // max size of next,permute
int *binhead; // 1st atom in each bin
int *next; // next atom in bin
int *permute; // permutation vector
double userbinsize; // requested sort bin size
double bininvx,bininvy,bininvz; // inverse actual bin sizes
double bboxlo[3],bboxhi[3]; // bounding box of my sub-domain
int memlength; // allocated size of memstr
char *memstr; // string of array names already counted
void setup_sort_bins();
};
}
#endif
diff --git a/src/compute_reduce.cpp b/src/compute_reduce.cpp
index d226c0585..9342cb1c8 100644
--- a/src/compute_reduce.cpp
+++ b/src/compute_reduce.cpp
@@ -1,655 +1,657 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "string.h"
#include "stdlib.h"
#include "compute_reduce.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "modify.h"
#include "fix.h"
#include "force.h"
#include "comm.h"
#include "group.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{SUM,MINN,MAXX,AVE};
enum{X,V,F,COMPUTE,FIX,VARIABLE};
enum{PERATOM,LOCAL};
#define INVOKED_VECTOR 2
#define INVOKED_ARRAY 4
#define INVOKED_PERATOM 8
#define INVOKED_LOCAL 16
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
#define BIG 1.0e20
/* ---------------------------------------------------------------------- */
ComputeReduce::ComputeReduce(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg)
{
int iarg;
if (strcmp(style,"reduce") == 0) {
if (narg < 5) error->all("Illegal compute reduce command");
idregion = NULL;
iarg = 3;
} else if (strcmp(style,"reduce/region") == 0) {
if (narg < 6) error->all("Illegal compute reduce/region command");
iregion = domain->find_region(arg[3]);
if (iregion == -1)
error->all("Region ID for compute reduce/region does not exist");
int n = strlen(arg[3]) + 1;
idregion = new char[n];
strcpy(idregion,arg[3]);
iarg = 4;
}
if (strcmp(arg[iarg],"sum") == 0) mode = SUM;
else if (strcmp(arg[iarg],"min") == 0) mode = MINN;
else if (strcmp(arg[iarg],"max") == 0) mode = MAXX;
else if (strcmp(arg[iarg],"ave") == 0) mode = AVE;
else error->all("Illegal compute reduce command");
iarg++;
MPI_Comm_rank(world,&me);
// parse remaining values until one isn't recognized
which = new int[narg-4];
argindex = new int[narg-4];
flavor = new int[narg-4];
ids = new char*[narg-4];
value2index = new int[narg-4];
nvalues = 0;
while (iarg < narg) {
ids[nvalues] = NULL;
if (strcmp(arg[iarg],"x") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"y") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"z") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 2;
} else if (strcmp(arg[iarg],"vx") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"vy") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"vz") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 2;
} else if (strcmp(arg[iarg],"fx") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"fy") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"fz") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 2;
} else if (strncmp(arg[iarg],"c_",2) == 0 ||
strncmp(arg[iarg],"f_",2) == 0 ||
strncmp(arg[iarg],"v_",2) == 0) {
if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE;
else if (arg[iarg][0] == 'f') which[nvalues] = FIX;
else if (arg[iarg][0] == 'v') which[nvalues] = VARIABLE;
int n = strlen(arg[iarg]);
char *suffix = new char[n];
strcpy(suffix,&arg[iarg][2]);
char *ptr = strchr(suffix,'[');
if (ptr) {
if (suffix[strlen(suffix)-1] != ']')
error->all("Illegal compute reduce command");
argindex[nvalues] = atoi(ptr+1);
*ptr = '\0';
} else argindex[nvalues] = 0;
n = strlen(suffix) + 1;
ids[nvalues] = new char[n];
strcpy(ids[nvalues],suffix);
nvalues++;
delete [] suffix;
} else break;
iarg++;
}
// optional args
replace = new int[nvalues];
for (int i = 0; i < nvalues; i++) replace[i] = -1;
while (iarg < narg) {
if (strcmp(arg[iarg],"replace") == 0) {
if (iarg+3 > narg) error->all("Illegal compute reduce command");
if (mode != MINN && mode != MAXX)
error->all("Compute reduce replace requires min or max mode");
int col1 = atoi(arg[iarg+1]) - 1;
int col2 = atoi(arg[iarg+2]) - 1;
if (col1 < 0 || col1 >= nvalues || col2 < 0 || col2 >= nvalues)
error->all("Illegal compute reduce command");
if (col1 == col2) error->all("Illegal compute reduce command");
if (replace[col1] >= 0 || replace[col2] >= 0)
error->all("Invalid replace values in compute reduce");
replace[col1] = col2;
iarg += 3;
} else error->all("Illegal compute reduce command");
}
// delete replace if not set
int flag = 0;
for (int i = 0; i < nvalues; i++)
if (replace[i] >= 0) flag = 1;
if (!flag) {
delete [] replace;
replace = NULL;
}
// setup and error check
for (int i = 0; i < nvalues; i++) {
if (which[i] == X || which[i] == V || which[i] == F)
flavor[i] = PERATOM;
else if (which[i] == COMPUTE) {
int icompute = modify->find_compute(ids[i]);
if (icompute < 0)
error->all("Compute ID for compute reduce does not exist");
if (modify->compute[icompute]->peratom_flag) {
flavor[i] = PERATOM;
if (argindex[i] == 0 &&
modify->compute[icompute]->size_peratom_cols != 0)
error->all("Compute reduce compute does not "
"calculate a per-atom vector");
if (argindex[i] && modify->compute[icompute]->size_peratom_cols == 0)
error->all("Compute reduce compute does not "
"calculate a per-atom array");
if (argindex[i] &&
argindex[i] > modify->compute[icompute]->size_peratom_cols)
error->all("Compute reduce compute array is accessed out-of-range");
} else if (modify->compute[icompute]->local_flag) {
flavor[i] = LOCAL;
if (argindex[i] == 0 &&
modify->compute[icompute]->size_local_cols != 0)
error->all("Compute reduce compute does not "
"calculate a local vector");
if (argindex[i] && modify->compute[icompute]->size_local_cols == 0)
error->all("Compute reduce compute does not "
"calculate a local array");
if (argindex[i] &&
argindex[i] > modify->compute[icompute]->size_local_cols)
error->all("Compute reduce compute array is accessed out-of-range");
} else error->all("Compute reduce compute calculates global values");
} else if (which[i] == FIX) {
int ifix = modify->find_fix(ids[i]);
if (ifix < 0)
error->all("Fix ID for compute reduce does not exist");
if (modify->fix[ifix]->peratom_flag) {
flavor[i] = PERATOM;
if (argindex[i] == 0 &&
modify->fix[ifix]->size_peratom_cols != 0)
error->all("Compute reduce fix does not "
"calculate a per-atom vector");
if (argindex[i] && modify->fix[ifix]->size_peratom_cols == 0)
error->all("Compute reduce fix does not "
"calculate a per-atom array");
if (argindex[i] &&
argindex[i] > modify->fix[ifix]->size_peratom_cols)
error->all("Compute reduce fix array is accessed out-of-range");
} else if (modify->fix[ifix]->local_flag) {
flavor[i] = LOCAL;
if (argindex[i] == 0 &&
modify->fix[ifix]->size_local_cols != 0)
error->all("Compute reduce fix does not "
"calculate a local vector");
if (argindex[i] && modify->fix[ifix]->size_local_cols == 0)
error->all("Compute reduce fix does not "
"calculate a local array");
if (argindex[i] &&
argindex[i] > modify->fix[ifix]->size_local_cols)
error->all("Compute reduce fix array is accessed out-of-range");
} else error->all("Compute reduce fix calculates global values");
} else if (which[i] == VARIABLE) {
int ivariable = input->variable->find(ids[i]);
if (ivariable < 0)
error->all("Variable name for compute reduce does not exist");
if (input->variable->atomstyle(ivariable) == 0)
error->all("Compute reduce variable is not atom-style variable");
flavor[i] = PERATOM;
}
}
// this compute produces either a scalar or vector
if (nvalues == 1) {
scalar_flag = 1;
if (mode == SUM) extscalar = 1;
else extscalar = 0;
vector = onevec = NULL;
indices = owner = NULL;
} else {
vector_flag = 1;
size_vector = nvalues;
if (mode == SUM) extvector = 1;
else extvector = 0;
vector = new double[size_vector];
onevec = new double[size_vector];
indices = new int[size_vector];
owner = new int[size_vector];
}
maxatom = 0;
varatom = NULL;
}
/* ---------------------------------------------------------------------- */
ComputeReduce::~ComputeReduce()
{
delete [] which;
delete [] argindex;
delete [] flavor;
for (int m = 0; m < nvalues; m++) delete [] ids[m];
delete [] ids;
delete [] value2index;
delete [] replace;
delete [] idregion;
delete [] vector;
delete [] onevec;
delete [] indices;
delete [] owner;
memory->destroy(varatom);
}
/* ---------------------------------------------------------------------- */
void ComputeReduce::init()
{
// set indices and check validity of all computes,fixes,variables
for (int m = 0; m < nvalues; m++) {
if (which[m] == COMPUTE) {
int icompute = modify->find_compute(ids[m]);
if (icompute < 0)
error->all("Compute ID for compute reduce does not exist");
value2index[m] = icompute;
} else if (which[m] == FIX) {
int ifix = modify->find_fix(ids[m]);
if (ifix < 0)
error->all("Fix ID for compute reduce does not exist");
value2index[m] = ifix;
} else if (which[m] == VARIABLE) {
int ivariable = input->variable->find(ids[m]);
if (ivariable < 0)
error->all("Variable name for compute reduce does not exist");
value2index[m] = ivariable;
} else value2index[m] = -1;
}
// set index and check validity of region
if (idregion) {
iregion = domain->find_region(idregion);
if (iregion == -1)
error->all("Region ID for compute reduce/region does not exist");
}
}
/* ---------------------------------------------------------------------- */
double ComputeReduce::compute_scalar()
{
invoked_scalar = update->ntimestep;
double one = compute_one(0,-1);
if (mode == SUM) {
MPI_Allreduce(&one,&scalar,1,MPI_DOUBLE,MPI_SUM,world);
} else if (mode == MINN) {
MPI_Allreduce(&one,&scalar,1,MPI_DOUBLE,MPI_MIN,world);
} else if (mode == MAXX) {
MPI_Allreduce(&one,&scalar,1,MPI_DOUBLE,MPI_MAX,world);
} else if (mode == AVE) {
MPI_Allreduce(&one,&scalar,1,MPI_DOUBLE,MPI_SUM,world);
- scalar /= count(0);
+ bigint n = count(0);
+ if (n) scalar /= n;
}
return scalar;
}
/* ---------------------------------------------------------------------- */
void ComputeReduce::compute_vector()
{
invoked_vector = update->ntimestep;
for (int m = 0; m < nvalues; m++)
if (!replace || replace[m] < 0) {
onevec[m] = compute_one(m,-1);
indices[m] = index;
}
if (mode == SUM) {
for (int m = 0; m < nvalues; m++)
MPI_Allreduce(&onevec[m],&vector[m],1,MPI_DOUBLE,MPI_SUM,world);
} else if (mode == MINN) {
if (!replace) {
for (int m = 0; m < nvalues; m++)
MPI_Allreduce(&onevec[m],&vector[m],1,MPI_DOUBLE,MPI_MIN,world);
} else {
for (int m = 0; m < nvalues; m++)
if (replace[m] < 0) {
pairme.value = onevec[m];
pairme.proc = me;
MPI_Allreduce(&pairme,&pairall,1,MPI_DOUBLE_INT,MPI_MINLOC,world);
vector[m] = pairall.value;
owner[m] = pairall.proc;
}
for (int m = 0; m < nvalues; m++)
if (replace[m] >= 0) {
if (me == owner[replace[m]])
vector[m] = compute_one(m,indices[replace[m]]);
MPI_Bcast(&vector[m],1,MPI_DOUBLE,owner[replace[m]],world);
}
}
} else if (mode == MAXX) {
if (!replace) {
for (int m = 0; m < nvalues; m++)
MPI_Allreduce(&onevec[m],&vector[m],1,MPI_DOUBLE,MPI_MAX,world);
} else {
for (int m = 0; m < nvalues; m++)
if (replace[m] < 0) {
pairme.value = onevec[m];
pairme.proc = me;
MPI_Allreduce(&pairme,&pairall,1,MPI_DOUBLE_INT,MPI_MAXLOC,world);
vector[m] = pairall.value;
owner[m] = pairall.proc;
}
for (int m = 0; m < nvalues; m++)
if (replace[m] >= 0) {
if (me == owner[replace[m]])
vector[m] = compute_one(m,indices[replace[m]]);
MPI_Bcast(&vector[m],1,MPI_DOUBLE,owner[replace[m]],world);
}
}
} else if (mode == AVE) {
for (int m = 0; m < nvalues; m++) {
MPI_Allreduce(&onevec[m],&vector[m],1,MPI_DOUBLE,MPI_SUM,world);
- vector[m] /= count(m);
+ bigint n = count(m);
+ if (n) vector[m] /= n;
}
}
}
/* ----------------------------------------------------------------------
calculate reduced value for one input M and return it
if flag = -1:
sum/min/max/ave all values in vector
for per-atom quantities, limit to atoms in group
if mode = MIN or MAX, also set index to which vector value wins
if flag >= 0: simply return vector[flag]
------------------------------------------------------------------------- */
double ComputeReduce::compute_one(int m, int flag)
{
int i;
// invoke the appropriate attribute,compute,fix,variable
// for flag = -1, compute scalar quantity by scanning over atom properties
// only include atoms in group for atom properties and per-atom quantities
index = -1;
int vidx = value2index[m];
int aidx = argindex[m];
int *mask = atom->mask;
int nlocal = atom->nlocal;
double one;
if (mode == SUM) one = 0.0;
else if (mode == MINN) one = BIG;
else if (mode == MAXX) one = -BIG;
else if (mode == AVE) one = 0.0;
if (which[m] == X) {
double **x = atom->x;
if (flag < 0) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) combine(one,x[i][aidx],i);
} else one = x[flag][aidx];
} else if (which[m] == V) {
double **v = atom->v;
if (flag < 0) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) combine(one,v[i][aidx],i);
} else one = v[flag][aidx];
} else if (which[m] == F) {
double **f = atom->f;
if (flag < 0) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) combine(one,f[i][aidx],i);
} else one = f[flag][aidx];
// invoke compute if not previously invoked
} else if (which[m] == COMPUTE) {
Compute *compute = modify->compute[vidx];
if (flavor[m] == PERATOM) {
if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
if (aidx == 0) {
double *comp_vec = compute->vector_atom;
int n = nlocal;
if (flag < 0) {
for (i = 0; i < n; i++)
if (mask[i] & groupbit) combine(one,comp_vec[i],i);
} else one = comp_vec[flag];
} else {
double **carray_atom = compute->array_atom;
int n = nlocal;
int aidxm1 = aidx - 1;
if (flag < 0) {
for (i = 0; i < n; i++)
if (mask[i] & groupbit) combine(one,carray_atom[i][aidxm1],i);
} else one = carray_atom[flag][aidxm1];
}
} else if (flavor[m] == LOCAL) {
if (!(compute->invoked_flag & INVOKED_LOCAL)) {
compute->compute_local();
compute->invoked_flag |= INVOKED_LOCAL;
}
if (aidx == 0) {
double *comp_vec = compute->vector_local;
int n = compute->size_local_rows;
if (flag < 0)
for (i = 0; i < n; i++)
combine(one,comp_vec[i],i);
else one = comp_vec[flag];
} else {
double **carray_local = compute->array_local;
int n = compute->size_local_rows;
int aidxm1 = aidx - 1;
if (flag < 0)
for (i = 0; i < n; i++)
combine(one,carray_local[i][aidxm1],i);
else one = carray_local[flag][aidxm1];
}
}
// access fix fields, check if fix frequency is a match
} else if (which[m] == FIX) {
if (update->ntimestep % modify->fix[vidx]->peratom_freq)
error->all("Fix used in compute reduce not computed at compatible time");
Fix *fix = modify->fix[vidx];
if (flavor[m] == PERATOM) {
if (aidx == 0) {
double *fix_vector = fix->vector_atom;
int n = nlocal;
if (flag < 0) {
for (i = 0; i < n; i++)
if (mask[i] & groupbit) combine(one,fix_vector[i],i);
} else one = fix_vector[flag];
} else {
double **fix_array = fix->array_atom;
int aidxm1 = aidx - 1;
if (flag < 0) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) combine(one,fix_array[i][aidxm1],i);
} else one = fix_array[flag][aidxm1];
}
} else if (flavor[m] == LOCAL) {
if (aidx == 0) {
double *fix_vector = fix->vector_local;
int n = fix->size_local_rows;
if (flag < 0)
for (i = 0; i < n; i++)
combine(one,fix_vector[i],i);
else one = fix_vector[flag];
} else {
double **fix_array = fix->array_local;
int n = fix->size_local_rows;
int aidxm1 = aidx - 1;
if (flag < 0)
for (i = 0; i < n; i++)
combine(one,fix_array[i][aidxm1],i);
else one = fix_array[flag][aidxm1];
}
}
// evaluate atom-style variable
} else if (which[m] == VARIABLE) {
if (nlocal > maxatom) {
maxatom = atom->nmax;
memory->destroy(varatom);
memory->create(varatom,maxatom,"reduce:varatom");
}
input->variable->compute_atom(vidx,igroup,varatom,1,0);
if (flag < 0) {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) combine(one,varatom[i],i);
} else one = varatom[flag];
}
return one;
}
/* ---------------------------------------------------------------------- */
bigint ComputeReduce::count(int m)
{
int vidx = value2index[m];
int aidx = argindex[m];
if (which[m] == X || which[m] == V || which[m] == F)
return group->count(igroup);
else if (which[m] == COMPUTE) {
Compute *compute = modify->compute[vidx];
if (flavor[m] == PERATOM) {
return group->count(igroup);
} else if (flavor[m] == LOCAL) {
bigint ncount = compute->size_local_rows;
bigint ncountall;
MPI_Allreduce(&ncount,&ncountall,1,MPI_LMP_BIGINT,MPI_SUM,world);
return ncountall;
}
} else if (which[m] == FIX) {
Fix *fix = modify->fix[vidx];
if (flavor[m] == PERATOM) {
return group->count(igroup);
} else if (flavor[m] == LOCAL) {
bigint ncount = fix->size_local_rows;
bigint ncountall;
MPI_Allreduce(&ncount,&ncountall,1,MPI_LMP_BIGINT,MPI_SUM,world);
return ncountall;
}
} else if (which[m] == VARIABLE)
return group->count(igroup);
bigint dummy = 0;
return dummy;
}
/* ----------------------------------------------------------------------
combine two values according to reduction mode
for MIN/MAX, also update index with winner
------------------------------------------------------------------------- */
void ComputeReduce::combine(double &one, double two, int i)
{
if (mode == SUM || mode == AVE) one += two;
else if (mode == MINN) {
if (two < one) {
one = two;
index = i;
}
} else if (mode == MAXX) {
if (two > one) {
one = two;
index = i;
}
}
}
/* ----------------------------------------------------------------------
memory usage of varatom
------------------------------------------------------------------------- */
double ComputeReduce::memory_usage()
{
double bytes = maxatom * sizeof(double);
return bytes;
}
diff --git a/src/compute_slice.cpp b/src/compute_slice.cpp
index 15096b8c8..51e7747e3 100644
--- a/src/compute_slice.cpp
+++ b/src/compute_slice.cpp
@@ -1,312 +1,312 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "stdlib.h"
#include "string.h"
#include "compute_slice.h"
#include "update.h"
#include "modify.h"
#include "fix.h"
#include "group.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{COMPUTE,FIX};
#define INVOKED_VECTOR 2
#define INVOKED_ARRAY 4
/* ---------------------------------------------------------------------- */
ComputeSlice::ComputeSlice(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg)
{
if (narg < 7) error->all("Illegal compute slice command");
MPI_Comm_rank(world,&me);
nstart = atoi(arg[3]);
nstop = atoi(arg[4]);
nskip = atoi(arg[5]);
if (nstart < 1 || nstop < nstart || nskip < 1)
error->all("Illegal compute slice command");
// parse remaining values until one isn't recognized
which = new int[narg-6];
argindex = new int[narg-6];
ids = new char*[narg-6];
value2index = new int[narg-6];
nvalues = 0;
for (int iarg = 6; iarg < narg; iarg++) {
if (strncmp(arg[iarg],"c_",2) == 0 ||
strncmp(arg[iarg],"f_",2) == 0) {
if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE;
else if (arg[iarg][0] == 'f') which[nvalues] = FIX;
int n = strlen(arg[iarg]);
char *suffix = new char[n];
strcpy(suffix,&arg[iarg][2]);
char *ptr = strchr(suffix,'[');
if (ptr) {
if (suffix[strlen(suffix)-1] != ']')
error->all("Illegal compute slice command");
argindex[nvalues] = atoi(ptr+1);
*ptr = '\0';
} else argindex[nvalues] = 0;
n = strlen(suffix) + 1;
ids[nvalues] = new char[n];
strcpy(ids[nvalues],suffix);
nvalues++;
delete [] suffix;
} else error->all("Illegal compute slice command");
}
// setup and error check
for (int i = 0; i < nvalues; i++) {
if (which[i] == COMPUTE) {
int icompute = modify->find_compute(ids[i]);
if (icompute < 0)
error->all("Compute ID for compute slice does not exist");
if (modify->compute[icompute]->vector_flag) {
if (argindex[i])
error->all("Compute slice compute does not calculate a global array");
if (nstop > modify->compute[icompute]->size_vector)
error->all("Compute slice compute vector is accessed out-of-range");
} else if (modify->compute[icompute]->array_flag) {
if (argindex[i] == 0)
error->all("Compute slice compute does not calculate a global vector");
if (argindex[i] > modify->compute[icompute]->size_array_cols)
error->all("Compute slice compute array is accessed out-of-range");
if (nstop > modify->compute[icompute]->size_array_rows)
error->all("Compute slice compute array is accessed out-of-range");
} else error->all("Compute slice compute does not calculate "
"global vector or array");
} else if (which[i] == FIX) {
int ifix = modify->find_fix(ids[i]);
if (ifix < 0)
error->all("Fix ID for compute slice does not exist");
if (modify->fix[ifix]->vector_flag) {
if (argindex[i])
error->all("Compute slice fix does not calculate a global array");
if (nstop > modify->fix[ifix]->size_vector)
error->all("Compute slice fix vector is accessed out-of-range");
} else if (modify->fix[ifix]->array_flag) {
if (argindex[i] == 0)
error->all("Compute slice fix does not calculate a global vector");
if (argindex[i] > modify->fix[ifix]->size_array_cols)
error->all("Compute slice fix array is accessed out-of-range");
if (nstop > modify->fix[ifix]->size_array_rows)
error->all("Compute slice fix array is accessed out-of-range");
} else error->all("Compute slice fix does not calculate "
"global vector or array");
}
}
// this compute produces either a vector or array
// for vector, set intensive/extensive to mirror input values
// for array, set intensive if all input values are intensive, else extensive
vector = NULL;
array = NULL;
extlist = NULL;
if (nvalues == 1) {
vector_flag = 1;
size_vector = (nstop-nstart) / nskip;
memory->create(vector,size_vector,"slice:vector");
if (which[0] == COMPUTE) {
int icompute = modify->find_compute(ids[0]);
if (argindex[0] == 0) {
extvector = modify->compute[icompute]->extvector;
if (modify->compute[icompute]->extvector == -1) {
extlist = new int[size_vector];
int j = 0;
for (int i = nstart; i < nstop; i += nskip)
extlist[j++] = modify->compute[icompute]->extlist[i-1];
}
} else extvector = modify->compute[icompute]->extarray;
- } else if (which[0] = FIX) {
+ } else if (which[0] == FIX) {
int ifix = modify->find_fix(ids[0]);
if (argindex[0] == 0) {
extvector = modify->fix[ifix]->extvector;
if (modify->fix[ifix]->extvector == -1) {
extlist = new int[size_vector];
int j = 0;
for (int i = nstart; i < nstop; i += nskip)
extlist[j++] = modify->fix[ifix]->extlist[i-1];
}
} else extvector = modify->fix[ifix]->extarray;
}
} else {
array_flag = 1;
size_array_rows = (nstop-nstart) / nskip;
size_array_cols = nvalues;
memory->create(array,size_array_rows,size_array_cols,"slice:array");
extarray = 0;
for (int i = 0; i < nvalues; i++) {
if (which[i] == COMPUTE) {
int icompute = modify->find_compute(ids[i]);
if (argindex[i] == 0) {
if (modify->compute[icompute]->extvector == 1) extarray = 1;
if (modify->compute[icompute]->extvector == -1) {
for (int j = 0; j < modify->compute[icompute]->size_vector; j++)
if (modify->compute[icompute]->extlist[j]) extarray = 1;
}
} else {
if (modify->compute[icompute]->extarray) extarray = 1;
}
} else if (which[i] == FIX) {
int ifix = modify->find_fix(ids[i]);
if (argindex[i] == 0) {
if (modify->fix[ifix]->extvector == 1) extarray = 1;
if (modify->fix[ifix]->extvector == -1) {
for (int j = 0; j < modify->fix[ifix]->size_vector; j++)
if (modify->fix[ifix]->extlist[j]) extarray = 1;
}
} else {
if (modify->fix[ifix]->extarray) extarray = 1;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
ComputeSlice::~ComputeSlice()
{
delete [] which;
delete [] argindex;
for (int m = 0; m < nvalues; m++) delete [] ids[m];
delete [] ids;
delete [] value2index;
memory->destroy(vector);
memory->destroy(array);
}
/* ---------------------------------------------------------------------- */
void ComputeSlice::init()
{
// set indices and check validity of all computes,fixes
for (int m = 0; m < nvalues; m++) {
if (which[m] == COMPUTE) {
int icompute = modify->find_compute(ids[m]);
if (icompute < 0)
error->all("Compute ID for compute slice does not exist");
value2index[m] = icompute;
} else if (which[m] == FIX) {
int ifix = modify->find_fix(ids[m]);
if (ifix < 0)
error->all("Fix ID for compute slice does not exist");
value2index[m] = ifix;
}
}
}
/* ---------------------------------------------------------------------- */
void ComputeSlice::compute_vector()
{
invoked_vector = update->ntimestep;
extract_one(0,vector,1);
}
/* ---------------------------------------------------------------------- */
void ComputeSlice::compute_array()
{
invoked_array = update->ntimestep;
for (int m = 0; m < nvalues; m++)
extract_one(0,&array[m][0],nvalues);
}
/* ----------------------------------------------------------------------
calculate sliced value for one input M and return it in vec
vec may be array so that returned values are with stride
------------------------------------------------------------------------- */
void ComputeSlice::extract_one(int m, double *vec, int stride)
{
int i,j;
// invoke the appropriate compute if needed
if (which[m] == COMPUTE) {
Compute *compute = modify->compute[value2index[m]];
if (argindex[m] == 0) {
if (!(compute->invoked_flag & INVOKED_VECTOR)) {
compute->compute_vector();
compute->invoked_flag |= INVOKED_VECTOR;
}
double *cvector = compute->vector;
j = 0;
for (i = nstart; i < nstop; i += nskip) {
vec[j] = cvector[i-1];
j += stride;
}
} else {
if (!(compute->invoked_flag & INVOKED_ARRAY)) {
compute->compute_array();
compute->invoked_flag |= INVOKED_ARRAY;
}
double **carray = compute->array;
int icol = argindex[m]-1;
j = 0;
for (i = nstart; i < nstop; i += nskip) {
vec[j] = carray[i-1][icol];
j += stride;
}
}
// access fix fields, check if fix frequency is a match
} else if (which[m] == FIX) {
if (update->ntimestep % modify->fix[value2index[m]]->global_freq)
error->all("Fix used in compute slice not computed at compatible time");
Fix *fix = modify->fix[value2index[m]];
if (argindex[m] == 0) {
j = 0;
for (i = nstart; i < nstop; i += nskip) {
vec[j] = fix->compute_vector(i-1);
j += stride;
}
} else {
int icol = argindex[m]-1;
j = 0;
for (i = nstart; i < nstop; i += nskip) {
vec[j] = fix->compute_array(i-1,icol);
j += stride;
}
}
}
}
diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp
index 34f9adb16..fa5c3be60 100644
--- a/src/fix_addforce.cpp
+++ b/src/fix_addforce.cpp
@@ -1,347 +1,347 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "fix_addforce.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "domain.h"
#include "region.h"
#include "respa.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{NONE,CONSTANT,EQUAL,ATOM};
/* ---------------------------------------------------------------------- */
FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 6) error->all("Illegal fix addforce command");
scalar_flag = 1;
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extscalar = 1;
extvector = 1;
xstr = ystr = zstr = NULL;
if (strstr(arg[3],"v_") == arg[3]) {
int n = strlen(&arg[3][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[3][2]);
} else {
xvalue = atof(arg[3]);
xstyle = CONSTANT;
}
if (strstr(arg[4],"v_") == arg[4]) {
int n = strlen(&arg[4][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[4][2]);
} else {
yvalue = atof(arg[4]);
ystyle = CONSTANT;
}
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[5][2]);
} else {
zvalue = atof(arg[5]);
zstyle = CONSTANT;
}
// optional args
iregion = -1;
idregion = NULL;
estr = NULL;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"region") == 0) {
if (iarg+2 > narg) error->all("Illegal fix addforce command");
iregion = domain->find_region(arg[iarg+1]);
if (iregion == -1)
error->all("Region ID for fix addforce does not exist");
int n = strlen(arg[iarg+1]) + 1;
idregion = new char[n];
strcpy(idregion,arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"energy") == 0) {
if (iarg+2 > narg) error->all("Illegal fix addforce command");
if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) {
int n = strlen(&arg[iarg+1][2]) + 1;
estr = new char[n];
strcpy(estr,&arg[iarg+1][2]);
} else error->all("Illegal fix addforce command");
iarg += 2;
} else error->all("Illegal fix addforce command");
}
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
maxatom = 0;
sforce = NULL;
}
/* ---------------------------------------------------------------------- */
FixAddForce::~FixAddForce()
{
delete [] xstr;
delete [] ystr;
delete [] zstr;
delete [] estr;
delete [] idregion;
memory->destroy(sforce);
}
/* ---------------------------------------------------------------------- */
int FixAddForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixAddForce::init()
{
// check variables
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all("Variable name for fix addforce does not exist");
if (input->variable->equalstyle(xvar)) xstyle = EQUAL;
else if (input->variable->atomstyle(xvar)) xstyle = ATOM;
else error->all("Variable for fix addforce is invalid style");
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all("Variable name for fix addforce does not exist");
if (input->variable->equalstyle(yvar)) ystyle = EQUAL;
else if (input->variable->atomstyle(yvar)) ystyle = ATOM;
else error->all("Variable for fix addforce is invalid style");
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all("Variable name for fix addforce does not exist");
if (input->variable->equalstyle(zvar)) zstyle = EQUAL;
else if (input->variable->atomstyle(zvar)) zstyle = ATOM;
else error->all("Variable for fix addforce is invalid style");
}
if (estr) {
evar = input->variable->find(estr);
if (evar < 0) error->all("Variable name for fix addforce does not exist");
if (input->variable->atomstyle(evar)) estyle = ATOM;
else error->all("Variable for fix addforce is invalid style");
} else estyle = NONE;
// set index and check validity of region
if (iregion >= 0) {
iregion = domain->find_region(idregion);
if (iregion == -1) error->all("Region ID for fix addforce does not exist");
}
if (xstyle == ATOM || ystyle == ATOM || zstyle == ATOM)
varflag = ATOM;
else if (xstyle == EQUAL || ystyle == EQUAL || zstyle == EQUAL)
varflag = EQUAL;
else varflag = CONSTANT;
if (varflag == CONSTANT && estyle != NONE)
error->all("Cannot use variable energy with "
"constant force in fix addforce");
if ((varflag == EQUAL || varflag == ATOM) &&
update->whichflag == 2 && estyle == NONE)
error->all("Must use variable energy with fix addforce");
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixAddForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixAddForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAddForce::post_force(int vflag)
{
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
// reallocate sforce array if necessary
if ((varflag == ATOM || estyle == ATOM) && nlocal > maxatom) {
maxatom = atom->nmax;
memory->destroy(sforce);
memory->create(sforce,maxatom,4,"addforce:sforce");
}
// foriginal[0] = "potential energy" for added force
// foriginal[123] = force on atoms before extra force added
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
force_flag = 0;
// constant force
// potential energy = - x dot f
if (varflag == CONSTANT) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
foriginal[0] -= xvalue*x[i][0] + yvalue*x[i][1] + zvalue*x[i][2];
foriginal[1] += f[i][0];
foriginal[2] += f[i][1];
foriginal[3] += f[i][2];
f[i][0] += xvalue;
f[i][1] += yvalue;
f[i][2] += zvalue;
}
// variable force, wrap with clear/add
// potential energy = evar if defined, else 0.0
// wrap with clear/add
} else {
modify->clearstep_compute();
if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar);
else if (xstyle == ATOM && sforce)
input->variable->compute_atom(xvar,igroup,&sforce[0][0],4,0);
if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar);
else if (ystyle == ATOM && sforce)
input->variable->compute_atom(yvar,igroup,&sforce[0][1],4,0);
if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar);
else if (zstyle == ATOM && sforce)
input->variable->compute_atom(zvar,igroup,&sforce[0][2],4,0);
if (estyle == ATOM && sforce)
input->variable->compute_atom(evar,igroup,&sforce[0][3],4,0);
modify->addstep_compute(update->ntimestep + 1);
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
if (estyle == ATOM) foriginal[0] += sforce[i][3];
foriginal[1] += f[i][0];
foriginal[2] += f[i][1];
foriginal[3] += f[i][2];
if (xstyle == ATOM) f[i][0] += sforce[i][0];
else if (xstyle) f[i][0] += xvalue;
if (ystyle == ATOM) f[i][1] += sforce[i][1];
else if (ystyle) f[i][1] += yvalue;
if (zstyle == ATOM) f[i][2] += sforce[i][2];
else if (zstyle) f[i][2] += zvalue;
}
}
}
/* ---------------------------------------------------------------------- */
void FixAddForce::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAddForce::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
potential energy of added force
------------------------------------------------------------------------- */
double FixAddForce::compute_scalar()
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[0];
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixAddForce::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n+1];
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixAddForce::memory_usage()
{
double bytes = 0.0;
if (varflag == ATOM) bytes = atom->nmax*4 * sizeof(double);
return bytes;
}
diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp
index d69edf87a..b604977f7 100644
--- a/src/fix_ave_atom.cpp
+++ b/src/fix_ave_atom.cpp
@@ -1,448 +1,449 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "stdlib.h"
#include "string.h"
#include "fix_ave_atom.h"
#include "atom.h"
#include "domain.h"
#include "update.h"
#include "modify.h"
#include "compute.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{X,V,F,COMPUTE,FIX,VARIABLE};
#define INVOKED_PERATOM 8
/* ---------------------------------------------------------------------- */
FixAveAtom::FixAveAtom(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 7) error->all("Illegal fix ave/atom command");
time_depend = 1;
nevery = atoi(arg[3]);
nrepeat = atoi(arg[4]);
peratom_freq = atoi(arg[5]);
// parse remaining values
which = new int[narg-6];
argindex = new int[narg-6];
ids = new char*[narg-6];
value2index = new int[narg-6];
nvalues = 0;
int iarg = 6;
while (iarg < narg) {
ids[nvalues] = NULL;
if (strcmp(arg[iarg],"x") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"y") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"z") == 0) {
which[nvalues] = X;
argindex[nvalues++] = 2;
} else if (strcmp(arg[iarg],"vx") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"vy") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"vz") == 0) {
which[nvalues] = V;
argindex[nvalues++] = 2;
} else if (strcmp(arg[iarg],"fx") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"fy") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 1;
} else if (strcmp(arg[iarg],"fz") == 0) {
which[nvalues] = F;
argindex[nvalues++] = 2;
} else if (strncmp(arg[iarg],"c_",2) == 0 ||
strncmp(arg[iarg],"f_",2) == 0 ||
strncmp(arg[iarg],"v_",2) == 0) {
if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE;
else if (arg[iarg][0] == 'f') which[nvalues] = FIX;
else if (arg[iarg][0] == 'v') which[nvalues] = VARIABLE;
int n = strlen(arg[iarg]);
char *suffix = new char[n];
strcpy(suffix,&arg[iarg][2]);
char *ptr = strchr(suffix,'[');
if (ptr) {
if (suffix[strlen(suffix)-1] != ']')
error->all("Illegal fix ave/atom command");
argindex[nvalues] = atoi(ptr+1);
*ptr = '\0';
} else argindex[nvalues] = 0;
n = strlen(suffix) + 1;
ids[nvalues] = new char[n];
strcpy(ids[nvalues],suffix);
nvalues++;
delete [] suffix;
} else error->all("Illegal fix ave/atom command");
iarg++;
}
// setup and error check
// for fix inputs, check that fix frequency is acceptable
if (nevery <= 0 || nrepeat <= 0 || peratom_freq <= 0)
error->all("Illegal fix ave/atom command");
if (peratom_freq % nevery || (nrepeat-1)*nevery >= peratom_freq)
error->all("Illegal fix ave/atom command");
for (int i = 0; i < nvalues; i++) {
if (which[i] == COMPUTE) {
int icompute = modify->find_compute(ids[i]);
if (icompute < 0)
error->all("Compute ID for fix ave/atom does not exist");
if (modify->compute[icompute]->peratom_flag == 0)
error->all("Fix ave/atom compute does not calculate per-atom values");
if (argindex[i] == 0 &&
modify->compute[icompute]->size_peratom_cols != 0)
error->all("Fix ave/atom compute does not "
"calculate a per-atom vector");
if (argindex[i] && modify->compute[icompute]->size_peratom_cols == 0)
error->all("Fix ave/atom compute does not "
"calculate a per-atom array");
if (argindex[i] &&
argindex[i] > modify->compute[icompute]->size_peratom_cols)
error->all("Fix ave/atom compute array is accessed out-of-range");
} else if (which[i] == FIX) {
int ifix = modify->find_fix(ids[i]);
if (ifix < 0)
error->all("Fix ID for fix ave/atom does not exist");
if (modify->fix[ifix]->peratom_flag == 0)
error->all("Fix ave/atom fix does not calculate per-atom values");
if (argindex[i] == 0 && modify->fix[ifix]->size_peratom_cols != 0)
error->all("Fix ave/atom fix does not calculate a per-atom vector");
if (argindex[i] && modify->fix[ifix]->size_peratom_cols == 0)
error->all("Fix ave/atom fix does not calculate a per-atom array");
if (argindex[i] && argindex[i] > modify->fix[ifix]->size_peratom_cols)
error->all("Fix ave/atom fix array is accessed out-of-range");
if (nevery % modify->fix[ifix]->peratom_freq)
error->all("Fix for fix ave/atom not computed at compatible time");
} else if (which[i] == VARIABLE) {
int ivariable = input->variable->find(ids[i]);
if (ivariable < 0)
error->all("Variable name for fix ave/atom does not exist");
if (input->variable->atomstyle(ivariable) == 0)
error->all("Fix ave/atom variable is not atom-style variable");
}
}
// this fix produces either a per-atom vector or array
peratom_flag = 1;
if (nvalues == 1) size_peratom_cols = 0;
else size_peratom_cols = nvalues;
// perform initial allocation of atom-based array
// register with Atom class
array = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
// zero the array since dump may access it on timestep 0
// zero the array since a variable may access it before first run
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
for (int m = 0; m < nvalues; m++)
array[i][m] = 0.0;
// nvalid = next step on which end_of_step does something
// add nvalid to all computes that store invocation times
// since don't know a priori which are invoked by this fix
// once in end_of_step() can set timestep for ones actually invoked
irepeat = 0;
nvalid = nextvalid();
modify->addstep_compute_all(nvalid);
}
/* ---------------------------------------------------------------------- */
FixAveAtom::~FixAveAtom()
{
// unregister callback to this fix from Atom class
atom->delete_callback(id,0);
delete [] which;
delete [] argindex;
for (int m = 0; m < nvalues; m++) delete [] ids[m];
delete [] ids;
delete [] value2index;
memory->destroy(array);
}
/* ---------------------------------------------------------------------- */
int FixAveAtom::setmask()
{
int mask = 0;
mask |= END_OF_STEP;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixAveAtom::init()
{
// set indices and check validity of all computes,fixes,variables
for (int m = 0; m < nvalues; m++) {
if (which[m] == COMPUTE) {
int icompute = modify->find_compute(ids[m]);
if (icompute < 0)
error->all("Compute ID for fix ave/atom does not exist");
value2index[m] = icompute;
} else if (which[m] == FIX) {
int ifix = modify->find_fix(ids[m]);
if (ifix < 0)
error->all("Fix ID for fix ave/atom does not exist");
value2index[m] = ifix;
} else if (which[m] == VARIABLE) {
int ivariable = input->variable->find(ids[m]);
if (ivariable < 0)
error->all("Variable name for fix ave/atom does not exist");
value2index[m] = ivariable;
} else value2index[m] = -1;
}
// need to reset nvalid if nvalid < ntimestep b/c minimize was performed
if (nvalid < update->ntimestep) {
irepeat = 0;
nvalid = nextvalid();
modify->addstep_compute_all(nvalid);
}
}
/* ----------------------------------------------------------------------
only does something if nvalid = current timestep
------------------------------------------------------------------------- */
void FixAveAtom::setup(int vflag)
{
end_of_step();
}
/* ---------------------------------------------------------------------- */
void FixAveAtom::end_of_step()
{
int i,j,m,n;
// skip if not step which requires doing something
bigint ntimestep = update->ntimestep;
if (ntimestep != nvalid) return;
// zero if first step
int nlocal = atom->nlocal;
if (irepeat == 0)
for (i = 0; i < nlocal; i++)
for (m = 0; m < nvalues; m++)
array[i][m] = 0.0;
// accumulate results of attributes,computes,fixes,variables to local copy
// compute/fix/variable may invoke computes so wrap with clear/add
modify->clearstep_compute();
int *mask = atom->mask;
for (m = 0; m < nvalues; m++) {
n = value2index[m];
j = argindex[m];
if (which[m] == X) {
double **x = atom->x;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += x[i][j];
} else if (which[m] == V) {
double **v = atom->v;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += v[i][j];
} else if (which[m] == F) {
double **f = atom->f;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += f[i][j];
// invoke compute if not previously invoked
} else if (which[m] == COMPUTE) {
Compute *compute = modify->compute[n];
if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
if (j == 0) {
double *compute_vector = compute->vector_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += compute_vector[i];
} else {
int jm1 = j - 1;
double **compute_array = compute->array_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += compute_array[i][jm1];
}
// access fix fields, guaranteed to be ready
} else if (which[m] == FIX) {
if (j == 0) {
double *fix_vector = modify->fix[n]->vector_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += fix_vector[i];
} else {
int jm1 = j - 1;
double **fix_array = modify->fix[n]->array_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) array[i][m] += fix_array[i][jm1];
}
// evaluate atom-style variable
+ // final argument = 1 sums result to array
} else if (which[m] == VARIABLE && array)
input->variable->compute_atom(n,igroup,&array[0][m],nvalues,1);
}
// done if irepeat < nrepeat
// else reset irepeat and nvalid
irepeat++;
if (irepeat < nrepeat) {
nvalid += nevery;
modify->addstep_compute(nvalid);
return;
}
irepeat = 0;
nvalid = ntimestep+peratom_freq - (nrepeat-1)*nevery;
modify->addstep_compute(nvalid);
// average the final result for the Nfreq timestep
double repeat = nrepeat;
for (i = 0; i < nlocal; i++)
for (m = 0; m < nvalues; m++)
array[i][m] /= repeat;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixAveAtom::memory_usage()
{
double bytes;
bytes = atom->nmax*nvalues * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate atom-based array
------------------------------------------------------------------------- */
void FixAveAtom::grow_arrays(int nmax)
{
memory->grow(array,nmax,nvalues,"fix_ave/atom:array");
array_atom = array;
if (array) vector_atom = array[0];
else vector_atom = NULL;
}
/* ----------------------------------------------------------------------
copy values within local atom-based array
------------------------------------------------------------------------- */
void FixAveAtom::copy_arrays(int i, int j)
{
for (int m = 0; m < nvalues; m++)
array[j][m] = array[i][m];
}
/* ----------------------------------------------------------------------
pack values in local atom-based array for exchange with another proc
------------------------------------------------------------------------- */
int FixAveAtom::pack_exchange(int i, double *buf)
{
for (int m = 0; m < nvalues; m++) buf[m] = array[i][m];
return nvalues;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based array from exchange with another proc
------------------------------------------------------------------------- */
int FixAveAtom::unpack_exchange(int nlocal, double *buf)
{
for (int m = 0; m < nvalues; m++) array[nlocal][m] = buf[m];
return nvalues;
}
/* ----------------------------------------------------------------------
calculate nvalid = next step on which end_of_step does something
can be this timestep if multiple of nfreq and nrepeat = 1
else backup from next multiple of nfreq
------------------------------------------------------------------------- */
bigint FixAveAtom::nextvalid()
{
bigint nvalid = (update->ntimestep/peratom_freq)*peratom_freq + peratom_freq;
if (nvalid-peratom_freq == update->ntimestep && nrepeat == 1)
nvalid = update->ntimestep;
else
nvalid -= (nrepeat-1)*nevery;
if (nvalid < update->ntimestep) nvalid += peratom_freq;
return nvalid;
}
diff --git a/src/fix_aveforce.cpp b/src/fix_aveforce.cpp
index 8d0865c19..b4fd4f333 100644
--- a/src/fix_aveforce.cpp
+++ b/src/fix_aveforce.cpp
@@ -1,311 +1,311 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mpi.h"
#include "string.h"
#include "stdlib.h"
#include "fix_aveforce.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "domain.h"
#include "region.h"
#include "respa.h"
#include "input.h"
#include "variable.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{NONE,CONSTANT,EQUAL};
/* ---------------------------------------------------------------------- */
FixAveForce::FixAveForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 6) error->all("Illegal fix aveforce command");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
xstr = ystr = zstr = NULL;
if (strstr(arg[3],"v_") == arg[3]) {
int n = strlen(&arg[3][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[3][2]);
} else if (strcmp(arg[3],"NULL") == 0) {
xstyle = NONE;
} else {
xvalue = atof(arg[3]);
xstyle = CONSTANT;
}
if (strstr(arg[4],"v_") == arg[4]) {
int n = strlen(&arg[4][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[4][2]);
} else if (strcmp(arg[4],"NULL") == 0) {
ystyle = NONE;
} else {
yvalue = atof(arg[4]);
ystyle = CONSTANT;
}
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[5][2]);
} else if (strcmp(arg[5],"NULL") == 0) {
zstyle = NONE;
} else {
zvalue = atof(arg[5]);
zstyle = CONSTANT;
}
// optional args
iregion = -1;
idregion = NULL;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"region") == 0) {
if (iarg+2 > narg) error->all("Illegal fix aveforce command");
iregion = domain->find_region(arg[iarg+1]);
if (iregion == -1)
error->all("Region ID for fix aveforce does not exist");
int n = strlen(arg[iarg+1]) + 1;
idregion = new char[n];
strcpy(idregion,arg[iarg+1]);
iarg += 2;
} else error->all("Illegal fix aveforce command");
}
foriginal_all[0] = foriginal_all[1] =
foriginal_all[2] = foriginal_all[3] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixAveForce::~FixAveForce()
{
delete [] xstr;
delete [] ystr;
delete [] zstr;
delete [] idregion;
}
/* ---------------------------------------------------------------------- */
int FixAveForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixAveForce::init()
{
// check variables
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all("Variable name for fix aveforce does not exist");
if (input->variable->equalstyle(xvar)) xstyle = EQUAL;
else error->all("Variable for fix aveforce is invalid style");
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all("Variable name for fix aveforce does not exist");
if (input->variable->equalstyle(yvar)) ystyle = EQUAL;
else error->all("Variable for fix aveforce is invalid style");
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all("Variable name for fix aveforce does not exist");
if (input->variable->equalstyle(zvar)) zstyle = EQUAL;
else error->all("Variable for fix aveforce is invalid style");
}
// set index and check validity of region
if (iregion >= 0) {
iregion = domain->find_region(idregion);
if (iregion == -1) error->all("Region ID for fix aveforce does not exist");
}
if (xstyle == EQUAL || ystyle == EQUAL || zstyle == EQUAL) varflag = EQUAL;
else varflag = CONSTANT;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixAveForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
/* ---------------------------------------------------------------------- */
void FixAveForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixAveForce::post_force(int vflag)
{
// sum forces on participating atoms
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double foriginal[4];
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
foriginal[3] += 1.0;
}
// average the force on participating atoms
// add in requested amount, computed via variable evaluation if necessary
// wrap variable evaluation with clear/add
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
int ncount = static_cast<int> (foriginal_all[3]);
if (ncount == 0) return;
if (varflag == EQUAL) {
modify->clearstep_compute();
if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar);
if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar);
if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar);
modify->addstep_compute(update->ntimestep + 1);
}
double fave[3];
fave[0] = foriginal_all[0]/ncount + xvalue;
fave[1] = foriginal_all[1]/ncount + yvalue;
fave[2] = foriginal_all[2]/ncount + zvalue;
// set force of all participating atoms to same value
// only for active dimensions
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
if (xstyle) f[i][0] = fave[0];
if (ystyle) f[i][1] = fave[1];
if (zstyle) f[i][2] = fave[2];
}
}
/* ---------------------------------------------------------------------- */
void FixAveForce::post_force_respa(int vflag, int ilevel, int iloop)
{
// ave + extra force on outermost level
// just ave on inner levels
if (ilevel == nlevels_respa-1) post_force(vflag);
else {
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double foriginal[4];
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
foriginal[3] += 1.0;
}
MPI_Allreduce(foriginal,foriginal_all,4,MPI_DOUBLE,MPI_SUM,world);
int ncount = static_cast<int> (foriginal_all[3]);
if (ncount == 0) return;
double fave[3];
fave[0] = foriginal_all[0]/ncount;
fave[1] = foriginal_all[1]/ncount;
fave[2] = foriginal_all[2]/ncount;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
if (xstyle) f[i][0] = fave[0];
if (ystyle) f[i][1] = fave[1];
if (zstyle) f[i][2] = fave[2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixAveForce::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixAveForce::compute_vector(int n)
{
return foriginal_all[n];
}
diff --git a/src/fix_deform.cpp b/src/fix_deform.cpp
index ac8a64ba0..75db86729 100644
--- a/src/fix_deform.cpp
+++ b/src/fix_deform.cpp
@@ -1,848 +1,848 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Pieter in 't Veld (SNL)
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "fix_deform.h"
#include "atom.h"
#include "update.h"
#include "comm.h"
#include "irregular.h"
#include "domain.h"
#include "lattice.h"
#include "force.h"
#include "modify.h"
#include "kspace.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{NONE,FINAL,DELTA,SCALE,VEL,ERATE,TRATE,VOLUME,WIGGLE};
enum{ONE_FROM_ONE,ONE_FROM_TWO,TWO_FROM_ONE};
// same as domain.cpp, fix_nvt_sllod.cpp, compute_temp_deform.cpp
enum{NO_REMAP,X_REMAP,V_REMAP};
/* ---------------------------------------------------------------------- */
FixDeform::FixDeform(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
{
if (narg < 4) error->all("Illegal fix deform command");
box_change = 1;
no_change_box = 1;
nevery = atoi(arg[3]);
if (nevery <= 0) error->all("Illegal fix deform command");
// set defaults
set = new Set[6];
set[0].style = set[1].style = set[2].style =
set[3].style = set[4].style = set[5].style = NONE;
// parse arguments
triclinic = domain->triclinic;
int index;
int iarg = 4;
while (iarg < narg) {
if (strcmp(arg[iarg],"x") == 0 ||
strcmp(arg[iarg],"y") == 0 ||
strcmp(arg[iarg],"z") == 0) {
if (strcmp(arg[iarg],"x") == 0) index = 0;
else if (strcmp(arg[iarg],"y") == 0) index = 1;
else if (strcmp(arg[iarg],"z") == 0) index = 2;
if (iarg+2 > narg) error->all("Illegal fix deform command");
if (strcmp(arg[iarg+1],"final") == 0) {
if (iarg+4 > narg) error->all("Illegal fix deform command");
set[index].style = FINAL;
set[index].flo = atof(arg[iarg+2]);
set[index].fhi = atof(arg[iarg+3]);
iarg += 4;
} else if (strcmp(arg[iarg+1],"delta") == 0) {
if (iarg+4 > narg) error->all("Illegal fix deform command");
set[index].style = DELTA;
set[index].dlo = atof(arg[iarg+2]);
set[index].dhi = atof(arg[iarg+3]);
iarg += 4;
} else if (strcmp(arg[iarg+1],"scale") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = SCALE;
set[index].scale = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"vel") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = VEL;
set[index].vel = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"erate") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = ERATE;
set[index].rate = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"trate") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = TRATE;
set[index].rate = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"volume") == 0) {
set[index].style = VOLUME;
iarg += 2;
} else if (strcmp(arg[iarg+1],"wiggle") == 0) {
if (iarg+4 > narg) error->all("Illegal fix deform command");
set[index].style = WIGGLE;
set[index].amplitude = atof(arg[iarg+2]);
set[index].tperiod = atof(arg[iarg+3]);
if (set[index].tperiod <= 0.0)
error->all("Illegal fix deform command");
iarg += 4;
} else error->all("Illegal fix deform command");
} else if (strcmp(arg[iarg],"xy") == 0 ||
strcmp(arg[iarg],"xz") == 0 ||
strcmp(arg[iarg],"yz") == 0) {
if (triclinic == 0)
error->all("Fix deform tilt factors require triclinic box");
if (strcmp(arg[iarg],"xy") == 0) index = 5;
else if (strcmp(arg[iarg],"xz") == 0) index = 4;
else if (strcmp(arg[iarg],"yz") == 0) index = 3;
if (iarg+2 > narg) error->all("Illegal fix deform command");
if (strcmp(arg[iarg+1],"final") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = FINAL;
set[index].ftilt = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"delta") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = DELTA;
set[index].dtilt = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"vel") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = VEL;
set[index].vel = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"erate") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = ERATE;
set[index].rate = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"trate") == 0) {
if (iarg+3 > narg) error->all("Illegal fix deform command");
set[index].style = TRATE;
set[index].rate = atof(arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"wiggle") == 0) {
if (iarg+4 > narg) error->all("Illegal fix deform command");
set[index].style = WIGGLE;
set[index].amplitude = atof(arg[iarg+2]);
set[index].tperiod = atof(arg[iarg+3]);
if (set[index].tperiod <= 0.0)
error->all("Illegal fix deform command");
iarg += 4;
} else error->all("Illegal fix deform command");
} else break;
}
// read options from end of input line
// no x remap effectively moves atoms within box, so set restart_pbc
options(narg-iarg,&arg[iarg]);
if (remapflag != X_REMAP) restart_pbc = 1;
// setup dimflags used by other classes to check for volume-change conflicts
for (int i = 0; i < 6; i++)
if (set[i].style == NONE) dimflag[i] = 0;
else dimflag[i] = 1;
if (dimflag[0] || dimflag[1] || dimflag[2]) box_change_size = 1;
if (dimflag[3] || dimflag[4] || dimflag[5]) box_change_shape = 1;
// check periodicity
if ((set[0].style && domain->xperiodic == 0) ||
(set[1].style && domain->yperiodic == 0) ||
(set[2].style && domain->zperiodic == 0))
error->all("Cannot use fix deform on a non-periodic boundary");
if (set[3].style && domain->zperiodic == 0)
error->all("Cannot use fix deform on a 2nd non-periodic boundary");
if (set[4].style && domain->zperiodic == 0)
error->all("Cannot use fix deform on a 2nd non-periodic boundary");
if (set[5].style && domain->yperiodic == 0)
error->all("Cannot use fix deform on a 2nd non-periodic boundary");
// apply scaling to FINAL,DELTA,VEL,WIGGLE since they have distance/vel units
int flag = 0;
for (int i = 0; i < 6; i++)
if (set[i].style == FINAL || set[i].style == DELTA ||
set[i].style == VEL || set[i].style == WIGGLE) flag = 1;
if (flag && scaleflag && domain->lattice == NULL)
error->all("Use of fix deform with undefined lattice");
double xscale,yscale,zscale;
if (flag && scaleflag) {
xscale = domain->lattice->xlattice;
yscale = domain->lattice->ylattice;
zscale = domain->lattice->zlattice;
}
else xscale = yscale = zscale = 1.0;
// for 3,4,5: scaling is in 1st dimension, e.g. x for xz
double map[6];
map[0] = xscale; map[1] = yscale; map[2] = zscale;
map[3] = yscale; map[4] = xscale; map[5] = xscale;
for (int i = 0; i < 3; i++) {
if (set[i].style == FINAL) {
set[i].flo *= map[i];
set[i].fhi *= map[i];
} else if (set[i].style == DELTA) {
set[i].dlo *= map[i];
set[i].dhi *= map[i];
} else if (set[i].style == VEL) {
set[i].vel *= map[i];
} else if (set[i].style == WIGGLE) {
set[i].amplitude *= map[i];
}
}
for (int i = 3; i < 6; i++) {
if (set[i].style == FINAL) set[i].ftilt *= map[i];
else if (set[i].style == DELTA) set[i].dtilt *= map[i];
else if (set[i].style == VEL) set[i].vel *= map[i];
else if (set[i].style == WIGGLE) set[i].amplitude *= map[i];
}
// for VOLUME, setup links to other dims
// fixed, dynamic1, dynamic2
for (int i = 0; i < 3; i++) {
if (set[i].style != VOLUME) continue;
int other1 = (i+1) % 3;
int other2 = (i+2) % 3;
if (set[other1].style == NONE) {
if (set[other2].style == NONE || set[other2].style == VOLUME)
error->all("Fix deform volume setting is invalid");
set[i].substyle = ONE_FROM_ONE;
set[i].fixed = other1;
set[i].dynamic1 = other2;
} else if (set[other2].style == NONE) {
if (set[other1].style == NONE || set[other1].style == VOLUME)
error->all("Fix deform volume setting is invalid");
set[i].substyle = ONE_FROM_ONE;
set[i].fixed = other2;
set[i].dynamic1 = other1;
} else if (set[other1].style == VOLUME) {
if (set[other2].style == NONE || set[other2].style == VOLUME)
error->all("Fix deform volume setting is invalid");
set[i].substyle = TWO_FROM_ONE;
set[i].fixed = other1;
set[i].dynamic1 = other2;
} else if (set[other2].style == VOLUME) {
if (set[other1].style == NONE || set[other1].style == VOLUME)
error->all("Fix deform volume setting is invalid");
set[i].substyle = TWO_FROM_ONE;
set[i].fixed = other2;
set[i].dynamic1 = other1;
} else {
set[i].substyle = ONE_FROM_TWO;
set[i].dynamic1 = other1;
set[i].dynamic2 = other2;
}
}
// set initial values at time fix deform is issued
for (int i = 0; i < 3; i++) {
set[i].lo_initial = domain->boxlo[i];
set[i].hi_initial = domain->boxhi[i];
set[i].vol_initial = domain->xprd * domain->yprd * domain->zprd;
}
for (int i = 3; i < 6; i++) {
if (i == 5) set[i].tilt_initial = domain->xy;
else if (i == 4) set[i].tilt_initial = domain->xz;
else if (i == 3) set[i].tilt_initial = domain->yz;
}
// reneighboring only forced if flips will occur due to shape changes
if (set[3].style || set[4].style || set[5].style) force_reneighbor = 1;
next_reneighbor = -1;
nrigid = 0;
rfix = NULL;
flip = 0;
if (force_reneighbor) irregular = new Irregular(lmp);
else irregular = NULL;
TWOPI = 8.0*atan(1.0);
}
/* ---------------------------------------------------------------------- */
FixDeform::~FixDeform()
{
delete [] set;
delete [] rfix;
delete irregular;
// reset domain's h_rate = 0.0, since this fix may have made it non-zero
double *h_rate = domain->h_rate;
double *h_ratelo = domain->h_ratelo;
h_rate[0] = h_rate[1] = h_rate[2] =
h_rate[3] = h_rate[4] = h_rate[5] = 0.0;
h_ratelo[0] = h_ratelo[1] = h_ratelo[2] = 0.0;
}
/* ---------------------------------------------------------------------- */
int FixDeform::setmask()
{
int mask = 0;
if (force_reneighbor) mask |= PRE_EXCHANGE;
mask |= END_OF_STEP;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixDeform::init()
{
// error if more than one fix deform
// domain, fix nvt/sllod, compute temp/deform only work on single h_rate
int count = 0;
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"deform") == 0) count++;
if (count > 1) error->all("More than one fix deform");
// Kspace setting
if (force->kspace) kspace_flag = 1;
else kspace_flag = 0;
// elapsed time for entire simulation, including multiple runs if defined
double delt = (update->endstep - update->beginstep) * update->dt;
// set start/stop values for box size and shape
// if single run, start is current values
// if multiple runs enabled via run start/stop settings,
// start is value when fix deform was issued
// if NONE, no need to set
for (int i = 0; i < 3; i++) {
if (update->firststep == update->beginstep) {
set[i].lo_start = domain->boxlo[i];
set[i].hi_start = domain->boxhi[i];
set[i].vol_start = domain->xprd * domain->yprd * domain->zprd;
} else {
set[i].lo_start = set[i].lo_initial;
set[i].hi_start = set[i].hi_initial;
set[i].vol_start = set[i].vol_initial;
}
if (set[i].style == FINAL) {
set[i].lo_stop = set[i].flo;
set[i].hi_stop = set[i].fhi;
} else if (set[i].style == DELTA) {
set[i].lo_stop = set[i].lo_start + set[i].dlo;
set[i].hi_stop = set[i].hi_start + set[i].dhi;
} else if (set[i].style == SCALE) {
set[i].lo_stop = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*set[i].scale*(set[i].hi_start-set[i].lo_start);
set[i].hi_stop = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*set[i].scale*(set[i].hi_start-set[i].lo_start);
} else if (set[i].style == VEL) {
set[i].lo_stop = set[i].lo_start - 0.5*delt*set[i].vel;
set[i].hi_stop = set[i].hi_start + 0.5*delt*set[i].vel;
} else if (set[i].style == ERATE) {
set[i].lo_stop = set[i].lo_start -
0.5*delt*set[i].rate * (set[i].hi_start-set[i].lo_start);
set[i].hi_stop = set[i].hi_start +
0.5*delt*set[i].rate * (set[i].hi_start-set[i].lo_start);
if (set[i].hi_stop <= set[i].lo_stop)
error->all("Final box dimension due to fix deform is < 0.0");
} else if (set[i].style == TRATE) {
set[i].lo_stop = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
set[i].hi_stop = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
} else if (set[i].style == WIGGLE) {
set[i].lo_stop = set[i].lo_start -
0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
set[i].hi_stop = set[i].hi_start +
0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
}
}
for (int i = 3; i < 6; i++) {
if (update->firststep == update->beginstep) {
if (i == 5) set[i].tilt_start = domain->xy;
else if (i == 4) set[i].tilt_start = domain->xz;
else if (i == 3) set[i].tilt_start = domain->yz;
} else set[i].tilt_start = set[i].tilt_initial;
if (set[i].style == FINAL) {
set[i].tilt_stop = set[i].ftilt;
} else if (set[i].style == DELTA) {
set[i].tilt_stop = set[i].tilt_start + set[i].dtilt;
} else if (set[i].style == VEL) {
set[i].tilt_stop = set[i].tilt_start + delt*set[i].vel;
} else if (set[i].style == ERATE) {
if (i == 3) set[i].tilt_stop = set[i].tilt_start +
delt*set[i].rate * (set[2].hi_start-set[2].lo_start);
if (i == 4) set[i].tilt_stop = set[i].tilt_start +
delt*set[i].rate * (set[2].hi_start-set[2].lo_start);
if (i == 5) set[i].tilt_stop = set[i].tilt_start +
delt*set[i].rate * (set[1].hi_start-set[1].lo_start);
} else if (set[i].style == TRATE) {
set[i].tilt_stop = set[i].tilt_start * exp(set[i].rate*delt);
} else if (set[i].style == WIGGLE) {
set[i].tilt_stop = set[i].tilt_start +
set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
// compute min/max for WIGGLE = extrema tilt factor will ever reach
if (set[i].amplitude >= 0.0) {
if (delt < 0.25*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start;
set[i].tilt_max = set[i].tilt_start +
set[i].amplitude*sin(TWOPI*delt/set[i].tperiod);
} else if (delt < 0.5*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start;
set[i].tilt_max = set[i].tilt_start + set[i].amplitude;
} else if (delt < 0.75*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start -
set[i].amplitude*sin(TWOPI*delt/set[i].tperiod);
set[i].tilt_max = set[i].tilt_start + set[i].amplitude;
} else {
set[i].tilt_min = set[i].tilt_start - set[i].amplitude;
set[i].tilt_max = set[i].tilt_start + set[i].amplitude;
}
} else {
if (delt < 0.25*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start -
set[i].amplitude*sin(TWOPI*delt/set[i].tperiod);
set[i].tilt_max = set[i].tilt_start;
} else if (delt < 0.5*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start - set[i].amplitude;
set[i].tilt_max = set[i].tilt_start;
} else if (delt < 0.75*set[i].tperiod) {
set[i].tilt_min = set[i].tilt_start - set[i].amplitude;
set[i].tilt_max = set[i].tilt_start +
set[i].amplitude*sin(TWOPI*delt/set[i].tperiod);
} else {
set[i].tilt_min = set[i].tilt_start - set[i].amplitude;
set[i].tilt_max = set[i].tilt_start + set[i].amplitude;
}
}
}
}
// if using tilt TRATE, then initial tilt must be non-zero
for (int i = 3; i < 6; i++)
if (set[i].style == TRATE && set[i].tilt_start == 0.0)
error->all("Cannot use fix deform trate on a box with zero tilt");
// if yz changes and will cause box flip, then xy cannot be changing
// test for WIGGLE is on min/max oscillation limit, not tilt_stop
// this is b/c the flips would induce continuous changes in xz
// in order to keep the edge vectors of the flipped shape matrix
- // a linear combination of the edge vectors of the unflipped shape matrix
+ // an integer combination of the edge vectors of the unflipped shape matrix
if (set[3].style && set[5].style) {
int flag = 0;
double lo,hi;
if (set[3].style == WIGGLE) {
lo = set[3].tilt_min;
hi = set[3].tilt_max;
} else lo = hi = set[3].tilt_stop;
if (lo < -0.5*(set[1].hi_start-set[1].lo_start) ||
hi > 0.5*(set[1].hi_start-set[1].lo_start)) flag = 1;
if (set[1].style) {
if (lo < -0.5*(set[1].hi_stop-set[1].lo_stop) ||
hi > 0.5*(set[1].hi_stop-set[1].lo_stop)) flag = 1;
}
if (flag)
error->all("Fix deform is changing yz by too much with changing xy");
}
// set domain->h_rate values for use by domain and other fixes/computes
// initialize all rates to 0.0
// cannot set here for TRATE,VOLUME,WIGGLE styles since not constant
h_rate = domain->h_rate;
h_ratelo = domain->h_ratelo;
for (int i = 0; i < 3; i++) {
h_rate[i] = h_ratelo[i] = 0.0;
if (set[i].style == FINAL || set[i].style == DELTA ||
set[i].style == SCALE || set[i].style == VEL ||
set[i].style == ERATE) {
double dlo_dt,dhi_dt;
if (delt != 0.0) {
dlo_dt = (set[i].lo_stop - set[i].lo_start) / delt;
dhi_dt = (set[i].hi_stop - set[i].hi_start) / delt;
} else dlo_dt = dhi_dt = 0.0;
h_rate[i] = dhi_dt - dlo_dt;
h_ratelo[i] = dlo_dt;
}
}
for (int i = 3; i < 6; i++) {
h_rate[i] = 0.0;
if (set[i].style == FINAL || set[i].style == DELTA ||
set[i].style == VEL || set[i].style == ERATE) {
if (delt != 0.0)
h_rate[i] = (set[i].tilt_stop - set[i].tilt_start) / delt;
else h_rate[i] = 0.0;
}
}
// detect if any rigid fixes exist so rigid bodies can be rescaled
// rfix[] = indices to each fix rigid
delete [] rfix;
nrigid = 0;
rfix = NULL;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) nrigid++;
if (nrigid) {
rfix = new int[nrigid];
nrigid = 0;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) rfix[nrigid++] = i;
}
}
/* ----------------------------------------------------------------------
box flipped on previous step
perform irregular comm to migrate atoms to new procs
reset box tilts for flipped config and create new box in domain
remap to put far-away atoms back into new box
perform irregular on atoms in lamda coords to get atoms to new procs
force reneighboring on next timestep
------------------------------------------------------------------------- */
void FixDeform::pre_exchange()
{
if (flip == 0) return;
domain->yz = set[3].tilt_target = set[3].tilt_flip;
domain->xz = set[4].tilt_target = set[4].tilt_flip;
domain->xy = set[5].tilt_target = set[5].tilt_flip;
domain->set_global_box();
domain->set_local_box();
double **x = atom->x;
int *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) domain->remap(x[i],image[i]);
domain->x2lamda(atom->nlocal);
irregular->migrate_atoms();
domain->lamda2x(atom->nlocal);
flip = 0;
}
/* ---------------------------------------------------------------------- */
void FixDeform::end_of_step()
{
int i;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
// set new box size
// for TRATE, set target directly based on current time, also set h_rate
// for WIGGLE, set target directly based on current time, also set h_rate
// for NONE, target is current box size
// for others except VOLUME, target is linear value between start and stop
for (i = 0; i < 3; i++) {
if (set[i].style == TRATE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*((set[i].hi_start-set[i].lo_start) * exp(set[i].rate*delt));
h_rate[i] = set[i].rate * domain->h[i];
h_ratelo[i] = -0.5*h_rate[i];
} else if (set[i].style == WIGGLE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].lo_target = set[i].lo_start -
0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
set[i].hi_target = set[i].hi_start +
0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude *
cos(TWOPI*delt/set[i].tperiod);
h_ratelo[i] = -0.5*h_rate[i];
} else if (set[i].style == NONE) {
set[i].lo_target = domain->boxlo[i];
set[i].hi_target = domain->boxhi[i];
} else if (set[i].style != VOLUME) {
set[i].lo_target = set[i].lo_start +
delta*(set[i].lo_stop - set[i].lo_start);
set[i].hi_target = set[i].hi_start +
delta*(set[i].hi_stop - set[i].hi_start);
}
}
// set new box size for VOLUME dims that are linked to other dims
// NOTE: still need to set h_rate for these dims
for (int i = 0; i < 3; i++) {
if (set[i].style != VOLUME) continue;
if (set[i].substyle == ONE_FROM_ONE) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start-set[set[i].fixed].lo_start));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start-set[set[i].fixed].lo_start));
} else if (set[i].substyle == ONE_FROM_TWO) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].dynamic2].hi_target -
set[set[i].dynamic2].lo_target));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].dynamic2].hi_target -
set[set[i].dynamic2].lo_target));
} else if (set[i].substyle == TWO_FROM_ONE) {
set[i].lo_target = 0.5*(set[i].lo_start+set[i].hi_start) -
0.5*sqrt(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start -
set[set[i].fixed].lo_start) *
(set[i].hi_start - set[i].lo_start));
set[i].hi_target = 0.5*(set[i].lo_start+set[i].hi_start) +
0.5*sqrt(set[i].vol_start /
(set[set[i].dynamic1].hi_target -
set[set[i].dynamic1].lo_target) /
(set[set[i].fixed].hi_start -
set[set[i].fixed].lo_start) *
(set[i].hi_start - set[i].lo_start));
}
}
// for triclinic, set new box shape
// for TRATE, set target directly based on current time. also set h_rate
// for WIGGLE, set target directly based on current time. also set h_rate
// for NONE, target is current tilt
// for other styles, target is linear value between start and stop values
if (triclinic) {
double *h = domain->h;
for (i = 3; i < 6; i++) {
if (set[i].style == TRATE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].tilt_target = set[i].tilt_start * exp(set[i].rate*delt);
h_rate[i] = set[i].rate * domain->h[i];
} else if (set[i].style == WIGGLE) {
double delt = (update->ntimestep - update->beginstep) * update->dt;
set[i].tilt_target = set[i].tilt_start +
set[i].amplitude * sin(TWOPI*delt/set[i].tperiod);
h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude *
cos(TWOPI*delt/set[i].tperiod);
} else if (set[i].style == NONE) {
if (i == 5) set[i].tilt_target = domain->xy;
else if (i == 4) set[i].tilt_target = domain->xz;
else if (i == 3) set[i].tilt_target = domain->yz;
} else {
set[i].tilt_target = set[i].tilt_start +
delta*(set[i].tilt_stop - set[i].tilt_start);
}
// tilt_target can be large positive or large negative value
// add/subtract box lengths until tilt_target is closest to current value
int idenom;
if (i == 5) idenom = 0;
else if (i == 4) idenom = 0;
else if (i == 3) idenom = 1;
double denom = set[idenom].hi_target - set[idenom].lo_target;
double current = h[i]/h[idenom];
while (set[i].tilt_target/denom - current > 0.0)
set[i].tilt_target -= denom;
while (set[i].tilt_target/denom - current < 0.0)
set[i].tilt_target += denom;
if (fabs(set[i].tilt_target/denom - 1.0 - current) <
fabs(set[i].tilt_target/denom - current))
set[i].tilt_target -= denom;
}
}
// if any tilt targets exceed bounds, set flip flag and new tilt_flip values
// flip will be performed on next timestep before reneighboring
// when yz flips and xy is non-zero, xz must also change
// this is to keep the edge vectors of the flipped shape matrix
- // a linear combination of the edge vectors of the unflipped shape matrix
+ // an integer combination of the edge vectors of the unflipped shape matrix
if (triclinic) {
double xprd = set[0].hi_target - set[0].lo_target;
double yprd = set[1].hi_target - set[1].lo_target;
if (set[3].tilt_target < -0.5*yprd || set[3].tilt_target > 0.5*yprd ||
set[4].tilt_target < -0.5*xprd || set[4].tilt_target > 0.5*xprd ||
set[5].tilt_target < -0.5*xprd || set[5].tilt_target > 0.5*xprd) {
flip = 1;
next_reneighbor = update->ntimestep + 1;
set[3].tilt_flip = set[3].tilt_target;
set[4].tilt_flip = set[4].tilt_target;
set[5].tilt_flip = set[5].tilt_target;
if (set[3].tilt_flip < -0.5*yprd) {
set[3].tilt_flip += yprd;
set[4].tilt_flip += set[5].tilt_flip;
} else if (set[3].tilt_flip >= 0.5*yprd) {
set[3].tilt_flip -= yprd;
set[4].tilt_flip -= set[5].tilt_flip;
}
if (set[4].tilt_flip < -0.5*xprd) set[4].tilt_flip += xprd;
if (set[4].tilt_flip > 0.5*xprd) set[4].tilt_flip -= xprd;
if (set[5].tilt_flip < -0.5*xprd) set[5].tilt_flip += xprd;
if (set[5].tilt_flip > 0.5*xprd) set[5].tilt_flip -= xprd;
}
}
// convert atoms and rigid bodies to lamda coords
if (remapflag == X_REMAP) {
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->x2lamda(x[i],x[i]);
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(0);
}
// reset global and local box to new size/shape
// only if deform fix is controlling the dimension
if (set[0].style) {
domain->boxlo[0] = set[0].lo_target;
domain->boxhi[0] = set[0].hi_target;
}
if (set[1].style) {
domain->boxlo[1] = set[1].lo_target;
domain->boxhi[1] = set[1].hi_target;
}
if (set[2].style) {
domain->boxlo[2] = set[2].lo_target;
domain->boxhi[2] = set[2].hi_target;
}
if (triclinic) {
if (set[3].style) domain->yz = set[3].tilt_target;
if (set[4].style) domain->xz = set[4].tilt_target;
if (set[5].style) domain->xy = set[5].tilt_target;
}
domain->set_global_box();
domain->set_local_box();
// convert atoms and rigid bodies back to box coords
if (remapflag == X_REMAP) {
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->lamda2x(x[i],x[i]);
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(1);
}
// redo KSpace coeffs since box has changed
if (kspace_flag) force->kspace->setup();
}
/* ---------------------------------------------------------------------- */
void FixDeform::options(int narg, char **arg)
{
if (narg < 0) error->all("Illegal fix deform command");
remapflag = X_REMAP;
scaleflag = 1;
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"remap") == 0) {
if (iarg+2 > narg) error->all("Illegal fix deform command");
if (strcmp(arg[iarg+1],"x") == 0) remapflag = X_REMAP;
else if (strcmp(arg[iarg+1],"v") == 0) remapflag = V_REMAP;
else if (strcmp(arg[iarg+1],"none") == 0) remapflag = NO_REMAP;
else error->all("Illegal fix deform command");
iarg += 2;
} else if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all("Illegal fix deform command");
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all("Illegal fix deform command");
iarg += 2;
} else error->all("Illegal fix deform command");
}
}
diff --git a/src/fix_drag.cpp b/src/fix_drag.cpp
index 2d93d4a66..357495bd6 100644
--- a/src/fix_drag.cpp
+++ b/src/fix_drag.cpp
@@ -1,147 +1,147 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_drag.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixDrag::FixDrag(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 8) error->all("Illegal fix drag command");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
xflag = yflag = zflag = 1;
if (strcmp(arg[3],"NULL") == 0) xflag = 0;
else xc = atof(arg[3]);
if (strcmp(arg[4],"NULL") == 0) yflag = 0;
else yc = atof(arg[4]);
if (strcmp(arg[5],"NULL") == 0) zflag = 0;
else zc = atof(arg[5]);
f_mag = atof(arg[6]);
delta = atof(arg[7]);
force_flag = 0;
ftotal[0] = ftotal[1] = ftotal[2] = 0.0;
}
/* ---------------------------------------------------------------------- */
int FixDrag::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixDrag::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixDrag::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixDrag::post_force(int vflag)
{
// apply drag force to atoms in group of magnitude f_mag
// apply in direction (r-r0) if atom is further than delta away
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
ftotal[0] = ftotal[1] = ftotal[2] = 0.0;
force_flag = 0;
double dx,dy,dz,r,prefactor,fx,fy,fz;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dx = x[i][0] - xc;
dy = x[i][1] - yc;
dz = x[i][2] - zc;
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
domain->minimum_image(dx,dy,dz);
r = sqrt(dx*dx + dy*dy + dz*dz);
if (r > delta) {
prefactor = f_mag/r;
fx = prefactor*dx;
fy = prefactor*dy;
fz = prefactor*dz;
f[i][0] -= fx;
f[i][1] -= fy;
f[i][2] -= fz;
ftotal[0] -= fx;
ftotal[1] -= fy;
ftotal[2] -= fz;
}
}
}
/* ---------------------------------------------------------------------- */
void FixDrag::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total drag force on fix group
------------------------------------------------------------------------- */
double FixDrag::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(ftotal,ftotal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return ftotal_all[n];
}
diff --git a/src/fix_dt_reset.cpp b/src/fix_dt_reset.cpp
index 2e6e48c64..8991a879e 100644
--- a/src/fix_dt_reset.cpp
+++ b/src/fix_dt_reset.cpp
@@ -1,203 +1,203 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_dt_reset.h"
#include "atom.h"
#include "update.h"
#include "integrate.h"
#include "domain.h"
#include "lattice.h"
#include "force.h"
#include "pair.h"
#include "modify.h"
#include "fix.h"
#include "output.h"
#include "dump.h"
#include "comm.h"
#include "error.h"
using namespace LAMMPS_NS;
#define BIG 1.0e20
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixDtReset::FixDtReset(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 7) error->all("Illegal fix dt/reset command");
time_depend = 1;
scalar_flag = 1;
vector_flag = 1;
size_vector = 1;
global_freq = 1;
extscalar = 0;
extvector = 0;
nevery = atoi(arg[3]);
if (nevery <= 0) error->all("Illegal fix dt/reset command");
minbound = maxbound = 1;
tmin = tmax = 0.0;
if (strcmp(arg[4],"NULL") == 0) minbound = 0;
else tmin = atof(arg[4]);
if (strcmp(arg[5],"NULL") == 0) maxbound = 0;
else tmax = atof(arg[5]);
xmax = atof(arg[6]);
if (minbound && tmin < 0.0) error->all("Illegal fix dt/reset command");
if (maxbound && tmax < 0.0) error->all("Illegal fix dt/reset command");
if (minbound && maxbound && tmin >= tmax)
error->all("Illegal fix dt/reset command");
if (xmax <= 0.0) error->all("Illegal fix dt/reset command");
int scaleflag = 1;
int iarg = 7;
while (iarg < narg) {
if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all("Illegal fix dt/reset command");
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all("Illegal fix dt/reset command");
iarg += 2;
} else error->all("Illegal fix dt/reset command");
}
// setup scaling, based on xlattice parameter
if (scaleflag && domain->lattice == NULL)
error->all("Use of fix dt/reset with undefined lattice");
if (scaleflag) xmax *= domain->lattice->xlattice;
// initializations
t_elapsed = 0.0;
laststep = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
int FixDtReset::setmask()
{
int mask = 0;
mask |= END_OF_STEP;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixDtReset::init()
{
// set rRESPA flag
respaflag = 0;
- if (strcmp(update->integrate_style,"respa") == 0) respaflag = 1;
+ if (strstr(update->integrate_style,"respa")) respaflag = 1;
// check for DCD or XTC dumps
for (int i = 0; i < output->ndump; i++)
if ((strcmp(output->dump[i]->style,"dcd") == 0 ||
strcmp(output->dump[i]->style,"xtc") == 0) && comm->me == 0)
error->warning("Dump dcd/xtc timestamp may be wrong with fix dt/reset");
ftm2v = force->ftm2v;
}
/* ---------------------------------------------------------------------- */
void FixDtReset::setup(int vflag)
{
end_of_step();
}
/* ---------------------------------------------------------------------- */
void FixDtReset::end_of_step()
{
double dt,dtv,dtf,dtsq;
double vsq,fsq,massinv;
double delx,dely,delz,delr;
// accumulate total time based on previous timestep
t_elapsed += (update->ntimestep - laststep) * update->dt;
// compute vmax and amax of any atom in group
double **v = atom->v;
double **f = atom->f;
double *mass = atom->mass;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double dtmin = BIG;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (rmass) massinv = 1.0/rmass[i];
else massinv = 1.0/mass[type[i]];
vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
fsq = f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
dtv = dtf = BIG;
if (vsq > 0.0) dtv = xmax/sqrt(vsq);
if (fsq > 0.0) dtf = sqrt(2.0*xmax/(ftm2v*sqrt(fsq)*massinv));
dt = MIN(dtv,dtf);
dtsq = dt*dt;
delx = dt*v[i][0] + 0.5*dtsq*massinv*f[i][0] * ftm2v;
dely = dt*v[i][1] + 0.5*dtsq*massinv*f[i][1] * ftm2v;
delz = dt*v[i][2] + 0.5*dtsq*massinv*f[i][2] * ftm2v;
delr = sqrt(delx*delx + dely*dely + delz*delz);
if (delr > xmax) dt *= xmax/delr;
dtmin = MIN(dtmin,dt);
}
MPI_Allreduce(&dtmin,&dt,1,MPI_DOUBLE,MPI_MIN,world);
if (minbound) dt = MAX(dt,tmin);
if (maxbound) dt = MIN(dt,tmax);
// reset update->dt and other classes that depend on it
// rRESPA, pair style, fixes
laststep = update->ntimestep;
if (dt == update->dt) return;
update->dt = dt;
if (respaflag) update->integrate->reset_dt();
if (force->pair) force->pair->reset_dt();
for (int i = 0; i < modify->nfix; i++) modify->fix[i]->reset_dt();
}
/* ---------------------------------------------------------------------- */
double FixDtReset::compute_scalar()
{
return update->dt;
}
/* ---------------------------------------------------------------------- */
double FixDtReset::compute_vector(int n)
{
return t_elapsed;
}
diff --git a/src/fix_efield.cpp b/src/fix_efield.cpp
index 78eca23a8..31c7ba147 100644
--- a/src/fix_efield.cpp
+++ b/src/fix_efield.cpp
@@ -1,223 +1,223 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Christina Payne (Vanderbilt U)
------------------------------------------------------------------------- */
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_efield.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "force.h"
#include "respa.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{CONSTANT,EQUAL,ATOM};
/* ---------------------------------------------------------------------- */
FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 6) error->all("Illegal fix efield command");
qe2f = force->qe2f;
xstr = ystr = zstr = NULL;
if (strstr(arg[3],"v_") == arg[3]) {
int n = strlen(&arg[3][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[3][2]);
} else {
ex = qe2f * atof(arg[3]);
xstyle = CONSTANT;
}
if (strstr(arg[4],"v_") == arg[4]) {
int n = strlen(&arg[4][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[4][2]);
} else {
ey = qe2f * atof(arg[4]);
ystyle = CONSTANT;
}
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[5][2]);
} else {
ez = qe2f * atof(arg[5]);
zstyle = CONSTANT;
}
maxatom = 0;
efield = NULL;
}
/* ---------------------------------------------------------------------- */
FixEfield::~FixEfield()
{
delete [] xstr;
delete [] ystr;
delete [] zstr;
memory->destroy(efield);
}
/* ---------------------------------------------------------------------- */
int FixEfield::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixEfield::init()
{
if (!atom->q_flag) error->all("Fix efield requires atom attribute q");
// check variables
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all("Variable name for fix efield does not exist");
if (input->variable->equalstyle(xvar)) xstyle = EQUAL;
else if (input->variable->atomstyle(xvar)) xstyle = ATOM;
else error->all("Variable for fix efield is invalid style");
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all("Variable name for fix efield does not exist");
if (input->variable->equalstyle(yvar)) ystyle = EQUAL;
else if (input->variable->atomstyle(yvar)) ystyle = ATOM;
else error->all("Variable for fix efield is invalid style");
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all("Variable name for fix efield does not exist");
if (input->variable->equalstyle(zvar)) zstyle = EQUAL;
else if (input->variable->atomstyle(zvar)) zstyle = ATOM;
else error->all("Variable for fix efield is invalid style");
}
if (xstyle == ATOM || ystyle == ATOM || zstyle == ATOM)
varflag = ATOM;
else if (xstyle == EQUAL || ystyle == EQUAL || zstyle == EQUAL)
varflag = EQUAL;
else varflag = CONSTANT;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixEfield::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ----------------------------------------------------------------------
apply F = qE
------------------------------------------------------------------------- */
void FixEfield::post_force(int vflag)
{
double **f = atom->f;
double *q = atom->q;
int *mask = atom->mask;
int nlocal = atom->nlocal;
// reallocate efield array if necessary
if (varflag == ATOM && nlocal > maxatom) {
maxatom = atom->nmax;
memory->destroy(efield);
memory->create(efield,maxatom,3,"efield:efield");
}
if (varflag == CONSTANT) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
f[i][0] += q[i]*ex;
f[i][1] += q[i]*ey;
f[i][2] += q[i]*ez;
}
// variable efield, wrap with clear/add
} else {
modify->clearstep_compute();
if (xstyle == EQUAL) ex = qe2f * input->variable->compute_equal(xvar);
else if (xstyle == ATOM && efield)
input->variable->compute_atom(xvar,igroup,&efield[0][0],3,0);
if (ystyle == EQUAL) ey = qe2f * input->variable->compute_equal(yvar);
else if (ystyle == ATOM && efield)
input->variable->compute_atom(yvar,igroup,&efield[0][1],3,0);
if (zstyle == EQUAL) ez = qe2f * input->variable->compute_equal(zvar);
else if (zstyle == ATOM && efield)
input->variable->compute_atom(zvar,igroup,&efield[0][2],3,0);
modify->addstep_compute(update->ntimestep + 1);
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (xstyle == ATOM) f[i][0] += qe2f * q[i]*efield[i][0];
else f[i][0] += q[i]*ex;
if (ystyle == ATOM) f[i][1] += qe2f * q[i]*efield[i][1];
else f[i][1] += q[i]*ey;
if (zstyle == ATOM) f[i][2] += qe2f * q[i]*efield[i][2];
else f[i][2] += q[i]*ez;
}
}
}
/* ---------------------------------------------------------------------- */
void FixEfield::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixEfield::memory_usage()
{
double bytes = 0.0;
if (varflag == ATOM) bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
diff --git a/src/fix_enforce2d.cpp b/src/fix_enforce2d.cpp
index 45b77cbf3..c08c1ecdc 100644
--- a/src/fix_enforce2d.cpp
+++ b/src/fix_enforce2d.cpp
@@ -1,132 +1,132 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "fix_enforce2d.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixEnforce2D::FixEnforce2D(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 3) error->all("Illegal fix enforce2d command");
}
/* ---------------------------------------------------------------------- */
int FixEnforce2D::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::init()
{
if (domain->dimension == 3)
error->all("Cannot use fix enforce2d with 3d simulation");
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
int nlevels_respa = ((Respa *) update->integrate)->nlevels;
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::post_force(int vflag)
{
double **v = atom->v;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
v[i][2] = 0.0;
f[i][2] = 0.0;
}
// for systems with omega/angmom/torque, zero x and y components
if (atom->omega_flag) {
double **omega = atom->omega;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
omega[i][0] = 0.0;
omega[i][1] = 0.0;
}
}
if (atom->angmom_flag) {
double **angmom = atom->angmom;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
angmom[i][0] = 0.0;
angmom[i][1] = 0.0;
}
}
if (atom->torque_flag) {
double **torque = atom->torque;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
torque[i][0] = 0.0;
torque[i][1] = 0.0;
}
}
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::post_force_respa(int vflag, int ilevel, int iloop)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixEnforce2D::min_post_force(int vflag)
{
post_force(vflag);
}
diff --git a/src/fix_gravity.cpp b/src/fix_gravity.cpp
index 7d7c36287..7c25edf76 100644
--- a/src/fix_gravity.cpp
+++ b/src/fix_gravity.cpp
@@ -1,190 +1,190 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "fix_gravity.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{CHUTE,SPHERICAL,GRADIENT,VECTOR};
/* ---------------------------------------------------------------------- */
FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 5) error->all("Illegal fix gravity command");
time_depend = 1;
magnitude = atof(arg[3]);
if (strcmp(arg[4],"chute") == 0) {
if (narg != 6) error->all("Illegal fix gravity command");
style = CHUTE;
phi = 0.0;
theta = 180.0 - atof(arg[5]);
} else if (strcmp(arg[4],"spherical") == 0) {
if (narg != 7) error->all("Illegal fix gravity command");
style = SPHERICAL;
phi = atof(arg[5]);
theta = atof(arg[6]);
} else if (strcmp(arg[4],"gradient") == 0) {
if (narg != 9) error->all("Illegal fix gravity command");
style = GRADIENT;
phi = atof(arg[5]);
theta = atof(arg[6]);
phigrad = atof(arg[7]);
thetagrad = atof(arg[8]);
} else if (strcmp(arg[4],"vector") == 0) {
if (narg != 8) error->all("Illegal fix gravity command");
style = VECTOR;
xdir = atof(arg[5]);
ydir = atof(arg[6]);
zdir = atof(arg[7]);
} else error->all("Illegal fix gravity command");
double PI = 4.0*atan(1.0);
degree2rad = PI/180.0;
if (style == CHUTE || style == SPHERICAL || style == GRADIENT) {
if (domain->dimension == 3) {
xgrav = sin(degree2rad * theta) * cos(degree2rad * phi);
ygrav = sin(degree2rad * theta) * sin(degree2rad * phi);
zgrav = cos(degree2rad * theta);
} else {
xgrav = sin(degree2rad * theta);
ygrav = cos(degree2rad * theta);
zgrav = 0.0;
}
} else if (style == VECTOR) {
if (domain->dimension == 3) {
double length = sqrt(xdir*xdir + ydir*ydir + zdir*zdir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = zdir/length;
} else {
double length = sqrt(xdir*xdir + ydir*ydir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = 0.0;
}
}
time_origin = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
int FixGravity::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixGravity::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
dt = update->dt;
xacc = magnitude*xgrav;
yacc = magnitude*ygrav;
zacc = magnitude*zgrav;
}
/* ---------------------------------------------------------------------- */
void FixGravity::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixGravity::post_force(int vflag)
{
// update direction of gravity vector if gradient style
if (style == GRADIENT) {
if (domain->dimension == 3) {
double phi_current = degree2rad *
(phi + (update->ntimestep - time_origin)*dt*phigrad*360.0);
double theta_current = degree2rad *
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
xgrav = sin(theta_current) * cos(phi_current);
ygrav = sin(theta_current) * sin(phi_current);
zgrav = cos(theta_current);
} else {
double theta_current = degree2rad *
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
xgrav = sin(theta_current);
ygrav = cos(theta_current);
}
xacc = magnitude*xgrav;
yacc = magnitude*ygrav;
zacc = magnitude*zgrav;
}
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
double massone;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
massone = rmass[i];
f[i][0] += massone*xacc;
f[i][1] += massone*yacc;
f[i][2] += massone*zacc;
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
massone = mass[type[i]];
f[i][0] += massone*xacc;
f[i][1] += massone*yacc;
f[i][2] += massone*zacc;
}
}
}
/* ---------------------------------------------------------------------- */
void FixGravity::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
diff --git a/src/fix_indent.cpp b/src/fix_indent.cpp
index e4601b713..dd6f7490e 100644
--- a/src/fix_indent.cpp
+++ b/src/fix_indent.cpp
@@ -1,520 +1,520 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Ravi Agrawal (Northwestern U)
------------------------------------------------------------------------- */
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_indent.h"
#include "atom.h"
#include "input.h"
#include "variable.h"
#include "domain.h"
#include "lattice.h"
#include "update.h"
#include "modify.h"
#include "output.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{NONE,SPHERE,CYLINDER,PLANE};
enum{INSIDE,OUTSIDE};
/* ---------------------------------------------------------------------- */
FixIndent::FixIndent(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 4) error->all("Illegal fix indent command");
scalar_flag = 1;
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extscalar = 1;
extvector = 1;
k = atof(arg[3]);
k3 = k/3.0;
// read options from end of input line
options(narg-4,&arg[4]);
// setup scaling
if (scaleflag && domain->lattice == NULL)
error->all("Use of fix indent with undefined lattice");
double xscale,yscale,zscale;
if (scaleflag) {
xscale = domain->lattice->xlattice;
yscale = domain->lattice->ylattice;
zscale = domain->lattice->zlattice;
}
else xscale = yscale = zscale = 1.0;
// apply scaling factors to geometry
if (istyle == SPHERE || istyle == CYLINDER) {
if (!xstr) xvalue *= xscale;
if (!ystr) yvalue *= yscale;
if (!zstr) zvalue *= zscale;
if (!rstr) rvalue *= xscale;
} else if (istyle == PLANE) {
if (cdim == 0 && !pstr) pvalue *= xscale;
else if (cdim == 1 && !pstr) pvalue *= yscale;
else if (cdim == 2 && !pstr) pvalue *= zscale;
} else error->all("Illegal fix indent command");
varflag = 0;
if (xstr || ystr || zstr || rstr || pstr) varflag = 1;
indenter_flag = 0;
indenter[0] = indenter[1] = indenter[2] = indenter[3] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixIndent::~FixIndent()
{
delete [] xstr;
delete [] ystr;
delete [] zstr;
delete [] rstr;
delete [] pstr;
}
/* ---------------------------------------------------------------------- */
int FixIndent::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixIndent::init()
{
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all("Variable name for fix indent does not exist");
if (!input->variable->equalstyle(xvar))
error->all("Variable for fix indent is invalid style");
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all("Variable name for fix indent does not exist");
if (!input->variable->equalstyle(yvar))
error->all("Variable for fix indent is not equal style");
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all("Variable name for fix indent does not exist");
if (!input->variable->equalstyle(zvar))
error->all("Variable for fix indent is not equal style");
}
if (rstr) {
rvar = input->variable->find(rstr);
if (rvar < 0) error->all("Variable name for fix indent does not exist");
if (!input->variable->equalstyle(rvar))
error->all("Variable for fix indent is not equal style");
}
if (pstr) {
pvar = input->variable->find(pstr);
if (pvar < 0) error->all("Variable name for fix indent does not exist");
if (!input->variable->equalstyle(pvar))
error->all("Variable for fix indent is not equal style");
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixIndent::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixIndent::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixIndent::post_force(int vflag)
{
// indenter values, 0 = energy, 1-3 = force components
// wrap variable evaluations with clear/add
if (varflag) modify->clearstep_compute();
indenter_flag = 0;
indenter[0] = indenter[1] = indenter[2] = indenter[3] = 0.0;
// spherical indenter
if (istyle == SPHERE) {
// ctr = current indenter center
// remap into periodic box
double ctr[3];
if (xstr) ctr[0] = input->variable->compute_equal(xvar);
else ctr[0] = xvalue;
if (ystr) ctr[1] = input->variable->compute_equal(yvar);
else ctr[1] = yvalue;
if (zstr) ctr[2] = input->variable->compute_equal(zvar);
else ctr[2] = zvalue;
domain->remap(ctr);
double radius;
if (rstr) radius = input->variable->compute_equal(rvar);
else radius = rvalue;
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double delx,dely,delz,r,dr,fmag,fx,fy,fz;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
delx = x[i][0] - ctr[0];
dely = x[i][1] - ctr[1];
delz = x[i][2] - ctr[2];
domain->minimum_image(delx,dely,delz);
r = sqrt(delx*delx + dely*dely + delz*delz);
if (side == OUTSIDE) {
dr = r - radius;
fmag = k*dr*dr;
} else {
dr = radius - r;
fmag = -k*dr*dr;
}
if (dr >= 0.0) continue;
fx = delx*fmag/r;
fy = dely*fmag/r;
fz = delz*fmag/r;
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
indenter[0] -= k3 * dr*dr*dr;
indenter[1] -= fx;
indenter[2] -= fy;
indenter[3] -= fz;
}
// cylindrical indenter
} else if (istyle == CYLINDER) {
// ctr = current indenter axis
// remap into periodic box
// 3rd coord is just near box for remap(), since isn't used
double ctr[3];
if (cdim == 0) {
ctr[0] = domain->boxlo[0];
if (ystr) ctr[1] = input->variable->compute_equal(yvar);
else ctr[1] = yvalue;
if (zstr) ctr[2] = input->variable->compute_equal(zvar);
else ctr[2] = zvalue;
} else if (cdim == 1) {
if (xstr) ctr[0] = input->variable->compute_equal(xvar);
else ctr[0] = xvalue;
ctr[1] = domain->boxlo[1];
if (zstr) ctr[2] = input->variable->compute_equal(zvar);
else ctr[2] = zvalue;
} else {
if (xstr) ctr[0] = input->variable->compute_equal(xvar);
else ctr[0] = xvalue;
if (ystr) ctr[1] = input->variable->compute_equal(yvar);
else ctr[1] = yvalue;
ctr[2] = domain->boxlo[2];
}
domain->remap(ctr);
double radius;
if (rstr) radius = input->variable->compute_equal(rvar);
else radius = rvalue;
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double delx,dely,delz,r,dr,fmag,fx,fy,fz;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (cdim == 0) {
delx = 0;
dely = x[i][1] - ctr[1];
delz = x[i][2] - ctr[2];
} else if (cdim == 1) {
delx = x[i][0] - ctr[0];
dely = 0;
delz = x[i][2] - ctr[2];
} else {
delx = x[i][0] - ctr[0];
dely = x[i][1] - ctr[1];
delz = 0;
}
domain->minimum_image(delx,dely,delz);
r = sqrt(delx*delx + dely*dely + delz*delz);
if (side == OUTSIDE) {
dr = r - radius;
fmag = k*dr*dr;
} else {
dr = radius - r;
fmag = -k*dr*dr;
}
if (dr >= 0.0) continue;
fx = delx*fmag/r;
fy = dely*fmag/r;
fz = delz*fmag/r;
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
indenter[0] -= k3 * dr*dr*dr;
indenter[1] -= fx;
indenter[2] -= fy;
indenter[3] -= fz;
}
// planar indenter
} else {
// plane = current plane position
double plane;
if (pstr) plane = input->variable->compute_equal(pvar);
else plane = pvalue;
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double dr,fatom;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dr = planeside * (plane - x[i][cdim]);
if (dr >= 0.0) continue;
fatom = -planeside * k*dr*dr;
f[i][cdim] += fatom;
indenter[0] -= k3 * dr*dr*dr;
indenter[cdim+1] -= fatom;
}
}
if (varflag) modify->addstep_compute(update->ntimestep + 1);
}
/* ---------------------------------------------------------------------- */
void FixIndent::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixIndent::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
energy of indenter interaction
------------------------------------------------------------------------- */
double FixIndent::compute_scalar()
{
// only sum across procs one time
if (indenter_flag == 0) {
MPI_Allreduce(indenter,indenter_all,4,MPI_DOUBLE,MPI_SUM,world);
indenter_flag = 1;
}
return indenter_all[0];
}
/* ----------------------------------------------------------------------
components of force on indenter
------------------------------------------------------------------------- */
double FixIndent::compute_vector(int n)
{
// only sum across procs one time
if (indenter_flag == 0) {
MPI_Allreduce(indenter,indenter_all,4,MPI_DOUBLE,MPI_SUM,world);
indenter_flag = 1;
}
return indenter_all[n+1];
}
/* ----------------------------------------------------------------------
parse optional parameters at end of input line
------------------------------------------------------------------------- */
void FixIndent::options(int narg, char **arg)
{
if (narg < 0) error->all("Illegal fix indent command");
istyle = NONE;
xstr = ystr = zstr = rstr = pstr = NULL;
xvalue = yvalue = zvalue = rvalue = pvalue = 0.0;
scaleflag = 1;
side = OUTSIDE;
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"sphere") == 0) {
if (iarg+5 > narg) error->all("Illegal fix indent command");
if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) {
int n = strlen(&arg[iarg+1][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[iarg+1][2]);
} else xvalue = atof(arg[iarg+1]);
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[iarg+2][2]);
} else yvalue = atof(arg[iarg+2]);
if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) {
int n = strlen(&arg[iarg+3][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[iarg+3][2]);
} else zvalue = atof(arg[iarg+3]);
if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) {
int n = strlen(&arg[iarg+4][2]) + 1;
rstr = new char[n];
strcpy(rstr,&arg[iarg+4][2]);
} else rvalue = atof(arg[iarg+4]);
istyle = SPHERE;
iarg += 5;
} else if (strcmp(arg[iarg],"cylinder") == 0) {
if (iarg+5 > narg) error->all("Illegal fix indent command");
if (strcmp(arg[iarg+1],"x") == 0) {
cdim = 0;
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[iarg+2][2]);
} else yvalue = atof(arg[iarg+2]);
if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) {
int n = strlen(&arg[iarg+3][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[iarg+3][2]);
} else zvalue = atof(arg[iarg+3]);
} else if (strcmp(arg[iarg+1],"y") == 0) {
cdim = 1;
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[iarg+2][2]);
} else xvalue = atof(arg[iarg+2]);
if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) {
int n = strlen(&arg[iarg+3][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[iarg+3][2]);
} else zvalue = atof(arg[iarg+3]);
} else if (strcmp(arg[iarg+1],"z") == 0) {
cdim = 2;
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[iarg+2][2]);
} else xvalue = atof(arg[iarg+2]);
if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) {
int n = strlen(&arg[iarg+3][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[iarg+3][2]);
} else yvalue = atof(arg[iarg+3]);
} else error->all("Illegal fix indent command");
if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) {
int n = strlen(&arg[iarg+4][2]) + 1;
rstr = new char[n];
strcpy(rstr,&arg[iarg+4][2]);
} else rvalue = atof(arg[iarg+4]);
istyle = CYLINDER;
iarg += 5;
} else if (strcmp(arg[iarg],"plane") == 0) {
if (iarg+4 > narg) error->all("Illegal fix indent command");
if (strcmp(arg[iarg+1],"x") == 0) cdim = 0;
else if (strcmp(arg[iarg+1],"y") == 0) cdim = 1;
else if (strcmp(arg[iarg+1],"z") == 0) cdim = 2;
else error->all("Illegal fix indent command");
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
pstr = new char[n];
strcpy(pstr,&arg[iarg+2][2]);
} else pvalue = atof(arg[iarg+2]);
if (strcmp(arg[iarg+3],"lo") == 0) planeside = -1;
else if (strcmp(arg[iarg+3],"hi") == 0) planeside = 1;
else error->all("Illegal fix indent command");
istyle = PLANE;
iarg += 4;
} else if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all("Illegal fix indent command");
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all("Illegal fix indent command");
iarg += 2;
} else if (strcmp(arg[iarg],"side") == 0) {
if (iarg+2 > narg) error->all("Illegal fix indent command");
if (strcmp(arg[iarg+1],"in") == 0) side = INSIDE;
else if (strcmp(arg[iarg+1],"out") == 0) side = OUTSIDE;
else error->all("Illegal fix indent command");
iarg += 2;
} else error->all("Illegal fix indent command");
}
}
diff --git a/src/fix_langevin.cpp b/src/fix_langevin.cpp
index 5e40a7c28..c47670af6 100644
--- a/src/fix_langevin.cpp
+++ b/src/fix_langevin.cpp
@@ -1,715 +1,715 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carolyn Phillips (U Mich), reservoir energy tally
------------------------------------------------------------------------- */
#include "mpi.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_langevin.h"
#include "math_extra.h"
#include "atom.h"
#include "atom_vec_ellipsoid.h"
#include "force.h"
#include "update.h"
#include "modify.h"
#include "compute.h"
#include "domain.h"
#include "region.h"
#include "respa.h"
#include "comm.h"
#include "random_mars.h"
#include "memory.h"
#include "error.h"
#include "group.h"
using namespace LAMMPS_NS;
enum{NOBIAS,BIAS};
#define SINERTIA 0.4 // moment of inertia prefactor for sphere
#define EINERTIA 0.2 // moment of inertia prefactor for ellipsoid
/* ---------------------------------------------------------------------- */
FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 7) error->all("Illegal fix langevin command");
scalar_flag = 1;
global_freq = 1;
extscalar = 1;
nevery = 1;
t_start = atof(arg[3]);
t_stop = atof(arg[4]);
t_period = atof(arg[5]);
int seed = atoi(arg[6]);
if (t_period <= 0.0) error->all("Fix langevin period must be > 0.0");
if (seed <= 0) error->all("Illegal fix langevin command");
// initialize Marsaglia RNG with processor-unique seed
random = new RanMars(lmp,seed + comm->me);
// allocate per-type arrays for force prefactors
gfactor1 = new double[atom->ntypes+1];
gfactor2 = new double[atom->ntypes+1];
ratio = new double[atom->ntypes+1];
// optional args
for (int i = 1; i <= atom->ntypes; i++) ratio[i] = 1.0;
oflag = aflag = 0;
tally = 0;
zeroflag = 0;
int iarg = 7;
while (iarg < narg) {
if (strcmp(arg[iarg],"angmom") == 0) {
if (iarg+2 > narg) error->all("Illegal fix langevin command");
if (strcmp(arg[iarg+1],"no") == 0) aflag = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) aflag = 1;
else error->all("Illegal fix langevin command");
iarg += 2;
} else if (strcmp(arg[iarg],"omega") == 0) {
if (iarg+2 > narg) error->all("Illegal fix langevin command");
if (strcmp(arg[iarg+1],"no") == 0) oflag = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) oflag = 1;
else error->all("Illegal fix langevin command");
iarg += 2;
} else if (strcmp(arg[iarg],"scale") == 0) {
if (iarg+3 > narg) error->all("Illegal fix langevin command");
int itype = atoi(arg[iarg+1]);
double scale = atof(arg[iarg+2]);
if (itype <= 0 || itype > atom->ntypes)
error->all("Illegal fix langevin command");
ratio[itype] = scale;
iarg += 3;
} else if (strcmp(arg[iarg],"tally") == 0) {
if (iarg+2 > narg) error->all("Illegal fix langevin command");
if (strcmp(arg[iarg+1],"no") == 0) tally = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) tally = 1;
else error->all("Illegal fix langevin command");
iarg += 2;
} else if (strcmp(arg[iarg],"zero") == 0) {
if (iarg+2 > narg) error->all("Illegal fix langevin command");
if (strcmp(arg[iarg+1],"no") == 0) zeroflag = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) zeroflag = 1;
else error->all("Illegal fix langevin command");
iarg += 2;
} else error->all("Illegal fix langevin command");
}
// error check
if (aflag) {
avec = (AtomVecEllipsoid *) atom->style_match("ellipsoid");
if (!avec)
error->all("Fix langevin angmom requires atom style ellipsoid");
}
// set temperature = NULL, user can override via fix_modify if wants bias
id_temp = NULL;
temperature = NULL;
// flangevin is unallocated until first call to setup()
// compute_scalar checks for this and returns 0.0 if flangevin is NULL
flangevin = NULL;
nmax = 0;
energy = 0.0;
}
/* ---------------------------------------------------------------------- */
FixLangevin::~FixLangevin()
{
delete random;
delete [] gfactor1;
delete [] gfactor2;
delete [] ratio;
delete [] id_temp;
memory->destroy(flangevin);
}
/* ---------------------------------------------------------------------- */
int FixLangevin::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= END_OF_STEP;
mask |= THERMO_ENERGY;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixLangevin::init()
{
if (oflag && !atom->sphere_flag)
error->all("Fix langevin omega require atom style sphere");
if (aflag && !atom->ellipsoid_flag)
error->all("Fix langevin angmom require atom style ellipsoid");
// if oflag or aflag set, check that all group particles are finite-size
if (oflag) {
double *radius = atom->radius;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
if (radius[i] == 0.0)
error->one("Fix langevin omega requires extended particles");
}
if (aflag) {
int *ellipsoid = atom->ellipsoid;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
if (ellipsoid[i] < 0)
error->one("Fix langevin angmom requires extended particles");
}
// set force prefactors
if (!atom->rmass) {
for (int i = 1; i <= atom->ntypes; i++) {
gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v;
gfactor2[i] = sqrt(atom->mass[i]) *
sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) /
force->ftm2v;
gfactor1[i] *= 1.0/ratio[i];
gfactor2[i] *= 1.0/sqrt(ratio[i]);
}
}
if (temperature && temperature->tempbias) which = BIAS;
else which = NOBIAS;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixLangevin::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixLangevin::post_force(int vflag)
{
if (tally) post_force_tally();
else post_force_no_tally();
}
/* ---------------------------------------------------------------------- */
void FixLangevin::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixLangevin::post_force_no_tally()
{
double gamma1,gamma2;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
double t_target = t_start + delta * (t_stop-t_start);
double tsqrt = sqrt(t_target);
// apply damping and thermostat to atoms in group
// for BIAS:
// calculate temperature since some computes require temp
// computed on current nlocal atoms to remove bias
// test v = 0 since some computes mask non-participating atoms via v = 0
// and added force has extra term not multiplied by v = 0
// for ZEROFLAG:
// sum random force over all atoms in group
// subtract sum/count from each atom in group
double fran[3],fsum[3],fsumall[3];
fsum[0] = fsum[1] = fsum[2] = 0.0;
bigint count;
double boltz = force->boltz;
double dt = update->dt;
double mvv2e = force->mvv2e;
double ftm2v = force->ftm2v;
if (zeroflag) {
count = group->count(igroup);
if (count == 0)
error->all("Cannot zero Langevin force of 0 atoms");
}
if (rmass) {
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = -rmass[i] / t_period / ftm2v;
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
fran[0] = gamma2*(random->uniform()-0.5);
fran[1] = gamma2*(random->uniform()-0.5);
fran[2] = gamma2*(random->uniform()-0.5);
f[i][0] += gamma1*v[i][0] + fran[0];
f[i][1] += gamma1*v[i][1] + fran[1];
f[i][2] += gamma1*v[i][2] + fran[2];
fsum[0] += fran[0];
fsum[1] += fran[1];
fsum[2] += fran[2];
}
}
} else if (which == BIAS) {
double tmp = temperature->compute_scalar();
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = -rmass[i] / t_period / ftm2v;
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
temperature->remove_bias(i,v[i]);
fran[0] = gamma2*(random->uniform()-0.5);
fran[1] = gamma2*(random->uniform()-0.5);
fran[2] = gamma2*(random->uniform()-0.5);
if (v[i][0] != 0.0)
f[i][0] += gamma1*v[i][0] + fran[0];
if (v[i][1] != 0.0)
f[i][1] += gamma1*v[i][1] + fran[1];
if (v[i][2] != 0.0)
f[i][2] += gamma1*v[i][2] + fran[2];
fsum[0] += fran[0];
fsum[1] += fran[1];
fsum[2] += fran[2];
temperature->restore_bias(i,v[i]);
}
}
}
} else {
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = gfactor1[type[i]];
gamma2 = gfactor2[type[i]] * tsqrt;
fran[0] = gamma2*(random->uniform()-0.5);
fran[1] = gamma2*(random->uniform()-0.5);
fran[2] = gamma2*(random->uniform()-0.5);
f[i][0] += gamma1*v[i][0] + fran[0];
f[i][1] += gamma1*v[i][1] + fran[1];
f[i][2] += gamma1*v[i][2] + fran[2];
fsum[0] += fran[0];
fsum[1] += fran[1];
fsum[2] += fran[2];
}
}
} else if (which == BIAS) {
double tmp = temperature->compute_scalar();
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = gfactor1[type[i]];
gamma2 = gfactor2[type[i]] * tsqrt;
temperature->remove_bias(i,v[i]);
fran[0] = gamma2*(random->uniform()-0.5);
fran[1] = gamma2*(random->uniform()-0.5);
fran[2] = gamma2*(random->uniform()-0.5);
if (v[i][0] != 0.0)
f[i][0] += gamma1*v[i][0] + fran[0];
if (v[i][1] != 0.0)
f[i][1] += gamma1*v[i][1] + fran[1];
if (v[i][2] != 0.0)
f[i][2] += gamma1*v[i][2] + fran[2];
fsum[0] += fran[0];
fsum[1] += fran[1];
fsum[2] += fran[2];
temperature->restore_bias(i,v[i]);
}
}
}
}
// set total force to zero
if (zeroflag) {
MPI_Allreduce(fsum,fsumall,3,MPI_DOUBLE,MPI_SUM,world);
fsumall[0] /= count;
fsumall[1] /= count;
fsumall[2] /= count;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
f[i][0] -= fsumall[0];
f[i][1] -= fsumall[1];
f[i][2] -= fsumall[2];
}
}
}
// thermostat omega and angmom
if (oflag) omega_thermostat(tsqrt);
if (aflag) angmom_thermostat(tsqrt);
}
/* ---------------------------------------------------------------------- */
void FixLangevin::post_force_tally()
{
double gamma1,gamma2;
// reallocate flangevin if necessary
if (atom->nmax > nmax) {
memory->destroy(flangevin);
nmax = atom->nmax;
memory->create(flangevin,nmax,3,"langevin:flangevin");
}
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
double t_target = t_start + delta * (t_stop-t_start);
double tsqrt = sqrt(t_target);
// apply damping and thermostat to appropriate atoms
// for BIAS:
// calculate temperature since some computes require temp
// computed on current nlocal atoms to remove bias
// test v = 0 since some computes mask non-participating atoms via v = 0
// and added force has extra term not multiplied by v = 0
double boltz = force->boltz;
double dt = update->dt;
double mvv2e = force->mvv2e;
double ftm2v = force->ftm2v;
if (rmass) {
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = -rmass[i] / t_period / ftm2v;
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
flangevin[i][0] = gamma1*v[i][0] + gamma2*(random->uniform()-0.5);
flangevin[i][1] = gamma1*v[i][1] + gamma2*(random->uniform()-0.5);
flangevin[i][2] = gamma1*v[i][2] + gamma2*(random->uniform()-0.5);
f[i][0] += flangevin[i][0];
f[i][1] += flangevin[i][1];
f[i][2] += flangevin[i][2];
}
}
} else if (which == BIAS) {
double tmp = temperature->compute_scalar();
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = -rmass[i] / t_period / ftm2v;
gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
temperature->remove_bias(i,v[i]);
flangevin[i][0] = gamma1*v[i][0] + gamma2*(random->uniform()-0.5);
flangevin[i][1] = gamma1*v[i][1] + gamma2*(random->uniform()-0.5);
flangevin[i][2] = gamma1*v[i][2] + gamma2*(random->uniform()-0.5);
if (v[i][0] != 0.0) f[i][0] += flangevin[i][0];
else flangevin[i][0] = 0;
if (v[i][1] != 0.0) f[i][1] += flangevin[i][1];
else flangevin[i][1] = 0;
if (v[i][2] != 0.0) f[i][2] += flangevin[i][2];
else flangevin[i][2] = 0;
temperature->restore_bias(i,v[i]);
}
}
}
} else {
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = gfactor1[type[i]];
gamma2 = gfactor2[type[i]] * tsqrt;
flangevin[i][0] = gamma1*v[i][0] + gamma2*(random->uniform()-0.5);
flangevin[i][1] = gamma1*v[i][1] + gamma2*(random->uniform()-0.5);
flangevin[i][2] = gamma1*v[i][2] + gamma2*(random->uniform()-0.5);
f[i][0] += flangevin[i][0];
f[i][1] += flangevin[i][1];
f[i][2] += flangevin[i][2];
}
}
} else if (which == BIAS) {
double tmp = temperature->compute_scalar();
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
gamma1 = gfactor1[type[i]];
gamma2 = gfactor2[type[i]] * tsqrt;
temperature->remove_bias(i,v[i]);
flangevin[i][0] = gamma1*v[i][0] + gamma2*(random->uniform()-0.5);
flangevin[i][1] = gamma1*v[i][1] + gamma2*(random->uniform()-0.5);
flangevin[i][2] = gamma1*v[i][2] + gamma2*(random->uniform()-0.5);
if (v[i][0] != 0.0) f[i][0] += flangevin[i][0];
else flangevin[i][0] = 0.0;
if (v[i][1] != 0.0) f[i][1] += flangevin[i][1];
else flangevin[i][1] = 0.0;
if (v[i][2] != 0.0) f[i][2] += flangevin[i][2];
else flangevin[i][2] = 0.0;
temperature->restore_bias(i,v[i]);
}
}
}
}
// thermostat omega and angmom
if (oflag) omega_thermostat(tsqrt);
if (aflag) angmom_thermostat(tsqrt);
}
/* ----------------------------------------------------------------------
thermostat rotational dof via omega
------------------------------------------------------------------------- */
void FixLangevin::omega_thermostat(double tsqrt)
{
double gamma1,gamma2;
double boltz = force->boltz;
double dt = update->dt;
double mvv2e = force->mvv2e;
double ftm2v = force->ftm2v;
double **torque = atom->torque;
double **omega = atom->omega;
double *radius = atom->radius;
double *rmass = atom->rmass;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
double tran[3];
double inertiaone;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
inertiaone = SINERTIA*radius[i]*radius[i]*rmass[i];
gamma1 = -inertiaone / t_period / ftm2v;
gamma2 = sqrt(inertiaone) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
tran[0] = gamma2*(random->uniform()-0.5);
tran[1] = gamma2*(random->uniform()-0.5);
tran[2] = gamma2*(random->uniform()-0.5);
torque[i][0] += gamma1*omega[i][0] + tran[0];
torque[i][1] += gamma1*omega[i][1] + tran[1];
torque[i][2] += gamma1*omega[i][2] + tran[2];
}
}
}
/* ----------------------------------------------------------------------
thermostat rotational dof via angmom
------------------------------------------------------------------------- */
void FixLangevin::angmom_thermostat(double tsqrt)
{
double gamma1,gamma2;
double boltz = force->boltz;
double dt = update->dt;
double mvv2e = force->mvv2e;
double ftm2v = force->ftm2v;
AtomVecEllipsoid::Bonus *bonus = avec->bonus;
double **torque = atom->torque;
double **angmom = atom->angmom;
double *rmass = atom->rmass;
int *ellipsoid = atom->ellipsoid;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
double inertia[3],wbody[3],omega[3],tran[3],rot[3][3];
double *shape,*quat;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
shape = bonus[ellipsoid[i]].shape;
inertia[0] = EINERTIA*rmass[i] * (shape[1]*shape[1]+shape[2]*shape[2]);
inertia[1] = EINERTIA*rmass[i] * (shape[0]*shape[0]+shape[2]*shape[2]);
inertia[2] = EINERTIA*rmass[i] * (shape[0]*shape[0]+shape[1]*shape[1]);
quat = bonus[ellipsoid[i]].quat;
MathExtra::mq_to_omega(angmom[i],quat,inertia,omega);
gamma1 = -1.0 / t_period / ftm2v;
gamma2 = sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
gamma1 *= 1.0/ratio[type[i]];
gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt;
tran[0] = sqrt(inertia[0])*gamma2*(random->uniform()-0.5);
tran[1] = sqrt(inertia[1])*gamma2*(random->uniform()-0.5);
tran[2] = sqrt(inertia[2])*gamma2*(random->uniform()-0.5);
torque[i][0] += inertia[0]*gamma1*omega[0] + tran[0];
torque[i][1] += inertia[1]*gamma1*omega[1] + tran[1];
torque[i][2] += inertia[2]*gamma1*omega[2] + tran[2];
}
}
}
/* ----------------------------------------------------------------------
tally energy transfer to thermal reservoir
------------------------------------------------------------------------- */
void FixLangevin::end_of_step()
{
if (!tally) return;
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
energy_onestep = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
flangevin[i][2]*v[i][2];
energy += energy_onestep*update->dt;
}
/* ---------------------------------------------------------------------- */
void FixLangevin::reset_target(double t_new)
{
t_start = t_stop = t_new;
}
/* ---------------------------------------------------------------------- */
void FixLangevin::reset_dt()
{
if (atom->mass) {
for (int i = 1; i <= atom->ntypes; i++) {
gfactor2[i] = sqrt(atom->mass[i]) *
sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) /
force->ftm2v;
gfactor2[i] *= 1.0/sqrt(ratio[i]);
}
}
}
/* ---------------------------------------------------------------------- */
int FixLangevin::modify_param(int narg, char **arg)
{
if (strcmp(arg[0],"temp") == 0) {
if (narg < 2) error->all("Illegal fix_modify command");
delete [] id_temp;
int n = strlen(arg[1]) + 1;
id_temp = new char[n];
strcpy(id_temp,arg[1]);
int icompute = modify->find_compute(id_temp);
if (icompute < 0) error->all("Could not find fix_modify temperature ID");
temperature = modify->compute[icompute];
if (temperature->tempflag == 0)
error->all("Fix_modify temperature ID does not compute temperature");
if (temperature->igroup != igroup && comm->me == 0)
error->warning("Group for fix_modify temp != fix group");
return 2;
}
return 0;
}
/* ---------------------------------------------------------------------- */
double FixLangevin::compute_scalar()
{
if (!tally || flangevin == NULL) return 0.0;
// capture the very first energy transfer to thermal reservoir
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (update->ntimestep == update->beginstep) {
energy_onestep = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
energy_onestep += flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
flangevin[i][2]*v[i][2];
energy = 0.5*energy_onestep*update->dt;
}
double energy_me = energy - 0.5*energy_onestep*update->dt;
double energy_all;
MPI_Allreduce(&energy_me,&energy_all,1,MPI_DOUBLE,MPI_SUM,world);
return -energy_all;
}
/* ----------------------------------------------------------------------
memory usage of tally array
------------------------------------------------------------------------- */
double FixLangevin::memory_usage()
{
if (!tally) return 0.0;
double bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
diff --git a/src/fix_lineforce.cpp b/src/fix_lineforce.cpp
index 639489c6a..9f3f6b241 100644
--- a/src/fix_lineforce.cpp
+++ b/src/fix_lineforce.cpp
@@ -1,107 +1,107 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_lineforce.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixLineForce::FixLineForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 6) error->all("Illegal fix lineforce command");
xdir = atof(arg[3]);
ydir = atof(arg[4]);
zdir = atof(arg[5]);
double len = sqrt(xdir*xdir + ydir*ydir + zdir*zdir);
if (len == 0.0) error->all("Illegal fix lineforce command");
xdir /= len;
ydir /= len;
zdir /= len;
}
/* ---------------------------------------------------------------------- */
int FixLineForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixLineForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
int nlevels_respa = ((Respa *) update->integrate)->nlevels;
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
}
/* ---------------------------------------------------------------------- */
void FixLineForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixLineForce::post_force(int vflag)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double dot;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dot = f[i][0]*xdir + f[i][1]*ydir + f[i][2]*zdir;
f[i][0] = dot * xdir;
f[i][1] = dot * ydir;
f[i][2] = dot * zdir;
}
}
/* ---------------------------------------------------------------------- */
void FixLineForce::post_force_respa(int vflag, int ilevel, int iloop)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixLineForce::min_post_force(int vflag)
{
post_force(vflag);
}
diff --git a/src/fix_move.cpp b/src/fix_move.cpp
index 1aa844923..f04de3f15 100644
--- a/src/fix_move.cpp
+++ b/src/fix_move.cpp
@@ -1,1012 +1,1012 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "fix_move.h"
#include "atom.h"
#include "group.h"
#include "update.h"
#include "modify.h"
#include "force.h"
#include "domain.h"
#include "lattice.h"
#include "comm.h"
#include "respa.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{LINEAR,WIGGLE,ROTATE,VARIABLE};
enum{EQUAL,ATOM};
/* ---------------------------------------------------------------------- */
FixMove::FixMove(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 4) error->all("Illegal fix move command");
restart_global = 1;
restart_peratom = 1;
peratom_flag = 1;
size_peratom_cols = 3;
peratom_freq = 1;
time_integrate = 1;
time_depend = 1;
create_attribute = 1;
// parse args
int iarg;
xvarstr = yvarstr = zvarstr = NULL;
vxvarstr = vyvarstr = vzvarstr = NULL;
if (strcmp(arg[3],"linear") == 0) {
if (narg < 7) error->all("Illegal fix move command");
iarg = 7;
mstyle = LINEAR;
if (strcmp(arg[4],"NULL") == 0) vxflag = 0;
else {
vxflag = 1;
vx = atof(arg[4]);
}
if (strcmp(arg[5],"NULL") == 0) vyflag = 0;
else {
vyflag = 1;
vy = atof(arg[5]);
}
if (strcmp(arg[6],"NULL") == 0) vzflag = 0;
else {
vzflag = 1;
vz = atof(arg[6]);
}
} else if (strcmp(arg[3],"wiggle") == 0) {
if (narg < 8) error->all("Illegal fix move command");
iarg = 8;
mstyle = WIGGLE;
if (strcmp(arg[4],"NULL") == 0) axflag = 0;
else {
axflag = 1;
ax = atof(arg[4]);
}
if (strcmp(arg[5],"NULL") == 0) ayflag = 0;
else {
ayflag = 1;
ay = atof(arg[5]);
}
if (strcmp(arg[6],"NULL") == 0) azflag = 0;
else {
azflag = 1;
az = atof(arg[6]);
}
period = atof(arg[7]);
} else if (strcmp(arg[3],"rotate") == 0) {
if (narg < 11) error->all("Illegal fix move command");
iarg = 11;
mstyle = ROTATE;
point[0] = atof(arg[4]);
point[1] = atof(arg[5]);
point[2] = atof(arg[6]);
axis[0] = atof(arg[7]);
axis[1] = atof(arg[8]);
axis[2] = atof(arg[9]);
period = atof(arg[10]);
} else if (strcmp(arg[3],"variable") == 0) {
if (narg < 10) error->all("Illegal fix move command");
iarg = 10;
mstyle = VARIABLE;
if (strcmp(arg[4],"NULL") == 0) xvarstr = NULL;
else if (strstr(arg[4],"v_") == arg[4]) {
int n = strlen(&arg[4][2]) + 1;
xvarstr = new char[n];
strcpy(xvarstr,&arg[4][2]);
} else error->all("Illegal fix move command");
if (strcmp(arg[5],"NULL") == 0) yvarstr = NULL;
else if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
yvarstr = new char[n];
strcpy(yvarstr,&arg[5][2]);
} else error->all("Illegal fix move command");
if (strcmp(arg[6],"NULL") == 0) zvarstr = NULL;
else if (strstr(arg[6],"v_") == arg[6]) {
int n = strlen(&arg[6][2]) + 1;
zvarstr = new char[n];
strcpy(zvarstr,&arg[6][2]);
} else error->all("Illegal fix move command");
if (strcmp(arg[7],"NULL") == 0) vxvarstr = NULL;
else if (strstr(arg[7],"v_") == arg[7]) {
int n = strlen(&arg[7][2]) + 1;
vxvarstr = new char[n];
strcpy(vxvarstr,&arg[7][2]);
} else error->all("Illegal fix move command");
if (strcmp(arg[8],"NULL") == 0) vyvarstr = NULL;
else if (strstr(arg[8],"v_") == arg[8]) {
int n = strlen(&arg[8][2]) + 1;
vyvarstr = new char[n];
strcpy(vyvarstr,&arg[8][2]);
} else error->all("Illegal fix move command");
if (strcmp(arg[9],"NULL") == 0) vzvarstr = NULL;
else if (strstr(arg[9],"v_") == arg[9]) {
int n = strlen(&arg[9][2]) + 1;
vzvarstr = new char[n];
strcpy(vzvarstr,&arg[9][2]);
} else error->all("Illegal fix move command");
} else error->all("Illegal fix move command");
// optional args
int scaleflag = 1;
while (iarg < narg) {
if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all("Illegal fix move command");
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all("Illegal fix move command");
iarg += 2;
} else error->all("Illegal fix move command");
}
// error checks and warnings
if (domain->dimension == 2) {
if (mstyle == LINEAR && vzflag && vz != 0.0)
error->all("Fix move cannot set linear z motion for 2d problem");
if (mstyle == WIGGLE && azflag && az != 0.0)
error->all("Fix move cannot set wiggle z motion for 2d problem");
if (mstyle == ROTATE && (axis[0] != 0.0 || axis[1] != 0.0))
error->all("Fix move cannot rotate aroung non z-axis for 2d problem");
if (mstyle == VARIABLE && (zvarstr || vzvarstr))
error->all("Fix move cannot define z or vz variable for 2d problem");
}
if (atom->angmom_flag && comm->me == 0)
error->warning("Fix move does not update angular momentum");
if (atom->ellipsoid_flag && comm->me == 0)
error->warning("Fix move does not update quaternions");
// setup scaling and apply scaling factors to velocity & amplitude
if ((mstyle == LINEAR || mstyle == WIGGLE || mstyle == ROTATE) &&
scaleflag) {
if (domain->lattice == NULL)
error->all("Use of fix move with undefined lattice");
double xscale,yscale,zscale;
if (scaleflag) {
xscale = domain->lattice->xlattice;
yscale = domain->lattice->ylattice;
zscale = domain->lattice->zlattice;
}
else xscale = yscale = zscale = 1.0;
if (mstyle == LINEAR) {
if (vxflag) vx *= xscale;
if (vyflag) vy *= yscale;
if (vzflag) vz *= zscale;
} else if (mstyle == WIGGLE) {
if (axflag) ax *= xscale;
if (ayflag) ay *= yscale;
if (azflag) az *= zscale;
} else if (mstyle == ROTATE) {
point[0] *= xscale;
point[1] *= yscale;
point[2] *= zscale;
}
}
// set omega_rotate from period
if (mstyle == WIGGLE || mstyle == ROTATE) {
double PI = 4.0 * atan(1.0);
omega_rotate = 2.0*PI / period;
}
// runit = unit vector along rotation axis
if (mstyle == ROTATE) {
double len = sqrt(axis[0]*axis[0] + axis[1]*axis[1] + axis[2]*axis[2]);
if (len == 0.0)
error->all("Fix move cannot have 0 length rotation vector");
runit[0] = axis[0]/len;
runit[1] = axis[1]/len;
runit[2] = axis[2]/len;
}
// set omega_flag if particles store omega
omega_flag = atom->omega_flag;
// perform initial allocation of atom-based array
// register with Atom class
xoriginal = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
maxatom = 0;
displace = velocity = NULL;
// xoriginal = initial unwrapped positions of atoms
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) domain->unmap(x[i],image[i],xoriginal[i]);
else xoriginal[i][0] = xoriginal[i][1] = xoriginal[i][2] = 0.0;
}
time_origin = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
FixMove::~FixMove()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
atom->delete_callback(id,1);
// delete locally stored arrays
memory->destroy(xoriginal);
memory->destroy(displace);
memory->destroy(velocity);
delete [] xvarstr;
delete [] yvarstr;
delete [] zvarstr;
delete [] vxvarstr;
delete [] vyvarstr;
delete [] vzvarstr;
}
/* ---------------------------------------------------------------------- */
int FixMove::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixMove::init()
{
dt = update->dt;
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
// set indices and style of all variables
if (mstyle == VARIABLE) {
if (xvarstr) {
xvar = input->variable->find(xvarstr);
if (xvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(xvar)) xvarstyle = EQUAL;
else if (input->variable->atomstyle(xvar)) xvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
if (yvarstr) {
yvar = input->variable->find(yvarstr);
if (yvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(yvar)) yvarstyle = EQUAL;
else if (input->variable->atomstyle(yvar)) yvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
if (zvarstr) {
zvar = input->variable->find(zvarstr);
if (zvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(zvar)) zvarstyle = EQUAL;
else if (input->variable->atomstyle(zvar)) zvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
if (vxvarstr) {
vxvar = input->variable->find(vxvarstr);
if (vxvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(vxvar)) vxvarstyle = EQUAL;
else if (input->variable->atomstyle(vxvar)) vxvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
if (vyvarstr) {
vyvar = input->variable->find(vyvarstr);
if (vyvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(vyvar)) vyvarstyle = EQUAL;
else if (input->variable->atomstyle(vyvar)) vyvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
if (vzvarstr) {
vzvar = input->variable->find(vzvarstr);
if (vzvar < 0) error->all("Variable name for fix move does not exist");
if (input->variable->equalstyle(vzvar)) vzvarstyle = EQUAL;
else if (input->variable->atomstyle(vzvar)) vzvarstyle = ATOM;
else error->all("Variable for fix move is invalid style");
}
displaceflag = velocityflag = 0;
if (xvarstr && xvarstyle == ATOM) displaceflag = 1;
if (yvarstr && yvarstyle == ATOM) displaceflag = 1;
if (zvarstr && zvarstyle == ATOM) displaceflag = 1;
if (vxvarstr && vxvarstyle == ATOM) velocityflag = 1;
if (vyvarstr && vyvarstyle == ATOM) velocityflag = 1;
if (vzvarstr && vzvarstyle == ATOM) velocityflag = 1;
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ----------------------------------------------------------------------
set x,v of particles
------------------------------------------------------------------------- */
void FixMove::initial_integrate(int vflag)
{
double dtfm;
double xold[3],a[3],b[3],c[3],d[3],disp[3];
double ddotr,dx,dy,dz;
double delta = (update->ntimestep - time_origin) * dt;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
// for linear: X = X0 + V*dt
if (mstyle == LINEAR) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xold[0] = x[i][0];
xold[1] = x[i][1];
xold[2] = x[i][2];
if (vxflag) {
v[i][0] = vx;
x[i][0] = xoriginal[i][0] + vx*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
} else {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
}
if (vyflag) {
v[i][1] = vy;
x[i][1] = xoriginal[i][1] + vy*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
} else {
dtfm = dtf / mass[type[i]];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
}
if (vzflag) {
v[i][2] = vz;
x[i][2] = xoriginal[i][2] + vz*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
} else {
dtfm = dtf / mass[type[i]];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
}
domain->remap_near(x[i],xold);
}
}
// for wiggle: X = X0 + A sin(w*dt)
} else if (mstyle == WIGGLE) {
double arg = omega_rotate * delta;
double sine = sin(arg);
double cosine = cos(arg);
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xold[0] = x[i][0];
xold[1] = x[i][1];
xold[2] = x[i][2];
if (axflag) {
v[i][0] = ax*omega_rotate*cosine;
x[i][0] = xoriginal[i][0] + ax*sine;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
} else {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
}
if (ayflag) {
v[i][1] = ay*omega_rotate*cosine;
x[i][1] = xoriginal[i][1] + ay*sine;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
} else {
dtfm = dtf / mass[type[i]];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
}
if (azflag) {
v[i][2] = az*omega_rotate*cosine;
x[i][2] = xoriginal[i][2] + az*sine;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
} else {
dtfm = dtf / mass[type[i]];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
}
domain->remap_near(x[i],xold);
}
}
// for rotate by right-hand rule around omega:
// P = point = vector = point of rotation
// R = vector = axis of rotation
// w = omega of rotation (from period)
// X0 = xoriginal = initial coord of atom
// R0 = runit = unit vector for R
// D = X0 - P = vector from P to X0
// C = (D dot R0) R0 = projection of atom coord onto R line
// A = D - C = vector from R line to X0
// B = R0 cross A = vector perp to A in plane of rotation
// A,B define plane of circular rotation around R line
// X = P + C + A cos(w*dt) + B sin(w*dt)
// V = w R0 cross (A cos(w*dt) + B sin(w*dt))
} else if (mstyle == ROTATE) {
double arg = omega_rotate * delta;
double sine = sin(arg);
double cosine = cos(arg);
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xold[0] = x[i][0];
xold[1] = x[i][1];
xold[2] = x[i][2];
d[0] = xoriginal[i][0] - point[0];
d[1] = xoriginal[i][1] - point[1];
d[2] = xoriginal[i][2] - point[2];
ddotr = d[0]*runit[0] + d[1]*runit[1] + d[2]*runit[2];
c[0] = ddotr*runit[0];
c[1] = ddotr*runit[1];
c[2] = ddotr*runit[2];
a[0] = d[0] - c[0];
a[1] = d[1] - c[1];
a[2] = d[2] - c[2];
b[0] = runit[1]*a[2] - runit[2]*a[1];
b[1] = runit[2]*a[0] - runit[0]*a[2];
b[2] = runit[0]*a[1] - runit[1]*a[0];
disp[0] = a[0]*cosine + b[0]*sine;
disp[1] = a[1]*cosine + b[1]*sine;
disp[2] = a[2]*cosine + b[2]*sine;
x[i][0] = point[0] + c[0] + disp[0];
x[i][1] = point[1] + c[1] + disp[1];
x[i][2] = point[2] + c[2] + disp[2];
v[i][0] = omega_rotate * (runit[1]*disp[2] - runit[2]*disp[1]);
v[i][1] = omega_rotate * (runit[2]*disp[0] - runit[0]*disp[2]);
v[i][2] = omega_rotate * (runit[0]*disp[1] - runit[1]*disp[0]);
if (omega_flag) {
omega[i][0] = omega_rotate*runit[0];
omega[i][1] = omega_rotate*runit[1];
omega[i][2] = omega_rotate*runit[2];
}
domain->remap_near(x[i],xold);
}
}
// for variable: compute x,v from variables
} else if (mstyle == VARIABLE) {
// reallocate displace and velocity arrays as necessary
if ((displaceflag || velocityflag) && nlocal > maxatom) {
maxatom = atom->nmax;
if (displaceflag) {
memory->destroy(displace);
memory->create(displace,maxatom,3,"move:displace");
}
if (velocityflag) {
memory->destroy(velocity);
memory->create(velocity,maxatom,3,"move:velocity");
}
}
// pre-compute variable values, wrap with clear/add
modify->clearstep_compute();
if (xvarstr) {
if (xvarstyle == EQUAL) dx = input->variable->compute_equal(xvar);
else if (displace)
input->variable->compute_atom(xvar,igroup,&displace[0][0],3,0);
}
if (yvarstr) {
if (yvarstyle == EQUAL) dy = input->variable->compute_equal(yvar);
else if (displace)
input->variable->compute_atom(yvar,igroup,&displace[0][1],3,0);
}
if (zvarstr) {
if (zvarstyle == EQUAL) dz = input->variable->compute_equal(zvar);
else if (displace)
input->variable->compute_atom(zvar,igroup,&displace[0][2],3,0);
}
if (vxvarstr) {
if (vxvarstyle == EQUAL) vx = input->variable->compute_equal(vxvar);
else if (velocity)
input->variable->compute_atom(vxvar,igroup,&velocity[0][0],3,0);
}
if (vyvarstr) {
if (vyvarstyle == EQUAL) vy = input->variable->compute_equal(vyvar);
else if (velocity)
input->variable->compute_atom(vyvar,igroup,&velocity[0][1],3,0);
}
if (vzvarstr) {
if (vzvarstyle == EQUAL) vz = input->variable->compute_equal(vzvar);
else if (velocity)
input->variable->compute_atom(vzvar,igroup,&velocity[0][2],3,0);
}
modify->addstep_compute(update->ntimestep + 1);
// update x,v
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xold[0] = x[i][0];
xold[1] = x[i][1];
xold[2] = x[i][2];
if (xvarstr && vxvarstr) {
if (vxvarstyle == EQUAL) v[i][0] = vx;
else v[i][0] = velocity[i][0];
if (xvarstyle == EQUAL) x[i][0] = xoriginal[i][0] + dx;
else x[i][0] = xoriginal[i][0] + displace[i][0];
} else if (xvarstr) {
if (xvarstyle == EQUAL) x[i][0] = xoriginal[i][0] + dx;
else x[i][0] = xoriginal[i][0] + displace[i][0];
} else if (vxvarstr) {
if (vxvarstyle == EQUAL) v[i][0] = vx;
else v[i][0] = velocity[i][0];
if (rmass) {
dtfm = dtf / rmass[i];
x[i][0] += dtv * v[i][0];
} else {
dtfm = dtf / mass[type[i]];
x[i][0] += dtv * v[i][0];
}
} else {
if (rmass) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
} else {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
x[i][0] += dtv * v[i][0];
}
}
if (yvarstr && vyvarstr) {
if (vyvarstyle == EQUAL) v[i][1] = vy;
else v[i][1] = velocity[i][1];
if (yvarstyle == EQUAL) x[i][1] = xoriginal[i][1] + dy;
else x[i][1] = xoriginal[i][1] + displace[i][1];
} else if (yvarstr) {
if (yvarstyle == EQUAL) x[i][1] = xoriginal[i][1] + dy;
else x[i][1] = xoriginal[i][1] + displace[i][1];
} else if (vyvarstr) {
if (vyvarstyle == EQUAL) v[i][1] = vy;
else v[i][1] = velocity[i][1];
if (rmass) {
dtfm = dtf / rmass[i];
x[i][1] += dtv * v[i][1];
} else {
dtfm = dtf / mass[type[i]];
x[i][1] += dtv * v[i][1];
}
} else {
if (rmass) {
dtfm = dtf / rmass[i];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
} else {
dtfm = dtf / mass[type[i]];
v[i][1] += dtfm * f[i][1];
x[i][1] += dtv * v[i][1];
}
}
if (zvarstr && vzvarstr) {
if (vzvarstyle == EQUAL) v[i][2] = vz;
else v[i][2] = velocity[i][2];
if (zvarstyle == EQUAL) x[i][2] = xoriginal[i][2] + dz;
else x[i][2] = xoriginal[i][2] + displace[i][2];
} else if (zvarstr) {
if (zvarstyle == EQUAL) x[i][2] = xoriginal[i][2] + dz;
else x[i][2] = xoriginal[i][2] + displace[i][2];
} else if (vzvarstr) {
if (vzvarstyle == EQUAL) v[i][2] = vz;
else v[i][2] = velocity[i][2];
if (rmass) {
dtfm = dtf / rmass[i];
x[i][2] += dtv * v[i][2];
} else {
dtfm = dtf / mass[type[i]];
x[i][2] += dtv * v[i][2];
}
} else {
if (rmass) {
dtfm = dtf / rmass[i];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
} else {
dtfm = dtf / mass[type[i]];
v[i][2] += dtfm * f[i][2];
x[i][2] += dtv * v[i][2];
}
}
domain->remap_near(x[i],xold);
}
}
}
}
/* ----------------------------------------------------------------------
final NVE of particles with NULL components
------------------------------------------------------------------------- */
void FixMove::final_integrate()
{
double dtfm;
int xflag = 1;
if (mstyle == LINEAR && vxflag) xflag = 0;
else if (mstyle == WIGGLE && axflag) xflag = 0;
else if (mstyle == ROTATE) xflag = 0;
else if (mstyle == VARIABLE && (xvarstr || vxvarstr)) xflag = 0;
int yflag = 1;
if (mstyle == LINEAR && vyflag) yflag = 0;
else if (mstyle == WIGGLE && ayflag) yflag = 0;
else if (mstyle == ROTATE) yflag = 0;
else if (mstyle == VARIABLE && (yvarstr || vyvarstr)) yflag = 0;
int zflag = 1;
if (mstyle == LINEAR && vzflag) zflag = 0;
else if (mstyle == WIGGLE && azflag) zflag = 0;
else if (mstyle == ROTATE) zflag = 0;
else if (mstyle == VARIABLE && (zvarstr || vzvarstr)) zflag = 0;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
if (xflag)
if (rmass) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
} else {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
}
if (yflag)
if (rmass) {
dtfm = dtf / rmass[i];
v[i][1] += dtfm * f[i][1];
} else {
dtfm = dtf / mass[type[i]];
v[i][1] += dtfm * f[i][1];
}
if (zflag)
if (rmass) {
dtfm = dtf / rmass[i];
v[i][2] += dtfm * f[i][2];
} else {
dtfm = dtf / mass[type[i]];
v[i][2] += dtfm * f[i][2];
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixMove::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
// outermost level - update v and x
// all other levels - nothing
if (ilevel == nlevels_respa-1) initial_integrate(vflag);
}
/* ---------------------------------------------------------------------- */
void FixMove::final_integrate_respa(int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) final_integrate();
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixMove::memory_usage()
{
double bytes = atom->nmax*3 * sizeof(double);
if (displaceflag) bytes += atom->nmax*3 * sizeof(double);
if (velocityflag) bytes += atom->nmax*3 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
pack entire state of Fix into one write
------------------------------------------------------------------------- */
void FixMove::write_restart(FILE *fp)
{
int n = 0;
double list[1];
list[n++] = time_origin;
if (comm->me == 0) {
int size = n * sizeof(double);
fwrite(&size,sizeof(int),1,fp);
fwrite(list,sizeof(double),n,fp);
}
}
/* ----------------------------------------------------------------------
use state info from restart file to restart the Fix
------------------------------------------------------------------------- */
void FixMove::restart(char *buf)
{
int n = 0;
double *list = (double *) buf;
time_origin = static_cast<int> (list[n++]);
}
/* ----------------------------------------------------------------------
allocate atom-based array
------------------------------------------------------------------------- */
void FixMove::grow_arrays(int nmax)
{
memory->grow(xoriginal,nmax,3,"move:xoriginal");
array_atom = xoriginal;
}
/* ----------------------------------------------------------------------
copy values within local atom-based array
------------------------------------------------------------------------- */
void FixMove::copy_arrays(int i, int j)
{
xoriginal[j][0] = xoriginal[i][0];
xoriginal[j][1] = xoriginal[i][1];
xoriginal[j][2] = xoriginal[i][2];
}
/* ----------------------------------------------------------------------
initialize one atom's array values, called when atom is created
------------------------------------------------------------------------- */
void FixMove::set_arrays(int i)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
// particle not in group
if (!(mask[i] & groupbit)) {
xoriginal[i][0] = xoriginal[i][1] = xoriginal[i][2] = 0.0;
return;
}
// current time still equal fix creation time
if (update->ntimestep == time_origin) {
domain->unmap(x[i],image[i],xoriginal[i]);
return;
}
// backup particle to time_origin
if (mstyle == VARIABLE)
error->all("Cannot add atoms to fix move variable");
domain->unmap(x[i],image[i],xoriginal[i]);
double delta = (update->ntimestep - time_origin) * update->dt;
if (mstyle == LINEAR) {
if (vxflag) xoriginal[i][0] -= vx * delta;
if (vyflag) xoriginal[i][1] -= vy * delta;
if (vzflag) xoriginal[i][2] -= vz * delta;
} else if (mstyle == WIGGLE) {
double arg = omega_rotate * delta;
double sine = sin(arg);
double cosine = cos(arg);
if (axflag) xoriginal[i][0] -= ax*sine;
if (ayflag) xoriginal[i][1] -= ay*sine;
if (azflag) xoriginal[i][2] -= az*sine;
} else if (mstyle == ROTATE) {
double a[3],b[3],c[3],d[3],disp[3],ddotr;
double arg = - omega_rotate * delta;
double sine = sin(arg);
double cosine = cos(arg);
d[0] = x[i][0] - point[0];
d[1] = x[i][1] - point[1];
d[2] = x[i][2] - point[2];
ddotr = d[0]*runit[0] + d[1]*runit[1] + d[2]*runit[2];
c[0] = ddotr*runit[0];
c[1] = ddotr*runit[1];
c[2] = ddotr*runit[2];
a[0] = d[0] - c[0];
a[1] = d[1] - c[1];
a[2] = d[2] - c[2];
b[0] = runit[1]*a[2] - runit[2]*a[1];
b[1] = runit[2]*a[0] - runit[0]*a[2];
b[2] = runit[0]*a[1] - runit[1]*a[0];
disp[0] = a[0]*cosine + b[0]*sine;
disp[1] = a[1]*cosine + b[1]*sine;
disp[2] = a[2]*cosine + b[2]*sine;
xoriginal[i][0] = point[0] + c[0] + disp[0];
xoriginal[i][1] = point[1] + c[1] + disp[1];
xoriginal[i][2] = point[2] + c[2] + disp[2];
}
}
/* ----------------------------------------------------------------------
pack values in local atom-based array for exchange with another proc
------------------------------------------------------------------------- */
int FixMove::pack_exchange(int i, double *buf)
{
buf[0] = xoriginal[i][0];
buf[1] = xoriginal[i][1];
buf[2] = xoriginal[i][2];
return 3;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based array from exchange with another proc
------------------------------------------------------------------------- */
int FixMove::unpack_exchange(int nlocal, double *buf)
{
xoriginal[nlocal][0] = buf[0];
xoriginal[nlocal][1] = buf[1];
xoriginal[nlocal][2] = buf[2];
return 3;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for restart file
------------------------------------------------------------------------- */
int FixMove::pack_restart(int i, double *buf)
{
buf[0] = 4;
buf[1] = xoriginal[i][0];
buf[2] = xoriginal[i][1];
buf[3] = xoriginal[i][2];
return 4;
}
/* ----------------------------------------------------------------------
unpack values from atom->extra array to restart the fix
------------------------------------------------------------------------- */
void FixMove::unpack_restart(int nlocal, int nth)
{
double **extra = atom->extra;
// skip to Nth set of extra values
int m = 0;
for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]);
m++;
xoriginal[nlocal][0] = extra[nlocal][m++];
xoriginal[nlocal][1] = extra[nlocal][m++];
xoriginal[nlocal][2] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
maxsize of any atom's restart data
------------------------------------------------------------------------- */
int FixMove::maxsize_restart()
{
return 4;
}
/* ----------------------------------------------------------------------
size of atom nlocal's restart data
------------------------------------------------------------------------- */
int FixMove::size_restart(int nlocal)
{
return 4;
}
/* ---------------------------------------------------------------------- */
void FixMove::reset_dt()
{
error->all("Resetting timestep is not allowed with fix move");
}
diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp
index cf4d5535f..674511a24 100644
--- a/src/fix_nh.cpp
+++ b/src/fix_nh.cpp
@@ -1,1942 +1,2126 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Mark Stevens (SNL), Aidan Thompson (SNL)
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "fix_nh.h"
#include "math_extra.h"
#include "atom.h"
#include "force.h"
#include "comm.h"
+#include "irregular.h"
#include "modify.h"
#include "fix_deform.h"
#include "compute.h"
#include "kspace.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
+#define DELTAFLIP 0.1
+#define TILTMAX 1.5
+
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
enum{NOBIAS,BIAS};
enum{NONE,XYZ,XY,YZ,XZ};
enum{ISO,ANISO,TRICLINIC};
/* ----------------------------------------------------------------------
NVT,NPH,NPT integrators for improved Nose-Hoover equations of motion
---------------------------------------------------------------------- */
FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
{
if (narg < 4) error->all("Illegal fix nvt/npt/nph command");
restart_global = 1;
time_integrate = 1;
scalar_flag = 1;
vector_flag = 1;
global_freq = 1;
extscalar = 1;
extvector = 0;
// default values
pcouple = NONE;
drag = 0.0;
allremap = 1;
mtchain = mpchain = 3;
nc_tchain = nc_pchain = 1;
mtk_flag = 1;
deviatoric_flag = 0;
nreset_h0 = 0;
+ // turn on tilt factor scaling, whenever applicable
+
+ dimension = domain->dimension;
+
+ scaleyz = scalexz = scalexy = 0;
+ if (domain->yperiodic && domain->xy != 0.0) scalexy = 1;
+ if (domain->zperiodic && dimension == 3) {
+ if (domain->yz != 0.0) scaleyz = 1;
+ if (domain->xz != 0.0) scalexz = 1;
+ }
+
// Used by FixNVTSllod to preserve non-default value
mtchain_default_flag = 1;
tstat_flag = 0;
double t_period = 0.0;
double p_period[6];
for (int i = 0; i < 6; i++) {
p_start[i] = p_stop[i] = p_period[i] = p_target[i] = 0.0;
p_flag[i] = 0;
}
// process keywords
- dimension = domain->dimension;
-
int iarg = 3;
while (iarg < narg) {
if (strcmp(arg[iarg],"temp") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
tstat_flag = 1;
t_start = atof(arg[iarg+1]);
t_stop = atof(arg[iarg+2]);
t_period = atof(arg[iarg+3]);
if (t_start < 0.0 || t_stop <= 0.0)
error->all("Target temperature for fix nvt/npt/nph cannot be 0.0");
iarg += 4;
} else if (strcmp(arg[iarg],"iso") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = XYZ;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
}
iarg += 4;
} else if (strcmp(arg[iarg],"aniso") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = NONE;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
}
iarg += 4;
} else if (strcmp(arg[iarg],"tri") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
pcouple = NONE;
+ scalexy = scalexz = scaleyz = 0;
p_start[0] = p_start[1] = p_start[2] = atof(arg[iarg+1]);
p_stop[0] = p_stop[1] = p_stop[2] = atof(arg[iarg+2]);
p_period[0] = p_period[1] = p_period[2] = atof(arg[iarg+3]);
p_flag[0] = p_flag[1] = p_flag[2] = 1;
p_start[3] = p_start[4] = p_start[5] = 0.0;
p_stop[3] = p_stop[4] = p_stop[5] = 0.0;
p_period[3] = p_period[4] = p_period[5] = atof(arg[iarg+3]);
p_flag[3] = p_flag[4] = p_flag[5] = 1;
if (dimension == 2) {
p_start[2] = p_stop[2] = p_period[2] = 0.0;
p_flag[2] = 0;
p_start[3] = p_stop[3] = p_period[3] = 0.0;
p_flag[3] = 0;
p_start[4] = p_stop[4] = p_period[4] = 0.0;
p_flag[4] = 0;
}
iarg += 4;
-
} else if (strcmp(arg[iarg],"x") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[0] = atof(arg[iarg+1]);
p_stop[0] = atof(arg[iarg+2]);
p_period[0] = atof(arg[iarg+3]);
p_flag[0] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"y") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[1] = atof(arg[iarg+1]);
p_stop[1] = atof(arg[iarg+2]);
p_period[1] = atof(arg[iarg+3]);
p_flag[1] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"z") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[2] = atof(arg[iarg+1]);
p_stop[2] = atof(arg[iarg+2]);
p_period[2] = atof(arg[iarg+3]);
p_flag[2] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"yz") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
+ scaleyz = 0;
p_start[3] = atof(arg[iarg+1]);
p_stop[3] = atof(arg[iarg+2]);
p_period[3] = atof(arg[iarg+3]);
p_flag[3] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"xz") == 0) {
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
+ scalexz = 0;
p_start[4] = atof(arg[iarg+1]);
p_stop[4] = atof(arg[iarg+2]);
p_period[4] = atof(arg[iarg+3]);
p_flag[4] = 1;
deviatoric_flag = 1;
iarg += 4;
if (dimension == 2)
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
} else if (strcmp(arg[iarg],"xy") == 0) {
+ scalexy = 0;
if (iarg+4 > narg) error->all("Illegal fix nvt/npt/nph command");
p_start[5] = atof(arg[iarg+1]);
p_stop[5] = atof(arg[iarg+2]);
p_period[5] = atof(arg[iarg+3]);
p_flag[5] = 1;
deviatoric_flag = 1;
iarg += 4;
} else if (strcmp(arg[iarg],"couple") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"xyz") == 0) pcouple = XYZ;
else if (strcmp(arg[iarg+1],"xy") == 0) pcouple = XY;
else if (strcmp(arg[iarg+1],"yz") == 0) pcouple = YZ;
else if (strcmp(arg[iarg+1],"xz") == 0) pcouple = XZ;
else if (strcmp(arg[iarg+1],"none") == 0) pcouple = NONE;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"drag") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
drag = atof(arg[iarg+1]);
if (drag < 0.0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"dilate") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"all") == 0) allremap = 1;
else if (strcmp(arg[iarg+1],"partial") == 0) allremap = 0;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"tchain") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
mtchain = atoi(arg[iarg+1]);
- // Used by FixNVTSllod to preserve non-default value
+ // used by FixNVTSllod to preserve non-default value
mtchain_default_flag = 0;
if (mtchain < 1) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"pchain") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
mpchain = atoi(arg[iarg+1]);
if (mpchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"mtk") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
if (strcmp(arg[iarg+1],"yes") == 0) mtk_flag = 1;
else if (strcmp(arg[iarg+1],"no") == 0) mtk_flag = 0;
else error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"tloop") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nc_tchain = atoi(arg[iarg+1]);
if (nc_tchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"ploop") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nc_pchain = atoi(arg[iarg+1]);
if (nc_pchain < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
} else if (strcmp(arg[iarg],"nreset") == 0) {
if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
nreset_h0 = atoi(arg[iarg+1]);
if (nreset_h0 < 0) error->all("Illegal fix nvt/npt/nph command");
iarg += 2;
+ } else if (strcmp(arg[iarg],"scalexy") == 0) {
+ if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
+ if (strcmp(arg[iarg+1],"yes") == 0) scalexy = 1;
+ else if (strcmp(arg[iarg+1],"no") == 0) scalexy = 0;
+ else error->all("Illegal fix nvt/npt/nph command");
+ iarg += 2;
+ } else if (strcmp(arg[iarg],"scalexz") == 0) {
+ if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
+ if (strcmp(arg[iarg+1],"yes") == 0) scalexz = 1;
+ else if (strcmp(arg[iarg+1],"no") == 0) scalexz = 0;
+ else error->all("Illegal fix nvt/npt/nph command");
+ iarg += 2;
+ } else if (strcmp(arg[iarg],"scaleyz") == 0) {
+ if (iarg+2 > narg) error->all("Illegal fix nvt/npt/nph command");
+ if (strcmp(arg[iarg+1],"yes") == 0) scaleyz = 1;
+ else if (strcmp(arg[iarg+1],"no") == 0) scaleyz = 0;
+ else error->all("Illegal fix nvt/npt/nph command");
+ iarg += 2;
} else error->all("Illegal fix nvt/npt/nph command");
}
// error checks
if (dimension == 2 && (p_flag[2] || p_flag[3] || p_flag[4]))
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
if (dimension == 2 && (pcouple == YZ || pcouple == XZ))
error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
+ if (dimension == 2 && (scalexz == 1 || scaleyz == 1 ))
+ error->all("Invalid fix nvt/npt/nph command for a 2d simulation");
if (pcouple == XYZ && (p_flag[0] == 0 || p_flag[1] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XYZ && dimension == 3 && p_flag[2] == 0)
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XY && (p_flag[0] == 0 || p_flag[1] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == YZ && (p_flag[1] == 0 || p_flag[2] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (pcouple == XZ && (p_flag[0] == 0 || p_flag[2] == 0))
error->all("Invalid fix nvt/npt/nph command pressure settings");
if (p_flag[0] && domain->xperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[1] && domain->yperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[2] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a non-periodic dimension");
if (p_flag[3] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
if (p_flag[4] && domain->zperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
if (p_flag[5] && domain->yperiodic == 0)
error->all("Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension");
+ if (scaleyz == 1 && domain->zperiodic == 0)
+ error->all("Cannot use fix nvt/npt/nph "
+ "with yz dynamics when z is non-periodic dimension");
+ if (scalexz == 1 && domain->zperiodic == 0)
+ error->all("Cannot use fix nvt/npt/nph "
+ "with xz dynamics when z is non-periodic dimension");
+ if (scalexy == 1 && domain->yperiodic == 0)
+ error->all("Cannot use fix nvt/npt/nph "
+ "with xy dynamics when y is non-periodic dimension");
+
+ if (p_flag[3] && scaleyz == 1)
+ error->all("Cannot use fix nvt/npt/nph with"
+ "both yz dynamics and yz scaling");
+ if (p_flag[4] && scalexz == 1)
+ error->all("Cannot use fix nvt/npt/nph with "
+ "both xz dynamics and xz scaling");
+ if (p_flag[5] && scalexy == 1)
+ error->all("Cannot use fix nvt/npt/nph with "
+ "both xy dynamics and xy scaling");
+
if (!domain->triclinic && (p_flag[3] || p_flag[4] || p_flag[5]))
error->all("Can not specify Pxy/Pxz/Pyz in "
"fix nvt/npt/nph with non-triclinic box");
if (pcouple == XYZ && dimension == 3 &&
(p_start[0] != p_start[1] || p_start[0] != p_start[2] ||
p_stop[0] != p_stop[1] || p_stop[0] != p_stop[2] ||
p_period[0] != p_period[1] || p_period[0] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XYZ && dimension == 2 &&
(p_start[0] != p_start[1] || p_stop[0] != p_stop[1] ||
p_period[0] != p_period[1]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XY &&
(p_start[0] != p_start[1] || p_stop[0] != p_stop[1] ||
p_period[0] != p_period[1]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == YZ &&
(p_start[1] != p_start[2] || p_stop[1] != p_stop[2] ||
p_period[1] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if (pcouple == XZ &&
(p_start[0] != p_start[2] || p_stop[0] != p_stop[2] ||
p_period[0] != p_period[2]))
error->all("Invalid fix nvt/npt/nph pressure settings");
if ((tstat_flag && t_period <= 0.0) ||
(p_flag[0] && p_period[0] <= 0.0) ||
(p_flag[1] && p_period[1] <= 0.0) ||
(p_flag[2] && p_period[2] <= 0.0) ||
(p_flag[3] && p_period[3] <= 0.0) ||
(p_flag[4] && p_period[4] <= 0.0) ||
(p_flag[5] && p_period[5] <= 0.0))
error->all("Fix nvt/npt/nph damping parameters must be > 0.0");
// set pstat_flag and box change and restart_pbc variables
pstat_flag = 0;
for (int i = 0; i < 6; i++)
if (p_flag[i]) pstat_flag = 1;
if (pstat_flag) {
box_change = 1;
if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1;
if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1;
no_change_box = 1;
if (allremap == 0) restart_pbc = 1;
}
// pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof
// else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof
// else pstyle = ANISO -> 3 dof
if (p_flag[3] || p_flag[4] || p_flag[5]) pstyle = TRICLINIC;
else if (pcouple == XYZ || (dimension == 2 && pcouple == XY)) pstyle = ISO;
else pstyle = ANISO;
+ // reneighboring only forced if flips will occur due to shape changes
+
+ if (p_flag[3] || p_flag[4] || p_flag[5]) force_reneighbor = 1;
+ if (scaleyz || scalexz || scalexy) force_reneighbor = 1;
+
// convert input periods to frequencies
t_freq = 0.0;
p_freq[0] = p_freq[1] = p_freq[2] = p_freq[3] = p_freq[4] = p_freq[5] = 0.0;
if (tstat_flag) t_freq = 1.0 / t_period;
if (p_flag[0]) p_freq[0] = 1.0 / p_period[0];
if (p_flag[1]) p_freq[1] = 1.0 / p_period[1];
if (p_flag[2]) p_freq[2] = 1.0 / p_period[2];
if (p_flag[3]) p_freq[3] = 1.0 / p_period[3];
if (p_flag[4]) p_freq[4] = 1.0 / p_period[4];
if (p_flag[5]) p_freq[5] = 1.0 / p_period[5];
// Nose/Hoover temp and pressure init
size_vector = 0;
if (tstat_flag) {
int ich;
eta = new double[mtchain];
// add one extra dummy thermostat, set to zero
eta_dot = new double[mtchain+1];
eta_dot[mtchain] = 0.0;
eta_dotdot = new double[mtchain];
for (ich = 0; ich < mtchain; ich++) {
eta[ich] = eta_dot[ich] = eta_dotdot[ich] = 0.0;
}
eta_mass = new double[mtchain];
size_vector += 2*2*mtchain;
}
if (pstat_flag) {
omega[0] = omega[1] = omega[2] = 0.0;
omega_dot[0] = omega_dot[1] = omega_dot[2] = 0.0;
omega_mass[0] = omega_mass[1] = omega_mass[2] = 0.0;
omega[3] = omega[4] = omega[5] = 0.0;
omega_dot[3] = omega_dot[4] = omega_dot[5] = 0.0;
omega_mass[3] = omega_mass[4] = omega_mass[5] = 0.0;
if (pstyle == ISO) size_vector += 2*2*1;
else if (pstyle == ANISO) size_vector += 2*2*3;
else if (pstyle == TRICLINIC) size_vector += 2*2*6;
if (mpchain) {
int ich;
etap = new double[mpchain];
// add one extra dummy thermostat, set to zero
etap_dot = new double[mpchain+1];
etap_dot[mpchain] = 0.0;
etap_dotdot = new double[mpchain];
for (ich = 0; ich < mpchain; ich++) {
etap[ich] = etap_dot[ich] =
etap_dotdot[ich] = 0.0;
}
etap_mass = new double[mpchain];
size_vector += 2*2*mpchain;
}
if (deviatoric_flag) size_vector += 1;
}
nrigid = 0;
rfix = NULL;
+ if (force_reneighbor) irregular = new Irregular(lmp);
+ else irregular = NULL;
+
// initialize vol0,t0 to zero to signal uninitialized
// values then assigned in init(), if necessary
vol0 = t0 = 0.0;
}
/* ---------------------------------------------------------------------- */
FixNH::~FixNH()
{
delete [] rfix;
+ delete irregular;
+
// delete temperature and pressure if fix created them
if (tflag) modify->delete_compute(id_temp);
delete [] id_temp;
if (tstat_flag) {
delete [] eta;
delete [] eta_dot;
delete [] eta_dotdot;
delete [] eta_mass;
}
if (pstat_flag) {
if (pflag) modify->delete_compute(id_press);
delete [] id_press;
if (mpchain) {
delete [] etap;
delete [] etap_dot;
delete [] etap_dotdot;
delete [] etap_mass;
}
}
}
/* ---------------------------------------------------------------------- */
int FixNH::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= THERMO_ENERGY;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
+ if (force_reneighbor) mask |= PRE_EXCHANGE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNH::init()
{
- // insure no conflict with fix deform
+ // ensure no conflict with fix deform
if (pstat_flag)
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"deform") == 0) {
int *dimflag = ((FixDeform *) modify->fix[i])->dimflag;
if ((p_flag[0] && dimflag[0]) || (p_flag[1] && dimflag[1]) ||
(p_flag[2] && dimflag[2]) || (p_flag[3] && dimflag[3]) ||
(p_flag[4] && dimflag[4]) || (p_flag[5] && dimflag[5]))
error->all("Cannot use fix npt and fix deform on "
"same component of stress tensor");
}
// set temperature and pressure ptrs
int icompute = modify->find_compute(id_temp);
if (icompute < 0)
error->all("Temperature ID for fix nvt/nph/npt does not exist");
temperature = modify->compute[icompute];
if (temperature->tempbias) which = BIAS;
else which = NOBIAS;
if (pstat_flag) {
icompute = modify->find_compute(id_press);
if (icompute < 0) error->all("Pressure ID for fix npt/nph does not exist");
pressure = modify->compute[icompute];
}
// set timesteps and frequencies
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
dt4 = 0.25 * update->dt;
dt8 = 0.125 * update->dt;
dto = dthalf;
p_freq_max = 0.0;
if (pstat_flag) {
p_freq_max = MAX(p_freq[0],p_freq[1]);
p_freq_max = MAX(p_freq_max,p_freq[2]);
if (pstyle == TRICLINIC) {
p_freq_max = MAX(p_freq_max,p_freq[3]);
p_freq_max = MAX(p_freq_max,p_freq[4]);
p_freq_max = MAX(p_freq_max,p_freq[5]);
}
pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain);
}
if (tstat_flag)
tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain);
// tally the number of dimensions that are barostatted
- // also compute the initial volume and reference cell
// set initial volume and reference cell, if not already done
if (pstat_flag) {
pdim = p_flag[0] + p_flag[1] + p_flag[2];
if (vol0 == 0.0) {
if (dimension == 3) vol0 = domain->xprd * domain->yprd * domain->zprd;
else vol0 = domain->xprd * domain->yprd;
h0_inv[0] = domain->h_inv[0];
h0_inv[1] = domain->h_inv[1];
h0_inv[2] = domain->h_inv[2];
h0_inv[3] = domain->h_inv[3];
h0_inv[4] = domain->h_inv[4];
h0_inv[5] = domain->h_inv[5];
}
}
boltz = force->boltz;
nktv2p = force->nktv2p;
if (force->kspace) kspace_flag = 1;
else kspace_flag = 0;
- if (strcmp(update->integrate_style,"respa") == 0) {
+ if (strstr(update->integrate_style,"respa")) {
nlevels_respa = ((Respa *) update->integrate)->nlevels;
step_respa = ((Respa *) update->integrate)->step;
dto = 0.5*step_respa[0];
}
// detect if any rigid fixes exist so rigid bodies move when box is remapped
// rfix[] = indices to each fix rigid
delete [] rfix;
nrigid = 0;
rfix = NULL;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) nrigid++;
if (nrigid) {
rfix = new int[nrigid];
nrigid = 0;
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) rfix[nrigid++] = i;
}
}
/* ----------------------------------------------------------------------
compute T,P before integrator starts
------------------------------------------------------------------------- */
void FixNH::setup(int vflag)
{
// initialize some quantities that were not available earlier
tdof = temperature->dof;
// t_target is used by compute_scalar(), even for NPH
if (tstat_flag) t_target = t_start;
else if (pstat_flag) {
// t0 = initial value for piston mass and energy conservation
// cannot be done in init() b/c temperature cannot be called there
// is b/c Modify::init() inits computes after fixes due to dof dependence
// guesstimate a unit-dependent t0 if actual T = 0.0
// if it was read in from a restart file, leave it be
if (t0 == 0.0) {
t0 = temperature->compute_scalar();
if (t0 == 0.0) {
if (strcmp(update->unit_style,"lj") == 0) t0 = 1.0;
else t0 = 300.0;
}
}
t_target = t0;
}
if (pstat_flag) compute_press_target();
t_current = temperature->compute_scalar();
if (pstat_flag) {
if (pstyle == ISO) double tmp = pressure->compute_scalar();
else pressure->compute_vector();
couple();
pressure->addstep(update->ntimestep+1);
}
// initial forces on thermostat variables
if (tstat_flag) {
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++) {
eta_dotdot[ich] = (eta_mass[ich-1]*eta_dot[ich-1]*eta_dot[ich-1] -
boltz*t_target) / eta_mass[ich];
}
}
if (pstat_flag) {
double kt = boltz * t_target;
double nkt = atom->natoms * kt;
for (int i = 0; i < 3; i++)
if (p_flag[i])
omega_mass[i] = nkt/(p_freq[i]*p_freq[i]);
if (pstyle == TRICLINIC) {
for (int i = 3; i < 6; i++)
if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]);
}
// initial forces on barostat thermostat variables
if (mpchain) {
etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max);
for (int ich = 1; ich < mpchain; ich++)
etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max);
for (int ich = 1; ich < mpchain; ich++)
etap_dotdot[ich] =
(etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] -
boltz*t_target) / etap_mass[ich];
}
}
}
/* ----------------------------------------------------------------------
1st half of Verlet update
------------------------------------------------------------------------- */
void FixNH::initial_integrate(int vflag)
{
// update eta_press_dot
if (pstat_flag && mpchain) nhc_press_integrate();
// update eta_dot
if (tstat_flag) {
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
t_target = t_start + delta * (t_stop-t_start);
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
nhc_temp_integrate();
}
// need to recompute pressure to account for change in KE
// t_current is up-to-date, but compute_temperature is not
// compute appropriately coupled elements of mvv_current
if (pstat_flag) {
if (pstyle == ISO) {
temperature->compute_scalar();
double tmp = pressure->compute_scalar();
} else {
temperature->compute_vector();
pressure->compute_vector();
}
couple();
pressure->addstep(update->ntimestep+1);
}
if (pstat_flag) {
compute_press_target();
nh_omega_dot();
nh_v_press();
}
nve_v();
// remap simulation box by 1/2 step
if (pstat_flag) remap();
nve_x();
// remap simulation box by 1/2 step
// redo KSpace coeffs since volume has changed
if (pstat_flag) {
remap();
if (kspace_flag) force->kspace->setup();
}
}
/* ----------------------------------------------------------------------
2nd half of Verlet update
------------------------------------------------------------------------- */
void FixNH::final_integrate()
{
nve_v();
if (pstat_flag) nh_v_press();
// compute new T,P
// compute appropriately coupled elements of mvv_current
t_current = temperature->compute_scalar();
if (pstat_flag) {
if (pstyle == ISO) double tmp = pressure->compute_scalar();
else pressure->compute_vector();
couple();
pressure->addstep(update->ntimestep+1);
}
if (pstat_flag) nh_omega_dot();
// update eta_dot
// update eta_press_dot
if (tstat_flag) nhc_temp_integrate();
if (pstat_flag && mpchain) nhc_press_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNH::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
int i;
// set timesteps by level
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dthalf = 0.5 * step_respa[ilevel];
// outermost level - update eta_dot and omega_dot, apply to v
// all other levels - NVE update of v
// x,v updates only performed for atoms in group
if (ilevel == nlevels_respa-1) {
// update eta_press_dot
if (pstat_flag && mpchain) nhc_press_integrate();
// update eta_dot
if (tstat_flag) {
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
t_target = t_start + delta * (t_stop-t_start);
eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);
for (int ich = 1; ich < mtchain; ich++)
eta_mass[ich] = boltz * t_target / (t_freq*t_freq);
nhc_temp_integrate();
}
// recompute pressure to account for change in KE
// t_current is up-to-date, but compute_temperature is not
// compute appropriately coupled elements of mvv_current
if (pstat_flag) {
if (pstyle == ISO) {
temperature->compute_scalar();
double tmp = pressure->compute_scalar();
} else {
temperature->compute_vector();
pressure->compute_vector();
}
couple();
pressure->addstep(update->ntimestep+1);
}
if (pstat_flag) {
compute_press_target();
nh_omega_dot();
nh_v_press();
}
nve_v();
} else nve_v();
// innermost level - also update x only for atoms in group
// if barostat, perform 1/2 step remap before and after
if (ilevel == 0) {
if (pstat_flag) remap();
nve_x();
if (pstat_flag) remap();
}
// if barostat, redo KSpace coeffs at outermost level,
// since volume has changed
if (ilevel == nlevels_respa-1 && kspace_flag && pstat_flag)
force->kspace->setup();
}
/* ---------------------------------------------------------------------- */
void FixNH::final_integrate_respa(int ilevel, int iloop)
{
// set timesteps by level
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dthalf = 0.5 * step_respa[ilevel];
// outermost level - update eta_dot and omega_dot, apply via final_integrate
// all other levels - NVE update of v
if (ilevel == nlevels_respa-1) final_integrate();
else nve_v();
}
/* ---------------------------------------------------------------------- */
void FixNH::couple()
{
double *tensor = pressure->vector;
if (pstyle == ISO)
p_current[0] = p_current[1] = p_current[2] = pressure->scalar;
else if (pcouple == XYZ) {
double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]);
p_current[0] = p_current[1] = p_current[2] = ave;
} else if (pcouple == XY) {
double ave = 0.5 * (tensor[0] + tensor[1]);
p_current[0] = p_current[1] = ave;
p_current[2] = tensor[2];
} else if (pcouple == YZ) {
double ave = 0.5 * (tensor[1] + tensor[2]);
p_current[1] = p_current[2] = ave;
p_current[0] = tensor[0];
} else if (pcouple == XZ) {
double ave = 0.5 * (tensor[0] + tensor[2]);
p_current[0] = p_current[2] = ave;
p_current[1] = tensor[1];
} else {
p_current[0] = tensor[0];
p_current[1] = tensor[1];
p_current[2] = tensor[2];
}
// switch order from xy-xz-yz to Voigt
if (pstyle == TRICLINIC) {
p_current[3] = tensor[5];
p_current[4] = tensor[4];
p_current[5] = tensor[3];
}
}
/* ----------------------------------------------------------------------
change box size
remap all atoms or fix group atoms depending on allremap flag
if rigid bodies exist, scale rigid body centers-of-mass
------------------------------------------------------------------------- */
void FixNH::remap()
{
int i;
double oldlo,oldhi,ctr;
+ double expfac;
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *h = domain->h;
// omega is not used, except for book-keeping
for (int i = 0; i < 6; i++) omega[i] += dto*omega_dot[i];
// convert pertinent atoms and rigid bodies to lamda coords
if (allremap) domain->x2lamda(nlocal);
else {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->x2lamda(x[i],x[i]);
}
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(0);
// reset global and local box to new size/shape
- // This operation corresponds to applying the
+ // this operation corresponds to applying the
// translate and scale operations
// corresponding to the solution of the following ODE:
//
// h_dot = omega_dot * h
//
// where h_dot, omega_dot and h are all upper-triangular
// 3x3 tensors. In Voigt notation, the elements of the
// RHS product tensor are:
// h_dot = [0*0, 1*1, 2*2, 1*3+3*2, 0*4+5*3+4*2, 0*5+5*1]
//
// Ordering of operations preserves time symmetry.
double dto2 = dto/2.0;
double dto4 = dto/4.0;
double dto8 = dto/8.0;
+ // off-diagonal components, first half
+
if (pstyle == TRICLINIC) {
- h[4] *= exp(dto8*omega_dot[0]);
- h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
- h[4] *= exp(dto8*omega_dot[0]);
+ if (p_flag[4]) {
+ expfac = exp(dto8*omega_dot[0]);
+ h[4] *= expfac;
+ h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
+ h[4] *= expfac;
+ }
+
+ if (p_flag[3]) {
+ expfac = exp(dto4*omega_dot[1]);
+ h[3] *= expfac;
+ h[3] += dto2*(omega_dot[3]*h[2]);
+ h[3] *= expfac;
+ }
- h[3] *= exp(dto4*omega_dot[1]);
- h[3] += dto2*(omega_dot[3]*h[2]);
- h[3] *= exp(dto4*omega_dot[1]);
+ if (p_flag[5]) {
+ expfac = exp(dto4*omega_dot[0]);
+ h[5] *= expfac;
+ h[5] += dto2*(omega_dot[5]*h[1]);
+ h[5] *= expfac;
+ }
- h[5] *= exp(dto4*omega_dot[0]);
- h[5] += dto2*(omega_dot[5]*h[1]);
- h[5] *= exp(dto4*omega_dot[0]);
+ if (p_flag[4]) {
+ expfac = exp(dto8*omega_dot[0]);
+ h[4] *= expfac;
+ h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
+ h[4] *= expfac;
+ }
+ }
- h[4] *= exp(dto8*omega_dot[0]);
- h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
- h[4] *= exp(dto8*omega_dot[0]);
+ // scale diagonal components
+ // scale tilt factors with cell, if set
+ if (p_flag[0]) {
+ oldlo = domain->boxlo[0];
+ oldhi = domain->boxhi[0];
+ ctr = 0.5 * (oldlo + oldhi);
+ expfac = exp(dto*omega_dot[0]);
+ domain->boxlo[0] = (oldlo-ctr)*expfac + ctr;
+ domain->boxhi[0] = (oldhi-ctr)*expfac + ctr;
}
- for (i = 0; i < 3; i++) {
- if (p_flag[i]) {
- oldlo = domain->boxlo[i];
- oldhi = domain->boxhi[i];
- ctr = 0.5 * (oldlo + oldhi);
- domain->boxlo[i] = (oldlo-ctr)*exp(dto*omega_dot[i]) + ctr;
- domain->boxhi[i] = (oldhi-ctr)*exp(dto*omega_dot[i]) + ctr;
- }
+ if (p_flag[1]) {
+ oldlo = domain->boxlo[1];
+ oldhi = domain->boxhi[1];
+ ctr = 0.5 * (oldlo + oldhi);
+ expfac = exp(dto*omega_dot[1]);
+ domain->boxlo[1] = (oldlo-ctr)*expfac + ctr;
+ domain->boxhi[1] = (oldhi-ctr)*expfac + ctr;
+ if (scalexy) h[5] *= expfac;
}
- if (pstyle == TRICLINIC) {
+ if (p_flag[2]) {
+ oldlo = domain->boxlo[2];
+ oldhi = domain->boxhi[2];
+ ctr = 0.5 * (oldlo + oldhi);
+ expfac = exp(dto*omega_dot[2]);
+ domain->boxlo[2] = (oldlo-ctr)*expfac + ctr;
+ domain->boxhi[2] = (oldhi-ctr)*expfac + ctr;
+ if (scalexz) h[4] *= expfac;
+ if (scaleyz) h[3] *= expfac;
+ }
+
+ // off-diagonal components, second half
- h[4] *= exp(dto8*omega_dot[0]);
- h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
- h[4] *= exp(dto8*omega_dot[0]);
+ if (pstyle == TRICLINIC) {
- h[3] *= exp(dto4*omega_dot[1]);
- h[3] += dto2*(omega_dot[3]*h[2]);
- h[3] *= exp(dto4*omega_dot[1]);
+ if (p_flag[4]) {
+ expfac = exp(dto8*omega_dot[0]);
+ h[4] *= expfac;
+ h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
+ h[4] *= expfac;
+ }
- h[5] *= exp(dto4*omega_dot[0]);
- h[5] += dto2*(omega_dot[5]*h[1]);
- h[5] *= exp(dto4*omega_dot[0]);
+ if (p_flag[3]) {
+ expfac = exp(dto4*omega_dot[1]);
+ h[3] *= expfac;
+ h[3] += dto2*(omega_dot[3]*h[2]);
+ h[3] *= expfac;
+ }
- h[4] *= exp(dto8*omega_dot[0]);
- h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
- h[4] *= exp(dto8*omega_dot[0]);
+ if (p_flag[5]) {
+ expfac = exp(dto4*omega_dot[0]);
+ h[5] *= expfac;
+ h[5] += dto2*(omega_dot[5]*h[1]);
+ h[5] *= expfac;
+ }
- domain->yz = h[3];
- domain->xz = h[4];
- domain->xy = h[5];
+ if (p_flag[4]) {
+ expfac = exp(dto8*omega_dot[0]);
+ h[4] *= expfac;
+ h[4] += dto4*(omega_dot[5]*h[3]+omega_dot[4]*h[2]);
+ h[4] *= expfac;
+ }
- if (domain->yz < -0.5*domain->yprd || domain->yz > 0.5*domain->yprd ||
- domain->xz < -0.5*domain->xprd || domain->xz > 0.5*domain->xprd ||
- domain->xy < -0.5*domain->xprd || domain->xy > 0.5*domain->xprd)
- error->all("Fix npt/nph has tilted box too far - "
- "box flips are not yet implemented");
}
+ domain->yz = h[3];
+ domain->xz = h[4];
+ domain->xy = h[5];
+
+ // tilt factor to cell length ratio can not exceed TILTMAX
+ // in one step
+
+ if (domain->yz < -TILTMAX*domain->yprd || domain->yz > TILTMAX*domain->yprd ||
+ domain->xz < -TILTMAX*domain->xprd || domain->xz > TILTMAX*domain->xprd ||
+ domain->xy < -TILTMAX*domain->xprd || domain->xy > TILTMAX*domain->xprd)
+ error->all("Fix npt/nph has tilted box too far in one step - "
+ "periodic cell is too far from equilibrium state");
+
domain->set_global_box();
domain->set_local_box();
// convert pertinent atoms and rigid bodies back to box coords
if (allremap) domain->lamda2x(nlocal);
else {
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
domain->lamda2x(x[i],x[i]);
}
if (nrigid)
for (i = 0; i < nrigid; i++)
modify->fix[rfix[i]]->deform(1);
}
/* ----------------------------------------------------------------------
pack entire state of Fix into one write
------------------------------------------------------------------------- */
void FixNH::write_restart(FILE *fp)
{
int nsize = 2;
if (tstat_flag) nsize += 1 + 2*mtchain;
if (pstat_flag) {
nsize += 16 + 2*mpchain;
if (deviatoric_flag) nsize += 6;
}
double *list;
memory->create(list,nsize,"nh:list");
int n = 0;
list[n++] = tstat_flag;
if (tstat_flag) {
list[n++] = mtchain;
for (int ich = 0; ich < mtchain; ich++)
list[n++] = eta[ich];
for (int ich = 0; ich < mtchain; ich++)
list[n++] = eta_dot[ich];
}
list[n++] = pstat_flag;
if (pstat_flag) {
list[n++] = omega[0];
list[n++] = omega[1];
list[n++] = omega[2];
list[n++] = omega[3];
list[n++] = omega[4];
list[n++] = omega[5];
list[n++] = omega_dot[0];
list[n++] = omega_dot[1];
list[n++] = omega_dot[2];
list[n++] = omega_dot[3];
list[n++] = omega_dot[4];
list[n++] = omega_dot[5];
list[n++] = vol0;
list[n++] = t0;
list[n++] = mpchain;
if (mpchain) {
for (int ich = 0; ich < mpchain; ich++)
list[n++] = etap[ich];
for (int ich = 0; ich < mpchain; ich++)
list[n++] = etap_dot[ich];
}
list[n++] = deviatoric_flag;
if (deviatoric_flag) {
list[n++] = h0_inv[0];
list[n++] = h0_inv[1];
list[n++] = h0_inv[2];
list[n++] = h0_inv[3];
list[n++] = h0_inv[4];
list[n++] = h0_inv[5];
}
}
if (comm->me == 0) {
int size = nsize * sizeof(double);
fwrite(&size,sizeof(int),1,fp);
fwrite(list,sizeof(double),nsize,fp);
}
memory->destroy(list);
}
/* ----------------------------------------------------------------------
use state info from restart file to restart the Fix
------------------------------------------------------------------------- */
void FixNH::restart(char *buf)
{
int n = 0;
double *list = (double *) buf;
int flag = static_cast<int> (list[n++]);
if (flag) {
int m = static_cast<int> (list[n++]);
if (tstat_flag && m == mtchain) {
for (int ich = 0; ich < mtchain; ich++)
eta[ich] = list[n++];
for (int ich = 0; ich < mtchain; ich++)
eta_dot[ich] = list[n++];
} else n += 2*m;
}
flag = static_cast<int> (list[n++]);
if (flag) {
omega[0] = list[n++];
omega[1] = list[n++];
omega[2] = list[n++];
omega[3] = list[n++];
omega[4] = list[n++];
omega[5] = list[n++];
omega_dot[0] = list[n++];
omega_dot[1] = list[n++];
omega_dot[2] = list[n++];
omega_dot[3] = list[n++];
omega_dot[4] = list[n++];
omega_dot[5] = list[n++];
vol0 = list[n++];
t0 = list[n++];
int m = static_cast<int> (list[n++]);
if (pstat_flag && m == mpchain) {
for (int ich = 0; ich < mpchain; ich++)
etap[ich] = list[n++];
for (int ich = 0; ich < mpchain; ich++)
etap_dot[ich] = list[n++];
} else n+=2*m;
flag = static_cast<int> (list[n++]);
if (flag) {
h0_inv[0] = list[n++];
h0_inv[1] = list[n++];
h0_inv[2] = list[n++];
h0_inv[3] = list[n++];
h0_inv[4] = list[n++];
h0_inv[5] = list[n++];
}
}
}
/* ---------------------------------------------------------------------- */
int FixNH::modify_param(int narg, char **arg)
{
if (strcmp(arg[0],"temp") == 0) {
if (narg < 2) error->all("Illegal fix_modify command");
if (tflag) {
modify->delete_compute(id_temp);
tflag = 0;
}
delete [] id_temp;
int n = strlen(arg[1]) + 1;
id_temp = new char[n];
strcpy(id_temp,arg[1]);
int icompute = modify->find_compute(arg[1]);
if (icompute < 0) error->all("Could not find fix_modify temperature ID");
temperature = modify->compute[icompute];
if (temperature->tempflag == 0)
error->all("Fix_modify temperature ID does not compute temperature");
if (temperature->igroup != 0 && comm->me == 0)
error->warning("Temperature for fix modify is not for group all");
// reset id_temp of pressure to new temperature ID
if (pstat_flag) {
icompute = modify->find_compute(id_press);
if (icompute < 0)
error->all("Pressure ID for fix modify does not exist");
modify->compute[icompute]->reset_extra_compute_fix(id_temp);
}
return 2;
} else if (strcmp(arg[0],"press") == 0) {
if (narg < 2) error->all("Illegal fix_modify command");
if (!pstat_flag) error->all("Illegal fix_modify command");
if (pflag) {
modify->delete_compute(id_press);
pflag = 0;
}
delete [] id_press;
int n = strlen(arg[1]) + 1;
id_press = new char[n];
strcpy(id_press,arg[1]);
int icompute = modify->find_compute(arg[1]);
if (icompute < 0) error->all("Could not find fix_modify pressure ID");
pressure = modify->compute[icompute];
if (pressure->pressflag == 0)
error->all("Fix_modify pressure ID does not compute pressure");
return 2;
}
return 0;
}
/* ---------------------------------------------------------------------- */
double FixNH::compute_scalar()
{
int i;
double volume;
double energy;
double kt = boltz * t_target;
double lkt = tdof * kt;
double lkt_press = kt;
int ich;
if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd;
else volume = domain->xprd * domain->yprd;
energy = 0.0;
// thermostat chain energy is equivalent to Eq. (2) in
// Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117
// Sum(0.5*p_eta_k^2/Q_k,k=1,M) + L*k*T*eta_1 + Sum(k*T*eta_k,k=2,M),
// where L = tdof
// M = mtchain
// p_eta_k = Q_k*eta_dot[k-1]
// Q_1 = L*k*T/t_freq^2
// Q_k = k*T/t_freq^2, k > 1
if (tstat_flag) {
energy += lkt * eta[0] + 0.5*eta_mass[0]*eta_dot[0]*eta_dot[0];
for (ich = 1; ich < mtchain; ich++)
energy += kt * eta[ich] + 0.5*eta_mass[ich]*eta_dot[ich]*eta_dot[ich];
}
// barostat energy is equivalent to Eq. (8) in
// Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117
// Sum(0.5*p_omega^2/W + P*V),
// where N = natoms
// p_omega = W*omega_dot
// W = N*k*T/p_freq^2
// sum is over barostatted dimensions
if (pstat_flag) {
for (i = 0; i < 3; i++)
if (p_flag[i])
energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] +
p_hydro*(volume-vol0) / (pdim*nktv2p);
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i])
energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i];
}
// extra contributions from thermostat chain for barostat
if (mpchain) {
energy += lkt_press * etap[0] + 0.5*etap_mass[0]*etap_dot[0]*etap_dot[0];
for (ich = 1; ich < mpchain; ich++)
energy += kt * etap[ich] +
0.5*etap_mass[ich]*etap_dot[ich]*etap_dot[ich];
}
// extra contribution from strain energy
if (deviatoric_flag) energy += compute_strain_energy();
}
return energy;
}
/* ----------------------------------------------------------------------
return a single element of the following vectors, in this order:
eta[tchain], eta_dot[tchain], omega[ndof], omega_dot[ndof]
etap[pchain], etap_dot[pchain], PE_eta[tchain], KE_eta_dot[tchain]
PE_omega[ndof], KE_omega_dot[ndof], PE_etap[pchain], KE_etap_dot[pchain]
PE_strain[1]
if no thermostat exists, related quantities are omitted from the list
if no barostat exists, related quantities are omitted from the list
ndof = 1,3,6 degrees of freedom for pstyle = ISO,ANISO,TRI
------------------------------------------------------------------------- */
double FixNH::compute_vector(int n)
{
int ilen;
if (tstat_flag) {
ilen = mtchain;
if (n < ilen) return eta[n];
n -= ilen;
ilen = mtchain;
if (n < ilen) return eta_dot[n];
n -= ilen;
}
if (pstat_flag) {
if (pstyle == ISO) {
ilen = 1;
if (n < ilen) return omega[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen) return omega[n];
n -= ilen;
} else {
ilen = 6;
if (n < ilen) return omega[n];
n -= ilen;
}
if (pstyle == ISO) {
ilen = 1;
if (n < ilen) return omega_dot[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen) return omega_dot[n];
n -= ilen;
} else {
ilen = 6;
if (n < ilen) return omega_dot[n];
n -= ilen;
}
if (mpchain) {
ilen = mpchain;
if (n < ilen) return etap[n];
n -= ilen;
ilen = mpchain;
if (n < ilen) return etap_dot[n];
n -= ilen;
}
}
int i;
double volume;
double kt = boltz * t_target;
double lkt = tdof * kt;
double lkt_press = kt;
int ich;
if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd;
else volume = domain->xprd * domain->yprd;
if (tstat_flag) {
ilen = mtchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return lkt * eta[0];
else
return kt * eta[ich];
}
n -= ilen;
ilen = mtchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return 0.5*eta_mass[0]*eta_dot[0]*eta_dot[0];
else
return 0.5*eta_mass[ich]*eta_dot[ich]*eta_dot[ich];
}
n -= ilen;
}
if (pstat_flag) {
if (pstyle == ISO) {
ilen = 1;
if (n < ilen)
return p_hydro*(volume-vol0) / nktv2p;
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen)
if (p_flag[n])
return p_hydro*(volume-vol0) / (pdim*nktv2p);
else
return 0.0;
n -= ilen;
} else {
ilen = 6;
if (n < ilen)
if (n > 2) return 0.0;
else if (p_flag[n])
return p_hydro*(volume-vol0) / (pdim*nktv2p);
else
return 0.0;
n -= ilen;
}
if (pstyle == ISO) {
ilen = 1;
if (n < ilen)
return pdim*0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
n -= ilen;
} else if (pstyle == ANISO) {
ilen = 3;
if (n < ilen)
if (p_flag[n])
return 0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
else return 0.0;
n -= ilen;
} else {
ilen = 6;
if (n < ilen)
if (p_flag[n])
return 0.5*omega_dot[n]*omega_dot[n]*omega_mass[n];
else return 0.0;
n -= ilen;
}
if (mpchain) {
ilen = mpchain;
if (n < ilen) {
ich = n;
if (ich == 0) return lkt_press * etap[0];
else return kt * etap[ich];
}
n -= ilen;
ilen = mpchain;
if (n < ilen) {
ich = n;
if (ich == 0)
return 0.5*etap_mass[0]*etap_dot[0]*etap_dot[0];
else
return 0.5*etap_mass[ich]*etap_dot[ich]*etap_dot[ich];
}
n -= ilen;
}
if (deviatoric_flag) {
ilen = 1;
if (n < ilen)
return compute_strain_energy();
n -= ilen;
}
}
return 0.0;
}
/* ---------------------------------------------------------------------- */
void FixNH::reset_target(double t_new)
{
t_start = t_stop = t_new;
}
/* ---------------------------------------------------------------------- */
void FixNH::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dthalf = 0.5 * update->dt;
dt4 = 0.25 * update->dt;
dt8 = 0.125 * update->dt;
dto = dthalf;
// If using respa, then remap is performed in innermost level
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
dto = 0.5*step_respa[0];
p_freq_max = 0.0;
if (pstat_flag) {
p_freq_max = MAX(p_freq[0],p_freq[1]);
p_freq_max = MAX(p_freq_max,p_freq[2]);
if (pstyle == TRICLINIC) {
p_freq_max = MAX(p_freq_max,p_freq[3]);
p_freq_max = MAX(p_freq_max,p_freq[4]);
p_freq_max = MAX(p_freq_max,p_freq[5]);
}
pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain);
}
if (tstat_flag)
tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain);
}
/* ----------------------------------------------------------------------
perform half-step update of chain thermostat variables
------------------------------------------------------------------------- */
void FixNH::nhc_temp_integrate()
{
int ich;
double expfac;
double lkt = tdof * boltz * t_target;
double kecurrent = tdof * boltz * t_current;
eta_dotdot[0] = (kecurrent - lkt)/eta_mass[0];
double ncfac = 1.0/nc_tchain;
for (int iloop = 0; iloop < nc_tchain; iloop++) {
for (ich = mtchain-1; ich > 0; ich--) {
expfac = exp(-ncfac*dt8*eta_dot[ich+1]);
eta_dot[ich] *= expfac;
eta_dot[ich] += eta_dotdot[ich] * ncfac*dt4;
eta_dot[ich] *= tdrag_factor;
eta_dot[ich] *= expfac;
}
expfac = exp(-ncfac*dt8*eta_dot[1]);
eta_dot[0] *= expfac;
eta_dot[0] += eta_dotdot[0] * ncfac*dt4;
eta_dot[0] *= tdrag_factor;
eta_dot[0] *= expfac;
factor_eta = exp(-ncfac*dthalf*eta_dot[0]);
nh_v_temp();
// rescale temperature due to velocity scaling
// should not be necessary to explicitly recompute the temperature
t_current *= factor_eta*factor_eta;
kecurrent = tdof * boltz * t_current;
eta_dotdot[0] = (kecurrent - lkt)/eta_mass[0];
for (ich = 0; ich < mtchain; ich++)
eta[ich] += ncfac*dthalf*eta_dot[ich];
eta_dot[0] *= expfac;
eta_dot[0] += eta_dotdot[0] * ncfac*dt4;
eta_dot[0] *= expfac;
for (ich = 1; ich < mtchain; ich++) {
expfac = exp(-ncfac*dt8*eta_dot[ich+1]);
eta_dot[ich] *= expfac;
eta_dotdot[ich] = (eta_mass[ich-1]*eta_dot[ich-1]*eta_dot[ich-1]
- boltz * t_target)/eta_mass[ich];
eta_dot[ich] += eta_dotdot[ich] * ncfac*dt4;
eta_dot[ich] *= expfac;
}
}
}
/* ----------------------------------------------------------------------
perform half-step update of chain thermostat variables for barostat
scale barostat velocities
------------------------------------------------------------------------- */
void FixNH::nhc_press_integrate()
{
int ich,i;
double expfac,factor_etap,wmass,kecurrent;
double kt = boltz * t_target;
double lkt_press = kt;
kecurrent = 0.0;
for (i = 0; i < 3; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
}
etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0];
double ncfac = 1.0/nc_pchain;
for (int iloop = 0; iloop < nc_pchain; iloop++) {
for (ich = mpchain-1; ich > 0; ich--) {
expfac = exp(-ncfac*dt8*etap_dot[ich+1]);
etap_dot[ich] *= expfac;
etap_dot[ich] += etap_dotdot[ich] * ncfac*dt4;
etap_dot[ich] *= pdrag_factor;
etap_dot[ich] *= expfac;
}
expfac = exp(-ncfac*dt8*etap_dot[1]);
etap_dot[0] *= expfac;
etap_dot[0] += etap_dotdot[0] * ncfac*dt4;
etap_dot[0] *= pdrag_factor;
etap_dot[0] *= expfac;
for (ich = 0; ich < mpchain; ich++)
etap[ich] += ncfac*dthalf*etap_dot[ich];
factor_etap = exp(-ncfac*dthalf*etap_dot[0]);
for (i = 0; i < 3; i++)
if (p_flag[i]) omega_dot[i] *= factor_etap;
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) omega_dot[i] *= factor_etap;
}
kecurrent = 0.0;
for (i = 0; i < 3; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
if (pstyle == TRICLINIC) {
for (i = 3; i < 6; i++)
if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i];
}
etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0];
etap_dot[0] *= expfac;
etap_dot[0] += etap_dotdot[0] * ncfac*dt4;
etap_dot[0] *= expfac;
for (ich = 1; ich < mpchain; ich++) {
expfac = exp(-ncfac*dt8*etap_dot[ich+1]);
etap_dot[ich] *= expfac;
etap_dotdot[ich] =
(etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] - boltz*t_target) /
etap_mass[ich];
etap_dot[ich] += etap_dotdot[ich] * ncfac*dt4;
etap_dot[ich] *= expfac;
}
}
}
/* ----------------------------------------------------------------------
perform half-step barostat scaling of velocities
-----------------------------------------------------------------------*/
void FixNH::nh_v_press()
{
double factor[3];
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
factor[0] = exp(-dt4*(omega_dot[0]+mtk_term2));
factor[1] = exp(-dt4*(omega_dot[1]+mtk_term2));
factor[2] = exp(-dt4*(omega_dot[2]+mtk_term2));
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
if (pstyle == TRICLINIC) {
v[i][0] += -dthalf*(v[i][1]*omega_dot[5] + v[i][2]*omega_dot[4]);
v[i][1] += -dthalf*v[i][2]*omega_dot[3];
}
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
}
}
} else if (which == BIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
temperature->remove_bias(i,v[i]);
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
if (pstyle == TRICLINIC) {
v[i][0] += -dthalf*(v[i][1]*omega_dot[5] + v[i][2]*omega_dot[4]);
v[i][1] += -dthalf*v[i][2]*omega_dot[3];
}
v[i][0] *= factor[0];
v[i][1] *= factor[1];
v[i][2] *= factor[2];
temperature->restore_bias(i,v[i]);
}
}
}
}
/* ----------------------------------------------------------------------
perform half-step update of velocities
-----------------------------------------------------------------------*/
void FixNH::nve_v()
{
double dtfm;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm*f[i][0];
v[i][1] += dtfm*f[i][1];
v[i][2] += dtfm*f[i][2];
}
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm*f[i][0];
v[i][1] += dtfm*f[i][1];
v[i][2] += dtfm*f[i][2];
}
}
}
}
/* ----------------------------------------------------------------------
perform full-step update of positions
-----------------------------------------------------------------------*/
void FixNH::nve_x()
{
double **x = atom->x;
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
// x update by full step only for atoms in group
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
/* ----------------------------------------------------------------------
perform half-step thermostat scaling of velocities
-----------------------------------------------------------------------*/
void FixNH::nh_v_temp()
{
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (which == NOBIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
v[i][0] *= factor_eta;
v[i][1] *= factor_eta;
v[i][2] *= factor_eta;
}
}
} else if (which == BIAS) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
temperature->remove_bias(i,v[i]);
v[i][0] *= factor_eta;
v[i][1] *= factor_eta;
v[i][2] *= factor_eta;
temperature->restore_bias(i,v[i]);
}
}
}
}
/* ----------------------------------------------------------------------
compute sigma tensor
needed whenever p_target or h0_inv changes
-----------------------------------------------------------------------*/
void FixNH::compute_sigma()
{
// if nreset_h0 > 0, reset vol0 and h0_inv
// every nreset_h0 timesteps
if (nreset_h0 > 0) {
int delta = update->ntimestep - update->beginstep;
if (delta % nreset_h0 == 0) {
if (dimension == 3) vol0 = domain->xprd * domain->yprd * domain->zprd;
else vol0 = domain->xprd * domain->yprd;
h0_inv[0] = domain->h_inv[0];
h0_inv[1] = domain->h_inv[1];
h0_inv[2] = domain->h_inv[2];
h0_inv[3] = domain->h_inv[3];
h0_inv[4] = domain->h_inv[4];
h0_inv[5] = domain->h_inv[5];
}
}
// generate upper-triangular half of
// sigma = vol0*h0inv*(p_target-p_hydro)*h0inv^t
// units of sigma are are PV/L^2 e.g. atm.A
//
// [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ]
// [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ]
// [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ]
sigma[0] =
vol0*(h0_inv[0]*((p_target[0]-p_hydro)*h0_inv[0] +
p_target[5]*h0_inv[5]+p_target[4]*h0_inv[4]) +
h0_inv[5]*(p_target[5]*h0_inv[0] +
(p_target[1]-p_hydro)*h0_inv[5]+p_target[3]*h0_inv[4]) +
h0_inv[4]*(p_target[4]*h0_inv[0]+p_target[3]*h0_inv[5] +
(p_target[2]-p_hydro)*h0_inv[4]));
sigma[1] =
vol0*(h0_inv[1]*((p_target[1]-p_hydro)*h0_inv[1] +
p_target[3]*h0_inv[3]) +
h0_inv[3]*(p_target[3]*h0_inv[1] +
(p_target[2]-p_hydro)*h0_inv[3]));
sigma[2] =
vol0*(h0_inv[2]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[3] =
vol0*(h0_inv[1]*(p_target[3]*h0_inv[2]) +
h0_inv[3]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[4] =
vol0*(h0_inv[0]*(p_target[4]*h0_inv[2]) +
h0_inv[5]*(p_target[3]*h0_inv[2]) +
h0_inv[4]*((p_target[2]-p_hydro)*h0_inv[2]));
sigma[5] =
vol0*(h0_inv[0]*(p_target[5]*h0_inv[1]+p_target[4]*h0_inv[3]) +
h0_inv[5]*((p_target[1]-p_hydro)*h0_inv[1]+p_target[3]*h0_inv[3]) +
h0_inv[4]*(p_target[3]*h0_inv[1]+(p_target[2]-p_hydro)*h0_inv[3]));
}
/* ----------------------------------------------------------------------
compute strain energy
-----------------------------------------------------------------------*/
double FixNH::compute_strain_energy()
{
// compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units
double* h = domain->h;
double d0,d1,d2;
d0 =
sigma[0]*(h[0]*h[0]+h[5]*h[5]+h[4]*h[4]) +
sigma[5]*( h[1]*h[5]+h[3]*h[4]) +
sigma[4]*( h[2]*h[4]);
d1 =
sigma[5]*( h[5]*h[1]+h[4]*h[3]) +
sigma[1]*( h[1]*h[1]+h[3]*h[3]) +
sigma[3]*( h[2]*h[3]);
d2 =
sigma[4]*( h[4]*h[2]) +
sigma[3]*( h[3]*h[2]) +
sigma[2]*( h[2]*h[2]);
double energy = 0.5*(d0+d1+d2)/nktv2p;
return energy;
}
/* ----------------------------------------------------------------------
compute deviatoric barostat force = h*sigma*h^t
-----------------------------------------------------------------------*/
void FixNH::compute_deviatoric()
{
// generate upper-triangular part of h*sigma*h^t
// units of fdev are are PV, e.g. atm*A^3
// [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ]
// [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ]
// [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ]
double* h = domain->h;
fdev[0] =
h[0]*(sigma[0]*h[0]+sigma[5]*h[5]+sigma[4]*h[4]) +
h[5]*(sigma[5]*h[0]+sigma[1]*h[5]+sigma[3]*h[4]) +
h[4]*(sigma[4]*h[0]+sigma[3]*h[5]+sigma[2]*h[4]);
fdev[1] =
h[1]*( sigma[1]*h[1]+sigma[3]*h[3]) +
h[3]*( sigma[3]*h[1]+sigma[2]*h[3]);
fdev[2] =
h[2]*( sigma[2]*h[2]);
fdev[3] =
h[1]*( sigma[3]*h[2]) +
h[3]*( sigma[2]*h[2]);
fdev[4] =
h[0]*( sigma[4]*h[2]) +
h[5]*( sigma[3]*h[2]) +
h[4]*( sigma[2]*h[2]);
fdev[5] =
h[0]*( sigma[5]*h[1]+sigma[4]*h[3]) +
h[5]*( sigma[1]*h[1]+sigma[3]*h[3]) +
h[4]*( sigma[3]*h[1]+sigma[2]*h[3]);
}
/* ----------------------------------------------------------------------
compute hydrostatic target pressure
-----------------------------------------------------------------------*/
void FixNH::compute_press_target()
{
double delta = update->ntimestep - update->beginstep;
if (update->endstep > update->beginstep)
delta /= update->endstep - update->beginstep;
else delta = 0.0;
p_hydro = 0.0;
for (int i = 0; i < 3; i++)
if (p_flag[i]) {
p_target[i] = p_start[i] + delta * (p_stop[i]-p_start[i]);
p_hydro += p_target[i];
}
p_hydro /= pdim;
if (pstyle == TRICLINIC)
for (int i = 3; i < 6; i++)
p_target[i] = p_start[i] + delta * (p_stop[i]-p_start[i]);
// if deviatoric, recompute sigma each time p_target changes
if (deviatoric_flag) compute_sigma();
}
/* ----------------------------------------------------------------------
update omega_dot, omega
-----------------------------------------------------------------------*/
void FixNH::nh_omega_dot()
{
double f_omega,volume;
if (dimension == 3) volume = domain->xprd*domain->yprd*domain->zprd;
else volume = domain->xprd*domain->yprd;
if (deviatoric_flag) compute_deviatoric();
mtk_term1 = 0.0;
if (mtk_flag)
if (pstyle == ISO) {
mtk_term1 = tdof * boltz * t_current;
mtk_term1 /= pdim * atom->natoms;
} else {
double *mvv_current = temperature->vector;
for (int i = 0; i < 3; i++)
if (p_flag[i])
mtk_term1 += mvv_current[i];
mtk_term1 /= pdim * atom->natoms;
}
for (int i = 0; i < 3; i++)
if (p_flag[i]) {
f_omega = (p_current[i]-p_hydro)*volume /
(omega_mass[i] * nktv2p) + mtk_term1 / omega_mass[i];
if (deviatoric_flag) f_omega -= fdev[i]/(omega_mass[i] * nktv2p);
omega_dot[i] += f_omega*dthalf;
omega_dot[i] *= pdrag_factor;
}
mtk_term2 = 0.0;
if (mtk_flag) {
for (int i = 0; i < 3; i++)
if (p_flag[i])
mtk_term2 += omega_dot[i];
mtk_term2 /= pdim * atom->natoms;
}
if (pstyle == TRICLINIC) {
for (int i = 3; i < 6; i++) {
if (p_flag[i]) {
f_omega = p_current[i]*volume/(omega_mass[i] * nktv2p);
if (deviatoric_flag)
f_omega -= fdev[i]/(omega_mass[i] * nktv2p);
omega_dot[i] += f_omega*dthalf;
omega_dot[i] *= pdrag_factor;
}
}
}
}
+
+/* ----------------------------------------------------------------------
+ if box tilt exceeds limits,
+ create new box in domain
+ remap to put far-away atoms back into new box
+ perform irregular on atoms in lamda coords to get atoms to new procs
+ force reneighboring on next timestep
+------------------------------------------------------------------------- */
+
+void FixNH::pre_exchange()
+{
+ double xprd = domain->xprd;
+ double yprd = domain->yprd;
+
+ // flip is triggered when tilt exceeds 0.5 by
+ // an amount DELTAFLIP that is somewhat arbitrary
+
+ double xtiltmax = (0.5+DELTAFLIP)*xprd;
+ double ytiltmax = (0.5+DELTAFLIP)*yprd;
+
+ int flip = 0;
+
+ if (domain->yz < -ytiltmax) {
+ flip = 1;
+ domain->yz += yprd;
+ domain->xz += domain->xy;
+ } else if (domain->yz >= ytiltmax) {
+ flip = 1;
+ domain->yz -= yprd;
+ domain->xz -= domain->xy;
+ }
+
+ if (domain->xz < -xtiltmax) {
+ flip = 1;
+ domain->xz += xprd;
+ } else if (domain->xz >= xtiltmax) {
+ flip = 1;
+ domain->xz -= xprd;
+ }
+
+ if (domain->xy < -xtiltmax) {
+ flip = 1;
+ domain->xy += xprd;
+ } else if (domain->xy >= xtiltmax) {
+ flip = 1;
+ domain->xy -= xprd;
+ }
+
+ if (flip) {
+ domain->set_global_box();
+ domain->set_local_box();
+
+ double **x = atom->x;
+ int *image = atom->image;
+ int nlocal = atom->nlocal;
+ for (int i = 0; i < nlocal; i++) domain->remap(x[i],image[i]);
+
+ domain->x2lamda(atom->nlocal);
+ irregular->migrate_atoms();
+ domain->lamda2x(atom->nlocal);
+ }
+}
+
diff --git a/src/fix_nh.h b/src/fix_nh.h
index 58d4f6fb0..bdbef5982 100644
--- a/src/fix_nh.h
+++ b/src/fix_nh.h
@@ -1,119 +1,126 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_FIX_NH_H
#define LMP_FIX_NH_H
#include "fix.h"
namespace LAMMPS_NS {
class FixNH : public Fix {
public:
FixNH(class LAMMPS *, int, char **);
virtual ~FixNH();
int setmask();
virtual void init();
void setup(int);
virtual void initial_integrate(int);
virtual void final_integrate();
void initial_integrate_respa(int, int, int);
void final_integrate_respa(int, int);
+ void pre_exchange();
double compute_scalar();
double compute_vector(int);
void write_restart(FILE *);
void restart(char *);
int modify_param(int, char **);
void reset_target(double);
void reset_dt();
protected:
int dimension,which;
double dtv,dtf,dthalf,dt4,dt8,dto;
double boltz,nktv2p,tdof;
double vol0,t0;
double t_start,t_stop;
double t_current,t_target;
double t_freq;
int tstat_flag; // 1 if control T
int pstat_flag; // 1 if control P
int pstyle,pcouple,allremap;
int p_flag[6]; // 1 if control P on this dim, 0 if not
double p_start[6],p_stop[6];
double p_freq[6],p_target[6];
double omega[6],omega_dot[6];
double omega_mass[6];
double p_current[6];
double drag,tdrag_factor; // drag factor on particle thermostat
double pdrag_factor; // drag factor on barostat
int kspace_flag; // 1 if KSpace invoked, 0 if not
int nrigid; // number of rigid fixes
int *rfix; // indices of rigid fixes
+ class Irregular *irregular; // for migrating atoms after box flips
int nlevels_respa;
double *step_respa;
char *id_temp,*id_press;
class Compute *temperature,*pressure;
int tflag,pflag;
double *eta,*eta_dot; // chain thermostat for particles
double *eta_dotdot;
double *eta_mass;
int mtchain; // length of chain
int mtchain_default_flag; // 1 = mtchain is default
double *etap; // chain thermostat for barostat
double *etap_dot;
double *etap_dotdot;
double *etap_mass;
int mpchain; // length of chain
int mtk_flag; // 0 if using Hoover barostat
int pdim; // number of barostatted dims
double p_freq_max; // maximum barostat frequency
double p_hydro; // hydrostatic target pressure
int nc_tchain,nc_pchain;
double factor_eta;
double sigma[6]; // scaled target stress
double fdev[6]; // deviatoric force on barostat
int deviatoric_flag; // 0 if target stress tensor is hydrostatic
double h0_inv[6]; // h_inv of reference (zero strain) box
int nreset_h0; // interval for resetting h0
+
double mtk_term1,mtk_term2; // Martyna-Tobias-Klein corrections
+ int scaleyz; // 1 if yz scaled with lz
+ int scalexz; // 1 if xz scaled with lz
+ int scalexy; // 1 if xy scaled with ly
+
void couple();
void remap();
void nhc_temp_integrate();
void nhc_press_integrate();
virtual void nve_x(); // may be overwritten by child classes
virtual void nve_v();
virtual void nh_v_press();
virtual void nh_v_temp();
void compute_sigma();
void compute_deviatoric();
double compute_strain_energy();
void compute_press_target();
void nh_omega_dot();
};
}
#endif
diff --git a/src/fix_nve.cpp b/src/fix_nve.cpp
index 3417bba63..bb500561a 100644
--- a/src/fix_nve.cpp
+++ b/src/fix_nve.cpp
@@ -1,170 +1,170 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "stdio.h"
#include "string.h"
#include "fix_nve.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixNVE::FixNVE(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (strcmp(style,"nve/sphere") != 0 && narg < 3)
error->all("Illegal fix nve command");
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
int FixNVE::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVE::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ----------------------------------------------------------------------
allow for both per-type and per-atom mass
------------------------------------------------------------------------- */
void FixNVE::initial_integrate(int vflag)
{
double dtfm;
// update v and x of atoms in group
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVE::final_integrate()
{
double dtfm;
// update v of atoms in group
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVE::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
// innermost level - NVE update of v and x
// all other levels - NVE update of v
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVE::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVE::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
}
diff --git a/src/fix_nve_limit.cpp b/src/fix_nve_limit.cpp
index ad14aa1fc..2fed70c49 100644
--- a/src/fix_nve_limit.cpp
+++ b/src/fix_nve_limit.cpp
@@ -1,228 +1,228 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "fix_nve_limit.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixNVELimit::FixNVELimit(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 4) error->all("Illegal fix nve/limit command");
time_integrate = 1;
scalar_flag = 1;
global_freq = 1;
extscalar = 1;
xlimit = atof(arg[3]);
ncount = 0;
}
/* ---------------------------------------------------------------------- */
int FixNVELimit::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVELimit::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
vlimitsq = (xlimit/dtv) * (xlimit/dtv);
ncount = 0;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ----------------------------------------------------------------------
allow for both per-type and per-atom mass
------------------------------------------------------------------------- */
void FixNVELimit::initial_integrate(int vflag)
{
double dtfm,vsq,scale;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *mass = atom->mass;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
if (vsq > vlimitsq) {
ncount++;
scale = sqrt(vlimitsq/vsq);
v[i][0] *= scale;
v[i][1] *= scale;
v[i][2] *= scale;
}
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
if (vsq > vlimitsq) {
ncount++;
scale = sqrt(vlimitsq/vsq);
v[i][0] *= scale;
v[i][1] *= scale;
v[i][2] *= scale;
}
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVELimit::final_integrate()
{
double dtfm,vsq,scale;
double **v = atom->v;
double **f = atom->f;
double *mass = atom->mass;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
if (vsq > vlimitsq) {
ncount++;
scale = sqrt(vlimitsq/vsq);
v[i][0] *= scale;
v[i][1] *= scale;
v[i][2] *= scale;
}
}
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
if (vsq > vlimitsq) {
ncount++;
scale = sqrt(vlimitsq/vsq);
v[i][0] *= scale;
v[i][1] *= scale;
v[i][2] *= scale;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVELimit::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVELimit::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVELimit::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
vlimitsq = (xlimit/dtv) * (xlimit/dtv);
}
/* ----------------------------------------------------------------------
energy of indenter interaction
------------------------------------------------------------------------- */
double FixNVELimit::compute_scalar()
{
double one = ncount;
double all;
MPI_Allreduce(&one,&all,1,MPI_DOUBLE,MPI_SUM,world);
return all;
}
diff --git a/src/fix_nve_noforce.cpp b/src/fix_nve_noforce.cpp
index 094503009..b0095ab18 100644
--- a/src/fix_nve_noforce.cpp
+++ b/src/fix_nve_noforce.cpp
@@ -1,89 +1,89 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "stdio.h"
#include "string.h"
#include "fix_nve_noforce.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixNVENoforce::FixNVENoforce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 3) error->all("Illegal fix nve/noforce command");
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
int FixNVENoforce::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVENoforce::init()
{
dtv = update->dt;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ---------------------------------------------------------------------- */
void FixNVENoforce::initial_integrate(int vflag)
{
double **x = atom->x;
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVENoforce::initial_integrate_respa(int vflag, int ilevel, int flag)
{
if (flag) return; // only used by NPT,NPH
dtv = step_respa[ilevel];
if (ilevel == 0) initial_integrate(vflag);
}
/* ---------------------------------------------------------------------- */
void FixNVENoforce::reset_dt()
{
dtv = update->dt;
}
diff --git a/src/fix_orient_fcc.cpp b/src/fix_orient_fcc.cpp
index 663061694..088c01785 100644
--- a/src/fix_orient_fcc.cpp
+++ b/src/fix_orient_fcc.cpp
@@ -1,593 +1,593 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Koenraad Janssens and David Olmsted (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "mpi.h"
#include "fix_orient_fcc.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "comm.h"
#include "output.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define BIG 1000000000
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixOrientFCC::FixOrientFCC(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
MPI_Comm_rank(world,&me);
if (narg != 11) error->all("Illegal fix orient/fcc command");
scalar_flag = 1;
global_freq = 1;
extscalar = 1;
peratom_flag = 1;
size_peratom_cols = 2;
peratom_freq = 1;
nstats = atoi(arg[3]);
direction_of_motion = atoi(arg[4]);
a = atof(arg[5]);
Vxi = atof(arg[6]);
uxif_low = atof(arg[7]);
uxif_high = atof(arg[8]);
if (direction_of_motion == 0) {
int n = strlen(arg[9]) + 1;
chifilename = new char[n];
strcpy(chifilename,arg[9]);
n = strlen(arg[10]) + 1;
xifilename = new char[n];
strcpy(xifilename,arg[10]);
} else if (direction_of_motion == 1) {
int n = strlen(arg[9]) + 1;
xifilename = new char[n];
strcpy(xifilename,arg[9]);
n = strlen(arg[10]) + 1;
chifilename = new char[n];
strcpy(chifilename,arg[10]);
} else error->all("Illegal fix orient/fcc command");
// initializations
PI = 4.0*atan(1.0);
half_fcc_nn = 6;
use_xismooth = false;
double xicutoff = 1.57;
xicutoffsq = xicutoff * xicutoff;
cutsq = 0.5 * a*a*xicutoffsq;
nmax = 0;
// read xi and chi reference orientations from files
if (me == 0) {
char line[512];
char *result;
int count;
FILE *infile = fopen(xifilename,"r");
if (infile == NULL) error->one("Fix orient/fcc file open failed");
for (int i = 0; i < 6; i++) {
result = fgets(line,512,infile);
if (!result) error->one("Fix orient/fcc file read failed");
count = sscanf(line,"%lg %lg %lg",&Rxi[i][0],&Rxi[i][1],&Rxi[i][2]);
if (count != 3) error->one("Fix orient/fcc file read failed");
}
fclose(infile);
infile = fopen(chifilename,"r");
if (infile == NULL) error->one("Fix orient/fcc file open failed");
for (int i = 0; i < 6; i++) {
result = fgets(line,512,infile);
if (!result) error->one("Fix orient/fcc file read failed");
count = sscanf(line,"%lg %lg %lg",&Rchi[i][0],&Rchi[i][1],&Rchi[i][2]);
if (count != 3) error->one("Fix orient/fcc file read failed");
}
fclose(infile);
}
MPI_Bcast(&Rxi[0][0],18,MPI_DOUBLE,0,world);
MPI_Bcast(&Rchi[0][0],18,MPI_DOUBLE,0,world);
// make copy of the reference vectors
for (int i = 0; i < 6; i++)
for (int j = 0; j < 3; j++) {
half_xi_chi_vec[0][i][j] = Rxi[i][j];
half_xi_chi_vec[1][i][j] = Rchi[i][j];
}
// compute xiid,xi0,xi1 for all 12 neighbors
// xi is the favored crystal
// want order parameter when actual is Rchi
double xi_sq,dxi[3],rchi[3];
xiid = 0.0;
for (int i = 0; i < 6; i++) {
rchi[0] = Rchi[i][0];
rchi[1] = Rchi[i][1];
rchi[2] = Rchi[i][2];
find_best_ref(rchi,0,xi_sq,dxi);
xiid += sqrt(xi_sq);
for (int j = 0; j < 3; j++) rchi[j] = -rchi[j];
find_best_ref(rchi,0,xi_sq,dxi);
xiid += sqrt(xi_sq);
}
xiid /= 12.0;
xi0 = uxif_low * xiid;
xi1 = uxif_high * xiid;
// set comm size needed by this Fix
// NOTE: doesn't seem that use_xismooth is ever true
if (use_xismooth) comm_forward = 62;
else comm_forward = 50;
added_energy = 0.0;
nmax = atom->nmax;
nbr = (Nbr *) memory->smalloc(nmax*sizeof(Nbr),"orient/fcc:nbr");
memory->create(order,nmax,2,"orient/fcc:order");
array_atom = order;
// zero the array since a variable may access it before first run
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) order[i][0] = order[i][1] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixOrientFCC::~FixOrientFCC()
{
delete [] xifilename;
delete [] chifilename;
memory->sfree(nbr);
memory->destroy(order);
}
/* ---------------------------------------------------------------------- */
int FixOrientFCC::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
// need a full neighbor list, built whenever re-neighboring occurs
int irequest = neighbor->request((void *) this);
neighbor->requests[irequest]->pair = 0;
neighbor->requests[irequest]->fix = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->full = 1;
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::init_list(int id, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::post_force(int vflag)
{
int i,j,k,ii,jj,inum,jnum,m,n,nn,nsort,id_self;
int *ilist,*jlist,*numneigh,**firstneigh;
double edelta,omega;
double dx,dy,dz,rsq,xismooth,xi_sq,duxi,duxi_other;
double dxi[3];
double *dxiptr;
bool found_myself;
// set local ptrs
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int *tag = atom->tag;
int nlocal = atom->nlocal;
int nall = atom->nlocal + atom->nghost;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// insure nbr and order data structures are adequate size
if (nall > nmax) {
nmax = nall;
memory->destroy(nbr);
memory->destroy(order);
nbr = (Nbr *) memory->smalloc(nmax*sizeof(Nbr),"orient/fcc:nbr");
memory->create(order,nmax,2,"orient/fcc:order");
array_atom = order;
}
// loop over owned atoms and build Nbr data structure of neighbors
// use full neighbor list
added_energy = 0.0;
int count = 0;
int mincount = BIG;
int maxcount = 0;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
jlist = firstneigh[i];
jnum = numneigh[i];
if (jnum < mincount) mincount = jnum;
if (jnum > maxcount) {
if (maxcount) delete [] sort;
sort = new Sort[jnum];
maxcount = jnum;
}
// loop over all neighbors of atom i
// for those within cutsq, build sort data structure
// store local id, rsq, delta vector, xismooth (if included)
nsort = 0;
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
count++;
dx = x[i][0] - x[j][0];
dy = x[i][1] - x[j][1];
dz = x[i][2] - x[j][2];
rsq = dx*dx + dy*dy + dz*dz;
if (rsq < cutsq) {
sort[nsort].id = j;
sort[nsort].rsq = rsq;
sort[nsort].delta[0] = dx;
sort[nsort].delta[1] = dy;
sort[nsort].delta[2] = dz;
if (use_xismooth) {
xismooth = (xicutoffsq - 2.0*rsq/(a*a)) / (xicutoffsq - 1.0);
sort[nsort].xismooth = 1.0 - fabs(1.0-xismooth);
}
nsort++;
}
}
// sort neighbors by rsq distance
// no need to sort if nsort <= 12
if (nsort > 12) qsort(sort,nsort,sizeof(Sort),compare);
// copy up to 12 nearest neighbors into nbr data structure
// operate on delta vector via find_best_ref() to compute dxi
n = MIN(12,nsort);
nbr[i].n = n;
if (n == 0) continue;
double xi_total = 0.0;
for (j = 0; j < n; j++) {
find_best_ref(sort[j].delta,0,xi_sq,dxi);
xi_total += sqrt(xi_sq);
nbr[i].id[j] = sort[j].id;
nbr[i].dxi[j][0] = dxi[0]/n;
nbr[i].dxi[j][1] = dxi[1]/n;
nbr[i].dxi[j][2] = dxi[2]/n;
if (use_xismooth) nbr[i].xismooth[j] = sort[j].xismooth;
}
xi_total /= n;
order[i][0] = xi_total;
// compute potential derivative to xi
if (xi_total < xi0) {
nbr[i].duxi = 0.0;
edelta = 0.0;
order[i][1] = 0.0;
} else if (xi_total > xi1) {
nbr[i].duxi = 0.0;
edelta = Vxi;
order[i][1] = 1.0;
} else {
omega = (0.5*PI)*(xi_total-xi0) / (xi1-xi0);
nbr[i].duxi = PI*Vxi*sin(2.0*omega) / (2.0*(xi1-xi0));
edelta = Vxi*(1 - cos(2.0*omega)) / 2.0;
order[i][1] = omega / (0.5*PI);
}
added_energy += edelta;
}
if (maxcount) delete [] sort;
// communicate to acquire nbr data for ghost atoms
comm->forward_comm_fix(this);
// compute grain boundary force on each owned atom
// skip atoms not in group
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
if (!(mask[i] & groupbit)) continue;
n = nbr[i].n;
duxi = nbr[i].duxi;
for (j = 0; j < n; j++) {
dxiptr = &nbr[i].dxi[j][0];
if (use_xismooth) {
xismooth = nbr[i].xismooth[j];
f[i][0] += duxi * dxiptr[0] * xismooth;
f[i][1] += duxi * dxiptr[1] * xismooth;
f[i][2] += duxi * dxiptr[2] * xismooth;
} else {
f[i][0] += duxi * dxiptr[0];
f[i][1] += duxi * dxiptr[1];
f[i][2] += duxi * dxiptr[2];
}
// m = local index of neighbor
// id_self = ID for atom I in atom M's neighbor list
// if M is local atom, id_self will be local ID of atom I
// if M is ghost atom, id_self will be global ID of atom I
m = nbr[i].id[j];
if (m < nlocal) id_self = i;
else id_self = tag[i];
found_myself = false;
nn = nbr[m].n;
for (k = 0; k < nn; k++) {
if (id_self == nbr[m].id[k]) {
if (found_myself) error->one("Fix orient/fcc found self twice");
found_myself = true;
duxi_other = nbr[m].duxi;
dxiptr = &nbr[m].dxi[k][0];
if (use_xismooth) {
xismooth = nbr[m].xismooth[k];
f[i][0] -= duxi_other * dxiptr[0] * xismooth;
f[i][1] -= duxi_other * dxiptr[1] * xismooth;
f[i][2] -= duxi_other * dxiptr[2] * xismooth;
} else {
f[i][0] -= duxi_other * dxiptr[0];
f[i][1] -= duxi_other * dxiptr[1];
f[i][2] -= duxi_other * dxiptr[2];
}
}
}
}
}
// print statistics every nstats timesteps
if (nstats && update->ntimestep % nstats == 0) {
int total;
MPI_Allreduce(&count,&total,1,MPI_INT,MPI_SUM,world);
double ave = total/atom->natoms;
int min,max;
MPI_Allreduce(&mincount,&min,1,MPI_INT,MPI_MIN,world);
MPI_Allreduce(&maxcount,&max,1,MPI_INT,MPI_MAX,world);
if (me == 0) {
if (screen) fprintf(screen,
"orient step " BIGINT_FORMAT ": " BIGINT_FORMAT
" atoms have %d neighbors\n",
update->ntimestep,atom->natoms,total);
if (logfile) fprintf(logfile,
"orient step " BIGINT_FORMAT ": " BIGINT_FORMAT
" atoms have %d neighbors\n",
update->ntimestep,atom->natoms,total);
if (screen)
fprintf(screen," neighs: min = %d, max = %d, ave = %g\n",
min,max,ave);
if (logfile)
fprintf(logfile," neighs: min = %d, max = %d, ave = %g\n",
min,max,ave);
}
}
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
double FixOrientFCC::compute_scalar()
{
double added_energy_total;
MPI_Allreduce(&added_energy,&added_energy_total,1,MPI_DOUBLE,MPI_SUM,world);
return added_energy_total;
}
/* ---------------------------------------------------------------------- */
int FixOrientFCC::pack_comm(int n, int *list, double *buf,
int pbc_flag, int *pbc)
{
int i,j,k,id,num;
int *tag = atom->tag;
int nlocal = atom->nlocal;
int m = 0;
for (i = 0; i < n; i++) {
k = list[i];
num = nbr[k].n;
buf[m++] = num;
buf[m++] = nbr[k].duxi;
for (j = 0; j < num; j++) {
if (use_xismooth) buf[m++] = nbr[m].xismooth[j];
buf[m++] = nbr[k].dxi[j][0];
buf[m++] = nbr[k].dxi[j][1];
buf[m++] = nbr[k].dxi[j][2];
// id stored in buf needs to be global ID
// if k is a local atom, it stores local IDs, so convert to global
// if k is a ghost atom (already comm'd), its IDs are already global
id = nbr[k].id[j];
if (k < nlocal) id = tag[id];
buf[m++] = id;
}
m += (12-num) * 3;
if (use_xismooth) m += 12-num;
}
if (use_xismooth) return 62;
return 50;
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::unpack_comm(int n, int first, double *buf)
{
int i,j,num;
int last = first + n;
int m = 0;
for (i = first; i < last; i++) {
nbr[i].n = num = static_cast<int> (buf[m++]);
nbr[i].duxi = buf[m++];
for (j = 0; j < num; j++) {
if (use_xismooth) nbr[i].xismooth[j] = buf[m++];
nbr[i].dxi[j][0] = buf[m++];
nbr[i].dxi[j][1] = buf[m++];
nbr[i].dxi[j][2] = buf[m++];
nbr[i].id[j] = static_cast<int> (buf[m++]);
}
m += (12-num) * 3;
if (use_xismooth) m += 12-num;
}
}
/* ---------------------------------------------------------------------- */
void FixOrientFCC::find_best_ref(double *displs, int which_crystal,
double &xi_sq, double *dxi)
{
int i;
double dot,tmp;
double best_dot = -1.0; // best is biggest (smallest angle)
int best_i = -1;
int best_sign = 0;
for (i = 0; i < half_fcc_nn; i++) {
dot = displs[0] * half_xi_chi_vec[which_crystal][i][0] +
displs[1] * half_xi_chi_vec[which_crystal][i][1] +
displs[2] * half_xi_chi_vec[which_crystal][i][2];
if (fabs(dot) > best_dot) {
best_dot = fabs(dot);
best_i = i;
if (dot < 0.0) best_sign = -1;
else best_sign = 1;
}
}
xi_sq = 0.0;
for (i = 0; i < 3; i++) {
tmp = displs[i] - best_sign * half_xi_chi_vec[which_crystal][best_i][i];
xi_sq += tmp*tmp;
}
if (xi_sq > 0.0) {
double xi = sqrt(xi_sq);
for (i = 0; i < 3; i++)
dxi[i] = (best_sign * half_xi_chi_vec[which_crystal][best_i][i] -
displs[i]) / xi;
} else dxi[0] = dxi[1] = dxi[2] = 0.0;
}
/* ----------------------------------------------------------------------
compare two neighbors I and J in sort data structure
called via qsort in post_force() method
is a static method so can't access sort data structure directly
return -1 if I < J, 0 if I = J, 1 if I > J
do comparison based on rsq distance
------------------------------------------------------------------------- */
int FixOrientFCC::compare(const void *pi, const void *pj)
{
FixOrientFCC::Sort *ineigh = (FixOrientFCC::Sort *) pi;
FixOrientFCC::Sort *jneigh = (FixOrientFCC::Sort *) pj;
if (ineigh->rsq < jneigh->rsq) return -1;
else if (ineigh->rsq > jneigh->rsq) return 1;
return 0;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixOrientFCC::memory_usage()
{
double bytes = nmax * sizeof(Nbr);
bytes += 2*nmax * sizeof(double);
return bytes;
}
diff --git a/src/fix_planeforce.cpp b/src/fix_planeforce.cpp
index 77af2570f..0cf0ee2b9 100644
--- a/src/fix_planeforce.cpp
+++ b/src/fix_planeforce.cpp
@@ -1,107 +1,107 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_planeforce.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixPlaneForce::FixPlaneForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 6) error->all("Illegal fix planeforce command");
xdir = atof(arg[3]);
ydir = atof(arg[4]);
zdir = atof(arg[5]);
double len = sqrt(xdir*xdir + ydir*ydir + zdir*zdir);
if (len == 0.0) error->all("Illegal fix planeforce command");
xdir /= len;
ydir /= len;
zdir /= len;
}
/* ---------------------------------------------------------------------- */
int FixPlaneForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixPlaneForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
int nlevels_respa = ((Respa *) update->integrate)->nlevels;
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
}
/* ---------------------------------------------------------------------- */
void FixPlaneForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixPlaneForce::post_force(int vflag)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double dot;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dot = f[i][0]*xdir + f[i][1]*ydir + f[i][2]*zdir;
f[i][0] -= dot * xdir;
f[i][1] -= dot * ydir;
f[i][2] -= dot * zdir;
}
}
/* ---------------------------------------------------------------------- */
void FixPlaneForce::post_force_respa(int vflag, int ilevel, int iloop)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixPlaneForce::min_post_force(int vflag)
{
post_force(vflag);
}
diff --git a/src/fix_rigid.cpp b/src/fix_rigid.cpp
index 0d276cc34..82687de44 100644
--- a/src/fix_rigid.cpp
+++ b/src/fix_rigid.cpp
@@ -1,1986 +1,1986 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "fix_rigid.h"
#include "math_extra.h"
#include "atom.h"
#include "atom_vec_ellipsoid.h"
#include "domain.h"
#include "update.h"
#include "respa.h"
#include "modify.h"
#include "group.h"
#include "comm.h"
#include "random_mars.h"
#include "force.h"
#include "output.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define TOLERANCE 1.0e-6
#define EPSILON 1.0e-7
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
int i,ibody;
scalar_flag = 1;
extscalar = 0;
time_integrate = 1;
rigid_flag = 1;
virial_flag = 1;
create_attribute = 1;
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
// perform initial allocation of atom-based arrays
// register with Atom class
extended = dorientflag = qorientflag = 0;
body = NULL;
displace = NULL;
eflags = NULL;
dorient = NULL;
qorient = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
// parse args for rigid body specification
// set nbody and body[i] for each atom
if (narg < 4) error->all("Illegal fix rigid command");
int iarg;
// single rigid body
// nbody = 1
// all atoms in fix group are part of body
if (strcmp(arg[3],"single") == 0) {
iarg = 4;
nbody = 1;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
body[i] = -1;
if (mask[i] & groupbit) body[i] = 0;
}
// each molecule in fix group is a rigid body
// maxmol = largest molecule #
// ncount = # of atoms in each molecule (have to sum across procs)
// nbody = # of non-zero ncount values
// use nall as incremented ptr to set body[] values for each atom
} else if (strcmp(arg[3],"molecule") == 0) {
iarg = 4;
if (atom->molecule_flag == 0)
error->all("Fix rigid molecule requires atom attribute molecule");
int *mask = atom->mask;
int *molecule = atom->molecule;
int nlocal = atom->nlocal;
int maxmol = -1;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) maxmol = MAX(maxmol,molecule[i]);
int itmp;
MPI_Allreduce(&maxmol,&itmp,1,MPI_INT,MPI_MAX,world);
maxmol = itmp + 1;
int *ncount = new int[maxmol];
for (i = 0; i < maxmol; i++) ncount[i] = 0;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) ncount[molecule[i]]++;
int *nall = new int[maxmol];
MPI_Allreduce(ncount,nall,maxmol,MPI_INT,MPI_SUM,world);
nbody = 0;
for (i = 0; i < maxmol; i++)
if (nall[i]) nall[i] = nbody++;
else nall[i] = -1;
for (i = 0; i < nlocal; i++) {
body[i] = -1;
if (mask[i] & groupbit) body[i] = nall[molecule[i]];
}
delete [] ncount;
delete [] nall;
// each listed group is a rigid body
// check if all listed groups exist
// an atom must belong to fix group and listed group to be in rigid body
// error if atom belongs to more than 1 rigid body
} else if (strcmp(arg[3],"group") == 0) {
if (narg < 5) error->all("Illegal fix rigid command");
nbody = atoi(arg[4]);
if (nbody <= 0) error->all("Illegal fix rigid command");
if (narg < 5+nbody) error->all("Illegal fix rigid command");
iarg = 5+nbody;
int *igroups = new int[nbody];
for (ibody = 0; ibody < nbody; ibody++) {
igroups[ibody] = group->find(arg[5+ibody]);
if (igroups[ibody] == -1)
error->all("Could not find fix rigid group ID");
}
int *mask = atom->mask;
int nlocal = atom->nlocal;
int flag = 0;
for (i = 0; i < nlocal; i++) {
body[i] = -1;
if (mask[i] & groupbit)
for (ibody = 0; ibody < nbody; ibody++)
if (mask[i] & group->bitmask[igroups[ibody]]) {
if (body[i] >= 0) flag = 1;
body[i] = ibody;
}
}
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall)
error->all("One or more atoms belong to multiple rigid bodies");
delete [] igroups;
} else error->all("Illegal fix rigid command");
// error check on nbody
if (nbody == 0) error->all("No rigid bodies defined");
// create all nbody-length arrays
memory->create(nrigid,nbody,"rigid:nrigid");
memory->create(masstotal,nbody,"rigid:masstotal");
memory->create(xcm,nbody,3,"rigid:xcm");
memory->create(vcm,nbody,3,"rigid:vcm");
memory->create(fcm,nbody,3,"rigid:fcm");
memory->create(inertia,nbody,3,"rigid:inertia");
memory->create(ex_space,nbody,3,"rigid:ex_space");
memory->create(ey_space,nbody,3,"rigid:ey_space");
memory->create(ez_space,nbody,3,"rigid:ez_space");
memory->create(angmom,nbody,3,"rigid:angmom");
memory->create(omega,nbody,3,"rigid:omega");
memory->create(torque,nbody,3,"rigid:torque");
memory->create(quat,nbody,4,"rigid:quat");
memory->create(imagebody,nbody,"rigid:imagebody");
memory->create(fflag,nbody,3,"rigid:fflag");
memory->create(tflag,nbody,3,"rigid:tflag");
memory->create(langextra,nbody,6,"rigid:langextra");
memory->create(sum,nbody,6,"rigid:sum");
memory->create(all,nbody,6,"rigid:all");
memory->create(remapflag,nbody,4,"rigid:remapflag");
// initialize force/torque flags to default = 1.0
// for 2d: fz, tx, ty = 0.0
array_flag = 1;
size_array_rows = nbody;
size_array_cols = 15;
global_freq = 1;
extarray = 0;
for (i = 0; i < nbody; i++) {
fflag[i][0] = fflag[i][1] = fflag[i][2] = 1.0;
tflag[i][0] = tflag[i][1] = tflag[i][2] = 1.0;
if (domain->dimension == 2) fflag[i][2] = tflag[i][0] = tflag[i][1] = 0.0;
}
// parse optional args
int seed;
langflag = 0;
tempflag = 0;
pressflag = 0;
t_chain = 10;
t_iter = 1;
t_order = 3;
p_chain = 10;
while (iarg < narg) {
if (strcmp(arg[iarg],"force") == 0) {
if (iarg+5 > narg) error->all("Illegal fix rigid command");
int mlo,mhi;
force->bounds(arg[iarg+1],nbody,mlo,mhi);
double xflag,yflag,zflag;
if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0;
else if (strcmp(arg[iarg+2],"on") == 0) xflag = 1.0;
else error->all("Illegal fix rigid command");
if (strcmp(arg[iarg+3],"off") == 0) yflag = 0.0;
else if (strcmp(arg[iarg+3],"on") == 0) yflag = 1.0;
else error->all("Illegal fix rigid command");
if (strcmp(arg[iarg+4],"off") == 0) zflag = 0.0;
else if (strcmp(arg[iarg+4],"on") == 0) zflag = 1.0;
else error->all("Illegal fix rigid command");
if (domain->dimension == 2 && zflag == 1.0)
error->all("Fix rigid z force cannot be on for 2d simulation");
int count = 0;
for (int m = mlo; m <= mhi; m++) {
fflag[m-1][0] = xflag;
fflag[m-1][1] = yflag;
fflag[m-1][2] = zflag;
count++;
}
if (count == 0) error->all("Illegal fix rigid command");
iarg += 5;
} else if (strcmp(arg[iarg],"torque") == 0) {
if (iarg+5 > narg) error->all("Illegal fix rigid command");
int mlo,mhi;
force->bounds(arg[iarg+1],nbody,mlo,mhi);
double xflag,yflag,zflag;
if (strcmp(arg[iarg+2],"off") == 0) xflag = 0.0;
else if (strcmp(arg[iarg+2],"on") == 0) xflag = 1.0;
else error->all("Illegal fix rigid command");
if (strcmp(arg[iarg+3],"off") == 0) yflag = 0.0;
else if (strcmp(arg[iarg+3],"on") == 0) yflag = 1.0;
else error->all("Illegal fix rigid command");
if (strcmp(arg[iarg+4],"off") == 0) zflag = 0.0;
else if (strcmp(arg[iarg+4],"on") == 0) zflag = 1.0;
else error->all("Illegal fix rigid command");
if (domain->dimension == 2 && (xflag == 1.0 || yflag == 1.0))
error->all("Fix rigid xy torque cannot be on for 2d simulation");
int count = 0;
for (int m = mlo; m <= mhi; m++) {
tflag[m-1][0] = xflag;
tflag[m-1][1] = yflag;
tflag[m-1][2] = zflag;
count++;
}
if (count == 0) error->all("Illegal fix rigid command");
iarg += 5;
} else if (strcmp(arg[iarg],"langevin") == 0) {
if (iarg+5 > narg) error->all("Illegal fix rigid command");
if (strcmp(style,"rigid") != 0 && strcmp(style,"rigid/nve") != 0)
error->all("Illegal fix rigid command");
langflag = 1;
t_start = atof(arg[iarg+1]);
t_stop = atof(arg[iarg+2]);
t_period = atof(arg[iarg+3]);
seed = atoi(arg[iarg+4]);
if (t_period <= 0.0)
error->all("Fix rigid langevin period must be > 0.0");
if (seed <= 0) error->all("Illegal fix rigid command");
iarg += 5;
} else if (strcmp(arg[iarg],"temp") == 0) {
if (iarg+4 > narg) error->all("Illegal fix rigid command");
if (strcmp(style,"rigid/nvt") != 0 && strcmp(style,"rigid/npt") != 0)
error->all("Illegal fix rigid command");
tempflag = 1;
t_start = atof(arg[iarg+1]);
t_stop = atof(arg[iarg+2]);
t_period = atof(arg[iarg+3]);
iarg += 4;
} else if (strcmp(arg[iarg],"press") == 0) {
if (iarg+4 > narg) error->all("Illegal fix rigid command");
if (strcmp(style,"rigid/npt") != 0)
error->all("Illegal fix rigid command");
pressflag = 1;
p_start = atof(arg[iarg+1]);
p_stop = atof(arg[iarg+2]);
p_period = atof(arg[iarg+3]);
iarg += 4;
} else if (strcmp(arg[iarg],"tparam") == 0) {
if (iarg+4 > narg) error->all("Illegal fix rigid command");
if (strcmp(style,"rigid/nvt") != 0)
error->all("Illegal fix rigid command");
t_chain = atoi(arg[iarg+1]);
t_iter = atoi(arg[iarg+2]);
t_order = atoi(arg[iarg+3]);
iarg += 4;
} else if (strcmp(arg[iarg],"pparam") == 0) {
if (iarg+2 > narg) error->all("Illegal fix rigid command");
if (strcmp(style,"rigid/npt") != 0)
error->all("Illegal fix rigid command");
p_chain = atoi(arg[iarg+1]);
iarg += 2;
} else error->all("Illegal fix rigid command");
}
// initialize Marsaglia RNG with processor-unique seed
if (langflag) random = new RanMars(lmp,seed + me);
else random = NULL;
// initialize vector output quantities in case accessed before run
for (i = 0; i < nbody; i++) {
xcm[i][0] = xcm[i][1] = xcm[i][2] = 0.0;
vcm[i][0] = vcm[i][1] = vcm[i][2] = 0.0;
fcm[i][0] = fcm[i][1] = fcm[i][2] = 0.0;
torque[i][0] = torque[i][1] = torque[i][2] = 0.0;
}
// nrigid[n] = # of atoms in Nth rigid body
// error if one or zero atoms
int *ncount = new int[nbody];
for (ibody = 0; ibody < nbody; ibody++) ncount[ibody] = 0;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
if (body[i] >= 0) ncount[body[i]]++;
MPI_Allreduce(ncount,nrigid,nbody,MPI_INT,MPI_SUM,world);
delete [] ncount;
for (ibody = 0; ibody < nbody; ibody++)
if (nrigid[ibody] <= 1) error->all("One or zero atoms in rigid body");
// set image flags for each rigid body to default values
// will be reset during init() based on xcm and then by pre_neighbor()
// set here, so image value will persist from run to run
for (ibody = 0; ibody < nbody; ibody++)
imagebody[ibody] = (512 << 20) | (512 << 10) | 512;
// bitmasks for properties of extended particles
INERTIA_POINT = 1;
INERTIA_SPHERE = 2;
INERTIA_ELLIPSOID = 4;
ORIENT_DIPOLE = 8;
ORIENT_QUAT = 16;
OMEGA = 32;
ANGMOM = 64;
TORQUE = 128;
// atom style pointers to particles that store extra info
avec_ellipsoid = (AtomVecEllipsoid *) atom->style_match("ellipsoid");
// print statistics
int nsum = 0;
for (ibody = 0; ibody < nbody; ibody++) nsum += nrigid[ibody];
if (me == 0) {
if (screen) fprintf(screen,"%d rigid bodies with %d atoms\n",nbody,nsum);
if (logfile) fprintf(logfile,"%d rigid bodies with %d atoms\n",nbody,nsum);
}
}
/* ---------------------------------------------------------------------- */
FixRigid::~FixRigid()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
delete random;
// delete locally stored arrays
memory->destroy(body);
memory->destroy(displace);
memory->destroy(eflags);
memory->destroy(dorient);
memory->destroy(qorient);
// delete nbody-length arrays
memory->destroy(nrigid);
memory->destroy(masstotal);
memory->destroy(xcm);
memory->destroy(vcm);
memory->destroy(fcm);
memory->destroy(inertia);
memory->destroy(ex_space);
memory->destroy(ey_space);
memory->destroy(ez_space);
memory->destroy(angmom);
memory->destroy(omega);
memory->destroy(torque);
memory->destroy(quat);
memory->destroy(imagebody);
memory->destroy(fflag);
memory->destroy(tflag);
memory->destroy(langextra);
memory->destroy(sum);
memory->destroy(all);
memory->destroy(remapflag);
}
/* ---------------------------------------------------------------------- */
int FixRigid::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
if (langflag) mask |= POST_FORCE;
mask |= PRE_NEIGHBOR;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixRigid::init()
{
int i,itype,ibody;
triclinic = domain->triclinic;
// warn if more than one rigid fix
int count = 0;
for (int i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"rigid") == 0) count++;
if (count > 1 && me == 0) error->warning("More than one fix rigid");
// error if npt,nph fix comes before rigid fix
for (i = 0; i < modify->nfix; i++) {
if (strcmp(modify->fix[i]->style,"npt") == 0) break;
if (strcmp(modify->fix[i]->style,"nph") == 0) break;
}
if (i < modify->nfix) {
for (int j = i; j < modify->nfix; j++)
if (strcmp(modify->fix[j]->style,"rigid") == 0)
error->all("Rigid fix must come before NPT/NPH fix");
}
// timestep info
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dtq = 0.5 * update->dt;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
// extended = 1 if any particle in a rigid body is finite size
// or has a dipole moment
extended = dorientflag = qorientflag = 0;
AtomVecEllipsoid::Bonus *ebonus;
if (avec_ellipsoid) ebonus = avec_ellipsoid->bonus;
double **mu = atom->mu;
double *radius = atom->radius;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *ellipsoid = atom->ellipsoid;
int *type = atom->type;
int nlocal = atom->nlocal;
if (atom->radius_flag || atom->ellipsoid_flag || atom->mu_flag) {
int flag = 0;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
if (radius && radius[i] > 0.0) flag = 1;
if (ellipsoid && ellipsoid[i] >= 0) flag = 1;
if (mu && mu[i][3] > 0.0) flag = 1;
}
MPI_Allreduce(&flag,&extended,1,MPI_INT,MPI_MAX,world);
}
// grow extended arrays and set extended flags for each particle
// qorientflag = 1 if any particle stores quat orientation
// dorientflag = 1 if any particle stores dipole orientation
if (extended) {
if (atom->mu_flag) dorientflag = 1;
if (atom->ellipsoid_flag) qorientflag = 1;
grow_arrays(atom->nmax);
for (i = 0; i < nlocal; i++) {
eflags[i] = 0;
if (body[i] < 0) continue;
// set INERTIA to POINT or SPHERE or ELLIPSOID
if (radius && radius[i] > 0.0) {
eflags[i] |= INERTIA_SPHERE;
eflags[i] |= OMEGA;
eflags[i] |= TORQUE;
} else if (ellipsoid && ellipsoid[i] >= 0) {
eflags[i] |= INERTIA_ELLIPSOID;
eflags[i] |= ORIENT_QUAT;
eflags[i] |= ANGMOM;
eflags[i] |= TORQUE;
} else eflags[i] |= INERTIA_POINT;
// set DIPOLE if atom->mu and mu[3] > 0.0
if (atom->mu_flag && mu[i][3] > 0.0)
eflags[i] |= ORIENT_DIPOLE;
}
}
// compute masstotal & center-of-mass of each rigid body
// error if image flag is not 0 in a non-periodic dim
double **x = atom->x;
int *image = atom->image;
int *periodicity = domain->periodicity;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
double xy = domain->xy;
double xz = domain->xz;
double yz = domain->yz;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
int xbox,ybox,zbox;
double massone,xunwrap,yunwrap,zunwrap;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
if ((xbox && !periodicity[0]) || (ybox && !periodicity[1]) ||
(zbox && !periodicity[2]))
error->one("Fix rigid atom has non-zero image flag "
"in a non-periodic dimension");
if (triclinic == 0) {
xunwrap = x[i][0] + xbox*xprd;
yunwrap = x[i][1] + ybox*yprd;
zunwrap = x[i][2] + zbox*zprd;
} else {
xunwrap = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
yunwrap = x[i][1] + ybox*yprd + zbox*yz;
zunwrap = x[i][2] + zbox*zprd;
}
sum[ibody][0] += xunwrap * massone;
sum[ibody][1] += yunwrap * massone;
sum[ibody][2] += zunwrap * massone;
sum[ibody][3] += massone;
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
masstotal[ibody] = all[ibody][3];
xcm[ibody][0] = all[ibody][0]/masstotal[ibody];
xcm[ibody][1] = all[ibody][1]/masstotal[ibody];
xcm[ibody][2] = all[ibody][2]/masstotal[ibody];
}
// remap the xcm of each body back into simulation box if needed
// only really necessary the 1st time a run is performed
pre_neighbor();
// compute 6 moments of inertia of each body
// dx,dy,dz = coords relative to center-of-mass
// symmetric 3x3 inertia tensor stored in Voigt notation as 6-vector
double dx,dy,dz,rad;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (triclinic == 0) {
xunwrap = x[i][0] + xbox*xprd;
yunwrap = x[i][1] + ybox*yprd;
zunwrap = x[i][2] + zbox*zprd;
} else {
xunwrap = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
yunwrap = x[i][1] + ybox*yprd + zbox*yz;
zunwrap = x[i][2] + zbox*zprd;
}
dx = xunwrap - xcm[ibody][0];
dy = yunwrap - xcm[ibody][1];
dz = zunwrap - xcm[ibody][2];
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
sum[ibody][0] += massone * (dy*dy + dz*dz);
sum[ibody][1] += massone * (dx*dx + dz*dz);
sum[ibody][2] += massone * (dx*dx + dy*dy);
sum[ibody][3] -= massone * dy*dz;
sum[ibody][4] -= massone * dx*dz;
sum[ibody][5] -= massone * dx*dy;
}
// extended particles may contribute extra terms to moments of inertia
if (extended) {
double ivec[6];
double *shape,*quatatom;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
massone = rmass[i];
if (eflags[i] & INERTIA_SPHERE) {
sum[ibody][0] += 0.4 * massone * radius[i]*radius[i];
sum[ibody][1] += 0.4 * massone * radius[i]*radius[i];
sum[ibody][2] += 0.4 * massone * radius[i]*radius[i];
} else if (eflags[i] & INERTIA_ELLIPSOID) {
shape = ebonus[ellipsoid[i]].shape;
quatatom = ebonus[ellipsoid[i]].quat;
MathExtra::inertia_ellipsoid(shape,quatatom,massone,ivec);
sum[ibody][0] += ivec[0];
sum[ibody][1] += ivec[1];
sum[ibody][2] += ivec[2];
sum[ibody][3] += ivec[3];
sum[ibody][4] += ivec[4];
sum[ibody][5] += ivec[5];
}
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
// diagonalize inertia tensor for each body via Jacobi rotations
// inertia = 3 eigenvalues = principal moments of inertia
// evectors and exzy_space = 3 evectors = principal axes of rigid body
int ierror;
double cross[3];
double tensor[3][3],evectors[3][3];
for (ibody = 0; ibody < nbody; ibody++) {
tensor[0][0] = all[ibody][0];
tensor[1][1] = all[ibody][1];
tensor[2][2] = all[ibody][2];
tensor[1][2] = tensor[2][1] = all[ibody][3];
tensor[0][2] = tensor[2][0] = all[ibody][4];
tensor[0][1] = tensor[1][0] = all[ibody][5];
ierror = MathExtra::jacobi(tensor,inertia[ibody],evectors);
if (ierror) error->all("Insufficient Jacobi rotations for rigid body");
ex_space[ibody][0] = evectors[0][0];
ex_space[ibody][1] = evectors[1][0];
ex_space[ibody][2] = evectors[2][0];
ey_space[ibody][0] = evectors[0][1];
ey_space[ibody][1] = evectors[1][1];
ey_space[ibody][2] = evectors[2][1];
ez_space[ibody][0] = evectors[0][2];
ez_space[ibody][1] = evectors[1][2];
ez_space[ibody][2] = evectors[2][2];
// if any principal moment < scaled EPSILON, set to 0.0
double max;
max = MAX(inertia[ibody][0],inertia[ibody][1]);
max = MAX(max,inertia[ibody][2]);
if (inertia[ibody][0] < EPSILON*max) inertia[ibody][0] = 0.0;
if (inertia[ibody][1] < EPSILON*max) inertia[ibody][1] = 0.0;
if (inertia[ibody][2] < EPSILON*max) inertia[ibody][2] = 0.0;
// enforce 3 evectors as a right-handed coordinate system
// flip 3rd vector if needed
MathExtra::cross3(ex_space[ibody],ey_space[ibody],cross);
if (MathExtra::dot3(cross,ez_space[ibody]) < 0.0)
MathExtra::negate3(ez_space[ibody]);
// create initial quaternion
MathExtra::exyz_to_q(ex_space[ibody],ey_space[ibody],ez_space[ibody],
quat[ibody]);
}
// displace = initial atom coords in basis of principal axes
// set displace = 0.0 for atoms not in any rigid body
// for extended particles, set their orientation wrt to rigid body
double qc[4],delta[3];
double *quatatom;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) {
displace[i][0] = displace[i][1] = displace[i][2] = 0.0;
continue;
}
ibody = body[i];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (triclinic == 0) {
xunwrap = x[i][0] + xbox*xprd;
yunwrap = x[i][1] + ybox*yprd;
zunwrap = x[i][2] + zbox*zprd;
} else {
xunwrap = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
yunwrap = x[i][1] + ybox*yprd + zbox*yz;
zunwrap = x[i][2] + zbox*zprd;
}
delta[0] = xunwrap - xcm[ibody][0];
delta[1] = yunwrap - xcm[ibody][1];
delta[2] = zunwrap - xcm[ibody][2];
MathExtra::transpose_matvec(ex_space[ibody],ey_space[ibody],
ez_space[ibody],delta,displace[i]);
if (extended) {
if (eflags[i] & ORIENT_DIPOLE) {
MathExtra::transpose_matvec(ex_space[ibody],ey_space[ibody],
ez_space[ibody],mu[i],dorient[i]);
MathExtra::snormalize3(mu[i][3],dorient[i],dorient[i]);
} else if (dorientflag)
dorient[i][0] = dorient[i][1] = dorient[i][2] = 0.0;
if (eflags[i] & ORIENT_QUAT) {
quatatom = ebonus[ellipsoid[i]].quat;
MathExtra::qconjugate(quat[ibody],qc);
MathExtra::quatquat(qc,quatatom,qorient[i]);
MathExtra::qnormalize(qorient[i]);
} else if (qorientflag)
qorient[i][0] = qorient[i][1] = qorient[i][2] = qorient[i][3] = 0.0;
}
}
// test for valid principal moments & axes
// recompute moments of inertia around new axes
// 3 diagonal moments should equal principal moments
// 3 off-diagonal moments should be 0.0
// extended particles may contribute extra terms to moments of inertia
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
sum[ibody][0] += massone *
(displace[i][1]*displace[i][1] + displace[i][2]*displace[i][2]);
sum[ibody][1] += massone *
(displace[i][0]*displace[i][0] + displace[i][2]*displace[i][2]);
sum[ibody][2] += massone *
(displace[i][0]*displace[i][0] + displace[i][1]*displace[i][1]);
sum[ibody][3] -= massone * displace[i][1]*displace[i][2];
sum[ibody][4] -= massone * displace[i][0]*displace[i][2];
sum[ibody][5] -= massone * displace[i][0]*displace[i][1];
}
if (extended) {
double ivec[6];
double *shape;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
massone = rmass[i];
if (eflags[i] & INERTIA_SPHERE) {
sum[ibody][0] += 0.4 * massone * radius[i]*radius[i];
sum[ibody][1] += 0.4 * massone * radius[i]*radius[i];
sum[ibody][2] += 0.4 * massone * radius[i]*radius[i];
} else if (eflags[i] & INERTIA_ELLIPSOID) {
shape = ebonus[ellipsoid[i]].shape;
MathExtra::inertia_ellipsoid(shape,qorient[i],massone,ivec);
sum[ibody][0] += ivec[0];
sum[ibody][1] += ivec[1];
sum[ibody][2] += ivec[2];
sum[ibody][3] += ivec[3];
sum[ibody][4] += ivec[4];
sum[ibody][5] += ivec[5];
}
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
double norm;
for (ibody = 0; ibody < nbody; ibody++) {
if (inertia[ibody][0] == 0.0) {
if (fabs(all[ibody][0]) > TOLERANCE)
error->all("Fix rigid: Bad principal moments");
} else {
if (fabs((all[ibody][0]-inertia[ibody][0])/inertia[ibody][0]) >
TOLERANCE) error->all("Fix rigid: Bad principal moments");
}
if (inertia[ibody][1] == 0.0) {
if (fabs(all[ibody][1]) > TOLERANCE)
error->all("Fix rigid: Bad principal moments");
} else {
if (fabs((all[ibody][1]-inertia[ibody][1])/inertia[ibody][1]) >
TOLERANCE) error->all("Fix rigid: Bad principal moments");
}
if (inertia[ibody][2] == 0.0) {
if (fabs(all[ibody][2]) > TOLERANCE)
error->all("Fix rigid: Bad principal moments");
} else {
if (fabs((all[ibody][2]-inertia[ibody][2])/inertia[ibody][2]) >
TOLERANCE) error->all("Fix rigid: Bad principal moments");
}
norm = (inertia[ibody][0] + inertia[ibody][1] + inertia[ibody][2]) / 3.0;
if (fabs(all[ibody][3]/norm) > TOLERANCE ||
fabs(all[ibody][4]/norm) > TOLERANCE ||
fabs(all[ibody][5]/norm) > TOLERANCE)
error->all("Fix rigid: Bad principal moments");
}
// temperature scale factor
double ndof = 0.0;
for (ibody = 0; ibody < nbody; ibody++) {
ndof += fflag[ibody][0] + fflag[ibody][1] + fflag[ibody][2];
ndof += tflag[ibody][0] + tflag[ibody][1] + tflag[ibody][2];
}
tfactor = force->mvv2e / (ndof * force->boltz);
}
/* ---------------------------------------------------------------------- */
void FixRigid::setup(int vflag)
{
int i,n,ibody;
double massone,radone;
// vcm = velocity of center-of-mass of each rigid body
// fcm = force on center-of-mass of each rigid body
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int nlocal = atom->nlocal;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
sum[ibody][0] += v[i][0] * massone;
sum[ibody][1] += v[i][1] * massone;
sum[ibody][2] += v[i][2] * massone;
sum[ibody][3] += f[i][0];
sum[ibody][4] += f[i][1];
sum[ibody][5] += f[i][2];
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
vcm[ibody][0] = all[ibody][0]/masstotal[ibody];
vcm[ibody][1] = all[ibody][1]/masstotal[ibody];
vcm[ibody][2] = all[ibody][2]/masstotal[ibody];
fcm[ibody][0] = all[ibody][3];
fcm[ibody][1] = all[ibody][4];
fcm[ibody][2] = all[ibody][5];
}
// angmom = angular momentum of each rigid body
// torque = torque on each rigid body
int *image = atom->image;
double **x = atom->x;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
double xy = domain->xy;
double xz = domain->xz;
double yz = domain->yz;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
int xbox,ybox,zbox;
double xunwrap,yunwrap,zunwrap,dx,dy,dz;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (triclinic == 0) {
xunwrap = x[i][0] + xbox*xprd;
yunwrap = x[i][1] + ybox*yprd;
zunwrap = x[i][2] + zbox*zprd;
} else {
xunwrap = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
yunwrap = x[i][1] + ybox*yprd + zbox*yz;
zunwrap = x[i][2] + zbox*zprd;
}
dx = xunwrap - xcm[ibody][0];
dy = yunwrap - xcm[ibody][1];
dz = zunwrap - xcm[ibody][2];
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
sum[ibody][0] += dy * massone*v[i][2] - dz * massone*v[i][1];
sum[ibody][1] += dz * massone*v[i][0] - dx * massone*v[i][2];
sum[ibody][2] += dx * massone*v[i][1] - dy * massone*v[i][0];
sum[ibody][3] += dy * f[i][2] - dz * f[i][1];
sum[ibody][4] += dz * f[i][0] - dx * f[i][2];
sum[ibody][5] += dx * f[i][1] - dy * f[i][0];
}
// extended particles add their rotation/torque to angmom/torque of body
if (extended) {
double **omega_one = atom->omega;
double **angmom_one = atom->angmom;
double **torque_one = atom->torque;
double *radius = atom->radius;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (eflags[i] & OMEGA) {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
radone = radius[i];
sum[ibody][0] += 0.4 * massone * radone*radone * omega_one[i][0];
sum[ibody][1] += 0.4 * massone * radone*radone * omega_one[i][1];
sum[ibody][2] += 0.4 * massone * radone*radone * omega_one[i][2];
}
if (eflags[i] & ANGMOM) {
sum[ibody][0] += angmom_one[i][0];
sum[ibody][1] += angmom_one[i][1];
sum[ibody][2] += angmom_one[i][2];
}
if (eflags[i] & TORQUE) {
sum[ibody][3] += torque_one[i][0];
sum[ibody][4] += torque_one[i][1];
sum[ibody][5] += torque_one[i][2];
}
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
for (ibody = 0; ibody < nbody; ibody++) {
angmom[ibody][0] = all[ibody][0];
angmom[ibody][1] = all[ibody][1];
angmom[ibody][2] = all[ibody][2];
torque[ibody][0] = all[ibody][3];
torque[ibody][1] = all[ibody][4];
torque[ibody][2] = all[ibody][5];
}
// zero langextra in case Langevin thermostat not used
// no point to calling post_force() here since langextra
// is only added to fcm/torque in final_integrate()
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) langextra[ibody][i] = 0.0;
// virial setup before call to set_v
if (vflag) v_setup(vflag);
else evflag = 0;
// set velocities from angmom & omega
for (ibody = 0; ibody < nbody; ibody++)
MathExtra::angmom_to_omega(angmom[ibody],ex_space[ibody],ey_space[ibody],
ez_space[ibody],inertia[ibody],omega[ibody]);
set_v();
// guesstimate virial as 2x the set_v contribution
if (vflag_global)
for (n = 0; n < 6; n++) virial[n] *= 2.0;
if (vflag_atom) {
for (i = 0; i < nlocal; i++)
for (n = 0; n < 6; n++)
vatom[i][n] *= 2.0;
}
}
/* ---------------------------------------------------------------------- */
void FixRigid::initial_integrate(int vflag)
{
double dtfm;
for (int ibody = 0; ibody < nbody; ibody++) {
// update vcm by 1/2 step
dtfm = dtf / masstotal[ibody];
vcm[ibody][0] += dtfm * fcm[ibody][0] * fflag[ibody][0];
vcm[ibody][1] += dtfm * fcm[ibody][1] * fflag[ibody][1];
vcm[ibody][2] += dtfm * fcm[ibody][2] * fflag[ibody][2];
// update xcm by full step
xcm[ibody][0] += dtv * vcm[ibody][0];
xcm[ibody][1] += dtv * vcm[ibody][1];
xcm[ibody][2] += dtv * vcm[ibody][2];
// update angular momentum by 1/2 step
angmom[ibody][0] += dtf * torque[ibody][0] * tflag[ibody][0];
angmom[ibody][1] += dtf * torque[ibody][1] * tflag[ibody][1];
angmom[ibody][2] += dtf * torque[ibody][2] * tflag[ibody][2];
// compute omega at 1/2 step from angmom at 1/2 step and current q
// update quaternion a full step via Richardson iteration
// returns new normalized quaternion, also updated omega at 1/2 step
// update ex,ey,ez to reflect new quaternion
MathExtra::angmom_to_omega(angmom[ibody],ex_space[ibody],ey_space[ibody],
ez_space[ibody],inertia[ibody],omega[ibody]);
MathExtra::richardson(quat[ibody],angmom[ibody],omega[ibody],
inertia[ibody],dtq);
MathExtra::q_to_exyz(quat[ibody],
ex_space[ibody],ey_space[ibody],ez_space[ibody]);
}
// virial setup before call to set_xv
if (vflag) v_setup(vflag);
else evflag = 0;
// set coords/orient and velocity/rotation of atoms in rigid bodies
// from quarternion and omega
set_xv();
}
/* ----------------------------------------------------------------------
apply Langevin thermostat to all 6 DOF of rigid bodies
computed by proc 0, broadcast to other procs
unlike fix langevin, this stores extra force in extra arrays,
which are added in when final_integrate() calculates a new fcm/torque
------------------------------------------------------------------------- */
void FixRigid::post_force(int vflag)
{
if (me == 0) {
double gamma1,gamma2;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
double t_target = t_start + delta * (t_stop-t_start);
double tsqrt = sqrt(t_target);
double boltz = force->boltz;
double dt = update->dt;
double mvv2e = force->mvv2e;
double ftm2v = force->ftm2v;
for (int i = 0; i < nbody; i++) {
gamma1 = -masstotal[i] / t_period / ftm2v;
gamma2 = sqrt(masstotal[i]) * tsqrt *
sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
langextra[i][0] = gamma1*vcm[i][0] + gamma2*(random->uniform()-0.5);
langextra[i][1] = gamma1*vcm[i][1] + gamma2*(random->uniform()-0.5);
langextra[i][2] = gamma1*vcm[i][2] + gamma2*(random->uniform()-0.5);
gamma1 = -1.0 / t_period / ftm2v;
gamma2 = tsqrt * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;
langextra[i][3] = inertia[i][0]*gamma1*omega[i][0] +
sqrt(inertia[i][0])*gamma2*(random->uniform()-0.5);
langextra[i][4] = inertia[i][1]*gamma1*omega[i][1] +
sqrt(inertia[i][1])*gamma2*(random->uniform()-0.5);
langextra[i][5] = inertia[i][2]*gamma1*omega[i][2] +
sqrt(inertia[i][2])*gamma2*(random->uniform()-0.5);
}
}
MPI_Bcast(&langextra[0][0],6*nbody,MPI_DOUBLE,0,world);
}
/* ---------------------------------------------------------------------- */
void FixRigid::final_integrate()
{
int i,ibody;
double dtfm,xy,xz,yz;
// sum over atoms to get force and torque on rigid body
int *image = atom->image;
double **x = atom->x;
double **f = atom->f;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
if (triclinic) {
xy = domain->xy;
xz = domain->xz;
yz = domain->yz;
}
int xbox,ybox,zbox;
double xunwrap,yunwrap,zunwrap,dx,dy,dz;
for (ibody = 0; ibody < nbody; ibody++)
for (i = 0; i < 6; i++) sum[ibody][i] = 0.0;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
sum[ibody][0] += f[i][0];
sum[ibody][1] += f[i][1];
sum[ibody][2] += f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (triclinic == 0) {
xunwrap = x[i][0] + xbox*xprd;
yunwrap = x[i][1] + ybox*yprd;
zunwrap = x[i][2] + zbox*zprd;
} else {
xunwrap = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
yunwrap = x[i][1] + ybox*yprd + zbox*yz;
zunwrap = x[i][2] + zbox*zprd;
}
dx = xunwrap - xcm[ibody][0];
dy = yunwrap - xcm[ibody][1];
dz = zunwrap - xcm[ibody][2];
sum[ibody][3] += dy*f[i][2] - dz*f[i][1];
sum[ibody][4] += dz*f[i][0] - dx*f[i][2];
sum[ibody][5] += dx*f[i][1] - dy*f[i][0];
}
// extended particles add their torque to torque of body
if (extended) {
double **torque_one = atom->torque;
for (i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (eflags[i] & TORQUE) {
sum[ibody][3] += torque_one[i][0];
sum[ibody][4] += torque_one[i][1];
sum[ibody][5] += torque_one[i][2];
}
}
}
MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
// update vcm and angmom
// include Langevin thermostat forces
// fflag,tflag = 0 for some dimensions in 2d
for (ibody = 0; ibody < nbody; ibody++) {
fcm[ibody][0] = all[ibody][0] + langextra[ibody][0];
fcm[ibody][1] = all[ibody][1] + langextra[ibody][1];
fcm[ibody][2] = all[ibody][2] + langextra[ibody][2];
torque[ibody][0] = all[ibody][3] + langextra[ibody][3];
torque[ibody][1] = all[ibody][4] + langextra[ibody][4];
torque[ibody][2] = all[ibody][5] + langextra[ibody][5];
// update vcm by 1/2 step
dtfm = dtf / masstotal[ibody];
vcm[ibody][0] += dtfm * fcm[ibody][0] * fflag[ibody][0];
vcm[ibody][1] += dtfm * fcm[ibody][1] * fflag[ibody][1];
vcm[ibody][2] += dtfm * fcm[ibody][2] * fflag[ibody][2];
// update angular momentum by 1/2 step
angmom[ibody][0] += dtf * torque[ibody][0] * tflag[ibody][0];
angmom[ibody][1] += dtf * torque[ibody][1] * tflag[ibody][1];
angmom[ibody][2] += dtf * torque[ibody][2] * tflag[ibody][2];
MathExtra::angmom_to_omega(angmom[ibody],ex_space[ibody],ey_space[ibody],
ez_space[ibody],inertia[ibody],omega[ibody]);
}
// set velocity/rotation of atoms in rigid bodies
// virial is already setup from initial_integrate
set_v();
}
/* ----------------------------------------------------------------------
apply evolution operators to quat, quat momentum
see Miller paper cited in fix rigid/nvt and fix rigid/npt
------------------------------------------------------------------------- */
void FixRigid::no_squish_rotate(int k, double *p, double *q,
double *inertia, double dt)
{
double phi,c_phi,s_phi,kp[4],kq[4];
// apply permuation operator on p and q, get kp and kq
if (k == 1) {
kq[0] = -q[1]; kp[0] = -p[1];
kq[1] = q[0]; kp[1] = p[0];
kq[2] = q[3]; kp[2] = p[3];
kq[3] = -q[2]; kp[3] = -p[2];
} else if (k == 2) {
kq[0] = -q[2]; kp[0] = -p[2];
kq[1] = -q[3]; kp[1] = -p[3];
kq[2] = q[0]; kp[2] = p[0];
kq[3] = q[1]; kp[3] = p[1];
} else if (k == 3) {
kq[0] = -q[3]; kp[0] = -p[3];
kq[1] = q[2]; kp[1] = p[2];
kq[2] = -q[1]; kp[2] = -p[1];
kq[3] = q[0]; kp[3] = p[0];
}
// obtain phi, cosines and sines
phi = p[0]*kq[0] + p[1]*kq[1] + p[2]*kq[2] + p[3]*kq[3];
if (fabs(inertia[k-1]) < 1e-6) phi *= 0.0;
else phi /= 4.0 * inertia[k-1];
c_phi = cos(dt * phi);
s_phi = sin(dt * phi);
// advance p and q
p[0] = c_phi*p[0] + s_phi*kp[0];
p[1] = c_phi*p[1] + s_phi*kp[1];
p[2] = c_phi*p[2] + s_phi*kp[2];
p[3] = c_phi*p[3] + s_phi*kp[3];
q[0] = c_phi*q[0] + s_phi*kq[0];
q[1] = c_phi*q[1] + s_phi*kq[1];
q[2] = c_phi*q[2] + s_phi*kq[2];
q[3] = c_phi*q[3] + s_phi*kq[3];
}
/* ---------------------------------------------------------------------- */
void FixRigid::initial_integrate_respa(int vflag, int ilevel, int iloop)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
dtq = 0.5 * step_respa[ilevel];
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixRigid::final_integrate_respa(int ilevel, int iloop)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ----------------------------------------------------------------------
remap xcm of each rigid body back into periodic simulation box
done during pre_neighbor so will be after call to pbc()
and after fix_deform::pre_exchange() may have flipped box
use domain->remap() in case xcm is far away from box
due to 1st definition of rigid body or due to box flip
if don't do this, then atoms of a body which drifts far away
from a triclinic box will be remapped back into box
with huge displacements when the box tilt changes via set_x()
adjust image flag of body and image flags of all atoms in body
------------------------------------------------------------------------- */
void FixRigid::pre_neighbor()
{
int original,oldimage,newimage;
for (int ibody = 0; ibody < nbody; ibody++) {
original = imagebody[ibody];
domain->remap(xcm[ibody],imagebody[ibody]);
if (original == imagebody[ibody]) remapflag[ibody][3] = 0;
else {
oldimage = original & 1023;
newimage = imagebody[ibody] & 1023;
remapflag[ibody][0] = newimage - oldimage;
oldimage = (original >> 10) & 1023;
newimage = (imagebody[ibody] >> 10) & 1023;
remapflag[ibody][1] = newimage - oldimage;
oldimage = original >> 20;
newimage = imagebody[ibody] >> 20;
remapflag[ibody][2] = newimage - oldimage;
remapflag[ibody][3] = 1;
}
}
// adjust image flags of any atom in a rigid body whose xcm was remapped
int *image = atom->image;
int nlocal = atom->nlocal;
int ibody,idim,otherdims;
for (int i = 0; i < nlocal; i++) {
if (body[i] == -1) continue;
if (remapflag[body[i]][3] == 0) continue;
ibody = body[i];
if (remapflag[ibody][0]) {
idim = image[i] & 1023;
otherdims = image[i] ^ idim;
idim -= remapflag[ibody][0];
idim &= 1023;
image[i] = otherdims | idim;
}
if (remapflag[ibody][1]) {
idim = (image[i] >> 10) & 1023;
otherdims = image[i] ^ (idim << 10);
idim -= remapflag[ibody][1];
idim &= 1023;
image[i] = otherdims | (idim << 10);
}
if (remapflag[ibody][2]) {
idim = image[i] >> 20;
otherdims = image[i] ^ (idim << 20);
idim -= remapflag[ibody][2];
idim &= 1023;
image[i] = otherdims | (idim << 20);
}
}
}
/* ----------------------------------------------------------------------
count # of degrees-of-freedom removed by fix_rigid for atoms in igroup
------------------------------------------------------------------------- */
int FixRigid::dof(int igroup)
{
int groupbit = group->bitmask[igroup];
// nall = # of point particles in each rigid body
// mall = # of finite-size particles in each rigid body
// particles must also be in temperature group
int *mask = atom->mask;
int nlocal = atom->nlocal;
int *ncount = new int[nbody];
int *mcount = new int[nbody];
for (int ibody = 0; ibody < nbody; ibody++)
ncount[ibody] = mcount[ibody] = 0;
for (int i = 0; i < nlocal; i++)
if (body[i] >= 0 && mask[i] & groupbit) {
if (extended && eflags[i]) mcount[body[i]]++;
else ncount[body[i]]++;
}
int *nall = new int[nbody];
int *mall = new int[nbody];
MPI_Allreduce(ncount,nall,nbody,MPI_INT,MPI_SUM,world);
MPI_Allreduce(mcount,mall,nbody,MPI_INT,MPI_SUM,world);
// warn if nall+mall != nrigid for any body included in temperature group
int flag = 0;
for (int ibody = 0; ibody < nbody; ibody++) {
if (nall[ibody]+mall[ibody] > 0 &&
nall[ibody]+mall[ibody] != nrigid[ibody]) flag = 1;
}
if (flag && me == 0)
error->warning("Computing temperature of portions of rigid bodies");
// remove appropriate DOFs for each rigid body wholly in temperature group
// N = # of point particles in body
// M = # of finite-size particles in body
// 3d body has 3N + 6M dof to start with
// 2d body has 2N + 3M dof to start with
// 3d point-particle body with all non-zero I should have 6 dof, remove 3N-6
// 3d point-particle body (linear) with a 0 I should have 5 dof, remove 3N-5
// 2d point-particle body should have 3 dof, remove 2N-3
// 3d body with any finite-size M should have 6 dof, remove (3N+6M) - 6
// 2d body with any finite-size M should have 3 dof, remove (2N+3M) - 3
int n = 0;
if (domain->dimension == 3) {
for (int ibody = 0; ibody < nbody; ibody++)
if (nall[ibody]+mall[ibody] == nrigid[ibody]) {
n += 3*nall[ibody] + 6*mall[ibody] - 6;
if (inertia[ibody][0] == 0.0 || inertia[ibody][1] == 0.0 ||
inertia[ibody][2] == 0.0) n++;
}
} else if (domain->dimension == 2) {
for (int ibody = 0; ibody < nbody; ibody++)
if (nall[ibody]+mall[ibody] == nrigid[ibody])
n += 2*nall[ibody] + 3*mall[ibody] - 3;
}
delete [] ncount;
delete [] mcount;
delete [] nall;
delete [] mall;
return n;
}
/* ----------------------------------------------------------------------
adjust xcm of each rigid body due to box deformation
called by various fixes that change box size/shape
flag = 0/1 means map from box to lamda coords or vice versa
------------------------------------------------------------------------- */
void FixRigid::deform(int flag)
{
if (flag == 0)
for (int ibody = 0; ibody < nbody; ibody++)
domain->x2lamda(xcm[ibody],xcm[ibody]);
else
for (int ibody = 0; ibody < nbody; ibody++)
domain->lamda2x(xcm[ibody],xcm[ibody]);
}
/* ----------------------------------------------------------------------
set space-frame coords and velocity of each atom in each rigid body
set orientation and rotation of extended particles
x = Q displace + Xcm, mapped back to periodic box
v = Vcm + (W cross (x - Xcm))
------------------------------------------------------------------------- */
void FixRigid::set_xv()
{
int ibody,itype;
int xbox,ybox,zbox;
double x0,x1,x2,v0,v1,v2,fc0,fc1,fc2,massone;
double xy,xz,yz;
double ione[3],exone[3],eyone[3],ezone[3],vr[6],p[3][3];
int *image = atom->image;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
if (triclinic) {
xy = domain->xy;
xz = domain->xz;
yz = domain->yz;
}
// set x and v of each atom
for (int i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
// save old positions and velocities for virial
if (evflag) {
if (triclinic == 0) {
x0 = x[i][0] + xbox*xprd;
x1 = x[i][1] + ybox*yprd;
x2 = x[i][2] + zbox*zprd;
} else {
x0 = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
x1 = x[i][1] + ybox*yprd + zbox*yz;
x2 = x[i][2] + zbox*zprd;
}
v0 = v[i][0];
v1 = v[i][1];
v2 = v[i][2];
}
// x = displacement from center-of-mass, based on body orientation
// v = vcm + omega around center-of-mass
MathExtra::matvec(ex_space[ibody],ey_space[ibody],
ez_space[ibody],displace[i],x[i]);
v[i][0] = omega[ibody][1]*x[i][2] - omega[ibody][2]*x[i][1] +
vcm[ibody][0];
v[i][1] = omega[ibody][2]*x[i][0] - omega[ibody][0]*x[i][2] +
vcm[ibody][1];
v[i][2] = omega[ibody][0]*x[i][1] - omega[ibody][1]*x[i][0] +
vcm[ibody][2];
// add center of mass to displacement
// map back into periodic box via xbox,ybox,zbox
// for triclinic, add in box tilt factors as well
if (triclinic == 0) {
x[i][0] += xcm[ibody][0] - xbox*xprd;
x[i][1] += xcm[ibody][1] - ybox*yprd;
x[i][2] += xcm[ibody][2] - zbox*zprd;
} else {
x[i][0] += xcm[ibody][0] - xbox*xprd - ybox*xy - zbox*xz;
x[i][1] += xcm[ibody][1] - ybox*yprd - zbox*yz;
x[i][2] += xcm[ibody][2] - zbox*zprd;
}
// virial = unwrapped coords dotted into body constraint force
// body constraint force = implied force due to v change minus f external
// assume f does not include forces internal to body
// 1/2 factor b/c final_integrate contributes other half
// assume per-atom contribution is due to constraint force on that atom
if (evflag) {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
fc0 = massone*(v[i][0] - v0)/dtf - f[i][0];
fc1 = massone*(v[i][1] - v1)/dtf - f[i][1];
fc2 = massone*(v[i][2] - v2)/dtf - f[i][2];
vr[0] = 0.5*x0*fc0;
vr[1] = 0.5*x1*fc1;
vr[2] = 0.5*x2*fc2;
vr[3] = 0.5*x0*fc1;
vr[4] = 0.5*x0*fc2;
vr[5] = 0.5*x1*fc2;
v_tally(1,&i,1.0,vr);
}
}
// set orientation, omega, angmom of each extended particle
if (extended) {
double *shape,*quatatom;
AtomVecEllipsoid::Bonus *ebonus;
if (avec_ellipsoid) ebonus = avec_ellipsoid->bonus;
double **omega_one = atom->omega;
double **angmom_one = atom->angmom;
double **mu = atom->mu;
int *ellipsoid = atom->ellipsoid;
for (int i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (eflags[i] & ORIENT_DIPOLE) {
MathExtra::quat_to_mat(quat[ibody],p);
MathExtra::matvec(p,dorient[i],mu[i]);
MathExtra::snormalize3(mu[i][3],mu[i],mu[i]);
}
if (eflags[i] & ORIENT_QUAT) {
quatatom = ebonus[ellipsoid[i]].quat;
MathExtra::quatquat(quat[ibody],qorient[i],quatatom);
MathExtra::qnormalize(quatatom);
}
if (eflags[i] & OMEGA) {
omega_one[i][0] = omega[ibody][0];
omega_one[i][1] = omega[ibody][1];
omega_one[i][2] = omega[ibody][2];
}
if (eflags[i] & ANGMOM) {
shape = ebonus[ellipsoid[i]].shape;
quatatom = ebonus[ellipsoid[i]].quat;
ione[0] = 0.2*rmass[i] * (shape[1]*shape[1] + shape[2]*shape[2]);
ione[1] = 0.2*rmass[i] * (shape[0]*shape[0] + shape[2]*shape[2]);
ione[2] = 0.2*rmass[i] * (shape[0]*shape[0] + shape[1]*shape[1]);
MathExtra::q_to_exyz(quatatom,exone,eyone,ezone);
MathExtra::omega_to_angmom(omega[ibody],exone,eyone,ezone,ione,
angmom_one[i]);
}
}
}
}
/* ----------------------------------------------------------------------
set space-frame velocity of each atom in a rigid body
set omega and angmom of extended particles
v = Vcm + (W cross (x - Xcm))
------------------------------------------------------------------------- */
void FixRigid::set_v()
{
int ibody,itype;
int xbox,ybox,zbox;
double dx,dy,dz;
double x0,x1,x2,v0,v1,v2,fc0,fc1,fc2,massone;
double xy,xz,yz;
double ione[3],exone[3],eyone[3],ezone[3],delta[3],vr[6];
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *image = atom->image;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
if (triclinic) {
xy = domain->xy;
xz = domain->xz;
yz = domain->yz;
}
// set v of each atom
for (int i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
MathExtra::matvec(ex_space[ibody],ey_space[ibody],
ez_space[ibody],displace[i],delta);
// save old velocities for virial
if (evflag) {
v0 = v[i][0];
v1 = v[i][1];
v2 = v[i][2];
}
v[i][0] = omega[ibody][1]*delta[2] - omega[ibody][2]*delta[1] +
vcm[ibody][0];
v[i][1] = omega[ibody][2]*delta[0] - omega[ibody][0]*delta[2] +
vcm[ibody][1];
v[i][2] = omega[ibody][0]*delta[1] - omega[ibody][1]*delta[0] +
vcm[ibody][2];
// virial = unwrapped coords dotted into body constraint force
// body constraint force = implied force due to v change minus f external
// assume f does not include forces internal to body
// 1/2 factor b/c initial_integrate contributes other half
// assume per-atom contribution is due to constraint force on that atom
if (evflag) {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
fc0 = massone*(v[i][0] - v0)/dtf - f[i][0];
fc1 = massone*(v[i][1] - v1)/dtf - f[i][1];
fc2 = massone*(v[i][2] - v2)/dtf - f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
if (triclinic == 0) {
x0 = x[i][0] + xbox*xprd;
x1 = x[i][1] + ybox*yprd;
x2 = x[i][2] + zbox*zprd;
} else {
x0 = x[i][0] + xbox*xprd + ybox*xy + zbox*xz;
x1 = x[i][1] + ybox*yprd + zbox*yz;
x2 = x[i][2] + zbox*zprd;
}
vr[0] = 0.5*x0*fc0;
vr[1] = 0.5*x1*fc1;
vr[2] = 0.5*x2*fc2;
vr[3] = 0.5*x0*fc1;
vr[4] = 0.5*x0*fc2;
vr[5] = 0.5*x1*fc2;
v_tally(1,&i,1.0,vr);
}
}
// set omega, angmom of each extended particle
if (extended) {
double *shape,*quatatom;
AtomVecEllipsoid::Bonus *ebonus;
if (avec_ellipsoid) ebonus = avec_ellipsoid->bonus;
double **omega_one = atom->omega;
double **angmom_one = atom->angmom;
int *ellipsoid = atom->ellipsoid;
for (int i = 0; i < nlocal; i++) {
if (body[i] < 0) continue;
ibody = body[i];
if (eflags[i] & OMEGA) {
omega_one[i][0] = omega[ibody][0];
omega_one[i][1] = omega[ibody][1];
omega_one[i][2] = omega[ibody][2];
}
if (eflags[i] & ANGMOM) {
shape = ebonus[ellipsoid[i]].shape;
quatatom = ebonus[ellipsoid[i]].quat;
ione[0] = 0.2*rmass[i] * (shape[1]*shape[1] + shape[2]*shape[2]);
ione[1] = 0.2*rmass[i] * (shape[0]*shape[0] + shape[2]*shape[2]);
ione[2] = 0.2*rmass[i] * (shape[0]*shape[0] + shape[1]*shape[1]);
MathExtra::q_to_exyz(quatatom,exone,eyone,ezone);
MathExtra::omega_to_angmom(omega[ibody],exone,eyone,ezone,ione,
angmom_one[i]);
}
}
}
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixRigid::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += nmax*3 * sizeof(double);
bytes += maxvatom*6 * sizeof(double);
if (extended) {
bytes += nmax * sizeof(int);
if (dorientflag) bytes = nmax*3 * sizeof(double);
if (qorientflag) bytes = nmax*4 * sizeof(double);
}
return bytes;
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixRigid::grow_arrays(int nmax)
{
memory->grow(body,nmax,"rigid:body");
memory->grow(displace,nmax,3,"rigid:displace");
if (extended) {
memory->grow(eflags,nmax,"rigid:eflags");
if (dorientflag) memory->grow(dorient,nmax,3,"rigid:dorient");
if (qorientflag) memory->grow(qorient,nmax,4,"rigid:qorient");
}
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixRigid::copy_arrays(int i, int j)
{
body[j] = body[i];
displace[j][0] = displace[i][0];
displace[j][1] = displace[i][1];
displace[j][2] = displace[i][2];
if (extended) {
eflags[j] = eflags[i];
if (dorientflag) {
dorient[j][0] = dorient[i][0];
dorient[j][1] = dorient[i][1];
dorient[j][2] = dorient[i][2];
}
if (qorientflag) {
qorient[j][0] = qorient[i][0];
qorient[j][1] = qorient[i][1];
qorient[j][2] = qorient[i][2];
qorient[j][3] = qorient[i][3];
}
}
}
/* ----------------------------------------------------------------------
initialize one atom's array values, called when atom is created
------------------------------------------------------------------------- */
void FixRigid::set_arrays(int i)
{
body[i] = -1;
displace[i][0] = 0.0;
displace[i][1] = 0.0;
displace[i][2] = 0.0;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixRigid::pack_exchange(int i, double *buf)
{
buf[0] = body[i];
buf[1] = displace[i][0];
buf[2] = displace[i][1];
buf[3] = displace[i][2];
if (!extended) return 4;
int m = 4;
buf[m++] = eflags[i];
if (dorientflag) {
buf[m++] = dorient[i][0];
buf[m++] = dorient[i][1];
buf[m++] = dorient[i][2];
}
if (qorientflag) {
buf[m++] = qorient[i][0];
buf[m++] = qorient[i][1];
buf[m++] = qorient[i][2];
buf[m++] = qorient[i][3];
}
return m;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixRigid::unpack_exchange(int nlocal, double *buf)
{
body[nlocal] = static_cast<int> (buf[0]);
displace[nlocal][0] = buf[1];
displace[nlocal][1] = buf[2];
displace[nlocal][2] = buf[3];
if (!extended) return 4;
int m = 4;
eflags[nlocal] = static_cast<int> (buf[m++]);
if (dorientflag) {
dorient[nlocal][0] = buf[m++];
dorient[nlocal][0] = buf[m++];
dorient[nlocal][0] = buf[m++];
}
if (qorientflag) {
qorient[nlocal][0] = buf[m++];
qorient[nlocal][0] = buf[m++];
qorient[nlocal][0] = buf[m++];
qorient[nlocal][0] = buf[m++];
}
return m;
}
/* ---------------------------------------------------------------------- */
void FixRigid::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
dtq = 0.5 * update->dt;
}
/* ----------------------------------------------------------------------
return temperature of collection of rigid bodies
non-active DOF are removed by fflag/tflag and in tfactor
------------------------------------------------------------------------- */
double FixRigid::compute_scalar()
{
double wbody[3],rot[3][3];
double t = 0.0;
for (int i = 0; i < nbody; i++) {
t += masstotal[i] * (fflag[i][0]*vcm[i][0]*vcm[i][0] +
fflag[i][1]*vcm[i][1]*vcm[i][1] + \
fflag[i][2]*vcm[i][2]*vcm[i][2]);
// wbody = angular velocity in body frame
MathExtra::quat_to_mat(quat[i],rot);
MathExtra::transpose_matvec(rot,angmom[i],wbody);
if (inertia[i][0] == 0.0) wbody[0] = 0.0;
else wbody[0] /= inertia[i][0];
if (inertia[i][1] == 0.0) wbody[1] = 0.0;
else wbody[1] /= inertia[i][1];
if (inertia[i][2] == 0.0) wbody[2] = 0.0;
else wbody[2] /= inertia[i][2];
t += tflag[i][0]*inertia[i][0]*wbody[0]*wbody[0] +
tflag[i][1]*inertia[i][1]*wbody[1]*wbody[1] +
tflag[i][2]*inertia[i][2]*wbody[2]*wbody[2];
}
t *= tfactor;
return t;
}
/* ----------------------------------------------------------------------
return attributes of a rigid body
15 values per body
xcm = 0,1,2; vcm = 3,4,5; fcm = 6,7,8; torque = 9,10,11; image = 12,13,14
------------------------------------------------------------------------- */
double FixRigid::compute_array(int i, int j)
{
if (j < 3) return xcm[i][j];
if (j < 6) return vcm[i][j-3];
if (j < 9) return fcm[i][j-6];
if (j < 12) return torque[i][j-9];
if (j == 12) return (imagebody[i] & 1023) - 512;
if (j == 13) (imagebody[i] >> 10 & 1023) - 512;
return (imagebody[i] >> 20) - 512;
}
diff --git a/src/fix_setforce.cpp b/src/fix_setforce.cpp
index 18ab22ae7..897aad56a 100644
--- a/src/fix_setforce.cpp
+++ b/src/fix_setforce.cpp
@@ -1,330 +1,330 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "stdlib.h"
#include "fix_setforce.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "domain.h"
#include "region.h"
#include "respa.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{NONE,CONSTANT,EQUAL,ATOM};
/* ---------------------------------------------------------------------- */
FixSetForce::FixSetForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 6) error->all("Illegal fix setforce command");
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extvector = 1;
xstr = ystr = zstr = NULL;
if (strstr(arg[3],"v_") == arg[3]) {
int n = strlen(&arg[3][2]) + 1;
xstr = new char[n];
strcpy(xstr,&arg[3][2]);
} else if (strcmp(arg[3],"NULL") == 0) {
xstyle = NONE;
} else {
xvalue = atof(arg[3]);
xstyle = CONSTANT;
}
if (strstr(arg[4],"v_") == arg[4]) {
int n = strlen(&arg[4][2]) + 1;
ystr = new char[n];
strcpy(ystr,&arg[4][2]);
} else if (strcmp(arg[4],"NULL") == 0) {
ystyle = NONE;
} else {
yvalue = atof(arg[4]);
ystyle = CONSTANT;
}
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
zstr = new char[n];
strcpy(zstr,&arg[5][2]);
} else if (strcmp(arg[5],"NULL") == 0) {
zstyle = NONE;
} else {
zvalue = atof(arg[5]);
zstyle = CONSTANT;
}
// optional args
iregion = -1;
idregion = NULL;
int iarg = 6;
while (iarg < narg) {
if (strcmp(arg[iarg],"region") == 0) {
if (iarg+2 > narg) error->all("Illegal fix setforce command");
iregion = domain->find_region(arg[iarg+1]);
if (iregion == -1)
error->all("Region ID for fix setforce does not exist");
int n = strlen(arg[iarg+1]) + 1;
idregion = new char[n];
strcpy(idregion,arg[iarg+1]);
iarg += 2;
} else error->all("Illegal fix setforce command");
}
force_flag = 0;
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
maxatom = 0;
sforce = NULL;
}
/* ---------------------------------------------------------------------- */
FixSetForce::~FixSetForce()
{
delete [] xstr;
delete [] ystr;
delete [] zstr;
delete [] idregion;
memory->destroy(sforce);
}
/* ---------------------------------------------------------------------- */
int FixSetForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSetForce::init()
{
// check variables
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) error->all("Variable name for fix setforce does not exist");
if (input->variable->equalstyle(xvar)) xstyle = EQUAL;
else if (input->variable->atomstyle(xvar)) xstyle = ATOM;
else error->all("Variable for fix setforce is invalid style");
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) error->all("Variable name for fix setforce does not exist");
if (input->variable->equalstyle(yvar)) ystyle = EQUAL;
else if (input->variable->atomstyle(yvar)) ystyle = ATOM;
else error->all("Variable for fix setforce is invalid style");
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) error->all("Variable name for fix setforce does not exist");
if (input->variable->equalstyle(zvar)) zstyle = EQUAL;
else if (input->variable->atomstyle(zvar)) zstyle = ATOM;
else error->all("Variable for fix setforce is invalid style");
}
// set index and check validity of region
if (iregion >= 0) {
iregion = domain->find_region(idregion);
if (iregion == -1) error->all("Region ID for fix setforce does not exist");
}
if (xstyle == ATOM || ystyle == ATOM || zstyle == ATOM)
varflag = ATOM;
else if (xstyle == EQUAL || ystyle == EQUAL || zstyle == EQUAL)
varflag = EQUAL;
else varflag = CONSTANT;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
// cannot use non-zero forces for a minimization since no energy is integrated
// use fix addforce instead
int flag = 0;
if (update->whichflag == 2) {
if (xstyle == EQUAL || xstyle == ATOM) flag = 1;
if (ystyle == EQUAL || ystyle == ATOM) flag = 1;
if (zstyle == EQUAL || zstyle == ATOM) flag = 1;
if (xstyle == CONSTANT && xvalue != 0.0) flag = 1;
if (ystyle == CONSTANT && yvalue != 0.0) flag = 1;
if (zstyle == CONSTANT && zvalue != 0.0) flag = 1;
}
if (flag)
error->all("Cannot use non-zero forces in an energy minimization");
}
/* ---------------------------------------------------------------------- */
void FixSetForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else
for (int ilevel = 0; ilevel < nlevels_respa; ilevel++) {
((Respa *) update->integrate)->copy_flevel_f(ilevel);
post_force_respa(vflag,ilevel,0);
((Respa *) update->integrate)->copy_f_flevel(ilevel);
}
}
/* ---------------------------------------------------------------------- */
void FixSetForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSetForce::post_force(int vflag)
{
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
// reallocate sforce array if necessary
if (varflag == ATOM && nlocal > maxatom) {
maxatom = atom->nmax;
memory->destroy(sforce);
memory->create(sforce,maxatom,3,"setforce:sforce");
}
foriginal[0] = foriginal[1] = foriginal[2] = 0.0;
force_flag = 0;
if (varflag == CONSTANT) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
if (xstyle) f[i][0] = xvalue;
if (ystyle) f[i][1] = yvalue;
if (zstyle) f[i][2] = zvalue;
}
// variable force, wrap with clear/add
} else {
modify->clearstep_compute();
if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar);
else if (xstyle == ATOM && sforce)
input->variable->compute_atom(xvar,igroup,&sforce[0][0],3,0);
if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar);
else if (ystyle == ATOM && sforce)
input->variable->compute_atom(yvar,igroup,&sforce[0][1],3,0);
if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar);
else if (zstyle == ATOM && sforce)
input->variable->compute_atom(zvar,igroup,&sforce[0][2],3,0);
modify->addstep_compute(update->ntimestep + 1);
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (iregion >= 0 &&
!domain->regions[iregion]->match(x[i][0],x[i][1],x[i][2]))
continue;
foriginal[0] += f[i][0];
foriginal[1] += f[i][1];
foriginal[2] += f[i][2];
if (xstyle == ATOM) f[i][0] = sforce[i][0];
else if (xstyle) f[i][0] = xvalue;
if (ystyle == ATOM) f[i][1] = sforce[i][1];
else if (ystyle) f[i][1] = yvalue;
if (zstyle == ATOM) f[i][2] = sforce[i][2];
else if (zstyle) f[i][2] = zvalue;
}
}
}
/* ---------------------------------------------------------------------- */
void FixSetForce::post_force_respa(int vflag, int ilevel, int iloop)
{
// set force to desired value on outermost level, 0.0 on other levels
if (ilevel == nlevels_respa-1) post_force(vflag);
else {
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (xstyle) f[i][0] = 0.0;
if (ystyle) f[i][1] = 0.0;
if (zstyle) f[i][2] = 0.0;
}
}
}
/* ---------------------------------------------------------------------- */
void FixSetForce::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return components of total force on fix group before force was changed
------------------------------------------------------------------------- */
double FixSetForce::compute_vector(int n)
{
// only sum across procs one time
if (force_flag == 0) {
MPI_Allreduce(foriginal,foriginal_all,3,MPI_DOUBLE,MPI_SUM,world);
force_flag = 1;
}
return foriginal_all[n];
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixSetForce::memory_usage()
{
double bytes = 0.0;
if (varflag == ATOM) bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
diff --git a/src/fix_shake.cpp b/src/fix_shake.cpp
index a32448d2c..fca15216f 100644
--- a/src/fix_shake.cpp
+++ b/src/fix_shake.cpp
@@ -1,2428 +1,2428 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "fix_shake.h"
#include "atom.h"
#include "atom_vec.h"
#include "update.h"
#include "respa.h"
#include "modify.h"
#include "domain.h"
#include "force.h"
#include "bond.h"
#include "angle.h"
#include "comm.h"
#include "group.h"
#include "fix_respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define BIG 1.0e20
#define MASSDELTA 0.1
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
PI = 4.0*atan(1.0);
virial_flag = 1;
create_attribute = 1;
// error check
if (atom->molecular == 0)
error->all("Cannot use fix shake with non-molecular system");
// perform initial allocation of atom-based arrays
// register with Atom class
shake_flag = NULL;
shake_atom = shake_type = NULL;
xshake = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
// set comm size needed by this fix
comm_forward = 3;
// parse SHAKE args
if (narg < 8) error->all("Illegal fix shake command");
tolerance = atof(arg[3]);
max_iter = atoi(arg[4]);
output_every = atoi(arg[5]);
// parse SHAKE args for bond and angle types
// will be used by find_clusters
// store args for "b" "a" "t" as flags in (1:n) list for fast access
// store args for "m" in list of length nmass for looping over
// for "m" verify that atom masses have been set
bond_flag = new int[atom->nbondtypes+1];
for (int i = 1; i <= atom->nbondtypes; i++) bond_flag[i] = 0;
angle_flag = new int[atom->nangletypes+1];
for (int i = 1; i <= atom->nangletypes; i++) angle_flag[i] = 0;
type_flag = new int[atom->ntypes+1];
for (int i = 1; i <= atom->ntypes; i++) type_flag[i] = 0;
mass_list = new double[atom->ntypes];
nmass = 0;
char mode = '\0';
int next = 6;
while (next < narg) {
if (strcmp(arg[next],"b") == 0) mode = 'b';
else if (strcmp(arg[next],"a") == 0) mode = 'a';
else if (strcmp(arg[next],"t") == 0) mode = 't';
else if (strcmp(arg[next],"m") == 0) {
mode = 'm';
atom->check_mass();
} else if (mode == 'b') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->nbondtypes)
error->all("Invalid bond type index for fix shake");
bond_flag[i] = 1;
} else if (mode == 'a') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->nangletypes)
error->all("Invalid angle type index for fix shake");
angle_flag[i] = 1;
} else if (mode == 't') {
int i = atoi(arg[next]);
if (i < 1 || i > atom->ntypes)
error->all("Invalid atom type index for fix shake");
type_flag[i] = 1;
} else if (mode == 'm') {
double massone = atof(arg[next]);
if (massone == 0.0) error->all("Invalid atom mass for fix shake");
if (nmass == atom->ntypes) error->all("Too many masses for fix shake");
mass_list[nmass++] = massone;
} else error->all("Illegal fix shake command");
next++;
}
// allocate bond and angle distance arrays, indexed from 1 to n
bond_distance = new double[atom->nbondtypes+1];
angle_distance = new double[atom->nangletypes+1];
// allocate statistics arrays
if (output_every) {
int nb = atom->nbondtypes + 1;
b_count = new int[nb];
b_count_all = new int[nb];
b_ave = new double[nb];
b_ave_all = new double[nb];
b_max = new double[nb];
b_max_all = new double[nb];
b_min = new double[nb];
b_min_all = new double[nb];
int na = atom->nangletypes + 1;
a_count = new int[na];
a_count_all = new int[na];
a_ave = new double[na];
a_ave_all = new double[na];
a_max = new double[na];
a_max_all = new double[na];
a_min = new double[na];
a_min_all = new double[na];
}
// identify all SHAKE clusters
find_clusters();
// initialize list of SHAKE clusters to constrain
maxlist = 0;
list = NULL;
}
/* ---------------------------------------------------------------------- */
FixShake::~FixShake()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
// set bond_type and angle_type back to positive for SHAKE clusters
// must set for all SHAKE bonds and angles stored by each atom
int **bond_type = atom->bond_type;
int **angle_type = atom->angle_type;
int nlocal = atom->nlocal;
int n;
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
else if (shake_flag[i] == 1) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n >= 0) angle_type[i][n] = -angle_type[i][n];
} else if (shake_flag[i] == 2) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 3) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 4) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][3]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
}
}
// delete locally stored arrays
memory->destroy(shake_flag);
memory->destroy(shake_atom);
memory->destroy(shake_type);
memory->destroy(xshake);
delete [] bond_flag;
delete [] angle_flag;
delete [] type_flag;
delete [] mass_list;
delete [] bond_distance;
delete [] angle_distance;
if (output_every) {
delete [] b_count;
delete [] b_count_all;
delete [] b_ave;
delete [] b_ave_all;
delete [] b_max;
delete [] b_max_all;
delete [] b_min;
delete [] b_min_all;
delete [] a_count;
delete [] a_count_all;
delete [] a_ave;
delete [] a_ave_all;
delete [] a_max;
delete [] a_max_all;
delete [] a_min;
delete [] a_min_all;
}
memory->destroy(list);
}
/* ---------------------------------------------------------------------- */
int FixShake::setmask()
{
int mask = 0;
mask |= PRE_NEIGHBOR;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ----------------------------------------------------------------------
set bond and angle distances
this init must happen after force->bond and force->angle inits
------------------------------------------------------------------------- */
void FixShake::init()
{
int i,m,flag,flag_all,type1,type2,bond1_type,bond2_type;
double rsq,angle;
// error if more than one shake fix
int count = 0;
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"shake") == 0) count++;
if (count > 1) error->all("More than one fix shake");
// cannot use with minimization since SHAKE turns off bonds
// that should contribute to potential energy
if (update->whichflag == 2)
error->all("Fix shake cannot be used with minimization");
// error if npt,nph fix comes before shake fix
for (i = 0; i < modify->nfix; i++) {
if (strcmp(modify->fix[i]->style,"npt") == 0) break;
if (strcmp(modify->fix[i]->style,"nph") == 0) break;
}
if (i < modify->nfix) {
for (int j = i; j < modify->nfix; j++)
if (strcmp(modify->fix[j]->style,"shake") == 0)
error->all("Shake fix must come before NPT/NPH fix");
}
// if rRESPA, find associated fix that must exist
// could have changed locations in fix list since created
// set ptrs to rRESPA variables
- if (strcmp(update->integrate_style,"respa") == 0) {
+ if (strstr(update->integrate_style,"respa")) {
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"RESPA") == 0) ifix_respa = i;
nlevels_respa = ((Respa *) update->integrate)->nlevels;
loop_respa = ((Respa *) update->integrate)->loop;
step_respa = ((Respa *) update->integrate)->step;
}
// set equilibrium bond distances
if (force->bond == NULL)
error->all("Bond potential must be defined for SHAKE");
for (i = 1; i <= atom->nbondtypes; i++)
bond_distance[i] = force->bond->equilibrium_distance(i);
// set equilibrium angle distances
int nlocal = atom->nlocal;
for (i = 1; i <= atom->nangletypes; i++) {
if (angle_flag[i] == 0) continue;
if (force->angle == NULL)
error->all("Angle potential must be defined for SHAKE");
// scan all atoms for a SHAKE angle cluster
// extract bond types for the 2 bonds in the cluster
// bond types must be same in all clusters of this angle type,
// else set error flag
flag = 0;
bond1_type = bond2_type = 0;
for (m = 0; m < nlocal; m++) {
if (shake_flag[m] != 1) continue;
if (shake_type[m][2] != i) continue;
type1 = MIN(shake_type[m][0],shake_type[m][1]);
type2 = MAX(shake_type[m][0],shake_type[m][1]);
if (bond1_type > 0) {
if (type1 != bond1_type || type2 != bond2_type) {
flag = 1;
break;
}
}
bond1_type = type1;
bond2_type = type2;
}
// error check for any bond types that are not the same
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_MAX,world);
if (flag_all) error->all("Shake angles have different bond types");
// insure all procs have bond types
MPI_Allreduce(&bond1_type,&flag_all,1,MPI_INT,MPI_MAX,world);
bond1_type = flag_all;
MPI_Allreduce(&bond2_type,&flag_all,1,MPI_INT,MPI_MAX,world);
bond2_type = flag_all;
// if bond types are 0, no SHAKE angles of this type exist
// just skip this angle
if (bond1_type == 0) {
angle_distance[i] = 0.0;
continue;
}
// compute the angle distance as a function of 2 bond distances
angle = force->angle->equilibrium_angle(i);
rsq = 2.0*bond_distance[bond1_type]*bond_distance[bond2_type] *
(1.0-cos(angle));
angle_distance[i] = sqrt(rsq);
}
}
/* ----------------------------------------------------------------------
SHAKE as pre-integrator constraint
------------------------------------------------------------------------- */
void FixShake::setup(int vflag)
{
pre_neighbor();
if (output_every) stats();
// setup SHAKE output
bigint ntimestep = update->ntimestep;
next_output = ntimestep + output_every;
if (output_every == 0) next_output = update->laststep + 1;
if (output_every && ntimestep % output_every != 0)
next_output = (ntimestep/output_every)*output_every + output_every;
// half timestep constraint on pre-step, full timestep thereafter
- if (strcmp(update->integrate_style,"verlet") == 0) {
+ if (strstr(update->integrate_style,"verlet")) {
dtv = update->dt;
dtfsq = 0.5 * update->dt * update->dt * force->ftm2v;
post_force(vflag);
dtfsq = update->dt * update->dt * force->ftm2v;
} else {
dtv = step_respa[0];
dtf_innerhalf = 0.5 * step_respa[0] * force->ftm2v;
dtf_inner = dtf_innerhalf;
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
dtf_inner = step_respa[0] * force->ftm2v;
}
}
/* ----------------------------------------------------------------------
build list of SHAKE clusters to constrain
if one or more atoms in cluster are on this proc,
this proc lists the cluster exactly once
------------------------------------------------------------------------- */
void FixShake::pre_neighbor()
{
int atom1,atom2,atom3,atom4;
// local copies of atom quantities
// used by SHAKE until next re-neighboring
x = atom->x;
v = atom->v;
f = atom->f;
mass = atom->mass;
rmass = atom->rmass;
type = atom->type;
nlocal = atom->nlocal;
// extend size of SHAKE list if necessary
if (nlocal > maxlist) {
maxlist = nlocal;
memory->destroy(list);
memory->create(list,maxlist,"shake:list");
}
// build list of SHAKE clusters I compute
nlist = 0;
for (int i = 0; i < nlocal; i++)
if (shake_flag[i]) {
if (shake_flag[i] == 2) {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
if (atom1 == -1 || atom2 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d missing on proc %d at step " BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2) list[nlist++] = i;
} else if (shake_flag[i] % 2 == 1) {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
atom3 = atom->map(shake_atom[i][2]);
if (atom1 == -1 || atom2 == -1 || atom3 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d %d missing on proc %d at step "
BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],shake_atom[i][2],
me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2 && i <= atom3) list[nlist++] = i;
} else {
atom1 = atom->map(shake_atom[i][0]);
atom2 = atom->map(shake_atom[i][1]);
atom3 = atom->map(shake_atom[i][2]);
atom4 = atom->map(shake_atom[i][3]);
if (atom1 == -1 || atom2 == -1 || atom3 == -1 || atom4 == -1) {
char str[128];
sprintf(str,
"Shake atoms %d %d %d %d missing on proc %d at step "
BIGINT_FORMAT,
shake_atom[i][0],shake_atom[i][1],
shake_atom[i][2],shake_atom[i][3],
me,update->ntimestep);
error->one(str);
}
if (i <= atom1 && i <= atom2 && i <= atom3 && i <= atom4)
list[nlist++] = i;
}
}
}
/* ----------------------------------------------------------------------
compute the force adjustment for SHAKE constraint
------------------------------------------------------------------------- */
void FixShake::post_force(int vflag)
{
if (update->ntimestep == next_output) stats();
// xshake = unconstrained move with current v,f
// communicate results if necessary
unconstrained_update();
if (nprocs > 1) comm->forward_comm_fix(this);
// virial setup
if (vflag) v_setup(vflag);
else evflag = 0;
// loop over clusters to add constraint forces
int m;
for (int i = 0; i < nlist; i++) {
m = list[i];
if (shake_flag[m] == 2) shake2(m);
else if (shake_flag[m] == 3) shake3(m);
else if (shake_flag[m] == 4) shake4(m);
else shake3angle(m);
}
}
/* ----------------------------------------------------------------------
enforce SHAKE constraints from rRESPA
xshake prediction portion is different than Verlet
------------------------------------------------------------------------- */
void FixShake::post_force_respa(int vflag, int ilevel, int iloop)
{
// call stats only on outermost level
if (ilevel == nlevels_respa-1 && update->ntimestep == next_output) stats();
// enforce SHAKE constraints on every loop iteration of every rRESPA level
// except last loop iteration of inner levels
if (ilevel < nlevels_respa-1 && iloop == loop_respa[ilevel]-1) return;
// xshake = unconstrained move with current v,f as function of level
// communicate results if necessary
unconstrained_update_respa(ilevel);
if (nprocs > 1) comm->forward_comm_fix(this);
// virial setup, only need to compute on outermost level
if (ilevel == nlevels_respa-1 && vflag) v_setup(vflag);
else evflag = 0;
// loop over clusters to add constraint forces
int m;
for (int i = 0; i < nlist; i++) {
m = list[i];
if (shake_flag[m] == 2) shake2(m);
else if (shake_flag[m] == 3) shake3(m);
else if (shake_flag[m] == 4) shake4(m);
else shake3angle(m);
}
}
/* ----------------------------------------------------------------------
count # of degrees-of-freedom removed by SHAKE for atoms in igroup
------------------------------------------------------------------------- */
int FixShake::dof(int igroup)
{
int groupbit = group->bitmask[igroup];
int *mask = atom->mask;
int *tag = atom->tag;
int nlocal = atom->nlocal;
// count dof in a cluster if and only if
// the central atom is in group and atom i is the central atom
int n = 0;
for (int i = 0; i < nlocal; i++) {
if (!(mask[i] & groupbit)) continue;
if (shake_flag[i] == 0) continue;
if (shake_atom[i][0] != tag[i]) continue;
if (shake_flag[i] == 1) n += 3;
else if (shake_flag[i] == 2) n += 1;
else if (shake_flag[i] == 3) n += 2;
else if (shake_flag[i] == 4) n += 3;
}
int nall;
MPI_Allreduce(&n,&nall,1,MPI_INT,MPI_SUM,world);
return nall;
}
/* ----------------------------------------------------------------------
identify whether each atom is in a SHAKE cluster
only include atoms in fix group and those bonds/angles specified in input
test whether all clusters are valid
set shake_flag, shake_atom, shake_type values
set bond,angle types negative so will be ignored in neighbor lists
------------------------------------------------------------------------- */
void FixShake::find_clusters()
{
int i,j,m,n;
int flag,flag_all,messtag,loop,nbuf,nbufmax,size;
double massone;
int *buf,*bufcopy;
MPI_Request request;
MPI_Status status;
if (me == 0 && screen) fprintf(screen,"Finding SHAKE clusters ...\n");
// local copies of atom ptrs
int *tag = atom->tag;
int *type = atom->type;
int *mask = atom->mask;
double *mass = atom->mass;
double *rmass = atom->rmass;
int **bond_type = atom->bond_type;
int **angle_type = atom->angle_type;
int **nspecial = atom->nspecial;
int **special = atom->special;
int nlocal = atom->nlocal;
int angles_allow = atom->avec->angles_allow;
// setup ring of procs
int next = me + 1;
int prev = me -1;
if (next == nprocs) next = 0;
if (prev < 0) prev = nprocs - 1;
// -----------------------------------------------------
// allocate arrays for self (1d) and bond partners (2d)
// max = max # of bond partners for owned atoms = 2nd dim of partner arrays
// npartner[i] = # of bonds attached to atom i
// nshake[i] = # of SHAKE bonds attached to atom i
// partner_tag[i][] = global IDs of each partner
// partner_mask[i][] = mask of each partner
// partner_type[i][] = type of each partner
// partner_massflag[i][] = 1 if partner meets mass criterion, 0 if not
// partner_bondtype[i][] = type of bond attached to each partner
// partner_shake[i][] = 1 if SHAKE bonded to partner, 0 if not
// partner_nshake[i][] = nshake value for each partner
// -----------------------------------------------------
int max = 0;
for (i = 0; i < nlocal; i++) max = MAX(max,nspecial[i][0]);
int *npartner,*nshake;
memory->create(npartner,nlocal,"shake:npartner");
memory->create(nshake,nlocal,"shake:nshake");
int **partner_tag,**partner_mask,**partner_type,**partner_massflag;
int ** partner_bondtype,**partner_shake,**partner_nshake;
memory->create(partner_tag,nlocal,max,"shake:partner_tag");
memory->create(partner_mask,nlocal,max,"shake:partner_mask");
memory->create(partner_type,nlocal,max,"shake:partner_type");
memory->create(partner_massflag,nlocal,max,"shake:partner_massflag");
memory->create(partner_bondtype,nlocal,max,"shake:partner_bondtype");
memory->create(partner_shake,nlocal,max,"shake:partner_shake");
memory->create(partner_nshake,nlocal,max,"shake:partner_nshake");
// -----------------------------------------------------
// set npartner and partner_tag from special arrays
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
npartner[i] = nspecial[i][0];
for (j = 0; j < npartner[i]; j++) partner_tag[i][j] = special[i][j];
}
// -----------------------------------------------------
// set partner_mask, partner_type, partner_massflag, partner_bondtype
// for bonded partners
// requires communication for off-proc partners
// -----------------------------------------------------
// fill in mask, type, massflag, bondtype if own bond partner
// info to store in buf for each off-proc bond = nper = 6
// 2 atoms IDs in bond, space for mask, type, massflag, bondtype
// nbufmax = largest buffer needed to hold info from any proc
int nper = 6;
nbuf = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
partner_mask[i][j] = 0;
partner_type[i][j] = 0;
partner_massflag[i][j] = 0;
partner_bondtype[i][j] = 0;
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) {
partner_mask[i][j] = mask[m];
partner_type[i][j] = type[m];
if (nmass) {
if (rmass) massone = rmass[m];
else massone = mass[type[m]];
partner_massflag[i][j] = masscheck(massone);
}
n = bondfind(i,tag[i],partner_tag[i][j]);
if (n >= 0) partner_bondtype[i][j] = bond_type[i][n];
else {
n = bondfind(m,tag[i],partner_tag[i][j]);
if (n >= 0) partner_bondtype[i][j] = bond_type[m][n];
}
} else nbuf += nper;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = tag[i];
buf[size+1] = partner_tag[i][j];
buf[size+2] = 0;
buf[size+3] = 0;
buf[size+4] = 0;
n = bondfind(i,tag[i],partner_tag[i][j]);
if (n >= 0) buf[size+5] = bond_type[i][n];
else buf[size+5] = 0;
size += nper;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan bond partner IDs for atoms I own
// if I own partner:
// fill in mask and type and massflag
// search for bond with 1st atom and fill in bondtype
messtag = 1;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i+1]);
if (m >= 0 && m < nlocal) {
buf[i+2] = mask[m];
buf[i+3] = type[m];
if (nmass) {
if (rmass) massone = rmass[m];
else massone = mass[type[m]];
buf[i+4] = masscheck(massone);
}
if (buf[i+5] == 0) {
n = bondfind(m,buf[i],buf[i+1]);
if (n >= 0) buf[i+5] = bond_type[m][n];
}
}
i += nper;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
// store partner info returned to me
m = 0;
while (m < size) {
i = atom->map(buf[m]);
for (j = 0; j < npartner[i]; j++)
if (buf[m+1] == partner_tag[i][j]) break;
partner_mask[i][j] = buf[m+2];
partner_type[i][j] = buf[m+3];
partner_massflag[i][j] = buf[m+4];
partner_bondtype[i][j] = buf[m+5];
m += nper;
}
delete [] buf;
delete [] bufcopy;
// error check for unfilled partner info
// if partner_type not set, is an error
// partner_bondtype may not be set if special list is not consistent
// with bondatom (e.g. due to delete_bonds command)
// this is OK if one or both atoms are not in fix group, since
// bond won't be SHAKEn anyway
// else it's an error
flag = 0;
for (i = 0; i < nlocal; i++)
for (j = 0; j < npartner[i]; j++) {
if (partner_type[i][j] == 0) flag = 1;
if (!(mask[i] & groupbit)) continue;
if (!(partner_mask[i][j] & groupbit)) continue;
if (partner_bondtype[i][j] == 0) flag = 1;
}
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Did not find fix shake partner info");
// -----------------------------------------------------
// identify SHAKEable bonds
// set nshake[i] = # of SHAKE bonds attached to atom i
// set partner_shake[i][] = 1 if SHAKE bonded to partner, 0 if not
// both atoms must be in group, bondtype must be > 0
// check if bondtype is in input bond_flag
// check if type of either atom is in input type_flag
// check if mass of either atom is in input mass_list
// -----------------------------------------------------
int np;
for (i = 0; i < nlocal; i++) {
nshake[i] = 0;
np = npartner[i];
for (j = 0; j < np; j++) {
partner_shake[i][j] = 0;
if (!(mask[i] & groupbit)) continue;
if (!(partner_mask[i][j] & groupbit)) continue;
if (partner_bondtype[i][j] <= 0) continue;
if (bond_flag[partner_bondtype[i][j]]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
if (type_flag[type[i]] || type_flag[partner_type[i][j]]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
if (nmass) {
if (partner_massflag[i][j]) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
} else {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
if (masscheck(massone)) {
partner_shake[i][j] = 1;
nshake[i]++;
continue;
}
}
}
}
}
// -----------------------------------------------------
// set partner_nshake for bonded partners
// requires communication for off-proc partners
// -----------------------------------------------------
// fill in partner_nshake if own bond partner
// info to store in buf for each off-proc bond =
// 2 atoms IDs in bond, space for nshake value
// nbufmax = largest buffer needed to hold info from any proc
nbuf = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) partner_nshake[i][j] = nshake[m];
else nbuf += 3;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
for (j = 0; j < npartner[i]; j++) {
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = tag[i];
buf[size+1] = partner_tag[i][j];
size += 3;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan bond partner IDs for atoms I own
// if I own partner, fill in nshake value
messtag = 2;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i+1]);
if (m >= 0 && m < nlocal) buf[i+2] = nshake[m];
i += 3;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
// store partner info returned to me
m = 0;
while (m < size) {
i = atom->map(buf[m]);
for (j = 0; j < npartner[i]; j++)
if (buf[m+1] == partner_tag[i][j]) break;
partner_nshake[i][j] = buf[m+2];
m += 3;
}
delete [] buf;
delete [] bufcopy;
// -----------------------------------------------------
// error checks
// no atom with nshake > 3
// no connected atoms which both have nshake > 1
// -----------------------------------------------------
flag = 0;
for (i = 0; i < nlocal; i++) if (nshake[i] > 3) flag = 1;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Shake cluster of more than 4 atoms");
flag = 0;
for (i = 0; i < nlocal; i++) {
if (nshake[i] <= 1) continue;
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j] && partner_nshake[i][j] > 1) flag = 1;
}
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all) error->all("Shake clusters are connected");
// -----------------------------------------------------
// set SHAKE arrays that are stored with atoms & add angle constraints
// zero shake arrays for all owned atoms
// if I am central atom set shake_flag & shake_atom & shake_type
// for 2-atom clusters, I am central atom if my atom ID < partner ID
// for 3-atom clusters, test for angle constraint
// angle will be stored by this atom if it exists
// if angle type matches angle_flag, then it is angle-constrained
// shake_flag[] = 0 if atom not in SHAKE cluster
// 2,3,4 = size of bond-only cluster
// 1 = 3-atom angle cluster
// shake_atom[][] = global IDs of 2,3,4 atoms in cluster
// central atom is 1st
// for 2-atom cluster, lowest ID is 1st
// shake_type[][] = bondtype of each bond in cluster
// for 3-atom angle cluster, 3rd value is angletype
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
shake_flag[i] = 0;
shake_atom[i][0] = 0;
shake_atom[i][1] = 0;
shake_atom[i][2] = 0;
shake_atom[i][3] = 0;
shake_type[i][0] = 0;
shake_type[i][1] = 0;
shake_type[i][2] = 0;
if (nshake[i] == 1) {
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j]) break;
if (partner_nshake[i][j] == 1 && tag[i] < partner_tag[i][j]) {
shake_flag[i] = 2;
shake_atom[i][0] = tag[i];
shake_atom[i][1] = partner_tag[i][j];
shake_type[i][0] = partner_bondtype[i][j];
}
}
if (nshake[i] > 1) {
shake_flag[i] = 1;
shake_atom[i][0] = tag[i];
for (j = 0; j < npartner[i]; j++)
if (partner_shake[i][j]) {
m = shake_flag[i];
shake_atom[i][m] = partner_tag[i][j];
shake_type[i][m-1] = partner_bondtype[i][j];
shake_flag[i]++;
}
}
if (nshake[i] == 2 && angles_allow) {
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n < 0) continue;
if (angle_type[i][n] < 0) continue;
if (angle_flag[angle_type[i][n]]) {
shake_flag[i] = 1;
shake_type[i][2] = angle_type[i][n];
}
}
}
// -----------------------------------------------------
// set shake_flag,shake_atom,shake_type for non-central atoms
// requires communication for off-proc atoms
// -----------------------------------------------------
// fill in shake arrays for each bond partner I own
// info to store in buf for each off-proc bond =
// all values from shake_flag, shake_atom, shake_type
// nbufmax = largest buffer needed to hold info from any proc
nbuf = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
for (j = 0; j < npartner[i]; j++) {
if (partner_shake[i][j] == 0) continue;
m = atom->map(partner_tag[i][j]);
if (m >= 0 && m < nlocal) {
shake_flag[m] = shake_flag[i];
shake_atom[m][0] = shake_atom[i][0];
shake_atom[m][1] = shake_atom[i][1];
shake_atom[m][2] = shake_atom[i][2];
shake_atom[m][3] = shake_atom[i][3];
shake_type[m][0] = shake_type[i][0];
shake_type[m][1] = shake_type[i][1];
shake_type[m][2] = shake_type[i][2];
} else nbuf += 9;
}
}
MPI_Allreduce(&nbuf,&nbufmax,1,MPI_INT,MPI_MAX,world);
buf = new int[nbufmax];
bufcopy = new int[nbufmax];
// fill buffer with info
size = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
for (j = 0; j < npartner[i]; j++) {
if (partner_shake[i][j] == 0) continue;
m = atom->map(partner_tag[i][j]);
if (m < 0 || m >= nlocal) {
buf[size] = partner_tag[i][j];
buf[size+1] = shake_flag[i];
buf[size+2] = shake_atom[i][0];
buf[size+3] = shake_atom[i][1];
buf[size+4] = shake_atom[i][2];
buf[size+5] = shake_atom[i][3];
buf[size+6] = shake_type[i][0];
buf[size+7] = shake_type[i][1];
buf[size+8] = shake_type[i][2];
size += 9;
}
}
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan for ID that I own
// if I own ID, fill in shake array values
messtag = 3;
for (loop = 0; loop < nprocs; loop++) {
i = 0;
while (i < size) {
m = atom->map(buf[i]);
if (m >= 0 && m < nlocal) {
shake_flag[m] = buf[i+1];
shake_atom[m][0] = buf[i+2];
shake_atom[m][1] = buf[i+3];
shake_atom[m][2] = buf[i+4];
shake_atom[m][3] = buf[i+5];
shake_type[m][0] = buf[i+6];
shake_type[m][1] = buf[i+7];
shake_type[m][2] = buf[i+8];
}
i += 9;
}
if (me != next) {
MPI_Irecv(bufcopy,nbufmax,MPI_INT,prev,messtag,world,&request);
MPI_Send(buf,size,MPI_INT,next,messtag,world);
MPI_Wait(&request,&status);
MPI_Get_count(&status,MPI_INT,&size);
for (j = 0; j < size; j++) buf[j] = bufcopy[j];
}
}
delete [] buf;
delete [] bufcopy;
// -----------------------------------------------------
// free local memory
// -----------------------------------------------------
memory->destroy(npartner);
memory->destroy(nshake);
memory->destroy(partner_tag);
memory->destroy(partner_mask);
memory->destroy(partner_type);
memory->destroy(partner_massflag);
memory->destroy(partner_bondtype);
memory->destroy(partner_shake);
memory->destroy(partner_nshake);
// -----------------------------------------------------
// set bond_type and angle_type negative for SHAKE clusters
// must set for all SHAKE bonds and angles stored by each atom
// -----------------------------------------------------
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
else if (shake_flag[i] == 1) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = anglefind(i,shake_atom[i][1],shake_atom[i][2]);
if (n >= 0) angle_type[i][n] = -angle_type[i][n];
} else if (shake_flag[i] == 2) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 3) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
} else if (shake_flag[i] == 4) {
n = bondfind(i,shake_atom[i][0],shake_atom[i][1]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][2]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
n = bondfind(i,shake_atom[i][0],shake_atom[i][3]);
if (n >= 0) bond_type[i][n] = -bond_type[i][n];
}
}
// -----------------------------------------------------
// print info on SHAKE clusters
// -----------------------------------------------------
int count1,count2,count3,count4;
count1 = count2 = count3 = count4 = 0;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 1) count1++;
else if (shake_flag[i] == 2) count2++;
else if (shake_flag[i] == 3) count3++;
else if (shake_flag[i] == 4) count4++;
}
int tmp;
tmp = count1;
MPI_Allreduce(&tmp,&count1,1,MPI_INT,MPI_SUM,world);
tmp = count2;
MPI_Allreduce(&tmp,&count2,1,MPI_INT,MPI_SUM,world);
tmp = count3;
MPI_Allreduce(&tmp,&count3,1,MPI_INT,MPI_SUM,world);
tmp = count4;
MPI_Allreduce(&tmp,&count4,1,MPI_INT,MPI_SUM,world);
if (me == 0) {
if (screen) {
fprintf(screen," %d = # of size 2 clusters\n",count2/2);
fprintf(screen," %d = # of size 3 clusters\n",count3/3);
fprintf(screen," %d = # of size 4 clusters\n",count4/4);
fprintf(screen," %d = # of frozen angles\n",count1/3);
}
if (logfile) {
fprintf(logfile," %d = # of size 2 clusters\n",count2/2);
fprintf(logfile," %d = # of size 3 clusters\n",count3/3);
fprintf(logfile," %d = # of size 4 clusters\n",count4/4);
fprintf(logfile," %d = # of frozen angles\n",count1/3);
}
}
}
/* ----------------------------------------------------------------------
check if massone is within MASSDELTA of any mass in mass_list
return 1 if yes, 0 if not
------------------------------------------------------------------------- */
int FixShake::masscheck(double massone)
{
for (int i = 0; i < nmass; i++)
if (fabs(mass_list[i]-massone) <= MASSDELTA) return 1;
return 0;
}
/* ----------------------------------------------------------------------
update the unconstrained position of each atom
only for SHAKE clusters, else set to 0.0
assumes NVE update, seems to be accurate enough for NVT,NPT,NPH as well
------------------------------------------------------------------------- */
void FixShake::unconstrained_update()
{
double dtfmsq;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
dtfmsq = dtfsq / rmass[i];
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
} else {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
dtfmsq = dtfsq / mass[type[i]];
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
}
}
/* ----------------------------------------------------------------------
update the unconstrained position of each atom in a rRESPA step
only for SHAKE clusters, else set to 0.0
assumes NVE update, seems to be accurate enough for NVT,NPT,NPH as well
------------------------------------------------------------------------- */
void FixShake::unconstrained_update_respa(int ilevel)
{
// xshake = atom coords after next x update in innermost loop
// depends on rRESPA level
// for levels > 0 this includes more than one velocity update
// xshake = predicted position from call to this routine at level N =
// x + dt0 (v + dtN/m fN + 1/2 dt(N-1)/m f(N-1) + ... + 1/2 dt0/m f0)
// also set dtfsq = dt0*dtN so that shake2,shake3,etc can use it
double ***f_level = ((FixRespa *) modify->fix[ifix_respa])->f_level;
dtfsq = dtf_inner * step_respa[ilevel];
double invmass,dtfmsq;
int jlevel;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
invmass = 1.0 / rmass[i];
dtfmsq = dtfsq * invmass;
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
for (jlevel = 0; jlevel < ilevel; jlevel++) {
dtfmsq = dtf_innerhalf * step_respa[jlevel] * invmass;
xshake[i][0] += dtfmsq*f_level[i][jlevel][0];
xshake[i][1] += dtfmsq*f_level[i][jlevel][1];
xshake[i][2] += dtfmsq*f_level[i][jlevel][2];
}
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
} else {
for (int i = 0; i < nlocal; i++) {
if (shake_flag[i]) {
invmass = 1.0 / mass[type[i]];
dtfmsq = dtfsq * invmass;
xshake[i][0] = x[i][0] + dtv*v[i][0] + dtfmsq*f[i][0];
xshake[i][1] = x[i][1] + dtv*v[i][1] + dtfmsq*f[i][1];
xshake[i][2] = x[i][2] + dtv*v[i][2] + dtfmsq*f[i][2];
for (jlevel = 0; jlevel < ilevel; jlevel++) {
dtfmsq = dtf_innerhalf * step_respa[jlevel] * invmass;
xshake[i][0] += dtfmsq*f_level[i][jlevel][0];
xshake[i][1] += dtfmsq*f_level[i][jlevel][1];
xshake[i][2] += dtfmsq*f_level[i][jlevel][2];
}
} else xshake[i][2] = xshake[i][1] = xshake[i][0] = 0.0;
}
}
}
/* ---------------------------------------------------------------------- */
void FixShake::shake2(int m)
{
int nlist,list[2];
double v[6];
double invmass0,invmass1;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
double bond1 = bond_distance[shake_type[m][0]];
// r01 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
// s01 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
// a,b,c = coeffs in quadratic equation for lamda
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
}
double a = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double b = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double c = s01sq - bond1*bond1;
// error check
double determ = b*b - 4.0*a*c;
if (determ < 0.0) {
error->warning("Shake determinant < 0.0",0);
determ = 0.0;
}
// exact quadratic solution for lamda
double lamda,lamda1,lamda2;
lamda1 = (-b+sqrt(determ)) / (2.0*a);
lamda2 = (-b-sqrt(determ)) / (2.0*a);
if (fabs(lamda1) <= fabs(lamda2)) lamda = lamda1;
else lamda = lamda2;
// update forces if atom is owned by this processor
lamda /= dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda*r01[0];
f[i0][1] += lamda*r01[1];
f[i0][2] += lamda*r01[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda*r01[0];
f[i1][1] -= lamda*r01[1];
f[i1][2] -= lamda*r01[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
v[0] = lamda*r01[0]*r01[0];
v[1] = lamda*r01[1]*r01[1];
v[2] = lamda*r01[2]*r01[2];
v[3] = lamda*r01[0]*r01[1];
v[4] = lamda*r01[0]*r01[2];
v[5] = lamda*r01[1]*r01[2];
v_tally(nlist,list,2.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShake::shake3(int m)
{
int nlist,list[3];
double v[6];
double invmass0,invmass1,invmass2;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
// r01,r02 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
// s01,s02 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
// inverse of matrix
double determ = a11*a22 - a12*a21;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = a22*determinv;
double a12inv = -a12*determinv;
double a21inv = -a21*determinv;
double a22inv = a11*determinv;
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,b1,b2,lamda01_new,lamda02_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 + quad1_0202 * lamda02*lamda02 +
quad1_0102 * lamda01*lamda02;
quad2 = quad2_0101 * lamda01*lamda01 + quad2_0202 * lamda02*lamda02 +
quad2_0102 * lamda01*lamda02;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
lamda01_new = a11inv*b1 + a12inv*b2;
lamda02_new = a21inv*b1 + a22inv*b2;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0];
f[i1][1] -= lamda01*r01[1];
f[i1][2] -= lamda01*r01[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0];
f[i2][1] -= lamda02*r02[1];
f[i2][2] -= lamda02*r02[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
v[0] = lamda01*r01[0]*r01[0] + lamda02*r02[0]*r02[0];
v[1] = lamda01*r01[1]*r01[1] + lamda02*r02[1]*r02[1];
v[2] = lamda01*r01[2]*r01[2] + lamda02*r02[2]*r02[2];
v[3] = lamda01*r01[0]*r01[1] + lamda02*r02[0]*r02[1];
v[4] = lamda01*r01[0]*r01[2] + lamda02*r02[0]*r02[2];
v[5] = lamda01*r01[1]*r01[2] + lamda02*r02[1]*r02[2];
v_tally(nlist,list,3.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShake::shake4(int m)
{
int nlist,list[4];
double v[6];
double invmass0,invmass1,invmass2,invmass3;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
int i3 = atom->map(shake_atom[m][3]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
double bond3 = bond_distance[shake_type[m][2]];
// r01,r02,r03 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
double r03[3];
r03[0] = x[i0][0] - x[i3][0];
r03[1] = x[i0][1] - x[i3][1];
r03[2] = x[i0][2] - x[i3][2];
domain->minimum_image(r03);
// s01,s02,s03 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
double s03[3];
s03[0] = xshake[i0][0] - xshake[i3][0];
s03[1] = xshake[i0][1] - xshake[i3][1];
s03[2] = xshake[i0][2] - xshake[i3][2];
domain->minimum_image(s03);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double r03sq = r03[0]*r03[0] + r03[1]*r03[1] + r03[2]*r03[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
double s03sq = s03[0]*s03[0] + s03[1]*s03[1] + s03[2]*s03[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
invmass3 = 1.0/rmass[i3];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
invmass3 = 1.0/mass[type[i3]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a13 = 2.0 * invmass0 *
(s01[0]*r03[0] + s01[1]*r03[1] + s01[2]*r03[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
double a23 = 2.0 * invmass0 *
(s02[0]*r03[0] + s02[1]*r03[1] + s02[2]*r03[2]);
double a31 = 2.0 * invmass0 *
(s03[0]*r01[0] + s03[1]*r01[1] + s03[2]*r01[2]);
double a32 = 2.0 * invmass0 *
(s03[0]*r02[0] + s03[1]*r02[1] + s03[2]*r02[2]);
double a33 = 2.0 * (invmass0+invmass3) *
(s03[0]*r03[0] + s03[1]*r03[1] + s03[2]*r03[2]);
// inverse of matrix;
double determ = a11*a22*a33 + a12*a23*a31 + a13*a21*a32 -
a11*a23*a32 - a12*a21*a33 - a13*a22*a31;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = determinv * (a22*a33 - a23*a32);
double a12inv = -determinv * (a12*a33 - a13*a32);
double a13inv = determinv * (a12*a23 - a13*a22);
double a21inv = -determinv * (a21*a33 - a23*a31);
double a22inv = determinv * (a11*a33 - a13*a31);
double a23inv = -determinv * (a11*a23 - a13*a21);
double a31inv = determinv * (a21*a32 - a22*a31);
double a32inv = -determinv * (a11*a32 - a12*a31);
double a33inv = determinv * (a11*a22 - a12*a21);
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double r0103 = (r01[0]*r03[0] + r01[1]*r03[1] + r01[2]*r03[2]);
double r0203 = (r02[0]*r03[0] + r02[1]*r03[1] + r02[2]*r03[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_0303 = invmass0*invmass0 * r03sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad1_0103 = 2.0 * (invmass0+invmass1)*invmass0 * r0103;
double quad1_0203 = 2.0 * invmass0*invmass0 * r0203;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_0303 = invmass0*invmass0 * r03sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
double quad2_0103 = 2.0 * invmass0*invmass0 * r0103;
double quad2_0203 = 2.0 * (invmass0+invmass2)*invmass0 * r0203;
double quad3_0101 = invmass0*invmass0 * r01sq;
double quad3_0202 = invmass0*invmass0 * r02sq;
double quad3_0303 = (invmass0+invmass3)*(invmass0+invmass3) * r03sq;
double quad3_0102 = 2.0 * invmass0*invmass0 * r0102;
double quad3_0103 = 2.0 * (invmass0+invmass3)*invmass0 * r0103;
double quad3_0203 = 2.0 * (invmass0+invmass3)*invmass0 * r0203;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
double lamda03 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,quad3,b1,b2,b3,lamda01_new,lamda02_new,lamda03_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 +
quad1_0202 * lamda02*lamda02 +
quad1_0303 * lamda03*lamda03 +
quad1_0102 * lamda01*lamda02 +
quad1_0103 * lamda01*lamda03 +
quad1_0203 * lamda02*lamda03;
quad2 = quad2_0101 * lamda01*lamda01 +
quad2_0202 * lamda02*lamda02 +
quad2_0303 * lamda03*lamda03 +
quad2_0102 * lamda01*lamda02 +
quad2_0103 * lamda01*lamda03 +
quad2_0203 * lamda02*lamda03;
quad3 = quad3_0101 * lamda01*lamda01 +
quad3_0202 * lamda02*lamda02 +
quad3_0303 * lamda03*lamda03 +
quad3_0102 * lamda01*lamda02 +
quad3_0103 * lamda01*lamda03 +
quad3_0203 * lamda02*lamda03;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
b3 = bond3*bond3 - s03sq - quad3;
lamda01_new = a11inv*b1 + a12inv*b2 + a13inv*b3;
lamda02_new = a21inv*b1 + a22inv*b2 + a23inv*b3;
lamda03_new = a31inv*b1 + a32inv*b2 + a33inv*b3;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
if (fabs(lamda03_new-lamda03) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
lamda03 = lamda03_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
lamda03 = lamda03/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0] + lamda03*r03[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1] + lamda03*r03[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2] + lamda03*r03[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0];
f[i1][1] -= lamda01*r01[1];
f[i1][2] -= lamda01*r01[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0];
f[i2][1] -= lamda02*r02[1];
f[i2][2] -= lamda02*r02[2];
}
if (i3 < nlocal) {
f[i3][0] -= lamda03*r03[0];
f[i3][1] -= lamda03*r03[1];
f[i3][2] -= lamda03*r03[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
if (i3 < nlocal) list[nlist++] = i3;
v[0] = lamda01*r01[0]*r01[0]+lamda02*r02[0]*r02[0]+lamda03*r03[0]*r03[0];
v[1] = lamda01*r01[1]*r01[1]+lamda02*r02[1]*r02[1]+lamda03*r03[1]*r03[1];
v[2] = lamda01*r01[2]*r01[2]+lamda02*r02[2]*r02[2]+lamda03*r03[2]*r03[2];
v[3] = lamda01*r01[0]*r01[1]+lamda02*r02[0]*r02[1]+lamda03*r03[0]*r03[1];
v[4] = lamda01*r01[0]*r01[2]+lamda02*r02[0]*r02[2]+lamda03*r03[0]*r03[2];
v[5] = lamda01*r01[1]*r01[2]+lamda02*r02[1]*r02[2]+lamda03*r03[1]*r03[2];
v_tally(nlist,list,4.0,v);
}
}
/* ---------------------------------------------------------------------- */
void FixShake::shake3angle(int m)
{
int nlist,list[3];
double v[6];
double invmass0,invmass1,invmass2;
// local atom IDs and constraint distances
int i0 = atom->map(shake_atom[m][0]);
int i1 = atom->map(shake_atom[m][1]);
int i2 = atom->map(shake_atom[m][2]);
double bond1 = bond_distance[shake_type[m][0]];
double bond2 = bond_distance[shake_type[m][1]];
double bond12 = angle_distance[shake_type[m][2]];
// r01,r02,r12 = distance vec between atoms, with PBC
double r01[3];
r01[0] = x[i0][0] - x[i1][0];
r01[1] = x[i0][1] - x[i1][1];
r01[2] = x[i0][2] - x[i1][2];
domain->minimum_image(r01);
double r02[3];
r02[0] = x[i0][0] - x[i2][0];
r02[1] = x[i0][1] - x[i2][1];
r02[2] = x[i0][2] - x[i2][2];
domain->minimum_image(r02);
double r12[3];
r12[0] = x[i1][0] - x[i2][0];
r12[1] = x[i1][1] - x[i2][1];
r12[2] = x[i1][2] - x[i2][2];
domain->minimum_image(r12);
// s01,s02,s12 = distance vec after unconstrained update, with PBC
double s01[3];
s01[0] = xshake[i0][0] - xshake[i1][0];
s01[1] = xshake[i0][1] - xshake[i1][1];
s01[2] = xshake[i0][2] - xshake[i1][2];
domain->minimum_image(s01);
double s02[3];
s02[0] = xshake[i0][0] - xshake[i2][0];
s02[1] = xshake[i0][1] - xshake[i2][1];
s02[2] = xshake[i0][2] - xshake[i2][2];
domain->minimum_image(s02);
double s12[3];
s12[0] = xshake[i1][0] - xshake[i2][0];
s12[1] = xshake[i1][1] - xshake[i2][1];
s12[2] = xshake[i1][2] - xshake[i2][2];
domain->minimum_image(s12);
// scalar distances between atoms
double r01sq = r01[0]*r01[0] + r01[1]*r01[1] + r01[2]*r01[2];
double r02sq = r02[0]*r02[0] + r02[1]*r02[1] + r02[2]*r02[2];
double r12sq = r12[0]*r12[0] + r12[1]*r12[1] + r12[2]*r12[2];
double s01sq = s01[0]*s01[0] + s01[1]*s01[1] + s01[2]*s01[2];
double s02sq = s02[0]*s02[0] + s02[1]*s02[1] + s02[2]*s02[2];
double s12sq = s12[0]*s12[0] + s12[1]*s12[1] + s12[2]*s12[2];
// matrix coeffs and rhs for lamda equations
if (rmass) {
invmass0 = 1.0/rmass[i0];
invmass1 = 1.0/rmass[i1];
invmass2 = 1.0/rmass[i2];
} else {
invmass0 = 1.0/mass[type[i0]];
invmass1 = 1.0/mass[type[i1]];
invmass2 = 1.0/mass[type[i2]];
}
double a11 = 2.0 * (invmass0+invmass1) *
(s01[0]*r01[0] + s01[1]*r01[1] + s01[2]*r01[2]);
double a12 = 2.0 * invmass0 *
(s01[0]*r02[0] + s01[1]*r02[1] + s01[2]*r02[2]);
double a13 = - 2.0 * invmass1 *
(s01[0]*r12[0] + s01[1]*r12[1] + s01[2]*r12[2]);
double a21 = 2.0 * invmass0 *
(s02[0]*r01[0] + s02[1]*r01[1] + s02[2]*r01[2]);
double a22 = 2.0 * (invmass0+invmass2) *
(s02[0]*r02[0] + s02[1]*r02[1] + s02[2]*r02[2]);
double a23 = 2.0 * invmass2 *
(s02[0]*r12[0] + s02[1]*r12[1] + s02[2]*r12[2]);
double a31 = - 2.0 * invmass1 *
(s12[0]*r01[0] + s12[1]*r01[1] + s12[2]*r01[2]);
double a32 = 2.0 * invmass2 *
(s12[0]*r02[0] + s12[1]*r02[1] + s12[2]*r02[2]);
double a33 = 2.0 * (invmass1+invmass2) *
(s12[0]*r12[0] + s12[1]*r12[1] + s12[2]*r12[2]);
// inverse of matrix
double determ = a11*a22*a33 + a12*a23*a31 + a13*a21*a32 -
a11*a23*a32 - a12*a21*a33 - a13*a22*a31;
if (determ == 0.0) error->one("Shake determinant = 0.0");
double determinv = 1.0/determ;
double a11inv = determinv * (a22*a33 - a23*a32);
double a12inv = -determinv * (a12*a33 - a13*a32);
double a13inv = determinv * (a12*a23 - a13*a22);
double a21inv = -determinv * (a21*a33 - a23*a31);
double a22inv = determinv * (a11*a33 - a13*a31);
double a23inv = -determinv * (a11*a23 - a13*a21);
double a31inv = determinv * (a21*a32 - a22*a31);
double a32inv = -determinv * (a11*a32 - a12*a31);
double a33inv = determinv * (a11*a22 - a12*a21);
// quadratic correction coeffs
double r0102 = (r01[0]*r02[0] + r01[1]*r02[1] + r01[2]*r02[2]);
double r0112 = (r01[0]*r12[0] + r01[1]*r12[1] + r01[2]*r12[2]);
double r0212 = (r02[0]*r12[0] + r02[1]*r12[1] + r02[2]*r12[2]);
double quad1_0101 = (invmass0+invmass1)*(invmass0+invmass1) * r01sq;
double quad1_0202 = invmass0*invmass0 * r02sq;
double quad1_1212 = invmass1*invmass1 * r12sq;
double quad1_0102 = 2.0 * (invmass0+invmass1)*invmass0 * r0102;
double quad1_0112 = - 2.0 * (invmass0+invmass1)*invmass1 * r0112;
double quad1_0212 = - 2.0 * invmass0*invmass1 * r0212;
double quad2_0101 = invmass0*invmass0 * r01sq;
double quad2_0202 = (invmass0+invmass2)*(invmass0+invmass2) * r02sq;
double quad2_1212 = invmass2*invmass2 * r12sq;
double quad2_0102 = 2.0 * (invmass0+invmass2)*invmass0 * r0102;
double quad2_0112 = 2.0 * invmass0*invmass2 * r0112;
double quad2_0212 = 2.0 * (invmass0+invmass2)*invmass2 * r0212;
double quad3_0101 = invmass1*invmass1 * r01sq;
double quad3_0202 = invmass2*invmass2 * r02sq;
double quad3_1212 = (invmass1+invmass2)*(invmass1+invmass2) * r12sq;
double quad3_0102 = - 2.0 * invmass1*invmass2 * r0102;
double quad3_0112 = - 2.0 * (invmass1+invmass2)*invmass1 * r0112;
double quad3_0212 = 2.0 * (invmass1+invmass2)*invmass2 * r0212;
// iterate until converged
double lamda01 = 0.0;
double lamda02 = 0.0;
double lamda12 = 0.0;
int niter = 0;
int done = 0;
double quad1,quad2,quad3,b1,b2,b3,lamda01_new,lamda02_new,lamda12_new;
while (!done && niter < max_iter) {
quad1 = quad1_0101 * lamda01*lamda01 +
quad1_0202 * lamda02*lamda02 +
quad1_1212 * lamda12*lamda12 +
quad1_0102 * lamda01*lamda02 +
quad1_0112 * lamda01*lamda12 +
quad1_0212 * lamda02*lamda12;
quad2 = quad2_0101 * lamda01*lamda01 +
quad2_0202 * lamda02*lamda02 +
quad2_1212 * lamda12*lamda12 +
quad2_0102 * lamda01*lamda02 +
quad2_0112 * lamda01*lamda12 +
quad2_0212 * lamda02*lamda12;
quad3 = quad3_0101 * lamda01*lamda01 +
quad3_0202 * lamda02*lamda02 +
quad3_1212 * lamda12*lamda12 +
quad3_0102 * lamda01*lamda02 +
quad3_0112 * lamda01*lamda12 +
quad3_0212 * lamda02*lamda12;
b1 = bond1*bond1 - s01sq - quad1;
b2 = bond2*bond2 - s02sq - quad2;
b3 = bond12*bond12 - s12sq - quad3;
lamda01_new = a11inv*b1 + a12inv*b2 + a13inv*b3;
lamda02_new = a21inv*b1 + a22inv*b2 + a23inv*b3;
lamda12_new = a31inv*b1 + a32inv*b2 + a33inv*b3;
done = 1;
if (fabs(lamda01_new-lamda01) > tolerance) done = 0;
if (fabs(lamda02_new-lamda02) > tolerance) done = 0;
if (fabs(lamda12_new-lamda12) > tolerance) done = 0;
lamda01 = lamda01_new;
lamda02 = lamda02_new;
lamda12 = lamda12_new;
niter++;
}
// update forces if atom is owned by this processor
lamda01 = lamda01/dtfsq;
lamda02 = lamda02/dtfsq;
lamda12 = lamda12/dtfsq;
if (i0 < nlocal) {
f[i0][0] += lamda01*r01[0] + lamda02*r02[0];
f[i0][1] += lamda01*r01[1] + lamda02*r02[1];
f[i0][2] += lamda01*r01[2] + lamda02*r02[2];
}
if (i1 < nlocal) {
f[i1][0] -= lamda01*r01[0] - lamda12*r12[0];
f[i1][1] -= lamda01*r01[1] - lamda12*r12[1];
f[i1][2] -= lamda01*r01[2] - lamda12*r12[2];
}
if (i2 < nlocal) {
f[i2][0] -= lamda02*r02[0] + lamda12*r12[0];
f[i2][1] -= lamda02*r02[1] + lamda12*r12[1];
f[i2][2] -= lamda02*r02[2] + lamda12*r12[2];
}
if (evflag) {
nlist = 0;
if (i0 < nlocal) list[nlist++] = i0;
if (i1 < nlocal) list[nlist++] = i1;
if (i2 < nlocal) list[nlist++] = i2;
v[0] = lamda01*r01[0]*r01[0]+lamda02*r02[0]*r02[0]+lamda12*r12[0]*r12[0];
v[1] = lamda01*r01[1]*r01[1]+lamda02*r02[1]*r02[1]+lamda12*r12[1]*r12[1];
v[2] = lamda01*r01[2]*r01[2]+lamda02*r02[2]*r02[2]+lamda12*r12[2]*r12[2];
v[3] = lamda01*r01[0]*r01[1]+lamda02*r02[0]*r02[1]+lamda12*r12[0]*r12[1];
v[4] = lamda01*r01[0]*r01[2]+lamda02*r02[0]*r02[2]+lamda12*r12[0]*r12[2];
v[5] = lamda01*r01[1]*r01[2]+lamda02*r02[1]*r02[2]+lamda12*r12[1]*r12[2];
v_tally(nlist,list,3.0,v);
}
}
/* ----------------------------------------------------------------------
print-out bond & angle statistics
------------------------------------------------------------------------- */
void FixShake::stats()
{
int i,j,m,n,iatom,jatom,katom;
double delx,dely,delz;
double r,r1,r2,r3,angle;
// zero out accumulators
int nb = atom->nbondtypes + 1;
int na = atom->nangletypes + 1;
for (i = 0; i < nb; i++) {
b_count[i] = 0;
b_ave[i] = b_max[i] = 0.0;
b_min[i] = BIG;
}
for (i = 0; i < na; i++) {
a_count[i] = 0;
a_ave[i] = a_max[i] = 0.0;
a_min[i] = BIG;
}
// log stats for each bond & angle
// OK to double count since are just averaging
double **x = atom->x;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
if (shake_flag[i] == 0) continue;
// bond stats
n = shake_flag[i];
if (n == 1) n = 3;
iatom = atom->map(shake_atom[i][0]);
for (j = 1; j < n; j++) {
jatom = atom->map(shake_atom[i][j]);
delx = x[iatom][0] - x[jatom][0];
dely = x[iatom][1] - x[jatom][1];
delz = x[iatom][2] - x[jatom][2];
domain->minimum_image(delx,dely,delz);
r = sqrt(delx*delx + dely*dely + delz*delz);
m = shake_type[i][j-1];
b_count[m]++;
b_ave[m] += r;
b_max[m] = MAX(b_max[m],r);
b_min[m] = MIN(b_min[m],r);
}
// angle stats
if (shake_flag[i] == 1) {
iatom = atom->map(shake_atom[i][0]);
jatom = atom->map(shake_atom[i][1]);
katom = atom->map(shake_atom[i][2]);
delx = x[iatom][0] - x[jatom][0];
dely = x[iatom][1] - x[jatom][1];
delz = x[iatom][2] - x[jatom][2];
domain->minimum_image(delx,dely,delz);
r1 = sqrt(delx*delx + dely*dely + delz*delz);
delx = x[iatom][0] - x[katom][0];
dely = x[iatom][1] - x[katom][1];
delz = x[iatom][2] - x[katom][2];
domain->minimum_image(delx,dely,delz);
r2 = sqrt(delx*delx + dely*dely + delz*delz);
delx = x[jatom][0] - x[katom][0];
dely = x[jatom][1] - x[katom][1];
delz = x[jatom][2] - x[katom][2];
domain->minimum_image(delx,dely,delz);
r3 = sqrt(delx*delx + dely*dely + delz*delz);
angle = acos((r1*r1 + r2*r2 - r3*r3) / (2.0*r1*r2));
angle *= 180.0/PI;
m = shake_type[i][2];
a_count[m]++;
a_ave[m] += angle;
a_max[m] = MAX(a_max[m],angle);
a_min[m] = MIN(a_min[m],angle);
}
}
// sum across all procs
MPI_Allreduce(b_count,b_count_all,nb,MPI_INT,MPI_SUM,world);
MPI_Allreduce(b_ave,b_ave_all,nb,MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(b_max,b_max_all,nb,MPI_DOUBLE,MPI_MAX,world);
MPI_Allreduce(b_min,b_min_all,nb,MPI_DOUBLE,MPI_MIN,world);
MPI_Allreduce(a_count,a_count_all,na,MPI_INT,MPI_SUM,world);
MPI_Allreduce(a_ave,a_ave_all,na,MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(a_max,a_max_all,na,MPI_DOUBLE,MPI_MAX,world);
MPI_Allreduce(a_min,a_min_all,na,MPI_DOUBLE,MPI_MIN,world);
// print stats only for non-zero counts
if (me == 0) {
if (screen) {
fprintf(screen,
"SHAKE stats (type/ave/delta) on step " BIGINT_FORMAT "\n",
update->ntimestep);
for (i = 1; i < nb; i++)
if (b_count_all[i])
fprintf(screen," %d %g %g\n",i,
b_ave_all[i]/b_count_all[i],b_max_all[i]-b_min_all[i]);
for (i = 1; i < na; i++)
if (a_count_all[i])
fprintf(screen," %d %g %g\n",i,
a_ave_all[i]/a_count_all[i],a_max_all[i]-a_min_all[i]);
}
if (logfile) {
fprintf(logfile,
"SHAKE stats (type/ave/delta) on step " BIGINT_FORMAT "\n",
update->ntimestep);
for (i = 0; i < nb; i++)
if (b_count_all[i])
fprintf(logfile," %d %g %g\n",i,
b_ave_all[i]/b_count_all[i],b_max_all[i]-b_min_all[i]);
for (i = 0; i < na; i++)
if (a_count_all[i])
fprintf(logfile," %d %g %g\n",i,
a_ave_all[i]/a_count_all[i],a_max_all[i]-a_min_all[i]);
}
}
// next timestep for stats
next_output += output_every;
}
/* ----------------------------------------------------------------------
find a bond between global tags n1 and n2 stored with local atom i
return -1 if don't find it
return bond index if do find it
------------------------------------------------------------------------- */
int FixShake::bondfind(int i, int n1, int n2)
{
int *tag = atom->tag;
int **bond_atom = atom->bond_atom;
int nbonds = atom->num_bond[i];
int m;
for (m = 0; m < nbonds; m++) {
if (n1 == tag[i] && n2 == bond_atom[i][m]) break;
if (n1 == bond_atom[i][m] && n2 == tag[i]) break;
}
if (m < nbonds) return m;
return -1;
}
/* ----------------------------------------------------------------------
find an angle with global end atoms n1 and n2 stored with local atom i
return -1 if don't find it
return angle index if do find it
------------------------------------------------------------------------- */
int FixShake::anglefind(int i, int n1, int n2)
{
int **angle_atom1 = atom->angle_atom1;
int **angle_atom3 = atom->angle_atom3;
int nangles = atom->num_angle[i];
int m;
for (m = 0; m < nangles; m++) {
if (n1 == angle_atom1[i][m] && n2 == angle_atom3[i][m]) break;
if (n1 == angle_atom3[i][m] && n2 == angle_atom1[i][m]) break;
}
if (m < nangles) return m;
return -1;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixShake::memory_usage()
{
int nmax = atom->nmax;
double bytes = nmax * sizeof(int);
bytes += nmax*4 * sizeof(int);
bytes += nmax*3 * sizeof(int);
bytes += nmax*3 * sizeof(double);
bytes += maxvatom*6 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate local atom-based arrays
------------------------------------------------------------------------- */
void FixShake::grow_arrays(int nmax)
{
memory->grow(shake_flag,nmax,"shake:shake_flag");
memory->grow(shake_atom,nmax,4,"shake:shake_atom");
memory->grow(shake_type,nmax,3,"shake:shake_type");
memory->destroy(xshake);
memory->create(xshake,nmax,3,"shake:xshake");
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixShake::copy_arrays(int i, int j)
{
int flag = shake_flag[j] = shake_flag[i];
if (flag == 1) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
shake_type[j][2] = shake_type[i][2];
} else if (flag == 2) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_type[j][0] = shake_type[i][0];
} else if (flag == 3) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
} else if (flag == 4) {
shake_atom[j][0] = shake_atom[i][0];
shake_atom[j][1] = shake_atom[i][1];
shake_atom[j][2] = shake_atom[i][2];
shake_atom[j][3] = shake_atom[i][3];
shake_type[j][0] = shake_type[i][0];
shake_type[j][1] = shake_type[i][1];
shake_type[j][2] = shake_type[i][2];
}
}
/* ----------------------------------------------------------------------
initialize one atom's array values, called when atom is created
------------------------------------------------------------------------- */
void FixShake::set_arrays(int i)
{
shake_flag[i] = 0;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixShake::pack_exchange(int i, double *buf)
{
int m = 0;
buf[m++] = shake_flag[i];
int flag = shake_flag[i];
if (flag == 1) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
buf[m++] = shake_type[i][2];
} else if (flag == 2) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_type[i][0];
} else if (flag == 3) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
} else if (flag == 4) {
buf[m++] = shake_atom[i][0];
buf[m++] = shake_atom[i][1];
buf[m++] = shake_atom[i][2];
buf[m++] = shake_atom[i][3];
buf[m++] = shake_type[i][0];
buf[m++] = shake_type[i][1];
buf[m++] = shake_type[i][2];
}
return m;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixShake::unpack_exchange(int nlocal, double *buf)
{
int m = 0;
int flag = shake_flag[nlocal] = static_cast<int> (buf[m++]);
if (flag == 1) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][2] = static_cast<int> (buf[m++]);
} else if (flag == 2) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
} else if (flag == 3) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
} else if (flag == 4) {
shake_atom[nlocal][0] = static_cast<int> (buf[m++]);
shake_atom[nlocal][1] = static_cast<int> (buf[m++]);
shake_atom[nlocal][2] = static_cast<int> (buf[m++]);
shake_atom[nlocal][3] = static_cast<int> (buf[m++]);
shake_type[nlocal][0] = static_cast<int> (buf[m++]);
shake_type[nlocal][1] = static_cast<int> (buf[m++]);
shake_type[nlocal][2] = static_cast<int> (buf[m++]);
}
return m;
}
/* ---------------------------------------------------------------------- */
int FixShake::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc)
{
int i,j,m;
double dx,dy,dz;
m = 0;
if (pbc_flag == 0) {
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = xshake[j][0];
buf[m++] = xshake[j][1];
buf[m++] = xshake[j][2];
}
} else {
if (domain->triclinic == 0) {
dx = pbc[0]*domain->xprd;
dy = pbc[1]*domain->yprd;
dz = pbc[2]*domain->zprd;
} else {
dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz;
dy = pbc[1]*domain->yprd + pbc[3]*domain->yz;
dz = pbc[2]*domain->zprd;
}
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = xshake[j][0] + dx;
buf[m++] = xshake[j][1] + dy;
buf[m++] = xshake[j][2] + dz;
}
}
return 3;
}
/* ---------------------------------------------------------------------- */
void FixShake::unpack_comm(int n, int first, double *buf)
{
int i,m,last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
xshake[i][0] = buf[m++];
xshake[i][1] = buf[m++];
xshake[i][2] = buf[m++];
}
}
/* ---------------------------------------------------------------------- */
void FixShake::reset_dt()
{
- if (strcmp(update->integrate_style,"verlet") == 0) {
+ if (strstr(update->integrate_style,"verlet")) {
dtv = update->dt;
dtfsq = update->dt * update->dt * force->ftm2v;
} else {
dtv = step_respa[0];
dtf_innerhalf = 0.5 * step_respa[0] * force->ftm2v;
dtf_inner = step_respa[0] * force->ftm2v;
}
}
diff --git a/src/fix_spring.cpp b/src/fix_spring.cpp
index 170cd1977..d6666f2b4 100644
--- a/src/fix_spring.cpp
+++ b/src/fix_spring.cpp
@@ -1,345 +1,345 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_spring.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "domain.h"
#include "error.h"
#include "group.h"
using namespace LAMMPS_NS;
#define SMALL 1.0e-10
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
enum{TETHER,COUPLE};
/* ---------------------------------------------------------------------- */
FixSpring::FixSpring(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 9) error->all("Illegal fix spring command");
scalar_flag = 1;
vector_flag = 1;
size_vector = 4;
global_freq = 1;
extscalar = 1;
extvector = 1;
group2 = NULL;
if (strcmp(arg[3],"tether") == 0) {
if (narg != 9) error->all("Illegal fix spring command");
styleflag = TETHER;
k_spring = atof(arg[4]);
xflag = yflag = zflag = 1;
if (strcmp(arg[5],"NULL") == 0) xflag = 0;
else xc = atof(arg[5]);
if (strcmp(arg[6],"NULL") == 0) yflag = 0;
else yc = atof(arg[6]);
if (strcmp(arg[7],"NULL") == 0) zflag = 0;
else zc = atof(arg[7]);
r0 = atof(arg[8]);
if (r0 < 0) error->all("R0 < 0 for fix spring command");
} else if (strcmp(arg[3],"couple") == 0) {
if (narg != 10) error->all("Illegal fix spring command");
styleflag = COUPLE;
int n = strlen(arg[4]) + 1;
group2 = new char[n];
strcpy(group2,arg[4]);
igroup2 = group->find(arg[4]);
if (igroup2 == -1)
error->all("Fix spring couple group ID does not exist");
if (igroup2 == igroup)
error->all("Two groups cannot be the same in fix spring couple");
group2bit = group->bitmask[igroup2];
k_spring = atof(arg[5]);
xflag = yflag = zflag = 1;
if (strcmp(arg[6],"NULL") == 0) xflag = 0;
else xc = atof(arg[6]);
if (strcmp(arg[7],"NULL") == 0) yflag = 0;
else yc = atof(arg[7]);
if (strcmp(arg[8],"NULL") == 0) zflag = 0;
else zc = atof(arg[8]);
r0 = atof(arg[9]);
if (r0 < 0) error->all("R0 < 0 for fix spring command");
} else error->all("Illegal fix spring command");
ftotal[0] = ftotal[1] = ftotal[2] = ftotal[3] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixSpring::~FixSpring()
{
delete [] group2;
}
/* ---------------------------------------------------------------------- */
int FixSpring::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSpring::init()
{
// recheck that group 2 has not been deleted
if (group2) {
igroup2 = group->find(group2);
if (igroup2 == -1)
error->all("Fix spring couple group ID does not exist");
group2bit = group->bitmask[igroup2];
}
masstotal = group->mass(igroup);
if (styleflag == COUPLE) masstotal2 = group->mass(igroup2);
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixSpring::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixSpring::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSpring::post_force(int vflag)
{
if (styleflag == TETHER) spring_tether();
else spring_couple();
}
/* ---------------------------------------------------------------------- */
void FixSpring::spring_tether()
{
double xcm[3];
group->xcm(igroup,masstotal,xcm);
// fx,fy,fz = components of k * (r-r0) / masstotal
double dx,dy,dz,fx,fy,fz,r,dr;
dx = xcm[0] - xc;
dy = xcm[1] - yc;
dz = xcm[2] - zc;
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r = sqrt(dx*dx + dy*dy + dz*dz);
r = MAX(r,SMALL);
dr = r - r0;
fx = k_spring*dx*dr/r;
fy = k_spring*dy*dr/r;
fz = k_spring*dz*dr/r;
ftotal[0] = -fx;
ftotal[1] = -fy;
ftotal[2] = -fz;
ftotal[3] = sqrt(fx*fx + fy*fy + fz*fz);
if (dr < 0.0) ftotal[3] = -ftotal[3];
espring = 0.5*k_spring * dr*dr;
fx /= masstotal;
fy /= masstotal;
fz /= masstotal;
// apply restoring force to atoms in group
double **f = atom->f;
int *mask = atom->mask;
int *type = atom->type;
double *mass = atom->mass;
double *rmass = atom->rmass;
int nlocal = atom->nlocal;
double massone;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
massone = rmass[i];
f[i][0] -= fx*massone;
f[i][1] -= fy*massone;
f[i][2] -= fz*massone;
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
massone = mass[type[i]];
f[i][0] -= fx*massone;
f[i][1] -= fy*massone;
f[i][2] -= fz*massone;
}
}
}
/* ---------------------------------------------------------------------- */
void FixSpring::spring_couple()
{
double xcm[3],xcm2[3];
group->xcm(igroup,masstotal,xcm);
group->xcm(igroup2,masstotal2,xcm2);
// fx,fy,fz = components of k * (r-r0) / masstotal
// fx2,fy2,fz2 = components of k * (r-r0) / masstotal2
double dx,dy,dz,fx,fy,fz,fx2,fy2,fz2,r,dr;
dx = xcm2[0] - xcm[0] - xc;
dy = xcm2[1] - xcm[1] - yc;
dz = xcm2[2] - xcm[2] - zc;
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
if (!zflag) dz = 0.0;
r = sqrt(dx*dx + dy*dy + dz*dz);
r = MAX(r,SMALL);
dr = r - r0;
fx = k_spring*dx*dr/r;
fy = k_spring*dy*dr/r;
fz = k_spring*dz*dr/r;
ftotal[0] = fx;
ftotal[1] = fy;
ftotal[2] = fz;
ftotal[3] = sqrt(fx*fx + fy*fy + fz*fz);
if (dr < 0.0) ftotal[3] = -ftotal[3];
espring = 0.5*k_spring * dr*dr;
fx2 = fx/masstotal2;
fy2 = fy/masstotal2;
fz2 = fz/masstotal2;
fx /= masstotal;
fy /= masstotal;
fz /= masstotal;
// apply restoring force to atoms in group
// f = -k*(r-r0)*mass/masstotal
double **f = atom->f;
int *mask = atom->mask;
int *type = atom->type;
double *mass = atom->mass;
double *rmass = atom->rmass;
int nlocal = atom->nlocal;
double massone;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
massone = rmass[i];
f[i][0] += fx*massone;
f[i][1] += fy*massone;
f[i][2] += fz*massone;
}
if (mask[i] & group2bit) {
massone = rmass[i];
f[i][0] -= fx2*massone;
f[i][1] -= fy2*massone;
f[i][2] -= fz2*massone;
}
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
massone = mass[type[i]];
f[i][0] += fx*massone;
f[i][1] += fy*massone;
f[i][2] += fz*massone;
}
if (mask[i] & group2bit) {
massone = mass[type[i]];
f[i][0] -= fx2*massone;
f[i][1] -= fy2*massone;
f[i][2] -= fz2*massone;
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixSpring::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSpring::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
energy of stretched spring
------------------------------------------------------------------------- */
double FixSpring::compute_scalar()
{
return espring;
}
/* ----------------------------------------------------------------------
return components of total spring force on fix group
------------------------------------------------------------------------- */
double FixSpring::compute_vector(int n)
{
return ftotal[n];
}
diff --git a/src/fix_spring_rg.cpp b/src/fix_spring_rg.cpp
index 6337967dd..e4d55eba2 100644
--- a/src/fix_spring_rg.cpp
+++ b/src/fix_spring_rg.cpp
@@ -1,138 +1,138 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Naveen Michaud-Agrawal (Johns Hopkins U)
Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_spring_rg.h"
#include "atom.h"
#include "update.h"
#include "group.h"
#include "respa.h"
#include "domain.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixSpringRG::FixSpringRG(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 5) error->all("Illegal fix spring/rg command");
k = atof(arg[3]);
rg0_flag = 0;
if (strcmp(arg[4],"NULL") == 0) rg0_flag = 1;
else rg0 = atof(arg[4]);
}
/* ---------------------------------------------------------------------- */
int FixSpringRG::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSpringRG::init()
{
masstotal = group->mass(igroup);
// if rg0 was specified as NULL, compute current Rg
// only occurs on 1st run
if (rg0_flag) {
double xcm[3];
group->xcm(igroup,masstotal,xcm);
rg0 = group->gyration(igroup,masstotal,xcm);
rg0_flag = 0;
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixSpringRG::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixSpringRG::post_force(int vflag)
{
// compute current Rg and center-of-mass
double xcm[3];
group->xcm(igroup,masstotal,xcm);
double rg = group->gyration(igroup,masstotal,xcm);
// apply restoring force to atoms in group
// f = -k*(r-r0)*mass/masstotal
double dx,dy,dz,term1;
double **f = atom->f;
double **x = atom->x;
int *mask = atom->mask;
int *type = atom->type;
int *image = atom->image;
double *mass = atom->mass;
int nlocal = atom->nlocal;
double massfrac;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
int xbox,ybox,zbox;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
term1 = 2.0 * k * (1.0 - rg0/rg);
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = (x[i][0] + xbox*xprd) - xcm[0];
dy = (x[i][1] + ybox*yprd) - xcm[1];
dz = (x[i][2] + zbox*zprd) - xcm[2];
massfrac = mass[type[i]]/masstotal;
f[i][0] -= term1*dx*massfrac;
f[i][1] -= term1*dy*massfrac;
f[i][2] -= term1*dz*massfrac;
}
}
/* ---------------------------------------------------------------------- */
void FixSpringRG::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
diff --git a/src/fix_spring_self.cpp b/src/fix_spring_self.cpp
index c36092c3f..849d7c478 100644
--- a/src/fix_spring_self.cpp
+++ b/src/fix_spring_self.cpp
@@ -1,294 +1,294 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Naveen Michaud-Agrawal (Johns Hopkins University)
------------------------------------------------------------------------- */
#include "stdlib.h"
#include "string.h"
#include "fix_spring_self.h"
#include "atom.h"
#include "update.h"
#include "domain.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixSpringSelf::FixSpringSelf(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 4) error->all("Illegal fix spring/self command");
restart_peratom = 1;
scalar_flag = 1;
global_freq = 1;
extscalar = 1;
k = atof(arg[3]);
if (k <= 0.0) error->all("Illegal fix spring/self command");
// perform initial allocation of atom-based array
// register with Atom class
xoriginal = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
// xoriginal = initial unwrapped positions of atoms
double **x = atom->x;
int *mask = atom->mask;
int *image = atom->image;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
int xbox,ybox,zbox;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xoriginal[i][0] = x[i][0] + xbox*xprd;
xoriginal[i][1] = x[i][1] + ybox*yprd;
xoriginal[i][2] = x[i][2] + zbox*zprd;
} else xoriginal[i][0] = xoriginal[i][1] = xoriginal[i][2] = 0.0;
}
espring = 0.0;
}
/* ---------------------------------------------------------------------- */
FixSpringSelf::~FixSpringSelf()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
atom->delete_callback(id,1);
// delete locally stored array
memory->destroy(xoriginal);
}
/* ---------------------------------------------------------------------- */
int FixSpringSelf::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::post_force(int vflag)
{
double **x = atom->x;
double **f = atom->f;
int *mask = atom->mask;
int *image = atom->image;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
int xbox,ybox,zbox;
double dx,dy,dz;
espring = 0.0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xoriginal[i][0];
dy = x[i][1] + ybox*yprd - xoriginal[i][1];
dz = x[i][2] + zbox*zprd - xoriginal[i][2];
f[i][0] -= k*dx;
f[i][1] -= k*dy;
f[i][2] -= k*dz;
espring += k * (dx*dx + dy*dy + dz*dz);
}
espring *= 0.5;
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixSpringSelf::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
energy of stretched springs
------------------------------------------------------------------------- */
double FixSpringSelf::compute_scalar()
{
double all;
MPI_Allreduce(&espring,&all,1,MPI_DOUBLE,MPI_SUM,world);
return all;
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixSpringSelf::memory_usage()
{
double bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate atom-based array
------------------------------------------------------------------------- */
void FixSpringSelf::grow_arrays(int nmax)
{
memory->grow(xoriginal,nmax,3,"fix_spring/self:xoriginal");
}
/* ----------------------------------------------------------------------
copy values within local atom-based array
------------------------------------------------------------------------- */
void FixSpringSelf::copy_arrays(int i, int j)
{
xoriginal[j][0] = xoriginal[i][0];
xoriginal[j][1] = xoriginal[i][1];
xoriginal[j][2] = xoriginal[i][2];
}
/* ----------------------------------------------------------------------
pack values in local atom-based array for exchange with another proc
------------------------------------------------------------------------- */
int FixSpringSelf::pack_exchange(int i, double *buf)
{
buf[0] = xoriginal[i][0];
buf[1] = xoriginal[i][1];
buf[2] = xoriginal[i][2];
return 3;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based array from exchange with another proc
------------------------------------------------------------------------- */
int FixSpringSelf::unpack_exchange(int nlocal, double *buf)
{
xoriginal[nlocal][0] = buf[0];
xoriginal[nlocal][1] = buf[1];
xoriginal[nlocal][2] = buf[2];
return 3;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for restart file
------------------------------------------------------------------------- */
int FixSpringSelf::pack_restart(int i, double *buf)
{
buf[0] = 4;
buf[1] = xoriginal[i][0];
buf[2] = xoriginal[i][1];
buf[3] = xoriginal[i][2];
return 4;
}
/* ----------------------------------------------------------------------
unpack values from atom->extra array to restart the fix
------------------------------------------------------------------------- */
void FixSpringSelf::unpack_restart(int nlocal, int nth)
{
double **extra = atom->extra;
// skip to Nth set of extra values
int m = 0;
for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]);
m++;
xoriginal[nlocal][0] = extra[nlocal][m++];
xoriginal[nlocal][1] = extra[nlocal][m++];
xoriginal[nlocal][2] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
maxsize of any atom's restart data
------------------------------------------------------------------------- */
int FixSpringSelf::maxsize_restart()
{
return 4;
}
/* ----------------------------------------------------------------------
size of atom nlocal's restart data
------------------------------------------------------------------------- */
int FixSpringSelf::size_restart(int nlocal)
{
return 4;
}
diff --git a/src/fix_store_force.cpp b/src/fix_store_force.cpp
index 6af760c9d..5d1e52b64 100644
--- a/src/fix_store_force.cpp
+++ b/src/fix_store_force.cpp
@@ -1,139 +1,139 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "string.h"
#include "fix_store_force.h"
#include "atom.h"
#include "update.h"
#include "group.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixStoreForce::FixStoreForce(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 3) error->all("Illegal fix store/coord command");
peratom_flag = 1;
size_peratom_cols = 3;
peratom_freq = 1;
nmax = atom->nmax;
memory->create(foriginal,nmax,3,"store/force:foriginal");
array_atom = foriginal;
// zero the array since dump may access it on timestep 0
// zero the array since a variable may access it before first run
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
foriginal[i][0] = foriginal[i][1] = foriginal[i][2] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixStoreForce::~FixStoreForce()
{
memory->destroy(foriginal);
}
/* ---------------------------------------------------------------------- */
int FixStoreForce::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::post_force(int vflag)
{
if (atom->nlocal > nmax) {
nmax = atom->nmax;
memory->destroy(foriginal);
memory->create(foriginal,nmax,3,"store/force:foriginal");
array_atom = foriginal;
}
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
foriginal[i][0] = f[i][0];
foriginal[i][1] = f[i][1];
foriginal[i][2] = f[i][2];
} else foriginal[i][0] = foriginal[i][1] = foriginal[i][2] = 0.0;
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixStoreForce::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixStoreForce::memory_usage()
{
double bytes = atom->nmax*3 * sizeof(double);
return bytes;
}
diff --git a/src/fix_store_state.cpp b/src/fix_store_state.cpp
index 54c94ad05..7f49140d5 100644
--- a/src/fix_store_state.cpp
+++ b/src/fix_store_state.cpp
@@ -1,1258 +1,1258 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "stdlib.h"
#include "string.h"
#include "fix_store_state.h"
#include "atom.h"
#include "domain.h"
#include "update.h"
#include "group.h"
#include "modify.h"
#include "compute.h"
#include "fix.h"
#include "input.h"
#include "variable.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{KEYWORD,COMPUTE,FIX,VARIABLE};
#define INVOKED_PERATOM 8
/* ---------------------------------------------------------------------- */
FixStoreState::FixStoreState(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 5) error->all("Illegal fix store/state command");
restart_peratom = 1;
peratom_freq = 1;
nevery = atoi(arg[3]);
if (nevery < 0) error->all("Illegal fix store/state command");
// parse values until one isn't recognized
// customize a new keyword by adding to if statement
pack_choice = new FnPtrPack[narg-4];
which = new int[narg-4];
argindex = new int[narg-4];
ids = new char*[narg-4];
value2index = new int[narg-4];
nvalues = 0;
cfv_any = 0;
int iarg = 4;
while (iarg < narg) {
which[nvalues] = KEYWORD;
ids[nvalues] = NULL;
if (strcmp(arg[iarg],"id") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_id;
} else if (strcmp(arg[iarg],"mol") == 0) {
if (!atom->molecule_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_molecule;
} else if (strcmp(arg[iarg],"type") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_type;
} else if (strcmp(arg[iarg],"mass") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_mass;
} else if (strcmp(arg[iarg],"x") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_x;
} else if (strcmp(arg[iarg],"y") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_y;
} else if (strcmp(arg[iarg],"z") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_z;
} else if (strcmp(arg[iarg],"xs") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_xs_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_xs;
} else if (strcmp(arg[iarg],"ys") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_ys_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_ys;
} else if (strcmp(arg[iarg],"zs") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_zs_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_zs;
} else if (strcmp(arg[iarg],"xu") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_xu_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_xu;
} else if (strcmp(arg[iarg],"yu") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_yu_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_yu;
} else if (strcmp(arg[iarg],"zu") == 0) {
if (domain->triclinic)
pack_choice[nvalues++] = &FixStoreState::pack_zu_triclinic;
else pack_choice[nvalues++] = &FixStoreState::pack_zu;
} else if (strcmp(arg[iarg],"ix") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_ix;
} else if (strcmp(arg[iarg],"iy") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_iy;
} else if (strcmp(arg[iarg],"iz") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_iz;
} else if (strcmp(arg[iarg],"vx") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_vx;
} else if (strcmp(arg[iarg],"vy") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_vy;
} else if (strcmp(arg[iarg],"vz") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_vz;
} else if (strcmp(arg[iarg],"fx") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_fx;
} else if (strcmp(arg[iarg],"fy") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_fy;
} else if (strcmp(arg[iarg],"fz") == 0) {
pack_choice[nvalues++] = &FixStoreState::pack_fz;
} else if (strcmp(arg[iarg],"q") == 0) {
if (!atom->q_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_q;
} else if (strcmp(arg[iarg],"mux") == 0) {
if (!atom->mu_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_mux;
} else if (strcmp(arg[iarg],"muy") == 0) {
if (!atom->mu_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_muy;
} else if (strcmp(arg[iarg],"muz") == 0) {
if (!atom->mu_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_muz;
} else if (strcmp(arg[iarg],"radius") == 0) {
if (!atom->radius_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_radius;
} else if (strcmp(arg[iarg],"omegax") == 0) {
if (!atom->omega_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_omegax;
} else if (strcmp(arg[iarg],"omegay") == 0) {
if (!atom->omega_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_omegay;
} else if (strcmp(arg[iarg],"omegaz") == 0) {
if (!atom->omega_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_omegaz;
} else if (strcmp(arg[iarg],"angmomx") == 0) {
if (!atom->angmom_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_angmomx;
} else if (strcmp(arg[iarg],"angmomy") == 0) {
if (!atom->angmom_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_angmomy;
} else if (strcmp(arg[iarg],"angmomz") == 0) {
if (!atom->angmom_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_angmomz;
} else if (strcmp(arg[iarg],"tqx") == 0) {
if (!atom->torque_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_tqx;
} else if (strcmp(arg[iarg],"tqy") == 0) {
if (!atom->torque_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_tqy;
} else if (strcmp(arg[iarg],"tqz") == 0) {
if (!atom->torque_flag)
error->all("Fix store/state for atom property that isn't allocated");
pack_choice[nvalues++] = &FixStoreState::pack_tqz;
} else if (strncmp(arg[iarg],"c_",2) == 0 ||
strncmp(arg[iarg],"f_",2) == 0 ||
strncmp(arg[iarg],"v_",2) == 0) {
cfv_any = 1;
if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE;
else if (arg[iarg][0] == 'f') which[nvalues] = FIX;
else if (arg[iarg][0] == 'v') which[nvalues] = VARIABLE;
int n = strlen(arg[iarg]);
char *suffix = new char[n];
strcpy(suffix,&arg[iarg][2]);
char *ptr = strchr(suffix,'[');
if (ptr) {
if (suffix[strlen(suffix)-1] != ']')
error->all("Illegal fix store/state command");
argindex[nvalues] = atoi(ptr+1);
*ptr = '\0';
} else argindex[nvalues] = 0;
n = strlen(suffix) + 1;
ids[nvalues] = new char[n];
strcpy(ids[nvalues],suffix);
nvalues++;
delete [] suffix;
} else break;
iarg++;
}
// optional args
comflag = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"com") == 0) {
if (iarg+2 > narg) error->all("Illegal fix store/state command");
if (strcmp(arg[iarg+1],"no") == 0) comflag = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) comflag = 1;
else error->all("Illegal fix store/state command");
iarg += 2;
} else error->all("Illegal fix store/state command");
}
// error check
for (int i = 0; i < nvalues; i++) {
if (which[i] == COMPUTE) {
int icompute = modify->find_compute(ids[i]);
if (icompute < 0)
error->all("Compute ID for fix store/state does not exist");
if (modify->compute[icompute]->peratom_flag == 0)
error->all("Fix store/state compute "
"does not calculate per-atom values");
if (argindex[i] == 0 &&
modify->compute[icompute]->size_peratom_cols != 0)
error->all("Fix store/state compute does not "
"calculate a per-atom vector");
if (argindex[i] && modify->compute[icompute]->size_peratom_cols == 0)
error->all("Fix store/state compute does not "
"calculate a per-atom array");
if (argindex[i] &&
argindex[i] > modify->compute[icompute]->size_peratom_cols)
error->all("Fix store/state compute array is accessed out-of-range");
} else if (which[i] == FIX) {
int ifix = modify->find_fix(ids[i]);
if (ifix < 0)
error->all("Fix ID for fix store/state does not exist");
if (modify->fix[ifix]->peratom_flag == 0)
error->all("Fix store/state fix does not calculate per-atom values");
if (argindex[i] == 0 && modify->fix[ifix]->size_peratom_cols != 0)
error->all("Fix store/state fix does not calculate a per-atom vector");
if (argindex[i] && modify->fix[ifix]->size_peratom_cols == 0)
error->all("Fix store/state fix does not calculate a per-atom array");
if (argindex[i] && argindex[i] > modify->fix[ifix]->size_peratom_cols)
error->all("Fix store/state fix array is accessed out-of-range");
if (nevery % modify->fix[ifix]->peratom_freq)
error->all("Fix for fix store/state not computed at compatible time");
} else if (which[i] == VARIABLE) {
int ivariable = input->variable->find(ids[i]);
if (ivariable < 0)
error->all("Variable name for fix store/state does not exist");
if (input->variable->atomstyle(ivariable) == 0)
error->all("Fix store/state variable is not atom-style variable");
}
}
// this fix produces either a per-atom vector or array
peratom_flag = 1;
if (nvalues == 1) size_peratom_cols = 0;
else size_peratom_cols = nvalues;
// perform initial allocation of atom-based array
// register with Atom class
values = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
// zero the array since dump may access it on timestep 0
// zero the array since a variable may access it before first run
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
for (int m = 0; m < nvalues; m++)
values[i][m] = 0.0;
// store current values for keywords but not for compute, fix, variable
kflag = 1;
cfv_flag = 0;
end_of_step();
firstflag = 1;
}
/* ---------------------------------------------------------------------- */
FixStoreState::~FixStoreState()
{
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
atom->delete_callback(id,1);
delete [] which;
delete [] argindex;
for (int m = 0; m < nvalues; m++) delete [] ids[m];
delete [] ids;
delete [] value2index;
delete [] pack_choice;
memory->destroy(values);
}
/* ---------------------------------------------------------------------- */
int FixStoreState::setmask()
{
int mask = 0;
if (nevery) mask |= END_OF_STEP;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixStoreState::init()
{
// set indices and check validity of all computes,fixes,variables
for (int m = 0; m < nvalues; m++) {
if (which[m] == COMPUTE) {
int icompute = modify->find_compute(ids[m]);
if (icompute < 0)
error->all("Compute ID for fix store/state does not exist");
value2index[m] = icompute;
} else if (which[m] == FIX) {
int ifix = modify->find_fix(ids[m]);
if (ifix < 0)
error->all("Fix ID for fix store/state does not exist");
value2index[m] = ifix;
} else if (which[m] == VARIABLE) {
int ivariable = input->variable->find(ids[m]);
if (ivariable < 0)
error->all("Variable name for fix store/state does not exist");
value2index[m] = ivariable;
}
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::setup(int vflag)
{
// if first invocation, store current values for compute, fix, variable
if (firstflag) {
kflag = 0;
cfv_flag = 1;
end_of_step();
firstflag = 0;
kflag = cfv_flag = 1;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::end_of_step()
{
int i,j,n;
// compute com if comflag set
if (comflag) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,cm);
}
// if any compute/fix/variable and nevery, wrap with clear/add
if (cfv_any && nevery) modify->clearstep_compute();
// fill vector or array with per-atom values
if (values) vbuf = &values[0][0];
else vbuf = NULL;
for (int m = 0; m < nvalues; m++) {
if (which[m] == KEYWORD && kflag) (this->*pack_choice[m])(m);
else if (cfv_flag) {
n = value2index[m];
j = argindex[m];
int *mask = atom->mask;
int nlocal = atom->nlocal;
// invoke compute if not previously invoked
if (which[m] == COMPUTE) {
Compute *compute = modify->compute[n];
if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
if (j == 0) {
double *compute_vector = compute->vector_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) values[i][m] += compute_vector[i];
} else {
int jm1 = j - 1;
double **compute_array = compute->array_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) values[i][m] += compute_array[i][jm1];
}
// access fix fields, guaranteed to be ready
} else if (which[m] == FIX) {
if (j == 0) {
double *fix_vector = modify->fix[n]->vector_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) values[i][m] += fix_vector[i];
} else {
int jm1 = j - 1;
double **fix_array = modify->fix[n]->array_atom;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) values[i][m] += fix_array[i][jm1];
}
// evaluate atom-style variable
} else if (which[m] == VARIABLE)
- input->variable->compute_atom(n,igroup,&values[0][m],nvalues,1);
+ input->variable->compute_atom(n,igroup,&values[0][m],nvalues,0);
}
}
// if any compute/fix/variable and nevery, wrap with clear/add
if (cfv_any && nevery) {
int nextstep = (update->ntimestep/nevery)*nevery + nevery;
modify->addstep_compute(nextstep);
}
}
/* ----------------------------------------------------------------------
memory usage of local atom-based array
------------------------------------------------------------------------- */
double FixStoreState::memory_usage()
{
double bytes = atom->nmax*nvalues * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate atom-based array
------------------------------------------------------------------------- */
void FixStoreState::grow_arrays(int nmax)
{
memory->grow(values,nmax,nvalues,"store/state:values");
if (nvalues == 1) {
if (nmax) vector_atom = &values[0][0];
else vector_atom = NULL;
} else array_atom = values;
}
/* ----------------------------------------------------------------------
copy values within local atom-based array
------------------------------------------------------------------------- */
void FixStoreState::copy_arrays(int i, int j)
{
for (int m = 0; m < nvalues; m++) values[j][m] = values[i][m];
}
/* ----------------------------------------------------------------------
pack values in local atom-based array for exchange with another proc
------------------------------------------------------------------------- */
int FixStoreState::pack_exchange(int i, double *buf)
{
for (int m = 0; m < nvalues; m++) buf[m] = values[i][m];
return nvalues;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based array from exchange with another proc
------------------------------------------------------------------------- */
int FixStoreState::unpack_exchange(int nlocal, double *buf)
{
for (int m = 0; m < nvalues; m++) values[nlocal][m] = buf[m];
return nvalues;
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for restart file
------------------------------------------------------------------------- */
int FixStoreState::pack_restart(int i, double *buf)
{
buf[0] = nvalues+1;
for (int m = 0; m < nvalues; m++) buf[m+1] = values[i][m];
return nvalues+1;
}
/* ----------------------------------------------------------------------
unpack values from atom->extra array to restart the fix
------------------------------------------------------------------------- */
void FixStoreState::unpack_restart(int nlocal, int nth)
{
double **extra = atom->extra;
// skip to Nth set of extra values
int m = 0;
for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]);
m++;
for (int i = 0; i < nvalues; i++) values[nlocal][i] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
maxsize of any atom's restart data
------------------------------------------------------------------------- */
int FixStoreState::maxsize_restart()
{
return nvalues+1;
}
/* ----------------------------------------------------------------------
size of atom nlocal's restart data
------------------------------------------------------------------------- */
int FixStoreState::size_restart(int nlocal)
{
return nvalues+1;
}
/* ----------------------------------------------------------------------
one method for every keyword fix store/state can archive
the atom property is packed into buf starting at n with stride nvalues
customize a new keyword by adding a method
------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_id(int n)
{
int *tag = atom->tag;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = tag[i];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_molecule(int n)
{
int *molecule = atom->molecule;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = molecule[i];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_type(int n)
{
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = type[i];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_mass(int n)
{
int *type = atom->type;
double *mass = atom->mass;
double *rmass = atom->rmass;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (rmass) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = rmass[i];
else vbuf[n] = 0.0;
n += nvalues;
}
} else {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = mass[type[i]];
else vbuf[n] = 0.0;
n += nvalues;
}
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_x(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = x[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_y(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = x[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_z(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = x[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_xs(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double boxxlo = domain->boxlo[0];
double invxprd = 1.0/domain->xprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (x[i][0] - boxxlo) * invxprd;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_ys(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double boxylo = domain->boxlo[1];
double invyprd = 1.0/domain->yprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (x[i][1] - boxylo) * invyprd;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_zs(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double boxzlo = domain->boxlo[2];
double invzprd = 1.0/domain->zprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (x[i][2] - boxzlo) * invzprd;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_xs_triclinic(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *boxlo = domain->boxlo;
double *h_inv = domain->h_inv;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
vbuf[n] = h_inv[0]*(x[i][0]-boxlo[0]) +
h_inv[5]*(x[i][1]-boxlo[1]) + h_inv[4]*(x[i][2]-boxlo[2]);
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_ys_triclinic(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *boxlo = domain->boxlo;
double *h_inv = domain->h_inv;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
vbuf[n] = h_inv[1]*(x[i][1]-boxlo[1]) + h_inv[3]*(x[i][2]-boxlo[2]);
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_zs_triclinic(int n)
{
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *boxlo = domain->boxlo;
double *h_inv = domain->h_inv;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
vbuf[n] = h_inv[2]*(x[i][2]-boxlo[2]);
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_xu(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
vbuf[n] = x[i][0] + ((image[i] & 1023) - 512) * xprd;
if (comflag) vbuf[n] -= cm[0];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_yu(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double yprd = domain->yprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
vbuf[n] = x[i][1] + ((image[i] >> 10 & 1023) - 512) * yprd;
if (comflag) vbuf[n] -= cm[1];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_zu(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double zprd = domain->zprd;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
vbuf[n] = x[i][2] + ((image[i] >> 20) - 512) * zprd;
if (comflag) vbuf[n] -= cm[2];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_xu_triclinic(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *h = domain->h;
int xbox,ybox,zbox;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
vbuf[n] = x[i][0] + h[0]*xbox + h[5]*ybox + h[4]*zbox;
if (comflag) vbuf[n] -= cm[0];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_yu_triclinic(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *h = domain->h;
int ybox,zbox;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
vbuf[n] = x[i][1] + h[1]*ybox + h[3]*zbox;
if (comflag) vbuf[n] -= cm[1];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_zu_triclinic(int n)
{
double **x = atom->x;
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double *h = domain->h;
int zbox;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
zbox = (image[i] >> 20) - 512;
vbuf[n] = x[i][2] + h[2]*zbox;
if (comflag) vbuf[n] -= cm[2];
} else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_ix(int n)
{
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (image[i] & 1023) - 512;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_iy(int n)
{
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (image[i] >> 10 & 1023) - 512;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_iz(int n)
{
int *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = (image[i] >> 20) - 512;
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_vx(int n)
{
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = v[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_vy(int n)
{
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = v[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_vz(int n)
{
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = v[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_fx(int n)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = f[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_fy(int n)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = f[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_fz(int n)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = f[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_q(int n)
{
double *q = atom->q;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = q[i];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_mux(int n)
{
double **mu = atom->mu;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = mu[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_muy(int n)
{
double **mu = atom->mu;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = mu[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_muz(int n)
{
double **mu = atom->mu;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = mu[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_radius(int n)
{
double *radius = atom->radius;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = radius[i];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_omegax(int n)
{
double **omega = atom->omega;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = omega[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_omegay(int n)
{
double **omega = atom->omega;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = omega[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_omegaz(int n)
{
double **omega = atom->omega;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = omega[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_angmomx(int n)
{
double **angmom = atom->angmom;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = angmom[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_angmomy(int n)
{
double **angmom = atom->angmom;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = angmom[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_angmomz(int n)
{
double **angmom = atom->angmom;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = angmom[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_tqx(int n)
{
double **torque = atom->torque;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = torque[i][0];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_tqy(int n)
{
double **torque = atom->torque;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = torque[i][1];
else vbuf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void FixStoreState::pack_tqz(int n)
{
double **torque = atom->torque;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) vbuf[n] = torque[i][2];
else vbuf[n] = 0.0;
n += nvalues;
}
}
diff --git a/src/fix_tmd.cpp b/src/fix_tmd.cpp
index b2dfd9013..50865b200 100644
--- a/src/fix_tmd.cpp
+++ b/src/fix_tmd.cpp
@@ -1,561 +1,561 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Paul Crozier (SNL)
Christian Burisch (Bochum Univeristy, Germany)
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_tmd.h"
#include "atom.h"
#include "update.h"
#include "modify.h"
#include "domain.h"
#include "group.h"
#include "respa.h"
#include "force.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define CHUNK 1000
#define MAXLINE 256
/* ---------------------------------------------------------------------- */
FixTMD::FixTMD(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 6) error->all("Illegal fix tmd command");
rho_stop = atof(arg[3]);
nfileevery = atoi(arg[5]);
if (rho_stop < 0 || nfileevery < 0) error->all("Illegal fix tmd command");
if (nfileevery && narg != 7) error->all("Illegal fix tmd command");
MPI_Comm_rank(world,&me);
// perform initial allocation of atom-based arrays
// register with Atom class
xf = NULL;
xold = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
// make sure an atom map exists before reading in target coordinates
if (atom->map_style == 0)
error->all("Cannot use fix TMD unless atom map exists");
// read from arg[4] and store coordinates of final target in xf
readfile(arg[4]);
// open arg[6] statistics file and write header
if (nfileevery) {
if (narg != 7) error->all("Illegal fix tmd command");
if (me == 0) {
fp = fopen(arg[6],"w");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open fix tmd file %s",arg[6]);
error->one(str);
}
fprintf(fp,"%s %s\n","# Step rho_target rho_old gamma_back",
"gamma_forward lambda work_lambda work_analytical");
}
}
masstotal = group->mass(igroup);
// rho_start = initial rho
// xold = initial x or 0.0 if not in group
int *mask = atom->mask;
int *type = atom->type;
int *image = atom->image;
double **x = atom->x;
double *mass = atom->mass;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
double dx,dy,dz;
int xbox,ybox,zbox;
rho_start = 0.0;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xf[i][0];
dy = x[i][1] + ybox*yprd - xf[i][1];
dz = x[i][2] + zbox*zprd - xf[i][2];
rho_start += mass[type[i]]*(dx*dx + dy*dy + dz*dz);
xold[i][0] = x[i][0] + xbox*xprd;
xold[i][1] = x[i][1] + ybox*yprd;
xold[i][2] = x[i][2] + zbox*zprd;
} else xold[i][0] = xold[i][1] = xold[i][2] = 0.0;
}
double rho_start_total;
MPI_Allreduce(&rho_start,&rho_start_total,1,MPI_DOUBLE,MPI_SUM,world);
rho_start = sqrt(rho_start_total/masstotal);
rho_old = rho_start;
work_lambda = 0.0;
work_analytical = 0.0;
previous_stat = 0;
}
/* ---------------------------------------------------------------------- */
FixTMD::~FixTMD()
{
if (nfileevery && me == 0) fclose(fp);
// unregister callbacks to this fix from Atom class
atom->delete_callback(id,0);
// delete locally stored arrays
memory->destroy(xf);
memory->destroy(xold);
}
/* ---------------------------------------------------------------------- */
int FixTMD::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixTMD::init()
{
// check that no integrator fix comes after a TMD fix
int flag = 0;
for (int i = 0; i < modify->nfix; i++) {
if (strcmp(modify->fix[i]->style,"tmd") == 0) flag = 1;
if (flag && strcmp(modify->fix[i]->style,"nve") == 0) flag = 2;
if (flag && strcmp(modify->fix[i]->style,"nvt") == 0) flag = 2;
if (flag && strcmp(modify->fix[i]->style,"npt") == 0) flag = 2;
if (flag && strcmp(modify->fix[i]->style,"nph") == 0) flag = 2;
}
if (flag == 2) error->all("Fix tmd must come after integration fixes");
// timesteps
dtv = update->dt;
dtf = update->dt * force->ftm2v;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ---------------------------------------------------------------------- */
void FixTMD::initial_integrate(int vflag)
{
double a,b,c,d,e;
double dx,dy,dz,dxkt,dykt,dzkt;
double dxold,dyold,dzold,xback,yback,zback;
double gamma_forward,gamma_back,gamma_max,lambda;
double kt,fr,kttotal,frtotal,dtfm;
double xprd = domain->xprd;
double yprd = domain->yprd;
double zprd = domain->zprd;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *mass = atom->mass;
int *image = atom->image;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int xbox,ybox,zbox;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
double rho_target = rho_start + delta * (rho_stop - rho_start);
// compute the Lagrange multiplier
a = b = e = 0.0;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dxold = xold[i][0] - xf[i][0];
dyold = xold[i][1] - xf[i][1];
dzold = xold[i][2] - xf[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
dx = x[i][0] + xbox*xprd - xf[i][0];
dy = x[i][1] + ybox*yprd - xf[i][1];
dz = x[i][2] + zbox*zprd - xf[i][2];
a += mass[type[i]]*(dxold*dxold + dyold*dyold + dzold*dzold);
b += mass[type[i]]*(dx *dxold + dy *dyold + dz *dzold);
e += mass[type[i]]*(dx *dx + dy *dy + dz *dz);
}
}
double abe[3],abetotal[3];
abe[0] = a; abe[1] = b; abe[2] = e;
MPI_Allreduce(abe,abetotal,3,MPI_DOUBLE,MPI_SUM,world);
a = abetotal[0]/masstotal;
b = 2.0*abetotal[1]/masstotal;
e = abetotal[2]/masstotal;
c = e - rho_old*rho_old;
d = b*b - 4*a*c;
if (d < 0) d = 0;
if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a);
else gamma_max = (-b + sqrt(d))/(2*a);
gamma_back = c/(a*gamma_max);
if (a == 0.0) gamma_back = 0;
c = e - rho_target*rho_target;
d = b*b - 4*a*c;
if (d < 0) d = 0;
if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a);
else gamma_max = (-b + sqrt(d))/(2*a);
gamma_forward = c/(a*gamma_max);
if (a == 0.0) gamma_forward = 0;
fr = kt = 0.0;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dxold = xold[i][0] - xf[i][0];
dyold = xold[i][1] - xf[i][1];
dzold = xold[i][2] - xf[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xback = x[i][0] + xbox*xprd + gamma_back*dxold;
yback = x[i][1] + ybox*yprd + gamma_back*dyold;
zback = x[i][2] + zbox*zprd + gamma_back*dzold;
dxkt = xback - xold[i][0];
dykt = yback - xold[i][1];
dzkt = zback - xold[i][2];
kt += mass[type[i]]*(dxkt*dxkt + dykt*dykt + dzkt*dzkt);
fr += f[i][0]*dxold + f[i][1]*dyold + f[i][2]*dzold;
}
}
double r[2],rtotal[2];
r[0] = fr; r[1] = kt;
MPI_Allreduce(r,rtotal,2,MPI_DOUBLE,MPI_SUM,world);
frtotal = rtotal[0];
kttotal = rtotal[1];
// stat write of mean constraint force based on previous time step constraint
if (nfileevery && me == 0) {
work_analytical +=
(-frtotal - kttotal/dtv/dtf)*(rho_target - rho_old)/rho_old;
lambda = gamma_back*rho_old*masstotal/dtv/dtf;
work_lambda += lambda*(rho_target - rho_old);
if (!(update->ntimestep % nfileevery) &&
(previous_stat != update->ntimestep)) {
fprintf(fp,
BIGINT_FORMAT " %g %g %g %g %g %g %g\n",
update->ntimestep,rho_target,rho_old,
gamma_back,gamma_forward,lambda,work_lambda,work_analytical);
fflush(fp);
previous_stat = update->ntimestep;
}
}
rho_old = rho_target;
// apply the constraint and save constrained positions for next step
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
dxold = xold[i][0] - xf[i][0];
x[i][0] += gamma_forward*dxold;
v[i][0] += gamma_forward*dxold/dtv;
f[i][0] += gamma_forward*dxold/dtv/dtfm;
dyold = xold[i][1] - xf[i][1];
x[i][1] += gamma_forward*dyold;
v[i][1] += gamma_forward*dyold/dtv;
f[i][1] += gamma_forward*dyold/dtv/dtfm;
dzold = xold[i][2] - xf[i][2];
x[i][2] += gamma_forward*dzold;
v[i][2] += gamma_forward*dzold/dtv;
f[i][2] += gamma_forward*dzold/dtv/dtfm;
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xold[i][0] = x[i][0] + xbox*xprd;
xold[i][1] = x[i][1] + ybox*yprd;
xold[i][2] = x[i][2] + zbox*zprd;
}
}
}
/* ---------------------------------------------------------------------- */
void FixTMD::initial_integrate_respa(int vflag, int ilevel, int flag)
{
if (flag) return; // only used by NPT,NPH
dtv = step_respa[ilevel];
dtf = step_respa[ilevel] * force->ftm2v;
if (ilevel == 0) initial_integrate(vflag);
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double FixTMD::memory_usage()
{
double bytes = 2*atom->nmax*3 * sizeof(double);
return bytes;
}
/* ----------------------------------------------------------------------
allocate atom-based arrays
------------------------------------------------------------------------- */
void FixTMD::grow_arrays(int nmax)
{
memory->grow(xf,nmax,3,"fix_tmd:xf");
memory->grow(xold,nmax,3,"fix_tmd:xold");
}
/* ----------------------------------------------------------------------
copy values within local atom-based arrays
------------------------------------------------------------------------- */
void FixTMD::copy_arrays(int i, int j)
{
xf[j][0] = xf[i][0];
xf[j][1] = xf[i][1];
xf[j][2] = xf[i][2];
xold[j][0] = xold[i][0];
xold[j][1] = xold[i][1];
xold[j][2] = xold[i][2];
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for exchange with another proc
------------------------------------------------------------------------- */
int FixTMD::pack_exchange(int i, double *buf)
{
buf[0] = xf[i][0];
buf[1] = xf[i][1];
buf[2] = xf[i][2];
buf[3] = xold[i][0];
buf[4] = xold[i][1];
buf[5] = xold[i][2];
return 6;
}
/* ----------------------------------------------------------------------
unpack values in local atom-based arrays from exchange with another proc
------------------------------------------------------------------------- */
int FixTMD::unpack_exchange(int nlocal, double *buf)
{
xf[nlocal][0] = buf[0];
xf[nlocal][1] = buf[1];
xf[nlocal][2] = buf[2];
xold[nlocal][0] = buf[3];
xold[nlocal][1] = buf[4];
xold[nlocal][2] = buf[5];
return 6;
}
/* ----------------------------------------------------------------------
read target coordinates from file, store with appropriate atom
------------------------------------------------------------------------- */
void FixTMD::readfile(char *file)
{
if (me == 0) {
if (screen) fprintf(screen,"Reading TMD target file %s ...\n",file);
open(file);
}
int *mask = atom->mask;
int nlocal = atom->nlocal;
char *buffer = new char[CHUNK*MAXLINE];
char *ptr,*next,*bufptr;
int i,m,nlines,tag,imageflag,ix,iy,iz;
double x,y,z,xprd,yprd,zprd;
int firstline = 1;
int ncount = 0;
int eof = 0;
xprd = yprd = zprd = -1.0;
while (!eof) {
if (me == 0) {
m = 0;
for (nlines = 0; nlines < CHUNK; nlines++) {
ptr = fgets(&buffer[m],MAXLINE,fp);
if (ptr == NULL) break;
m += strlen(&buffer[m]);
}
if (ptr == NULL) eof = 1;
buffer[m++] = '\n';
}
MPI_Bcast(&eof,1,MPI_INT,0,world);
MPI_Bcast(&nlines,1,MPI_INT,0,world);
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
bufptr = buffer;
for (i = 0; i < nlines; i++) {
next = strchr(bufptr,'\n');
*next = '\0';
if (firstline) {
if (strstr(bufptr,"xlo xhi")) {
double lo,hi;
sscanf(bufptr,"%lg %lg",&lo,&hi);
xprd = hi - lo;
bufptr = next + 1;
continue;
} else if (strstr(bufptr,"ylo yhi")) {
double lo,hi;
sscanf(bufptr,"%lg %lg",&lo,&hi);
yprd = hi - lo;
bufptr = next + 1;
continue;
} else if (strstr(bufptr,"zlo zhi")) {
double lo,hi;
sscanf(bufptr,"%lg %lg",&lo,&hi);
zprd = hi - lo;
bufptr = next + 1;
continue;
} else if (atom->count_words(bufptr) == 4) {
if (xprd >= 0.0 || yprd >= 0.0 || zprd >= 0.0)
error->all("Incorrect format in TMD target file");
imageflag = 0;
firstline = 0;
} else if (atom->count_words(bufptr) == 7) {
if (xprd < 0.0 || yprd < 0.0 || zprd < 0.0)
error->all("Incorrect format in TMD target file");
imageflag = 1;
firstline = 0;
} else error->all("Incorrect format in TMD target file");
}
if (imageflag)
sscanf(bufptr,"%d %lg %lg %lg %d %d %d",&tag,&x,&y,&z,&ix,&iy,&iz);
else
sscanf(bufptr,"%d %lg %lg %lg",&tag,&x,&y,&z);
m = atom->map(tag);
if (m >= 0 && m < nlocal && mask[m] & groupbit) {
if (imageflag) {
xf[m][0] = x + ix*xprd;
xf[m][1] = y + iy*yprd;
xf[m][2] = z + iz*zprd;
} else {
xf[m][0] = x;
xf[m][1] = y;
xf[m][2] = z;
}
ncount++;
}
bufptr = next + 1;
}
}
// clean up
delete [] buffer;
if (me == 0) {
if (compressed) pclose(fp);
else fclose(fp);
}
// check that all atoms in group were listed in target file
// set xf = 0.0 for atoms not in group
int gcount = 0;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) gcount++;
else xf[i][0] = xf[i][1] = xf[i][2] = 0.0;
int flag = 0;
if (gcount != ncount) flag = 1;
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall) error->all("TMD target file did not list all group atoms");
}
/* ----------------------------------------------------------------------
proc 0 opens TMD data file
test if gzipped
------------------------------------------------------------------------- */
void FixTMD::open(char *file)
{
compressed = 0;
char *suffix = file + strlen(file) - 3;
if (suffix > file && strcmp(suffix,".gz") == 0) compressed = 1;
if (!compressed) fp = fopen(file,"r");
else {
#ifdef LAMMPS_GZIP
char gunzip[128];
sprintf(gunzip,"gunzip -c %s",file);
fp = popen(gunzip,"r");
#else
error->one("Cannot open gzipped file");
#endif
}
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open file %s",file);
error->one(str);
}
}
/* ---------------------------------------------------------------------- */
void FixTMD::reset_dt()
{
dtv = update->dt;
dtf = update->dt * force->ftm2v;
}
diff --git a/src/fix_ttm.cpp b/src/fix_ttm.cpp
index 4347239f1..ff037a780 100644
--- a/src/fix_ttm.cpp
+++ b/src/fix_ttm.cpp
@@ -1,687 +1,687 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Paul Crozier (SNL)
Carolyn Phillips (University of Michigan)
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"
#include "fix_ttm.h"
#include "atom.h"
#include "force.h"
#include "update.h"
#include "domain.h"
#include "region.h"
#include "respa.h"
#include "comm.h"
#include "random_mars.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
#define MAXLINE 1024
/* ---------------------------------------------------------------------- */
FixTTM::FixTTM(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 15) error->all("Illegal fix ttm command");
vector_flag = 1;
size_vector = 2;
global_freq = 1;
extvector = 1;
nevery = 1;
restart_peratom = 1;
restart_global = 1;
seed = atoi(arg[3]);
electronic_specific_heat = atof(arg[4]);
electronic_density = atof(arg[5]);
electronic_thermal_conductivity = atof(arg[6]);
gamma_p = atof(arg[7]);
gamma_s = atof(arg[8]);
v_0 = atof(arg[9]);
nxnodes = atoi(arg[10]);
nynodes = atoi(arg[11]);
nznodes = atoi(arg[12]);
fpr = fopen(arg[13],"r");
if (fpr == NULL) {
char str[128];
sprintf(str,"Cannot open file %s",arg[13]);
error->one(str);
}
nfileevery = atoi(arg[14]);
if (nfileevery) {
if (narg != 16) error->all("Illegal fix ttm command");
MPI_Comm_rank(world,&me);
if (me == 0) {
fp = fopen(arg[15],"w");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open fix ttm file %s",arg[15]);
error->one(str);
}
}
}
// error check
if (seed <= 0) error->all("Invalid random number seed in fix ttm command");
if (electronic_specific_heat <= 0.0)
error->all("Fix ttm electronic_specific_heat must be > 0.0");
if (electronic_density <= 0.0)
error->all("Fix ttm electronic_density must be > 0.0");
if (electronic_thermal_conductivity < 0.0)
error->all("Fix ttm electronic_thermal_conductivity must be >= 0.0");
if (gamma_p <= 0.0) error->all("Fix ttm gamma_p must be > 0.0");
if (gamma_s < 0.0) error->all("Fix ttm gamma_s must be >= 0.0");
if (v_0 < 0.0) error->all("Fix ttm v_0 must be >= 0.0");
if (nxnodes <= 0 || nynodes <= 0 || nznodes <= 0)
error->all("Fix ttm number of nodes must be > 0");
v_0_sq = v_0*v_0;
// initialize Marsaglia RNG with processor-unique seed
random = new RanMars(lmp,seed + comm->me);
// allocate per-type arrays for force prefactors
gfactor1 = new double[atom->ntypes+1];
gfactor2 = new double[atom->ntypes+1];
// allocate 3d grid variables
total_nnodes = nxnodes*nynodes*nznodes;
memory->create(nsum,nxnodes,nynodes,nznodes,"ttm:nsum");
memory->create(nsum_all,nxnodes,nynodes,nznodes,"ttm:nsum_all");
memory->create(T_initial_set,nxnodes,nynodes,nznodes,"ttm:T_initial_set");
memory->create(sum_vsq,nxnodes,nynodes,nznodes,"ttm:sum_vsq");
memory->create(sum_mass_vsq,nxnodes,nynodes,nznodes,"ttm:sum_mass_vsq");
memory->create(sum_vsq_all,nxnodes,nynodes,nznodes,"ttm:sum_vsq_all");
memory->create(sum_mass_vsq_all,nxnodes,nynodes,nznodes,
"ttm:sum_mass_vsq_all");
memory->create(T_electron_old,nxnodes,nynodes,nznodes,"ttm:T_electron_old");
memory->create(T_electron,nxnodes,nynodes,nznodes,"ttm:T_electron");
memory->create(net_energy_transfer,nxnodes,nynodes,nznodes,
"TTM:net_energy_transfer");
memory->create(net_energy_transfer_all,nxnodes,nynodes,nznodes,
"TTM:net_energy_transfer_all");
flangevin = NULL;
grow_arrays(atom->nmax);
// zero out the flangevin array
for (int i = 0; i < atom->nmax; i++) {
flangevin[i][0] = 0;
flangevin[i][1] = 0;
flangevin[i][2] = 0;
}
atom->add_callback(0);
atom->add_callback(1);
// set initial electron temperatures from user input file
if (me == 0) read_initial_electron_temperatures();
MPI_Bcast(&T_electron[0][0][0],total_nnodes,MPI_DOUBLE,0,world);
}
/* ---------------------------------------------------------------------- */
FixTTM::~FixTTM()
{
if (nfileevery && me == 0) fclose(fp);
delete random;
delete [] gfactor1;
delete [] gfactor2;
memory->destroy(nsum);
memory->destroy(nsum_all);
memory->destroy(T_initial_set);
memory->destroy(sum_vsq);
memory->destroy(sum_mass_vsq);
memory->destroy(sum_vsq_all);
memory->destroy(sum_mass_vsq_all);
memory->destroy(T_electron_old);
memory->destroy(T_electron);
memory->destroy(flangevin);
memory->destroy(net_energy_transfer);
memory->destroy(net_energy_transfer_all);
}
/* ---------------------------------------------------------------------- */
int FixTTM::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= END_OF_STEP;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixTTM::init()
{
if (domain->dimension == 2)
error->all("Cannot use fix ttm with 2d simulation");
if (domain->nonperiodic != 0)
error->all("Cannot use nonperiodic boundares with fix ttm");
if (domain->triclinic)
error->all("Cannot use fix ttm with triclinic box");
// set force prefactors
for (int i = 1; i <= atom->ntypes; i++) {
gfactor1[i] = - gamma_p / force->ftm2v;
gfactor2[i] =
sqrt(24.0*force->boltz*gamma_p/update->dt/force->mvv2e) / force->ftm2v;
}
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
net_energy_transfer_all[ixnode][iynode][iznode] = 0;
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixTTM::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force_setup(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa_setup(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixTTM::post_force(int vflag)
{
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
double gamma1,gamma2;
// apply damping and thermostat to all atoms in fix group
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
double xscale = (x[i][0] - domain->boxlo[0])/domain->xprd;
double yscale = (x[i][1] - domain->boxlo[1])/domain->yprd;
double zscale = (x[i][2] - domain->boxlo[2])/domain->zprd;
int ixnode = static_cast<int>(xscale*nxnodes);
int iynode = static_cast<int>(yscale*nynodes);
int iznode = static_cast<int>(zscale*nznodes);
while (ixnode > nxnodes-1) ixnode -= nxnodes;
while (iynode > nynodes-1) iynode -= nynodes;
while (iznode > nznodes-1) iznode -= nznodes;
while (ixnode < 0) ixnode += nxnodes;
while (iynode < 0) iynode += nynodes;
while (iznode < 0) iznode += nznodes;
if (T_electron[ixnode][iynode][iznode] < 0)
error->all("Electronic temperature dropped below zero");
double tsqrt = sqrt(T_electron[ixnode][iynode][iznode]);
gamma1 = gfactor1[type[i]];
double vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
if (vsq > v_0_sq) gamma1 *= (gamma_p + gamma_s)/gamma_p;
gamma2 = gfactor2[type[i]] * tsqrt;
flangevin[i][0] = gamma1*v[i][0] + gamma2*(random->uniform()-0.5);
flangevin[i][1] = gamma1*v[i][1] + gamma2*(random->uniform()-0.5);
flangevin[i][2] = gamma1*v[i][2] + gamma2*(random->uniform()-0.5);
f[i][0] += flangevin[i][0];
f[i][1] += flangevin[i][1];
f[i][2] += flangevin[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixTTM::post_force_setup(int vflag)
{
double **f = atom->f;
int *mask = atom->mask;
int nlocal = atom->nlocal;
// apply langevin forces that have been stored from previous run
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
f[i][0] += flangevin[i][0];
f[i][1] += flangevin[i][1];
f[i][2] += flangevin[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixTTM::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixTTM::post_force_respa_setup(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force_setup(vflag);
}
/* ---------------------------------------------------------------------- */
void FixTTM::reset_dt()
{
for (int i = 1; i <= atom->ntypes; i++)
gfactor2[i] =
sqrt(24.0*force->boltz*gamma_p/update->dt/force->mvv2e) / force->ftm2v;
}
/* ----------------------------------------------------------------------
read in initial electron temperatures from a user-specified file
only called by proc 0
------------------------------------------------------------------------- */
void FixTTM::read_initial_electron_temperatures()
{
char line[MAXLINE];
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
T_initial_set[ixnode][iynode][iznode] = 0;
// read initial electron temperature values from file
int ixnode,iynode,iznode;
double T_tmp;
while (1) {
if (fgets(line,MAXLINE,fpr) == NULL) break;
sscanf(line,"%d %d %d %lg",&ixnode,&iynode,&iznode,&T_tmp);
if (T_tmp < 0.0) error->one("Fix ttm electron temperatures must be > 0.0");
T_electron[ixnode][iynode][iznode] = T_tmp;
T_initial_set[ixnode][iynode][iznode] = 1;
}
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
if (T_initial_set[ixnode][iynode][iznode] == 0)
error->one("Initial temperatures not all set in fix ttm");
// close file
fclose(fpr);
}
/* ---------------------------------------------------------------------- */
void FixTTM::end_of_step()
{
double **x = atom->x;
double **v = atom->v;
double *mass = atom->mass;
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
net_energy_transfer[ixnode][iynode][iznode] = 0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
double xscale = (x[i][0] - domain->boxlo[0])/domain->xprd;
double yscale = (x[i][1] - domain->boxlo[1])/domain->yprd;
double zscale = (x[i][2] - domain->boxlo[2])/domain->zprd;
int ixnode = static_cast<int>(xscale*nxnodes);
int iynode = static_cast<int>(yscale*nynodes);
int iznode = static_cast<int>(zscale*nznodes);
while (ixnode > nxnodes-1) ixnode -= nxnodes;
while (iynode > nynodes-1) iynode -= nynodes;
while (iznode > nznodes-1) iznode -= nznodes;
while (ixnode < 0) ixnode += nxnodes;
while (iynode < 0) iynode += nynodes;
while (iznode < 0) iznode += nznodes;
net_energy_transfer[ixnode][iynode][iznode] +=
(flangevin[i][0]*v[i][0] + flangevin[i][1]*v[i][1] +
flangevin[i][2]*v[i][2]);
}
MPI_Allreduce(&net_energy_transfer[0][0][0],
&net_energy_transfer_all[0][0][0],
total_nnodes,MPI_DOUBLE,MPI_SUM,world);
double dx = domain->xprd/nxnodes;
double dy = domain->yprd/nynodes;
double dz = domain->zprd/nznodes;
double del_vol = dx*dy*dz;
// num_inner_timesteps = # of inner steps (thermal solves)
// required this MD step to maintain a stable explicit solve
int num_inner_timesteps = 1;
double inner_dt = update->dt;
double stability_criterion = 1.0 -
2.0*inner_dt/(electronic_specific_heat*electronic_density) *
(electronic_thermal_conductivity*(1.0/dx/dx + 1.0/dy/dy + 1.0/dz/dz));
if (stability_criterion < 0.0) {
inner_dt = 0.5*(electronic_specific_heat*electronic_density) /
(electronic_thermal_conductivity*(1.0/dx/dx + 1.0/dy/dy + 1.0/dz/dz));
num_inner_timesteps = static_cast<int>(update->dt/inner_dt) + 1;
inner_dt = update->dt/double(num_inner_timesteps);
if (num_inner_timesteps > 1000000)
error->warning("Too many inner timesteps in fix ttm",0);
}
for (int ith_inner_timestep = 0; ith_inner_timestep < num_inner_timesteps;
ith_inner_timestep++) {
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
T_electron_old[ixnode][iynode][iznode] =
T_electron[ixnode][iynode][iznode];
// compute new electron T profile
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++) {
int right_xnode = ixnode + 1;
int right_ynode = iynode + 1;
int right_znode = iznode + 1;
if (right_xnode == nxnodes) right_xnode = 0;
if (right_ynode == nynodes) right_ynode = 0;
if (right_znode == nznodes) right_znode = 0;
int left_xnode = ixnode - 1;
int left_ynode = iynode - 1;
int left_znode = iznode - 1;
if (left_xnode == -1) left_xnode = nxnodes - 1;
if (left_ynode == -1) left_ynode = nynodes - 1;
if (left_znode == -1) left_znode = nznodes - 1;
T_electron[ixnode][iynode][iznode] =
T_electron_old[ixnode][iynode][iznode] +
inner_dt/(electronic_specific_heat*electronic_density) *
(electronic_thermal_conductivity *
((T_electron_old[right_xnode][iynode][iznode] +
T_electron_old[left_xnode][iynode][iznode] -
2*T_electron_old[ixnode][iynode][iznode])/dx/dx +
(T_electron_old[ixnode][right_ynode][iznode] +
T_electron_old[ixnode][left_ynode][iznode] -
2*T_electron_old[ixnode][iynode][iznode])/dy/dy +
(T_electron_old[ixnode][iynode][right_znode] +
T_electron_old[ixnode][iynode][left_znode] -
2*T_electron_old[ixnode][iynode][iznode])/dz/dz) -
(net_energy_transfer_all[ixnode][iynode][iznode])/del_vol);
}
}
// output nodal temperatures for current timestep
if ((nfileevery) && !(update->ntimestep % nfileevery)) {
// compute atomic Ta for each grid point
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++) {
nsum[ixnode][iynode][iznode] = 0;
nsum_all[ixnode][iynode][iznode] = 0;
sum_vsq[ixnode][iynode][iznode] = 0.0;
sum_mass_vsq[ixnode][iynode][iznode] = 0.0;
sum_vsq_all[ixnode][iynode][iznode] = 0.0;
sum_mass_vsq_all[ixnode][iynode][iznode] = 0.0;
}
double massone;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (rmass) massone = rmass[i];
else massone = mass[type[i]];
double xscale = (x[i][0] - domain->boxlo[0])/domain->xprd;
double yscale = (x[i][1] - domain->boxlo[1])/domain->yprd;
double zscale = (x[i][2] - domain->boxlo[2])/domain->zprd;
int ixnode = static_cast<int>(xscale*nxnodes);
int iynode = static_cast<int>(yscale*nynodes);
int iznode = static_cast<int>(zscale*nznodes);
while (ixnode > nxnodes-1) ixnode -= nxnodes;
while (iynode > nynodes-1) iynode -= nynodes;
while (iznode > nznodes-1) iznode -= nznodes;
while (ixnode < 0) ixnode += nxnodes;
while (iynode < 0) iynode += nynodes;
while (iznode < 0) iznode += nznodes;
double vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2];
nsum[ixnode][iynode][iznode] += 1;
sum_vsq[ixnode][iynode][iznode] += vsq;
sum_mass_vsq[ixnode][iynode][iznode] += massone*vsq;
}
MPI_Allreduce(&nsum[0][0][0],&nsum_all[0][0][0],total_nnodes,
MPI_INT,MPI_SUM,world);
MPI_Allreduce(&sum_vsq[0][0][0],&sum_vsq_all[0][0][0],total_nnodes,
MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(&sum_mass_vsq[0][0][0],&sum_mass_vsq_all[0][0][0],
total_nnodes,MPI_DOUBLE,MPI_SUM,world);
if (me == 0) {
fprintf(fp,BIGINT_FORMAT,update->ntimestep);
double T_a;
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++) {
T_a = 0;
if (nsum_all[ixnode][iynode][iznode] > 0)
T_a = sum_mass_vsq_all[ixnode][iynode][iznode]/
(3.0*force->boltz*nsum_all[ixnode][iynode][iznode]/force->mvv2e);
fprintf(fp," %f",T_a);
}
fprintf(fp,"\t");
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
fprintf(fp,"%f ",T_electron[ixnode][iynode][iznode]);
fprintf(fp,"\n");
}
}
}
/* ----------------------------------------------------------------------
memory usage of 3d grid
------------------------------------------------------------------------- */
double FixTTM::memory_usage()
{
double bytes = 0.0;
bytes += 5*total_nnodes * sizeof(int);
bytes += 14*total_nnodes * sizeof(double);
return bytes;
}
/* ---------------------------------------------------------------------- */
void FixTTM::grow_arrays(int ngrow)
{
memory->grow(flangevin,ngrow,3,"TTM:flangevin");
}
/* ----------------------------------------------------------------------
return the energy of the electronic subsystem or the net_energy transfer
between the subsystems
------------------------------------------------------------------------- */
double FixTTM::compute_vector(int n)
{
double e_energy = 0.0;
double transfer_energy = 0.0;
double dx = domain->xprd/nxnodes;
double dy = domain->yprd/nynodes;
double dz = domain->zprd/nznodes;
double del_vol = dx*dy*dz;
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++) {
e_energy +=
T_electron[ixnode][iynode][iznode]*electronic_specific_heat*
electronic_density*del_vol;
transfer_energy +=
net_energy_transfer_all[ixnode][iynode][iznode]*update->dt;
}
if (n == 0) return e_energy;
if (n == 1) return transfer_energy;
return 0.0;
}
/* ----------------------------------------------------------------------
pack entire state of Fix into one write
------------------------------------------------------------------------- */
void FixTTM::write_restart(FILE *fp)
{
double *rlist;
memory->create(rlist,nxnodes*nynodes*nznodes+1,"TTM:rlist");
int n = 0;
rlist[n++] = seed;
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
rlist[n++] = T_electron[ixnode][iynode][iznode];
if (comm->me == 0) {
int size = n * sizeof(double);
fwrite(&size,sizeof(int),1,fp);
fwrite(rlist,sizeof(double),n,fp);
}
memory->destroy(rlist);
}
/* ----------------------------------------------------------------------
use state info from restart file to restart the Fix
------------------------------------------------------------------------- */
void FixTTM::restart(char *buf)
{
int n = 0;
double *rlist = (double *) buf;
// the seed must be changed from the initial seed
seed = static_cast<int> (0.5*rlist[n++]);
for (int ixnode = 0; ixnode < nxnodes; ixnode++)
for (int iynode = 0; iynode < nynodes; iynode++)
for (int iznode = 0; iznode < nznodes; iznode++)
T_electron[ixnode][iynode][iznode] = rlist[n++];
delete random;
random = new RanMars(lmp,seed+comm->me);
}
/* ----------------------------------------------------------------------
pack values in local atom-based arrays for restart file
------------------------------------------------------------------------- */
int FixTTM::pack_restart(int i, double *buf)
{
buf[0] = 4;
buf[1] = flangevin[i][0];
buf[2] = flangevin[i][1];
buf[3] = flangevin[i][2];
return 4;
}
/* ----------------------------------------------------------------------
unpack values from atom->extra array to restart the fix
------------------------------------------------------------------------- */
void FixTTM::unpack_restart(int nlocal, int nth)
{
double **extra = atom->extra;
// skip to Nth set of extra values
int m = 0;
for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]);
m++;
flangevin[nlocal][0] = extra[nlocal][m++];
flangevin[nlocal][1] = extra[nlocal][m++];
flangevin[nlocal][2] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
maxsize of any atom's restart data
------------------------------------------------------------------------- */
int FixTTM::maxsize_restart()
{
return 4;
}
/* ----------------------------------------------------------------------
size of atom nlocal's restart data
------------------------------------------------------------------------- */
int FixTTM::size_restart(int nlocal)
{
return 4;
}
diff --git a/src/fix_viscous.cpp b/src/fix_viscous.cpp
index cbe9aee06..770eee559 100644
--- a/src/fix_viscous.cpp
+++ b/src/fix_viscous.cpp
@@ -1,136 +1,136 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_viscous.h"
#include "atom.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
FixViscous::FixViscous(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg < 4) error->all("Illegal fix viscous command");
double gamma_one = atof(arg[3]);
gamma = new double[atom->ntypes+1];
for (int i = 1; i <= atom->ntypes; i++) gamma[i] = gamma_one;
// optional args
int iarg = 4;
while (iarg < narg) {
if (strcmp(arg[iarg],"scale") == 0) {
if (iarg+3 > narg) error->all("Illegal fix viscous command");
int itype = atoi(arg[iarg+1]);
double scale = atof(arg[iarg+2]);
if (itype <= 0 || itype > atom->ntypes)
error->all("Illegal fix viscous command");
gamma[itype] = gamma_one * scale;
iarg += 3;
} else error->all("Illegal fix viscous command");
}
}
/* ---------------------------------------------------------------------- */
FixViscous::~FixViscous()
{
delete [] gamma;
}
/* ---------------------------------------------------------------------- */
int FixViscous::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixViscous::init()
{
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixViscous::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixViscous::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixViscous::post_force(int vflag)
{
// apply drag force to atoms in group
// direction is opposed to velocity vector
// magnitude depends on atom type
double **v = atom->v;
double **f = atom->f;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
double drag;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
drag = gamma[type[i]];
f[i][0] -= drag*v[i][0];
f[i][1] -= drag*v[i][1];
f[i][2] -= drag*v[i][2];
}
}
/* ---------------------------------------------------------------------- */
void FixViscous::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixViscous::min_post_force(int vflag)
{
post_force(vflag);
}
diff --git a/src/fix_wall.cpp b/src/fix_wall.cpp
index 3839b3419..fdff4a11f 100644
--- a/src/fix_wall.cpp
+++ b/src/fix_wall.cpp
@@ -1,288 +1,288 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_wall.h"
#include "atom.h"
#include "input.h"
#include "variable.h"
#include "domain.h"
#include "lattice.h"
#include "update.h"
#include "modify.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{XLO,XHI,YLO,YHI,ZLO,ZHI};
enum{NONE,EDGE,CONSTANT,VARIABLE};
/* ---------------------------------------------------------------------- */
FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
scalar_flag = 1;
vector_flag = 1;
global_freq = 1;
extscalar = 1;
extvector = 1;
// parse args
nwall = 0;
int scaleflag = 1;
int iarg = 3;
while (iarg < narg) {
if ((strcmp(arg[iarg],"xlo") == 0) || (strcmp(arg[iarg],"xhi") == 0) ||
(strcmp(arg[iarg],"ylo") == 0) || (strcmp(arg[iarg],"yhi") == 0) ||
(strcmp(arg[iarg],"zlo") == 0) || (strcmp(arg[iarg],"zhi") == 0)) {
if (iarg+5 > narg) error->all("Illegal fix wall command");
int newwall;
if (strcmp(arg[iarg],"xlo") == 0) newwall = XLO;
else if (strcmp(arg[iarg],"xhi") == 0) newwall = XHI;
else if (strcmp(arg[iarg],"ylo") == 0) newwall = YLO;
else if (strcmp(arg[iarg],"yhi") == 0) newwall = YHI;
else if (strcmp(arg[iarg],"zlo") == 0) newwall = ZLO;
else if (strcmp(arg[iarg],"zhi") == 0) newwall = ZHI;
for (int m = 0; m < nwall; m++)
if (newwall == wallwhich[m])
error->all("Wall defined twice in fix wall command");
wallwhich[nwall] = newwall;
if (strcmp(arg[iarg+1],"EDGE") == 0) {
wallstyle[nwall] = EDGE;
int dim = wallwhich[nwall] / 2;
int side = wallwhich[nwall] % 2;
if (side == 0) coord0[nwall] = domain->boxlo[dim];
else coord0[nwall] = domain->boxhi[dim];
} else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) {
wallstyle[nwall] = VARIABLE;
int n = strlen(&arg[iarg+1][2]) + 1;
varstr[nwall] = new char[n];
strcpy(varstr[nwall],&arg[iarg+1][2]);
} else {
wallstyle[nwall] = CONSTANT;
coord0[nwall] = atof(arg[iarg+1]);
}
epsilon[nwall] = atof(arg[iarg+2]);
sigma[nwall] = atof(arg[iarg+3]);
cutoff[nwall] = atof(arg[iarg+4]);
nwall++;
iarg += 5;
} else if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all("Illegal fix wall command");
if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0;
else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1;
else error->all("Illegal fix wall command");
iarg += 2;
} else error->all("Illegal fix wall command");
}
size_vector = nwall;
// error check
if (nwall == 0) error->all("Illegal fix wall command");
for (int m = 0; m < nwall; m++)
if (cutoff[m] <= 0.0)
error->all("Fix wall cutoff <= 0.0");
for (int m = 0; m < nwall; m++) {
if ((wallwhich[m] == XLO || wallwhich[m] == XHI) && domain->xperiodic)
error->all("Cannot use fix wall in periodic dimension");
if ((wallwhich[m] == YLO || wallwhich[m] == YHI) && domain->yperiodic)
error->all("Cannot use fix wall in periodic dimension");
if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->zperiodic)
error->all("Cannot use fix wall in periodic dimension");
}
for (int m = 0; m < nwall; m++)
if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->dimension == 2)
error->all("Cannot use fix wall zlo/zhi for a 2d simulation");
// scale coord for CONSTANT walls
int flag = 0;
for (int m = 0; m < nwall; m++)
if (wallstyle[m] == CONSTANT) flag = 1;
if (flag) {
if (scaleflag && domain->lattice == NULL)
error->all("Use of fix wall with undefined lattice");
double xscale,yscale,zscale;
if (scaleflag) {
xscale = domain->lattice->xlattice;
yscale = domain->lattice->ylattice;
zscale = domain->lattice->zlattice;
}
else xscale = yscale = zscale = 1.0;
double scale;
for (int m = 0; m < nwall; m++) {
if (wallwhich[m] < YLO) scale = xscale;
else if (wallwhich[m] < ZLO) scale = yscale;
else scale = zscale;
if (wallstyle[m] == CONSTANT) coord0[m] *= scale;
}
}
// set time_depend and varflag if any wall positions are variable
varflag = 0;
for (int m = 0; m < nwall; m++)
if (wallstyle[m] == VARIABLE) time_depend = varflag = 1;
eflag = 0;
for (int m = 0; m <= nwall; m++) ewall[m] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixWall::~FixWall()
{
for (int m = 0; m < nwall; m++)
if (wallstyle[m] == VARIABLE) delete [] varstr[m];
}
/* ---------------------------------------------------------------------- */
int FixWall::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixWall::init()
{
dt = update->dt;
for (int m = 0; m < nwall; m++) {
if (wallstyle[m] != VARIABLE) continue;
varindex[m] = input->variable->find(varstr[m]);
if (varindex[m] < 0)
error->all("Variable name for fix wall does not exist");
if (!input->variable->equalstyle(varindex[m]))
error->all("Variable for fix wall is invalid style");
}
// setup coefficients
for (int m = 0; m < nwall; m++) precompute(m);
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixWall::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixWall::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixWall::post_force(int vflag)
{
eflag = 0;
for (int m = 0; m <= nwall; m++) ewall[m] = 0.0;
// coord = current position of wall
// evaluate variable if necessary, wrap with clear/add
if (varflag) modify->clearstep_compute();
double coord;
for (int m = 0; m < nwall; m++) {
if (wallstyle[m] == VARIABLE)
coord = input->variable->compute_equal(varindex[m]);
else coord = coord0[m];
wall_particle(m,wallwhich[m],coord);
}
if (varflag) modify->addstep_compute(update->ntimestep + 1);
}
/* ---------------------------------------------------------------------- */
void FixWall::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixWall::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
energy of wall interaction
------------------------------------------------------------------------- */
double FixWall::compute_scalar()
{
// only sum across procs one time
if (eflag == 0) {
MPI_Allreduce(ewall,ewall_all,nwall+1,MPI_DOUBLE,MPI_SUM,world);
eflag = 1;
}
return ewall_all[0];
}
/* ----------------------------------------------------------------------
components of force on wall
------------------------------------------------------------------------- */
double FixWall::compute_vector(int n)
{
// only sum across procs one time
if (eflag == 0) {
MPI_Allreduce(ewall,ewall_all,nwall+1,MPI_DOUBLE,MPI_SUM,world);
eflag = 1;
}
return ewall_all[n+1];
}
diff --git a/src/fix_wall_region.cpp b/src/fix_wall_region.cpp
index a337d58b1..d1a637efe 100644
--- a/src/fix_wall_region.cpp
+++ b/src/fix_wall_region.cpp
@@ -1,360 +1,360 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "fix_wall_region.h"
#include "atom.h"
#include "atom_vec.h"
#include "domain.h"
#include "region.h"
#include "lattice.h"
#include "update.h"
#include "output.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{LJ93,LJ126,COLLOID,HARMONIC};
/* ---------------------------------------------------------------------- */
FixWallRegion::FixWallRegion(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (narg != 8) error->all("Illegal fix wall/region command");
scalar_flag = 1;
vector_flag = 1;
size_vector = 3;
global_freq = 1;
extscalar = 1;
extvector = 1;
// parse args
iregion = domain->find_region(arg[3]);
if (iregion == -1)
error->all("Region ID for fix wall/region does not exist");
int n = strlen(arg[3]) + 1;
idregion = new char[n];
strcpy(idregion,arg[3]);
if (strcmp(arg[4],"lj93") == 0) style = LJ93;
else if (strcmp(arg[4],"lj126") == 0) style = LJ126;
else if (strcmp(arg[4],"colloid") == 0) style = COLLOID;
else if (strcmp(arg[4],"harmonic") == 0) style = HARMONIC;
else error->all("Illegal fix wall/region command");
epsilon = atof(arg[5]);
sigma = atof(arg[6]);
cutoff = atof(arg[7]);
if (cutoff <= 0.0) error->all("Fix wall/region cutoff <= 0.0");
eflag = 0;
ewall[0] = ewall[1] = ewall[2] = ewall[3] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixWallRegion::~FixWallRegion()
{
delete [] idregion;
}
/* ---------------------------------------------------------------------- */
int FixWallRegion::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::init()
{
// set index and check validity of region
iregion = domain->find_region(idregion);
if (iregion == -1)
error->all("Region ID for fix wall/region does not exist");
// error checks for style COLLOID
// insure all particles in group are extended particles
if (style == COLLOID) {
if (!atom->sphere_flag)
error->all("Fix wall/region colloid requires atom style sphere");
double *radius = atom->radius;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int flag = 0;
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
if (radius[i] == 0.0) flag = 1;
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
if (flagall)
error->all("Fix wall/region colloid requires extended particles");
}
// setup coefficients for each style
if (style == LJ93) {
coeff1 = 6.0/5.0 * epsilon * pow(sigma,9.0);
coeff2 = 3.0 * epsilon * pow(sigma,3.0);
coeff3 = 2.0/15.0 * epsilon * pow(sigma,9.0);
coeff4 = epsilon * pow(sigma,3.0);
double rinv = 1.0/cutoff;
double r2inv = rinv*rinv;
double r4inv = r2inv*r2inv;
offset = coeff3*r4inv*r4inv*rinv - coeff4*r2inv*rinv;
} else if (style == LJ126) {
coeff1 = 48.0 * epsilon * pow(sigma,12.0);
coeff2 = 24.0 * epsilon * pow(sigma,6.0);
coeff3 = 4.0 * epsilon * pow(sigma,12.0);
coeff4 = 4.0 * epsilon * pow(sigma,6.0);
double r2inv = 1.0/(cutoff*cutoff);
double r6inv = r2inv*r2inv*r2inv;
offset = r6inv*(coeff3*r6inv - coeff4);
} else if (style == COLLOID) {
coeff1 = -4.0/315.0 * epsilon * pow(sigma,6.0);
coeff2 = -2.0/3.0 * epsilon;
coeff3 = epsilon * pow(sigma,6.0)/7560.0;
coeff4 = epsilon/6.0;
double rinv = 1.0/cutoff;
double r2inv = rinv*rinv;
double r4inv = r2inv*r2inv;
offset = coeff3*r4inv*r4inv*rinv - coeff4*r2inv*rinv;
}
- if (strcmp(update->integrate_style,"respa") == 0)
+ if (strstr(update->integrate_style,"respa"))
nlevels_respa = ((Respa *) update->integrate)->nlevels;
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::setup(int vflag)
{
- if (strcmp(update->integrate_style,"verlet") == 0)
+ if (strstr(update->integrate_style,"verlet"))
post_force(vflag);
else {
((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1);
post_force_respa(vflag,nlevels_respa-1,0);
((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1);
}
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::min_setup(int vflag)
{
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::post_force(int vflag)
{
int i,m,n;
double rinv,fx,fy,fz,tooclose;
eflag = 0;
ewall[0] = ewall[1] = ewall[2] = ewall[3] = 0.0;
double **x = atom->x;
double **f = atom->f;
double *radius = atom->radius;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
Region *region = domain->regions[iregion];
int onflag = 0;
// region->match() insures particle is in region or on surface, else error
// if returned contact dist r = 0, is on surface, also an error
// in COLLOID case, r <= radius is an error
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
if (!region->match(x[i][0],x[i][1],x[i][2])) {
onflag = 1;
continue;
}
if (style == COLLOID) tooclose = radius[i];
else tooclose = 0.0;
n = region->surface(x[i][0],x[i][1],x[i][2],cutoff);
for (m = 0; m < n; m++) {
if (region->contact[m].r <= tooclose) {
onflag = 1;
continue;
} else rinv = 1.0/region->contact[m].r;
if (style == LJ93) lj93(region->contact[m].r);
else if (style == LJ126) lj126(region->contact[m].r);
else if (style == COLLOID) colloid(region->contact[m].r,radius[i]);
else harmonic(region->contact[m].r);
ewall[0] += eng;
fx = fwall * region->contact[m].delx * rinv;
fy = fwall * region->contact[m].dely * rinv;
fz = fwall * region->contact[m].delz * rinv;
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
ewall[1] -= fx;
ewall[2] -= fy;
ewall[3] -= fz;
}
}
if (onflag) error->one("Particle on or inside surface of region "
"used in fix wall/region");
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::post_force_respa(int vflag, int ilevel, int iloop)
{
if (ilevel == nlevels_respa-1) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixWallRegion::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
energy of wall interaction
------------------------------------------------------------------------- */
double FixWallRegion::compute_scalar()
{
// only sum across procs one time
if (eflag == 0) {
MPI_Allreduce(ewall,ewall_all,4,MPI_DOUBLE,MPI_SUM,world);
eflag = 1;
}
return ewall_all[0];
}
/* ----------------------------------------------------------------------
components of force on wall
------------------------------------------------------------------------- */
double FixWallRegion::compute_vector(int n)
{
// only sum across procs one time
if (eflag == 0) {
MPI_Allreduce(ewall,ewall_all,4,MPI_DOUBLE,MPI_SUM,world);
eflag = 1;
}
return ewall_all[n+1];
}
/* ----------------------------------------------------------------------
LJ 9/3 interaction for particle with wall
compute eng and fwall = magnitude of wall force
------------------------------------------------------------------------- */
void FixWallRegion::lj93(double r)
{
double rinv = 1.0/r;
double r2inv = rinv*rinv;
double r4inv = r2inv*r2inv;
double r10inv = r4inv*r4inv*r2inv;
fwall = coeff1*r10inv - coeff2*r4inv;
eng = coeff3*r4inv*r4inv*rinv - coeff4*r2inv*rinv - offset;
}
/* ----------------------------------------------------------------------
LJ 12/6 interaction for particle with wall
compute eng and fwall = magnitude of wall force
------------------------------------------------------------------------- */
void FixWallRegion::lj126(double r)
{
double rinv = 1.0/r;
double r2inv = rinv*rinv;
double r6inv = r2inv*r2inv*r2inv;
fwall = r6inv*(coeff1*r6inv - coeff2) * rinv;
eng = r6inv*(coeff3*r6inv - coeff4) - offset;
}
/* ----------------------------------------------------------------------
colloid interaction for finite-size particle of rad with wall
compute eng and fwall = magnitude of wall force
------------------------------------------------------------------------- */
void FixWallRegion::colloid(double r, double rad)
{
double new_coeff2 = coeff2*rad*rad*rad;
double diam = 2.0*rad;
double rad2 = rad*rad;
double rad4 = rad2*rad2;
double rad8 = rad4*rad4;
double delta2 = rad2 - r*r;
double rinv = 1.0/delta2;
double r2inv = rinv*rinv;
double r4inv = r2inv*r2inv;
double r8inv = r4inv*r4inv;
fwall = coeff1*(rad8*rad + 27.0*rad4*rad2*rad*pow(r,2.0)
+ 63.0*rad4*rad*pow(r,4.0)
+ 21.0*rad2*rad*pow(r,6.0))*r8inv - new_coeff2*r2inv;
double r2 = 0.5*diam - r;
double rinv2 = 1.0/r2;
double r2inv2 = rinv2*rinv2;
double r4inv2 = r2inv2*r2inv2;
double r6inv2 = r4inv2*r2inv2;
double r3 = r + 0.5*diam;
double rinv3 = 1.0/r3;
double r2inv3 = rinv3*rinv3;
double r4inv3 = r2inv3*r2inv3;
double r6inv3 = r4inv3*r2inv3;
eng = coeff3*((-3.5*diam+r)*r4inv2*r2inv2*rinv2
+ (3.5*diam+r)*r4inv3*r2inv3*rinv3) -
coeff4*((-diam*r+r2*r3*(log(-r2)-log(r3)))*
(-rinv2)*rinv3) - offset;
}
/* ----------------------------------------------------------------------
harmonic interaction for particle with wall
compute eng and fwall = magnitude of wall force
------------------------------------------------------------------------- */
void FixWallRegion::harmonic(double r)
{
double dr = cutoff - r;
fwall = 2.0*epsilon*dr;
eng = epsilon*dr*dr;
}
diff --git a/src/force.h b/src/force.h
index 9f20b4c66..df214c974 100644
--- a/src/force.h
+++ b/src/force.h
@@ -1,95 +1,99 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_FORCE_H
#define LMP_FORCE_H
#include "pointers.h"
namespace LAMMPS_NS {
class Force : protected Pointers {
public:
double boltz; // Boltzmann constant (eng/degree-K)
double mvv2e; // conversion of mv^2 to energy
double ftm2v; // conversion of ft/m to velocity
double mv2d; // conversion of mass/volume to density
double nktv2p; // conversion of NkT/V to pressure
double qqr2e; // conversion of q^2/r to energy
double qe2f; // conversion of qE to force
double vxmu2f; // conversion of vx dynamic-visc to force
double xxt2kmu; // conversion of xx/t to kinematic-visc
double dielectric; // dielectric constant
double qqrd2e; // q^2/r to energy w/ dielectric constant
+ double e_mass; // electron mass
+ double hhmrr2e; // conversion of (hbar)^2/(mr^2) to energy
+ double mvh2r; // conversion of mv/hbar to distance
+ // hbar = h/(2*pi)
int newton,newton_pair,newton_bond; // Newton's 3rd law settings
class Pair *pair;
char *pair_style;
class Bond *bond;
char *bond_style;
class Angle *angle;
char *angle_style;
class Dihedral *dihedral;
char *dihedral_style;
class Improper *improper;
char *improper_style;
class KSpace *kspace;
char *kspace_style;
// index [0] is not used in these arrays
double special_lj[4]; // 1-2, 1-3, 1-4 prefactors for LJ
double special_coul[4]; // 1-2, 1-3, 1-4 prefactors for Coulombics
int special_angle; // 0 if defined angles are ignored
// 1 if only weight 1,3 atoms if in an angle
int special_dihedral; // 0 if defined dihedrals are ignored
// 1 if only weight 1,4 atoms if in a dihedral
int special_extra; // extra space for added bonds
Force(class LAMMPS *);
~Force();
void init();
void create_pair(const char *, char *suffix = NULL);
class Pair *new_pair(const char *, char *, int &);
class Pair *pair_match(const char *, int);
void create_bond(const char *);
class Bond *new_bond(const char *);
class Bond *bond_match(const char *);
void create_angle(const char *);
class Angle *new_angle(const char *);
void create_dihedral(const char *);
class Dihedral *new_dihedral(const char *);
void create_improper(const char *);
class Improper *new_improper(const char *);
void create_kspace(int, char **);
void set_special(int, char **);
void bounds(char *, int, int &, int &);
double numeric(char *);
int inumeric(char *);
bigint memory_usage();
};
}
#endif
diff --git a/src/lammps.cpp b/src/lammps.cpp
index 9033a7d59..548a69e36 100644
--- a/src/lammps.cpp
+++ b/src/lammps.cpp
@@ -1,417 +1,457 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mpi.h"
#include "string.h"
#include "lammps.h"
#include "memory.h"
#include "error.h"
#include "universe.h"
#include "input.h"
#include "atom.h"
#include "update.h"
#include "neighbor.h"
#include "comm.h"
#include "domain.h"
#include "force.h"
#include "modify.h"
#include "group.h"
#include "output.h"
#include "accelerator_cuda.h"
#include "timer.h"
using namespace LAMMPS_NS;
/* ----------------------------------------------------------------------
start up LAMMPS
allocate fundamental classes (memory, error, universe, input)
parse input switches
initialize communicators, screen & logfile output
input is allocated at end after MPI info is setup
------------------------------------------------------------------------- */
LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
{
memory = new Memory(this);
error = new Error(this);
universe = new Universe(this,communicator);
output = NULL;
screen = NULL;
logfile = NULL;
// parse input switches
int inflag = 0;
int screenflag = 0;
int logflag = 0;
+ int partscreenflag = 0;
+ int partlogflag = 0;
int cudaflag = -1;
suffix = NULL;
suffix_enable = 0;
int iarg = 1;
while (iarg < narg) {
if (strcmp(arg[iarg],"-partition") == 0 ||
strcmp(arg[iarg],"-p") == 0) {
universe->existflag = 1;
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
iarg++;
while (iarg < narg && arg[iarg][0] != '-') {
universe->add_world(arg[iarg]);
iarg++;
}
} else if (strcmp(arg[iarg],"-in") == 0 ||
strcmp(arg[iarg],"-i") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
inflag = iarg + 1;
iarg += 2;
} else if (strcmp(arg[iarg],"-screen") == 0 ||
strcmp(arg[iarg],"-sc") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
screenflag = iarg + 1;
iarg += 2;
} else if (strcmp(arg[iarg],"-log") == 0 ||
strcmp(arg[iarg],"-l") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
logflag = iarg + 1;
iarg += 2;
} else if (strcmp(arg[iarg],"-var") == 0 ||
strcmp(arg[iarg],"-v") == 0) {
if (iarg+3 > narg) error->universe_all("Invalid command-line argument");
iarg += 2;
while (iarg < narg && arg[iarg][0] != '-') iarg++;
} else if (strcmp(arg[iarg],"-echo") == 0 ||
strcmp(arg[iarg],"-e") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
iarg += 2;
+ } else if (strcmp(arg[iarg],"-pscreen") == 0 ||
+ strcmp(arg[iarg],"-ps") == 0) {
+ if (iarg+2 > narg)
+ error->universe_all("Invalid command-line argument");
+ partscreenflag = iarg + 1;
+ iarg += 2;
+ } else if (strcmp(arg[iarg],"-plog") == 0 ||
+ strcmp(arg[iarg],"-pl") == 0) {
+ if (iarg+2 > narg)
+ error->universe_all("Invalid command-line argument");
+ partlogflag = iarg + 1;
+ iarg += 2;
} else if (strcmp(arg[iarg],"-cuda") == 0 ||
strcmp(arg[iarg],"-c") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
if (strcmp(arg[iarg+1],"on") == 0) cudaflag = 1;
else if (strcmp(arg[iarg+1],"off") == 0) cudaflag = 0;
else error->universe_all("Invalid command-line argument");
iarg += 2;
} else if (strcmp(arg[iarg],"-suffix") == 0 ||
strcmp(arg[iarg],"-sf") == 0) {
if (iarg+2 > narg) error->universe_all("Invalid command-line argument");
delete [] suffix;
int n = strlen(arg[iarg+1]) + 1;
suffix = new char[n];
strcpy(suffix,arg[iarg+1]);
suffix_enable = 1;
iarg += 2;
} else error->universe_all("Invalid command-line argument");
}
// if no partition command-line switch, universe is one world w/ all procs
if (universe->existflag == 0) universe->add_world(NULL);
// sum of procs in all worlds must equal total # of procs
if (!universe->consistent())
error->universe_all("Processor partitions are inconsistent");
// universe cannot use stdin for input file
if (universe->existflag && inflag == 0)
error->universe_all("Must use -in switch with multiple partitions");
+ // if no partition command-line switch, cannot use -pscreen option
+
+ if (universe->existflag == 0 && partscreenflag)
+ error->universe_all("Can only use -pscreen with multiple partitions");
+
+ // if no partition command-line switch, cannot use -plog option
+
+ if (universe->existflag == 0 && partlogflag)
+ error->universe_all("Can only use -plog with multiple partitions");
+
// set universe screen and logfile
if (universe->me == 0) {
if (screenflag == 0)
universe->uscreen = stdout;
else if (strcmp(arg[screenflag],"none") == 0)
universe->uscreen = NULL;
else {
universe->uscreen = fopen(arg[screenflag],"w");
if (universe->uscreen == NULL)
error->universe_one("Cannot open universe screen file");
}
if (logflag == 0) {
universe->ulogfile = fopen("log.lammps","w");
if (universe->ulogfile == NULL)
error->universe_one("Cannot open log.lammps");
} else if (strcmp(arg[logflag],"none") == 0)
universe->ulogfile = NULL;
else {
universe->ulogfile = fopen(arg[logflag],"w");
if (universe->ulogfile == NULL)
error->universe_one("Cannot open universe log file");
}
}
if (universe->me > 0) {
if (screenflag == 0) universe->uscreen = stdout;
else universe->uscreen = NULL;
universe->ulogfile = NULL;
}
// universe does not exist on its own, only a single world
// inherit settings from universe
// set world screen, logfile, communicator, infile
// open input script if from file
if (universe->existflag == 0) {
screen = universe->uscreen;
logfile = universe->ulogfile;
world = universe->uworld;
infile = NULL;
if (universe->me == 0) {
if (inflag == 0) infile = stdin;
else infile = fopen(arg[inflag],"r");
if (infile == NULL) {
char str[128];
sprintf(str,"Cannot open input script %s",arg[inflag]);
error->one(str);
}
}
if (universe->me == 0) {
if (screen) fprintf(screen,"LAMMPS (%s)\n",universe->version);
if (logfile) fprintf(logfile,"LAMMPS (%s)\n",universe->version);
}
// universe is one or more worlds
// split into separate communicators
// set world screen, logfile, communicator, infile
// open input script
} else {
int me;
MPI_Comm_split(universe->uworld,universe->iworld,0,&world);
MPI_Comm_rank(world,&me);
- if (me == 0) {
- if (screenflag == 0) {
- char str[32];
- sprintf(str,"screen.%d",universe->iworld);
- screen = fopen(str,"w");
- if (screen == NULL) error->one("Cannot open screen file");
- } else if (strcmp(arg[screenflag],"none") == 0)
+ if (me == 0)
+ if (partscreenflag == 0)
+ if (screenflag == 0) {
+ char str[32];
+ sprintf(str,"screen.%d",universe->iworld);
+ screen = fopen(str,"w");
+ if (screen == NULL) error->one("Cannot open screen file");
+ } else if (strcmp(arg[screenflag],"none") == 0)
+ screen = NULL;
+ else {
+ char str[128];
+ sprintf(str,"%s.%d",arg[screenflag],universe->iworld);
+ screen = fopen(str,"w");
+ if (screen == NULL) error->one("Cannot open screen file");
+ }
+ else if (strcmp(arg[partscreenflag],"none") == 0)
screen = NULL;
else {
char str[128];
- sprintf(str,"%s.%d",arg[screenflag],universe->iworld);
+ sprintf(str,"%s.%d",arg[partscreenflag],universe->iworld);
screen = fopen(str,"w");
if (screen == NULL) error->one("Cannot open screen file");
- }
- } else screen = NULL;
+ } else screen = NULL;
- if (me == 0) {
- if (logflag == 0) {
- char str[32];
- sprintf(str,"log.lammps.%d",universe->iworld);
- logfile = fopen(str,"w");
- if (logfile == NULL) error->one("Cannot open logfile");
- } else if (strcmp(arg[logflag],"none") == 0)
+ if (me == 0)
+ if (partlogflag == 0)
+ if (logflag == 0) {
+ char str[32];
+ sprintf(str,"log.lammps.%d",universe->iworld);
+ logfile = fopen(str,"w");
+ if (logfile == NULL) error->one("Cannot open logfile");
+ } else if (strcmp(arg[logflag],"none") == 0)
+ logfile = NULL;
+ else {
+ char str[128];
+ sprintf(str,"%s.%d",arg[logflag],universe->iworld);
+ logfile = fopen(str,"w");
+ if (logfile == NULL) error->one("Cannot open logfile");
+ }
+ else if (strcmp(arg[partlogflag],"none") == 0)
logfile = NULL;
else {
char str[128];
- sprintf(str,"%s.%d",arg[logflag],universe->iworld);
+ sprintf(str,"%s.%d",arg[partlogflag],universe->iworld);
logfile = fopen(str,"w");
if (logfile == NULL) error->one("Cannot open logfile");
- }
- } else logfile = NULL;
+ } else logfile = NULL;
if (me == 0) {
infile = fopen(arg[inflag],"r");
if (infile == NULL) {
char str[128];
sprintf(str,"Cannot open input script %s",arg[inflag]);
error->one(str);
}
} else infile = NULL;
// screen and logfile messages for universe and world
if (universe->me == 0) {
if (universe->uscreen) {
fprintf(universe->uscreen,"LAMMPS (%s)\n",universe->version);
fprintf(universe->uscreen,"Running on %d partitions of processors\n",
universe->nworlds);
}
if (universe->ulogfile) {
fprintf(universe->ulogfile,"LAMMPS (%s)\n",universe->version);
fprintf(universe->ulogfile,"Running on %d partitions of processors\n",
universe->nworlds);
}
}
if (me == 0) {
if (screen) {
fprintf(screen,"LAMMPS (%s)\n",universe->version);
fprintf(screen,"Processor partition = %d\n",universe->iworld);
}
if (logfile) {
fprintf(logfile,"LAMMPS (%s)\n",universe->version);
fprintf(logfile,"Processor partition = %d\n",universe->iworld);
}
}
}
// check datatype settings in lmptype.h
if (sizeof(smallint) != sizeof(int))
error->all("Smallint setting in lmptype.h is invalid");
if (sizeof(tagint) < sizeof(smallint))
error->all("Tagint setting in lmptype.h is invalid");
if (sizeof(bigint) < sizeof(tagint))
error->all("Bigint setting in lmptype.h is invalid");
int mpisize;
MPI_Type_size(MPI_LMP_TAGINT,&mpisize);
if (mpisize != sizeof(tagint))
error->all("MPI_LMP_TAGINT and tagint in lmptype.h are not compatible");
MPI_Type_size(MPI_LMP_BIGINT,&mpisize);
if (mpisize != sizeof(bigint))
error->all("MPI_LMP_BIGINT and bigint in lmptype.h are not compatible");
// create CUDA class if USER-CUDA installed, unless explicitly switched off
// instantiation creates dummy CUDA class if USER-CUDA is not installed
if (cudaflag == 0) {
cuda = NULL;
} else if (cudaflag == 1) {
cuda = new Cuda(this);
if (!cuda->cuda_exists)
error->all("Cannot use -cuda on without USER-CUDA installed");
} else {
cuda = new Cuda(this);
if (!cuda->cuda_exists) {
delete cuda;
cuda = NULL;
}
}
int me;
MPI_Comm_rank(world,&me);
if (cuda && me == 0) error->message("USER-CUDA mode is enabled");
// allocate input class now that MPI is fully setup
input = new Input(this,narg,arg);
// allocate top-level classes
create();
}
/* ----------------------------------------------------------------------
shutdown LAMMPS
delete top-level classes
close screen and log files in world and universe
output files were already closed in destroy()
delete fundamental classes
------------------------------------------------------------------------- */
LAMMPS::~LAMMPS()
{
destroy();
if (universe->nworlds == 1) {
if (logfile) fclose(logfile);
} else {
if (screen && screen != stdout) fclose(screen);
if (logfile) fclose(logfile);
if (universe->ulogfile) fclose(universe->ulogfile);
}
if (world != universe->uworld) MPI_Comm_free(&world);
delete cuda;
delete [] suffix;
delete input;
delete universe;
delete error;
delete memory;
}
/* ----------------------------------------------------------------------
allocate single instance of top-level classes
fundamental classes are allocated in constructor
some classes have package variants
------------------------------------------------------------------------- */
void LAMMPS::create()
{
atom = new Atom(this);
if (cuda) neighbor = new NeighborCuda(this);
else neighbor = new Neighbor(this);
if (cuda) comm = new CommCuda(this);
else comm = new Comm(this);
if (cuda) domain = new DomainCuda(this);
else domain = new Domain(this);
group = new Group(this);
force = new Force(this); // must be after group, to create temperature
if (cuda) modify = new ModifyCuda(this);
else modify = new Modify(this);
output = new Output(this); // must be after group, so "all" exists
// must be after modify so can create Computes
update = new Update(this); // must be after output, force, neighbor
timer = new Timer(this);
}
/* ----------------------------------------------------------------------
initialize top-level classes
------------------------------------------------------------------------- */
void LAMMPS::init()
{
if (cuda) cuda->accelerator(0,NULL);
update->init();
force->init(); // pair must come after update due to minimizer
domain->init();
atom->init(); // atom must come after force and domain
// atom deletes extra array
// used by fix shear_history::unpack_restart()
// when force->pair->gran_history creates fix ??
// atom_vec init uses deform_vremap
modify->init(); // modify must come after update, force, atom, domain
neighbor->init(); // neighbor must come after force, modify
comm->init(); // comm must come after force, modify, neighbor, atom
output->init(); // output must come after domain, force, modify
timer->init();
}
/* ----------------------------------------------------------------------
delete single instance of top-level classes
fundamental classes are deleted in destructor
------------------------------------------------------------------------- */
void LAMMPS::destroy()
{
delete update;
delete neighbor;
delete comm;
delete force;
delete group;
delete output;
delete modify; // modify must come after output, force, update
// since they delete fixes
delete domain; // domain must come after modify
// since fix destructors access domain
delete atom; // atom must come after modify, neighbor
// since fixes delete callbacks in atom
delete timer;
}
diff --git a/src/lmptype.h b/src/lmptype.h
index 5dd9e1ade..e324f8f92 100644
--- a/src/lmptype.h
+++ b/src/lmptype.h
@@ -1,117 +1,123 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
// define integer data types used by LAMMPS and associated size limits
// smallint = variables for on-procesor system (nlocal, nmax, etc)
// tagint = variables for atom IDs (tag)
// bigint = variables for total system (natoms, ntimestep, etc)
// smallint must be an int, as defined by C compiler
// tagint can be 32-bit or 64-bit int, must be >= smallint
// NOTE: 64-bit tagint is not yet supported
// bigint can be 32-bit or 64-bit int, must be >= tagint
// MPI_LMP_TAGINT = MPI data type corresponding to a tagint
// MPI_LMP_BIGINT = MPI data type corresponding to a bigint
// NOTE: if your machine/MPI does not support "long long" ints,
// but only "long" ints, then you will need to change
// MPI_LONG_LONG to MPI_LONG, and atoll to atol
#ifndef LMP_LMPTYPE_H
#define LMP_LMPTYPE_H
#define __STDC_LIMIT_MACROS
#define __STDC_FORMAT_MACROS
#include "limits.h"
#include "stdint.h"
#include "inttypes.h"
namespace LAMMPS_NS {
// reserve 2 hi bits in molecular system neigh list for special bonds flag
// max local + ghost atoms per processor = 2^30 - 1
#define SBBITS 30
#define NEIGHMASK 0x3FFFFFFF
// default settings
// 32-bit smallint and tagint, 64-bit bigint
/*
typedef int smallint;
typedef int tagint;
typedef int64_t bigint;
#define MAXSMALLINT INT_MAX
#define MAXTAGINT INT_MAX
#define MAXBIGINT INT64_MAX
#define MPI_LMP_TAGINT MPI_INT
#define MPI_LMP_BIGINT MPI_LONG_LONG
#define TAGINT_FORMAT "%d"
#define BIGINT_FORMAT "%" PRId64
#define ATOTAGINT atoi
#define ATOBIGINT atoll
*/
// for molecular problems that exceed 2 billion (2^31) atoms
// 32-bit smallint, 64-bit tagint and bigint
// NOTE: 64-bit tagint is not yet supported
/*
typedef int smallint;
typedef int64_t tagint;
typedef int64_t bigint;
#define MAXSMALLINT INT_MAX
#define MAXTAGINT INT64_MAX
#define MAXBIGINT INT64_MAX
#define MPI_LMP_TAGINT MPI_LONG_LONG
#define MPI_LMP_BIGINT MPI_LONG_LONG
#define TAGINT_FORMAT "%" PRId64
#define BIGINT_FORMAT "%" PRId64
#define ATOTAGINT atoll
#define ATOBIGINT atoll
*/
// for machines that do not support 64-bit ints
// 32-bit smallint and tagint and bigint
typedef int smallint;
typedef int tagint;
typedef int bigint;
#define MAXSMALLINT INT_MAX
#define MAXTAGINT INT_MAX
#define MAXBIGINT INT_MAX
#define MPI_LMP_TAGINT MPI_INT
#define MPI_LMP_BIGINT MPI_INT
#define TAGINT_FORMAT "%d"
#define BIGINT_FORMAT "%d"
#define ATOTAGINT atoi
#define ATOBIGINT atoi
}
+// settings to enable LAMMPS build under Windows
+
+#ifdef _WIN32
+#include "lmpwindows.h"
+#endif
+
#endif
diff --git a/src/lmpwindows.h b/src/lmpwindows.h
new file mode 100644
index 000000000..a3324f1f9
--- /dev/null
+++ b/src/lmpwindows.h
@@ -0,0 +1,41 @@
+#include <iso646.h>
+#include "erf.h"
+#include "direct.h"
+#include "math.h"
+// LAMMPS uses usleep with 100 ms arguments, no microsecond precision needed
+#include "sleep.h"
+
+// some symbols have different names in Windows
+
+#undef ATOBIGINT
+#define ATOBIGINT _atoi64
+
+#define pclose _pclose
+#define __restrict__ __restrict
+
+// the following functions ared defined to get rid of
+// 'ambiguous call to overloaded function' error in VSS for mismathched type arguments
+
+inline double pow(int i, int j){
+ return pow((double)i,(double) j);
+}
+
+inline double sqrt(int i){
+ return sqrt((double) i);
+}
+
+inline double fabs(int i){
+ return fabs((double) i);
+}
+
+inline double trunc(double x) {
+ return x > 0 ? floor(x) : ceil(x);
+}
+
+// Windows version of mkdir function does not have permission flags
+# define S_IRWXU 0
+# define S_IRGRP 0
+# define S_IXGRP 0
+inline int mkdir(const char *path, int flags){
+ return _mkdir(path);
+}
diff --git a/src/neighbor.cpp b/src/neighbor.cpp
index e8ecccc9a..141841d80 100644
--- a/src/neighbor.cpp
+++ b/src/neighbor.cpp
@@ -1,1749 +1,1749 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author (triclinic and multi-neigh) : Pieter in 't Veld (SNL)
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "atom.h"
#include "atom_vec.h"
#include "comm.h"
#include "force.h"
#include "pair.h"
#include "domain.h"
#include "group.h"
#include "modify.h"
#include "fix.h"
#include "compute.h"
#include "update.h"
#include "respa.h"
#include "output.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define RQDELTA 1
#define EXDELTA 1
#define LB_FACTOR 1.5
#define SMALL 1.0e-6
#define BIG 1.0e20
#define CUT2BIN_RATIO 100
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
enum{NSQ,BIN,MULTI}; // also in neigh_list.cpp
//#define NEIGH_LIST_DEBUG 1
/* ---------------------------------------------------------------------- */
Neighbor::Neighbor(LAMMPS *lmp) : Pointers(lmp)
{
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
style = BIN;
every = 1;
delay = 10;
dist_check = 1;
pgsize = 100000;
oneatom = 2000;
binsizeflag = 0;
build_once = 0;
cutneighsq = NULL;
cutneighghostsq = NULL;
cuttype = NULL;
cuttypesq = NULL;
fixchecklist = NULL;
// coords at last neighboring
maxhold = 0;
xhold = NULL;
// binning
maxhead = 0;
binhead = NULL;
maxbin = 0;
bins = NULL;
// pair exclusion list info
includegroup = 0;
nex_type = maxex_type = 0;
ex1_type = ex2_type = NULL;
ex_type = NULL;
nex_group = maxex_group = 0;
ex1_group = ex2_group = ex1_bit = ex2_bit = NULL;
nex_mol = maxex_mol = 0;
ex_mol_group = ex_mol_bit = NULL;
// pair lists
maxatom = 0;
nblist = nglist = nslist = 0;
nlist = 0;
lists = NULL;
pair_build = NULL;
stencil_create = NULL;
blist = glist = slist = NULL;
anyghostlist = 0;
nrequest = maxrequest = 0;
requests = NULL;
old_style = BIN;
old_triclinic = 0;
old_nrequest = 0;
old_requests = NULL;
// bond lists
maxbond = 0;
bondlist = NULL;
maxangle = 0;
anglelist = NULL;
maxdihedral = 0;
dihedrallist = NULL;
maximproper = 0;
improperlist = NULL;
}
/* ---------------------------------------------------------------------- */
Neighbor::~Neighbor()
{
memory->destroy(cutneighsq);
memory->destroy(cutneighghostsq);
delete [] cuttype;
delete [] cuttypesq;
delete [] fixchecklist;
memory->destroy(xhold);
memory->destroy(binhead);
memory->destroy(bins);
memory->destroy(ex1_type);
memory->destroy(ex2_type);
memory->destroy(ex_type);
memory->destroy(ex1_group);
memory->destroy(ex2_group);
delete [] ex1_bit;
delete [] ex2_bit;
memory->destroy(ex_mol_group);
delete [] ex_mol_bit;
for (int i = 0; i < nlist; i++) delete lists[i];
delete [] lists;
delete [] pair_build;
delete [] stencil_create;
delete [] blist;
delete [] glist;
delete [] slist;
for (int i = 0; i < nrequest; i++) delete requests[i];
memory->sfree(requests);
for (int i = 0; i < old_nrequest; i++) delete old_requests[i];
memory->sfree(old_requests);
memory->destroy(bondlist);
memory->destroy(anglelist);
memory->destroy(dihedrallist);
memory->destroy(improperlist);
}
/* ---------------------------------------------------------------------- */
void Neighbor::init()
{
int i,j,m,n;
ncalls = ndanger = 0;
dimension = domain->dimension;
triclinic = domain->triclinic;
newton_pair = force->newton_pair;
// error check
if (delay > 0 && (delay % every) != 0)
error->all("Neighbor delay must be 0 or multiple of every setting");
if (pgsize < 10*oneatom)
error->all("Neighbor page size must be >= 10x the one atom setting");
// ------------------------------------------------------------------
// settings
// bbox lo/hi = bounding box of entire domain, stored by Domain
if (triclinic == 0) {
bboxlo = domain->boxlo;
bboxhi = domain->boxhi;
} else {
bboxlo = domain->boxlo_bound;
bboxhi = domain->boxhi_bound;
}
// set neighbor cutoffs (force cutoff + skin)
// trigger determines when atoms migrate and neighbor lists are rebuilt
// needs to be non-zero for migration distance check
// even if pair = NULL and no neighbor lists are used
// cutneigh = force cutoff + skin if cutforce > 0, else cutneigh = 0
triggersq = 0.25*skin*skin;
boxcheck = 0;
if (domain->box_change && (domain->xperiodic || domain->yperiodic ||
(dimension == 3 && domain->zperiodic)))
boxcheck = 1;
n = atom->ntypes;
if (cutneighsq == NULL) {
memory->create(cutneighsq,n+1,n+1,"neigh:cutneighsq");
memory->create(cutneighghostsq,n+1,n+1,"neigh:cutneighghostsq");
cuttype = new double[n+1];
cuttypesq = new double[n+1];
}
double cutoff,delta,cut;
cutneighmin = BIG;
cutneighmax = 0.0;
for (i = 1; i <= n; i++) {
cuttype[i] = cuttypesq[i] = 0.0;
for (j = 1; j <= n; j++) {
if (force->pair) cutoff = sqrt(force->pair->cutsq[i][j]);
else cutoff = 0.0;
if (cutoff > 0.0) delta = skin;
else delta = 0.0;
cut = cutoff + delta;
cutneighsq[i][j] = cut*cut;
cuttype[i] = MAX(cuttype[i],cut);
cuttypesq[i] = MAX(cuttypesq[i],cut*cut);
cutneighmin = MIN(cutneighmin,cut);
cutneighmax = MAX(cutneighmax,cut);
if (force->pair && force->pair->ghostneigh) {
cut = force->pair->cutghost[i][j] + skin;
cutneighghostsq[i][j] = cut*cut;
}
}
}
cutneighmaxsq = cutneighmax * cutneighmax;
// check other classes that can induce reneighboring in decide()
// don't check if build_once is set
restart_check = 0;
if (output->restart_every) restart_check = 1;
delete [] fixchecklist;
fixchecklist = NULL;
fixchecklist = new int[modify->nfix];
fix_check = 0;
for (i = 0; i < modify->nfix; i++)
if (modify->fix[i]->force_reneighbor)
fixchecklist[fix_check++] = i;
must_check = 0;
if (restart_check || fix_check) must_check = 1;
if (build_once) must_check = 0;
// set special_flag for 1-2, 1-3, 1-4 neighbors
// flag[0] is not used, flag[1] = 1-2, flag[2] = 1-3, flag[3] = 1-4
// flag = 0 if both LJ/Coulomb special values are 0.0
// flag = 1 if both LJ/Coulomb special values are 1.0
// flag = 2 otherwise or if KSpace solver is enabled
// pairwise portion of KSpace solver uses all 1-2,1-3,1-4 neighbors
if (force->special_lj[1] == 0.0 && force->special_coul[1] == 0.0)
special_flag[1] = 0;
else if (force->special_lj[1] == 1.0 && force->special_coul[1] == 1.0)
special_flag[1] = 1;
else special_flag[1] = 2;
if (force->special_lj[2] == 0.0 && force->special_coul[2] == 0.0)
special_flag[2] = 0;
else if (force->special_lj[2] == 1.0 && force->special_coul[2] == 1.0)
special_flag[2] = 1;
else special_flag[2] = 2;
if (force->special_lj[3] == 0.0 && force->special_coul[3] == 0.0)
special_flag[3] = 0;
else if (force->special_lj[3] == 1.0 && force->special_coul[3] == 1.0)
special_flag[3] = 1;
else special_flag[3] = 2;
if (force->kspace) special_flag[1] = special_flag[2] = special_flag[3] = 2;
// maxwt = max multiplicative factor on atom indices stored in neigh list
maxwt = 0;
if (special_flag[1] == 2) maxwt = 2;
if (special_flag[2] == 2) maxwt = 3;
if (special_flag[3] == 2) maxwt = 4;
// rRESPA cutoffs
int respa = 0;
- if (update->whichflag == 1 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) {
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
}
if (respa) {
double *cut_respa = ((Respa *) update->integrate)->cutoff;
cut_inner_sq = (cut_respa[1] + skin) * (cut_respa[1] + skin);
cut_middle_sq = (cut_respa[3] + skin) * (cut_respa[3] + skin);
cut_middle_inside_sq = (cut_respa[0] - skin) * (cut_respa[0] - skin);
}
// ------------------------------------------------------------------
// xhold, bins, exclusion lists
// free xhold and bins if not needed for this run
if (dist_check == 0) {
memory->destroy(xhold);
maxhold = 0;
xhold = NULL;
}
if (style == NSQ) {
memory->destroy(bins);
memory->destroy(binhead);
maxbin = maxhead = 0;
binhead = NULL;
bins = NULL;
}
// 1st time allocation of xhold and bins
if (dist_check) {
if (maxhold == 0) {
maxhold = atom->nmax;
memory->create(xhold,maxhold,3,"neigh:xhold");
}
}
if (style != NSQ) {
if (maxbin == 0) {
maxbin = atom->nmax;
memory->create(bins,maxbin,"bins");
}
}
// exclusion lists for type, group, molecule settings from neigh_modify
n = atom->ntypes;
if (nex_type == 0 && nex_group == 0 && nex_mol == 0) exclude = 0;
else exclude = 1;
if (nex_type) {
memory->destroy(ex_type);
memory->create(ex_type,n+1,n+1,"neigh:ex_type");
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
ex_type[i][j] = 0;
for (i = 0; i < nex_type; i++) {
if (ex1_type[i] <= 0 || ex1_type[i] > n ||
ex2_type[i] <= 0 || ex2_type[i] > n)
error->all("Invalid atom type in neighbor exclusion list");
ex_type[ex1_type[i]][ex2_type[i]] = 1;
ex_type[ex2_type[i]][ex1_type[i]] = 1;
}
}
if (nex_group) {
delete [] ex1_bit;
delete [] ex2_bit;
ex1_bit = new int[nex_group];
ex2_bit = new int[nex_group];
for (i = 0; i < nex_group; i++) {
ex1_bit[i] = group->bitmask[ex1_group[i]];
ex2_bit[i] = group->bitmask[ex2_group[i]];
}
}
if (nex_mol) {
delete [] ex_mol_bit;
ex_mol_bit = new int[nex_mol];
for (i = 0; i < nex_mol; i++)
ex_mol_bit[i] = group->bitmask[ex_mol_group[i]];
}
// ------------------------------------------------------------------
// pairwise lists
// test if pairwise lists need to be re-created
// no need to re-create if:
// neigh style and triclinic has not changed and
// current requests = old requests
int same = 1;
if (style != old_style) same = 0;
if (triclinic != old_triclinic) same = 0;
if (nrequest != old_nrequest) same = 0;
else
for (i = 0; i < nrequest; i++)
if (requests[i]->identical(old_requests[i]) == 0) same = 0;
#ifdef NEIGH_LIST_DEBUG
if (comm->me == 0) printf("SAME flag %d\n",same);
#endif
// if old and new are not the same, create new pairwise lists
if (!same) {
// delete old lists and create new ones
for (i = 0; i < nlist; i++) delete lists[i];
delete [] lists;
delete [] pair_build;
delete [] stencil_create;
nlist = nrequest;
lists = new NeighList*[nlist];
pair_build = new PairPtr[nlist];
stencil_create = new StencilPtr[nlist];
// create individual lists, one per request
// copy dnum setting from request to list
// pass list ptr back to requestor (except for Command class)
for (i = 0; i < nlist; i++) {
lists[i] = new NeighList(lmp,pgsize);
lists[i]->index = i;
lists[i]->dnum = requests[i]->dnum;
if (requests[i]->pair) {
Pair *pair = (Pair *) requests[i]->requestor;
pair->init_list(requests[i]->id,lists[i]);
} else if (requests[i]->fix) {
Fix *fix = (Fix *) requests[i]->requestor;
fix->init_list(requests[i]->id,lists[i]);
} else if (requests[i]->compute) {
Compute *compute = (Compute *) requests[i]->requestor;
compute->init_list(requests[i]->id,lists[i]);
}
}
// detect lists that are connected to other lists
// if-then-else sequence is important
// since don't want to re-process skip or copy lists further down
// copy: point this list at request->otherlist, could be a skip list
// skip: point this list at request->otherlist, copy skip info from request
// half_from_full: point this list at preceeding full list
// granhistory: set preceeding list's listgranhistory to this list
// also set preceeding list's ptr to FixShearHistory
// respaouter: point this list at preceeding 1/2 inner/middle lists
// pair and half: if there is a full non-occasional non-skip list
// change this list to half_from_full and point at the full list
// parent could be copy list or pair or fix
// fix/compute requests:
// kind of request = half or full, occasional or not doesn't matter
// if request = half and non-skip pair half/respaouter exists,
// become copy of that list if cudable flag matches
// if request = full and non-skip pair full exists,
// become copy of that list if cudable flag matches
// if request = half and non-skip pair full exists,
// become half_from_full of that list if cudable flag matches
// if no matches, do nothing, fix/compute list will be built directly
// ok if parent is copy list
for (i = 0; i < nlist; i++) {
if (requests[i]->copy)
lists[i]->listcopy = lists[requests[i]->otherlist];
else if (requests[i]->skip) {
lists[i]->listskip = lists[requests[i]->otherlist];
lists[i]->copy_skip_info(requests[i]->iskip,requests[i]->ijskip);
} else if (requests[i]->half_from_full)
lists[i]->listfull = lists[i-1];
else if (requests[i]->granhistory) {
lists[i-1]->listgranhistory = lists[i];
for (int ifix = 0; ifix < modify->nfix; ifix++)
if (strcmp(modify->fix[ifix]->style,"SHEAR_HISTORY") == 0)
lists[i-1]->fix_history = (FixShearHistory *) modify->fix[ifix];
} else if (requests[i]->respaouter) {
if (requests[i-1]->respainner) {
lists[i]->respamiddle = 0;
lists[i]->listinner = lists[i-1];
} else {
lists[i]->respamiddle = 1;
lists[i]->listmiddle = lists[i-1];
lists[i]->listinner = lists[i-2];
}
} else if (requests[i]->pair && requests[i]->half) {
for (j = 0; j < nlist; j++)
if (requests[j]->full && requests[j]->occasional == 0 &&
requests[j]->skip == 0) break;
if (j < nlist) {
requests[i]->half = 0;
requests[i]->half_from_full = 1;
lists[i]->listfull = lists[j];
}
} else if (requests[i]->fix || requests[i]->compute) {
for (j = 0; j < nlist; j++) {
if (requests[i]->half && requests[j]->pair &&
requests[j]->skip == 0 && requests[j]->half) break;
if (requests[i]->full && requests[j]->pair &&
requests[j]->skip == 0 && requests[j]->full) break;
if (requests[i]->half && requests[j]->pair &&
requests[j]->skip == 0 && requests[j]->respaouter) break;
}
if (j < nlist && requests[j]->cudable != requests[i]->cudable)
j = nlist;
if (j < nlist) {
requests[i]->copy = 1;
lists[i]->listcopy = lists[j];
} else {
for (j = 0; j < nlist; j++) {
if (requests[i]->half && requests[j]->pair &&
requests[j]->skip == 0 && requests[j]->full) break;
}
if (j < nlist && requests[j]->cudable != requests[i]->cudable)
j = nlist;
if (j < nlist) {
requests[i]->half = 0;
requests[i]->half_from_full = 1;
lists[i]->listfull = lists[j];
}
}
}
}
// set ptrs to pair_build and stencil_create functions for each list
// ptrs set to NULL if not set explicitly
// also set cudable to 0 if any neigh list request is not cudable
for (i = 0; i < nlist; i++) {
choose_build(i,requests[i]);
if (style != NSQ) choose_stencil(i,requests[i]);
else stencil_create[i] = NULL;
if (!requests[i]->cudable) cudable = 0;
}
// set each list's build/grow/stencil/ghost flags based on neigh request
// buildflag = 1 if its pair_build() invoked every reneighbor
// growflag = 1 if it stores atom-based arrays and pages
// stencilflag = 1 if it stores stencil arrays
// ghostflag = 1 if it stores neighbors of ghosts
// anyghostlist = 1 if any non-occasional list stores neighbors of ghosts
anyghostlist = 0;
for (i = 0; i < nlist; i++) {
lists[i]->buildflag = 1;
if (pair_build[i] == NULL) lists[i]->buildflag = 0;
if (requests[i]->occasional) lists[i]->buildflag = 0;
lists[i]->growflag = 1;
if (requests[i]->copy) lists[i]->growflag = 0;
lists[i]->stencilflag = 1;
if (style == NSQ) lists[i]->stencilflag = 0;
if (stencil_create[i] == NULL) lists[i]->stencilflag = 0;
lists[i]->ghostflag = 0;
if (requests[i]->ghost) lists[i]->ghostflag = 1;
if (requests[i]->ghost && !requests[i]->occasional) anyghostlist = 1;
}
#ifdef NEIGH_LIST_DEBUG
for (i = 0; i < nlist; i++) lists[i]->print_attributes();
#endif
// allocate atom arrays and 1st pages of lists that store them
maxatom = atom->nmax;
for (i = 0; i < nlist; i++)
if (lists[i]->growflag) {
lists[i]->grow(maxatom);
lists[i]->add_pages();
}
// setup 3 vectors of pairwise neighbor lists
// blist = lists whose pair_build() is invoked every reneighbor
// glist = lists who store atom arrays which are used every reneighbor
// slist = lists who store stencil arrays which are used every reneighbor
// blist and glist vectors are used by neighbor::build()
// slist vector is used by neighbor::setup_bins()
nblist = nglist = nslist = 0;
delete [] blist;
delete [] glist;
delete [] slist;
blist = new int[nlist];
glist = new int[nlist];
slist = new int[nlist];
for (i = 0; i < nlist; i++) {
if (lists[i]->buildflag) blist[nblist++] = i;
if (lists[i]->growflag && requests[i]->occasional == 0)
glist[nglist++] = i;
if (lists[i]->stencilflag && requests[i]->occasional == 0)
slist[nslist++] = i;
}
#ifdef NEIGH_LIST_DEBUG
print_lists_of_lists();
#endif
// reorder build vector if necessary
// relevant for lists that copy/skip/half-full from parent
// the derived list must appear in blist after the parent list
// no occasional lists are in build vector
// swap two lists within blist when dependency is mis-ordered
// done when entire pass thru blist results in no swaps
int done = 0;
while (!done) {
done = 1;
for (i = 0; i < nblist; i++) {
NeighList *ptr = NULL;
if (lists[blist[i]]->listfull) ptr = lists[blist[i]]->listfull;
if (lists[blist[i]]->listcopy) ptr = lists[blist[i]]->listcopy;
if (lists[blist[i]]->listskip) ptr = lists[blist[i]]->listskip;
if (ptr == NULL) continue;
for (m = 0; m < nlist; m++)
if (ptr == lists[m]) break;
for (j = 0; j < nblist; j++)
if (m == blist[j]) break;
if (j < i) continue;
int tmp = blist[i];
blist[i] = blist[j];
blist[j] = tmp;
done = 0;
break;
}
}
#ifdef NEIGH_LIST_DEBUG
print_lists_of_lists();
#endif
}
// delete old requests
// copy current requests and style to old for next run
for (i = 0; i < old_nrequest; i++) delete old_requests[i];
memory->sfree(old_requests);
old_nrequest = nrequest;
old_requests = requests;
nrequest = maxrequest = 0;
requests = NULL;
old_style = style;
old_triclinic = triclinic;
// ------------------------------------------------------------------
// topology lists
// 1st time allocation of topology lists
if (atom->molecular && atom->nbonds && maxbond == 0) {
if (nprocs == 1) maxbond = atom->nbonds;
else maxbond = static_cast<int> (LB_FACTOR * atom->nbonds / nprocs);
memory->create(bondlist,maxbond,3,"neigh:bondlist");
}
if (atom->molecular && atom->nangles && maxangle == 0) {
if (nprocs == 1) maxangle = atom->nangles;
else maxangle = static_cast<int> (LB_FACTOR * atom->nangles / nprocs);
memory->create(anglelist,maxangle,4,"neigh:anglelist");
}
if (atom->molecular && atom->ndihedrals && maxdihedral == 0) {
if (nprocs == 1) maxdihedral = atom->ndihedrals;
else maxdihedral = static_cast<int>
(LB_FACTOR * atom->ndihedrals / nprocs);
memory->create(dihedrallist,maxdihedral,5,"neigh:dihedrallist");
}
if (atom->molecular && atom->nimpropers && maximproper == 0) {
if (nprocs == 1) maximproper = atom->nimpropers;
else maximproper = static_cast<int>
(LB_FACTOR * atom->nimpropers / nprocs);
memory->create(improperlist,maximproper,5,"neigh:improperlist");
}
// set flags that determine which topology neighboring routines to use
// SHAKE sets bonds and angles negative
// bond_quartic sets bonds to 0
// delete_bonds sets all interactions negative
int bond_off = 0;
int angle_off = 0;
for (i = 0; i < modify->nfix; i++)
if (strcmp(modify->fix[i]->style,"shake") == 0)
bond_off = angle_off = 1;
if (force->bond && force->bond_match("quartic")) bond_off = 1;
if (atom->avec->bonds_allow) {
for (i = 0; i < atom->nlocal; i++) {
if (bond_off) break;
for (m = 0; m < atom->num_bond[i]; m++)
if (atom->bond_type[i][m] <= 0) bond_off = 1;
}
}
if (atom->avec->angles_allow) {
for (i = 0; i < atom->nlocal; i++) {
if (angle_off) break;
for (m = 0; m < atom->num_angle[i]; m++)
if (atom->angle_type[i][m] <= 0) angle_off = 1;
}
}
int dihedral_off = 0;
if (atom->avec->dihedrals_allow) {
for (i = 0; i < atom->nlocal; i++) {
if (dihedral_off) break;
for (m = 0; m < atom->num_dihedral[i]; m++)
if (atom->dihedral_type[i][m] <= 0) dihedral_off = 1;
}
}
int improper_off = 0;
if (atom->avec->impropers_allow) {
for (i = 0; i < atom->nlocal; i++) {
if (improper_off) break;
for (m = 0; m < atom->num_improper[i]; m++)
if (atom->improper_type[i][m] <= 0) improper_off = 1;
}
}
// set ptrs to topology build functions
if (bond_off) bond_build = &Neighbor::bond_partial;
else bond_build = &Neighbor::bond_all;
if (angle_off) angle_build = &Neighbor::angle_partial;
else angle_build = &Neighbor::angle_all;
if (dihedral_off) dihedral_build = &Neighbor::dihedral_partial;
else dihedral_build = &Neighbor::dihedral_all;
if (improper_off) improper_build = &Neighbor::improper_partial;
else improper_build = &Neighbor::improper_all;
// set topology neighbor list counts to 0
// in case all are turned off but potential is still defined
nbondlist = nanglelist = ndihedrallist = nimproperlist = 0;
}
/* ---------------------------------------------------------------------- */
int Neighbor::request(void *requestor)
{
if (nrequest == maxrequest) {
maxrequest += RQDELTA;
requests = (NeighRequest **)
memory->srealloc(requests,maxrequest*sizeof(NeighRequest *),
"neighbor:requests");
}
requests[nrequest] = new NeighRequest(lmp);
requests[nrequest]->requestor = requestor;
nrequest++;
return nrequest-1;
}
/* ----------------------------------------------------------------------
determine which pair_build function each neigh list needs
based on settings of neigh request
copy -> copy_from function
skip -> granular function if gran with granhistory,
respa function if respaouter,
skip_from function for everything else
half_from_full, half, full, gran, respaouter ->
choose by newton and rq->newton and tri settings
style NSQ options = newton off, newton on
style BIN options = newton off, newton on and not tri, newton on and tri
stlye MULTI options = same options as BIN
if none of these, ptr = NULL since pair_build is not invoked for this list
use "else if" b/c skip,copy can be set in addition to half,full,etc
------------------------------------------------------------------------- */
void Neighbor::choose_build(int index, NeighRequest *rq)
{
PairPtr pb = NULL;
if (rq->copy) pb = &Neighbor::copy_from;
else if (rq->skip) {
if (rq->gran && lists[index]->listgranhistory)
pb = &Neighbor::skip_from_granular;
else if (rq->respaouter) pb = &Neighbor::skip_from_respa;
else pb = &Neighbor::skip_from;
} else if (rq->half_from_full) {
if (newton_pair == 0) pb = &Neighbor::half_from_full_no_newton;
else if (newton_pair == 1) pb = &Neighbor::half_from_full_newton;
} else if (rq->half) {
if (style == NSQ) {
if (rq->newton == 0) {
if (newton_pair == 0) pb = &Neighbor::half_nsq_no_newton;
else if (newton_pair == 1) pb = &Neighbor::half_nsq_newton;
} else if (rq->newton == 1) {
pb = &Neighbor::half_nsq_newton;
} else if (rq->newton == 2) {
pb = &Neighbor::half_nsq_no_newton;
}
} else if (style == BIN) {
if (rq->newton == 0) {
if (newton_pair == 0) pb = &Neighbor::half_bin_no_newton;
else if (triclinic == 0) pb = &Neighbor::half_bin_newton;
else if (triclinic == 1) pb = &Neighbor::half_bin_newton_tri;
} else if (rq->newton == 1) {
if (triclinic == 0) pb = &Neighbor::half_bin_newton;
else if (triclinic == 1) pb = &Neighbor::half_bin_newton_tri;
} else if (rq->newton == 2) pb = &Neighbor::half_bin_no_newton;
} else if (style == MULTI) {
if (rq->newton == 0) {
if (newton_pair == 0) pb = &Neighbor::half_multi_no_newton;
else if (triclinic == 0) pb = &Neighbor::half_multi_newton;
else if (triclinic == 1) pb = &Neighbor::half_multi_newton_tri;
} else if (rq->newton == 1) {
if (triclinic == 0) pb = &Neighbor::half_multi_newton;
else if (triclinic == 1) pb = &Neighbor::half_multi_newton_tri;
} else if (rq->newton == 2) pb = &Neighbor::half_multi_no_newton;
}
} else if (rq->full) {
if (style == NSQ) {
if (rq->ghost == 0) pb = &Neighbor::full_nsq;
else if (includegroup)
error->all("Neighbor include group not allowed with ghost neighbors");
else if (rq->ghost == 1) pb = &Neighbor::full_nsq_ghost;
} else if (style == BIN) {
if (rq->ghost == 0) pb = &Neighbor::full_bin;
else if (includegroup)
error->all("Neighbor include group not allowed with ghost neighbors");
else if (rq->ghost == 1) pb = &Neighbor::full_bin_ghost;
} else if (style == MULTI) {
if (rq->ghost == 0) pb = &Neighbor::full_multi;
else error->all("Neighbor multi not yet enabled for ghost neighbors");
}
} else if (rq->gran) {
if (style == NSQ) {
if (newton_pair == 0) pb = &Neighbor::granular_nsq_no_newton;
else if (newton_pair == 1) pb = &Neighbor::granular_nsq_newton;
} else if (style == BIN) {
if (newton_pair == 0) pb = &Neighbor::granular_bin_no_newton;
else if (triclinic == 0) pb = &Neighbor::granular_bin_newton;
else if (triclinic == 1) pb = &Neighbor::granular_bin_newton_tri;
} else if (style == MULTI)
error->all("Neighbor multi not yet enabled for granular");
} else if (rq->respaouter) {
if (style == NSQ) {
if (newton_pair == 0) pb = &Neighbor::respa_nsq_no_newton;
else if (newton_pair == 1) pb = &Neighbor::respa_nsq_newton;
} else if (style == BIN) {
if (newton_pair == 0) pb = &Neighbor::respa_bin_no_newton;
else if (triclinic == 0) pb = &Neighbor::respa_bin_newton;
else if (triclinic == 1) pb = &Neighbor::respa_bin_newton_tri;
} else if (style == MULTI)
error->all("Neighbor multi not yet enabled for rRESPA");
}
// general error check
if (rq->ghost && !rq->full)
error->all("Neighbors of ghost atoms only allowed for full neighbor lists");
pair_build[index] = pb;
}
/* ----------------------------------------------------------------------
determine which stencil_create function each neigh list needs
based on settings of neigh request, only called if style != NSQ
skip or copy or half_from_full -> no stencil
half, gran, respaouter, full -> choose by newton and tri and dimension
if none of these, ptr = NULL since this list needs no stencils
use "else if" b/c skip,copy can be set in addition to half,full,etc
------------------------------------------------------------------------- */
void Neighbor::choose_stencil(int index, NeighRequest *rq)
{
StencilPtr sc = NULL;
if (rq->skip || rq->copy || rq->half_from_full) sc = NULL;
else if (rq->half || rq->gran || rq->respaouter) {
if (style == BIN) {
if (rq->newton == 0) {
if (newton_pair == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_no_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_no_newton;
} else if (triclinic == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_newton;
} else if (triclinic == 1) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_newton_tri;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_newton_tri;
}
} else if (rq->newton == 1) {
if (triclinic == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_newton;
} else if (triclinic == 1) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_newton_tri;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_newton_tri;
}
} else if (rq->newton == 2) {
if (dimension == 2)
sc = &Neighbor::stencil_half_bin_2d_no_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_bin_3d_no_newton;
}
} else if (style == MULTI) {
if (rq->newton == 0) {
if (newton_pair == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_no_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_no_newton;
} else if (triclinic == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_newton;
} else if (triclinic == 1) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_newton_tri;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_newton_tri;
}
} else if (rq->newton == 1) {
if (triclinic == 0) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_newton;
} else if (triclinic == 1) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_newton_tri;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_newton_tri;
}
} else if (rq->newton == 2) {
if (dimension == 2)
sc = &Neighbor::stencil_half_multi_2d_no_newton;
else if (dimension == 3)
sc = &Neighbor::stencil_half_multi_3d_no_newton;
}
}
} else if (rq->full) {
if (style == BIN) {
if (dimension == 2) {
if (rq->ghost) sc = &Neighbor::stencil_full_ghost_bin_2d;
else sc = &Neighbor::stencil_full_bin_2d;
}
else if (dimension == 3) {
if (rq->ghost) sc = &Neighbor::stencil_full_ghost_bin_3d;
else sc = &Neighbor::stencil_full_bin_3d;
}
} else if (style == MULTI) {
if (dimension == 2) sc = &Neighbor::stencil_full_multi_2d;
else if (dimension == 3) sc = &Neighbor::stencil_full_multi_3d;
}
}
stencil_create[index] = sc;
}
/* ---------------------------------------------------------------------- */
void Neighbor::print_lists_of_lists()
{
if (comm->me == 0) {
printf("Build lists = %d: ",nblist);
for (int i = 0; i < nblist; i++) printf("%d ",blist[i]);
printf("\n");
printf("Grow lists = %d: ",nglist);
for (int i = 0; i < nglist; i++) printf("%d ",glist[i]);
printf("\n");
printf("Stencil lists = %d: ",nslist);
for (int i = 0; i < nslist; i++) printf("%d ",slist[i]);
printf("\n");
}
}
/* ---------------------------------------------------------------------- */
int Neighbor::decide()
{
if (must_check) {
int n = update->ntimestep;
if (restart_check && n == output->next_restart) return 1;
for (int i = 0; i < fix_check; i++)
if (n == modify->fix[fixchecklist[i]]->next_reneighbor) return 1;
}
ago++;
if (ago >= delay && ago % every == 0) {
if (build_once) return 0;
if (dist_check == 0) return 1;
return check_distance();
} else return 0;
}
/* ----------------------------------------------------------------------
if any atom moved trigger distance (half of neighbor skin) return 1
shrink trigger distance if box size has changed
conservative shrink procedure:
compute distance each of 8 corners of box has moved since last reneighbor
reduce skin distance by sum of 2 largest of the 8 values
new trigger = 1/2 of reduced skin distance
for orthogonal box, only need 2 lo/hi corners
for triclinic, need all 8 corners since deformations can displace all 8
------------------------------------------------------------------------- */
int Neighbor::check_distance()
{
double delx,dely,delz,rsq;
double delta,deltasq,delta1,delta2;
if (boxcheck) {
if (triclinic == 0) {
delx = bboxlo[0] - boxlo_hold[0];
dely = bboxlo[1] - boxlo_hold[1];
delz = bboxlo[2] - boxlo_hold[2];
delta1 = sqrt(delx*delx + dely*dely + delz*delz);
delx = bboxhi[0] - boxhi_hold[0];
dely = bboxhi[1] - boxhi_hold[1];
delz = bboxhi[2] - boxhi_hold[2];
delta2 = sqrt(delx*delx + dely*dely + delz*delz);
delta = 0.5 * (skin - (delta1+delta2));
deltasq = delta*delta;
} else {
domain->box_corners();
delta1 = delta2 = 0.0;
for (int i = 0; i < 8; i++) {
delx = corners[i][0] - corners_hold[i][0];
dely = corners[i][1] - corners_hold[i][1];
delz = corners[i][2] - corners_hold[i][2];
delta = sqrt(delx*delx + dely*dely + delz*delz);
if (delta > delta1) delta1 = delta;
else if (delta > delta2) delta2 = delta;
}
delta = 0.5 * (skin - (delta1+delta2));
deltasq = delta*delta;
}
} else deltasq = triggersq;
double **x = atom->x;
int nlocal = atom->nlocal;
if (includegroup) nlocal = atom->nfirst;
int flag = 0;
for (int i = 0; i < nlocal; i++) {
delx = x[i][0] - xhold[i][0];
dely = x[i][1] - xhold[i][1];
delz = x[i][2] - xhold[i][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq > deltasq) flag = 1;
}
int flagall;
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_MAX,world);
if (flagall && ago == MAX(every,delay)) ndanger++;
return flagall;
}
/* ----------------------------------------------------------------------
build all perpetual neighbor lists every few timesteps
pairwise & topology lists are created as needed
------------------------------------------------------------------------- */
void Neighbor::build()
{
int i;
ago = 0;
ncalls++;
// store current atom positions and box size if needed
if (dist_check) {
double **x = atom->x;
int nlocal = atom->nlocal;
if (includegroup) nlocal = atom->nfirst;
if (nlocal > maxhold) {
maxhold = atom->nmax;
memory->destroy(xhold);
memory->create(xhold,maxhold,3,"neigh:xhold");
}
for (i = 0; i < nlocal; i++) {
xhold[i][0] = x[i][0];
xhold[i][1] = x[i][1];
xhold[i][2] = x[i][2];
}
if (boxcheck) {
if (triclinic == 0) {
boxlo_hold[0] = bboxlo[0];
boxlo_hold[1] = bboxlo[1];
boxlo_hold[2] = bboxlo[2];
boxhi_hold[0] = bboxhi[0];
boxhi_hold[1] = bboxhi[1];
boxhi_hold[2] = bboxhi[2];
} else {
domain->box_corners();
corners = domain->corners;
for (i = 0; i < 8; i++) {
corners_hold[i][0] = corners[i][0];
corners_hold[i][1] = corners[i][1];
corners_hold[i][2] = corners[i][2];
}
}
}
}
// if any lists store neighbors of ghosts:
// invoke grow() if nlocal+nghost exceeds previous list size
// else only invoke grow() if nlocal exceeds previous list size
// only done for lists with growflag set and which are perpetual
if (anyghostlist && atom->nlocal+atom->nghost > maxatom) {
maxatom = atom->nmax;
for (i = 0; i < nglist; i++) lists[glist[i]]->grow(maxatom);
} else if (atom->nlocal > maxatom) {
maxatom = atom->nmax;
for (i = 0; i < nglist; i++) lists[glist[i]]->grow(maxatom);
}
// extend atom bin list if necessary
if (style != NSQ && atom->nmax > maxbin) {
maxbin = atom->nmax;
memory->destroy(bins);
memory->create(bins,maxbin,"bins");
}
// check that neighbor list with special bond flags will not overflow
if (atom->nlocal+atom->nghost > NEIGHMASK)
error->one("Too many local+ghost atoms for neighbor list");
// invoke building of pair and molecular neighbor lists
// only for pairwise lists with buildflag set
for (i = 0; i < nblist; i++)
(this->*pair_build[blist[i]])(lists[blist[i]]);
if (atom->molecular) {
if (force->bond) (this->*bond_build)();
if (force->angle) (this->*angle_build)();
if (force->dihedral) (this->*dihedral_build)();
if (force->improper) (this->*improper_build)();
}
}
/* ----------------------------------------------------------------------
build a single occasional pairwise neighbor list indexed by I
called by other classes
------------------------------------------------------------------------- */
void Neighbor::build_one(int i)
{
// update stencils and grow atom arrays and bins as needed
// only for relevant settings of stencilflag and growflag
// grow atom array for this list to current size of perpetual lists
if (lists[i]->stencilflag) {
lists[i]->stencil_allocate(smax,style);
(this->*stencil_create[i])(lists[i],sx,sy,sz);
}
if (lists[i]->growflag) lists[i]->grow(maxatom);
if (style != NSQ && atom->nmax > maxbin) {
maxbin = atom->nmax;
memory->destroy(bins);
memory->create(bins,maxbin,"bins");
}
// check that neighbor list with special bond flags will not overflow
if (atom->nlocal+atom->nghost > NEIGHMASK)
error->one("Too many local+ghost atoms for neighbor list");
// when occasional list built, LAMMPS can crash if atoms have moved too far
// why is this?, give warning if this is the case
// no easy workaround b/c all neighbor lists really need to be rebuilt
// solution is for input script to check more often for rebuild
// only check_distance if running a simulation, not between simulations
int flag = 0;
if (dist_check && update->whichflag) flag = check_distance();
if (flag && me == 0)
error->warning("Building an occasional neighobr list when "
"atoms may have moved too far");
(this->*pair_build[i])(lists[i]);
}
/* ----------------------------------------------------------------------
setup neighbor binning parameters
bin numbering in each dimension is global:
0 = 0.0 to binsize, 1 = binsize to 2*binsize, etc
nbin-1,nbin,etc = bbox-binsize to bbox, bbox to bbox+binsize, etc
-1,-2,etc = -binsize to 0.0, -2*binsize to -binsize, etc
code will work for any binsize
since next(xyz) and stencil extend as far as necessary
binsize = 1/2 of cutoff is roughly optimal
for orthogonal boxes:
a dim must be filled exactly by integer # of bins
in periodic, procs on both sides of PBC must see same bin boundary
in non-periodic, coord2bin() still assumes this by use of nbin xyz
for triclinic boxes:
tilted simulation box cannot contain integer # of bins
stencil & neigh list built differently to account for this
mbinlo = lowest global bin any of my ghost atoms could fall into
mbinhi = highest global bin any of my ghost atoms could fall into
mbin = number of bins I need in a dimension
------------------------------------------------------------------------- */
void Neighbor::setup_bins()
{
// bbox = size of bbox of entire domain
// bsubbox lo/hi = bounding box of my subdomain extended by comm->cutghost
// for triclinic:
// bbox bounds all 8 corners of tilted box
// subdomain is in lamda coords
// include dimension-dependent extension via comm->cutghost
// domain->bbox() converts lamda extent to box coords and computes bbox
double bbox[3],bsubboxlo[3],bsubboxhi[3];
double *cutghost = comm->cutghost;
if (triclinic == 0) {
bsubboxlo[0] = domain->sublo[0] - cutghost[0];
bsubboxlo[1] = domain->sublo[1] - cutghost[1];
bsubboxlo[2] = domain->sublo[2] - cutghost[2];
bsubboxhi[0] = domain->subhi[0] + cutghost[0];
bsubboxhi[1] = domain->subhi[1] + cutghost[1];
bsubboxhi[2] = domain->subhi[2] + cutghost[2];
} else {
double lo[3],hi[3];
lo[0] = domain->sublo_lamda[0] - cutghost[0];
lo[1] = domain->sublo_lamda[1] - cutghost[1];
lo[2] = domain->sublo_lamda[2] - cutghost[2];
hi[0] = domain->subhi_lamda[0] + cutghost[0];
hi[1] = domain->subhi_lamda[1] + cutghost[1];
hi[2] = domain->subhi_lamda[2] + cutghost[2];
domain->bbox(lo,hi,bsubboxlo,bsubboxhi);
}
bbox[0] = bboxhi[0] - bboxlo[0];
bbox[1] = bboxhi[1] - bboxlo[1];
bbox[2] = bboxhi[2] - bboxlo[2];
// optimal bin size is roughly 1/2 the cutoff
// for BIN style, binsize = 1/2 of max neighbor cutoff
// for MULTI style, binsize = 1/2 of min neighbor cutoff
// special case of all cutoffs = 0.0, binsize = box size
double binsize_optimal;
if (binsizeflag) binsize_optimal = binsize_user;
else if (style == BIN) binsize_optimal = 0.5*cutneighmax;
else binsize_optimal = 0.5*cutneighmin;
if (binsize_optimal == 0.0) binsize_optimal = bbox[0];
double binsizeinv = 1.0/binsize_optimal;
// test for too many global bins in any dimension due to huge global domain
if (bbox[0]*binsizeinv > MAXSMALLINT || bbox[1]*binsizeinv > MAXSMALLINT ||
bbox[2]*binsizeinv > MAXSMALLINT)
error->all("Domain too large for neighbor bins");
// create actual bins
// always have one bin even if cutoff > bbox
// for 2d, nbinz = 1
nbinx = static_cast<int> (bbox[0]*binsizeinv);
nbiny = static_cast<int> (bbox[1]*binsizeinv);
if (dimension == 3) nbinz = static_cast<int> (bbox[2]*binsizeinv);
else nbinz = 1;
if (nbinx == 0) nbinx = 1;
if (nbiny == 0) nbiny = 1;
if (nbinz == 0) nbinz = 1;
// compute actual bin size for nbins to fit into box exactly
// error if actual bin size << cutoff, since will create a zillion bins
// this happens when nbin = 1 and box size << cutoff
// typically due to non-periodic, flat system in a particular dim
// in that extreme case, should use NSQ not BIN neighbor style
binsizex = bbox[0]/nbinx;
binsizey = bbox[1]/nbiny;
binsizez = bbox[2]/nbinz;
bininvx = 1.0 / binsizex;
bininvy = 1.0 / binsizey;
bininvz = 1.0 / binsizez;
if (binsize_optimal*bininvx > CUT2BIN_RATIO ||
binsize_optimal*bininvy > CUT2BIN_RATIO ||
binsize_optimal*bininvz > CUT2BIN_RATIO)
error->all("Cannot use neighbor bins - box size << cutoff");
// mbinlo/hi = lowest and highest global bins my ghost atoms could be in
// coord = lowest and highest values of coords for my ghost atoms
// static_cast(-1.5) = -1, so subract additional -1
// add in SMALL for round-off safety
int mbinxhi,mbinyhi,mbinzhi;
double coord;
coord = bsubboxlo[0] - SMALL*bbox[0];
mbinxlo = static_cast<int> ((coord-bboxlo[0])*bininvx);
if (coord < bboxlo[0]) mbinxlo = mbinxlo - 1;
coord = bsubboxhi[0] + SMALL*bbox[0];
mbinxhi = static_cast<int> ((coord-bboxlo[0])*bininvx);
coord = bsubboxlo[1] - SMALL*bbox[1];
mbinylo = static_cast<int> ((coord-bboxlo[1])*bininvy);
if (coord < bboxlo[1]) mbinylo = mbinylo - 1;
coord = bsubboxhi[1] + SMALL*bbox[1];
mbinyhi = static_cast<int> ((coord-bboxlo[1])*bininvy);
if (dimension == 3) {
coord = bsubboxlo[2] - SMALL*bbox[2];
mbinzlo = static_cast<int> ((coord-bboxlo[2])*bininvz);
if (coord < bboxlo[2]) mbinzlo = mbinzlo - 1;
coord = bsubboxhi[2] + SMALL*bbox[2];
mbinzhi = static_cast<int> ((coord-bboxlo[2])*bininvz);
}
// extend bins by 1 to insure stencil extent is included
// if 2d, only 1 bin in z
mbinxlo = mbinxlo - 1;
mbinxhi = mbinxhi + 1;
mbinx = mbinxhi - mbinxlo + 1;
mbinylo = mbinylo - 1;
mbinyhi = mbinyhi + 1;
mbiny = mbinyhi - mbinylo + 1;
if (dimension == 3) {
mbinzlo = mbinzlo - 1;
mbinzhi = mbinzhi + 1;
} else mbinzlo = mbinzhi = 0;
mbinz = mbinzhi - mbinzlo + 1;
// memory for bin ptrs
bigint bbin = mbinx*mbiny*mbinz;
if (bbin > MAXSMALLINT) error->one("Too many neighbor bins");
mbins = bbin;
if (mbins > maxhead) {
maxhead = mbins;
memory->destroy(binhead);
memory->create(binhead,maxhead,"neigh:binhead");
}
// create stencil of bins to search over in neighbor list construction
// sx,sy,sz = max range of stencil in each dim
// smax = max possible size of entire 3d stencil
// stencil is empty if cutneighmax = 0.0
sx = static_cast<int> (cutneighmax*bininvx);
if (sx*binsizex < cutneighmax) sx++;
sy = static_cast<int> (cutneighmax*bininvy);
if (sy*binsizey < cutneighmax) sy++;
sz = static_cast<int> (cutneighmax*bininvz);
if (sz*binsizez < cutneighmax) sz++;
if (dimension == 2) sz = 0;
smax = (2*sx+1) * (2*sy+1) * (2*sz+1);
// create stencils for pairwise neighbor lists
// only done for lists with stencilflag and buildflag set
for (int i = 0; i < nslist; i++) {
lists[slist[i]]->stencil_allocate(smax,style);
(this->*stencil_create[slist[i]])(lists[slist[i]],sx,sy,sz);
}
}
/* ----------------------------------------------------------------------
compute closest distance between central bin (0,0,0) and bin (i,j,k)
------------------------------------------------------------------------- */
double Neighbor::bin_distance(int i, int j, int k)
{
double delx,dely,delz;
if (i > 0) delx = (i-1)*binsizex;
else if (i == 0) delx = 0.0;
else delx = (i+1)*binsizex;
if (j > 0) dely = (j-1)*binsizey;
else if (j == 0) dely = 0.0;
else dely = (j+1)*binsizey;
if (k > 0) delz = (k-1)*binsizez;
else if (k == 0) delz = 0.0;
else delz = (k+1)*binsizez;
return (delx*delx + dely*dely + delz*delz);
}
/* ----------------------------------------------------------------------
set neighbor style and skin distance
------------------------------------------------------------------------- */
void Neighbor::set(int narg, char **arg)
{
if (narg != 2) error->all("Illegal neighbor command");
skin = atof(arg[0]);
if (skin < 0.0) error->all("Illegal neighbor command");
if (strcmp(arg[1],"nsq") == 0) style = NSQ;
else if (strcmp(arg[1],"bin") == 0) style = BIN;
else if (strcmp(arg[1],"multi") == 0) style = MULTI;
else error->all("Illegal neighbor command");
}
/* ----------------------------------------------------------------------
modify parameters of the pair-wise neighbor build
------------------------------------------------------------------------- */
void Neighbor::modify_params(int narg, char **arg)
{
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"every") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
every = atoi(arg[iarg+1]);
if (every <= 0) error->all("Illegal neigh_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"delay") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
delay = atoi(arg[iarg+1]);
if (delay < 0) error->all("Illegal neigh_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"check") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
if (strcmp(arg[iarg+1],"yes") == 0) dist_check = 1;
else if (strcmp(arg[iarg+1],"no") == 0) dist_check = 0;
else error->all("Illegal neigh_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"once") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
if (strcmp(arg[iarg+1],"yes") == 0) build_once = 1;
else if (strcmp(arg[iarg+1],"no") == 0) build_once = 0;
else error->all("Illegal neigh_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"page") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
pgsize = atoi(arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"one") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
oneatom = atoi(arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"binsize") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
binsize_user = atof(arg[iarg+1]);
if (binsize_user <= 0.0) binsizeflag = 0;
else binsizeflag = 1;
iarg += 2;
} else if (strcmp(arg[iarg],"include") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
includegroup = group->find(arg[iarg+1]);
if (includegroup < 0)
error->all("Invalid group ID in neigh_modify command");
if (includegroup && (atom->firstgroupname == NULL ||
strcmp(arg[iarg+1],atom->firstgroupname) != 0))
error->all("Neigh_modify include group != atom_modify first group");
iarg += 2;
} else if (strcmp(arg[iarg],"exclude") == 0) {
if (iarg+2 > narg) error->all("Illegal neigh_modify command");
if (strcmp(arg[iarg+1],"type") == 0) {
if (iarg+4 > narg) error->all("Illegal neigh_modify command");
if (nex_type == maxex_type) {
maxex_type += EXDELTA;
memory->grow(ex1_type,maxex_type,"neigh:ex1_type");
memory->grow(ex2_type,maxex_type,"neigh:ex2_type");
}
ex1_type[nex_type] = atoi(arg[iarg+2]);
ex2_type[nex_type] = atoi(arg[iarg+3]);
nex_type++;
iarg += 4;
} else if (strcmp(arg[iarg+1],"group") == 0) {
if (iarg+4 > narg) error->all("Illegal neigh_modify command");
if (nex_group == maxex_group) {
maxex_group += EXDELTA;
memory->grow(ex1_group,maxex_group,"neigh:ex1_group");
memory->grow(ex2_group,maxex_group,"neigh:ex2_group");
}
ex1_group[nex_group] = group->find(arg[iarg+2]);
ex2_group[nex_group] = group->find(arg[iarg+3]);
if (ex1_group[nex_group] == -1 || ex2_group[nex_group] == -1)
error->all("Invalid group ID in neigh_modify command");
nex_group++;
iarg += 4;
} else if (strcmp(arg[iarg+1],"molecule") == 0) {
if (iarg+3 > narg) error->all("Illegal neigh_modify command");
if (atom->molecule_flag == 0) {
char *str = (char *)
"Neigh_modify exclude molecule requires atom attribute molecule";
error->all(str);
}
if (nex_mol == maxex_mol) {
maxex_mol += EXDELTA;
memory->grow(ex_mol_group,maxex_mol,"neigh:ex_mol_group");
}
ex_mol_group[nex_mol] = group->find(arg[iarg+2]);
if (ex_mol_group[nex_mol] == -1)
error->all("Invalid group ID in neigh_modify command");
nex_mol++;
iarg += 3;
} else if (strcmp(arg[iarg+1],"none") == 0) {
nex_type = nex_group = nex_mol = 0;
iarg += 2;
} else error->all("Illegal neigh_modify command");
} else error->all("Illegal neigh_modify command");
}
}
/* ----------------------------------------------------------------------
bin owned and ghost atoms
------------------------------------------------------------------------- */
void Neighbor::bin_atoms()
{
int i,ibin;
for (i = 0; i < mbins; i++) binhead[i] = -1;
// bin in reverse order so linked list will be in forward order
// also puts ghost atoms at end of list, which is necessary
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int nall = nlocal + atom->nghost;
if (includegroup) {
int bitmask = group->bitmask[includegroup];
for (i = nall-1; i >= nlocal; i--) {
if (mask[i] & bitmask) {
ibin = coord2bin(x[i]);
bins[i] = binhead[ibin];
binhead[ibin] = i;
}
}
for (i = atom->nfirst-1; i >= 0; i--) {
ibin = coord2bin(x[i]);
bins[i] = binhead[ibin];
binhead[ibin] = i;
}
} else {
for (i = nall-1; i >= 0; i--) {
ibin = coord2bin(x[i]);
bins[i] = binhead[ibin];
binhead[ibin] = i;
}
}
}
/* ----------------------------------------------------------------------
convert atom coords into local bin #
for orthogonal, only ghost atoms will have coord >= bboxhi or coord < bboxlo
take special care to insure ghosts are in correct bins even w/ roundoff
hi ghost atoms = nbin,nbin+1,etc
owned atoms = 0 to nbin-1
lo ghost atoms = -1,-2,etc
this is necessary so that both procs on either side of PBC
treat a pair of atoms straddling the PBC in a consistent way
for triclinic, doesn't matter since stencil & neigh list built differently
------------------------------------------------------------------------- */
int Neighbor::coord2bin(double *x)
{
int ix,iy,iz;
if (x[0] >= bboxhi[0])
ix = static_cast<int> ((x[0]-bboxhi[0])*bininvx) + nbinx;
else if (x[0] >= bboxlo[0]) {
ix = static_cast<int> ((x[0]-bboxlo[0])*bininvx);
ix = MIN(ix,nbinx-1);
} else
ix = static_cast<int> ((x[0]-bboxlo[0])*bininvx) - 1;
if (x[1] >= bboxhi[1])
iy = static_cast<int> ((x[1]-bboxhi[1])*bininvy) + nbiny;
else if (x[1] >= bboxlo[1]) {
iy = static_cast<int> ((x[1]-bboxlo[1])*bininvy);
iy = MIN(iy,nbiny-1);
} else
iy = static_cast<int> ((x[1]-bboxlo[1])*bininvy) - 1;
if (x[2] >= bboxhi[2])
iz = static_cast<int> ((x[2]-bboxhi[2])*bininvz) + nbinz;
else if (x[2] >= bboxlo[2]) {
iz = static_cast<int> ((x[2]-bboxlo[2])*bininvz);
iz = MIN(iz,nbinz-1);
} else
iz = static_cast<int> ((x[2]-bboxlo[2])*bininvz) - 1;
return (iz-mbinzlo)*mbiny*mbinx + (iy-mbinylo)*mbinx + (ix-mbinxlo);
}
/* ----------------------------------------------------------------------
same as coord2bin, but also return ix,iy,iz offsets in each dim
------------------------------------------------------------------------- */
int Neighbor::coord2bin(double *x, int &ix, int &iy, int &iz)
{
if (x[0] >= bboxhi[0])
ix = static_cast<int> ((x[0]-bboxhi[0])*bininvx) + nbinx;
else if (x[0] >= bboxlo[0]) {
ix = static_cast<int> ((x[0]-bboxlo[0])*bininvx);
ix = MIN(ix,nbinx-1);
} else
ix = static_cast<int> ((x[0]-bboxlo[0])*bininvx) - 1;
if (x[1] >= bboxhi[1])
iy = static_cast<int> ((x[1]-bboxhi[1])*bininvy) + nbiny;
else if (x[1] >= bboxlo[1]) {
iy = static_cast<int> ((x[1]-bboxlo[1])*bininvy);
iy = MIN(iy,nbiny-1);
} else
iy = static_cast<int> ((x[1]-bboxlo[1])*bininvy) - 1;
if (x[2] >= bboxhi[2])
iz = static_cast<int> ((x[2]-bboxhi[2])*bininvz) + nbinz;
else if (x[2] >= bboxlo[2]) {
iz = static_cast<int> ((x[2]-bboxlo[2])*bininvz);
iz = MIN(iz,nbinz-1);
} else
iz = static_cast<int> ((x[2]-bboxlo[2])*bininvz) - 1;
ix -= mbinxlo;
iy -= mbinylo;
iz -= mbinzlo;
return iz*mbiny*mbinx + iy*mbinx + ix;
}
/* ----------------------------------------------------------------------
test if atom pair i,j is excluded from neighbor list
due to type, group, molecule settings from neigh_modify command
return 1 if should be excluded, 0 if included
------------------------------------------------------------------------- */
int Neighbor::exclusion(int i, int j, int itype, int jtype,
int *mask, int *molecule)
{
int m;
if (nex_type && ex_type[itype][jtype]) return 1;
if (nex_group) {
for (m = 0; m < nex_group; m++) {
if (mask[i] & ex1_bit[m] && mask[j] & ex2_bit[m]) return 1;
if (mask[i] & ex2_bit[m] && mask[j] & ex1_bit[m]) return 1;
}
}
if (nex_mol) {
for (m = 0; m < nex_mol; m++)
if (mask[i] & ex_mol_bit[m] && mask[j] & ex_mol_bit[m] &&
molecule[i] == molecule[j]) return 1;
}
return 0;
}
/* ----------------------------------------------------------------------
return # of bytes of allocated memory
------------------------------------------------------------------------- */
bigint Neighbor::memory_usage()
{
bigint bytes = 0;
bytes += memory->usage(xhold,maxhold,3);
if (style != NSQ) {
bytes += memory->usage(bins,maxbin);
bytes += memory->usage(binhead,maxhead);
}
for (int i = 0; i < nlist; i++) bytes += lists[i]->memory_usage();
bytes += memory->usage(bondlist,maxbond,3);
bytes += memory->usage(anglelist,maxangle,4);
bytes += memory->usage(dihedrallist,maxdihedral,5);
bytes += memory->usage(improperlist,maximproper,5);
return bytes;
}
diff --git a/src/pair_lj96_cut.cpp b/src/pair_lj96_cut.cpp
index ccdab6e75..758ef0ab5 100644
--- a/src/pair_lj96_cut.cpp
+++ b/src/pair_lj96_cut.cpp
@@ -1,703 +1,703 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Chuanfu Luo (luochuanfu@gmail.com)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_lj96_cut.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJ96Cut::PairLJ96Cut(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
}
/* ---------------------------------------------------------------------- */
PairLJ96Cut::~PairLJ96Cut()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(offset);
}
}
/* ---------------------------------------------------------------------- */
void PairLJ96Cut::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r3inv,r6inv,forcelj,factor_lj;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
evdwl = r6inv*(lj3[itype][jtype]*r3inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairLJ96Cut::compute_inner()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r3inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listinner->inum;
ilist = listinner->ilist;
numneigh = listinner->numneigh;
firstneigh = listinner->firstneigh;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 - rsw*rsw*(3.0 - 2.0*rsw);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJ96Cut::compute_middle()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r3inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listmiddle->inum;
ilist = listmiddle->ilist;
numneigh = listmiddle->numneigh;
firstneigh = listmiddle->firstneigh;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq && rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw - 3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJ96Cut::compute_outer(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r3inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listouter->inum;
ilist = listouter->ilist;
numneigh = listouter->numneigh;
firstneigh = listouter->firstneigh;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
if (rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
if (eflag) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
evdwl = r6inv*(lj3[itype][jtype]*r3inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (vflag) {
if (rsq <= cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
} else if (rsq < cut_in_on_sq)
fpair = factor_lj*forcelj*r2inv;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJ96Cut::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLJ96Cut::settings(int narg, char **arg)
{
if (narg != 1) error->all("Illegal pair_style command");
cut_global = force->numeric(arg[0]);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut[i][j] = cut_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJ96Cut::coeff(int narg, char **arg)
{
if (narg < 4 || narg > 5) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
double epsilon_one = atof(arg[2]);
double sigma_one = atof(arg[3]);
double cut_one = cut_global;
if (narg == 5) cut_one = atof(arg[4]);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
cut[i][j] = cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJ96Cut::init_style()
{
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 1 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairLJ96Cut::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJ96Cut::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
}
lj1[i][j] = 36.0 * epsilon[i][j] * pow(sigma[i][j],9.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],9.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
if (offset_flag) {
double ratio = sigma[i][j] / cut[i][j];
offset[i][j] = 4.0 * epsilon[i][j] * (pow(ratio,9.0) - pow(ratio,6.0));
} else offset[i][j] = 0.0;
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
offset[j][i] = offset[i][j];
// check interior rRESPA cutoff
if (cut_respa && cut[i][j] < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
// compute I,J contribution to long-range tail correction
// count total # of atoms of type I and J via Allreduce
if (tail_flag) {
int *type = atom->type;
int nlocal = atom->nlocal;
double count[2],all[2];
count[0] = count[1] = 0.0;
for (int k = 0; k < nlocal; k++) {
if (type[k] == i) count[0] += 1.0;
if (type[k] == j) count[1] += 1.0;
}
MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world);
double PI = 4.0*atan(1.0);
double sig3 = sigma[i][j]*sigma[i][j]*sigma[i][j];
double sig6 = sig3*sig3;
double rc3 = cut[i][j]*cut[i][j]*cut[i][j];
double rc6 = rc3*rc3;
etail_ij = 8.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (sig3 - 2.0*rc3) / (6.0*rc6);
ptail_ij = 8.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (3.0*sig3 - 4.0*rc3) / (6.0*rc6);
}
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJ96Cut::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJ96Cut::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&cut[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJ96Cut::write_restart_settings(FILE *fp)
{
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJ96Cut::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
fread(&cut_global,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ---------------------------------------------------------------------- */
double PairLJ96Cut::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj,
double &fforce)
{
double r2inv,r3inv,r6inv,forcelj,philj;
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
r3inv = sqrt(r6inv);
forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]);
fforce = factor_lj*forcelj*r2inv;
philj = r6inv*(lj3[itype][jtype]*r3inv-lj4[itype][jtype]) -
offset[itype][jtype];
return factor_lj*philj;
}
diff --git a/src/pair_lj_cut.cpp b/src/pair_lj_cut.cpp
index 21d8cc50a..5af7e1c89 100644
--- a/src/pair_lj_cut.cpp
+++ b/src/pair_lj_cut.cpp
@@ -1,705 +1,705 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Paul Crozier (SNL)
------------------------------------------------------------------------- */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "pair_lj_cut.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "update.h"
#include "integrate.h"
#include "respa.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
PairLJCut::PairLJCut(LAMMPS *lmp) : Pair(lmp)
{
respa_enable = 1;
}
/* ---------------------------------------------------------------------- */
PairLJCut::~PairLJCut()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(offset);
}
}
/* ---------------------------------------------------------------------- */
void PairLJCut::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairLJCut::compute_inner()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listinner->inum;
ilist = listinner->ilist;
numneigh = listinner->numneigh;
firstneigh = listinner->firstneigh;
double cut_out_on = cut_respa[0];
double cut_out_off = cut_respa[1];
double cut_out_diff = cut_out_off - cut_out_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 - rsw*rsw*(3.0 - 2.0*rsw);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCut::compute_middle()
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listmiddle->inum;
ilist = listmiddle->ilist;
numneigh = listmiddle->numneigh;
firstneigh = listmiddle->firstneigh;
double cut_in_off = cut_respa[0];
double cut_in_on = cut_respa[1];
double cut_out_on = cut_respa[2];
double cut_out_off = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_out_diff = cut_out_off - cut_out_on;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
double cut_out_on_sq = cut_out_on*cut_out_on;
double cut_out_off_sq = cut_out_off*cut_out_off;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < cut_out_off_sq && rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
jtype = type[j];
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
if (rsq > cut_out_on_sq) {
rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff;
fpair *= 1.0 + rsw*rsw*(2.0*rsw - 3.0);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairLJCut::compute_outer(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj,rsw;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = listouter->inum;
ilist = listouter->ilist;
numneigh = listouter->numneigh;
firstneigh = listouter->firstneigh;
double cut_in_off = cut_respa[2];
double cut_in_on = cut_respa[3];
double cut_in_diff = cut_in_on - cut_in_off;
double cut_in_off_sq = cut_in_off*cut_in_off;
double cut_in_on_sq = cut_in_on*cut_in_on;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
if (rsq > cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
if (rsq < cut_in_on_sq) {
rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff;
fpair *= rsw*rsw*(3.0 - 2.0*rsw);
}
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
}
if (eflag) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (vflag) {
if (rsq <= cut_in_off_sq) {
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fpair = factor_lj*forcelj*r2inv;
} else if (rsq < cut_in_on_sq)
fpair = factor_lj*forcelj*r2inv;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJCut::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLJCut::settings(int narg, char **arg)
{
if (narg != 1) error->all("Illegal pair_style command");
cut_global = force->numeric(arg[0]);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
if (setflag[i][j]) cut[i][j] = cut_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJCut::coeff(int narg, char **arg)
{
if (narg < 4 || narg > 5) error->all("Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
double epsilon_one = force->numeric(arg[2]);
double sigma_one = force->numeric(arg[3]);
double cut_one = cut_global;
if (narg == 5) cut_one = force->numeric(arg[4]);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
cut[i][j] = cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all("Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLJCut::init_style()
{
// request regular or rRESPA neighbor lists
int irequest;
- if (update->whichflag == 1 && strcmp(update->integrate_style,"respa") == 0) {
+ if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) {
int respa = 0;
if (((Respa *) update->integrate)->level_inner >= 0) respa = 1;
if (((Respa *) update->integrate)->level_middle >= 0) respa = 2;
if (respa == 0) irequest = neighbor->request(this);
else if (respa == 1) {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
} else {
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 1;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respainner = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 2;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respamiddle = 1;
irequest = neighbor->request(this);
neighbor->requests[irequest]->id = 3;
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->respaouter = 1;
}
} else irequest = neighbor->request(this);
// set rRESPA cutoffs
- if (strcmp(update->integrate_style,"respa") == 0 &&
+ if (strstr(update->integrate_style,"respa") &&
((Respa *) update->integrate)->level_inner >= 0)
cut_respa = ((Respa *) update->integrate)->cutoff;
else cut_respa = NULL;
}
/* ----------------------------------------------------------------------
neighbor callback to inform pair style of neighbor list to use
regular or rRESPA
------------------------------------------------------------------------- */
void PairLJCut::init_list(int id, NeighList *ptr)
{
if (id == 0) list = ptr;
else if (id == 1) listinner = ptr;
else if (id == 2) listmiddle = ptr;
else if (id == 3) listouter = ptr;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJCut::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
}
lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
if (offset_flag) {
double ratio = sigma[i][j] / cut[i][j];
offset[i][j] = 4.0 * epsilon[i][j] * (pow(ratio,12.0) - pow(ratio,6.0));
} else offset[i][j] = 0.0;
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
offset[j][i] = offset[i][j];
// check interior rRESPA cutoff
if (cut_respa && cut[i][j] < cut_respa[3])
error->all("Pair cutoff < Respa interior cutoff");
// compute I,J contribution to long-range tail correction
// count total # of atoms of type I and J via Allreduce
if (tail_flag) {
int *type = atom->type;
int nlocal = atom->nlocal;
double count[2],all[2];
count[0] = count[1] = 0.0;
for (int k = 0; k < nlocal; k++) {
if (type[k] == i) count[0] += 1.0;
if (type[k] == j) count[1] += 1.0;
}
MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world);
double PI = 4.0*atan(1.0);
double sig2 = sigma[i][j]*sigma[i][j];
double sig6 = sig2*sig2*sig2;
double rc3 = cut[i][j]*cut[i][j]*cut[i][j];
double rc6 = rc3*rc3;
double rc9 = rc3*rc6;
etail_ij = 8.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (sig6 - 3.0*rc6) / (9.0*rc9);
ptail_ij = 16.0*PI*all[0]*all[1]*epsilon[i][j] *
sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9);
}
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCut::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCut::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&cut[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJCut::write_restart_settings(FILE *fp)
{
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJCut::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
fread(&cut_global,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ---------------------------------------------------------------------- */
double PairLJCut::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_lj,
double &fforce)
{
double r2inv,r6inv,forcelj,philj;
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]);
fforce = factor_lj*forcelj*r2inv;
philj = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) -
offset[itype][jtype];
return factor_lj*philj;
}
/* ---------------------------------------------------------------------- */
void *PairLJCut::extract(char *str, int &dim)
{
dim = 2;
if (strcmp(str,"epsilon") == 0) return (void *) epsilon;
return NULL;
}
diff --git a/src/read_data.cpp b/src/read_data.cpp
index c3e513b45..3b7127dcc 100644
--- a/src/read_data.cpp
+++ b/src/read_data.cpp
@@ -1,1397 +1,1404 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "math.h"
#include "mpi.h"
#include "string.h"
#include "stdlib.h"
#include "ctype.h"
#include "read_data.h"
#include "atom.h"
#include "atom_vec.h"
#include "atom_vec_ellipsoid.h"
#include "comm.h"
#include "update.h"
#include "force.h"
#include "pair.h"
#include "domain.h"
#include "bond.h"
#include "angle.h"
#include "dihedral.h"
#include "improper.h"
#include "error.h"
#include "memory.h"
#include "special.h"
using namespace LAMMPS_NS;
#define MAXLINE 256
#define LB_FACTOR 1.1
#define CHUNK 1024
#define DELTA 4 // must be 2 or larger
// customize for new sections
#define NSECTIONS 21 // change when add to header::section_keywords
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
/* ---------------------------------------------------------------------- */
ReadData::ReadData(LAMMPS *lmp) : Pointers(lmp)
{
MPI_Comm_rank(world,&me);
line = new char[MAXLINE];
keyword = new char[MAXLINE];
buffer = new char[CHUNK*MAXLINE];
narg = maxarg = 0;
arg = NULL;
// customize for new sections
// pointers to atom styles that store extra info
nellipsoids = 0;
avec_ellipsoid = (AtomVecEllipsoid *) atom->style_match("ellipsoid");
}
/* ---------------------------------------------------------------------- */
ReadData::~ReadData()
{
delete [] line;
delete [] keyword;
delete [] buffer;
memory->sfree(arg);
}
/* ---------------------------------------------------------------------- */
void ReadData::command(int narg, char **arg)
{
if (narg != 1) error->all("Illegal read_data command");
if (domain->box_exist)
error->all("Cannot read_data after simulation box is defined");
if (domain->dimension == 2 && domain->zperiodic == 0)
error->all("Cannot run 2d simulation with nonperiodic Z dimension");
// scan data file to determine max topology needed per atom
// allocate initial topology arrays
if (atom->molecular) {
if (me == 0) {
if (screen) fprintf(screen,"Scanning data file ...\n");
open(arg[0]);
header(0);
scan(atom->bond_per_atom,atom->angle_per_atom,
atom->dihedral_per_atom,atom->improper_per_atom);
if (compressed) pclose(fp);
else fclose(fp);
atom->bond_per_atom += atom->extra_bond_per_atom;
}
MPI_Bcast(&atom->bond_per_atom,1,MPI_INT,0,world);
MPI_Bcast(&atom->angle_per_atom,1,MPI_INT,0,world);
MPI_Bcast(&atom->dihedral_per_atom,1,MPI_INT,0,world);
MPI_Bcast(&atom->improper_per_atom,1,MPI_INT,0,world);
} else
atom->bond_per_atom = atom->angle_per_atom =
atom->dihedral_per_atom = atom->improper_per_atom = 0;
// read header info
if (me == 0) {
if (screen) fprintf(screen,"Reading data file ...\n");
open(arg[0]);
}
header(1);
domain->box_exist = 1;
// problem setup using info from header
update->ntimestep = 0;
int n;
if (comm->nprocs == 1) n = static_cast<int> (atom->natoms);
else n = static_cast<int> (LB_FACTOR * atom->natoms / comm->nprocs);
atom->allocate_type_arrays();
atom->avec->grow(n);
n = atom->nmax;
domain->print_box(" ");
domain->set_initial_box();
domain->set_global_box();
comm->set_procs();
domain->set_local_box();
// customize for new sections
// read rest of file in free format
int atomflag = 0;
while (strlen(keyword)) {
if (strcmp(keyword,"Atoms") == 0) {
atoms();
atomflag = 1;
} else if (strcmp(keyword,"Velocities") == 0) {
if (atomflag == 0) error->all("Must read Atoms before Velocities");
velocities();
} else if (strcmp(keyword,"Ellipsoids") == 0) {
if (!avec_ellipsoid)
error->all("Invalid data file section: Ellipsoids");
if (atomflag == 0) error->all("Must read Atoms before Ellipsoids");
ellipsoids();
} else if (strcmp(keyword,"Bonds") == 0) {
if (atom->avec->bonds_allow == 0)
error->all("Invalid data file section: Bonds");
if (atomflag == 0) error->all("Must read Atoms before Bonds");
bonds();
} else if (strcmp(keyword,"Angles") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: Angles");
if (atomflag == 0) error->all("Must read Atoms before Angles");
angles();
} else if (strcmp(keyword,"Dihedrals") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: Dihedrals");
if (atomflag == 0) error->all("Must read Atoms before Dihedrals");
dihedrals();
} else if (strcmp(keyword,"Impropers") == 0) {
if (atom->avec->impropers_allow == 0)
error->all("Invalid data file section: Impropers");
if (atomflag == 0) error->all("Must read Atoms before Impropers");
impropers();
} else if (strcmp(keyword,"Masses") == 0) {
mass();
} else if (strcmp(keyword,"Pair Coeffs") == 0) {
if (force->pair == NULL)
error->all("Must define pair_style before Pair Coeffs");
paircoeffs();
} else if (strcmp(keyword,"Bond Coeffs") == 0) {
if (atom->avec->bonds_allow == 0)
error->all("Invalid data file section: Bond Coeffs");
if (force->bond == NULL)
error->all("Must define bond_style before Bond Coeffs");
bondcoeffs();
} else if (strcmp(keyword,"Angle Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: Angle Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before Angle Coeffs");
anglecoeffs(0);
} else if (strcmp(keyword,"Dihedral Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: Dihedral Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before Dihedral Coeffs");
dihedralcoeffs(0);
} else if (strcmp(keyword,"Improper Coeffs") == 0) {
if (atom->avec->impropers_allow == 0)
error->all("Invalid data file section: Improper Coeffs");
if (force->improper == NULL)
error->all("Must define improper_style before Improper Coeffs");
impropercoeffs(0);
} else if (strcmp(keyword,"BondBond Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: BondBond Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before BondBond Coeffs");
anglecoeffs(1);
} else if (strcmp(keyword,"BondAngle Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: BondAngle Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before BondAngle Coeffs");
anglecoeffs(2);
} else if (strcmp(keyword,"MiddleBondTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: MiddleBondTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before MiddleBondTorsion Coeffs");
dihedralcoeffs(1);
} else if (strcmp(keyword,"EndBondTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: EndBondTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before EndBondTorsion Coeffs");
dihedralcoeffs(2);
} else if (strcmp(keyword,"AngleTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: AngleTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before AngleTorsion Coeffs");
dihedralcoeffs(3);
} else if (strcmp(keyword,"AngleAngleTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: AngleAngleTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before AngleAngleTorsion Coeffs");
dihedralcoeffs(4);
} else if (strcmp(keyword,"BondBond13 Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: BondBond13 Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before BondBond13 Coeffs");
dihedralcoeffs(5);
} else if (strcmp(keyword,"AngleAngle Coeffs") == 0) {
if (atom->avec->impropers_allow == 0)
error->all("Invalid data file section: AngleAngle Coeffs");
if (force->improper == NULL)
error->all("Must define improper_style before AngleAngle Coeffs");
impropercoeffs(1);
} else {
char str[128];
sprintf(str,"Unknown identifier in data file: %s",keyword);
error->all(str);
}
parse_keyword(0,1);
}
// close file
if (me == 0) {
if (compressed) pclose(fp);
else fclose(fp);
}
// error if natoms > 0 yet no atoms were read
if (atom->natoms > 0 && atomflag == 0) error->all("No atoms in data file");
// create bond topology now that system is defined
if (atom->molecular) {
Special special(lmp);
special.build();
}
}
/* ----------------------------------------------------------------------
read free-format header of data file
if flag = 0, only called by proc 0
if flag = 1, called by all procs so bcast lines as read them
1st line and blank lines are skipped
non-blank lines are checked for header keywords and leading value is read
header ends with EOF or non-blank line containing no header keyword
if EOF, line is set to blank line
else line has first keyword line for rest of file
------------------------------------------------------------------------- */
void ReadData::header(int flag)
{
int n;
char *ptr;
// customize for new sections
char *section_keywords[NSECTIONS] =
{"Atoms","Velocities","Ellipsoids",
"Bonds","Angles","Dihedrals","Impropers",
"Masses","Pair Coeffs","Bond Coeffs","Angle Coeffs",
"Dihedral Coeffs","Improper Coeffs",
"BondBond Coeffs","BondAngle Coeffs","MiddleBondTorsion Coeffs",
"EndBondTorsion Coeffs","AngleTorsion Coeffs",
"AngleAngleTorsion Coeffs","BondBond13 Coeffs","AngleAngle Coeffs"};
// skip 1st line of file
if (me == 0) {
char *eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
}
// customize for new header lines
while (1) {
// read a line and bcast length if flag is set
if (me == 0) {
if (fgets(line,MAXLINE,fp) == NULL) n = 0;
else n = strlen(line) + 1;
}
if (flag) MPI_Bcast(&n,1,MPI_INT,0,world);
// if n = 0 then end-of-file so return with blank line
if (n == 0) {
line[0] = '\0';
return;
}
// bcast line if flag is set
if (flag) MPI_Bcast(line,n,MPI_CHAR,0,world);
// trim anything from '#' onward
// if line is blank, continue
if (ptr = strchr(line,'#')) *ptr = '\0';
if (strspn(line," \t\n\r") == strlen(line)) continue;
// search line for header keyword and set corresponding variable
if (strstr(line,"atoms")) sscanf(line,BIGINT_FORMAT,&atom->natoms);
else if (strstr(line,"bonds")) sscanf(line,BIGINT_FORMAT,&atom->nbonds);
else if (strstr(line,"angles")) sscanf(line,BIGINT_FORMAT,&atom->nangles);
else if (strstr(line,"dihedrals")) sscanf(line,BIGINT_FORMAT,
&atom->ndihedrals);
else if (strstr(line,"impropers")) sscanf(line,BIGINT_FORMAT,
&atom->nimpropers);
else if (strstr(line,"atom types")) sscanf(line,"%d",&atom->ntypes);
else if (strstr(line,"bond types")) sscanf(line,"%d",&atom->nbondtypes);
else if (strstr(line,"angle types")) sscanf(line,"%d",&atom->nangletypes);
else if (strstr(line,"dihedral types"))
sscanf(line,"%d",&atom->ndihedraltypes);
else if (strstr(line,"improper types"))
sscanf(line,"%d",&atom->nimpropertypes);
else if (strstr(line,"extra bond per atom"))
sscanf(line,"%d",&atom->extra_bond_per_atom);
else if (strstr(line,"ellipsoids")) {
if (!avec_ellipsoid)
error->all("No ellipsoids allowed with this atom style");
sscanf(line,BIGINT_FORMAT,&nellipsoids);
}
else if (strstr(line,"xlo xhi"))
sscanf(line,"%lg %lg",&domain->boxlo[0],&domain->boxhi[0]);
else if (strstr(line,"ylo yhi"))
sscanf(line,"%lg %lg",&domain->boxlo[1],&domain->boxhi[1]);
else if (strstr(line,"zlo zhi"))
sscanf(line,"%lg %lg",&domain->boxlo[2],&domain->boxhi[2]);
else if (strstr(line,"xy xz yz")) {
domain->triclinic = 1;
sscanf(line,"%lg %lg %lg",&domain->xy,&domain->xz,&domain->yz);
} else break;
}
// error check on total system size
if (atom->natoms < 0 || atom->natoms > MAXBIGINT ||
atom->nbonds < 0 || atom->nbonds > MAXBIGINT ||
atom->nangles < 0 || atom->nangles > MAXBIGINT ||
atom->ndihedrals < 0 || atom->ndihedrals > MAXBIGINT ||
atom->nimpropers < 0 || atom->nimpropers > MAXBIGINT) {
if (flag == 0) error->one("System in data file is too big");
else error->all("System in data file is too big");
}
// check that exiting string is a valid section keyword
parse_keyword(1,flag);
for (n = 0; n < NSECTIONS; n++)
if (strcmp(keyword,section_keywords[n]) == 0) break;
if (n == NSECTIONS) {
char str[128];
sprintf(str,"Unknown identifier in data file: %s",keyword);
error->all(str);
}
// error check on consistency of header values
if ((atom->nbonds || atom->nbondtypes) &&
atom->avec->bonds_allow == 0)
error->one("No bonds allowed with this atom style");
if ((atom->nangles || atom->nangletypes) &&
atom->avec->angles_allow == 0)
error->one("No angles allowed with this atom style");
if ((atom->ndihedrals || atom->ndihedraltypes) &&
atom->avec->dihedrals_allow == 0)
error->one("No dihedrals allowed with this atom style");
if ((atom->nimpropers || atom->nimpropertypes) &&
atom->avec->impropers_allow == 0)
error->one("No impropers allowed with this atom style");
if (atom->nbonds > 0 && atom->nbondtypes <= 0)
error->one("Bonds defined but no bond types");
if (atom->nangles > 0 && atom->nangletypes <= 0)
error->one("Angles defined but no angle types");
if (atom->ndihedrals > 0 && atom->ndihedraltypes <= 0)
error->one("Dihedrals defined but no dihedral types");
if (atom->nimpropers > 0 && atom->nimpropertypes <= 0)
error->one("Impropers defined but no improper types");
}
/* ----------------------------------------------------------------------
read all atoms
------------------------------------------------------------------------- */
void ReadData::atoms()
{
int i,m,nchunk;
bigint nread = 0;
bigint natoms = atom->natoms;
while (nread < natoms) {
if (natoms-nread > CHUNK) nchunk = CHUNK;
else nchunk = natoms-nread;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_atoms(nchunk,buffer);
nread += nchunk;
}
// check that all atoms were assigned correctly
bigint tmp = atom->nlocal;
MPI_Allreduce(&tmp,&natoms,1,MPI_LMP_BIGINT,MPI_SUM,world);
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " atoms\n",natoms);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " atoms\n",natoms);
}
if (natoms != atom->natoms) error->all("Did not assign all atoms correctly");
// if any atom ID < 0, error
// if all atom IDs = 0, tag_enable = 0
// if any atom ID > 0, error if any atom ID == 0
// not checking if atom IDs > natoms or are unique
int nlocal = atom->nlocal;
int *tag = atom->tag;
int flag = 0;
for (int i = 0; i < nlocal; i++)
if (tag[i] < 0) flag = 1;
int flag_all;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all)
error->all("Invalid atom ID in Atoms section of data file");
flag = 0;
for (int i = 0; i < nlocal; i++)
if (tag[i] > 0) flag = 1;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_MAX,world);
if (flag_all == 0) atom->tag_enable = 0;
if (atom->tag_enable) {
flag = 0;
for (int i = 0; i < nlocal; i++)
if (tag[i] == 0) flag = 1;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_SUM,world);
if (flag_all)
error->all("Invalid atom ID in Atoms section of data file");
}
// create global mapping
if (atom->map_style) {
atom->map_init();
atom->map_set();
}
}
/* ----------------------------------------------------------------------
read all velocities
to find atoms, must build atom map if not a molecular system
------------------------------------------------------------------------- */
void ReadData::velocities()
{
int i,m,nchunk;
int mapflag = 0;
if (atom->map_style == 0) {
mapflag = 1;
atom->map_style = 1;
atom->map_init();
atom->map_set();
}
bigint nread = 0;
bigint natoms = atom->natoms;
while (nread < natoms) {
if (natoms-nread > CHUNK) nchunk = CHUNK;
else nchunk = natoms-nread;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_vels(nchunk,buffer);
nread += nchunk;
}
if (mapflag) {
atom->map_delete();
atom->map_style = 0;
}
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " velocities\n",natoms);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " velocities\n",natoms);
}
}
/* ----------------------------------------------------------------------
read all ellipsoids
to find atoms, must build atom map if not a molecular system
------------------------------------------------------------------------- */
void ReadData::ellipsoids()
{
int i,m,nchunk;
int mapflag = 0;
if (atom->map_style == 0) {
mapflag = 1;
atom->map_style = 1;
atom->map_init();
atom->map_set();
}
bigint nread = 0;
bigint natoms = nellipsoids;
while (nread < natoms) {
if (natoms-nread > CHUNK) nchunk = CHUNK;
else nchunk = natoms-nread;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_bonus(nchunk,buffer,avec_ellipsoid);
nread += nchunk;
}
if (mapflag) {
atom->map_delete();
atom->map_style = 0;
}
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " ellipsoids\n",natoms);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " ellipsoids\n",natoms);
}
}
/* ---------------------------------------------------------------------- */
void ReadData::bonds()
{
int i,m,nchunk;
bigint nread = 0;
bigint nbonds = atom->nbonds;
while (nread < nbonds) {
nchunk = MIN(nbonds-nread,CHUNK);
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_bonds(nchunk,buffer);
nread += nchunk;
}
// check that bonds were assigned correctly
int nlocal = atom->nlocal;
bigint sum;
bigint n = 0;
for (i = 0; i < nlocal; i++) n += atom->num_bond[i];
MPI_Allreduce(&n,&sum,1,MPI_LMP_BIGINT,MPI_SUM,world);
int factor = 1;
if (!force->newton_bond) factor = 2;
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " bonds\n",sum/factor);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " bonds\n",sum/factor);
}
if (sum != factor*atom->nbonds) error->all("Bonds assigned incorrectly");
}
/* ---------------------------------------------------------------------- */
void ReadData::angles()
{
int i,m,nchunk;
bigint nread = 0;
bigint nangles = atom->nangles;
while (nread < nangles) {
nchunk = MIN(nangles-nread,CHUNK);
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_angles(nchunk,buffer);
nread += nchunk;
}
// check that ang
int nlocal = atom->nlocal;
bigint sum;
bigint n = 0;
for (i = 0; i < nlocal; i++) n += atom->num_angle[i];
MPI_Allreduce(&n,&sum,1,MPI_LMP_BIGINT,MPI_SUM,world);
int factor = 1;
if (!force->newton_bond) factor = 3;
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " angles\n",sum/factor);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " angles\n",sum/factor);
}
if (sum != factor*atom->nangles) error->all("Angles assigned incorrectly");
}
/* ---------------------------------------------------------------------- */
void ReadData::dihedrals()
{
int i,m,nchunk;
bigint nread = 0;
bigint ndihedrals = atom->ndihedrals;
while (nread < ndihedrals) {
nchunk = MIN(ndihedrals-nread,CHUNK);
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_dihedrals(nchunk,buffer);
nread += nchunk;
}
// check that dihedrals were assigned correctly
int nlocal = atom->nlocal;
bigint sum;
bigint n = 0;
for (i = 0; i < nlocal; i++) n += atom->num_dihedral[i];
MPI_Allreduce(&n,&sum,1,MPI_LMP_BIGINT,MPI_SUM,world);
int factor = 1;
if (!force->newton_bond) factor = 4;
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " dihedrals\n",sum/factor);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " dihedrals\n",sum/factor);
}
if (sum != factor*atom->ndihedrals)
error->all("Dihedrals assigned incorrectly");
}
/* ---------------------------------------------------------------------- */
void ReadData::impropers()
{
int i,m,nchunk;
bigint nread = 0;
bigint nimpropers = atom->nimpropers;
while (nread < nimpropers) {
nchunk = MIN(nimpropers-nread,CHUNK);
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < nchunk; i++) {
eof = fgets(&buffer[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buffer[m]);
}
buffer[m++] = '\n';
}
+ buffer[m] = '\0';
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buffer,m,MPI_CHAR,0,world);
atom->data_impropers(nchunk,buffer);
nread += nchunk;
}
// check that impropers were assigned correctly
int nlocal = atom->nlocal;
bigint sum;
bigint n = 0;
for (i = 0; i < nlocal; i++) n += atom->num_improper[i];
MPI_Allreduce(&n,&sum,1,MPI_LMP_BIGINT,MPI_SUM,world);
int factor = 1;
if (!force->newton_bond) factor = 4;
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " impropers\n",sum/factor);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " impropers\n",sum/factor);
}
if (sum != factor*atom->nimpropers)
error->all("Impropers assigned incorrectly");
}
/* ---------------------------------------------------------------------- */
void ReadData::mass()
{
int i,m;
char *buf = new char[atom->ntypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->ntypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->ntypes; i++) {
atom->set_mass(buf);
buf += strlen(buf) + 1;
}
delete [] original;
}
/* ---------------------------------------------------------------------- */
void ReadData::paircoeffs()
{
int i,m;
char *buf = new char[atom->ntypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->ntypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->ntypes; i++) {
m = strlen(buf) + 1;
parse_coeffs(buf,NULL,1);
force->pair->coeff(narg,arg);
buf += m;
}
delete [] original;
}
/* ---------------------------------------------------------------------- */
void ReadData::bondcoeffs()
{
int i,m;
char *buf = new char[atom->nbondtypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->nbondtypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->nbondtypes; i++) {
m = strlen(buf) + 1;
parse_coeffs(buf,NULL,0);
force->bond->coeff(narg,arg);
buf += m;
}
delete [] original;
}
/* ---------------------------------------------------------------------- */
void ReadData::anglecoeffs(int which)
{
int i,m;
char *buf = new char[atom->nangletypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->nangletypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->nangletypes; i++) {
m = strlen(buf) + 1;
if (which == 0) parse_coeffs(buf,NULL,0);
else if (which == 1) parse_coeffs(buf,"bb",0);
else if (which == 2) parse_coeffs(buf,"ba",0);
force->angle->coeff(narg,arg);
buf += m;
}
delete [] original;
}
/* ---------------------------------------------------------------------- */
void ReadData::dihedralcoeffs(int which)
{
int i,m;
char *buf = new char[atom->ndihedraltypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->ndihedraltypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->ndihedraltypes; i++) {
m = strlen(buf) + 1;
if (which == 0) parse_coeffs(buf,NULL,0);
else if (which == 1) parse_coeffs(buf,"mbt",0);
else if (which == 2) parse_coeffs(buf,"ebt",0);
else if (which == 3) parse_coeffs(buf,"at",0);
else if (which == 4) parse_coeffs(buf,"aat",0);
else if (which == 5) parse_coeffs(buf,"bb13",0);
force->dihedral->coeff(narg,arg);
buf += m;
}
delete [] original;
}
/* ---------------------------------------------------------------------- */
void ReadData::impropercoeffs(int which)
{
int i,m;
char *buf = new char[atom->nimpropertypes*MAXLINE];
char *original = buf;
if (me == 0) {
char *eof;
m = 0;
for (i = 0; i < atom->nimpropertypes; i++) {
eof = fgets(&buf[m],MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
m += strlen(&buf[m]);
buf[m-1] = '\0';
}
}
MPI_Bcast(&m,1,MPI_INT,0,world);
MPI_Bcast(buf,m,MPI_CHAR,0,world);
for (i = 0; i < atom->nimpropertypes; i++) {
m = strlen(buf) + 1;
if (which == 0) parse_coeffs(buf,NULL,0);
else if (which == 1) parse_coeffs(buf,"aa",0);
force->improper->coeff(narg,arg);
buf += m;
}
delete [] original;
}
/* ----------------------------------------------------------------------
proc 0 scans the data file for topology maximums
------------------------------------------------------------------------- */
void ReadData::scan(int &bond_per_atom, int &angle_per_atom,
int &dihedral_per_atom, int &improper_per_atom)
{
int i,tmp1,tmp2,atom1,atom2,atom3,atom4;
char *eof;
if (atom->natoms > MAXSMALLINT)
error->all("Molecular data file has too many atoms");
// customize for new sections
int natoms = static_cast<int> (atom->natoms);
bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0;
int ellipsoid_flag = 0;
// customize for new sections
// allocate topology counting vector
// initially, array length = 1 to natoms
// will grow via reallocate() if atom IDs > natoms
int cmax = natoms + 1;
int *count;
memory->create(count,cmax,"read_data:count");
while (strlen(keyword)) {
if (strcmp(keyword,"Masses") == 0) skip_lines(atom->ntypes);
else if (strcmp(keyword,"Atoms") == 0) skip_lines(natoms);
else if (strcmp(keyword,"Velocities") == 0) skip_lines(natoms);
else if (strcmp(keyword,"Ellipsoids") == 0) {
if (!avec_ellipsoid)
error->all("Invalid data file section: Ellipsoids");
ellipsoid_flag = 1;
skip_lines(nellipsoids);
} else if (strcmp(keyword,"Pair Coeffs") == 0) {
if (force->pair == NULL)
error->all("Must define pair_style before Pair Coeffs");
skip_lines(atom->ntypes);
} else if (strcmp(keyword,"Bond Coeffs") == 0) {
if (atom->avec->bonds_allow == 0)
error->all("Invalid data file section: Bond Coeffs");
if (force->bond == NULL)
error->all("Must define bond_style before Bond Coeffs");
skip_lines(atom->nbondtypes);
} else if (strcmp(keyword,"Angle Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: Angle Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before Angle Coeffs");
skip_lines(atom->nangletypes);
} else if (strcmp(keyword,"Dihedral Coeffs") == 0) {
skip_lines(atom->ndihedraltypes);
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: Dihedral Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before Dihedral Coeffs");
} else if (strcmp(keyword,"Improper Coeffs") == 0) {
if (atom->avec->impropers_allow == 0)
error->all("Invalid data file section: Improper Coeffs");
if (force->improper == NULL)
error->all("Must define improper_style before Improper Coeffs");
skip_lines(atom->nimpropertypes);
} else if (strcmp(keyword,"BondBond Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: BondBond Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before BondBond Coeffs");
skip_lines(atom->nangletypes);
} else if (strcmp(keyword,"BondAngle Coeffs") == 0) {
if (atom->avec->angles_allow == 0)
error->all("Invalid data file section: BondAngle Coeffs");
if (force->angle == NULL)
error->all("Must define angle_style before BondAngle Coeffs");
skip_lines(atom->nangletypes);
} else if (strcmp(keyword,"MiddleBondTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: MiddleBondTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before MiddleBondTorsion Coeffs");
skip_lines(atom->ndihedraltypes);
} else if (strcmp(keyword,"EndBondTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: EndBondTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before EndBondTorsion Coeffs");
skip_lines(atom->ndihedraltypes);
} else if (strcmp(keyword,"AngleTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: AngleTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before AngleTorsion Coeffs");
skip_lines(atom->ndihedraltypes);
} else if (strcmp(keyword,"AngleAngleTorsion Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: AngleAngleTorsion Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before AngleAngleTorsion Coeffs");
skip_lines(atom->ndihedraltypes);
} else if (strcmp(keyword,"BondBond13 Coeffs") == 0) {
if (atom->avec->dihedrals_allow == 0)
error->all("Invalid data file section: BondBond13 Coeffs");
if (force->dihedral == NULL)
error->all("Must define dihedral_style before BondBond13 Coeffs");
skip_lines(atom->ndihedraltypes);
} else if (strcmp(keyword,"AngleAngle Coeffs") == 0) {
if (atom->avec->impropers_allow == 0)
error->all("Invalid data file section: AngleAngle Coeffs");
if (force->improper == NULL)
error->all("Must define improper_style before AngleAngle Coeffs");
skip_lines(atom->nimpropertypes);
} else if (strcmp(keyword,"Bonds") == 0) {
for (i = 1; i < cmax; i++) count[i] = 0;
if (force->newton_bond)
for (i = 0; i < atom->nbonds; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d",&tmp1,&tmp2,&atom1,&atom2);
if (atom1 >= cmax) cmax = reallocate(&count,cmax,atom1);
count[atom1]++;
}
else
for (i = 0; i < atom->nbonds; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d",&tmp1,&tmp2,&atom1,&atom2);
int amax = MAX(atom1,atom2);
if (amax >= cmax) cmax = reallocate(&count,cmax,amax);
count[atom1]++;
count[atom2]++;
}
for (i = 1; i < cmax; i++) bond_per_atom = MAX(bond_per_atom,count[i]);
if (screen) fprintf(screen," %d = max bonds/atom\n",bond_per_atom);
if (logfile) fprintf(logfile," %d = max bonds/atom\n",bond_per_atom);
} else if (strcmp(keyword,"Angles") == 0) {
for (i = 1; i < cmax; i++) count[i] = 0;
if (force->newton_bond)
for (i = 0; i < atom->nangles; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d",&tmp1,&tmp2,&atom1,&atom2,&atom3);
if (atom2 >= cmax) cmax = reallocate(&count,cmax,atom2);
count[atom2]++;
}
else
for (i = 0; i < atom->nangles; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d",&tmp1,&tmp2,&atom1,&atom2,&atom3);
int amax = MAX(atom1,atom2);
amax = MAX(amax,atom3);
if (amax >= cmax) cmax = reallocate(&count,cmax,amax);
count[atom1]++;
count[atom2]++;
count[atom3]++;
}
for (i = 1; i < cmax; i++) angle_per_atom = MAX(angle_per_atom,count[i]);
if (screen) fprintf(screen," %d = max angles/atom\n",angle_per_atom);
if (logfile) fprintf(logfile," %d = max angles/atom\n",angle_per_atom);
} else if (strcmp(keyword,"Dihedrals") == 0) {
for (i = 1; i < cmax; i++) count[i] = 0;
if (force->newton_bond)
for (i = 0; i < atom->ndihedrals; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d %d",
&tmp1,&tmp2,&atom1,&atom2,&atom3,&atom4);
if (atom2 >= cmax) cmax = reallocate(&count,cmax,atom2);
count[atom2]++;
}
else
for (i = 0; i < atom->ndihedrals; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d %d",
&tmp1,&tmp2,&atom1,&atom2,&atom3,&atom4);
int amax = MAX(atom1,atom2);
amax = MAX(amax,atom3);
amax = MAX(amax,atom4);
if (amax >= cmax) cmax = reallocate(&count,cmax,amax);
count[atom1]++;
count[atom2]++;
count[atom3]++;
count[atom4]++;
}
for (i = 1; i < cmax; i++)
dihedral_per_atom = MAX(dihedral_per_atom,count[i]);
if (screen)
fprintf(screen," %d = max dihedrals/atom\n",dihedral_per_atom);
if (logfile)
fprintf(logfile," %d = max dihedrals/atom\n",dihedral_per_atom);
} else if (strcmp(keyword,"Impropers") == 0) {
for (i = 1; i < cmax; i++) count[i] = 0;
if (force->newton_bond)
for (i = 0; i < atom->nimpropers; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d %d",
&tmp1,&tmp2,&atom1,&atom2,&atom3,&atom4);
if (atom2 >= cmax) cmax = reallocate(&count,cmax,atom2);
count[atom2]++;
}
else
for (i = 0; i < atom->nimpropers; i++) {
eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
sscanf(line,"%d %d %d %d %d %d",
&tmp1,&tmp2,&atom1,&atom2,&atom3,&atom4);
int amax = MAX(atom1,atom2);
amax = MAX(amax,atom3);
amax = MAX(amax,atom4);
if (amax >= cmax) cmax = reallocate(&count,cmax,amax);
count[atom1]++;
count[atom2]++;
count[atom3]++;
count[atom4]++;
}
for (i = 1; i < cmax; i++)
improper_per_atom = MAX(improper_per_atom,count[i]);
if (screen)
fprintf(screen," %d = max impropers/atom\n",improper_per_atom);
if (logfile)
fprintf(logfile," %d = max impropers/atom\n",improper_per_atom);
} else {
char str[128];
sprintf(str,"Unknown identifier in data file: %s",keyword);
error->one(str);
}
parse_keyword(0,0);
}
// free topology counting vector
memory->destroy(count);
// error check that topology was specified in file
if ((atom->nbonds && !bond_per_atom) ||
(atom->nangles && !angle_per_atom) ||
(atom->ndihedrals && !dihedral_per_atom) ||
(atom->nimpropers && !improper_per_atom))
error->one("Needed topology not in data file");
// customize for new sections
// error check that Bonus sections were speficied in file
if (nellipsoids && !ellipsoid_flag)
error->one("Needed bonus data not in data file");
}
/* ----------------------------------------------------------------------
reallocate the count vector from cmax to amax+1 and return new length
zero new locations
------------------------------------------------------------------------- */
int ReadData::reallocate(int **pcount, int cmax, int amax)
{
int *count = *pcount;
memory->grow(count,amax+1,"read_data:count");
for (int i = cmax; i <= amax; i++) count[i] = 0;
*pcount = count;
return amax+1;
}
/* ----------------------------------------------------------------------
proc 0 opens data file
test if gzipped
------------------------------------------------------------------------- */
void ReadData::open(char *file)
{
compressed = 0;
char *suffix = file + strlen(file) - 3;
if (suffix > file && strcmp(suffix,".gz") == 0) compressed = 1;
if (!compressed) fp = fopen(file,"r");
else {
#ifdef LAMMPS_GZIP
char gunzip[128];
sprintf(gunzip,"gunzip -c %s",file);
fp = popen(gunzip,"r");
#else
error->one("Cannot open gzipped file");
#endif
}
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open file %s",file);
error->one(str);
}
}
/* ----------------------------------------------------------------------
grab next keyword
read lines until one is non-blank
keyword is all text on line w/out leading & trailing white space
read one additional line (assumed blank)
if any read hits EOF, set keyword to empty
if first = 1, line variable holds non-blank line that ended header
if flag = 0, only proc 0 is calling so no bcast
else flag = 1, bcast keyword line to all procs
------------------------------------------------------------------------- */
void ReadData::parse_keyword(int first, int flag)
{
int eof = 0;
// proc 0 reads upto non-blank line plus 1 following line
// eof is set to 1 if any read hits end-of-file
if (me == 0) {
if (!first) {
if (fgets(line,MAXLINE,fp) == NULL) eof = 1;
}
while (eof == 0 && strspn(line," \t\n\r") == strlen(line)) {
if (fgets(line,MAXLINE,fp) == NULL) eof = 1;
}
if (fgets(buffer,MAXLINE,fp) == NULL) eof = 1;
}
// if eof, set keyword empty and return
if (flag) MPI_Bcast(&eof,1,MPI_INT,0,world);
if (eof) {
keyword[0] = '\0';
return;
}
// bcast keyword line to all procs
if (flag) {
int n;
if (me == 0) n = strlen(line) + 1;
MPI_Bcast(&n,1,MPI_INT,0,world);
MPI_Bcast(line,n,MPI_CHAR,0,world);
}
// copy non-whitespace portion of line into keyword
int start = strspn(line," \t\n\r");
int stop = strlen(line) - 1;
while (line[stop] == ' ' || line[stop] == '\t'
|| line[stop] == '\n' || line[stop] == '\r') stop--;
line[stop+1] = '\0';
strcpy(keyword,&line[start]);
}
/* ----------------------------------------------------------------------
proc 0 reads N lines from file
------------------------------------------------------------------------- */
void ReadData::skip_lines(int n)
{
char *eof;
for (int i = 0; i < n; i++) eof = fgets(line,MAXLINE,fp);
if (eof == NULL) error->one("Unexpected end of data file");
}
/* ----------------------------------------------------------------------
parse a line of coeffs into words, storing them in narg,arg
trim anything from '#' onward
word strings remain in line, are not copied
if addstr != NULL, add addstr as extra arg for class2 angle/dihedral/improper
if 2nd word starts with letter, then is hybrid style, add addstr after it
else add addstr before 2nd word
if dupflag, duplicate 1st word, so pair_coeff "2" becomes "2 2"
------------------------------------------------------------------------- */
void ReadData::parse_coeffs(char *line, char *addstr, int dupflag)
{
char *ptr;
if (ptr = strchr(line,'#')) *ptr = '\0';
narg = 0;
char *word = strtok(line," \t\n\r\f");
while (word) {
if (narg == maxarg) {
maxarg += DELTA;
arg = (char **)
memory->srealloc(arg,maxarg*sizeof(char *),"read_data:arg");
}
if (addstr && narg == 1 && !islower(word[0])) arg[narg++] = addstr;
arg[narg++] = word;
if (addstr && narg == 2 && islower(word[0])) arg[narg++] = addstr;
if (dupflag && narg == 1) arg[narg++] = word;
word = strtok(NULL," \t\n\r\f");
}
}
diff --git a/src/read_restart.cpp b/src/read_restart.cpp
index 0d761dd7c..a97425ca1 100644
--- a/src/read_restart.cpp
+++ b/src/read_restart.cpp
@@ -1,830 +1,837 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "string.h"
#include "stdlib.h"
#include "sys/types.h"
#include "dirent.h"
#include "read_restart.h"
#include "atom.h"
#include "atom_vec.h"
#include "domain.h"
#include "comm.h"
#include "irregular.h"
#include "update.h"
#include "modify.h"
#include "fix.h"
#include "fix_read_restart.h"
#include "group.h"
#include "force.h"
#include "pair.h"
#include "bond.h"
#include "angle.h"
#include "dihedral.h"
#include "improper.h"
#include "special.h"
#include "universe.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
// same as write_restart.cpp
enum{VERSION,SMALLINT,TAGINT,BIGINT,
UNITS,NTIMESTEP,DIMENSION,NPROCS,PROCGRID_0,PROCGRID_1,PROCGRID_2,
NEWTON_PAIR,NEWTON_BOND,XPERIODIC,YPERIODIC,ZPERIODIC,
BOUNDARY_00,BOUNDARY_01,BOUNDARY_10,BOUNDARY_11,BOUNDARY_20,BOUNDARY_21,
ATOM_STYLE,NATOMS,NTYPES,
NBONDS,NBONDTYPES,BOND_PER_ATOM,
NANGLES,NANGLETYPES,ANGLE_PER_ATOM,
NDIHEDRALS,NDIHEDRALTYPES,DIHEDRAL_PER_ATOM,
NIMPROPERS,NIMPROPERTYPES,IMPROPER_PER_ATOM,
BOXLO_0,BOXHI_0,BOXLO_1,BOXHI_1,BOXLO_2,BOXHI_2,
SPECIAL_LJ_1,SPECIAL_LJ_2,SPECIAL_LJ_3,
SPECIAL_COUL_1,SPECIAL_COUL_2,SPECIAL_COUL_3,
XY,XZ,YZ};
enum{MASS};
enum{PAIR,BOND,ANGLE,DIHEDRAL,IMPROPER};
#define LB_FACTOR 1.1
/* ---------------------------------------------------------------------- */
ReadRestart::ReadRestart(LAMMPS *lmp) : Pointers(lmp) {}
/* ---------------------------------------------------------------------- */
void ReadRestart::command(int narg, char **arg)
{
if (narg != 1) error->all("Illegal read_restart command");
if (domain->box_exist)
error->all("Cannot read_restart after simulation box is defined");
MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs);
// if filename contains "*", search dir for latest restart file
char *file = new char[strlen(arg[0]) + 16];
- if (strchr(arg[0],'*')) file_search(arg[0],file);
- else strcpy(file,arg[0]);
+ if (strchr(arg[0],'*')) {
+ int n;
+ if (me == 0) {
+ file_search(arg[0],file);
+ n = strlen(file) + 1;
+ }
+ MPI_Bcast(&n,1,MPI_INT,0,world);
+ MPI_Bcast(file,n,MPI_CHAR,0,world);
+ } else strcpy(file,arg[0]);
// check if filename contains "%"
int multiproc;
if (strchr(file,'%')) multiproc = 1;
else multiproc = 0;
// open single restart file or base file for multiproc case
if (me == 0) {
if (screen) fprintf(screen,"Reading restart file ...\n");
char *hfile;
if (multiproc) {
hfile = new char[strlen(file) + 16];
char *ptr = strchr(file,'%');
*ptr = '\0';
sprintf(hfile,"%s%s%s",file,"base",ptr+1);
*ptr = '%';
} else hfile = file;
fp = fopen(hfile,"rb");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open restart file %s",hfile);
error->one(str);
}
if (multiproc) delete [] hfile;
}
// read header info and create atom style and simulation box
header();
domain->box_exist = 1;
// problem setup using info from header
int n;
if (nprocs == 1) n = static_cast<int> (atom->natoms);
else n = static_cast<int> (LB_FACTOR * atom->natoms / nprocs);
atom->allocate_type_arrays();
atom->avec->grow(n);
n = atom->nmax;
domain->print_box(" ");
domain->set_initial_box();
domain->set_global_box();
comm->set_procs();
domain->set_local_box();
// read groups, ntype-length arrays, force field, fix info from file
// nextra = max # of extra quantities stored with each atom
group->read_restart(fp);
type_arrays();
force_fields();
int nextra = modify->read_restart(fp);
atom->nextra_store = nextra;
memory->create(atom->extra,n,nextra,"atom:extra");
// single file:
// nprocs_file = # of chunks in file
// proc 0 reads chunks one at a time and bcasts it to other procs
// each proc unpacks the atoms, saving ones in it's sub-domain
// check for atom in sub-domain differs for orthogonal vs triclinic box
// close restart file when done
AtomVec *avec = atom->avec;
int maxbuf = 0;
double *buf = NULL;
int m;
if (multiproc == 0) {
int triclinic = domain->triclinic;
double *x,lamda[3];
double *coord,*sublo,*subhi;
if (triclinic == 0) {
sublo = domain->sublo;
subhi = domain->subhi;
} else {
sublo = domain->sublo_lamda;
subhi = domain->subhi_lamda;
}
for (int iproc = 0; iproc < nprocs_file; iproc++) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
if (n > maxbuf) {
maxbuf = n;
memory->destroy(buf);
memory->create(buf,maxbuf,"read_restart:buf");
}
if (n > 0) {
if (me == 0) fread(buf,sizeof(double),n,fp);
MPI_Bcast(buf,n,MPI_DOUBLE,0,world);
}
m = 0;
while (m < n) {
x = &buf[m+1];
if (triclinic) {
domain->x2lamda(x,lamda);
coord = lamda;
} else coord = x;
if (coord[0] >= sublo[0] && coord[0] < subhi[0] &&
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2]) {
m += avec->unpack_restart(&buf[m]);
}
else m += static_cast<int> (buf[m]);
}
}
if (me == 0) fclose(fp);
// one file per proc:
// nprocs_file = # of files
// each proc reads 1/P fraction of files, keeping all atoms in the files
// perform irregular comm to migrate atoms to correct procs
// close restart file when done
} else {
if (me == 0) fclose(fp);
char *perproc = new char[strlen(file) + 16];
char *ptr = strchr(file,'%');
for (int iproc = me; iproc < nprocs_file; iproc += nprocs) {
*ptr = '\0';
sprintf(perproc,"%s%d%s",file,iproc,ptr+1);
*ptr = '%';
fp = fopen(perproc,"rb");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open restart file %s",perproc);
error->one(str);
}
fread(&n,sizeof(int),1,fp);
if (n > maxbuf) {
maxbuf = n;
memory->destroy(buf);
memory->create(buf,maxbuf,"read_restart:buf");
}
if (n > 0) fread(buf,sizeof(double),n,fp);
m = 0;
while (m < n) m += avec->unpack_restart(&buf[m]);
fclose(fp);
}
delete [] perproc;
// create a temporary fix to hold and migrate extra atom info
// necessary b/c irregular will migrate atoms
if (nextra) {
char cextra[8],fixextra[8];
sprintf(cextra,"%d",nextra);
sprintf(fixextra,"%d",modify->nfix_restart_peratom);
char **newarg = new char*[5];
newarg[0] = (char *) "_read_restart";
newarg[1] = (char *) "all";
newarg[2] = (char *) "READ_RESTART";
newarg[3] = cextra;
newarg[4] = fixextra;
modify->add_fix(5,newarg);
delete [] newarg;
}
// move atoms to new processors via irregular()
// in case read by different proc than wrote restart file
// first do map_init() since irregular->migrate_atoms() will do map_clear()
if (atom->map_style) atom->map_init();
if (domain->triclinic) domain->x2lamda(atom->nlocal);
Irregular *irregular = new Irregular(lmp);
irregular->migrate_atoms();
delete irregular;
if (domain->triclinic) domain->lamda2x(atom->nlocal);
// put extra atom info held by fix back into atom->extra
// destroy temporary fix
if (nextra) {
memory->destroy(atom->extra);
memory->create(atom->extra,atom->nmax,nextra,"atom:extra");
int ifix = modify->find_fix("_read_restart");
FixReadRestart *fix = (FixReadRestart *) modify->fix[ifix];
int *count = fix->count;
double **extra = fix->extra;
double **atom_extra = atom->extra;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
for (int j = 0; j < count[i]; j++)
atom_extra[i][j] = extra[i][j];
modify->delete_fix("_read_restart");
}
}
// clean-up memory
delete [] file;
memory->destroy(buf);
// check that all atoms were assigned to procs
bigint natoms;
bigint nblocal = atom->nlocal;
MPI_Allreduce(&nblocal,&natoms,1,MPI_LMP_BIGINT,MPI_SUM,world);
if (me == 0) {
if (screen) fprintf(screen," " BIGINT_FORMAT " atoms\n",natoms);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " atoms\n",natoms);
}
if (natoms != atom->natoms) error->all("Did not assign all atoms correctly");
if (me == 0) {
if (atom->nbonds) {
if (screen) fprintf(screen," " BIGINT_FORMAT " bonds\n",atom->nbonds);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " bonds\n",atom->nbonds);
}
if (atom->nangles) {
if (screen) fprintf(screen," " BIGINT_FORMAT " angles\n",
atom->nangles);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " angles\n",
atom->nangles);
}
if (atom->ndihedrals) {
if (screen) fprintf(screen," " BIGINT_FORMAT " dihedrals\n",
atom->ndihedrals);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " dihedrals\n",
atom->ndihedrals);
}
if (atom->nimpropers) {
if (screen) fprintf(screen," " BIGINT_FORMAT " impropers\n",
atom->nimpropers);
if (logfile) fprintf(logfile," " BIGINT_FORMAT " impropers\n",
atom->nimpropers);
}
}
// check if tags are being used
// create global mapping and bond topology now that system is defined
int flag = 0;
for (int i = 0; i < atom->nlocal; i++)
if (atom->tag[i] > 0) flag = 1;
int flag_all;
MPI_Allreduce(&flag,&flag_all,1,MPI_INT,MPI_MAX,world);
if (flag_all == 0) atom->tag_enable = 0;
if (atom->map_style) {
atom->map_init();
atom->map_set();
}
if (atom->molecular) {
Special special(lmp);
special.build();
}
}
/* ----------------------------------------------------------------------
- search for all files matching infile which contains a "*"
+ infile contains a "*"
+ search for all files which match the infile pattern
replace "*" with latest timestep value to create outfile name
search dir referenced by initial pathname of file
- if infile also contains "%", need to use "base" when search directory
+ if infile also contains "%", use "base" when searching directory
+ only called by proc 0
------------------------------------------------------------------------- */
void ReadRestart::file_search(char *infile, char *outfile)
{
char *ptr;
// separate infile into dir + filename
char *dirname = new char[strlen(infile) + 1];
char *filename = new char[strlen(infile) + 1];
if (strchr(infile,'/')) {
ptr = strrchr(infile,'/');
*ptr = '\0';
strcpy(dirname,infile);
strcpy(filename,ptr+1);
*ptr = '/';
} else {
strcpy(dirname,"./");
strcpy(filename,infile);
}
// if filename contains "%" replace "%" with "base"
char *pattern = new char[strlen(filename) + 16];
if (ptr = strchr(filename,'%')) {
*ptr = '\0';
sprintf(pattern,"%s%s%s",filename,"base",ptr+1);
*ptr = '%';
} else strcpy(pattern,filename);
// scan all files in directory, searching for files that match pattern
// maxnum = largest int that matches "*"
int n = strlen(pattern) + 16;
char *begin = new char[n];
char *middle = new char[n];
char *end = new char[n];
ptr = strchr(pattern,'*');
*ptr = '\0';
strcpy(begin,pattern);
strcpy(end,ptr+1);
int nbegin = strlen(begin);
int maxnum = -1;
- if (me == 0) {
- struct dirent *ep;
- DIR *dp = opendir(dirname);
- if (dp == NULL)
- error->one("Cannot open dir to search for restart file");
- while (ep = readdir(dp)) {
- if (strstr(ep->d_name,begin) != ep->d_name) continue;
- if ((ptr = strstr(&ep->d_name[nbegin],end)) == NULL) continue;
- if (strlen(end) == 0) ptr = ep->d_name + strlen(ep->d_name);
- *ptr = '\0';
- if (strlen(&ep->d_name[nbegin]) < n) {
- strcpy(middle,&ep->d_name[nbegin]);
- if (atoi(middle) > maxnum) maxnum = atoi(middle);
- }
+ struct dirent *ep;
+ DIR *dp = opendir(dirname);
+ if (dp == NULL)
+ error->one("Cannot open dir to search for restart file");
+ while (ep = readdir(dp)) {
+ if (strstr(ep->d_name,begin) != ep->d_name) continue;
+ if ((ptr = strstr(&ep->d_name[nbegin],end)) == NULL) continue;
+ if (strlen(end) == 0) ptr = ep->d_name + strlen(ep->d_name);
+ *ptr = '\0';
+ if (strlen(&ep->d_name[nbegin]) < n) {
+ strcpy(middle,&ep->d_name[nbegin]);
+ if (atoi(middle) > maxnum) maxnum = atoi(middle);
}
- closedir(dp);
- if (maxnum < 0) error->one("Found no restart file matching pattern");
}
+ closedir(dp);
+ if (maxnum < 0) error->one("Found no restart file matching pattern");
// create outfile with maxint substituted for "*"
// use original infile, not pattern, since need to retain "%" in filename
ptr = strchr(infile,'*');
*ptr = '\0';
sprintf(outfile,"%s%d%s",infile,maxnum,ptr+1);
*ptr = '*';
// clean up
delete [] dirname;
delete [] filename;
delete [] pattern;
delete [] begin;
delete [] middle;
delete [] end;
}
/* ----------------------------------------------------------------------
read header of restart file
------------------------------------------------------------------------- */
void ReadRestart::header()
{
int px,py,pz;
int xperiodic,yperiodic,zperiodic;
int boundary[3][2];
// read flags and values until flag = -1
int flag = read_int();
while (flag >= 0) {
// check restart file version, warn if different
if (flag == VERSION) {
char *version = read_char();
if (strcmp(version,universe->version) != 0 && me == 0) {
error->warning("Restart file version does not match LAMMPS version");
if (screen) fprintf(screen," restart file = %s, LAMMPS = %s\n",
version,universe->version);
}
delete [] version;
// check lmptype.h sizes, error if different
} else if (flag == SMALLINT) {
int size = read_int();
if (size != sizeof(smallint))
error->all("Smallint setting in lmptype.h is not compatible");
} else if (flag == TAGINT) {
int size = read_int();
if (size != sizeof(tagint))
error->all("Tagint setting in lmptype.h is not compatible");
} else if (flag == BIGINT) {
int size = read_int();
if (size != sizeof(bigint))
error->all("Bigint setting in lmptype.h is not compatible");
// reset unit_style only if different
// so that timestep,neighbor-skin are not changed
} else if (flag == UNITS) {
char *style = read_char();
if (strcmp(style,update->unit_style) != 0) update->set_units(style);
delete [] style;
} else if (flag == NTIMESTEP) {
update->ntimestep = read_bigint();
// set dimension from restart file
} else if (flag == DIMENSION) {
int dimension = read_int();
domain->dimension = dimension;
if (domain->dimension == 2 && domain->zperiodic == 0)
error->all("Cannot run 2d simulation with nonperiodic Z dimension");
// read nprocs from restart file, warn if different
} else if (flag == NPROCS) {
nprocs_file = read_int();
if (nprocs_file != comm->nprocs && me == 0)
error->warning("Restart file used different # of processors");
// don't set procgrid, warn if different
} else if (flag == PROCGRID_0) {
px = read_int();
} else if (flag == PROCGRID_1) {
py = read_int();
} else if (flag == PROCGRID_2) {
pz = read_int();
if (comm->user_procgrid[0] != 0 &&
(px != comm->user_procgrid[0] || py != comm->user_procgrid[1] ||
pz != comm->user_procgrid[2]) && me == 0)
error->warning("Restart file used different 3d processor grid");
// don't set newton_pair, leave input script value unchanged
// set newton_bond from restart file
// warn if different and input script settings are not default
} else if (flag == NEWTON_PAIR) {
int newton_pair_file = read_int();
if (force->newton_pair != 1) {
if (newton_pair_file != force->newton_pair && me == 0)
error->warning("Restart file used different newton pair setting, "
"using input script value");
}
} else if (flag == NEWTON_BOND) {
int newton_bond_file = read_int();
if (force->newton_bond != 1) {
if (newton_bond_file != force->newton_bond && me == 0)
error->warning("Restart file used different newton bond setting, "
"using restart file value");
}
force->newton_bond = newton_bond_file;
if (force->newton_pair || force->newton_bond) force->newton = 1;
else force->newton = 0;
// set boundary settings from restart file
// warn if different and input script settings are not default
} else if (flag == XPERIODIC) {
xperiodic = read_int();
} else if (flag == YPERIODIC) {
yperiodic = read_int();
} else if (flag == ZPERIODIC) {
zperiodic = read_int();
} else if (flag == BOUNDARY_00) {
boundary[0][0] = read_int();
} else if (flag == BOUNDARY_01) {
boundary[0][1] = read_int();
} else if (flag == BOUNDARY_10) {
boundary[1][0] = read_int();
} else if (flag == BOUNDARY_11) {
boundary[1][1] = read_int();
} else if (flag == BOUNDARY_20) {
boundary[2][0] = read_int();
} else if (flag == BOUNDARY_21) {
boundary[2][1] = read_int();
if (domain->boundary[0][0] || domain->boundary[0][1] ||
domain->boundary[1][0] || domain->boundary[1][1] ||
domain->boundary[2][0] || domain->boundary[2][1]) {
if (boundary[0][0] != domain->boundary[0][0] ||
boundary[0][1] != domain->boundary[0][1] ||
boundary[1][0] != domain->boundary[1][0] ||
boundary[1][1] != domain->boundary[1][1] ||
boundary[2][0] != domain->boundary[2][0] ||
boundary[2][1] != domain->boundary[2][1]) {
if (me == 0)
error->warning("Restart file used different boundary settings, "
"using restart file values");
}
}
domain->boundary[0][0] = boundary[0][0];
domain->boundary[0][1] = boundary[0][1];
domain->boundary[1][0] = boundary[1][0];
domain->boundary[1][1] = boundary[1][1];
domain->boundary[2][0] = boundary[2][0];
domain->boundary[2][1] = boundary[2][1];
domain->periodicity[0] = domain->xperiodic = xperiodic;
domain->periodicity[1] = domain->yperiodic = yperiodic;
domain->periodicity[2] = domain->zperiodic = zperiodic;
domain->nonperiodic = 0;
if (xperiodic == 0 || yperiodic == 0 || zperiodic == 0) {
domain->nonperiodic = 1;
if (boundary[0][0] >= 2 || boundary[0][1] >= 2 ||
boundary[1][0] >= 2 || boundary[1][1] >= 2 ||
boundary[2][0] >= 2 || boundary[2][1] >= 2)
domain->nonperiodic = 2;
}
// create new AtomVec class
// if style = hybrid, read additional sub-class arguments
} else if (flag == ATOM_STYLE) {
char *style = read_char();
int nwords = 0;
char **words = NULL;
if (strcmp(style,"hybrid") == 0) {
nwords = read_int();
words = new char*[nwords];
for (int i = 0; i < nwords; i++) words[i] = read_char();
}
atom->create_avec(style,nwords,words);
for (int i = 0; i < nwords; i++) delete [] words[i];
delete [] words;
delete [] style;
} else if (flag == NATOMS) {
atom->natoms = read_bigint();
} else if (flag == NTYPES) {
atom->ntypes = read_int();
} else if (flag == NBONDS) {
atom->nbonds = read_bigint();
} else if (flag == NBONDTYPES) {
atom->nbondtypes = read_int();
} else if (flag == BOND_PER_ATOM) {
atom->bond_per_atom = read_int();
} else if (flag == NANGLES) {
atom->nangles = read_bigint();
} else if (flag == NANGLETYPES) {
atom->nangletypes = read_int();
} else if (flag == ANGLE_PER_ATOM) {
atom->angle_per_atom = read_int();
} else if (flag == NDIHEDRALS) {
atom->ndihedrals = read_bigint();
} else if (flag == NDIHEDRALTYPES) {
atom->ndihedraltypes = read_int();
} else if (flag == DIHEDRAL_PER_ATOM) {
atom->dihedral_per_atom = read_int();
} else if (flag == NIMPROPERS) {
atom->nimpropers = read_bigint();
} else if (flag == NIMPROPERTYPES) {
atom->nimpropertypes = read_int();
} else if (flag == IMPROPER_PER_ATOM) {
atom->improper_per_atom = read_int();
} else if (flag == BOXLO_0) {
domain->boxlo[0] = read_double();
} else if (flag == BOXHI_0) {
domain->boxhi[0] = read_double();
} else if (flag == BOXLO_1) {
domain->boxlo[1] = read_double();
} else if (flag == BOXHI_1) {
domain->boxhi[1] = read_double();
} else if (flag == BOXLO_2) {
domain->boxlo[2] = read_double();
} else if (flag == BOXHI_2) {
domain->boxhi[2] = read_double();
} else if (flag == SPECIAL_LJ_1) {
force->special_lj[1] = read_double();
} else if (flag == SPECIAL_LJ_2) {
force->special_lj[2] = read_double();
} else if (flag == SPECIAL_LJ_3) {
force->special_lj[3] = read_double();
} else if (flag == SPECIAL_COUL_1) {
force->special_coul[1] = read_double();
} else if (flag == SPECIAL_COUL_2) {
force->special_coul[2] = read_double();
} else if (flag == SPECIAL_COUL_3) {
force->special_coul[3] = read_double();
} else if (flag == XY) {
domain->triclinic = 1;
domain->xy = read_double();
} else if (flag == XZ) {
domain->triclinic = 1;
domain->xz = read_double();
} else if (flag == YZ) {
domain->triclinic = 1;
domain->yz = read_double();
} else error->all("Invalid flag in header section of restart file");
flag = read_int();
}
}
/* ---------------------------------------------------------------------- */
void ReadRestart::type_arrays()
{
int flag = read_int();
while (flag >= 0) {
if (flag == MASS) {
double *mass = new double[atom->ntypes+1];
if (me == 0) fread(&mass[1],sizeof(double),atom->ntypes,fp);
MPI_Bcast(&mass[1],atom->ntypes,MPI_DOUBLE,0,world);
atom->set_mass(mass);
delete [] mass;
} else error->all("Invalid flag in type arrays section of restart file");
flag = read_int();
}
}
/* ---------------------------------------------------------------------- */
void ReadRestart::force_fields()
{
int n;
char *style;
int flag = read_int();
while (flag >= 0) {
if (flag == PAIR) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
style = new char[n];
if (me == 0) fread(style,sizeof(char),n,fp);
MPI_Bcast(style,n,MPI_CHAR,0,world);
force->create_pair(style);
delete [] style;
force->pair->read_restart(fp);
} else if (flag == BOND) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
style = new char[n];
if (me == 0) fread(style,sizeof(char),n,fp);
MPI_Bcast(style,n,MPI_CHAR,0,world);
force->create_bond(style);
delete [] style;
force->bond->read_restart(fp);
} else if (flag == ANGLE) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
style = new char[n];
if (me == 0) fread(style,sizeof(char),n,fp);
MPI_Bcast(style,n,MPI_CHAR,0,world);
force->create_angle(style);
delete [] style;
force->angle->read_restart(fp);
} else if (flag == DIHEDRAL) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
style = new char[n];
if (me == 0) fread(style,sizeof(char),n,fp);
MPI_Bcast(style,n,MPI_CHAR,0,world);
force->create_dihedral(style);
delete [] style;
force->dihedral->read_restart(fp);
} else if (flag == IMPROPER) {
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
style = new char[n];
if (me == 0) fread(style,sizeof(char),n,fp);
MPI_Bcast(style,n,MPI_CHAR,0,world);
force->create_improper(style);
delete [] style;
force->improper->read_restart(fp);
} else error->all("Invalid flag in force field section of restart file");
flag = read_int();
}
}
/* ----------------------------------------------------------------------
read an int from restart file and bcast it
------------------------------------------------------------------------- */
int ReadRestart::read_int()
{
int value;
if (me == 0) fread(&value,sizeof(int),1,fp);
MPI_Bcast(&value,1,MPI_INT,0,world);
return value;
}
/* ----------------------------------------------------------------------
read a double from restart file and bcast it
------------------------------------------------------------------------- */
double ReadRestart::read_double()
{
double value;
if (me == 0) fread(&value,sizeof(double),1,fp);
MPI_Bcast(&value,1,MPI_DOUBLE,0,world);
return value;
}
/* ----------------------------------------------------------------------
read a char str from restart file and bcast it
str is allocated here, ptr is returned, caller must deallocate
------------------------------------------------------------------------- */
char *ReadRestart::read_char()
{
int n;
if (me == 0) fread(&n,sizeof(int),1,fp);
MPI_Bcast(&n,1,MPI_INT,0,world);
char *value = new char[n];
if (me == 0) fread(value,sizeof(char),n,fp);
MPI_Bcast(value,n,MPI_CHAR,0,world);
return value;
}
/* ----------------------------------------------------------------------
read a bigint from restart file and bcast it
------------------------------------------------------------------------- */
bigint ReadRestart::read_bigint()
{
bigint value;
if (me == 0) fread(&value,sizeof(bigint),1,fp);
MPI_Bcast(&value,1,MPI_LMP_BIGINT,0,world);
return value;
}
diff --git a/src/thermo.cpp b/src/thermo.cpp
index afb32ac9a..e4892c19d 100644
--- a/src/thermo.cpp
+++ b/src/thermo.cpp
@@ -1,1823 +1,1926 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "mpi.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "thermo.h"
#include "atom.h"
#include "update.h"
#include "comm.h"
#include "domain.h"
#include "lattice.h"
#include "modify.h"
#include "fix.h"
#include "compute.h"
#include "input.h"
#include "variable.h"
#include "force.h"
#include "pair.h"
#include "bond.h"
#include "angle.h"
#include "dihedral.h"
#include "improper.h"
#include "kspace.h"
#include "output.h"
#include "timer.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
// customize a new keyword by adding to this list:
// step, elapsed, elaplong, dt, cpu, tpcpu, spcpu
// atoms, temp, press, pe, ke, etotal, enthalpy
// evdwl, ecoul, epair, ebond, eangle, edihed, eimp, emol, elong, etail
// vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz, xlat, ylat, zlat
// pxx, pyy, pzz, pxy, pxz, pyz
// fmax, fnorm
+// cella, cellb, cellc, cellalpha, cellbeta, cellgamma
// customize a new thermo style by adding a DEFINE to this list
#define ONE "step temp epair emol etotal press"
#define MULTI "etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press"
enum{IGNORE,WARN,ERROR}; // same as write_restart.cpp
enum{ONELINE,MULTILINE};
enum{INT,FLOAT,BIGINT};
enum{SCALAR,VECTOR,ARRAY};
#define INVOKED_SCALAR 1
#define INVOKED_VECTOR 2
#define INVOKED_ARRAY 4
#define MAXLINE 8192 // make this 4x longer than Input::MAXLINE
#define DELTA 8
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
Thermo::Thermo(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
{
MPI_Comm_rank(world,&me);
int n = strlen(arg[0]) + 1;
style = new char[n];
strcpy(style,arg[0]);
// set thermo_modify defaults
modified = 0;
normuserflag = 0;
lineflag = ONELINE;
lostflag = ERROR;
lostbefore = 0;
flushflag = 0;
// set style and corresponding lineflag
// custom style builds its own line of keywords
// customize a new thermo style by adding to if statement
line = new char[MAXLINE];
if (strcmp(style,"one") == 0) {
strcpy(line,ONE);
} else if (strcmp(style,"multi") == 0) {
strcpy(line,MULTI);
lineflag = MULTILINE;
} else if (strcmp(style,"custom") == 0) {
if (narg == 1) error->all("Illegal thermo style custom command");
line[0] = '\0';
for (int iarg = 1; iarg < narg; iarg++) {
strcat(line,arg[iarg]);
strcat(line," ");
}
line[strlen(line)-1] = '\0';
} else error->all("Illegal thermo style command");
// ptrs, flags, IDs for compute objects thermo may use or create
temperature = NULL;
pressure = NULL;
pe = NULL;
index_temp = index_press_scalar = index_press_vector = index_pe = -1;
id_temp = (char *) "thermo_temp";
id_press = (char *) "thermo_press";
id_pe = (char *) "thermo_pe";
// count fields in line
// allocate per-field memory
// process line of keywords
nfield_initial = atom->count_words(line);
allocate();
parse_fields(line);
// format strings
char *bigint_format = BIGINT_FORMAT;
char *fformat_multi = (char *) "---------------- Step %%8%s ----- "
"CPU = %%11.4f (sec) ----------------";
sprintf(format_multi,fformat_multi,&bigint_format[1]);
format_float_one_def = (char *) "%12.8g";
format_float_multi_def = (char *) "%14.4f";
format_int_one_def = (char *) "%8d";
format_int_multi_def = (char *) "%14d";
sprintf(format_bigint_one_def,"%%8%s",&bigint_format[1]);
sprintf(format_bigint_multi_def,"%%14%s",&bigint_format[1]);
format_float_user = NULL;
format_int_user = NULL;
format_bigint_user = NULL;
+
+ PI = 4.0*atan(1.0);
}
/* ---------------------------------------------------------------------- */
Thermo::~Thermo()
{
delete [] style;
delete [] line;
deallocate();
// format strings
delete [] format_float_user;
delete [] format_int_user;
delete [] format_bigint_user;
}
/* ---------------------------------------------------------------------- */
void Thermo::init()
{
int i,n;
// set normvalue to default setting unless user has specified it
if (normuserflag) normvalue = normuser;
else if (strcmp(update->unit_style,"lj") == 0) normvalue = 1;
else normvalue = 0;
// add Volume field if volume changes and not style = custom
// this check must come after domain init, so box_change is set
nfield = nfield_initial;
if (domain->box_change && strcmp(style,"custom") != 0)
addfield("Volume",&Thermo::compute_vol,FLOAT);
// set format string for each field
// include keyword if lineflag = MULTILINE
// add '/n' every 3 values if lineflag = MULTILINE
// add trailing '/n' to last value
char *ptr;
for (i = 0; i < nfield; i++) {
format[i][0] = '\0';
if (lineflag == MULTILINE && i % 3 == 0) strcat(format[i],"\n");
if (format_user[i]) ptr = format_user[i];
else if (vtype[i] == FLOAT) {
if (format_float_user) ptr = format_float_user;
else if (lineflag == ONELINE) ptr = format_float_one_def;
else if (lineflag == MULTILINE) ptr = format_float_multi_def;
} else if (vtype[i] == INT) {
if (format_int_user) ptr = format_int_user;
else if (lineflag == ONELINE) ptr = format_int_one_def;
else if (lineflag == MULTILINE) ptr = format_int_multi_def;
} else if (vtype[i] == BIGINT) {
if (format_bigint_user) ptr = format_bigint_user;
else if (lineflag == ONELINE) ptr = format_bigint_one_def;
else if (lineflag == MULTILINE) ptr = format_bigint_multi_def;
}
n = strlen(format[i]);
if (lineflag == ONELINE) sprintf(&format[i][n],"%s ",ptr);
else sprintf(&format[i][n],"%-8s = %s ",keyword[i],ptr);
if (i == nfield-1) strcat(format[i],"\n");
}
// find current ptr for each Compute ID
// cudable = 0 if any compute used by Thermo is non-CUDA
cudable = 1;
int icompute;
for (i = 0; i < ncompute; i++) {
icompute = modify->find_compute(id_compute[i]);
if (icompute < 0) error->all("Could not find thermo compute ID");
computes[i] = modify->compute[icompute];
cudable = cudable && computes[i]->cudable;
}
// find current ptr for each Fix ID
// check that fix frequency is acceptable with thermo output frequency
int ifix;
for (i = 0; i < nfix; i++) {
ifix = modify->find_fix(id_fix[i]);
if (ifix < 0) error->all("Could not find thermo fix ID");
fixes[i] = modify->fix[ifix];
if (output->thermo_every % fixes[i]->global_freq)
error->all("Thermo and fix not computed at compatible times");
}
// find current ptr for each Variable ID
int ivariable;
for (i = 0; i < nvariable; i++) {
ivariable = input->variable->find(id_variable[i]);
if (ivariable < 0)
error->all("Could not find thermo custom variable name");
variables[i] = ivariable;
}
// set ptrs to keyword-specific Compute objects
if (index_temp >= 0) temperature = computes[index_temp];
if (index_press_scalar >= 0) pressure = computes[index_press_scalar];
if (index_press_vector >= 0) pressure = computes[index_press_vector];
if (index_pe >= 0) pe = computes[index_pe];
}
/* ---------------------------------------------------------------------- */
void Thermo::header()
{
if (lineflag == MULTILINE) return;
int loc = 0;
for (int i = 0; i < nfield; i++)
loc += sprintf(&line[loc],"%s ",keyword[i]);
sprintf(&line[loc],"\n");
if (me == 0) {
if (screen) fprintf(screen,line);
if (logfile) fprintf(logfile,line);
}
}
/* ---------------------------------------------------------------------- */
void Thermo::compute(int flag)
{
int i;
firststep = flag;
bigint ntimestep = update->ntimestep;
// check for lost atoms
// turn off normflag if natoms = 0 to avoid divide by 0
natoms = lost_check();
if (natoms == 0) normflag = 0;
else normflag = normvalue;
// invoke Compute methods needed for thermo keywords
// which = 0 is global scalar, which = 1 is global vector
for (i = 0; i < ncompute; i++)
if (compute_which[i] == SCALAR) {
if (!(computes[i]->invoked_flag & INVOKED_SCALAR)) {
computes[i]->compute_scalar();
computes[i]->invoked_flag |= INVOKED_SCALAR;
}
} else if (compute_which[i] == VECTOR) {
if (!(computes[i]->invoked_flag & INVOKED_VECTOR)) {
computes[i]->compute_vector();
computes[i]->invoked_flag |= INVOKED_VECTOR;
}
} else if (compute_which[i] == ARRAY) {
if (!(computes[i]->invoked_flag & INVOKED_ARRAY)) {
computes[i]->compute_array();
computes[i]->invoked_flag |= INVOKED_ARRAY;
}
}
// if lineflag = MULTILINE, prepend step/cpu header line
int loc = 0;
if (lineflag == MULTILINE) {
double cpu;
if (flag) cpu = timer->elapsed(TIME_LOOP);
else cpu = 0.0;
loc = sprintf(&line[loc],format_multi,ntimestep,cpu);
}
// add each thermo value to line with its specific format
for (ifield = 0; ifield < nfield; ifield++) {
(this->*vfunc[ifield])();
if (vtype[ifield] == FLOAT)
loc += sprintf(&line[loc],format[ifield],dvalue);
else if (vtype[ifield] == INT)
loc += sprintf(&line[loc],format[ifield],ivalue);
else if (vtype[ifield] == BIGINT) {
loc += sprintf(&line[loc],format[ifield],bivalue);
}
}
// kludge for RedStorm timing issue
// if (ntimestep == 100) return;
// print line to screen and logfile
if (me == 0) {
if (screen) fprintf(screen,line);
if (logfile) {
fprintf(logfile,line);
if (flushflag) fflush(logfile);
}
}
}
/* ----------------------------------------------------------------------
check for lost atoms, return current number of atoms
------------------------------------------------------------------------- */
bigint Thermo::lost_check()
{
// ntotal = current # of atoms
bigint ntotal;
bigint nblocal = atom->nlocal;
MPI_Allreduce(&nblocal,&ntotal,1,MPI_LMP_BIGINT,MPI_SUM,world);
if (ntotal < 0 || ntotal > MAXBIGINT) error->all("Too many total atoms");
if (ntotal == atom->natoms) return ntotal;
// if not checking or already warned, just return
if (lostflag == IGNORE) return ntotal;
if (lostflag == WARN && lostbefore == 1) return ntotal;
// error message
if (lostflag == ERROR) {
char str[64];
sprintf(str,
"Lost atoms: original " BIGINT_FORMAT " current " BIGINT_FORMAT,
atom->natoms,ntotal);
error->all(str);
}
// warning message
char str[64];
sprintf(str,
"Lost atoms: original " BIGINT_FORMAT " current " BIGINT_FORMAT,
atom->natoms,ntotal);
if (me == 0) error->warning(str,0);
lostbefore = 1;
return ntotal;
}
/* ----------------------------------------------------------------------
modify thermo parameters
------------------------------------------------------------------------- */
void Thermo::modify_params(int narg, char **arg)
{
if (narg == 0) error->all("Illegal thermo_modify command");
modified = 1;
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"every") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) {
delete [] output->var_thermo;
int n = strlen(&arg[iarg+1][2]) + 1;
output->var_thermo = new char[n];
strcpy(output->var_thermo,&arg[iarg+1][2]);
} else error->all("Illegal thermo_modify command");
output->thermo_every = 0;
iarg += 2;
} else if (strcmp(arg[iarg],"temp") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (index_temp < 0) error->all("Thermo style does not use temp");
delete [] id_compute[index_temp];
int n = strlen(arg[iarg+1]) + 1;
id_compute[index_temp] = new char[n];
strcpy(id_compute[index_temp],arg[iarg+1]);
int icompute = modify->find_compute(arg[iarg+1]);
if (icompute < 0)
error->all("Could not find thermo_modify temperature ID");
temperature = modify->compute[icompute];
if (temperature->tempflag == 0)
error->all("Thermo_modify temperature ID does not "
"compute temperature");
if (temperature->igroup != 0 && comm->me == 0)
error->warning("Temperature for thermo pressure is not for group all");
// reset id_temp of pressure to new temperature ID
// either pressure currently being used by thermo or "thermo_press"
if (index_press_scalar >= 0) {
icompute = modify->find_compute(id_compute[index_press_scalar]);
if (icompute < 0) error->all("Pressure ID for thermo does not exist");
} else if (index_press_vector >= 0) {
icompute = modify->find_compute(id_compute[index_press_vector]);
if (icompute < 0) error->all("Pressure ID for thermo does not exist");
} else icompute = modify->find_compute((char *) "thermo_press");
modify->compute[icompute]->reset_extra_compute_fix(arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"press") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (index_press_scalar < 0 && index_press_vector < 0)
error->all("Thermo style does not use press");
if (index_press_scalar >= 0) {
delete [] id_compute[index_press_scalar];
int n = strlen(arg[iarg+1]) + 1;
id_compute[index_press_scalar] = new char[n];
strcpy(id_compute[index_press_scalar],arg[iarg+1]);
}
if (index_press_vector >= 0) {
delete [] id_compute[index_press_vector];
int n = strlen(arg[iarg+1]) + 1;
id_compute[index_press_vector] = new char[n];
strcpy(id_compute[index_press_vector],arg[iarg+1]);
}
int icompute = modify->find_compute(arg[iarg+1]);
if (icompute < 0) error->all("Could not find thermo_modify pressure ID");
pressure = modify->compute[icompute];
if (pressure->pressflag == 0)
error->all("Thermo_modify pressure ID does not compute pressure");
iarg += 2;
} else if (strcmp(arg[iarg],"lost") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (strcmp(arg[iarg+1],"ignore") == 0) lostflag = IGNORE;
else if (strcmp(arg[iarg+1],"warn") == 0) lostflag = WARN;
else if (strcmp(arg[iarg+1],"error") == 0) lostflag = ERROR;
else error->all("Illegal thermo_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"norm") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
normuserflag = 1;
if (strcmp(arg[iarg+1],"no") == 0) normuser = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) normuser = 1;
else error->all("Illegal thermo_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"flush") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (strcmp(arg[iarg+1],"no") == 0) flushflag = 0;
else if (strcmp(arg[iarg+1],"yes") == 0) flushflag = 1;
else error->all("Illegal thermo_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"line") == 0) {
if (iarg+2 > narg) error->all("Illegal thermo_modify command");
if (strcmp(arg[iarg+1],"one") == 0) lineflag = ONELINE;
else if (strcmp(arg[iarg+1],"multi") == 0) lineflag = MULTILINE;
else error->all("Illegal thermo_modify command");
iarg += 2;
} else if (strcmp(arg[iarg],"format") == 0) {
if (iarg+3 > narg) error->all("Illegal thermo_modify command");
if (strcmp(arg[iarg+1],"int") == 0) {
if (format_int_user) delete [] format_int_user;
int n = strlen(arg[iarg+2]) + 1;
format_int_user = new char[n];
strcpy(format_int_user,arg[iarg+2]);
if (format_bigint_user) delete [] format_bigint_user;
n = strlen(format_int_user) + 3;
format_bigint_user = new char[n];
char *ptr = strchr(format_int_user,'d');
if (ptr == NULL)
error->all("Thermo_modify int format does not contain d character");
*ptr = '\0';
sprintf(format_bigint_user,"%s%s%s",format_int_user,
BIGINT_FORMAT,ptr+1);
*ptr = 'd';
} else if (strcmp(arg[iarg+1],"float") == 0) {
if (format_float_user) delete [] format_float_user;
int n = strlen(arg[iarg+2]) + 1;
format_float_user = new char[n];
strcpy(format_float_user,arg[iarg+2]);
} else {
int i = atoi(arg[iarg+1]) - 1;
if (i < 0 || i >= nfield_initial)
error->all("Illegal thermo_modify command");
if (format_user[i]) delete [] format_user[i];
int n = strlen(arg[iarg+2]) + 1;
format_user[i] = new char[n];
strcpy(format_user[i],arg[iarg+2]);
}
iarg += 3;
} else error->all("Illegal thermo_modify command");
}
}
/* ----------------------------------------------------------------------
allocate all per-field memory
------------------------------------------------------------------------- */
void Thermo::allocate()
{
// n = specified fields + Volume field (added at run time)
int n = nfield_initial + 1;
keyword = new char*[n];
for (int i = 0; i < n; i++) keyword[i] = new char[32];
vfunc = new FnPtr[n];
vtype = new int[n];
format = new char*[n];
for (int i = 0; i < n; i++) format[i] = new char[32];
format_user = new char*[n];
for (int i = 0; i < n; i++) format_user[i] = NULL;
field2index = new int[n];
argindex1 = new int[n];
argindex2 = new int[n];
// factor of 3 is max number of computes a single field can add
ncompute = 0;
id_compute = new char*[3*n];
compute_which = new int[3*n];
computes = new Compute*[3*n];
nfix = 0;
id_fix = new char*[n];
fixes = new Fix*[n];
nvariable = 0;
id_variable = new char*[n];
variables = new int[n];
}
/* ----------------------------------------------------------------------
deallocate all per-field memory
------------------------------------------------------------------------- */
void Thermo::deallocate()
{
int n = nfield_initial + 1;
for (int i = 0; i < n; i++) delete [] keyword[i];
delete [] keyword;
delete [] vfunc;
delete [] vtype;
for (int i = 0; i < n; i++) delete [] format[i];
delete [] format;
for (int i = 0; i < n; i++) delete [] format_user[i];
delete [] format_user;
delete [] field2index;
delete [] argindex1;
delete [] argindex2;
for (int i = 0; i < ncompute; i++) delete [] id_compute[i];
delete [] id_compute;
delete [] compute_which;
delete [] computes;
for (int i = 0; i < nfix; i++) delete [] id_fix[i];
delete [] id_fix;
delete [] fixes;
for (int i = 0; i < nvariable; i++) delete [] id_variable[i];
delete [] id_variable;
delete [] variables;
}
/* ----------------------------------------------------------------------
parse list of thermo keywords from str
set compute flags (temp, press, pe, etc)
------------------------------------------------------------------------- */
void Thermo::parse_fields(char *str)
{
nfield = 0;
// customize a new keyword by adding to if statement
char *word = strtok(str," \0");
while (word) {
if (strcmp(word,"step") == 0) {
addfield("Step",&Thermo::compute_step,BIGINT);
} else if (strcmp(word,"elapsed") == 0) {
addfield("Elapsed",&Thermo::compute_elapsed,BIGINT);
} else if (strcmp(word,"elaplong") == 0) {
addfield("Elaplong",&Thermo::compute_elapsed_long,BIGINT);
} else if (strcmp(word,"dt") == 0) {
addfield("Dt",&Thermo::compute_dt,FLOAT);
} else if (strcmp(word,"cpu") == 0) {
addfield("CPU",&Thermo::compute_cpu,FLOAT);
} else if (strcmp(word,"tpcpu") == 0) {
addfield("T/CPU",&Thermo::compute_tpcpu,FLOAT);
} else if (strcmp(word,"spcpu") == 0) {
addfield("S/CPU",&Thermo::compute_spcpu,FLOAT);
} else if (strcmp(word,"atoms") == 0) {
addfield("Atoms",&Thermo::compute_atoms,BIGINT);
} else if (strcmp(word,"temp") == 0) {
addfield("Temp",&Thermo::compute_temp,FLOAT);
index_temp = add_compute(id_temp,SCALAR);
} else if (strcmp(word,"press") == 0) {
addfield("Press",&Thermo::compute_press,FLOAT);
index_press_scalar = add_compute(id_press,SCALAR);
} else if (strcmp(word,"pe") == 0) {
addfield("PotEng",&Thermo::compute_pe,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"ke") == 0) {
addfield("KinEng",&Thermo::compute_ke,FLOAT);
index_temp = add_compute(id_temp,SCALAR);
} else if (strcmp(word,"etotal") == 0) {
addfield("TotEng",&Thermo::compute_etotal,FLOAT);
index_temp = add_compute(id_temp,SCALAR);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"enthalpy") == 0) {
addfield("Enthalpy",&Thermo::compute_enthalpy,FLOAT);
index_temp = add_compute(id_temp,SCALAR);
index_press_scalar = add_compute(id_press,SCALAR);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"evdwl") == 0) {
addfield("E_vdwl",&Thermo::compute_evdwl,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"ecoul") == 0) {
addfield("E_coul",&Thermo::compute_ecoul,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"epair") == 0) {
addfield("E_pair",&Thermo::compute_epair,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"ebond") == 0) {
addfield("E_bond",&Thermo::compute_ebond,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"eangle") == 0) {
addfield("E_angle",&Thermo::compute_eangle,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"edihed") == 0) {
addfield("E_dihed",&Thermo::compute_edihed,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"eimp") == 0) {
addfield("E_impro",&Thermo::compute_eimp,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"emol") == 0) {
addfield("E_mol",&Thermo::compute_emol,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"elong") == 0) {
addfield("E_long",&Thermo::compute_elong,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"etail") == 0) {
addfield("E_tail",&Thermo::compute_etail,FLOAT);
index_pe = add_compute(id_pe,SCALAR);
} else if (strcmp(word,"vol") == 0) {
addfield("Volume",&Thermo::compute_vol,FLOAT);
} else if (strcmp(word,"lx") == 0) {
addfield("Lx",&Thermo::compute_lx,FLOAT);
} else if (strcmp(word,"ly") == 0) {
addfield("Ly",&Thermo::compute_ly,FLOAT);
} else if (strcmp(word,"lz") == 0) {
addfield("Lz",&Thermo::compute_lz,FLOAT);
} else if (strcmp(word,"xlo") == 0) {
addfield("Xlo",&Thermo::compute_xlo,FLOAT);
} else if (strcmp(word,"xhi") == 0) {
addfield("Xhi",&Thermo::compute_xhi,FLOAT);
} else if (strcmp(word,"ylo") == 0) {
addfield("Ylo",&Thermo::compute_ylo,FLOAT);
} else if (strcmp(word,"yhi") == 0) {
addfield("Yhi",&Thermo::compute_yhi,FLOAT);
} else if (strcmp(word,"zlo") == 0) {
addfield("Zlo",&Thermo::compute_zlo,FLOAT);
} else if (strcmp(word,"zhi") == 0) {
addfield("Zhi",&Thermo::compute_zhi,FLOAT);
} else if (strcmp(word,"xy") == 0) {
addfield("Xy",&Thermo::compute_xy,FLOAT);
} else if (strcmp(word,"xz") == 0) {
addfield("Xz",&Thermo::compute_xz,FLOAT);
} else if (strcmp(word,"yz") == 0) {
addfield("Yz",&Thermo::compute_yz,FLOAT);
} else if (strcmp(word,"xlat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword requires lattice be defined");
addfield("Xlat",&Thermo::compute_xlat,FLOAT);
} else if (strcmp(word,"ylat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword requires lattice be defined");
addfield("Ylat",&Thermo::compute_ylat,FLOAT);
} else if (strcmp(word,"zlat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword requires lattice be defined");
addfield("Zlat",&Thermo::compute_zlat,FLOAT);
} else if (strcmp(word,"pxx") == 0) {
addfield("Pxx",&Thermo::compute_pxx,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"pyy") == 0) {
addfield("Pyy",&Thermo::compute_pyy,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"pzz") == 0) {
addfield("Pzz",&Thermo::compute_pzz,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"pxy") == 0) {
addfield("Pxy",&Thermo::compute_pxy,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"pxz") == 0) {
addfield("Pxz",&Thermo::compute_pxz,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"pyz") == 0) {
addfield("Pyz",&Thermo::compute_pyz,FLOAT);
index_press_vector = add_compute(id_press,VECTOR);
} else if (strcmp(word,"fmax") == 0) {
addfield("Fmax",&Thermo::compute_fmax,FLOAT);
} else if (strcmp(word,"fnorm") == 0) {
addfield("Fnorm",&Thermo::compute_fnorm,FLOAT);
+ } else if (strcmp(word,"cella") == 0) {
+ addfield("Cella",&Thermo::compute_cella,FLOAT);
+ } else if (strcmp(word,"cellb") == 0) {
+ addfield("Cellb",&Thermo::compute_cellb,FLOAT);
+ } else if (strcmp(word,"cellc") == 0) {
+ addfield("Cellc",&Thermo::compute_cellc,FLOAT);
+ } else if (strcmp(word,"cellalpha") == 0) {
+ addfield("CellAlpha",&Thermo::compute_cellalpha,FLOAT);
+ } else if (strcmp(word,"cellbeta") == 0) {
+ addfield("CellBeta",&Thermo::compute_cellbeta,FLOAT);
+ } else if (strcmp(word,"cellgamma") == 0) {
+ addfield("CellGamma",&Thermo::compute_cellgamma,FLOAT);
+
// compute value = c_ID, fix value = f_ID, variable value = v_ID
// count trailing [] and store int arguments
// copy = at most 8 chars of ID to pass to addfield
} else if ((strncmp(word,"c_",2) == 0) || (strncmp(word,"f_",2) == 0) ||
(strncmp(word,"v_",2) == 0)) {
int n = strlen(word);
char *id = new char[n];
strcpy(id,&word[2]);
char copy[9];
strncpy(copy,id,8);
copy[8] = '\0';
// parse zero or one or two trailing brackets from ID
// argindex1,argindex2 = int inside each bracket pair, 0 if no bracket
char *ptr = strchr(id,'[');
if (ptr == NULL) argindex1[nfield] = 0;
else {
*ptr = '\0';
argindex1[nfield] = input->variable->int_between_brackets(ptr);
ptr++;
if (*ptr == '[') {
argindex2[nfield] = input->variable->int_between_brackets(ptr);
ptr++;
} else argindex2[nfield] = 0;
}
if (word[0] == 'c') {
n = modify->find_compute(id);
if (n < 0) error->all("Could not find thermo custom compute ID");
if (argindex1[nfield] == 0 && modify->compute[n]->scalar_flag == 0)
error->all("Thermo compute does not compute scalar");
if (argindex1[nfield] > 0 && argindex2[nfield] == 0) {
if (modify->compute[n]->vector_flag == 0)
error->all("Thermo compute does not compute vector");
if (argindex1[nfield] > modify->compute[n]->size_vector)
error->all("Thermo compute vector is accessed out-of-range");
}
if (argindex1[nfield] > 0 && argindex2[nfield] > 0) {
if (modify->compute[n]->array_flag == 0)
error->all("Thermo compute does not compute array");
if (argindex1[nfield] > modify->compute[n]->size_array_rows ||
argindex2[nfield] > modify->compute[n]->size_array_cols)
error->all("Thermo compute array is accessed out-of-range");
}
if (argindex1[nfield] == 0)
field2index[nfield] = add_compute(id,SCALAR);
else if (argindex2[nfield] == 0)
field2index[nfield] = add_compute(id,VECTOR);
else
field2index[nfield] = add_compute(id,ARRAY);
addfield(copy,&Thermo::compute_compute,FLOAT);
} else if (word[0] == 'f') {
n = modify->find_fix(id);
if (n < 0) error->all("Could not find thermo custom fix ID");
if (argindex1[nfield] == 0 && modify->fix[n]->scalar_flag == 0)
error->all("Thermo fix does not compute scalar");
if (argindex1[nfield] > 0 && argindex2[nfield] == 0) {
if (modify->fix[n]->vector_flag == 0)
error->all("Thermo fix does not compute vector");
if (argindex1[nfield] > modify->fix[n]->size_vector)
error->all("Thermo fix vector is accessed out-of-range");
}
if (argindex1[nfield] > 0 && argindex2[nfield] > 0) {
if (modify->fix[n]->array_flag == 0)
error->all("Thermo fix does not compute array");
if (argindex1[nfield] > modify->fix[n]->size_array_rows ||
argindex2[nfield] > modify->fix[n]->size_array_cols)
error->all("Thermo fix array is accessed out-of-range");
}
field2index[nfield] = add_fix(id);
addfield(copy,&Thermo::compute_fix,FLOAT);
} else if (word[0] == 'v') {
n = input->variable->find(id);
if (n < 0) error->all("Could not find thermo custom variable name");
if (input->variable->equalstyle(n) == 0)
error->all("Thermo custom variable is not equal-style variable");
if (argindex1[nfield])
error->all("Thermo custom variable cannot be indexed");
field2index[nfield] = add_variable(id);
addfield(copy,&Thermo::compute_variable,FLOAT);
}
delete [] id;
} else error->all("Invalid keyword in thermo_style custom command");
word = strtok(NULL," \0");
}
}
/* ----------------------------------------------------------------------
add field to list of quantities to print
------------------------------------------------------------------------- */
void Thermo::addfield(const char *key, FnPtr func, int typeflag)
{
strcpy(keyword[nfield],key);
vfunc[nfield] = func;
vtype[nfield] = typeflag;
nfield++;
}
/* ----------------------------------------------------------------------
add compute ID to list of Compute objects to call
return location of where this Compute is in list
if already in list with same which, do not add, just return index
------------------------------------------------------------------------- */
int Thermo::add_compute(const char *id, int which)
{
int icompute;
for (icompute = 0; icompute < ncompute; icompute++)
if ((strcmp(id,id_compute[icompute]) == 0) &&
which == compute_which[icompute]) break;
if (icompute < ncompute) return icompute;
int n = strlen(id) + 1;
id_compute[ncompute] = new char[n];
strcpy(id_compute[ncompute],id);
compute_which[ncompute] = which;
ncompute++;
return ncompute-1;
}
/* ----------------------------------------------------------------------
add fix ID to list of Fix objects to call
------------------------------------------------------------------------- */
int Thermo::add_fix(const char *id)
{
int n = strlen(id) + 1;
id_fix[nfix] = new char[n];
strcpy(id_fix[nfix],id);
nfix++;
return nfix-1;
}
/* ----------------------------------------------------------------------
add variable ID to list of Variables to evaluate
------------------------------------------------------------------------- */
int Thermo::add_variable(const char *id)
{
int n = strlen(id) + 1;
id_variable[nvariable] = new char[n];
strcpy(id_variable[nvariable],id);
nvariable++;
return nvariable-1;
}
/* ----------------------------------------------------------------------
compute a single thermodyanmic value, word is any keyword in custom list
called when a variable is evaluated by Variable class
return value as double in answer
return 0 if str is recoginzed keyword, 1 if unrecognized
customize a new keyword by adding to if statement
------------------------------------------------------------------------- */
int Thermo::evaluate_keyword(char *word, double *answer)
{
// invoke a lo-level thermo routine to compute the variable value
// if keyword requires a compute, error if thermo doesn't use the compute
// if inbetween runs and needed compute is not current, error
// if in middle of run and needed compute is not current, invoke it
// for keywords that use pe indirectly (evdwl, ebond, etc):
// check if energy was tallied on this timestep and set pe->invoked_flag
// this will trigger next timestep for energy tallying via addstep()
if (strcmp(word,"step") == 0) {
compute_step();
dvalue = bivalue;
} else if (strcmp(word,"elapsed") == 0) {
if (update->whichflag == 0)
error->all("This variable thermo keyword cannot be used between runs");
compute_elapsed();
dvalue = bivalue;
} else if (strcmp(word,"elaplong") == 0) {
if (update->whichflag == 0)
error->all("This variable thermo keyword cannot be used between runs");
compute_elapsed_long();
dvalue = bivalue;
} else if (strcmp(word,"dt") == 0) {
compute_dt();
} else if (strcmp(word,"cpu") == 0) {
if (update->whichflag == 0)
error->all("This variable thermo keyword cannot be used between runs");
compute_cpu();
} else if (strcmp(word,"tpcpu") == 0) {
if (update->whichflag == 0)
error->all("This variable thermo keyword cannot be used between runs");
compute_tpcpu();
} else if (strcmp(word,"spcpu") == 0) {
if (update->whichflag == 0)
error->all("This variable thermo keyword cannot be used between runs");
compute_spcpu();
} else if (strcmp(word,"atoms") == 0) {
compute_atoms();
dvalue = bivalue;
} else if (strcmp(word,"temp") == 0) {
if (!temperature)
error->all("Thermo keyword in variable requires "
"thermo to use/init temp");
if (update->whichflag == 0) {
if (temperature->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(temperature->invoked_flag & INVOKED_SCALAR)) {
temperature->compute_scalar();
temperature->invoked_flag |= INVOKED_SCALAR;
}
compute_temp();
} else if (strcmp(word,"press") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_SCALAR)) {
pressure->compute_scalar();
pressure->invoked_flag |= INVOKED_SCALAR;
}
compute_press();
} else if (strcmp(word,"pe") == 0) {
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pe->invoked_flag & INVOKED_SCALAR)) {
pe->compute_scalar();
pe->invoked_flag |= INVOKED_SCALAR;
}
compute_pe();
} else if (strcmp(word,"ke") == 0) {
if (!temperature)
error->all("Thermo keyword in variable requires "
"thermo to use/init temp");
if (update->whichflag == 0) {
if (temperature->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(temperature->invoked_flag & INVOKED_SCALAR)) {
temperature->compute_scalar();
temperature->invoked_flag |= INVOKED_SCALAR;
}
compute_ke();
} else if (strcmp(word,"etotal") == 0) {
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pe->invoked_flag & INVOKED_SCALAR)) {
pe->compute_scalar();
pe->invoked_flag |= INVOKED_SCALAR;
}
if (!temperature)
error->all("Thermo keyword in variable requires "
"thermo to use/init temp");
if (update->whichflag == 0) {
if (temperature->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(temperature->invoked_flag & INVOKED_SCALAR)) {
temperature->compute_scalar();
temperature->invoked_flag |= INVOKED_SCALAR;
}
compute_etotal();
} else if (strcmp(word,"enthalpy") == 0) {
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
if (update->whichflag == 0) {
if (pe->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pe->invoked_flag & INVOKED_SCALAR)) {
pe->compute_scalar();
pe->invoked_flag |= INVOKED_SCALAR;
}
if (!temperature)
error->all("Thermo keyword in variable requires "
"thermo to use/init temp");
if (update->whichflag == 0) {
if (temperature->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(temperature->invoked_flag & INVOKED_SCALAR)) {
temperature->compute_scalar();
temperature->invoked_flag |= INVOKED_SCALAR;
}
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_scalar != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_SCALAR)) {
pressure->compute_scalar();
pressure->invoked_flag |= INVOKED_SCALAR;
}
compute_enthalpy();
} else if (strcmp(word,"evdwl") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_evdwl();
} else if (strcmp(word,"ecoul") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_ecoul();
} else if (strcmp(word,"epair") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_epair();
} else if (strcmp(word,"ebond") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_ebond();
} else if (strcmp(word,"eangle") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_eangle();
} else if (strcmp(word,"edihed") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_edihed();
} else if (strcmp(word,"eimp") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_eimp();
} else if (strcmp(word,"emol") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_emol();
} else if (strcmp(word,"elong") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_elong();
} else if (strcmp(word,"etail") == 0) {
if (update->eflag_global != update->ntimestep)
error->all("Energy was not tallied on needed timestep");
if (!pe)
error->all("Thermo keyword in variable requires thermo to use/init pe");
pe->invoked_flag |= INVOKED_SCALAR;
compute_etail();
} else if (strcmp(word,"vol") == 0) compute_vol();
else if (strcmp(word,"lx") == 0) compute_lx();
else if (strcmp(word,"ly") == 0) compute_ly();
else if (strcmp(word,"lz") == 0) compute_lz();
else if (strcmp(word,"xlo") == 0) compute_xlo();
else if (strcmp(word,"xhi") == 0) compute_xhi();
else if (strcmp(word,"ylo") == 0) compute_ylo();
else if (strcmp(word,"yhi") == 0) compute_yhi();
else if (strcmp(word,"zlo") == 0) compute_zlo();
else if (strcmp(word,"zhi") == 0) compute_zhi();
else if (strcmp(word,"xy") == 0) compute_xy();
else if (strcmp(word,"xz") == 0) compute_xz();
else if (strcmp(word,"yz") == 0) compute_yz();
else if (strcmp(word,"xlat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword in variable requires lattice be defined");
compute_xlat();
} else if (strcmp(word,"ylat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword in variable requires lattice be defined");
compute_ylat();
} else if (strcmp(word,"zlat") == 0) {
if (domain->lattice == NULL)
error->all("Thermo keyword in variable requires lattice be defined");
compute_zlat();
} else if (strcmp(word,"pxx") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pxx();
} else if (strcmp(word,"pyy") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pyy();
} else if (strcmp(word,"pzz") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pzz();
} else if (strcmp(word,"pxy") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pxy();
} else if (strcmp(word,"pxz") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pxz();
} else if (strcmp(word,"pyz") == 0) {
if (!pressure)
error->all("Thermo keyword in variable requires "
"thermo to use/init press");
if (update->whichflag == 0) {
if (pressure->invoked_vector != update->ntimestep)
error->all("Compute used in variable thermo keyword between runs "
"is not current");
} else if (!(pressure->invoked_flag & INVOKED_VECTOR)) {
pressure->compute_vector();
pressure->invoked_flag |= INVOKED_VECTOR;
}
compute_pyz();
} else if (strcmp(word,"fmax") == 0) compute_fmax();
else if (strcmp(word,"fnorm") == 0) compute_fnorm();
+ else if (strcmp(word,"cella") == 0) compute_cella();
+ else if (strcmp(word,"cellb") == 0) compute_cellb();
+ else if (strcmp(word,"cellc") == 0) compute_cellc();
+ else if (strcmp(word,"cellalpha") == 0) compute_cellalpha();
+ else if (strcmp(word,"cellbeta") == 0) compute_cellbeta();
+ else if (strcmp(word,"cellgamma") == 0) compute_cellgamma();
+
else return 1;
*answer = dvalue;
return 0;
}
/* ----------------------------------------------------------------------
extraction of Compute, Fix, Variable results
compute/fix are normalized by atoms if returning extensive value
variable value is not normalized (formula should normalize if desired)
------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
void Thermo::compute_compute()
{
int m = field2index[ifield];
Compute *compute = computes[m];
if (compute_which[m] == SCALAR) {
dvalue = compute->scalar;
if (normflag && compute->extscalar) dvalue /= natoms;
} else if (compute_which[m] == VECTOR) {
dvalue = compute->vector[argindex1[ifield]-1];
if (normflag) {
if (compute->extvector == 0) return;
else if (compute->extvector == 1) dvalue /= natoms;
else if (compute->extlist[argindex1[ifield]-1]) dvalue /= natoms;
}
} else {
dvalue = compute->array[argindex1[ifield]-1][argindex2[ifield]-1];
if (normflag && compute->extarray) dvalue /= natoms;
}
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_fix()
{
int m = field2index[ifield];
Fix *fix = fixes[m];
if (argindex1[ifield] == 0) {
dvalue = fix->compute_scalar();
if (normflag && fix->extscalar) dvalue /= natoms;
} else if (argindex2[ifield] == 0) {
dvalue = fix->compute_vector(argindex1[ifield]-1);
if (normflag) {
if (fix->extvector == 0) return;
else if (fix->extvector == 1) dvalue /= natoms;
else if (fix->extlist[argindex1[ifield]-1]) dvalue /= natoms;
}
} else {
dvalue = fix->compute_array(argindex1[ifield]-1,argindex2[ifield]-1);
if (normflag && fix->extarray) dvalue /= natoms;
}
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_variable()
{
dvalue = input->variable->compute_equal(variables[field2index[ifield]]);
}
/* ----------------------------------------------------------------------
one method for every keyword thermo can output
called by compute() or evaluate_keyword()
compute will have already been called
set ivalue/dvalue/bivalue if value is int/double/bigint
customize a new keyword by adding a method
------------------------------------------------------------------------- */
void Thermo::compute_step()
{
bivalue = update->ntimestep;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_elapsed()
{
bivalue = update->ntimestep - update->firststep;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_elapsed_long()
{
bivalue = update->ntimestep - update->beginstep;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_dt()
{
dvalue = update->dt;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_cpu()
{
if (firststep == 0) dvalue = 0.0;
else dvalue = timer->elapsed(TIME_LOOP);
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_tpcpu()
{
double new_cpu;
double new_time = update->ntimestep * update->dt;
if (firststep == 0) {
new_cpu = 0.0;
dvalue = 0.0;
} else {
new_cpu = timer->elapsed(TIME_LOOP);
double cpu_diff = new_cpu - last_tpcpu;
double time_diff = new_time - last_time;
if (time_diff > 0.0 && cpu_diff > 0.0) dvalue = time_diff/cpu_diff;
else dvalue = 0.0;
}
last_time = new_time;
last_tpcpu = new_cpu;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_spcpu()
{
double new_cpu;
int new_step = update->ntimestep;
if (firststep == 0) {
new_cpu = 0.0;
dvalue = 0.0;
} else {
new_cpu = timer->elapsed(TIME_LOOP);
double cpu_diff = new_cpu - last_spcpu;
int step_diff = new_step - last_step;
if (cpu_diff > 0.0) dvalue = step_diff/cpu_diff;
else dvalue = 0.0;
}
last_step = new_step;
last_spcpu = new_cpu;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_atoms()
{
bivalue = natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_temp()
{
dvalue = temperature->scalar;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_press()
{
dvalue = pressure->scalar;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pe()
{
dvalue = pe->scalar;
if (normflag) dvalue /= natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ke()
{
dvalue = temperature->scalar;
dvalue *= 0.5 * temperature->dof * force->boltz;
if (normflag) dvalue /= natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_etotal()
{
compute_pe();
double ke = temperature->scalar;
ke *= 0.5 * temperature->dof * force->boltz;
if (normflag) ke /= natoms;
dvalue += ke;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_enthalpy()
{
compute_etotal();
double etmp = dvalue;
compute_vol();
double vtmp = dvalue;
if (normflag) vtmp /= natoms;
compute_press();
double ptmp = dvalue;
dvalue = etmp + ptmp*vtmp/(force->nktv2p);
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_evdwl()
{
double tmp = 0.0;
if (force->pair) tmp += force->pair->eng_vdwl;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (force->pair && force->pair->tail_flag) {
double volume = domain->xprd * domain->yprd * domain->zprd;
dvalue += force->pair->etail / volume;
}
if (normflag) dvalue /= natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ecoul()
{
double tmp = 0.0;
if (force->pair) tmp += force->pair->eng_coul;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_epair()
{
double tmp = 0.0;
if (force->pair) tmp += force->pair->eng_vdwl + force->pair->eng_coul;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (force->kspace) dvalue += force->kspace->energy;
if (force->pair && force->pair->tail_flag) {
double volume = domain->xprd * domain->yprd * domain->zprd;
dvalue += force->pair->etail / volume;
}
if (normflag) dvalue /= natoms;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ebond()
{
if (force->bond) {
double tmp = force->bond->energy;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_eangle()
{
if (force->angle) {
double tmp = force->angle->energy;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_edihed()
{
if (force->dihedral) {
double tmp = force->dihedral->energy;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_eimp()
{
if (force->improper) {
double tmp = force->improper->energy;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_emol()
{
double tmp = 0.0;
if (atom->molecular) {
if (force->bond) tmp += force->bond->energy;
if (force->angle) tmp += force->angle->energy;
if (force->dihedral) tmp += force->dihedral->energy;
if (force->improper) tmp += force->improper->energy;
MPI_Allreduce(&tmp,&dvalue,1,MPI_DOUBLE,MPI_SUM,world);
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_elong()
{
if (force->kspace) {
dvalue = force->kspace->energy;
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_etail()
{
if (force->pair && force->pair->tail_flag) {
double volume = domain->xprd * domain->yprd * domain->zprd;
dvalue = force->pair->etail / volume;
if (normflag) dvalue /= natoms;
} else dvalue = 0.0;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_vol()
{
if (domain->dimension == 3)
dvalue = domain->xprd * domain->yprd * domain->zprd;
else
dvalue = domain->xprd * domain->yprd;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_lx()
{
dvalue = domain->xprd;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ly()
{
dvalue = domain->yprd;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_lz()
{
dvalue = domain->zprd;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_xlo()
{
dvalue = domain->boxlo[0];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_xhi()
{
dvalue = domain->boxhi[0];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ylo()
{
dvalue = domain->boxlo[1];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_yhi()
{
dvalue = domain->boxhi[1];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_zlo()
{
dvalue = domain->boxlo[2];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_zhi()
{
dvalue = domain->boxhi[2];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_xy()
{
dvalue = domain->xy;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_xz()
{
dvalue = domain->xz;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_yz()
{
dvalue = domain->yz;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_xlat()
{
dvalue = domain->lattice->xlattice;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_ylat()
{
dvalue = domain->lattice->ylattice;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_zlat()
{
dvalue = domain->lattice->zlattice;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pxx()
{
dvalue = pressure->vector[0];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pyy()
{
dvalue = pressure->vector[1];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pzz()
{
dvalue = pressure->vector[2];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pxy()
{
dvalue = pressure->vector[3];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pxz()
{
dvalue = pressure->vector[4];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_pyz()
{
dvalue = pressure->vector[5];
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_fmax()
{
double **f = atom->f;
int nlocal = atom->nlocal;
double max = 0.0;
for (int i = 0; i < nlocal; i++) {
max = MAX(max,fabs(f[i][0]));
max = MAX(max,fabs(f[i][1]));
max = MAX(max,fabs(f[i][2]));
}
double maxall;
MPI_Allreduce(&max,&maxall,1,MPI_DOUBLE,MPI_MAX,world);
dvalue = maxall;
}
/* ---------------------------------------------------------------------- */
void Thermo::compute_fnorm()
{
double **f = atom->f;
int nlocal = atom->nlocal;
double dot = 0.0;
for (int i = 0; i < nlocal; i++)
dot += f[i][0]*f[i][0] + f[i][1]*f[i][1] + f[i][2]*f[i][2];
double dotall;
MPI_Allreduce(&dot,&dotall,1,MPI_DOUBLE,MPI_SUM,world);
dvalue = sqrt(dotall);
}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cella()
+{
+ dvalue = domain->xprd;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cellb()
+{
+ if (!domain->triclinic)
+ dvalue = domain->yprd;
+ else {
+ double* h = domain->h;
+ dvalue = sqrt(h[1]*h[1]+h[5]*h[5]);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cellc()
+{
+ if (!domain->triclinic)
+ dvalue = domain->zprd;
+ else {
+ double* h = domain->h;
+ dvalue = sqrt(h[2]*h[2]+h[3]*h[3]+h[4]*h[4]);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cellalpha()
+{
+ if (!domain->triclinic)
+ dvalue = 90.0;
+ else {
+
+ // Cos(alpha) = (xy.xz + ly.yz)/(b.c)
+
+ double* h = domain->h;
+ double cosalpha = (h[5]*h[4]+h[1]*h[3])/
+ sqrt((h[1]*h[1]+h[5]*h[5])*(h[2]*h[2]+h[3]*h[3]+h[4]*h[4]));
+ dvalue = acos(cosalpha)*180.0/PI;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cellbeta()
+{
+ if (!domain->triclinic)
+ dvalue = 90.0;
+ else {
+
+ // Cos(beta) = xz/c
+
+ double* h = domain->h;
+ double cosbeta = h[4]/sqrt(h[2]*h[2]+h[3]*h[3]+h[4]*h[4]);
+ dvalue = acos(cosbeta)*180.0/PI;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void Thermo::compute_cellgamma()
+{
+ if (!domain->triclinic)
+ dvalue = 90.0;
+ else {
+
+ // Cos(gamma) = xy/b
+
+ double* h = domain->h;
+ double cosgamma = h[5]/sqrt(h[1]*h[1]+h[5]*h[5]);
+ dvalue = acos(cosgamma)*180.0/PI;
+ }
+}
diff --git a/src/thermo.h b/src/thermo.h
index 49e2f79e5..352209cb3 100644
--- a/src/thermo.h
+++ b/src/thermo.h
@@ -1,180 +1,189 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_THERMO_H
#define LMP_THERMO_H
#include "pointers.h"
namespace LAMMPS_NS {
class Thermo : protected Pointers {
friend class WriteRestart; // accesses lostflag
friend class MinCG; // accesses compute_pe
public:
char *style;
int normflag; // 0 if do not normalize by atoms, 1 if normalize
int modified; // 1 if thermo_modify has been used, else 0
int cudable; // 1 if all computes used are cudable
Thermo(class LAMMPS *, int, char **);
~Thermo();
void init();
bigint lost_check();
void modify_params(int, char **);
void header();
void compute(int);
int evaluate_keyword(char *, double *);
private:
int me;
char *line;
int nfield,nfield_initial;
char **keyword;
int *vtype;
char **format,**format_user;
char *format_float_one_def,*format_float_multi_def;
char *format_int_one_def,*format_int_multi_def;
char *format_float_user,*format_int_user,*format_bigint_user;
char format_multi[128];
char format_bigint_one_def[8],format_bigint_multi_def[8];
int normvalue; // use this for normflag unless natoms = 0
int normuserflag; // 0 if user has not set, 1 if has
int normuser;
int firststep;
int lostflag,lostbefore;
int flushflag,lineflag;
double last_tpcpu,last_spcpu;
double last_time;
bigint last_step;
bigint natoms;
// data used by routines that compute single values
int ivalue; // integer value to print
double dvalue; // double value to print
bigint bivalue; // big integer value to print
int ifield; // which field in thermo output is being computed
int *field2index; // which compute,fix,variable calcs this field
int *argindex1; // indices into compute,fix scalar,vector
int *argindex2;
// data for keyword-specific Compute objects
// index = where they are in computes list
// id = ID of Compute objects
// Compute * = ptrs to the Compute objects
int index_temp,index_press_scalar,index_press_vector,index_pe;
char *id_temp,*id_press,*id_pe;
class Compute *temperature,*pressure,*pe;
int ncompute; // # of Compute objects called by thermo
char **id_compute; // their IDs
int *compute_which; // 0/1 if should call scalar() or vector()
class Compute **computes; // list of ptrs to the Compute objects
int nfix; // # of Fix objects called by thermo
char **id_fix; // their IDs
class Fix **fixes; // list of ptrs to the Fix objects
int nvariable; // # of variables evaulated by thermo
char **id_variable; // list of variable names
int *variables; // list of Variable indices
+ double PI;
+
// private methods
void allocate();
void deallocate();
void parse_fields(char *);
int add_compute(const char *, int);
int add_fix(const char *);
int add_variable(const char *);
typedef void (Thermo::*FnPtr)();
void addfield(const char *, FnPtr, int);
FnPtr *vfunc; // list of ptrs to functions
void compute_compute(); // functions that compute a single value
void compute_fix(); // via calls to Compute,Fix,Variable classes
void compute_variable();
// functions that compute a single value
// customize a new keyword by adding a method prototype
void compute_step();
void compute_elapsed();
void compute_elapsed_long();
void compute_dt();
void compute_cpu();
void compute_tpcpu();
void compute_spcpu();
void compute_atoms();
void compute_temp();
void compute_press();
void compute_pe();
void compute_ke();
void compute_etotal();
void compute_enthalpy();
void compute_evdwl();
void compute_ecoul();
void compute_epair();
void compute_ebond();
void compute_eangle();
void compute_edihed();
void compute_eimp();
void compute_emol();
void compute_elong();
void compute_etail();
void compute_vol();
void compute_lx();
void compute_ly();
void compute_lz();
void compute_xlo();
void compute_xhi();
void compute_ylo();
void compute_yhi();
void compute_zlo();
void compute_zhi();
void compute_xy();
void compute_xz();
void compute_yz();
void compute_xlat();
void compute_ylat();
void compute_zlat();
void compute_pxx();
void compute_pyy();
void compute_pzz();
void compute_pxy();
void compute_pyz();
void compute_pxz();
void compute_fmax();
void compute_fnorm();
+
+ void compute_cella();
+ void compute_cellb();
+ void compute_cellc();
+ void compute_cellalpha();
+ void compute_cellbeta();
+ void compute_cellgamma();
};
}
#endif
diff --git a/src/update.cpp b/src/update.cpp
index cc6f49b16..5718368d1 100644
--- a/src/update.cpp
+++ b/src/update.cpp
@@ -1,355 +1,379 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "lmptype.h"
#include "string.h"
#include "stdlib.h"
#include "update.h"
#include "style_integrate.h"
#include "style_minimize.h"
#include "neighbor.h"
#include "force.h"
#include "modify.h"
#include "fix.h"
#include "domain.h"
#include "region.h"
#include "compute.h"
#include "output.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
Update::Update(LAMMPS *lmp) : Pointers(lmp)
{
int n;
char *str;
ntimestep = 0;
first_update = 0;
whichflag = 0;
firststep = laststep = 0;
beginstep = endstep = 0;
setupflag = 0;
multireplica = 0;
restrict_output = 0;
eflag_global = vflag_global = -1;
unit_style = NULL;
set_units("lj");
integrate_style = NULL;
integrate = NULL;
minimize_style = NULL;
minimize = NULL;
if (lmp->cuda) {
str = (char *) "verlet/cuda";
create_integrate(1,&str,NULL);
} else {
str = (char *) "verlet";
create_integrate(1,&str,NULL);
}
str = (char *) "cg";
create_minimize(1,&str);
}
/* ---------------------------------------------------------------------- */
Update::~Update()
{
delete [] unit_style;
delete [] integrate_style;
delete integrate;
delete [] minimize_style;
delete minimize;
}
/* ---------------------------------------------------------------------- */
void Update::init()
{
// if USER-CUDA mode is enabled:
// integrate/minimize style must be CUDA variant
if (whichflag == 1 && lmp->cuda)
if (strstr(integrate_style,"cuda") == NULL)
error->all("USER-CUDA mode requires CUDA variant of run style");
if (whichflag == 2 && lmp->cuda)
if (strstr(minimize_style,"cuda") == NULL)
error->all("USER-CUDA mode requires CUDA variant of min style");
// init the appropriate integrate and/or minimize class
// if neither (e.g. from write_restart) then just return
if (whichflag == 0) return;
if (whichflag == 1) integrate->init();
else if (whichflag == 2) minimize->init();
// only set first_update if a run or minimize is being performed
first_update = 1;
}
/* ---------------------------------------------------------------------- */
void Update::set_units(const char *style)
{
// physical constants from:
// http://physics.nist.gov/cuu/Constants/Table/allascii.txt
// using thermochemical calorie = 4.184 J
if (strcmp(style,"lj") == 0) {
force->boltz = 1.0;
force->mvv2e = 1.0;
force->ftm2v = 1.0;
force->mv2d = 1.0;
force->nktv2p = 1.0;
force->qqr2e = 1.0;
force->qe2f = 1.0;
force->vxmu2f = 1.0;
force->xxt2kmu = 1.0;
+ force->e_mass = 0.0; // not yet set
+ force->hhmrr2e = 0.0;
+ force->mvh2r = 0.0;
+
dt = 0.005;
neighbor->skin = 0.3;
} else if (strcmp(style,"real") == 0) {
force->boltz = 0.0019872067;
force->mvv2e = 48.88821291 * 48.88821291;
force->ftm2v = 1.0 / 48.88821291 / 48.88821291;
force->mv2d = 1.0 / 0.602214179;
force->nktv2p = 68568.415;
force->qqr2e = 332.06371;
force->qe2f = 23.060549;
force->vxmu2f = 1.4393264316e4;
force->xxt2kmu = 0.1;
+ force->e_mass = 1.0/1836.1527556560675;
+ force->hhmrr2e = 0.0957018663603261;
+ force->mvh2r = 1.5339009481951;
+
dt = 1.0;
neighbor->skin = 2.0;
} else if (strcmp(style,"metal") == 0) {
force->boltz = 8.617343e-5;
force->mvv2e = 1.0364269e-4;
force->ftm2v = 1.0 / 1.0364269e-4;
force->mv2d = 1.0 / 0.602214179;
force->nktv2p = 1.6021765e6;
force->qqr2e = 14.399645;
force->qe2f = 1.0;
force->vxmu2f = 0.6241509647;
force->xxt2kmu = 1.0e-4;
+ force->e_mass = 0.0; // not yet set
+ force->hhmrr2e = 0.0;
+ force->mvh2r = 0.0;
+
dt = 0.001;
neighbor->skin = 2.0;
} else if (strcmp(style,"si") == 0) {
force->boltz = 1.3806504e-23;
force->mvv2e = 1.0;
force->ftm2v = 1.0;
force->mv2d = 1.0;
force->nktv2p = 1.0;
force->qqr2e = 8.9876e9;
force->qe2f = 1.0;
force->vxmu2f = 1.0;
force->xxt2kmu = 1.0;
+ force->e_mass = 0.0; // not yet set
+ force->hhmrr2e = 0.0;
+ force->mvh2r = 0.0;
+
dt = 1.0e-8;
neighbor->skin = 0.001;
} else if (strcmp(style,"cgs") == 0) {
force->boltz = 1.3806504e-16;
force->mvv2e = 1.0;
force->ftm2v = 1.0;
force->mv2d = 1.0;
force->nktv2p = 1.0;
force->qqr2e = 1.0;
force->qe2f = 1.0;
force->vxmu2f = 1.0;
force->xxt2kmu = 1.0;
+ force->e_mass = 0.0; // not yet set
+ force->hhmrr2e = 0.0;
+ force->mvh2r = 0.0;
+
dt = 1.0e-8;
neighbor->skin = 0.1;
} else if (strcmp(style,"electron") == 0) {
force->boltz = 3.16681534e-6;
force->mvv2e = 1.06657236;
force->ftm2v = 0.937582899;
force->mv2d = 1.0;
force->nktv2p = 2.94210108e13;
force->qqr2e = 1.0;
force->qe2f = 1.94469051e-10;
force->vxmu2f = 3.39893149e1;
force->xxt2kmu = 3.13796367e-2;
+ force->e_mass = 0.0; // not yet set
+ force->hhmrr2e = 0.0;
+ force->mvh2r = 0.0;
+
dt = 0.001;
neighbor->skin = 2.0;
} else error->all("Illegal units command");
delete [] unit_style;
int n = strlen(style) + 1;
unit_style = new char[n];
strcpy(unit_style,style);
}
/* ---------------------------------------------------------------------- */
void Update::create_integrate(int narg, char **arg, char *suffix)
{
if (narg < 1) error->all("Illegal run_style command");
delete [] integrate_style;
delete integrate;
int sflag;
new_integrate(arg[0],narg-1,&arg[1],suffix,sflag);
if (sflag) {
char estyle[256];
sprintf(estyle,"%s/%s",arg[0],suffix);
int n = strlen(estyle) + 1;
integrate_style = new char[n];
strcpy(integrate_style,estyle);
} else {
int n = strlen(arg[0]) + 1;
integrate_style = new char[n];
strcpy(integrate_style,arg[0]);
}
}
/* ----------------------------------------------------------------------
create the Integrate style, first with suffix appended
------------------------------------------------------------------------- */
void Update::new_integrate(char *style, int narg, char **arg,
char *suffix, int &sflag)
{
int success = 0;
if (suffix && lmp->suffix_enable) {
sflag = 1;
char estyle[256];
sprintf(estyle,"%s/%s",style,suffix);
success = 1;
if (0) return;
#define INTEGRATE_CLASS
#define IntegrateStyle(key,Class) \
else if (strcmp(estyle,#key) == 0) integrate = new Class(lmp,narg,arg);
#include "style_integrate.h"
#undef IntegrateStyle
#undef INTEGRATE_CLASS
else success = 0;
}
if (!success) {
sflag = 0;
if (0) return;
#define INTEGRATE_CLASS
#define IntegrateStyle(key,Class) \
else if (strcmp(style,#key) == 0) integrate = new Class(lmp,narg,arg);
#include "style_integrate.h"
#undef IntegrateStyle
#undef INTEGRATE_CLASS
else error->all("Illegal integrate style");
}
}
/* ---------------------------------------------------------------------- */
void Update::create_minimize(int narg, char **arg)
{
if (narg != 1) error->all("Illegal min_style command");
delete [] minimize_style;
delete minimize;
if (0) return; // dummy line to enable else-if macro expansion
#define MINIMIZE_CLASS
#define MinimizeStyle(key,Class) \
else if (strcmp(arg[0],#key) == 0) minimize = new Class(lmp);
#include "style_minimize.h"
#undef MINIMIZE_CLASS
else error->all("Illegal min_style command");
int n = strlen(arg[0]) + 1;
minimize_style = new char[n];
strcpy(minimize_style,arg[0]);
}
/* ----------------------------------------------------------------------
reset timestep from input script
do not allow dump files or a restart to be defined
do not allow any timestep-dependent fixes to be defined
do not allow any dynamic regions to be defined
reset eflag/vflag global so nothing will think eng/virial are current
reset invoked flags of computes,
so nothing will think they are current between runs
clear timestep list of computes that store future invocation times
------------------------------------------------------------------------- */
void Update::reset_timestep(int narg, char **arg)
{
if (narg != 1) error->all("Illegal reset_timestep command");
for (int i = 0; i < output->ndump; i++)
if (output->last_dump[i] >= 0)
error->all("Cannot reset timestep with dump file already written to");
if (output->restart && output->last_restart >= 0)
error->all("Cannot reset timestep with restart file already written");
for (int i = 0; i < modify->nfix; i++)
if (modify->fix[i]->time_depend)
error->all("Cannot reset timestep with a time-dependent fix defined");
for (int i = 0; i < domain->nregion; i++)
if (domain->regions[i]->dynamic_check())
error->all("Cannot reset timestep with a dynamic region defined");
eflag_global = vflag_global = -1;
for (int i = 0; i < modify->ncompute; i++) {
modify->compute[i]->invoked_scalar = -1;
modify->compute[i]->invoked_vector = -1;
modify->compute[i]->invoked_array = -1;
modify->compute[i]->invoked_peratom = -1;
modify->compute[i]->invoked_local = -1;
}
for (int i = 0; i < modify->ncompute; i++)
if (modify->compute[i]->timeflag) modify->compute[i]->clearstep();
ntimestep = ATOBIGINT(arg[0]);
if (ntimestep < 0) error->all("Timestep must be >= 0");
if (ntimestep > MAXBIGINT) error->all("Too big a timestep");
}
/* ----------------------------------------------------------------------
memory usage of update and integrate/minimize
------------------------------------------------------------------------- */
bigint Update::memory_usage()
{
bigint bytes = 0;
if (whichflag == 1) bytes += integrate->memory_usage();
else if (whichflag == 2) bytes += minimize->memory_usage();
return bytes;
}
diff --git a/src/variable.cpp b/src/variable.cpp
index 22286ee5d..d98897df6 100644
--- a/src/variable.cpp
+++ b/src/variable.cpp
@@ -1,3309 +1,3310 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "unistd.h"
#include "variable.h"
#include "universe.h"
#include "atom.h"
#include "update.h"
#include "group.h"
#include "domain.h"
#include "region.h"
#include "modify.h"
#include "compute.h"
#include "fix.h"
#include "output.h"
#include "thermo.h"
#include "random_mars.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define VARDELTA 4
#define MAXLEVEL 4
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
#define MYROUND(a) (( a-floor(a) ) >= .5) ? ceil(a) : floor(a)
enum{INDEX,LOOP,WORLD,UNIVERSE,ULOOP,STRING,EQUAL,ATOM};
enum{ARG,OP};
// customize by adding a function
enum{DONE,ADD,SUBTRACT,MULTIPLY,DIVIDE,CARAT,UNARY,
NOT,EQ,NE,LT,LE,GT,GE,AND,OR,
SQRT,EXP,LN,LOG,SIN,COS,TAN,ASIN,ACOS,ATAN,ATAN2,
RANDOM,NORMAL,CEIL,FLOOR,ROUND,RAMP,STAGGER,LOGFREQ,
VDISPLACE,SWIGGLE,CWIGGLE,GMASK,RMASK,GRMASK,
VALUE,ATOMARRAY,TYPEARRAY,INTARRAY};
// customize by adding a special function
enum{SUM,XMIN,XMAX,AVE,TRAP};
#define INVOKED_SCALAR 1
#define INVOKED_VECTOR 2
#define INVOKED_ARRAY 4
#define INVOKED_PERATOM 8
#define BIG 1.0e20
/* ---------------------------------------------------------------------- */
Variable::Variable(LAMMPS *lmp) : Pointers(lmp)
{
MPI_Comm_rank(world,&me);
nvar = maxvar = 0;
names = NULL;
style = NULL;
num = NULL;
which = NULL;
pad = NULL;
data = NULL;
randomequal = NULL;
randomatom = NULL;
precedence[DONE] = 0;
precedence[OR] = 1;
precedence[AND] = 2;
precedence[EQ] = precedence[NE] = 3;
precedence[LT] = precedence[LE] = precedence[GT] = precedence[GE] = 4;
precedence[ADD] = precedence[SUBTRACT] = 5;
precedence[MULTIPLY] = precedence[DIVIDE] = 6;
precedence[CARAT] = 7;
precedence[UNARY] = precedence[NOT] = 8;
PI = 4.0*atan(1.0);
}
/* ---------------------------------------------------------------------- */
Variable::~Variable()
{
for (int i = 0; i < nvar; i++) {
delete [] names[i];
if (style[i] == LOOP || style[i] == ULOOP) delete [] data[i][0];
else for (int j = 0; j < num[i]; j++) delete [] data[i][j];
delete [] data[i];
}
memory->sfree(names);
memory->destroy(style);
memory->destroy(num);
memory->destroy(which);
memory->destroy(pad);
memory->sfree(data);
delete randomequal;
delete randomatom;
}
/* ----------------------------------------------------------------------
called by variable command in input script
------------------------------------------------------------------------- */
void Variable::set(int narg, char **arg)
{
if (narg < 2) error->all("Illegal variable command");
// DELETE
// doesn't matter if variable no longer exists
if (strcmp(arg[1],"delete") == 0) {
if (narg != 2) error->all("Illegal variable command");
if (find(arg[0]) >= 0) remove(find(arg[0]));
return;
// INDEX
// num = listed args, which = 1st value, data = copied args
} else if (strcmp(arg[1],"index") == 0) {
if (narg < 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) extend();
style[nvar] = INDEX;
num[nvar] = narg - 2;
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(num[nvar],&arg[2],data[nvar]);
// LOOP
// 1 arg + pad: num = N, which = 1st value, data = single string
// 2 args + pad: num = N2, which = N1, data = single string
} else if (strcmp(arg[1],"loop") == 0) {
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) extend();
style[nvar] = LOOP;
int nfirst,nlast;
if (narg == 3 || (narg == 4 && strcmp(arg[3],"pad") == 0)) {
nfirst = 1;
nlast = atoi(arg[2]);
if (nlast <= 0) error->all("Illegal variable command");
if (narg == 4 && strcmp(arg[3],"pad") == 0) {
char digits[12];
sprintf(digits,"%d",nlast);
pad[nvar] = strlen(digits);
} else pad[nvar] = 0;
} else if (narg == 4 || (narg == 5 && strcmp(arg[4],"pad") == 0)) {
nfirst = atoi(arg[2]);
nlast = atoi(arg[3]);
if (nfirst > nlast || nlast <= 0) error->all("Illegal variable command");
if (narg == 5 && strcmp(arg[4],"pad") == 0) {
char digits[12];
sprintf(digits,"%d",nlast);
pad[nvar] = strlen(digits);
} else pad[nvar] = 0;
} else error->all("Illegal variable command");
num[nvar] = nlast;
which[nvar] = nfirst-1;
data[nvar] = new char*[1];
data[nvar][0] = NULL;
// WORLD
// num = listed args, which = partition this proc is in, data = copied args
// error check that num = # of worlds in universe
} else if (strcmp(arg[1],"world") == 0) {
if (narg < 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) extend();
style[nvar] = WORLD;
num[nvar] = narg - 2;
if (num[nvar] != universe->nworlds)
error->all("World variable count doesn't match # of partitions");
which[nvar] = universe->iworld;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(num[nvar],&arg[2],data[nvar]);
// UNIVERSE and ULOOP
// for UNIVERSE: num = listed args, data = copied args
// for ULOOP: num = N, data = single string
// which = partition this proc is in
// universe proc 0 creates lock file
// error check that all other universe/uloop variables are same length
} else if (strcmp(arg[1],"universe") == 0 || strcmp(arg[1],"uloop") == 0) {
if (strcmp(arg[1],"universe") == 0) {
if (narg < 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) extend();
style[nvar] = UNIVERSE;
num[nvar] = narg - 2;
+ pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(num[nvar],&arg[2],data[nvar]);
} else if (strcmp(arg[1],"uloop") == 0) {
if (narg < 3 || narg > 4 || (narg == 4 && strcmp(arg[3],"pad") != 0))
error->all("Illegal variable command");
if (find(arg[0]) >= 0) return;
if (nvar == maxvar) extend();
style[nvar] = ULOOP;
num[nvar] = atoi(arg[2]);
data[nvar] = new char*[1];
data[nvar][0] = NULL;
if (narg == 4) {
char digits[12];
sprintf(digits,"%d",num[nvar]);
pad[nvar] = strlen(digits);
} else pad[nvar] = 0;
}
if (num[nvar] < universe->nworlds)
error->all("Universe/uloop variable count < # of partitions");
which[nvar] = universe->iworld;
if (universe->me == 0) {
FILE *fp = fopen("tmp.lammps.variable","w");
fprintf(fp,"%d\n",universe->nworlds);
fclose(fp);
}
for (int jvar = 0; jvar < nvar; jvar++)
if (num[jvar] && (style[jvar] == UNIVERSE || style[jvar] == ULOOP) &&
num[nvar] != num[jvar])
error->all("All universe/uloop variables must have same # of values");
// STRING
// remove pre-existing var if also style STRING (allows it to be reset)
// num = 1, which = 1st value
// data = 1 value, string to eval
} else if (strcmp(arg[1],"string") == 0) {
if (narg != 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) {
if (style[find(arg[0])] != STRING)
error->all("Cannot redefine variable as a different style");
remove(find(arg[0]));
}
if (nvar == maxvar) extend();
style[nvar] = STRING;
num[nvar] = 1;
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
// EQUAL
// remove pre-existing var if also style EQUAL (allows it to be reset)
// num = 2, which = 1st value
// data = 2 values, 1st is string to eval, 2nd is filled on retrieval
} else if (strcmp(arg[1],"equal") == 0) {
if (narg != 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) {
if (style[find(arg[0])] != EQUAL)
error->all("Cannot redefine variable as a different style");
remove(find(arg[0]));
}
if (nvar == maxvar) extend();
style[nvar] = EQUAL;
num[nvar] = 2;
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
data[nvar][1] = NULL;
// ATOM
// remove pre-existing var if also style ATOM (allows it to be reset)
// num = 1, which = 1st value
// data = 1 value, string to eval
} else if (strcmp(arg[1],"atom") == 0) {
if (narg != 3) error->all("Illegal variable command");
if (find(arg[0]) >= 0) {
if (style[find(arg[0])] != ATOM)
error->all("Cannot redefine variable as a different style");
remove(find(arg[0]));
}
if (nvar == maxvar) extend();
style[nvar] = ATOM;
num[nvar] = 1;
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
} else error->all("Illegal variable command");
// set name of variable
// must come at end, since STRING/EQUAL/ATOM reset may have removed name
// name must be all alphanumeric chars or underscores
int n = strlen(arg[0]) + 1;
names[nvar] = new char[n];
strcpy(names[nvar],arg[0]);
for (int i = 0; i < n-1; i++)
if (!isalnum(names[nvar][i]) && names[nvar][i] != '_')
error->all("Variable name must be alphanumeric or "
"underscore characters");
nvar++;
}
/* ----------------------------------------------------------------------
INDEX variable created by command-line argument
make it INDEX rather than STRING so cannot be re-defined in input script
------------------------------------------------------------------------- */
void Variable::set(char *name, int narg, char **arg)
{
char **newarg = new char*[2+narg];
newarg[0] = name;
newarg[1] = (char *) "index";
for (int i = 0; i < narg; i++) newarg[2+i] = arg[i];
set(2+narg,newarg);
delete [] newarg;
}
/* ----------------------------------------------------------------------
increment variable(s)
return 0 if OK if successfully incremented
return 1 if any variable is exhausted, free the variable to allow re-use
------------------------------------------------------------------------- */
int Variable::next(int narg, char **arg)
{
int ivar;
if (narg == 0) error->all("Illegal next command");
// check that variables exist and are all the same style
// exception: UNIVERSE and ULOOP variables can be mixed in same next command
for (int iarg = 0; iarg < narg; iarg++) {
ivar = find(arg[iarg]);
if (ivar == -1) error->all("Invalid variable in next command");
if (style[ivar] == ULOOP && style[find(arg[0])] == UNIVERSE) continue;
else if (style[ivar] == UNIVERSE && style[find(arg[0])] == ULOOP) continue;
else if (style[ivar] != style[find(arg[0])])
error->all("All variables in next command must be same style");
}
// invalid styles STRING or EQUAL or WORLD or ATOM
int istyle = style[find(arg[0])];
if (istyle == STRING || istyle == EQUAL || istyle == WORLD || istyle == ATOM)
error->all("Invalid variable style with next command");
// increment all variables in list
// if any variable is exhausted, set flag = 1 and remove var to allow re-use
int flag = 0;
if (istyle == INDEX || istyle == LOOP) {
for (int iarg = 0; iarg < narg; iarg++) {
ivar = find(arg[iarg]);
which[ivar]++;
if (which[ivar] >= num[ivar]) {
flag = 1;
remove(ivar);
}
}
} else if (istyle == UNIVERSE || istyle == ULOOP) {
// wait until lock file can be created and owned by proc 0 of this world
// read next available index and Bcast it within my world
// set all variables in list to nextindex
int nextindex;
if (me == 0) {
while (1) {
if (!rename("tmp.lammps.variable","tmp.lammps.variable.lock")) break;
usleep(100000);
}
FILE *fp = fopen("tmp.lammps.variable.lock","r");
fscanf(fp,"%d",&nextindex);
fclose(fp);
fp = fopen("tmp.lammps.variable.lock","w");
fprintf(fp,"%d\n",nextindex+1);
fclose(fp);
rename("tmp.lammps.variable.lock","tmp.lammps.variable");
if (universe->uscreen)
fprintf(universe->uscreen,
"Increment via next: value %d on partition %d\n",
nextindex+1,universe->iworld);
if (universe->ulogfile)
fprintf(universe->ulogfile,
"Increment via next: value %d on partition %d\n",
nextindex+1,universe->iworld);
}
MPI_Bcast(&nextindex,1,MPI_INT,0,world);
for (int iarg = 0; iarg < narg; iarg++) {
ivar = find(arg[iarg]);
which[ivar] = nextindex;
if (which[ivar] >= num[ivar]) {
flag = 1;
remove(ivar);
}
}
}
return flag;
}
/* ----------------------------------------------------------------------
return ptr to the data text associated with a variable
if INDEX or WORLD or UNIVERSE or STRING var, return ptr to stored string
if LOOP or ULOOP var, write int to data[0] and return ptr to string
if EQUAL var, evaluate variable and put result in str
if ATOM var, return NULL
return NULL if no variable or which is bad, caller must respond
------------------------------------------------------------------------- */
char *Variable::retrieve(char *name)
{
int ivar = find(name);
if (ivar == -1) return NULL;
if (which[ivar] >= num[ivar]) return NULL;
char *str;
if (style[ivar] == INDEX || style[ivar] == WORLD ||
style[ivar] == UNIVERSE || style[ivar] == STRING) {
str = data[ivar][which[ivar]];
} else if (style[ivar] == LOOP || style[ivar] == ULOOP) {
char result[16];
if (pad[ivar] == 0) sprintf(result,"%d",which[ivar]+1);
else {
char padstr[16];
sprintf(padstr,"%%0%dd",pad[ivar]);
sprintf(result,padstr,which[ivar]+1);
}
int n = strlen(result) + 1;
delete [] data[ivar][0];
data[ivar][0] = new char[n];
strcpy(data[ivar][0],result);
str = data[ivar][0];
} else if (style[ivar] == EQUAL) {
char result[32];
double answer = evaluate(data[ivar][0],NULL);
sprintf(result,"%.10g",answer);
int n = strlen(result) + 1;
if (data[ivar][1]) delete [] data[ivar][1];
data[ivar][1] = new char[n];
strcpy(data[ivar][1],result);
str = data[ivar][1];
} else if (style[ivar] == ATOM) return NULL;
return str;
}
/* ----------------------------------------------------------------------
return result of equal-style variable evaluation
------------------------------------------------------------------------- */
double Variable::compute_equal(int ivar)
{
return evaluate(data[ivar][0],NULL);
}
/* ----------------------------------------------------------------------
compute result of atom-style variable evaluation
only computed for atoms in igroup, else result is 0.0
answers are placed every stride locations into result
if sumflag, add variable values to existing result
------------------------------------------------------------------------- */
void Variable::compute_atom(int ivar, int igroup,
double *result, int stride, int sumflag)
{
Tree *tree;
double tmp = evaluate(data[ivar][0],&tree);
tmp = collapse_tree(tree);
int groupbit = group->bitmask[igroup];
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (sumflag == 0) {
int m = 0;
for (int i = 0; i < nlocal; i++) {
- if (mask[i] && groupbit) result[m] = eval_tree(tree,i);
+ if (mask[i] & groupbit) result[m] = eval_tree(tree,i);
else result[m] = 0.0;
m += stride;
}
} else {
int m = 0;
for (int i = 0; i < nlocal; i++) {
if (mask[i] && groupbit) result[m] += eval_tree(tree,i);
m += stride;
}
}
free_tree(tree);
}
/* ----------------------------------------------------------------------
search for name in list of variables names
return index or -1 if not found
------------------------------------------------------------------------- */
int Variable::find(char *name)
{
for (int i = 0; i < nvar; i++)
if (strcmp(name,names[i]) == 0) return i;
return -1;
}
/* ----------------------------------------------------------------------
return 1 if variable is EQUAL style, 0 if not
------------------------------------------------------------------------- */
int Variable::equalstyle(int ivar)
{
if (style[ivar] == EQUAL) return 1;
return 0;
}
/* ----------------------------------------------------------------------
return 1 if variable is ATOM style, 0 if not
------------------------------------------------------------------------- */
int Variable::atomstyle(int ivar)
{
if (style[ivar] == ATOM) return 1;
return 0;
}
/* ----------------------------------------------------------------------
remove Nth variable from list and compact list
------------------------------------------------------------------------- */
void Variable::remove(int n)
{
delete [] names[n];
if (style[n] == LOOP || style[n] == ULOOP) delete [] data[n][0];
else for (int i = 0; i < num[n]; i++) delete [] data[n][i];
delete [] data[n];
for (int i = n+1; i < nvar; i++) {
names[i-1] = names[i];
style[i-1] = style[i];
num[i-1] = num[i];
which[i-1] = which[i];
pad[i-1] = pad[i];
data[i-1] = data[i];
}
nvar--;
}
/* ----------------------------------------------------------------------
make space in arrays for new variable
------------------------------------------------------------------------- */
void Variable::extend()
{
maxvar += VARDELTA;
names = (char **)
memory->srealloc(names,maxvar*sizeof(char *),"var:names");
memory->grow(style,maxvar,"var:style");
memory->grow(num,maxvar,"var:num");
memory->grow(which,maxvar,"var:which");
memory->grow(pad,maxvar,"var:pad");
data = (char ***)
memory->srealloc(data,maxvar*sizeof(char **),"var:data");
}
/* ----------------------------------------------------------------------
copy narg strings from **from to **to, and allocate space for them
------------------------------------------------------------------------- */
void Variable::copy(int narg, char **from, char **to)
{
int n;
for (int i = 0; i < narg; i++) {
n = strlen(from[i]) + 1;
to[i] = new char[n];
strcpy(to[i],from[i]);
}
}
/* ----------------------------------------------------------------------
recursive evaluation of a string str
str is an equal-style or atom-style formula containing one or more items:
number = 0.0, -5.45, 2.8e-4, ...
constant = PI
thermo keyword = ke, vol, atoms, ...
math operation = (),-x,x+y,x-y,x*y,x/y,x^y,
x==y,x!=y,x<y,x<=y,x>y,x>=y,x&&y,x||y,
sqrt(x),exp(x),ln(x),log(x),
sin(x),cos(x),tan(x),asin(x),atan2(y,x),...
group function = count(group), mass(group), xcm(group,x), ...
special function = sum(x),min(x), ...
atom value = x[i], y[i], vx[i], ...
atom vector = x, y, vx, ...
compute = c_ID, c_ID[i], c_ID[i][j]
fix = f_ID, f_ID[i], f_ID[i][j]
variable = v_name, v_name[i]
equal-style variables passes in tree = NULL:
evaluate the formula, return result as a double
atom-style variable passes in tree = non-NULL:
parse the formula but do not evaluate it
create a parse tree and return it
------------------------------------------------------------------------- */
double Variable::evaluate(char *str, Tree **tree)
{
int op,opprevious;
double value1,value2;
char onechar;
char *ptr;
double argstack[MAXLEVEL];
Tree *treestack[MAXLEVEL];
int opstack[MAXLEVEL];
int nargstack = 0;
int ntreestack = 0;
int nopstack = 0;
int i = 0;
int expect = ARG;
while (1) {
onechar = str[i];
// whitespace: just skip
if (isspace(onechar)) i++;
// ----------------
// parentheses: recursively evaluate contents of parens
// ----------------
else if (onechar == '(') {
if (expect == OP) error->all("Invalid syntax in variable formula");
expect = OP;
char *contents;
i = find_matching_paren(str,i,contents);
i++;
// evaluate contents and push on stack
if (tree) {
Tree *newtree;
double tmp = evaluate(contents,&newtree);
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = evaluate(contents,NULL);
delete [] contents;
// ----------------
// number: push value onto stack
// ----------------
} else if (isdigit(onechar) || onechar == '.') {
if (expect == OP) error->all("Invalid syntax in variable formula");
expect = OP;
// istop = end of number, including scientific notation
int istart = i;
while (isdigit(str[i]) || str[i] == '.') i++;
if (str[i] == 'e' || str[i] == 'E') {
i++;
if (str[i] == '+' || str[i] == '-') i++;
while (isdigit(str[i])) i++;
}
int istop = i - 1;
int n = istop - istart + 1;
char *number = new char[n+1];
strncpy(number,&str[istart],n);
number[n] = '\0';
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = atof(number);
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = atof(number);
delete [] number;
// ----------------
// letter: c_ID, c_ID[], c_ID[][], f_ID, f_ID[], f_ID[][],
// v_name, v_name[], exp(), xcm(,), x, x[], PI, vol
// ----------------
} else if (isalpha(onechar)) {
if (expect == OP) error->all("Invalid syntax in variable formula");
expect = OP;
// istop = end of word
// word = all alphanumeric or underscore
int istart = i;
while (isalnum(str[i]) || str[i] == '_') i++;
int istop = i-1;
int n = istop - istart + 1;
char *word = new char[n+1];
strncpy(word,&str[istart],n);
word[n] = '\0';
// ----------------
// compute
// ----------------
if (strncmp(word,"c_",2) == 0) {
if (domain->box_exist == 0)
error->all("Variable evaluation before simulation box is defined");
n = strlen(word) - 2 + 1;
char *id = new char[n];
strcpy(id,&word[2]);
int icompute = modify->find_compute(id);
if (icompute < 0) error->all("Invalid compute ID in variable formula");
Compute *compute = modify->compute[icompute];
delete [] id;
// parse zero or one or two trailing brackets
// point i beyond last bracket
// nbracket = # of bracket pairs
// index1,index2 = int inside each bracket pair
int nbracket,index1,index2;
if (str[i] != '[') nbracket = 0;
else {
nbracket = 1;
ptr = &str[i];
index1 = int_between_brackets(ptr);
i = ptr-str+1;
if (str[i] == '[') {
nbracket = 2;
ptr = &str[i];
index2 = int_between_brackets(ptr);
i = ptr-str+1;
}
}
// c_ID = scalar from global scalar
if (nbracket == 0 && compute->scalar_flag) {
if (update->whichflag == 0) {
if (compute->invoked_scalar != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_SCALAR)) {
compute->compute_scalar();
compute->invoked_flag |= INVOKED_SCALAR;
}
value1 = compute->scalar;
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// c_ID[i] = scalar from global vector
} else if (nbracket == 1 && compute->vector_flag) {
if (index1 > compute->size_vector)
error->all("Variable formula compute vector "
"is accessed out-of-range");
if (update->whichflag == 0) {
if (compute->invoked_vector != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_VECTOR)) {
compute->compute_vector();
compute->invoked_flag |= INVOKED_VECTOR;
}
value1 = compute->vector[index1-1];
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// c_ID[i][j] = scalar from global array
} else if (nbracket == 2 && compute->array_flag) {
if (index1 > compute->size_array_rows)
error->all("Variable formula compute array "
"is accessed out-of-range");
if (index2 > compute->size_array_cols)
error->all("Variable formula compute array "
"is accessed out-of-range");
if (update->whichflag == 0) {
if (compute->invoked_array != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_ARRAY)) {
compute->compute_array();
compute->invoked_flag |= INVOKED_ARRAY;
}
value1 = compute->array[index1-1][index2-1];
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// c_ID[i] = scalar from per-atom vector
} else if (nbracket == 1 && compute->peratom_flag &&
compute->size_peratom_cols == 0) {
if (update->whichflag == 0) {
if (compute->invoked_peratom != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
peratom2global(1,NULL,compute->vector_atom,1,index1,
tree,treestack,ntreestack,argstack,nargstack);
// c_ID[i][j] = scalar from per-atom array
} else if (nbracket == 2 && compute->peratom_flag &&
compute->size_peratom_cols > 0) {
if (index2 > compute->size_peratom_cols)
error->all("Variable formula compute array "
"is accessed out-of-range");
if (update->whichflag == 0) {
if (compute->invoked_peratom != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
peratom2global(1,NULL,&compute->array_atom[0][index2-1],
compute->size_peratom_cols,index1,
tree,treestack,ntreestack,argstack,nargstack);
// c_ID = vector from per-atom vector
} else if (nbracket == 0 && compute->peratom_flag &&
compute->size_peratom_cols == 0) {
if (tree == NULL)
error->all("Per-atom compute in equal-style variable formula");
if (update->whichflag == 0) {
if (compute->invoked_peratom != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
Tree *newtree = new Tree();
newtree->type = ATOMARRAY;
newtree->array = compute->vector_atom;
newtree->nstride = 1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
// c_ID[i] = vector from per-atom array
} else if (nbracket == 1 && compute->peratom_flag &&
compute->size_peratom_cols > 0) {
if (tree == NULL)
error->all("Per-atom compute in equal-style variable formula");
if (index1 > compute->size_peratom_cols)
error->all("Variable formula compute array "
"is accessed out-of-range");
if (update->whichflag == 0) {
if (compute->invoked_peratom != update->ntimestep)
error->all("Compute used in variable between runs "
"is not current");
} else if (!(compute->invoked_flag & INVOKED_PERATOM)) {
compute->compute_peratom();
compute->invoked_flag |= INVOKED_PERATOM;
}
Tree *newtree = new Tree();
newtree->type = ATOMARRAY;
newtree->array = &compute->array_atom[0][index1-1];
newtree->nstride = compute->size_peratom_cols;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else error->all("Mismatched compute in variable formula");
// ----------------
// fix
// ----------------
} else if (strncmp(word,"f_",2) == 0) {
if (domain->box_exist == 0)
error->all("Variable evaluation before simulation box is defined");
n = strlen(word) - 2 + 1;
char *id = new char[n];
strcpy(id,&word[2]);
int ifix = modify->find_fix(id);
if (ifix < 0) error->all("Invalid fix ID in variable formula");
Fix *fix = modify->fix[ifix];
delete [] id;
// parse zero or one or two trailing brackets
// point i beyond last bracket
// nbracket = # of bracket pairs
// index1,index2 = int inside each bracket pair
int nbracket,index1,index2;
if (str[i] != '[') nbracket = 0;
else {
nbracket = 1;
ptr = &str[i];
index1 = int_between_brackets(ptr);
i = ptr-str+1;
if (str[i] == '[') {
nbracket = 2;
ptr = &str[i];
index2 = int_between_brackets(ptr);
i = ptr-str+1;
}
}
// f_ID = scalar from global scalar
if (nbracket == 0 && fix->scalar_flag) {
if (update->whichflag > 0 && update->ntimestep % fix->global_freq)
error->all("Fix in variable not computed at compatible time");
value1 = fix->compute_scalar();
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// f_ID[i] = scalar from global vector
} else if (nbracket == 1 && fix->vector_flag) {
if (index1 > fix->size_vector)
error->all("Variable formula fix vector is accessed out-of-range");
if (update->whichflag > 0 && update->ntimestep % fix->global_freq)
error->all("Fix in variable not computed at compatible time");
value1 = fix->compute_vector(index1-1);
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// f_ID[i][j] = scalar from global array
} else if (nbracket == 2 && fix->array_flag) {
if (index1 > fix->size_array_rows)
error->all("Variable formula fix array is accessed out-of-range");
if (index2 > fix->size_array_cols)
error->all("Variable formula fix array is accessed out-of-range");
if (update->whichflag > 0 && update->ntimestep % fix->global_freq)
error->all("Fix in variable not computed at compatible time");
value1 = fix->compute_array(index1-1,index2-1);
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// f_ID[i] = scalar from per-atom vector
} else if (nbracket == 1 && fix->peratom_flag &&
fix->size_peratom_cols == 0) {
if (update->whichflag > 0 &&
update->ntimestep % fix->peratom_freq)
error->all("Fix in variable not computed at compatible time");
peratom2global(1,NULL,fix->vector_atom,1,index1,
tree,treestack,ntreestack,argstack,nargstack);
// f_ID[i][j] = scalar from per-atom array
} else if (nbracket == 2 && fix->peratom_flag &&
fix->size_peratom_cols > 0) {
if (index2 > fix->size_peratom_cols)
error->all("Variable formula fix array is accessed out-of-range");
if (update->whichflag > 0 &&
update->ntimestep % fix->peratom_freq)
error->all("Fix in variable not computed at compatible time");
peratom2global(1,NULL,&fix->array_atom[0][index2-1],
fix->size_peratom_cols,index1,
tree,treestack,ntreestack,argstack,nargstack);
// f_ID = vector from per-atom vector
} else if (nbracket == 0 && fix->peratom_flag &&
fix->size_peratom_cols == 0) {
if (tree == NULL)
error->all("Per-atom fix in equal-style variable formula");
if (update->whichflag > 0 &&
update->ntimestep % fix->peratom_freq)
error->all("Fix in variable not computed at compatible time");
Tree *newtree = new Tree();
newtree->type = ATOMARRAY;
newtree->array = fix->vector_atom;
newtree->nstride = 1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
// f_ID[i] = vector from per-atom array
} else if (nbracket == 1 && fix->peratom_flag &&
fix->size_peratom_cols > 0) {
if (tree == NULL)
error->all("Per-atom fix in equal-style variable formula");
if (index1 > fix->size_peratom_cols)
error->all("Variable formula fix array is accessed out-of-range");
if (update->whichflag > 0 &&
update->ntimestep % fix->peratom_freq)
error->all("Fix in variable not computed at compatible time");
Tree *newtree = new Tree();
newtree->type = ATOMARRAY;
newtree->array = &fix->array_atom[0][index1-1];
newtree->nstride = fix->size_peratom_cols;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else error->all("Mismatched fix in variable formula");
// ----------------
// variable
// ----------------
} else if (strncmp(word,"v_",2) == 0) {
n = strlen(word) - 2 + 1;
char *id = new char[n];
strcpy(id,&word[2]);
int ivar = find(id);
if (ivar < 0) error->all("Invalid variable name in variable formula");
// parse zero or one trailing brackets
// point i beyond last bracket
// nbracket = # of bracket pairs
// index = int inside bracket
int nbracket,index;
if (str[i] != '[') nbracket = 0;
else {
nbracket = 1;
ptr = &str[i];
index = int_between_brackets(ptr);
i = ptr-str+1;
}
// v_name = scalar from non atom-style global scalar
if (nbracket == 0 && style[ivar] != ATOM) {
char *var = retrieve(id);
if (var == NULL)
error->all("Invalid variable evaluation in variable formula");
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = atof(var);
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = atof(var);
// v_name = vector from atom-style per-atom vector
} else if (nbracket == 0 && style[ivar] == ATOM) {
if (tree == NULL)
error->all("Atom-style variable in equal-style variable formula");
Tree *newtree;
double tmp = evaluate(data[ivar][0],&newtree);
treestack[ntreestack++] = newtree;
// v_name[N] = scalar from atom-style per-atom vector
// compute the per-atom variable in result
// use peratom2global to extract single value from result
} else if (nbracket && style[ivar] == ATOM) {
double *result;
memory->create(result,atom->nlocal,"variable:result");
compute_atom(ivar,0,result,1,0);
peratom2global(1,NULL,result,1,index,
tree,treestack,ntreestack,argstack,nargstack);
memory->destroy(result);
} else error->all("Mismatched variable in variable formula");
delete [] id;
// ----------------
// math/group/special function or atom value/vector or
// constant or thermo keyword
// ----------------
} else {
// ----------------
// math or group or special function
// ----------------
if (str[i] == '(') {
char *contents;
i = find_matching_paren(str,i,contents);
i++;
if (math_function(word,contents,tree,
treestack,ntreestack,argstack,nargstack));
else if (group_function(word,contents,tree,
treestack,ntreestack,argstack,nargstack));
else if (special_function(word,contents,tree,
treestack,ntreestack,argstack,nargstack));
else error->all("Invalid math/group/special function "
"in variable formula");
delete [] contents;
// ----------------
// atom value
// ----------------
} else if (str[i] == '[') {
if (domain->box_exist == 0)
error->all("Variable evaluation before simulation box is defined");
ptr = &str[i];
int id = int_between_brackets(ptr);
i = ptr-str+1;
peratom2global(0,word,NULL,0,id,
tree,treestack,ntreestack,argstack,nargstack);
// ----------------
// atom vector
// ----------------
} else if (is_atom_vector(word)) {
if (domain->box_exist == 0)
error->all("Variable evaluation before simulation box is defined");
atom_vector(word,tree,treestack,ntreestack);
// ----------------
// constant
// ----------------
} else if (is_constant(word)) {
value1 = constant(word);
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
// ----------------
// thermo keyword
// ----------------
} else {
if (domain->box_exist == 0)
error->all("Variable evaluation before simulation box is defined");
int flag = output->thermo->evaluate_keyword(word,&value1);
if (flag) error->all("Invalid thermo keyword in variable formula");
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value1;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value1;
}
}
delete [] word;
// ----------------
// math operator, including end-of-string
// ----------------
} else if (strchr("+-*/^<>=!&|\0",onechar)) {
if (onechar == '+') op = ADD;
else if (onechar == '-') op = SUBTRACT;
else if (onechar == '*') op = MULTIPLY;
else if (onechar == '/') op = DIVIDE;
else if (onechar == '^') op = CARAT;
else if (onechar == '=') {
if (str[i+1] != '=') error->all("Invalid syntax in variable formula");
op = EQ;
i++;
} else if (onechar == '!') {
if (str[i+1] == '=') {
op = NE;
i++;
} else op = NOT;
} else if (onechar == '<') {
if (str[i+1] != '=') op = LT;
else {
op = LE;
i++;
}
} else if (onechar == '>') {
if (str[i+1] != '=') op = GT;
else {
op = GE;
i++;
}
} else if (onechar == '&') {
if (str[i+1] != '&') error->all("Invalid syntax in variable formula");
op = AND;
i++;
} else if (onechar == '|') {
if (str[i+1] != '|') error->all("Invalid syntax in variable formula");
op = OR;
i++;
} else op = DONE;
i++;
if (op == SUBTRACT && expect == ARG) {
opstack[nopstack++] = UNARY;
continue;
}
if (op == NOT && expect == ARG) {
opstack[nopstack++] = op;
continue;
}
if (expect == ARG) error->all("Invalid syntax in variable formula");
expect = ARG;
// evaluate stack as deep as possible while respecting precedence
// before pushing current op onto stack
while (nopstack && precedence[opstack[nopstack-1]] >= precedence[op]) {
opprevious = opstack[--nopstack];
if (tree) {
Tree *newtree = new Tree();
newtree->type = opprevious;
if (opprevious == UNARY) {
newtree->left = treestack[--ntreestack];
newtree->middle = newtree->right = NULL;
} else {
newtree->right = treestack[--ntreestack];
newtree->middle = NULL;
newtree->left = treestack[--ntreestack];
}
treestack[ntreestack++] = newtree;
} else {
value2 = argstack[--nargstack];
if (opprevious != UNARY && opprevious != NOT)
value1 = argstack[--nargstack];
if (opprevious == ADD)
argstack[nargstack++] = value1 + value2;
else if (opprevious == SUBTRACT)
argstack[nargstack++] = value1 - value2;
else if (opprevious == MULTIPLY)
argstack[nargstack++] = value1 * value2;
else if (opprevious == DIVIDE) {
if (value2 == 0.0) error->all("Divide by 0 in variable formula");
argstack[nargstack++] = value1 / value2;
} else if (opprevious == CARAT) {
if (value2 == 0.0) error->all("Power by 0 in variable formula");
argstack[nargstack++] = pow(value1,value2);
} else if (opprevious == UNARY) {
argstack[nargstack++] = -value2;
} else if (opprevious == NOT) {
if (value2 == 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == EQ) {
if (value1 == value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == NE) {
if (value1 != value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == LT) {
if (value1 < value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == LE) {
if (value1 <= value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == GT) {
if (value1 > value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == GE) {
if (value1 >= value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == AND) {
if (value1 != 0.0 && value2 != 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == OR) {
if (value1 != 0.0 || value2 != 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
}
}
}
// if end-of-string, break out of entire formula evaluation loop
if (op == DONE) break;
// push current operation onto stack
opstack[nopstack++] = op;
} else error->all("Invalid syntax in variable formula");
}
if (nopstack) error->all("Invalid syntax in variable formula");
// for atom-style variable, return remaining tree
// for equal-style variable, return remaining arg
if (tree) {
if (ntreestack != 1) error->all("Invalid syntax in variable formula");
*tree = treestack[0];
return 0.0;
} else {
if (nargstack != 1) error->all("Invalid syntax in variable formula");
return argstack[0];
}
}
/* ----------------------------------------------------------------------
one-time collapse of an atom-style variable parse tree
tree was created by one-time parsing of formula string via evaulate()
only keep tree nodes that depend on ATOMARRAY, TYPEARRAY, INTARRAY
remainder is converted to single VALUE
this enables optimal eval_tree loop over atoms
customize by adding a function:
sqrt(),exp(),ln(),log(),sin(),cos(),tan(),asin(),acos(),atan(),
atan2(y,x),random(x,y,z),normal(x,y,z),ceil(),floor(),round(),
ramp(x,y),stagger(x,y),logfreq(x,y,z),
vdisplace(x,y),swiggle(x,y,z),cwiggle(x,y,z),
gmask(x),rmask(x),grmask(x,y)
---------------------------------------------------------------------- */
double Variable::collapse_tree(Tree *tree)
{
double arg1,arg2,arg3;
if (tree->type == VALUE) return tree->value;
if (tree->type == ATOMARRAY) return 0.0;
if (tree->type == TYPEARRAY) return 0.0;
if (tree->type == INTARRAY) return 0.0;
if (tree->type == ADD) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = arg1 + arg2;
return tree->value;
}
if (tree->type == SUBTRACT) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = arg1 - arg2;
return tree->value;
}
if (tree->type == MULTIPLY) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = arg1 * arg2;
return tree->value;
}
if (tree->type == DIVIDE) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg2 == 0.0) error->one("Divide by 0 in variable formula");
tree->value = arg1 / arg2;
return tree->value;
}
if (tree->type == CARAT) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg2 == 0.0) error->one("Power by 0 in variable formula");
tree->value = pow(arg1,arg2);
return tree->value;
}
if (tree->type == UNARY) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = -arg1;
return tree->value;
}
if (tree->type == NOT) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 == 0.0) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == EQ) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 == arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == NE) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 != arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == LT) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 < arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == LE) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 <= arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == GT) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 > arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == GE) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 >= arg2) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == AND) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 != 0.0 && arg2 != 0.0) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == OR) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 != 0.0 || arg2 != 0.0) tree->value = 1.0;
else tree->value = 0.0;
return tree->value;
}
if (tree->type == SQRT) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 < 0.0) error->one("Sqrt of negative value in variable formula");
tree->value = sqrt(arg1);
return tree->value;
}
if (tree->type == EXP) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = exp(arg1);
return tree->value;
}
if (tree->type == LN) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 <= 0.0)
error->one("Log of zero/negative value in variable formula");
tree->value = log(arg1);
return tree->value;
}
if (tree->type == LOG) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 <= 0.0)
error->one("Log of zero/negative value in variable formula");
tree->value = log10(arg1);
return tree->value;
}
if (tree->type == SIN) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = sin(arg1);
return tree->value;
}
if (tree->type == COS) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = cos(arg1);
return tree->value;
}
if (tree->type == TAN) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = tan(arg1);
return tree->value;
}
if (tree->type == ASIN) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 < -1.0 || arg1 > 1.0)
error->one("Arcsin of invalid value in variable formula");
tree->value = asin(arg1);
return tree->value;
}
if (tree->type == ACOS) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg1 < -1.0 || arg1 > 1.0)
error->one("Arccos of invalid value in variable formula");
tree->value = acos(arg1);
return tree->value;
}
if (tree->type == ATAN) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = atan(arg1);
return tree->value;
}
if (tree->type == ATAN2) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = atan2(arg1,arg2);
return tree->value;
}
// random() or normal() do not become a single collapsed value
if (tree->type == RANDOM) {
double lower = collapse_tree(tree->left);
double upper = collapse_tree(tree->middle);
if (randomatom == NULL) {
int seed = static_cast<int> (collapse_tree(tree->right));
if (seed <= 0) error->one("Invalid math function in variable formula");
randomatom = new RanMars(lmp,seed+me);
}
return 0.0;
}
if (tree->type == NORMAL) {
double mu = collapse_tree(tree->left);
double sigma = collapse_tree(tree->middle);
if (sigma < 0.0) error->one("Invalid math function in variable formula");
if (randomatom == NULL) {
int seed = static_cast<int> (collapse_tree(tree->right));
if (seed <= 0) error->one("Invalid math function in variable formula");
randomatom = new RanMars(lmp,seed+me);
}
return 0.0;
}
if (tree->type == CEIL) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = ceil(arg1);
return tree->value;
}
if (tree->type == FLOOR) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = floor(arg1);
return tree->value;
}
if (tree->type == ROUND) {
arg1 = collapse_tree(tree->left);
if (tree->left->type != VALUE) return 0.0;
tree->type = VALUE;
tree->value = MYROUND(arg1);
return tree->value;
}
if (tree->type == RAMP) {
arg1 = collapse_tree(tree->left);
arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
tree->value = arg1 + delta*(arg2-arg1);
return tree->value;
}
if (tree->type == STAGGER) {
int ivalue1 = static_cast<int> (collapse_tree(tree->left));
int ivalue2 = static_cast<int> (collapse_tree(tree->right));
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue1 <= ivalue2)
error->one("Invalid math function in variable formula");
int lower = update->ntimestep/ivalue1 * ivalue1;
int delta = update->ntimestep - lower;
if (delta < ivalue2) tree->value = lower+ivalue2;
else tree->value = lower+ivalue1;
return tree->value;
}
if (tree->type == LOGFREQ) {
int ivalue1 = static_cast<int> (collapse_tree(tree->left));
int ivalue2 = static_cast<int> (collapse_tree(tree->middle));
int ivalue3 = static_cast<int> (collapse_tree(tree->right));
if (tree->left->type != VALUE || tree->middle->type != VALUE ||
tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 || ivalue2 >= ivalue3)
error->one("Invalid math function in variable formula");
if (update->ntimestep < ivalue1) tree->value = ivalue1;
else {
int lower = ivalue1;
while (update->ntimestep >= ivalue3*lower) lower *= ivalue3;
int multiple = update->ntimestep/lower;
if (multiple < ivalue2) tree->value = (multiple+1)*lower;
else tree->value = lower*ivalue3;
}
return tree->value;
}
if (tree->type == VDISPLACE) {
double arg1 = collapse_tree(tree->left);
double arg2 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
double delta = update->ntimestep - update->beginstep;
tree->value = arg1 + arg2*delta*update->dt;
return tree->value;
}
if (tree->type == SWIGGLE) {
double arg1 = collapse_tree(tree->left);
double arg2 = collapse_tree(tree->middle);
double arg3 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->middle->type != VALUE ||
tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg3 == 0.0) error->one("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/arg3;
tree->value = arg1 + arg2*sin(omega*delta*update->dt);
return tree->value;
}
if (tree->type == CWIGGLE) {
double arg1 = collapse_tree(tree->left);
double arg2 = collapse_tree(tree->middle);
double arg3 = collapse_tree(tree->right);
if (tree->left->type != VALUE || tree->middle->type != VALUE ||
tree->right->type != VALUE) return 0.0;
tree->type = VALUE;
if (arg3 == 0.0) error->one("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/arg3;
tree->value = arg1 + arg2*(1.0-cos(omega*delta*update->dt));
return tree->value;
}
// mask functions do not become a single collapsed value
if (tree->type == GMASK) return 0.0;
if (tree->type == RMASK) return 0.0;
if (tree->type == GRMASK) return 0.0;
return 0.0;
}
/* ----------------------------------------------------------------------
evaluate an atom-style variable parse tree for atom I
tree was created by one-time parsing of formula string via evaulate()
customize by adding a function:
sqrt(),exp(),ln(),log(),sin(),cos(),tan(),asin(),acos(),atan(),
atan2(y,x),random(x,y,z),normal(x,y,z),ceil(),floor(),round(),
ramp(x,y),stagger(x,y),logfreq(x,y,z),
vdisplace(x,y),swiggle(x,y,z),cwiggle(x,y,z),
gmask(x),rmask(x),grmask(x,y)
---------------------------------------------------------------------- */
double Variable::eval_tree(Tree *tree, int i)
{
double arg,arg1,arg2,arg3;
if (tree->type == VALUE) return tree->value;
if (tree->type == ATOMARRAY) return tree->array[i*tree->nstride];
if (tree->type == TYPEARRAY) return tree->array[atom->type[i]];
if (tree->type == INTARRAY) return (double) tree->iarray[i*tree->nstride];
if (tree->type == ADD)
return eval_tree(tree->left,i) + eval_tree(tree->right,i);
if (tree->type == SUBTRACT)
return eval_tree(tree->left,i) - eval_tree(tree->right,i);
if (tree->type == MULTIPLY)
return eval_tree(tree->left,i) * eval_tree(tree->right,i);
if (tree->type == DIVIDE) {
double denom = eval_tree(tree->right,i);
if (denom == 0.0) error->one("Divide by 0 in variable formula");
return eval_tree(tree->left,i) / denom;
}
if (tree->type == CARAT) {
double exponent = eval_tree(tree->right,i);
if (exponent == 0.0) error->one("Power by 0 in variable formula");
return pow(eval_tree(tree->left,i),exponent);
}
if (tree->type == UNARY) return -eval_tree(tree->left,i);
if (tree->type == NOT) {
if (eval_tree(tree->left,i) == 0.0) return 1.0;
else return 0.0;
}
if (tree->type == EQ) {
if (eval_tree(tree->left,i) == eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == NE) {
if (eval_tree(tree->left,i) != eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == LT) {
if (eval_tree(tree->left,i) < eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == LE) {
if (eval_tree(tree->left,i) <= eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == GT) {
if (eval_tree(tree->left,i) > eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == GE) {
if (eval_tree(tree->left,i) >= eval_tree(tree->right,i)) return 1.0;
else return 0.0;
}
if (tree->type == AND) {
if (eval_tree(tree->left,i) != 0.0 && eval_tree(tree->right,i) != 0.0)
return 1.0;
else return 0.0;
}
if (tree->type == OR) {
if (eval_tree(tree->left,i) != 0.0 || eval_tree(tree->right,i) != 0.0)
return 1.0;
else return 0.0;
}
if (tree->type == SQRT) {
arg1 = eval_tree(tree->left,i);
if (arg1 < 0.0) error->one("Sqrt of negative value in variable formula");
return sqrt(arg1);
}
if (tree->type == EXP)
return exp(eval_tree(tree->left,i));
if (tree->type == LN) {
arg1 = eval_tree(tree->left,i);
if (arg1 <= 0.0)
error->one("Log of zero/negative value in variable formula");
return log(arg1);
}
if (tree->type == LOG) {
arg1 = eval_tree(tree->left,i);
if (arg1 <= 0.0)
error->one("Log of zero/negative value in variable formula");
return log10(arg1);
}
if (tree->type == SIN)
return sin(eval_tree(tree->left,i));
if (tree->type == COS)
return cos(eval_tree(tree->left,i));
if (tree->type == TAN)
return tan(eval_tree(tree->left,i));
if (tree->type == ASIN) {
arg1 = eval_tree(tree->left,i);
if (arg1 < -1.0 || arg1 > 1.0)
error->one("Arcsin of invalid value in variable formula");
return asin(arg1);
}
if (tree->type == ACOS) {
arg1 = eval_tree(tree->left,i);
if (arg1 < -1.0 || arg1 > 1.0)
error->one("Arccos of invalid value in variable formula");
return acos(arg1);
}
if (tree->type == ATAN)
return atan(eval_tree(tree->left,i));
if (tree->type == ATAN2)
return atan2(eval_tree(tree->left,i),eval_tree(tree->right,i));
if (tree->type == RANDOM) {
double lower = eval_tree(tree->left,i);
double upper = eval_tree(tree->middle,i);
if (randomatom == NULL) {
int seed = static_cast<int> (eval_tree(tree->right,i));
if (seed <= 0) error->one("Invalid math function in variable formula");
randomatom = new RanMars(lmp,seed+me);
}
return randomatom->uniform()*(upper-lower)+lower;
}
if (tree->type == NORMAL) {
double mu = eval_tree(tree->left,i);
double sigma = eval_tree(tree->middle,i);
if (sigma < 0.0) error->one("Invalid math function in variable formula");
if (randomatom == NULL) {
int seed = static_cast<int> (eval_tree(tree->right,i));
if (seed <= 0) error->one("Invalid math function in variable formula");
randomatom = new RanMars(lmp,seed+me);
}
return mu + sigma*randomatom->gaussian();
}
if (tree->type == CEIL)
return ceil(eval_tree(tree->left,i));
if (tree->type == FLOOR)
return floor(eval_tree(tree->left,i));
if (tree->type == ROUND)
return MYROUND(eval_tree(tree->left,i));
if (tree->type == RAMP) {
arg1 = eval_tree(tree->left,i);
arg2 = eval_tree(tree->right,i);
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
arg = arg1 + delta*(arg2-arg1);
return arg;
}
if (tree->type == STAGGER) {
int ivalue1 = static_cast<int> (eval_tree(tree->left,i));
int ivalue2 = static_cast<int> (eval_tree(tree->right,i));
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue1 <= ivalue2)
error->one("Invalid math function in variable formula");
int lower = update->ntimestep/ivalue1 * ivalue1;
int delta = update->ntimestep - lower;
if (delta < ivalue2) arg = lower+ivalue2;
else arg = lower+ivalue1;
return arg;
}
if (tree->type == LOGFREQ) {
int ivalue1 = static_cast<int> (eval_tree(tree->left,i));
int ivalue2 = static_cast<int> (eval_tree(tree->middle,i));
int ivalue3 = static_cast<int> (eval_tree(tree->right,i));
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 || ivalue2 >= ivalue3)
error->one("Invalid math function in variable formula");
if (update->ntimestep < ivalue1) arg = ivalue1;
else {
int lower = ivalue1;
while (update->ntimestep >= ivalue3*lower) lower *= ivalue3;
int multiple = update->ntimestep/lower;
if (multiple < ivalue2) arg = (multiple+1)*lower;
else arg = lower*ivalue3;
}
return arg;
}
if (tree->type == VDISPLACE) {
arg1 = eval_tree(tree->left,i);
arg2 = eval_tree(tree->right,i);
double delta = update->ntimestep - update->beginstep;
arg = arg1 + arg2*delta*update->dt;
return arg;
}
if (tree->type == SWIGGLE) {
arg1 = eval_tree(tree->left,i);
arg2 = eval_tree(tree->middle,i);
arg3 = eval_tree(tree->right,i);
if (arg3 == 0.0) error->one("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/arg3;
arg = arg1 + arg2*sin(omega*delta*update->dt);
return arg;
}
if (tree->type == CWIGGLE) {
arg1 = eval_tree(tree->left,i);
arg2 = eval_tree(tree->middle,i);
arg3 = eval_tree(tree->right,i);
if (arg3 == 0.0) error->one("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/arg3;
arg = arg1 + arg2*(1.0-cos(omega*delta*update->dt));
return arg;
}
if (tree->type == GMASK) {
if (atom->mask[i] & tree->ivalue1) return 1.0;
else return 0.0;
}
if (tree->type == RMASK) {
if (domain->regions[tree->ivalue1]->inside(atom->x[i][0],
atom->x[i][1],
atom->x[i][2])) return 1.0;
else return 0.0;
}
if (tree->type == GRMASK) {
if ((atom->mask[i] & tree->ivalue1) &&
(domain->regions[tree->ivalue2]->inside(atom->x[i][0],
atom->x[i][1],
atom->x[i][2]))) return 1.0;
else return 0.0;
}
return 0.0;
}
/* ---------------------------------------------------------------------- */
void Variable::free_tree(Tree *tree)
{
if (tree->left) free_tree(tree->left);
if (tree->middle) free_tree(tree->middle);
if (tree->right) free_tree(tree->right);
delete tree;
}
/* ----------------------------------------------------------------------
find matching parenthesis in str, allocate contents = str between parens
i = left paren
return loc or right paren
------------------------------------------------------------------------- */
int Variable::find_matching_paren(char *str, int i,char *&contents)
{
// istop = matching ')' at same level, allowing for nested parens
int istart = i;
int ilevel = 0;
while (1) {
i++;
if (!str[i]) break;
if (str[i] == '(') ilevel++;
else if (str[i] == ')' && ilevel) ilevel--;
else if (str[i] == ')') break;
}
if (!str[i]) error->all("Invalid syntax in variable formula");
int istop = i;
int n = istop - istart - 1;
contents = new char[n+1];
strncpy(contents,&str[istart+1],n);
contents[n] = '\0';
return istop;
}
/* ----------------------------------------------------------------------
find int between brackets and return it
ptr initially points to left bracket
return it pointing to right bracket
error if no right bracket or brackets are empty
error if any between-bracket chars are non-digits or value == 0
------------------------------------------------------------------------- */
int Variable::int_between_brackets(char *&ptr)
{
char *start = ++ptr;
while (*ptr && *ptr != ']') {
if (!isdigit(*ptr))
error->all("Non digit character between brackets in variable");
ptr++;
}
if (*ptr != ']') error->all("Mismatched brackets in variable");
if (ptr == start) error->all("Empty brackets in variable");
*ptr = '\0';
int index = atoi(start);
*ptr = ']';
if (index == 0)
error->all("Index between variable brackets must be positive");
return index;
}
/* ----------------------------------------------------------------------
process a math function in formula
push result onto tree or arg stack
word = math function
contents = str between parentheses with one,two,three args
return 0 if not a match, 1 if successfully processed
customize by adding a math function:
sqrt(),exp(),ln(),log(),sin(),cos(),tan(),asin(),acos(),atan(),
atan2(y,x),random(x,y,z),normal(x,y,z),ceil(),floor(),round(),
ramp(x,y),stagger(x,y),logfreq(x,y,z),
vdisplace(x,y),swiggle(x,y,z),cwiggle(x,y,z)
------------------------------------------------------------------------- */
int Variable::math_function(char *word, char *contents, Tree **tree,
Tree **treestack, int &ntreestack,
double *argstack, int &nargstack)
{
// word not a match to any math function
if (strcmp(word,"sqrt") && strcmp(word,"exp") &&
strcmp(word,"ln") && strcmp(word,"log") &&
strcmp(word,"sin") && strcmp(word,"cos") &&
strcmp(word,"tan") && strcmp(word,"asin") &&
strcmp(word,"acos") && strcmp(word,"atan") &&
strcmp(word,"atan2") && strcmp(word,"random") &&
strcmp(word,"normal") && strcmp(word,"ceil") &&
strcmp(word,"floor") && strcmp(word,"round") &&
strcmp(word,"ramp") && strcmp(word,"stagger") &&
strcmp(word,"logfreq") && strcmp(word,"vdisplace") &&
strcmp(word,"swiggle") && strcmp(word,"cwiggle"))
return 0;
// parse contents for arg1,arg2,arg3 separated by commas
// ptr1,ptr2 = location of 1st and 2nd comma, NULL if none
char *arg1,*arg2,*arg3;
char *ptr1,*ptr2;
ptr1 = find_next_comma(contents);
if (ptr1) {
*ptr1 = '\0';
ptr2 = find_next_comma(ptr1+1);
if (ptr2) *ptr2 = '\0';
} else ptr2 = NULL;
int n = strlen(contents) + 1;
arg1 = new char[n];
strcpy(arg1,contents);
int narg = 1;
if (ptr1) {
n = strlen(ptr1+1) + 1;
arg2 = new char[n];
strcpy(arg2,ptr1+1);
narg = 2;
} else arg2 = NULL;
if (ptr2) {
n = strlen(ptr2+1) + 1;
arg3 = new char[n];
strcpy(arg3,ptr2+1);
narg = 3;
} else arg3 = NULL;
// evaluate args
Tree *newtree;
double tmp,value1,value2,value3;
if (tree) {
newtree = new Tree();
Tree *argtree;
if (narg == 1) {
tmp = evaluate(arg1,&argtree);
newtree->left = argtree;
newtree->middle = newtree->right = NULL;
} else if (narg == 2) {
tmp = evaluate(arg1,&argtree);
newtree->left = argtree;
newtree->middle = NULL;
tmp = evaluate(arg2,&argtree);
newtree->right = argtree;
} else if (narg == 3) {
tmp = evaluate(arg1,&argtree);
newtree->left = argtree;
tmp = evaluate(arg2,&argtree);
newtree->middle = argtree;
tmp = evaluate(arg3,&argtree);
newtree->right = argtree;
}
treestack[ntreestack++] = newtree;
} else {
if (narg == 1) {
value1 = evaluate(arg1,NULL);
} else if (narg == 2) {
value1 = evaluate(arg1,NULL);
value2 = evaluate(arg2,NULL);
} else if (narg == 3) {
value1 = evaluate(arg1,NULL);
value2 = evaluate(arg2,NULL);
value3 = evaluate(arg3,NULL);
}
}
if (strcmp(word,"sqrt") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = SQRT;
else {
if (value1 < 0.0)
error->all("Sqrt of negative value in variable formula");
argstack[nargstack++] = sqrt(value1);
}
} else if (strcmp(word,"exp") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = EXP;
else argstack[nargstack++] = exp(value1);
} else if (strcmp(word,"ln") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = LN;
else {
if (value1 <= 0.0)
error->all("Log of zero/negative value in variable formula");
argstack[nargstack++] = log(value1);
}
} else if (strcmp(word,"log") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = LOG;
else {
if (value1 <= 0.0)
error->all("Log of zero/negative value in variable formula");
argstack[nargstack++] = log10(value1);
}
} else if (strcmp(word,"sin") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = SIN;
else argstack[nargstack++] = sin(value1);
} else if (strcmp(word,"cos") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = COS;
else argstack[nargstack++] = cos(value1);
} else if (strcmp(word,"tan") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = TAN;
else argstack[nargstack++] = tan(value1);
} else if (strcmp(word,"asin") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = ASIN;
else {
if (value1 < -1.0 || value1 > 1.0)
error->all("Arcsin of invalid value in variable formula");
argstack[nargstack++] = asin(value1);
}
} else if (strcmp(word,"acos") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = ACOS;
else {
if (value1 < -1.0 || value1 > 1.0)
error->all("Arccos of invalid value in variable formula");
argstack[nargstack++] = acos(value1);
}
} else if (strcmp(word,"atan") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = ATAN;
else argstack[nargstack++] = atan(value1);
} else if (strcmp(word,"atan2") == 0) {
if (narg != 2) error->all("Invalid math function in variable formula");
if (tree) newtree->type = ATAN2;
else argstack[nargstack++] = atan2(value1,value2);
} else if (strcmp(word,"random") == 0) {
if (narg != 3) error->all("Invalid math function in variable formula");
if (tree) newtree->type = RANDOM;
else {
if (randomequal == NULL) {
int seed = static_cast<int> (value3);
if (seed <= 0) error->all("Invalid math function in variable formula");
randomequal = new RanMars(lmp,seed);
}
argstack[nargstack++] = randomequal->uniform()*(value2-value1) + value1;
}
} else if (strcmp(word,"normal") == 0) {
if (narg != 3) error->all("Invalid math function in variable formula");
if (tree) newtree->type = NORMAL;
else {
if (value2 < 0.0)
error->all("Invalid math function in variable formula");
if (randomequal == NULL) {
int seed = static_cast<int> (value3);
if (seed <= 0) error->all("Invalid math function in variable formula");
randomequal = new RanMars(lmp,seed);
}
argstack[nargstack++] = value1 + value2*randomequal->gaussian();
}
} else if (strcmp(word,"ceil") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = CEIL;
else argstack[nargstack++] = ceil(value1);
} else if (strcmp(word,"floor") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = FLOOR;
else argstack[nargstack++] = floor(value1);
} else if (strcmp(word,"round") == 0) {
if (narg != 1) error->all("Invalid math function in variable formula");
if (tree) newtree->type = ROUND;
else argstack[nargstack++] = MYROUND(value1);
} else if (strcmp(word,"ramp") == 0) {
if (narg != 2) error->all("Invalid math function in variable formula");
if (update->whichflag == 0)
error->all("Cannot use ramp in variable formula between runs");
if (tree) newtree->type = RAMP;
else {
double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep;
double value = value1 + delta*(value2-value1);
argstack[nargstack++] = value;
}
} else if (strcmp(word,"stagger") == 0) {
if (narg != 2) error->all("Invalid math function in variable formula");
if (tree) newtree->type = STAGGER;
else {
int ivalue1 = static_cast<int> (value1);
int ivalue2 = static_cast<int> (value2);
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue1 <= ivalue2)
error->all("Invalid math function in variable formula");
int lower = update->ntimestep/ivalue1 * ivalue1;
int delta = update->ntimestep - lower;
double value;
if (delta < ivalue2) value = lower+ivalue2;
else value = lower+ivalue1;
argstack[nargstack++] = value;
}
} else if (strcmp(word,"logfreq") == 0) {
if (narg != 3) error->all("Invalid math function in variable formula");
if (tree) newtree->type = LOGFREQ;
else {
int ivalue1 = static_cast<int> (value1);
int ivalue2 = static_cast<int> (value2);
int ivalue3 = static_cast<int> (value3);
if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 || ivalue2 >= ivalue3)
error->all("Invalid math function in variable formula");
double value;
if (update->ntimestep < ivalue1) value = ivalue1;
else {
int lower = ivalue1;
while (update->ntimestep >= ivalue3*lower) lower *= ivalue3;
int multiple = update->ntimestep/lower;
if (multiple < ivalue2) value = (multiple+1)*lower;
else value = lower*ivalue3;
}
argstack[nargstack++] = value;
}
} else if (strcmp(word,"vdisplace") == 0) {
if (narg != 2) error->all("Invalid math function in variable formula");
if (update->whichflag == 0)
error->all("Cannot use vdisplace in variable formula between runs");
if (tree) newtree->type = VDISPLACE;
else {
double delta = update->ntimestep - update->beginstep;
double value = value1 + value2*delta*update->dt;
argstack[nargstack++] = value;
}
} else if (strcmp(word,"swiggle") == 0) {
if (narg != 3) error->all("Invalid math function in variable formula");
if (update->whichflag == 0)
error->all("Cannot use swiggle in variable formula between runs");
if (tree) newtree->type = CWIGGLE;
else {
if (value3 == 0.0)
error->all("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/value3;
double value = value1 + value2*sin(omega*delta*update->dt);
argstack[nargstack++] = value;
}
} else if (strcmp(word,"cwiggle") == 0) {
if (narg != 3) error->all("Invalid math function in variable formula");
if (update->whichflag == 0)
error->all("Cannot use cwiggle in variable formula between runs");
if (tree) newtree->type = CWIGGLE;
else {
if (value3 == 0.0)
error->all("Invalid math function in variable formula");
double delta = update->ntimestep - update->beginstep;
double omega = 2.0*PI/value3;
double value = value1 + value2*(1.0-cos(omega*delta*update->dt));
argstack[nargstack++] = value;
}
}
delete [] arg1;
delete [] arg2;
delete [] arg3;
return 1;
}
/* ----------------------------------------------------------------------
process a group function in formula with optional region arg
push result onto tree or arg stack
word = group function
contents = str between parentheses with one,two,three args
return 0 if not a match, 1 if successfully processed
customize by adding a group function with optional region arg:
count(group),mass(group),charge(group),
xcm(group,dim),vcm(group,dim),fcm(group,dim),
bound(group,xmin),gyration(group),ke(group),angmom(group,dim),
torque(group,dim),inertia(group,dim),omega(group,dim)
------------------------------------------------------------------------- */
int Variable::group_function(char *word, char *contents, Tree **tree,
Tree **treestack, int &ntreestack,
double *argstack, int &nargstack)
{
// word not a match to any group function
if (strcmp(word,"count") && strcmp(word,"mass") &&
strcmp(word,"charge") && strcmp(word,"xcm") &&
strcmp(word,"vcm") && strcmp(word,"fcm") &&
strcmp(word,"bound") && strcmp(word,"gyration") &&
strcmp(word,"ke") && strcmp(word,"angmom") &&
strcmp(word,"torque") && strcmp(word,"inertia") &&
strcmp(word,"omega"))
return 0;
// parse contents for arg1,arg2,arg3 separated by commas
// ptr1,ptr2 = location of 1st and 2nd comma, NULL if none
char *arg1,*arg2,*arg3;
char *ptr1,*ptr2;
ptr1 = find_next_comma(contents);
if (ptr1) {
*ptr1 = '\0';
ptr2 = find_next_comma(ptr1+1);
if (ptr2) *ptr2 = '\0';
} else ptr2 = NULL;
int n = strlen(contents) + 1;
arg1 = new char[n];
strcpy(arg1,contents);
int narg = 1;
if (ptr1) {
n = strlen(ptr1+1) + 1;
arg2 = new char[n];
strcpy(arg2,ptr1+1);
narg = 2;
} else arg2 = NULL;
if (ptr2) {
n = strlen(ptr2+1) + 1;
arg3 = new char[n];
strcpy(arg3,ptr2+1);
narg = 3;
} else arg3 = NULL;
// group to operate on
int igroup = group->find(arg1);
if (igroup == -1)
error->all("Group ID in variable formula does not exist");
// match word to group function
double value;
if (strcmp(word,"count") == 0) {
if (narg == 1) value = group->count(igroup);
else if (narg == 2) value = group->count(igroup,region_function(arg2));
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"mass") == 0) {
if (narg == 1) value = group->mass(igroup);
else if (narg == 2) value = group->mass(igroup,region_function(arg2));
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"charge") == 0) {
if (narg == 1) value = group->charge(igroup);
else if (narg == 2) value = group->charge(igroup,region_function(arg2));
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"xcm") == 0) {
atom->check_mass();
double xcm[3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = xcm[0];
else if (strcmp(arg2,"y") == 0) value = xcm[1];
else if (strcmp(arg2,"z") == 0) value = xcm[2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"vcm") == 0) {
atom->check_mass();
double vcm[3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->vcm(igroup,masstotal,vcm);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->vcm(igroup,masstotal,vcm,iregion);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = vcm[0];
else if (strcmp(arg2,"y") == 0) value = vcm[1];
else if (strcmp(arg2,"z") == 0) value = vcm[2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"fcm") == 0) {
double fcm[3];
if (narg == 2) group->fcm(igroup,fcm);
else if (narg == 3) group->fcm(igroup,fcm,region_function(arg3));
else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = fcm[0];
else if (strcmp(arg2,"y") == 0) value = fcm[1];
else if (strcmp(arg2,"z") == 0) value = fcm[2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"bound") == 0) {
double minmax[6];
if (narg == 2) group->bounds(igroup,minmax);
else if (narg == 3) group->bounds(igroup,minmax,region_function(arg3));
else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"xmin") == 0) value = minmax[0];
else if (strcmp(arg2,"xmax") == 0) value = minmax[1];
else if (strcmp(arg2,"ymin") == 0) value = minmax[2];
else if (strcmp(arg2,"ymax") == 0) value = minmax[3];
else if (strcmp(arg2,"zmin") == 0) value = minmax[4];
else if (strcmp(arg2,"zmax") == 0) value = minmax[5];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"gyration") == 0) {
atom->check_mass();
double xcm[3];
if (narg == 1) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
value = group->gyration(igroup,masstotal,xcm);
} else if (narg == 2) {
int iregion = region_function(arg2);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
value = group->gyration(igroup,masstotal,xcm,iregion);
} else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"ke") == 0) {
if (narg == 1) value = group->ke(igroup);
else if (narg == 2) value = group->ke(igroup,region_function(arg2));
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"angmom") == 0) {
atom->check_mass();
double xcm[3],lmom[3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
group->angmom(igroup,xcm,lmom);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
group->angmom(igroup,xcm,lmom,iregion);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = lmom[0];
else if (strcmp(arg2,"y") == 0) value = lmom[1];
else if (strcmp(arg2,"z") == 0) value = lmom[2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"torque") == 0) {
atom->check_mass();
double xcm[3],tq[3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
group->torque(igroup,xcm,tq);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
group->torque(igroup,xcm,tq,iregion);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = tq[0];
else if (strcmp(arg2,"y") == 0) value = tq[1];
else if (strcmp(arg2,"z") == 0) value = tq[2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"inertia") == 0) {
atom->check_mass();
double xcm[3],inertia[3][3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
group->inertia(igroup,xcm,inertia);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
group->inertia(igroup,xcm,inertia,iregion);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"xx") == 0) value = inertia[0][0];
else if (strcmp(arg2,"yy") == 0) value = inertia[1][1];
else if (strcmp(arg2,"zz") == 0) value = inertia[2][2];
else if (strcmp(arg2,"xy") == 0) value = inertia[0][1];
else if (strcmp(arg2,"yz") == 0) value = inertia[1][2];
else if (strcmp(arg2,"xz") == 0) value = inertia[0][2];
else error->all("Invalid group function in variable formula");
} else if (strcmp(word,"omega") == 0) {
atom->check_mass();
double xcm[3],angmom[3],inertia[3][3],omega[3];
if (narg == 2) {
double masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
group->angmom(igroup,xcm,angmom);
group->inertia(igroup,xcm,inertia);
group->omega(angmom,inertia,omega);
} else if (narg == 3) {
int iregion = region_function(arg3);
double masstotal = group->mass(igroup,iregion);
group->xcm(igroup,masstotal,xcm,iregion);
group->angmom(igroup,xcm,angmom,iregion);
group->inertia(igroup,xcm,inertia,iregion);
group->omega(angmom,inertia,omega);
} else error->all("Invalid group function in variable formula");
if (strcmp(arg2,"x") == 0) value = omega[0];
else if (strcmp(arg2,"y") == 0) value = omega[1];
else if (strcmp(arg2,"z") == 0) value = omega[2];
else error->all("Invalid group function in variable formula");
}
delete [] arg1;
delete [] arg2;
delete [] arg3;
// save value in tree or on argstack
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value;
return 1;
}
/* ---------------------------------------------------------------------- */
int Variable::region_function(char *id)
{
int iregion = domain->find_region(id);
if (iregion == -1)
error->all("Region ID in variable formula does not exist");
return iregion;
}
/* ----------------------------------------------------------------------
process a special function in formula
push result onto tree or arg stack
word = special function
contents = str between parentheses with one,two,three args
return 0 if not a match, 1 if successfully processed
customize by adding a special function:
sum(x),min(x),max(x),ave(x),trap(x),gmask(x),rmask(x),grmask(x,y)
------------------------------------------------------------------------- */
int Variable::special_function(char *word, char *contents, Tree **tree,
Tree **treestack, int &ntreestack,
double *argstack, int &nargstack)
{
// word not a match to any special function
if (strcmp(word,"sum") && strcmp(word,"min") && strcmp(word,"max") &&
strcmp(word,"ave") && strcmp(word,"trap") && strcmp(word,"gmask") &&
strcmp(word,"rmask") && strcmp(word,"grmask"))
return 0;
// parse contents for arg1,arg2,arg3 separated by commas
// ptr1,ptr2 = location of 1st and 2nd comma, NULL if none
char *arg1,*arg2,*arg3;
char *ptr1,*ptr2;
ptr1 = find_next_comma(contents);
if (ptr1) {
*ptr1 = '\0';
ptr2 = find_next_comma(ptr1+1);
if (ptr2) *ptr2 = '\0';
} else ptr2 = NULL;
int n = strlen(contents) + 1;
arg1 = new char[n];
strcpy(arg1,contents);
int narg = 1;
if (ptr1) {
n = strlen(ptr1+1) + 1;
arg2 = new char[n];
strcpy(arg2,ptr1+1);
narg = 2;
} else arg2 = NULL;
if (ptr2) {
n = strlen(ptr2+1) + 1;
arg3 = new char[n];
strcpy(arg3,ptr2+1);
narg = 3;
} else arg3 = NULL;
// special functions that operate on global vectors
if (strcmp(word,"sum") == 0 || strcmp(word,"min") == 0 ||
strcmp(word,"max") == 0 || strcmp(word,"ave") == 0 ||
strcmp(word,"trap") == 0) {
int method;
if (strcmp(word,"sum") == 0) method = SUM;
else if (strcmp(word,"min") == 0) method = XMIN;
else if (strcmp(word,"max") == 0) method = XMAX;
else if (strcmp(word,"ave") == 0) method = AVE;
else if (strcmp(word,"trap") == 0) method = TRAP;
if (narg != 1) error->all("Invalid special function in variable formula");
Compute *compute = NULL;
Fix *fix = NULL;
int index,nvec,nstride;
if (strstr(arg1,"c_") == arg1) {
ptr1 = strchr(arg1,'[');
if (ptr1) {
ptr2 = ptr1;
index = int_between_brackets(ptr2);
*ptr1 = '\0';
} else index = 0;
int icompute = modify->find_compute(&arg1[2]);
if (icompute < 0) error->all("Invalid compute ID in variable formula");
compute = modify->compute[icompute];
if (index == 0 && compute->vector_flag) {
if (update->whichflag == 0) {
if (compute->invoked_vector != update->ntimestep)
error->all("Compute used in variable between runs is not current");
} else if (!(compute->invoked_flag & INVOKED_VECTOR)) {
compute->compute_vector();
compute->invoked_flag |= INVOKED_VECTOR;
}
nvec = compute->size_vector;
nstride = 1;
} else if (index && compute->array_flag) {
if (index > compute->size_array_cols)
error->all("Variable formula compute array "
"is accessed out-of-range");
if (update->whichflag == 0) {
if (compute->invoked_array != update->ntimestep)
error->all("Compute used in variable between runs is not current");
} else if (!(compute->invoked_flag & INVOKED_ARRAY)) {
compute->compute_array();
compute->invoked_flag |= INVOKED_ARRAY;
}
nvec = compute->size_array_rows;
nstride = compute->size_array_cols;
} else error->all("Mismatched compute in variable formula");
} else if (strstr(arg1,"f_") == arg1) {
ptr1 = strchr(arg1,'[');
if (ptr1) {
ptr2 = ptr1;
index = int_between_brackets(ptr2);
*ptr1 = '\0';
} else index = 0;
int ifix = modify->find_fix(&arg1[2]);
if (ifix < 0) error->all("Invalid fix ID in variable formula");
fix = modify->fix[ifix];
if (index == 0 && fix->vector_flag) {
if (update->whichflag > 0 && update->ntimestep % fix->global_freq)
error->all("Fix in variable not computed at compatible time");
nvec = fix->size_vector;
nstride = 1;
} else if (index && fix->array_flag) {
if (index > fix->size_array_cols)
error->all("Variable formula fix array is accessed out-of-range");
if (update->whichflag > 0 && update->ntimestep % fix->global_freq)
error->all("Fix in variable not computed at compatible time");
nvec = fix->size_array_rows;
nstride = fix->size_array_cols;
} else error->all("Mismatched fix in variable formula");
} else error->all("Invalid special function in variable formula");
double value = 0.0;
if (method == XMIN) value = BIG;
if (method == XMAX) value = -BIG;
if (compute) {
double *vec;
if (index) vec = &compute->array[0][index-1];
else vec = compute->vector;
int j = 0;
for (int i = 0; i < nvec; i++) {
if (method == SUM) value += vec[j];
else if (method == XMIN) value = MIN(value,vec[j]);
else if (method == XMAX) value = MAX(value,vec[j]);
else if (method == AVE) value += vec[j];
else if (method == TRAP) {
if (i > 0 && i < nvec-1) value += vec[j];
else value += 0.5*vec[j];
}
j += nstride;
}
}
if (fix) {
double one;
for (int i = 0; i < nvec; i++) {
if (index) one = fix->compute_array(i,index-1);
else one = fix->compute_vector(i);
if (method == SUM) value += one;
else if (method == XMIN) value = MIN(value,one);
else if (method == XMAX) value = MAX(value,one);
else if (method == AVE) value += one;
else if (method == TRAP) {
if (i > 1 && i < nvec) value += one;
else value += 0.5*one;
}
}
}
if (method == AVE) value /= nvec;
delete [] arg1;
delete [] arg2;
delete [] arg3;
// save value in tree or on argstack
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value;
// mask special functions
} else if (strcmp(word,"gmask") == 0) {
if (tree == NULL)
error->all("Gmask function in equal-style variable formula");
if (narg != 1) error->all("Invalid special function in variable formula");
int igroup = group->find(arg1);
if (igroup == -1)
error->all("Group ID in variable formula does not exist");
Tree *newtree = new Tree();
newtree->type = GMASK;
newtree->ivalue1 = group->bitmask[igroup];
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else if (strcmp(word,"rmask") == 0) {
if (tree == NULL)
error->all("Rmask function in equal-style variable formula");
if (narg != 1) error->all("Invalid special function in variable formula");
int iregion = region_function(arg1);
Tree *newtree = new Tree();
newtree->type = RMASK;
newtree->ivalue1 = iregion;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else if (strcmp(word,"grmask") == 0) {
if (tree == NULL)
error->all("Grmask function in equal-style variable formula");
if (narg != 2) error->all("Invalid special function in variable formula");
int igroup = group->find(arg1);
if (igroup == -1)
error->all("Group ID in variable formula does not exist");
int iregion = region_function(arg2);
Tree *newtree = new Tree();
newtree->type = RMASK;
newtree->ivalue1 = group->bitmask[igroup];
newtree->ivalue2 = iregion;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
}
return 1;
}
/* ----------------------------------------------------------------------
extract a global value from a per-atom quantity in a formula
flag = 0 -> word is an atom vector
flag = 1 -> vector is a per-atom compute or fix quantity with nstride
id = positive global ID of atom, converted to local index
push result onto tree or arg stack
customize by adding an atom vector:
mass,type,x,y,z,vx,vy,vz,fx,fy,fz
------------------------------------------------------------------------- */
void Variable::peratom2global(int flag, char *word,
double *vector, int nstride, int id,
Tree **tree, Tree **treestack, int &ntreestack,
double *argstack, int &nargstack)
{
if (atom->map_style == 0)
error->all("Indexed per-atom vector in variable formula without atom map");
int index = atom->map(id);
double mine;
if (index >= 0 && index < atom->nlocal) {
if (flag == 0) {
if (strcmp(word,"mass") == 0) {
if (atom->rmass) mine = atom->rmass[index];
else mine = atom->mass[atom->type[index]];
}
else if (strcmp(word,"type") == 0) mine = atom->type[index];
else if (strcmp(word,"x") == 0) mine = atom->x[index][0];
else if (strcmp(word,"y") == 0) mine = atom->x[index][1];
else if (strcmp(word,"z") == 0) mine = atom->x[index][2];
else if (strcmp(word,"vx") == 0) mine = atom->v[index][0];
else if (strcmp(word,"vy") == 0) mine = atom->v[index][1];
else if (strcmp(word,"vz") == 0) mine = atom->v[index][2];
else if (strcmp(word,"fx") == 0) mine = atom->f[index][0];
else if (strcmp(word,"fy") == 0) mine = atom->f[index][1];
else if (strcmp(word,"fz") == 0) mine = atom->f[index][2];
else error->one("Invalid atom vector in variable formula");
} else mine = vector[index*nstride];
} else mine = 0.0;
double value;
MPI_Allreduce(&mine,&value,1,MPI_DOUBLE,MPI_SUM,world);
if (tree) {
Tree *newtree = new Tree();
newtree->type = VALUE;
newtree->value = value;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
} else argstack[nargstack++] = value;
}
/* ----------------------------------------------------------------------
check if word matches an atom vector
return 1 if yes, else 0
customize by adding an atom vector:
mass,type,x,y,z,vx,vy,vz,fx,fy,fz
------------------------------------------------------------------------- */
int Variable::is_atom_vector(char *word)
{
if (strcmp(word,"mass") == 0) return 1;
if (strcmp(word,"type") == 0) return 1;
if (strcmp(word,"x") == 0) return 1;
if (strcmp(word,"y") == 0) return 1;
if (strcmp(word,"z") == 0) return 1;
if (strcmp(word,"vx") == 0) return 1;
if (strcmp(word,"vy") == 0) return 1;
if (strcmp(word,"vz") == 0) return 1;
if (strcmp(word,"fx") == 0) return 1;
if (strcmp(word,"fy") == 0) return 1;
if (strcmp(word,"fz") == 0) return 1;
return 0;
}
/* ----------------------------------------------------------------------
process an atom vector in formula
push result onto tree
word = atom vector
customize by adding an atom vector:
mass,type,x,y,z,vx,vy,vz,fx,fy,fz
------------------------------------------------------------------------- */
void Variable::atom_vector(char *word, Tree **tree,
Tree **treestack, int &ntreestack)
{
if (tree == NULL)
error->all("Atom vector in equal-style variable formula");
Tree *newtree = new Tree();
newtree->type = ATOMARRAY;
newtree->nstride = 3;
newtree->left = newtree->middle = newtree->right = NULL;
treestack[ntreestack++] = newtree;
if (strcmp(word,"mass") == 0) {
if (atom->rmass) {
newtree->nstride = 1;
newtree->array = atom->rmass;
} else {
newtree->type = TYPEARRAY;
newtree->array = atom->mass;
}
} else if (strcmp(word,"type") == 0) {
newtree->type = INTARRAY;
newtree->nstride = 1;
newtree->iarray = atom->type;
}
else if (strcmp(word,"x") == 0) newtree->array = &atom->x[0][0];
else if (strcmp(word,"y") == 0) newtree->array = &atom->x[0][1];
else if (strcmp(word,"z") == 0) newtree->array = &atom->x[0][2];
else if (strcmp(word,"vx") == 0) newtree->array = &atom->v[0][0];
else if (strcmp(word,"vy") == 0) newtree->array = &atom->v[0][1];
else if (strcmp(word,"vz") == 0) newtree->array = &atom->v[0][2];
else if (strcmp(word,"fx") == 0) newtree->array = &atom->f[0][0];
else if (strcmp(word,"fy") == 0) newtree->array = &atom->f[0][1];
else if (strcmp(word,"fz") == 0) newtree->array = &atom->f[0][2];
}
/* ----------------------------------------------------------------------
check if word matches a constant
return 1 if yes, else 0
customize by adding a constant: PI
------------------------------------------------------------------------- */
int Variable::is_constant(char *word)
{
if (strcmp(word,"PI") == 0) return 1;
return 0;
}
/* ----------------------------------------------------------------------
process a constant in formula
customize by adding a constant: PI
------------------------------------------------------------------------- */
double Variable::constant(char *word)
{
if (strcmp(word,"PI") == 0) return PI;
return 0.0;
}
/* ----------------------------------------------------------------------
read a floating point value from a string
generate an error if not a legitimate floating point value
------------------------------------------------------------------------- */
double Variable::numeric(char *str)
{
int n = strlen(str);
for (int i = 0; i < n; i++) {
if (isdigit(str[i])) continue;
if (str[i] == '-' || str[i] == '+' || str[i] == '.') continue;
if (str[i] == 'e' || str[i] == 'E') continue;
error->all("Expected floating point parameter in variable definition");
}
return atof(str);
}
/* ----------------------------------------------------------------------
read an integer value from a string
generate an error if not a legitimate integer value
------------------------------------------------------------------------- */
int Variable::inumeric(char *str)
{
int n = strlen(str);
for (int i = 0; i < n; i++) {
if (isdigit(str[i]) || str[i] == '-' || str[i] == '+') continue;
error->all("Expected integer parameter in variable definition");
}
return atoi(str);
}
/* ----------------------------------------------------------------------
find next comma in str
skip commas inside one or more nested parenthesis
only return ptr to comma at level 0, else NULL if not found
------------------------------------------------------------------------- */
char *Variable::find_next_comma(char *str)
{
int level = 0;
for (char *p = str; *p; ++p) {
if ('(' == *p) level++;
else if (')' == *p) level--;
else if (',' == *p && !level) return p;
}
return NULL;
}
/* ----------------------------------------------------------------------
debug routine for printing formula tree recursively
------------------------------------------------------------------------- */
void Variable::print_tree(Tree *tree, int level)
{
printf("TREE %d: %d %g\n",level,tree->type,tree->value);
if (tree->left) print_tree(tree->left,level+1);
if (tree->middle) print_tree(tree->middle,level+1);
if (tree->right) print_tree(tree->right,level+1);
return;
}
/* ----------------------------------------------------------------------
recursive evaluation of string str
called from "if" command in input script
str is a boolean expression containing one or more items:
number = 0.0, -5.45, 2.8e-4, ...
math operation = (),x==y,x!=y,x<y,x<=y,x>y,x>=y,x&&y,x||y
------------------------------------------------------------------------- */
double Variable::evaluate_boolean(char *str)
{
int op,opprevious;
double value1,value2;
char onechar;
char *ptr;
double argstack[MAXLEVEL];
int opstack[MAXLEVEL];
int nargstack = 0;
int nopstack = 0;
int i = 0;
int expect = ARG;
while (1) {
onechar = str[i];
// whitespace: just skip
if (isspace(onechar)) i++;
// ----------------
// parentheses: recursively evaluate contents of parens
// ----------------
else if (onechar == '(') {
if (expect == OP) error->all("Invalid Boolean syntax in if command");
expect = OP;
char *contents;
i = find_matching_paren(str,i,contents);
i++;
// evaluate contents and push on stack
argstack[nargstack++] = evaluate_boolean(contents);
delete [] contents;
// ----------------
// number: push value onto stack
// ----------------
} else if (isdigit(onechar) || onechar == '.' || onechar == '-') {
if (expect == OP) error->all("Invalid Boolean syntax in if command");
expect = OP;
// istop = end of number, including scientific notation
int istart = i++;
while (isdigit(str[i]) || str[i] == '.') i++;
if (str[i] == 'e' || str[i] == 'E') {
i++;
if (str[i] == '+' || str[i] == '-') i++;
while (isdigit(str[i])) i++;
}
int istop = i - 1;
int n = istop - istart + 1;
char *number = new char[n+1];
strncpy(number,&str[istart],n);
number[n] = '\0';
argstack[nargstack++] = atof(number);
delete [] number;
// ----------------
// Boolean operator, including end-of-string
// ----------------
} else if (strchr("<>=!&|\0",onechar)) {
if (onechar == '=') {
if (str[i+1] != '=')
error->all("Invalid Boolean syntax in if command");
op = EQ;
i++;
} else if (onechar == '!') {
if (str[i+1] == '=') {
op = NE;
i++;
} else op = NOT;
} else if (onechar == '<') {
if (str[i+1] != '=') op = LT;
else {
op = LE;
i++;
}
} else if (onechar == '>') {
if (str[i+1] != '=') op = GT;
else {
op = GE;
i++;
}
} else if (onechar == '&') {
if (str[i+1] != '&')
error->all("Invalid Boolean syntax in if command");
op = AND;
i++;
} else if (onechar == '|') {
if (str[i+1] != '|')
error->all("Invalid Boolean syntax in if command");
op = OR;
i++;
} else op = DONE;
i++;
if (op == NOT && expect == ARG) {
opstack[nopstack++] = op;
continue;
}
if (expect == ARG) error->all("Invalid Boolean syntax in if command");
expect = ARG;
// evaluate stack as deep as possible while respecting precedence
// before pushing current op onto stack
while (nopstack && precedence[opstack[nopstack-1]] >= precedence[op]) {
opprevious = opstack[--nopstack];
value2 = argstack[--nargstack];
if (opprevious != NOT) value1 = argstack[--nargstack];
if (opprevious == NOT) {
if (value2 == 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == EQ) {
if (value1 == value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == NE) {
if (value1 != value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == LT) {
if (value1 < value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == LE) {
if (value1 <= value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == GT) {
if (value1 > value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == GE) {
if (value1 >= value2) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == AND) {
if (value1 != 0.0 && value2 != 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
} else if (opprevious == OR) {
if (value1 != 0.0 || value2 != 0.0) argstack[nargstack++] = 1.0;
else argstack[nargstack++] = 0.0;
}
}
// if end-of-string, break out of entire formula evaluation loop
if (op == DONE) break;
// push current operation onto stack
opstack[nopstack++] = op;
} else error->all("Invalid Boolean syntax in if command");
}
if (nopstack) error->all("Invalid Boolean syntax in if command");
if (nargstack != 1) error->all("Invalid Boolean syntax in if command");
return argstack[0];
}
diff --git a/src/version.h b/src/version.h
index 669d91306..b043d744a 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define LAMMPS_VERSION "12 Jun 2011"
+#define LAMMPS_VERSION "25 Jun 2011"
diff --git a/tools/restart2data.cpp b/tools/restart2data.cpp
index 8f11945a4..1866d7186 100644
--- a/tools/restart2data.cpp
+++ b/tools/restart2data.cpp
@@ -1,3559 +1,3580 @@
/* -----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------ */
// Convert a LAMMPS binary restart file into an ASCII text data file
//
// Syntax: restart2data switch arg ... restart-file data-file (input-file)
// optional switch = -s
// arg = suffix to remove from style names
// restart-file and data-file are mandatory
// input-file is optional
// if specified it will contain LAMMPS input script commands
// for mass and force field info
// only a few force field styles support this option
//
// this serial code must be compiled on a platform that can read the binary
// restart file since binary formats are not compatible across all platforms
// restart-file can have a '%' character to indicate a multiproc restart
// file as written by LAMMPS
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MAX_GROUP 32
-#define PI 4.0*atan(1.0)
+#define PI (4.0*atan(1.0))
// these should match settings in src/lmptype.h
#include "stdint.h"
#define __STDC_FORMAT_MACROS
#include "inttypes.h"
typedef int tagint;
typedef int64_t bigint;
#define BIGINT_FORMAT "%" PRId64
// same as write_restart.cpp
enum{VERSION,SMALLINT,TAGINT,BIGINT,
UNITS,NTIMESTEP,DIMENSION,NPROCS,PROCGRID_0,PROCGRID_1,PROCGRID_2,
NEWTON_PAIR,NEWTON_BOND,XPERIODIC,YPERIODIC,ZPERIODIC,
BOUNDARY_00,BOUNDARY_01,BOUNDARY_10,BOUNDARY_11,BOUNDARY_20,BOUNDARY_21,
ATOM_STYLE,NATOMS,NTYPES,
NBONDS,NBONDTYPES,BOND_PER_ATOM,
NANGLES,NANGLETYPES,ANGLE_PER_ATOM,
NDIHEDRALS,NDIHEDRALTYPES,DIHEDRAL_PER_ATOM,
NIMPROPERS,NIMPROPERTYPES,IMPROPER_PER_ATOM,
BOXLO_0,BOXHI_0,BOXLO_1,BOXHI_1,BOXLO_2,BOXHI_2,
SPECIAL_LJ_1,SPECIAL_LJ_2,SPECIAL_LJ_3,
SPECIAL_COUL_1,SPECIAL_COUL_2,SPECIAL_COUL_3,
XY,XZ,YZ};
enum{MASS};
enum{PAIR,BOND,ANGLE,DIHEDRAL,IMPROPER};
static const char * const cg_type_list[] =
{"none", "lj9_6", "lj12_4", "lj12_6"};
// ---------------------------------------------------------------------
// Data class to hold problem
// ---------------------------------------------------------------------
class Data {
public:
// global settings
char *version;
int size_smallint,size_tagint,size_bigint;
char *suffix;
bigint ntimestep;
int nprocs;
char *unit_style;
int dimension;
int px,py,pz;
int newton_pair,newton_bond;
int xperiodic,yperiodic,zperiodic;
int boundary[3][2];
char *atom_style;
int style_angle,style_atomic,style_bond,style_charge,style_dipole;
int style_ellipsoid,style_full;
int style_hybrid,style_molecular,style_peri,style_sphere;
bigint natoms;
bigint nellipsoids;
bigint nbonds,nangles,ndihedrals,nimpropers;
int ntypes,nbondtypes,nangletypes,ndihedraltypes,nimpropertypes;
int bond_per_atom,angle_per_atom,dihedral_per_atom,improper_per_atom;
int triclinic;
double xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz;
double special_lj[4],special_coul[4];
double cut_lj_global,cut_coul_global,kappa;
int offset_flag,mix_flag;
// force fields
char *pair_style,*bond_style,*angle_style,*dihedral_style,*improper_style;
double *pair_born_A,*pair_born_rho,*pair_born_sigma;
double *pair_born_C,*pair_born_D;
double *pair_buck_A,*pair_buck_rho,*pair_buck_C;
double *pair_colloid_A12,*pair_colloid_sigma;
double *pair_colloid_d1,*pair_colloid_d2;
double *pair_dipole_epsilon,*pair_dipole_sigma;
double *pair_dpd_a0,*pair_dpd_gamma;
double *pair_charmm_epsilon,*pair_charmm_sigma;
double *pair_charmm_eps14,*pair_charmm_sigma14;
double *pair_class2_epsilon,*pair_class2_sigma;
double *pair_gb_epsilon,*pair_gb_sigma;
double *pair_gb_epsa,*pair_gb_epsb,*pair_gb_epsc;
double *pair_lj_epsilon,*pair_lj_sigma;
double **pair_cg_epsilon,**pair_cg_sigma;
int **pair_cg_cmm_type, **pair_setflag;
double **pair_cut_coul, **pair_cut_lj;
double *pair_ljexpand_epsilon,*pair_ljexpand_sigma,*pair_ljexpand_shift;
double *pair_ljgromacs_epsilon,*pair_ljgromacs_sigma;
double *pair_ljsmooth_epsilon,*pair_ljsmooth_sigma;
double *pair_morse_d0,*pair_morse_alpha,*pair_morse_r0;
double *pair_soft_A;
double *pair_yukawa_A;
double *bond_class2_r0,*bond_class2_k2,*bond_class2_k3,*bond_class2_k4;
double *bond_fene_k,*bond_fene_r0,*bond_fene_epsilon,*bond_fene_sigma;
double *bond_feneexpand_k,*bond_feneexpand_r0;
double *bond_feneexpand_epsilon,*bond_feneexpand_sigma;
double *bond_feneexpand_shift;
double *bond_harmonic_k,*bond_harmonic_r0;
double *bond_morse_d0,*bond_morse_alpha,*bond_morse_r0;
double *bond_nonlinear_epsilon,*bond_nonlinear_r0,*bond_nonlinear_lamda;
double *bond_quartic_k,*bond_quartic_b1,*bond_quartic_b2;
double *bond_quartic_rc,*bond_quartic_u0;
double *angle_charmm_k,*angle_charmm_theta0;
double *angle_charmm_k_ub,*angle_charmm_r_ub;
double *angle_class2_theta0;
double *angle_class2_k2,*angle_class2_k3,*angle_class2_k4;
double *angle_class2_bb_k,*angle_class2_bb_r1,*angle_class2_bb_r2;
double *angle_class2_ba_k1,*angle_class2_ba_k2;
double *angle_class2_ba_r1,*angle_class2_ba_r2;
double *angle_cosine_k;
double *angle_cosine_squared_k,*angle_cosine_squared_theta0;
double *angle_harmonic_k,*angle_harmonic_theta0;
double *angle_cg_cmm_epsilon,*angle_cg_cmm_sigma;
int *angle_cg_cmm_type;
double *dihedral_charmm_k,*dihedral_charmm_weight;
int *dihedral_charmm_multiplicity,*dihedral_charmm_sign;
double *dihedral_class2_k1,*dihedral_class2_k2,*dihedral_class2_k3;
double *dihedral_class2_phi1,*dihedral_class2_phi2,*dihedral_class2_phi3;
double *dihedral_class2_mbt_f1,*dihedral_class2_mbt_f2;
double *dihedral_class2_mbt_f3,*dihedral_class2_mbt_r0;
double *dihedral_class2_ebt_f1_1,*dihedral_class2_ebt_f2_1;
double *dihedral_class2_ebt_f3_1,*dihedral_class2_ebt_r0_1;
double *dihedral_class2_ebt_f1_2,*dihedral_class2_ebt_f2_2;
double *dihedral_class2_ebt_f3_2,*dihedral_class2_ebt_r0_2;
double *dihedral_class2_at_f1_1,*dihedral_class2_at_f2_1;
double *dihedral_class2_at_f3_1,*dihedral_class2_at_theta0_1;
double *dihedral_class2_at_f1_2,*dihedral_class2_at_f2_2;
double *dihedral_class2_at_f3_2,*dihedral_class2_at_theta0_2;
double *dihedral_class2_aat_k;
double *dihedral_class2_aat_theta0_1,*dihedral_class2_aat_theta0_2;
double *dihedral_class2_bb13_k;
double *dihedral_class2_bb13_r10,*dihedral_class2_bb13_r30;
double *dihedral_harmonic_k;
int *dihedral_harmonic_multiplicity,*dihedral_harmonic_sign;
double *dihedral_helix_aphi,*dihedral_helix_bphi,*dihedral_helix_cphi;
double *dihedral_multi_a1,*dihedral_multi_a2,*dihedral_multi_a3;
double *dihedral_multi_a4,*dihedral_multi_a5;
double *dihedral_opls_k1,*dihedral_opls_k2;
double *dihedral_opls_k3,*dihedral_opls_k4;
double *improper_class2_k0,*improper_class2_chi0;
double *improper_class2_aa_k1,*improper_class2_aa_k2,*improper_class2_aa_k3;
double *improper_class2_aa_theta0_1,*improper_class2_aa_theta0_2;
double *improper_class2_aa_theta0_3;
double *improper_cvff_k;
int *improper_cvff_sign,*improper_cvff_multiplicity;
double *improper_harmonic_k,*improper_harmonic_chi;
// atom quantities
int iatoms,ibonds,iangles,idihedrals,iimpropers;
double *mass;
double *x,*y,*z,*vx,*vy,*vz;
double *omegax,*omegay,*omegaz;
tagint *tag;
int *type,*mask,*image;
int *molecule;
double *q,*mux,*muy,*muz,*radius,*density,*vfrac,*rmass;
double *s0,*x0x,*x0y,*x0z;
double *shapex,*shapey,*shapez;
double *quatw,*quati,*quatj,*quatk,*angmomx,*angmomy,*angmomz;
int *ellipsoid;
int *bond_type,*angle_type,*dihedral_type,*improper_type;
int *bond_atom1,*bond_atom2;
int *angle_atom1,*angle_atom2,*angle_atom3;
int *dihedral_atom1,*dihedral_atom2,*dihedral_atom3,*dihedral_atom4;
int *improper_atom1,*improper_atom2,*improper_atom3,*improper_atom4;
// functions
Data();
void stats();
void write(FILE *fp, FILE *fp2=NULL);
void write_atom_angle(FILE *, int, int, int, int);
void write_atom_atomic(FILE *, int, int, int, int);
void write_atom_bond(FILE *, int, int, int, int);
void write_atom_charge(FILE *, int, int, int, int);
void write_atom_dipole(FILE *, int, int, int, int);
void write_atom_ellipsoid(FILE *, int, int, int, int);
void write_atom_full(FILE *, int, int, int, int);
void write_atom_molecular(FILE *, int, int, int, int);
void write_atom_peri(FILE *, int, int, int, int);
void write_atom_sphere(FILE *, int, int, int, int);
void write_atom_angle_extra(FILE *, int);
void write_atom_atomic_extra(FILE *, int);
void write_atom_bond_extra(FILE *, int);
void write_atom_charge_extra(FILE *, int);
void write_atom_dipole_extra(FILE *, int);
void write_atom_ellipsoid_extra(FILE *, int);
void write_atom_full_extra(FILE *, int);
void write_atom_molecular_extra(FILE *, int);
void write_atom_peri_extra(FILE *, int);
void write_atom_sphere_extra(FILE *, int);
void write_vel_angle(FILE *, int);
void write_vel_atomic(FILE *, int);
void write_vel_bond(FILE *, int);
void write_vel_charge(FILE *, int);
void write_vel_dipole(FILE *, int);
void write_vel_ellipsoid(FILE *, int);
void write_vel_full(FILE *, int);
void write_vel_molecular(FILE *, int);
void write_vel_peri(FILE *, int);
void write_vel_sphere(FILE *, int);
void write_vel_angle_extra(FILE *, int);
void write_vel_atomic_extra(FILE *, int);
void write_vel_bond_extra(FILE *, int);
void write_vel_charge_extra(FILE *, int);
void write_vel_dipole_extra(FILE *, int);
void write_vel_ellipsoid_extra(FILE *, int);
void write_vel_full_extra(FILE *, int);
void write_vel_molecular_extra(FILE *, int);
void write_vel_peri_extra(FILE *, int);
void write_vel_sphere_extra(FILE *, int);
};
// ---------------------------------------------------------------------
// function prototypes
// ---------------------------------------------------------------------
void header(FILE *, Data &);
void set_style(char *, Data &, int);
void groups(FILE *);
void type_arrays(FILE *, Data &);
void force_fields(FILE *, Data &);
void modify(FILE *);
void pair(FILE *fp, Data &data, char *style, int flag);
void bond(FILE *fp, Data &data);
void angle(FILE *fp, Data &data);
void dihedral(FILE *fp, Data &data);
void improper(FILE *fp, Data &data);
int atom(double *, Data &data);
void allocate_angle(Data &data);
void allocate_atomic(Data &data);
void allocate_bond(Data &data);
void allocate_charge(Data &data);
void allocate_dipole(Data &data);
void allocate_ellipsoid(Data &data);
void allocate_full(Data &data);
void allocate_molecular(Data &data);
void allocate_peri(Data &data);
void allocate_sphere(Data &data);
int atom_angle(double *, Data &, int);
int atom_atomic(double *, Data &, int);
int atom_bond(double *, Data &, int);
int atom_charge(double *, Data &, int);
int atom_dipole(double *, Data &, int);
int atom_ellipsoid(double *, Data &, int);
int atom_full(double *, Data &, int);
int atom_molecular(double *, Data &, int);
int atom_peri(double *, Data &, int);
int atom_sphere(double *, Data &, int);
void strip_suffix(char *, char *);
int read_int(FILE *fp);
double read_double(FILE *fp);
char *read_char(FILE *fp);
bigint read_bigint(FILE *fp);
// ---------------------------------------------------------------------
// main program
// ---------------------------------------------------------------------
int main (int narg, char **arg)
{
// process command-line args
char *suffix = NULL;
int iarg = 1;
while (iarg < narg) {
if (strcmp(arg[iarg],"-s") == 0) {
if (iarg+2 > narg) {
printf("Syntax: restart2data switch arg ... "
"restart-file data-file (input-file)\n");
return 1;
}
suffix = arg[iarg+1];
iarg += 2;
} else break;
}
if ((narg-iarg != 2) && (narg-iarg != 3)) {
printf("Syntax: restart2data switch arg ... "
"restart-file data-file (input-file)\n");
return 1;
}
char *restartfile = arg[iarg];
char *datafile = arg[iarg+1];
char *inputfile = NULL;
if (narg-iarg == 3) inputfile = arg[iarg+2];
// if restart file contains '%', file = filename with % replaced by "base"
// else file = single file
// open single restart file or base file for multiproc case
printf("Reading restart file ...\n");
char *ptr;
FILE *fp;
int multiproc = 0;
if (ptr = strchr(restartfile,'%')) {
multiproc = 1;
char *basefile = new char[strlen(restartfile) + 16];
*ptr = '\0';
sprintf(basefile,"%s%s%s",restartfile,"base",ptr+1);
fp = fopen(basefile,"rb");
if (fp == NULL) {
printf("ERROR: Cannot open restart file %s\n",basefile);
return 1;
}
} else {
fp = fopen(restartfile,"rb");
if (fp == NULL) {
printf("ERROR: Cannot open restart file %s\n",restartfile);
return 1;
}
}
// read beginning of restart file
Data data;
if (suffix) {
int n = strlen(suffix) + 1;
data.suffix = new char[n];
strcpy(data.suffix,suffix);
} else data.suffix = NULL;
header(fp,data);
if (data.size_smallint != sizeof(int) ||
data.size_tagint != sizeof(tagint) ||
data.size_bigint != sizeof(bigint)) {
printf("ERROR: Data type sizes in restart file "
"are incompatible with restart2data.cpp\n");
return 1;
}
groups(fp);
type_arrays(fp,data);
force_fields(fp,data);
modify(fp);
// read atoms from single or multiple restart files
double *buf = NULL;
int n,m;
int maxbuf = 0;
data.iatoms = data.ibonds = data.iangles =
data.idihedrals = data.iimpropers = 0;
for (int iproc = 0; iproc < data.nprocs; iproc++) {
if (multiproc) {
fclose(fp);
char *procfile;
sprintf(procfile,"%s%d%s",restartfile,iproc,ptr+1);
fp = fopen(procfile,"rb");
if (fp == NULL) {
printf("ERROR: Cannot open restart file %s\n",procfile);
return 1;
}
}
n = read_int(fp);
if (n > maxbuf) {
maxbuf = n;
delete [] buf;
buf = new double[maxbuf];
}
fread(buf,sizeof(double),n,fp);
m = 0;
while (m < n) m += atom(&buf[m],data);
}
fclose(fp);
// print out stats
data.stats();
// write out data file and no input file
if (!inputfile) {
printf("Writing data file ...\n");
fp = fopen(datafile,"w");
if (fp == NULL) {
printf("ERROR: Cannot open data file %s\n",datafile);
return 1;
}
data.write(fp);
fclose(fp);
// write out data file and input file
} else {
printf("Writing data file ...\n");
fp = fopen(datafile,"w");
if (fp == NULL) {
printf("ERROR: Cannot open data file %s\n",datafile);
return 1;
}
printf("Writing input file ...\n");
FILE *fp2 = fopen(inputfile,"w");
if (fp2 == NULL) {
printf("ERROR: Cannot open input file %s\n",inputfile);
return 1;
}
data.write(fp,fp2);
fclose(fp);
fclose(fp2);
}
return 0;
}
// ---------------------------------------------------------------------
// read header of restart file
// ---------------------------------------------------------------------
void header(FILE *fp, Data &data)
{
- char *version = "6 Jan 2011";
+ char *version = "25 Jun 2011";
data.triclinic = 0;
int flag;
flag = read_int(fp);
while (flag >= 0) {
if (flag == VERSION) {
data.version = read_char(fp);
if (strcmp(version,data.version) != 0) {
char *str = "Restart file version does not match restart2data version";
printf("WARNING %s\n",str);
printf(" restart2data version = %s\n",version);
}
}
else if (flag == SMALLINT) data.size_smallint = read_int(fp);
else if (flag == TAGINT) data.size_tagint = read_int(fp);
else if (flag == BIGINT) data.size_bigint = read_int(fp);
else if (flag == UNITS) data.unit_style = read_char(fp);
else if (flag == NTIMESTEP) data.ntimestep = read_bigint(fp);
else if (flag == DIMENSION) data.dimension = read_int(fp);
else if (flag == NPROCS) data.nprocs = read_int(fp);
else if (flag == PROCGRID_0) data.px = read_int(fp);
else if (flag == PROCGRID_1) data.py = read_int(fp);
else if (flag == PROCGRID_2) data.pz = read_int(fp);
else if (flag == NEWTON_PAIR) data.newton_pair = read_int(fp);
else if (flag == NEWTON_BOND) data.newton_bond = read_int(fp);
else if (flag == XPERIODIC) data.xperiodic = read_int(fp);
else if (flag == YPERIODIC) data.yperiodic = read_int(fp);
else if (flag == ZPERIODIC) data.zperiodic = read_int(fp);
else if (flag == BOUNDARY_00) data.boundary[0][0] = read_int(fp);
else if (flag == BOUNDARY_01) data.boundary[0][1] = read_int(fp);
else if (flag == BOUNDARY_10) data.boundary[1][0] = read_int(fp);
else if (flag == BOUNDARY_11) data.boundary[1][1] = read_int(fp);
else if (flag == BOUNDARY_20) data.boundary[2][0] = read_int(fp);
else if (flag == BOUNDARY_21) data.boundary[2][1] = read_int(fp);
// if atom_style = hybrid:
// set data_style_hybrid to # of sub-styles
// read additional sub-class arguments
// set sub-styles to 1 to N
else if (flag == ATOM_STYLE) {
data.style_angle = data.style_atomic = data.style_bond =
data.style_charge = data.style_dipole =
data.style_ellipsoid = data.style_full = data.style_hybrid =
data.style_molecular = data.style_peri = data.style_sphere = 0;
data.atom_style = read_char(fp);
strip_suffix(data.atom_style,data.suffix);
set_style(data.atom_style,data,1);
if (strcmp(data.atom_style,"hybrid") == 0) {
int nwords = read_int(fp);
set_style(data.atom_style,data,nwords);
char *substyle;
for (int i = 1; i <= nwords; i++) {
substyle = read_char(fp);
set_style(substyle,data,i);
}
}
}
else if (flag == NATOMS) data.natoms = read_bigint(fp);
else if (flag == NTYPES) data.ntypes = read_int(fp);
else if (flag == NBONDS) data.nbonds = read_bigint(fp);
else if (flag == NBONDTYPES) data.nbondtypes = read_int(fp);
else if (flag == BOND_PER_ATOM) data.bond_per_atom = read_int(fp);
else if (flag == NANGLES) data.nangles = read_bigint(fp);
else if (flag == NANGLETYPES) data.nangletypes = read_int(fp);
else if (flag == ANGLE_PER_ATOM) data.angle_per_atom = read_int(fp);
else if (flag == NDIHEDRALS) data.ndihedrals = read_bigint(fp);
else if (flag == NDIHEDRALTYPES) data.ndihedraltypes = read_int(fp);
else if (flag == DIHEDRAL_PER_ATOM) data.dihedral_per_atom = read_int(fp);
else if (flag == NIMPROPERS) data.nimpropers = read_bigint(fp);
else if (flag == NIMPROPERTYPES) data.nimpropertypes = read_int(fp);
else if (flag == IMPROPER_PER_ATOM) data.improper_per_atom = read_int(fp);
else if (flag == BOXLO_0) data.xlo = read_double(fp);
else if (flag == BOXHI_0) data.xhi = read_double(fp);
else if (flag == BOXLO_1) data.ylo = read_double(fp);
else if (flag == BOXHI_1) data.yhi = read_double(fp);
else if (flag == BOXLO_2) data.zlo = read_double(fp);
else if (flag == BOXHI_2) data.zhi = read_double(fp);
else if (flag == SPECIAL_LJ_1) data.special_lj[1] = read_double(fp);
else if (flag == SPECIAL_LJ_2) data.special_lj[2] = read_double(fp);
else if (flag == SPECIAL_LJ_3) data.special_lj[3] = read_double(fp);
else if (flag == SPECIAL_COUL_1) data.special_coul[1] = read_double(fp);
else if (flag == SPECIAL_COUL_2) data.special_coul[2] = read_double(fp);
else if (flag == SPECIAL_COUL_3) data.special_coul[3] = read_double(fp);
else if (flag == XY) {
data.triclinic = 1;
data.xy = read_double(fp);
} else if (flag == XZ) {
data.triclinic = 1;
data.xz = read_double(fp);
} else if (flag == YZ) {
data.triclinic = 1;
data.yz = read_double(fp);
} else {
printf("ERROR: Invalid flag in header section of restart file %d\n",
flag);
exit(1);
}
flag = read_int(fp);
}
}
// ---------------------------------------------------------------------
// set atom style to flag
// ---------------------------------------------------------------------
void set_style(char *name, Data &data, int flag)
{
if (strcmp(name,"angle") == 0) data.style_angle = flag;
else if (strcmp(name,"atomic") == 0) data.style_atomic = flag;
else if (strcmp(name,"bond") == 0) data.style_bond = flag;
else if (strcmp(name,"charge") == 0) data.style_charge = flag;
else if (strcmp(name,"dipole") == 0) data.style_dipole = flag;
else if (strcmp(name,"ellipsoid") == 0) data.style_ellipsoid = flag;
else if (strcmp(name,"full") == 0) data.style_full = flag;
else if (strcmp(name,"hybrid") == 0) data.style_hybrid = flag;
else if (strcmp(name,"molecular") == 0) data.style_molecular = flag;
else if (strcmp(name,"peri") == 0) data.style_peri = flag;
else if (strcmp(name,"sphere") == 0) data.style_sphere = flag;
else {
printf("ERROR: Unknown atom style %s\n",name);
exit(1);
}
}
// ---------------------------------------------------------------------
// read group info from restart file, just ignore it
// ---------------------------------------------------------------------
void groups(FILE *fp)
{
int ngroup = read_int(fp);
int n;
char *name;
// use count to not change restart format with deleted groups
// remove this on next major release
int count = 0;
for (int i = 0; i < MAX_GROUP; i++) {
name = read_char(fp);
delete [] name;
count++;
if (count == ngroup) break;
}
}
// ---------------------------------------------------------------------
// read type arrays from restart file
// ---------------------------------------------------------------------
void type_arrays(FILE *fp, Data &data)
{
data.mass = NULL;
int flag;
flag = read_int(fp);
while (flag >= 0) {
if (flag == MASS) {
data.mass = new double[data.ntypes+1];
fread(&data.mass[1],sizeof(double),data.ntypes,fp);
} else {
printf("ERROR: Invalid flag in type arrays section of restart file %d\n",
flag);
exit(1);
}
flag = read_int(fp);
}
}
// ---------------------------------------------------------------------
// read force-field info from restart file
// ---------------------------------------------------------------------
void force_fields(FILE *fp, Data &data)
{
data.pair_style = data.bond_style = data.angle_style =
data.dihedral_style = data.improper_style = NULL;
int flag;
flag = read_int(fp);
while (flag >= 0) {
if (flag == PAIR) {
data.pair_style = read_char(fp);
strip_suffix(data.pair_style,data.suffix);
pair(fp,data,data.pair_style,1);
} else if (flag == BOND) {
data.bond_style = read_char(fp);
strip_suffix(data.bond_style,data.suffix);
bond(fp,data);
} else if (flag == ANGLE) {
data.angle_style = read_char(fp);
strip_suffix(data.angle_style,data.suffix);
angle(fp,data);
} else if (flag == DIHEDRAL) {
data.dihedral_style = read_char(fp);
strip_suffix(data.dihedral_style,data.suffix);
dihedral(fp,data);
} else if (flag == IMPROPER) {
data.improper_style = read_char(fp);
strip_suffix(data.improper_style,data.suffix);
improper(fp,data);
} else {
printf("ERROR: Invalid flag in force fields section of restart file %d\n",
flag);
exit(1);
}
flag = read_int(fp);
}
}
// ---------------------------------------------------------------------
// read fix info from restart file, just ignore it
// ---------------------------------------------------------------------
void modify(FILE *fp)
{
char *buf;
int n;
// nfix = # of fix entries with state
int nfix = read_int(fp);
// read each entry with id string, style string, chunk of data
for (int i = 0; i < nfix; i++) {
buf = read_char(fp); delete [] buf;
buf = read_char(fp); delete [] buf;
buf = read_char(fp); delete [] buf;
}
// nfix = # of fix entries with peratom info
int nfix_peratom = read_int(fp);
// read each entry with id string, style string, maxsize of one atom data
for (int i = 0; i < nfix_peratom; i++) {
buf = read_char(fp); delete [] buf;
buf = read_char(fp); delete [] buf;
n = read_int(fp);
}
}
// ---------------------------------------------------------------------
// read atom info from restart file and store in data struct
// ---------------------------------------------------------------------
int atom(double *buf, Data &data)
{
// allocate per-atom arrays
if (data.iatoms == 0) {
// common to all atom styles
data.x = new double[data.natoms];
data.y = new double[data.natoms];
data.z = new double[data.natoms];
data.tag = new int[data.natoms];
data.type = new int[data.natoms];
data.mask = new int[data.natoms];
data.image = new int[data.natoms];
data.vx = new double[data.natoms];
data.vy = new double[data.natoms];
data.vz = new double[data.natoms];
// style-specific arrays
// don't worry about re-allocating if style = hybrid
if (data.style_angle) allocate_angle(data);
if (data.style_atomic) allocate_atomic(data);
if (data.style_bond) allocate_bond(data);
if (data.style_charge) allocate_charge(data);
if (data.style_dipole) allocate_dipole(data);
if (data.style_ellipsoid) allocate_ellipsoid(data);
if (data.style_full) allocate_full(data);
if (data.style_molecular) allocate_molecular(data);
if (data.style_peri) allocate_peri(data);
if (data.style_sphere) allocate_sphere(data);
}
// read atom quantities from buf
// if hybrid, loop over all sub-styles in order listed
// if hybrid, loop index k will match style setting to insure correct order
int nloop = 1;
if (data.style_hybrid) nloop = data.style_hybrid;
int iatoms = data.iatoms;
int m = 0;
for (int k = 1; k <= nloop; k++) {
if (k == data.style_angle) m += atom_angle(&buf[m],data,iatoms);
if (k == data.style_atomic) m += atom_atomic(&buf[m],data,iatoms);
if (k == data.style_bond) m += atom_bond(&buf[m],data,iatoms);
if (k == data.style_charge) m += atom_charge(&buf[m],data,iatoms);
if (k == data.style_dipole) m += atom_dipole(&buf[m],data,iatoms);
if (k == data.style_ellipsoid) m += atom_ellipsoid(&buf[m],data,iatoms);
if (k == data.style_full) m += atom_full(&buf[m],data,iatoms);
if (k == data.style_molecular) m += atom_molecular(&buf[m],data,iatoms);
if (k == data.style_peri) m += atom_peri(&buf[m],data,iatoms);
if (k == data.style_sphere) m += atom_sphere(&buf[m],data,iatoms);
}
data.iatoms++;
m = static_cast<int> (buf[0]);
return m;
}
// ---------------------------------------------------------------------
// read one atom's info from buffer
// one routine per atom style
// ---------------------------------------------------------------------
int atom_angle(double *buf, Data &data, int iatoms)
{
int type,atom1,atom2,atom3;
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.molecule[iatoms] = static_cast<int> (buf[m++]);
int n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] < atom1) {
data.bond_type[data.ibonds] = type;
data.bond_atom1[data.ibonds] = data.tag[iatoms];
data.bond_atom2[data.ibonds] = atom1;
data.ibonds++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.angle_type[data.iangles] = type;
data.angle_atom1[data.iangles] = atom1;
data.angle_atom2[data.iangles] = atom2;
data.angle_atom3[data.iangles] = atom3;
data.iangles++;
}
}
return m;
}
int atom_atomic(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
return m;
}
int atom_bond(double *buf, Data &data, int iatoms)
{
int type,atom1;
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.molecule[iatoms] = static_cast<int> (buf[m++]);
int n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] < atom1) {
data.bond_type[data.ibonds] = type;
data.bond_atom1[data.ibonds] = data.tag[iatoms];
data.bond_atom2[data.ibonds] = atom1;
data.ibonds++;
}
}
return m;
}
int atom_charge(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.q[iatoms] = buf[m++];
return m;
}
int atom_dipole(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.q[iatoms] = buf[m++];
data.mux[iatoms] = buf[m++];
data.muy[iatoms] = buf[m++];
data.muz[iatoms] = buf[m++];
return m;
}
int atom_ellipsoid(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.rmass[iatoms] = buf[m++];
data.angmomx[iatoms] = buf[m++];
data.angmomy[iatoms] = buf[m++];
data.angmomz[iatoms] = buf[m++];
data.ellipsoid[iatoms] = static_cast<int> (buf[m++]);
if (data.ellipsoid[iatoms]) {
data.nellipsoids++;
data.shapex[iatoms] = buf[m++];
data.shapey[iatoms] = buf[m++];
data.shapez[iatoms] = buf[m++];
data.quatw[iatoms] = buf[m++];
data.quati[iatoms] = buf[m++];
data.quatj[iatoms] = buf[m++];
data.quatk[iatoms] = buf[m++];
data.density[iatoms] = data.rmass[iatoms] /
(4.0*PI/3.0 *
data.shapex[iatoms]*data.shapey[iatoms]*data.shapez[iatoms]);
} else data.density[iatoms] = data.rmass[iatoms];
return m;
}
int atom_sphere(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.radius[iatoms] = buf[m++];
data.rmass[iatoms] = buf[m++];
if (data.radius[iatoms] == 0.0) data.density[iatoms] = data.rmass[iatoms];
else
data.density[iatoms] = data.rmass[iatoms] /
(4.0*PI/3.0 *
data.radius[iatoms]*data.radius[iatoms]*data.radius[iatoms]);
data.omegax[iatoms] = buf[m++];
data.omegay[iatoms] = buf[m++];
data.omegaz[iatoms] = buf[m++];
return m;
}
int atom_full(double *buf, Data &data, int iatoms)
{
int type,atom1,atom2,atom3,atom4;
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.q[iatoms] = buf[m++];
data.molecule[iatoms] = static_cast<int> (buf[m++]);
int n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] < atom1) {
data.bond_type[data.ibonds] = type;
data.bond_atom1[data.ibonds] = data.tag[iatoms];
data.bond_atom2[data.ibonds] = atom1;
data.ibonds++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.angle_type[data.iangles] = type;
data.angle_atom1[data.iangles] = atom1;
data.angle_atom2[data.iangles] = atom2;
data.angle_atom3[data.iangles] = atom3;
data.iangles++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
atom4 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.dihedral_type[data.idihedrals] = type;
data.dihedral_atom1[data.idihedrals] = atom1;
data.dihedral_atom2[data.idihedrals] = atom2;
data.dihedral_atom3[data.idihedrals] = atom3;
data.dihedral_atom4[data.idihedrals] = atom4;
data.idihedrals++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
atom4 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.improper_type[data.iimpropers] = type;
data.improper_atom1[data.iimpropers] = atom1;
data.improper_atom2[data.iimpropers] = atom2;
data.improper_atom3[data.iimpropers] = atom3;
data.improper_atom4[data.iimpropers] = atom4;
data.iimpropers++;
}
}
return m;
}
int atom_molecular(double *buf, Data &data, int iatoms)
{
int type,atom1,atom2,atom3,atom4;
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.molecule[iatoms] = static_cast<int> (buf[m++]);
int n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] < atom1) {
data.bond_type[data.ibonds] = type;
data.bond_atom1[data.ibonds] = data.tag[iatoms];
data.bond_atom2[data.ibonds] = atom1;
data.ibonds++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.angle_type[data.iangles] = type;
data.angle_atom1[data.iangles] = atom1;
data.angle_atom2[data.iangles] = atom2;
data.angle_atom3[data.iangles] = atom3;
data.iangles++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
atom4 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.dihedral_type[data.idihedrals] = type;
data.dihedral_atom1[data.idihedrals] = atom1;
data.dihedral_atom2[data.idihedrals] = atom2;
data.dihedral_atom3[data.idihedrals] = atom3;
data.dihedral_atom4[data.idihedrals] = atom4;
data.idihedrals++;
}
}
n = static_cast<int> (buf[m++]);
for (int k = 0; k < n; k++) {
type = static_cast<int> (buf[m++]);
atom1 = static_cast<int> (buf[m++]);
atom2 = static_cast<int> (buf[m++]);
atom3 = static_cast<int> (buf[m++]);
atom4 = static_cast<int> (buf[m++]);
if (data.newton_bond || data.tag[iatoms] == atom2) {
data.improper_type[data.iimpropers] = type;
data.improper_atom1[data.iimpropers] = atom1;
data.improper_atom2[data.iimpropers] = atom2;
data.improper_atom3[data.iimpropers] = atom3;
data.improper_atom4[data.iimpropers] = atom4;
data.iimpropers++;
}
}
return m;
}
int atom_peri(double *buf, Data &data, int iatoms)
{
int m = 1;
data.x[iatoms] = buf[m++];
data.y[iatoms] = buf[m++];
data.z[iatoms] = buf[m++];
data.tag[iatoms] = static_cast<int> (buf[m++]);
data.type[iatoms] = static_cast<int> (buf[m++]);
data.mask[iatoms] = static_cast<int> (buf[m++]);
data.image[iatoms] = static_cast<int> (buf[m++]);
data.vx[iatoms] = buf[m++];
data.vy[iatoms] = buf[m++];
data.vz[iatoms] = buf[m++];
data.vfrac[iatoms] = buf[m++];
data.rmass[iatoms] = buf[m++];
data.s0[iatoms] = buf[m++];
data.x0x[iatoms] = buf[m++];
data.x0y[iatoms] = buf[m++];
data.x0z[iatoms] = buf[m++];
return m;
}
// ---------------------------------------------------------------------
// per-atom memory allocation routines
// one routine per atom style
// ---------------------------------------------------------------------
void allocate_angle(Data &data)
{
data.molecule = new int[data.natoms];
data.bond_type = new int[data.nbonds];
data.bond_atom1 = new int[data.nbonds];
data.bond_atom2 = new int[data.nbonds];
data.angle_type = new int[data.nangles];
data.angle_atom1 = new int[data.nangles];
data.angle_atom2 = new int[data.nangles];
data.angle_atom3 = new int[data.nangles];
}
void allocate_atomic(Data &data) {}
void allocate_bond(Data &data)
{
data.molecule = new int[data.natoms];
data.bond_type = new int[data.nbonds];
data.bond_atom1 = new int[data.nbonds];
data.bond_atom2 = new int[data.nbonds];
}
void allocate_charge(Data &data)
{
data.q = new double[data.natoms];
}
void allocate_dipole(Data &data)
{
data.q = new double[data.natoms];
data.mux = new double[data.natoms];
data.muy = new double[data.natoms];
data.muz = new double[data.natoms];
}
void allocate_full(Data &data)
{
data.q = new double[data.natoms];
data.molecule = new int[data.natoms];
data.bond_type = new int[data.nbonds];
data.bond_atom1 = new int[data.nbonds];
data.bond_atom2 = new int[data.nbonds];
data.angle_type = new int[data.nangles];
data.angle_atom1 = new int[data.nangles];
data.angle_atom2 = new int[data.nangles];
data.angle_atom3 = new int[data.nangles];
data.dihedral_type = new int[data.ndihedrals];
data.dihedral_atom1 = new int[data.ndihedrals];
data.dihedral_atom2 = new int[data.ndihedrals];
data.dihedral_atom3 = new int[data.ndihedrals];
data.dihedral_atom4 = new int[data.ndihedrals];
data.improper_type = new int[data.nimpropers];
data.improper_atom1 = new int[data.nimpropers];
data.improper_atom2 = new int[data.nimpropers];
data.improper_atom3 = new int[data.nimpropers];
data.improper_atom4 = new int[data.nimpropers];
}
void allocate_ellipsoid(Data &data)
{
data.rmass = new double[data.natoms];
data.density = new double[data.natoms];
data.angmomx = new double[data.natoms];
data.angmomy = new double[data.natoms];
data.angmomz = new double[data.natoms];
data.ellipsoid = new int[data.natoms];
data.quatw = new double[data.natoms];
data.shapex = new double[data.natoms];
data.shapey = new double[data.natoms];
data.shapez = new double[data.natoms];
data.quati = new double[data.natoms];
data.quatj = new double[data.natoms];
data.quatk = new double[data.natoms];
}
void allocate_sphere(Data &data)
{
data.radius = new double[data.natoms];
data.rmass = new double[data.natoms];
data.density = new double[data.natoms];
data.omegax = new double[data.natoms];
data.omegay = new double[data.natoms];
data.omegaz = new double[data.natoms];
}
void allocate_molecular(Data &data)
{
data.molecule = new int[data.natoms];
data.bond_type = new int[data.nbonds];
data.bond_atom1 = new int[data.nbonds];
data.bond_atom2 = new int[data.nbonds];
data.angle_type = new int[data.nangles];
data.angle_atom1 = new int[data.nangles];
data.angle_atom2 = new int[data.nangles];
data.angle_atom3 = new int[data.nangles];
data.dihedral_type = new int[data.ndihedrals];
data.dihedral_atom1 = new int[data.ndihedrals];
data.dihedral_atom2 = new int[data.ndihedrals];
data.dihedral_atom3 = new int[data.ndihedrals];
data.dihedral_atom4 = new int[data.ndihedrals];
data.improper_type = new int[data.nimpropers];
data.improper_atom1 = new int[data.nimpropers];
data.improper_atom2 = new int[data.nimpropers];
data.improper_atom3 = new int[data.nimpropers];
data.improper_atom4 = new int[data.nimpropers];
}
void allocate_peri(Data &data)
{
data.vfrac = new double[data.natoms];
data.rmass = new double[data.natoms];
data.s0 = new double[data.natoms];
data.x0x = new double[data.natoms];
data.x0y = new double[data.natoms];
data.x0z = new double[data.natoms];
}
// ---------------------------------------------------------------------
// pair coeffs
// one section for each pair style
// flag = 1, read all coeff info and allocation arrays
// flag = 0, just read global settings (when called recursively by hybrid)
// ---------------------------------------------------------------------
void pair(FILE *fp, Data &data, char *style, int flag)
{
int i,j,m;
int itmp;
double rtmp;
if (strcmp(style,"none") == 0) {
+ } else if (strcmp(style,"adp") == 0) {
} else if (strcmp(style,"airebo") == 0) {
} else if (strcmp(style,"born/coul/long") == 0) {
double cut_lj_global = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_born_A = new double[data.ntypes+1];
data.pair_born_rho = new double[data.ntypes+1];
data.pair_born_sigma = new double[data.ntypes+1];
data.pair_born_C = new double[data.ntypes+1];
data.pair_born_D = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_born_A[i] = read_double(fp);
data.pair_born_rho[i] = read_double(fp);
data.pair_born_sigma[i] = read_double(fp);
data.pair_born_C[i] = read_double(fp);
data.pair_born_D[i] = read_double(fp);
double cut_lj = read_double(fp);
} else {
double born_A = read_double(fp);
double born_rho = read_double(fp);
double born_sigma = read_double(fp);
double born_C = read_double(fp);
double born_D = read_double(fp);
double cut_lj = read_double(fp);
}
}
}
} else if ((strcmp(style,"buck") == 0) ||
(strcmp(style,"buck/coul/cut") == 0) ||
(strcmp(style,"buck/coul/long") == 0) ||
(strcmp(style,"buck/coul") == 0)) {
if (strcmp(style,"buck") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"buck/coul/cut") == 0) {
m = 1;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"buck/coul/long") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"buck/coul") == 0) {
m = 0;
double cut_buck_global = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
int ewald_order = read_int(fp);
}
if (!flag) return;
data.pair_buck_A = new double[data.ntypes+1];
data.pair_buck_rho = new double[data.ntypes+1];
data.pair_buck_C = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_buck_A[i] = read_double(fp);
data.pair_buck_rho[i] = read_double(fp);
data.pair_buck_C[i] = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
} else {
double buck_A = read_double(fp);
double buck_rho = read_double(fp);
double buck_C = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
}
}
}
} else if (strcmp(style,"colloid") == 0) {
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_colloid_A12 = new double[data.ntypes+1];
data.pair_colloid_sigma = new double[data.ntypes+1];
data.pair_colloid_d1 = new double[data.ntypes+1];
data.pair_colloid_d2 = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_colloid_A12[i] = read_double(fp);
data.pair_colloid_sigma[i] = read_double(fp);
data.pair_colloid_d1[i] = read_double(fp);
data.pair_colloid_d2[i] = read_double(fp);
double cut_lj = read_double(fp);
} else {
double colloid_A12 = read_double(fp);
double colloid_sigma = read_double(fp);
double colloid_d1 = read_double(fp);
double colloid_d2 = read_double(fp);
double cut_lj = read_double(fp);
}
}
}
} else if ((strcmp(style,"coul/cut") == 0) ||
(strcmp(style,"coul/debye") == 0) ||
(strcmp(style,"coul/long") == 0)) {
if (strcmp(style,"coul/cut") == 0) {
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"coul/debye") == 0) {
m = 1;
double cut_coul = read_double(fp);
double kappa = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"coul/long") == 0) {
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
}
if (!flag) return;
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
double cut_coul = read_double(fp);
} else {
double cut_coul = read_double(fp);
}
}
}
} else if (strcmp(style,"dipole/cut") == 0) {
double cut_lj_global = read_double(fp);
double cut_coul_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_dipole_epsilon = new double[data.ntypes+1];
data.pair_dipole_sigma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_dipole_epsilon[i] = read_double(fp);
data.pair_dipole_sigma[i] = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul = read_double(fp);
} else {
double dipole_epsilon = read_double(fp);
double dipole_sigma = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul = read_double(fp);
}
}
}
} else if (strcmp(style,"dpd") == 0) {
double temperature = read_double(fp);
double cut_global = read_double(fp);
int seed = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_dpd_a0 = new double[data.ntypes+1];
data.pair_dpd_gamma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_dpd_a0[i] = read_double(fp);
data.pair_dpd_gamma[i] = read_double(fp);
double cut = read_double(fp);
} else {
double dpd_a0 = read_double(fp);
double dpd_gamma = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"dpd/tstat") == 0) {
double tstart = read_double(fp);
double tstop = read_double(fp);
double cut_global = read_double(fp);
int seed = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_dpd_a0 = new double[data.ntypes+1];
data.pair_dpd_gamma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_dpd_a0[i] = read_double(fp);
data.pair_dpd_gamma[i] = read_double(fp);
double cut = read_double(fp);
} else {
double dpd_a0 = read_double(fp);
double dpd_gamma = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"eam") == 0) {
} else if (strcmp(style,"eam/alloy") == 0) {
} else if (strcmp(style,"eam/fs") == 0) {
} else if (strcmp(style,"eim") == 0) {
} else if (strcmp(style,"eff/cut") == 0) {
double cut_coul = read_double(fp);
int limit_size_flag = read_int(fp);
int flexible_pressure_flag = read_int(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
double cut = read_double(fp);
} else {
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"gayberne") == 0) {
double gamma = read_double(fp);
double upsilon = read_double(fp);
double mu = read_double(fp);
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_gb_epsilon = new double[data.ntypes+1];
data.pair_gb_sigma = new double[data.ntypes+1];
data.pair_gb_epsa = new double[data.ntypes+1];
data.pair_gb_epsb = new double[data.ntypes+1];
data.pair_gb_epsc = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++) {
itmp = read_int(fp);
if (itmp) {
data.pair_gb_epsa[i] = read_double(fp);
data.pair_gb_epsb[i] = read_double(fp);
data.pair_gb_epsc[i] = read_double(fp);
data.pair_gb_epsa[i] = pow(data.pair_gb_epsa[i],-mu);
data.pair_gb_epsb[i] = pow(data.pair_gb_epsb[i],-mu);
data.pair_gb_epsc[i] = pow(data.pair_gb_epsc[i],-mu);
}
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_gb_epsilon[i] = read_double(fp);
data.pair_gb_sigma[i] = read_double(fp);
double cut = read_double(fp);
} else {
double gb_epsilon = read_double(fp);
double gb_sigma = read_double(fp);
double cut = read_double(fp);
}
}
}
}
} else if ((strcmp(style,"gran/hooke") == 0) ||
(strcmp(style,"gran/hooke/history") == 0) ||
(strcmp(style,"gran/hertz/history") == 0)) {
double kn = read_double(fp);
double kt = read_double(fp);
double gamman = read_double(fp);
double gammat = read_double(fp);
double xmu = read_double(fp);
int dampflag = read_int(fp);
+ if (!flag) return;
+
+ for (i = 1; i <= data.ntypes; i++) {
+ for (j = i; j <= data.ntypes; j++) {
+ itmp = read_int(fp);
+ if (i == j && itmp == 0) {
+ printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
+ exit(1);
+ }
+ }
+ }
+
} else if ((strcmp(style,"lj/charmm/coul/charmm") == 0) ||
(strcmp(style,"lj/charmm/coul/charmm/implicit") == 0) ||
(strcmp(style,"lj/charmm/coul/long") == 0)) {
if (strcmp(style,"lj/charmm/coul/charmm") == 0) {
double cut_lj_inner = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul_inner = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/charmm/coul/charmm/implicit") == 0) {
double cut_lj_inner = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul_inner = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/charmm/coul/long") == 0) {
double cut_lj_inner = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
}
if (!flag) return;
data.pair_charmm_epsilon = new double[data.ntypes+1];
data.pair_charmm_sigma = new double[data.ntypes+1];
data.pair_charmm_eps14 = new double[data.ntypes+1];
data.pair_charmm_sigma14 = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_charmm_epsilon[i] = read_double(fp);
data.pair_charmm_sigma[i] = read_double(fp);
data.pair_charmm_eps14[i] = read_double(fp);
data.pair_charmm_sigma14[i] = read_double(fp);
} else {
double charmm_epsilon = read_double(fp);
double charmm_sigma = read_double(fp);
double charmm_eps14 = read_double(fp);
double charmm_sigma14 = read_double(fp);
}
}
}
} else if ((strcmp(style,"lj/class2") == 0) ||
(strcmp(style,"lj/class2/coul/cut") == 0) ||
(strcmp(style,"lj/class2/coul/long") == 0)) {
if (strcmp(style,"lj/class2") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/class2/coul/cut") == 0) {
m = 1;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/class2/coul/long") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
}
if (!flag) return;
data.pair_class2_epsilon = new double[data.ntypes+1];
data.pair_class2_sigma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_class2_epsilon[i] = read_double(fp);
data.pair_class2_sigma[i] = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
} else {
double class2_epsilon = read_double(fp);
double class2_sigma = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
}
}
}
} else if ((strcmp(style,"lj/cut") == 0) ||
+ (strcmp(style,"lj96/cut") == 0) ||
(strcmp(style,"lj/cut/coul/cut") == 0) ||
(strcmp(style,"lj/cut/coul/debye") == 0) ||
(strcmp(style,"lj/cut/coul/long") == 0) ||
(strcmp(style,"lj/cut/coul/long/tip4p") == 0) ||
(strcmp(style,"lj/coul") == 0)) {
if (strcmp(style,"lj/cut") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
+ } else if (strcmp(style,"lj96/cut") == 0) {
+ m = 0;
+ double cut_lj_global = read_double(fp);
+ int offset_flag = read_int(fp);
+ int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/cut/coul/cut") == 0) {
m = 1;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/cut/coul/debye") == 0) {
m = 1;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
double kappa = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/cut/coul/long") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/cut/coul/long/tip4p") == 0) {
m = 0;
int typeO = read_int(fp);
int typeH = read_int(fp);
int typeB = read_int(fp);
int typeA = read_int(fp);
double qdist = read_double(fp);
double cut_lj_global = read_double(fp);
double cut_lj_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/coul") == 0) {
m = 0;
double cut_lj_global = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
int ewald_order = read_int(fp);
}
if (!flag) return;
data.pair_lj_epsilon = new double[data.ntypes+1];
data.pair_lj_sigma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_lj_epsilon[i] = read_double(fp);
data.pair_lj_sigma[i] = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
} else {
double lj_epsilon = read_double(fp);
double lj_sigma = read_double(fp);
double cut_lj = read_double(fp);
if (m) double cut_coul = read_double(fp);
}
}
}
} else if (strcmp(style,"lj/expand") == 0) {
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_ljexpand_epsilon = new double[data.ntypes+1];
data.pair_ljexpand_sigma = new double[data.ntypes+1];
data.pair_ljexpand_shift = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_ljexpand_epsilon[i] = read_double(fp);
data.pair_ljexpand_sigma[i] = read_double(fp);
data.pair_ljexpand_shift[i] = read_double(fp);
double cut_lj = read_double(fp);
} else {
double ljexpand_epsilon = read_double(fp);
double ljexpand_sigma = read_double(fp);
double ljexpand_shift = read_double(fp);
double cut_lj = read_double(fp);
}
}
}
} else if ((strcmp(style,"lj/gromacs") == 0) ||
(strcmp(style,"lj/gromacs/coul/gromacs") == 0)) {
if (strcmp(style,"lj/gromacs") == 0) {
m = 1;
double cut_inner_global = read_double(fp);
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if (strcmp(style,"lj/gromacs/coul/gromacs") == 0) {
m = 0;
double cut_lj_inner_global = read_double(fp);
double cut_lj = read_double(fp);
double cut_coul_inner_global = read_double(fp);
double cut_coul = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
}
if (!flag) return;
data.pair_ljgromacs_epsilon = new double[data.ntypes+1];
data.pair_ljgromacs_sigma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_ljgromacs_epsilon[i] = read_double(fp);
data.pair_ljgromacs_sigma[i] = read_double(fp);
if (m) {
double cut_inner = read_double(fp);
double cut = read_double(fp);
}
} else {
double ljgromacs_epsilon = read_double(fp);
double ljgromacs_sigma = read_double(fp);
if (m) {
double cut_inner = read_double(fp);
double cut = read_double(fp);
}
}
}
}
} else if (strcmp(style,"lj/smooth") == 0) {
double cut_inner_global = read_double(fp);
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_ljsmooth_epsilon = new double[data.ntypes+1];
data.pair_ljsmooth_sigma = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_ljsmooth_epsilon[i] = read_double(fp);
data.pair_ljsmooth_sigma[i] = read_double(fp);
double cut_inner = read_double(fp);
double cut = read_double(fp);
} else {
double ljsmooth_epsilon = read_double(fp);
double ljsmooth_sigma = read_double(fp);
double cut_inner = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"meam") == 0) {
} else if (strcmp(style,"morse") == 0) {
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_morse_d0 = new double[data.ntypes+1];
data.pair_morse_alpha = new double[data.ntypes+1];
data.pair_morse_r0 = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_morse_d0[i] = read_double(fp);
data.pair_morse_alpha[i] = read_double(fp);
data.pair_morse_r0[i] = read_double(fp);
double cut = read_double(fp);
} else {
double morse_d0 = read_double(fp);
double morse_alpha = read_double(fp);
double morse_r0 = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"reax") == 0) {
} else if (strcmp(style,"reax/c") == 0) {
} else if (strcmp(style,"soft") == 0) {
double cut_global = read_double(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_soft_A = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_soft_A[i] = read_double(fp);
double cut = read_double(fp);
} else {
double soft_A = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if (strcmp(style,"sw") == 0) {
} else if (strcmp(style,"table") == 0) {
int tabstyle = read_int(fp);
int n = read_int(fp);
} else if (strcmp(style,"tersoff") == 0) {
} else if (strcmp(style,"tersoff/zbl") == 0) {
} else if (strcmp(style,"yukawa") == 0) {
double kappa = read_double(fp);
double cut_global = read_double(fp);
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
if (!flag) return;
data.pair_yukawa_A = new double[data.ntypes+1];
for (i = 1; i <= data.ntypes; i++)
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
if (i == j) {
data.pair_yukawa_A[i] = read_double(fp);
double cut = read_double(fp);
} else {
double yukawa_A = read_double(fp);
double cut = read_double(fp);
}
}
}
} else if ((strcmp(style,"cg/cmm") == 0) ||
(strcmp(style,"cg/cmm/coul/cut") == 0) ||
(strcmp(style,"cg/cmm/coul/long") == 0)) {
m = 0;
data.cut_lj_global = read_double(fp);
data.cut_coul_global = read_double(fp);
data.kappa = read_double(fp);
data.offset_flag = read_int(fp);
data.mix_flag = read_int(fp);
if (!flag) return;
const int numtyp=data.ntypes+1;
data.pair_cg_cmm_type = new int*[numtyp];
data.pair_setflag = new int*[numtyp];
data.pair_cg_epsilon = new double*[numtyp];
data.pair_cg_sigma = new double*[numtyp];
data.pair_cut_lj = new double*[numtyp];
if ((strcmp(style,"cg/cmm/coul/cut") == 0) ||
(strcmp(style,"cg/cmm/coul/long") == 0)) {
data.pair_cut_coul = new double*[numtyp];
m=1;
} else {
data.pair_cut_coul = NULL;
m=0;
}
for (i = 1; i <= data.ntypes; i++) {
data.pair_cg_cmm_type[i] = new int[numtyp];
data.pair_setflag[i] = new int[numtyp];
data.pair_cg_epsilon[i] = new double[numtyp];
data.pair_cg_sigma[i] = new double[numtyp];
data.pair_cut_lj[i] = new double[numtyp];
if ((strcmp(style,"cg/cmm/coul/cut") == 0) ||
(strcmp(style,"cg/cmm/coul/long") == 0)) {
data.pair_cut_coul[i] = new double[numtyp];
}
for (j = i; j <= data.ntypes; j++) {
itmp = read_int(fp);
data.pair_setflag[i][j] = itmp;
if (i == j && itmp == 0) {
printf("ERROR: Pair coeff %d,%d is not in restart file\n",i,j);
exit(1);
}
if (itmp) {
data.pair_cg_cmm_type[i][j] = read_int(fp);
data.pair_cg_epsilon[i][j] = read_double(fp);
data.pair_cg_sigma[i][j] = read_double(fp);
data.pair_cut_lj[i][j] = read_double(fp);
if (m) {
data.pair_cut_lj[i][j] = read_double(fp);
data.pair_cut_coul[i][j] = read_double(fp);
}
}
}
}
} else if ((strcmp(style,"hybrid") == 0) ||
(strcmp(style,"hybrid/overlay") == 0)) {
// for each substyle of hybrid,
// read its settings by calling pair() recursively with flag = 0
// so that coeff array allocation is skipped
int nstyles = read_int(fp);
for (int i = 0; i < nstyles; i++) {
char *substyle = read_char(fp);
pair(fp,data,substyle,0);
}
} else {
printf("ERROR: Unknown pair style %s\n",style);
exit(1);
}
}
// ---------------------------------------------------------------------
// bond coeffs
// one section for each bond style
// ---------------------------------------------------------------------
void bond(FILE *fp, Data &data)
{
if (strcmp(data.bond_style,"none") == 0) {
} else if (strcmp(data.bond_style,"class2") == 0) {
data.bond_class2_r0 = new double[data.nbondtypes+1];
data.bond_class2_k2 = new double[data.nbondtypes+1];
data.bond_class2_k3 = new double[data.nbondtypes+1];
data.bond_class2_k4 = new double[data.nbondtypes+1];
fread(&data.bond_class2_r0[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_class2_k2[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_class2_k3[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_class2_k4[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"fene") == 0) {
data.bond_fene_k = new double[data.nbondtypes+1];
data.bond_fene_r0 = new double[data.nbondtypes+1];
data.bond_fene_epsilon = new double[data.nbondtypes+1];
data.bond_fene_sigma = new double[data.nbondtypes+1];
fread(&data.bond_fene_k[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_fene_r0[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_fene_epsilon[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_fene_sigma[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"fene/expand") == 0) {
data.bond_feneexpand_k = new double[data.nbondtypes+1];
data.bond_feneexpand_r0 = new double[data.nbondtypes+1];
data.bond_feneexpand_epsilon = new double[data.nbondtypes+1];
data.bond_feneexpand_sigma = new double[data.nbondtypes+1];
data.bond_feneexpand_shift = new double[data.nbondtypes+1];
fread(&data.bond_feneexpand_k[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_feneexpand_r0[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_feneexpand_epsilon[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_feneexpand_sigma[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_feneexpand_shift[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"harmonic") == 0) {
data.bond_harmonic_k = new double[data.nbondtypes+1];
data.bond_harmonic_r0 = new double[data.nbondtypes+1];
fread(&data.bond_harmonic_k[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_harmonic_r0[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"morse") == 0) {
data.bond_morse_d0 = new double[data.nbondtypes+1];
data.bond_morse_alpha = new double[data.nbondtypes+1];
data.bond_morse_r0 = new double[data.nbondtypes+1];
fread(&data.bond_morse_d0[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_morse_alpha[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_morse_r0[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"nonlinear") == 0) {
data.bond_nonlinear_epsilon = new double[data.nbondtypes+1];
data.bond_nonlinear_r0 = new double[data.nbondtypes+1];
data.bond_nonlinear_lamda = new double[data.nbondtypes+1];
fread(&data.bond_nonlinear_epsilon[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_nonlinear_r0[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_nonlinear_lamda[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"quartic") == 0) {
data.bond_quartic_k = new double[data.nbondtypes+1];
data.bond_quartic_b1 = new double[data.nbondtypes+1];
data.bond_quartic_b2 = new double[data.nbondtypes+1];
data.bond_quartic_rc = new double[data.nbondtypes+1];
data.bond_quartic_u0 = new double[data.nbondtypes+1];
fread(&data.bond_quartic_k[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_quartic_b1[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_quartic_b2[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_quartic_rc[1],sizeof(double),data.nbondtypes,fp);
fread(&data.bond_quartic_u0[1],sizeof(double),data.nbondtypes,fp);
} else if (strcmp(data.bond_style,"table") == 0) {
int tabstyle = read_int(fp);
int n = read_int(fp);
} else if (strcmp(data.bond_style,"hybrid") == 0) {
int nstyles = read_int(fp);
for (int i = 0; i < nstyles; i++)
char *substyle = read_char(fp);
} else {
printf("ERROR: Unknown bond style %s\n",data.bond_style);
exit(1);
}
}
// ---------------------------------------------------------------------
// angle coeffs
// one section for each angle style
// ---------------------------------------------------------------------
void angle(FILE *fp, Data &data)
{
if (strcmp(data.angle_style,"none") == 0) {
} else if (strcmp(data.angle_style,"cg/cmm") == 0) {
data.angle_harmonic_k = new double[data.nangletypes+1];
data.angle_harmonic_theta0 = new double[data.nangletypes+1];
data.angle_cg_cmm_epsilon = new double[data.nangletypes+1];
data.angle_cg_cmm_sigma = new double[data.nangletypes+1];
double *angle_cg_cmm_rcut = new double[data.nangletypes+1];
data.angle_cg_cmm_type = new int[data.nangletypes+1];
fread(&data.angle_harmonic_k[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_harmonic_theta0[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_cg_cmm_epsilon[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_cg_cmm_sigma[1],sizeof(double),data.nangletypes,fp);
fread(angle_cg_cmm_rcut,sizeof(double),data.nangletypes,fp);
fread(&data.angle_cg_cmm_type[1],sizeof(int),data.nangletypes,fp);
} else if (strcmp(data.angle_style,"charmm") == 0) {
data.angle_charmm_k = new double[data.nangletypes+1];
data.angle_charmm_theta0 = new double[data.nangletypes+1];
data.angle_charmm_k_ub = new double[data.nangletypes+1];
data.angle_charmm_r_ub = new double[data.nangletypes+1];
fread(&data.angle_charmm_k[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_charmm_theta0[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_charmm_k_ub[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_charmm_r_ub[1],sizeof(double),data.nangletypes,fp);
} else if (strcmp(data.angle_style,"class2") == 0) {
data.angle_class2_theta0 = new double[data.nangletypes+1];
data.angle_class2_k2 = new double[data.nangletypes+1];
data.angle_class2_k3 = new double[data.nangletypes+1];
data.angle_class2_k4 = new double[data.nangletypes+1];
data.angle_class2_bb_k = new double[data.nangletypes+1];
data.angle_class2_bb_r1 = new double[data.nangletypes+1];
data.angle_class2_bb_r2 = new double[data.nangletypes+1];
data.angle_class2_ba_k1 = new double[data.nangletypes+1];
data.angle_class2_ba_k2 = new double[data.nangletypes+1];
data.angle_class2_ba_r1 = new double[data.nangletypes+1];
data.angle_class2_ba_r2 = new double[data.nangletypes+1];
fread(&data.angle_class2_theta0[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_k2[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_k3[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_k4[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_bb_k[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_bb_r1[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_bb_r2[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_ba_k1[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_ba_k2[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_ba_r1[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_class2_ba_r2[1],sizeof(double),data.nangletypes,fp);
} else if (strcmp(data.angle_style,"cosine") == 0) {
data.angle_cosine_k = new double[data.nangletypes+1];
fread(&data.angle_cosine_k[1],sizeof(double),data.nangletypes,fp);
} else if ((strcmp(data.angle_style,"cosine/squared") == 0) ||
(strcmp(data.angle_style,"cosine/delta") == 0)) {
data.angle_cosine_squared_k = new double[data.nangletypes+1];
data.angle_cosine_squared_theta0 = new double[data.nangletypes+1];
fread(&data.angle_cosine_squared_k[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_cosine_squared_theta0[1],
sizeof(double),data.nangletypes,fp);
} else if (strcmp(data.angle_style,"harmonic") == 0) {
data.angle_harmonic_k = new double[data.nangletypes+1];
data.angle_harmonic_theta0 = new double[data.nangletypes+1];
fread(&data.angle_harmonic_k[1],sizeof(double),data.nangletypes,fp);
fread(&data.angle_harmonic_theta0[1],sizeof(double),data.nangletypes,fp);
} else if (strcmp(data.angle_style,"table") == 0) {
int tabstyle = read_int(fp);
int n = read_int(fp);
} else if (strcmp(data.angle_style,"hybrid") == 0) {
int nstyles = read_int(fp);
for (int i = 0; i < nstyles; i++)
char *substyle = read_char(fp);
} else {
printf("ERROR: Unknown angle style %s\n",data.angle_style);
exit(1);
}
}
// ---------------------------------------------------------------------
// dihedral coeffs
// one section for each dihedral style
// ---------------------------------------------------------------------
void dihedral(FILE *fp, Data &data)
{
if (strcmp(data.dihedral_style,"none") == 0) {
} else if (strcmp(data.dihedral_style,"charmm") == 0) {
data.dihedral_charmm_k = new double[data.ndihedraltypes+1];
data.dihedral_charmm_multiplicity = new int[data.ndihedraltypes+1];
data.dihedral_charmm_sign = new int[data.ndihedraltypes+1];
data.dihedral_charmm_weight = new double[data.ndihedraltypes+1];
fread(&data.dihedral_charmm_k[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_charmm_multiplicity[1],sizeof(int),
data.ndihedraltypes,fp);
fread(&data.dihedral_charmm_sign[1],sizeof(int),data.ndihedraltypes,fp);
fread(&data.dihedral_charmm_weight[1],sizeof(double),
data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"class2") == 0) {
data.dihedral_class2_k1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_k2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_k3 = new double[data.ndihedraltypes+1];
data.dihedral_class2_phi1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_phi2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_phi3 = new double[data.ndihedraltypes+1];
data.dihedral_class2_mbt_f1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_mbt_f2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_mbt_f3 = new double[data.ndihedraltypes+1];
data.dihedral_class2_mbt_r0 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f1_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f2_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f3_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_r0_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f1_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f2_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_f3_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_ebt_r0_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f1_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f2_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f3_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_theta0_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f1_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f2_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_f3_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_at_theta0_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_aat_k = new double[data.ndihedraltypes+1];
data.dihedral_class2_aat_theta0_1 = new double[data.ndihedraltypes+1];
data.dihedral_class2_aat_theta0_2 = new double[data.ndihedraltypes+1];
data.dihedral_class2_bb13_k = new double[data.ndihedraltypes+1];
data.dihedral_class2_bb13_r10 = new double[data.ndihedraltypes+1];
data.dihedral_class2_bb13_r30 = new double[data.ndihedraltypes+1];
fread(&data.dihedral_class2_k1[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_k2[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_k3[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_phi1[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_phi2[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_phi3[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_class2_mbt_f1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_mbt_f2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_mbt_f3[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_mbt_r0[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f1_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f2_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f3_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_r0_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f1_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f2_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_f3_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_ebt_r0_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f1_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f2_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f3_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_theta0_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f1_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f2_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_f3_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_at_theta0_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_aat_k[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_aat_theta0_1[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_aat_theta0_2[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_bb13_k[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_bb13_r10[1],sizeof(double),
data.ndihedraltypes,fp);
fread(&data.dihedral_class2_bb13_r30[1],sizeof(double),
data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"harmonic") == 0) {
data.dihedral_harmonic_k = new double[data.ndihedraltypes+1];
data.dihedral_harmonic_multiplicity = new int[data.ndihedraltypes+1];
data.dihedral_harmonic_sign = new int[data.ndihedraltypes+1];
fread(&data.dihedral_harmonic_k[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_harmonic_multiplicity[1],sizeof(int),
data.ndihedraltypes,fp);
fread(&data.dihedral_harmonic_sign[1],sizeof(int),data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"helix") == 0) {
data.dihedral_helix_aphi = new double[data.ndihedraltypes+1];
data.dihedral_helix_bphi = new double[data.ndihedraltypes+1];
data.dihedral_helix_cphi = new double[data.ndihedraltypes+1];
fread(&data.dihedral_helix_aphi[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_helix_bphi[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_helix_cphi[1],sizeof(double),data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"multi/harmonic") == 0) {
data.dihedral_multi_a1 = new double[data.ndihedraltypes+1];
data.dihedral_multi_a2 = new double[data.ndihedraltypes+1];
data.dihedral_multi_a3 = new double[data.ndihedraltypes+1];
data.dihedral_multi_a4 = new double[data.ndihedraltypes+1];
data.dihedral_multi_a5 = new double[data.ndihedraltypes+1];
fread(&data.dihedral_multi_a1[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_multi_a2[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_multi_a3[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_multi_a4[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_multi_a5[1],sizeof(double),data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"opls") == 0) {
data.dihedral_opls_k1 = new double[data.ndihedraltypes+1];
data.dihedral_opls_k2 = new double[data.ndihedraltypes+1];
data.dihedral_opls_k3 = new double[data.ndihedraltypes+1];
data.dihedral_opls_k4 = new double[data.ndihedraltypes+1];
fread(&data.dihedral_opls_k1[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_opls_k2[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_opls_k3[1],sizeof(double),data.ndihedraltypes,fp);
fread(&data.dihedral_opls_k4[1],sizeof(double),data.ndihedraltypes,fp);
} else if (strcmp(data.dihedral_style,"table") == 0) {
int tabstyle = read_int(fp);
int n = read_int(fp);
} else if (strcmp(data.dihedral_style,"hybrid") == 0) {
int nstyles = read_int(fp);
for (int i = 0; i < nstyles; i++)
char *substyle = read_char(fp);
} else {
printf("ERROR: Unknown dihedral style %s\n",data.dihedral_style);
exit(1);
}
}
// ---------------------------------------------------------------------
// improper coeffs
// one section for each improper style
// ---------------------------------------------------------------------
void improper(FILE *fp, Data &data)
{
if (strcmp(data.improper_style,"none") == 0) {
} else if (strcmp(data.improper_style,"class2") == 0) {
data.improper_class2_k0 = new double[data.nimpropertypes+1];
data.improper_class2_chi0 = new double[data.nimpropertypes+1];
data.improper_class2_aa_k1 = new double[data.nimpropertypes+1];
data.improper_class2_aa_k2 = new double[data.nimpropertypes+1];
data.improper_class2_aa_k3 = new double[data.nimpropertypes+1];
data.improper_class2_aa_theta0_1 = new double[data.nimpropertypes+1];
data.improper_class2_aa_theta0_2 = new double[data.nimpropertypes+1];
data.improper_class2_aa_theta0_3 = new double[data.nimpropertypes+1];
fread(&data.improper_class2_k0[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_chi0[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_k1[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_k2[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_k3[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_theta0_1[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_theta0_2[1],sizeof(double),
data.nimpropertypes,fp);
fread(&data.improper_class2_aa_theta0_3[1],sizeof(double),
data.nimpropertypes,fp);
} else if (strcmp(data.improper_style,"cvff") == 0) {
data.improper_cvff_k = new double[data.nimpropertypes+1];
data.improper_cvff_sign = new int[data.nimpropertypes+1];
data.improper_cvff_multiplicity = new int[data.nimpropertypes+1];
fread(&data.improper_cvff_k[1],sizeof(double),data.nimpropertypes,fp);
fread(&data.improper_cvff_sign[1],sizeof(int),data.nimpropertypes,fp);
fread(&data.improper_cvff_multiplicity[1],sizeof(int),
data.nimpropertypes,fp);
} else if (strcmp(data.improper_style,"harmonic") == 0) {
data.improper_harmonic_k = new double[data.nimpropertypes+1];
data.improper_harmonic_chi = new double[data.nimpropertypes+1];
fread(&data.improper_harmonic_k[1],sizeof(double),data.nimpropertypes,fp);
fread(&data.improper_harmonic_chi[1],sizeof(double),
data.nimpropertypes,fp);
} else if (strcmp(data.improper_style,"hybrid") == 0) {
int nstyles = read_int(fp);
for (int i = 0; i < nstyles; i++)
char *substyle = read_char(fp);
} else {
printf("ERROR: Unknown improper style %s\n",data.improper_style);
exit(1);
}
}
// ---------------------------------------------------------------------
// initialize Data
// ---------------------------------------------------------------------
Data::Data()
{
nellipsoids = 0;
}
// ---------------------------------------------------------------------
// print out stats on problem
// ---------------------------------------------------------------------
void Data::stats()
{
char fstr[64];
printf(" Restart file version = %s\n",version);
printf(" Ntimestep = " BIGINT_FORMAT "\n",ntimestep);
printf(" Nprocs = %d\n",nprocs);
printf(" Natoms = " BIGINT_FORMAT "\n",natoms);
if (nellipsoids) printf(" Nellipsoids = " BIGINT_FORMAT "\n",nellipsoids);
printf(" Nbonds = " BIGINT_FORMAT "\n",nbonds);
printf(" Nangles = " BIGINT_FORMAT "\n",nangles);
printf(" Ndihedrals = " BIGINT_FORMAT "\n",ndihedrals);
printf(" Nimpropers = " BIGINT_FORMAT "\n",nimpropers);
printf(" Unit style = %s\n",unit_style);
printf(" Atom style = %s\n",atom_style);
printf(" Pair style = %s\n",pair_style);
printf(" Bond style = %s\n",bond_style);
printf(" Angle style = %s\n",angle_style);
printf(" Dihedral style = %s\n",dihedral_style);
printf(" Improper style = %s\n",improper_style);
printf(" Xlo xhi = %g %g\n",xlo,xhi);
printf(" Ylo yhi = %g %g\n",ylo,yhi);
printf(" Zlo zhi = %g %g\n",zlo,zhi);
if (triclinic) printf(" Xy xz yz = %g %g %g\n",xy,xz,yz);
printf(" Periodicity = %d %d %d\n",xperiodic,yperiodic,zperiodic);
printf(" Boundary = %d %d, %d %d, %d %d\n",boundary[0][0],boundary[0][1],
boundary[1][0],boundary[1][1],boundary[2][0],boundary[2][1]);
}
// ---------------------------------------------------------------------
// write the data file and input file
// ---------------------------------------------------------------------
void Data::write(FILE *fp, FILE *fp2)
{
fprintf(fp,"LAMMPS data file from restart file: timestep = "
BIGINT_FORMAT ", procs = %d\n\n",ntimestep,nprocs);
fprintf(fp,BIGINT_FORMAT " atoms\n",natoms);
if (nellipsoids) fprintf(fp,BIGINT_FORMAT " ellipsoids\n",nellipsoids);
if (nbonds) fprintf(fp,BIGINT_FORMAT " bonds\n",nbonds);
if (nangles) fprintf(fp,BIGINT_FORMAT " angles\n",nangles);
if (ndihedrals) fprintf(fp,BIGINT_FORMAT " dihedrals\n",ndihedrals);
if (nimpropers) fprintf(fp,BIGINT_FORMAT " impropers\n",nimpropers);
fprintf(fp,"\n");
fprintf(fp,"%d atom types\n",ntypes);
if (nbondtypes) fprintf(fp,"%d bond types\n",nbondtypes);
if (nangletypes) fprintf(fp,"%d angle types\n",nangletypes);
if (ndihedraltypes) fprintf(fp,"%d dihedral types\n",ndihedraltypes);
if (nimpropertypes) fprintf(fp,"%d improper types\n",nimpropertypes);
fprintf(fp,"\n");
fprintf(fp,"%-1.16e %-1.16e xlo xhi\n",xlo,xhi);
fprintf(fp,"%-1.16e %-1.16e ylo yhi\n",ylo,yhi);
fprintf(fp,"%-1.16e %-1.16e zlo zhi\n",zlo,zhi);
if (triclinic) fprintf(fp,"%-1.16e %-1.16e %-1.16e xy xz yz\n",xy,xz,yz);
// write ff styles to input file
if (fp2) {
fprintf(fp2,"# LAMMPS input file from restart file: "
"timestep = " BIGINT_FORMAT ", procs = %d\n\n",ntimestep,nprocs);
if (pair_style) fprintf(fp2,"pair_style %s\n",pair_style);
if (bond_style) fprintf(fp2,"bond_style %s\n",bond_style);
if (angle_style) fprintf(fp2,"angle_style %s\n",angle_style);
if (dihedral_style) fprintf(fp2,"dihedral_style %s\n",dihedral_style);
if (improper_style) fprintf(fp2,"improper_style %s\n",improper_style);
fprintf(fp2,"special_bonds %g %g %g %g %g %g\n",
special_lj[1],special_lj[2],special_lj[3],
special_lj[1],special_coul[2],special_coul[3]);
fprintf(fp2,"\n");
}
// mass to either data file or input file
if (mass) {
if (fp2) {
fprintf(fp2,"\n");
for (int i = 1; i <= ntypes; i++) fprintf(fp2,"mass %d %g\n",i,mass[i]);
fprintf(fp2,"\n");
} else {
fprintf(fp,"\nMasses\n\n");
for (int i = 1; i <= ntypes; i++) fprintf(fp,"%d %g\n",i,mass[i]);
}
}
// pair coeffs to data file
if (pair_style && fp2 == NULL) {
if ((strcmp(pair_style,"none") != 0) &&
+ (strcmp(pair_style,"adp") != 0) &&
(strcmp(pair_style,"airebo") != 0) &&
(strcmp(pair_style,"coul/cut") != 0) &&
(strcmp(pair_style,"coul/debye") != 0) &&
(strcmp(pair_style,"coul/long") != 0) &&
(strcmp(pair_style,"eam") != 0) &&
(strcmp(pair_style,"eam/alloy") != 0) &&
(strcmp(pair_style,"eam/fs") != 0) &&
(strcmp(pair_style,"eim") != 0) &&
(strcmp(pair_style,"eff/cut") != 0) &&
(strcmp(pair_style,"gran/history") != 0) &&
(strcmp(pair_style,"gran/no_history") != 0) &&
(strcmp(pair_style,"gran/hertzian") != 0) &&
(strcmp(pair_style,"meam") != 0) &&
(strcmp(pair_style,"reax") != 0) &&
(strcmp(pair_style,"reax/c") != 0) &&
(strcmp(pair_style,"sw") != 0) &&
(strcmp(pair_style,"table") != 0) &&
(strcmp(pair_style,"tersoff") != 0) &&
(strcmp(pair_style,"tersoff/zbl") != 0) &&
(strcmp(pair_style,"hybrid") != 0) &&
(strcmp(pair_style,"hybrid/overlay") != 0))
fprintf(fp,"\nPair Coeffs\n\n");
if (strcmp(pair_style,"born/coul/long") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g %g %g\n",i,
pair_born_A[i],pair_born_rho[i],pair_born_sigma[i],
pair_born_C[i],pair_born_D[i]);
} else if ((strcmp(pair_style,"buck") == 0) ||
(strcmp(pair_style,"buck/coul/cut") == 0) ||
(strcmp(pair_style,"buck/coul/long") == 0) ||
(strcmp(pair_style,"buck/long") == 0)) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
pair_buck_A[i],pair_buck_rho[i],pair_buck_C[i]);
} else if (strcmp(pair_style,"colloid") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
pair_colloid_A12[i],pair_colloid_sigma[i],
pair_colloid_d2[i],pair_colloid_d2[i]);
} else if (strcmp(pair_style,"dipole/cut") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_dipole_epsilon[i],pair_dipole_sigma[i]);
} else if (strcmp(pair_style,"dpd") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_dpd_a0[i],pair_dpd_gamma[i]);
} else if (strcmp(pair_style,"dpd/tstat") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g\n",i,
pair_dpd_gamma[i]);
} else if (strcmp(pair_style,"gayberne") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i,
pair_gb_epsilon[i],pair_gb_sigma[i],
pair_gb_epsa[i],pair_gb_epsb[i],pair_gb_epsc[i],
pair_gb_epsa[i],pair_gb_epsb[i],pair_gb_epsc[i]);
} else if ((strcmp(pair_style,"lj/charmm/coul/charmm") == 0) ||
(strcmp(pair_style,"lj/charmm/coul/charmm/implicit") == 0) ||
(strcmp(pair_style,"lj/charmm/coul/long") == 0)) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
pair_charmm_epsilon[i],pair_charmm_sigma[i],
pair_charmm_eps14[i],pair_charmm_sigma14[i]);
} else if ((strcmp(pair_style,"lj/class2") == 0) ||
(strcmp(pair_style,"lj/class2/coul/cut") == 0) ||
(strcmp(pair_style,"lj/class2/coul/long") == 0)) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_class2_epsilon[i],pair_class2_sigma[i]);
} else if ((strcmp(pair_style,"lj/cut") == 0) ||
+ (strcmp(pair_style,"lj96/cut") == 0) ||
(strcmp(pair_style,"lj/cut/coul/cut") == 0) ||
(strcmp(pair_style,"lj/cut/coul/debye") == 0) ||
(strcmp(pair_style,"lj/cut/coul/long") == 0) ||
(strcmp(pair_style,"lj/cut/coul/long/tip4p") == 0) ||
(strcmp(pair_style,"lj/coul") == 0)) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_lj_epsilon[i],pair_lj_sigma[i]);
} else if (strcmp(pair_style,"lj/expand") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
pair_ljexpand_epsilon[i],pair_ljexpand_sigma[i],
pair_ljexpand_shift[i]);
} else if ((strcmp(pair_style,"lj/gromacs") == 0) ||
(strcmp(pair_style,"lj/gromacs/coul/gromacs") == 0)) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_ljgromacs_epsilon[i],pair_ljgromacs_sigma[i]);
} else if (strcmp(pair_style,"lj/smooth") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g\n",i,
pair_ljsmooth_epsilon[i],pair_ljsmooth_sigma[i]);
} else if (strcmp(pair_style,"morse") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
pair_morse_d0[i],pair_morse_alpha[i],pair_morse_r0[i]);
} else if (strcmp(pair_style,"soft") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g\n",i,
pair_soft_A[i]);
} else if (strcmp(pair_style,"yukawa") == 0) {
for (int i = 1; i <= ntypes; i++)
fprintf(fp,"%d %g\n",i,
pair_yukawa_A[i]);
} else if ((strcmp(pair_style,"cg/cmm") == 0) ||
(strcmp(pair_style,"cg/cmm/coul/cut") == 0) ||
(strcmp(pair_style,"cg/cmm/coul/long") == 0)) {
printf("ERROR: Cannot write pair_style %s to data file\n",
pair_style);
exit(1);
}
}
// pair coeffs to input file
// only supported styles = cg/cmm
if (pair_style && fp2) {
if ((strcmp(pair_style,"cg/cmm") == 0) ||
(strcmp(pair_style,"cg/cmm/coul/cut") == 0) ||
(strcmp(pair_style,"cg/cmm/coul/long") == 0)) {
for (int i = 1; i <= ntypes; i++) {
for (int j = i; j <= ntypes; j++) {
fprintf(fp2,"pair_coeff %d %d %s %g %g\n",i,j,
cg_type_list[pair_cg_cmm_type[i][j]],
pair_cg_epsilon[i][j],pair_cg_sigma[i][j]);
}
}
} else {
printf("ERROR: Cannot write pair_style %s to input file\n",
pair_style);
exit(1);
}
}
// bond coeffs to data file
if (bond_style && fp2 == NULL) {
if ((strcmp(bond_style,"none") != 0) &&
(strcmp(bond_style,"table") != 0) &&
(strcmp(bond_style,"hybrid") != 0))
fprintf(fp,"\nBond Coeffs\n\n");
if (strcmp(bond_style,"class2") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
bond_class2_r0[i],bond_class2_k2[i],
bond_class2_k3[i],bond_class2_k4[i]);
} else if (strcmp(bond_style,"fene") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
bond_fene_k[i],bond_fene_r0[i],
bond_fene_epsilon[i],bond_fene_sigma[i]);
} else if (strcmp(bond_style,"fene/expand") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g %g %g\n",i,
bond_feneexpand_k[i],bond_feneexpand_r0[i],
bond_feneexpand_epsilon[i],bond_feneexpand_sigma[i],
bond_feneexpand_shift[i]);
} else if (strcmp(bond_style,"harmonic") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g\n",i,
bond_harmonic_k[i],bond_harmonic_r0[i]);
} else if (strcmp(bond_style,"morse") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
bond_morse_d0[i],bond_morse_alpha[i],bond_morse_r0[i]);
} else if (strcmp(bond_style,"nonlinear") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
bond_nonlinear_epsilon[i],bond_nonlinear_r0[i],
bond_nonlinear_lamda[i]);
} else if (strcmp(bond_style,"quartic") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp,"%d %g %g %g %g %g\n",i,
bond_quartic_k[i],bond_quartic_b1[i],bond_quartic_b2[i],
bond_quartic_rc[i],bond_quartic_u0[i]);
}
}
// bond coeffs to input file
// only supported styles = harmonic
if (bond_style && fp2) {
if (strcmp(bond_style,"harmonic") == 0) {
for (int i = 1; i <= nbondtypes; i++)
fprintf(fp2,"bond_coeff %d %g %g\n",i,
bond_harmonic_k[i],bond_harmonic_r0[i]);
} else {
printf("ERROR: Cannot write bond_style %s to input file\n",
bond_style);
exit(1);
}
}
// angle coeffs to data file
if (angle_style && fp2 == NULL) {
if ((strcmp(angle_style,"none") != 0) &&
(strcmp(angle_style,"table") != 0) &&
(strcmp(angle_style,"hybrid") != 0))
fprintf(fp,"\nAngle Coeffs\n\n");
if (strcmp(angle_style,"charmm") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
angle_charmm_k[i],angle_charmm_theta0[i]/PI*180.0,
angle_charmm_k_ub[i],angle_charmm_r_ub[i]);
} else if (strcmp(angle_style,"class2") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
angle_class2_theta0[i]/PI*180.0,angle_class2_k2[i],
angle_class2_k3[i],angle_class2_k4[i]);
fprintf(fp,"\nBondBond Coeffs\n\n");
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
angle_class2_bb_k[i],
angle_class2_bb_r1[i],angle_class2_bb_r2[i]);
fprintf(fp,"\nBondAngle Coeffs\n\n");
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
angle_class2_ba_k1[i],angle_class2_ba_k2[i],
angle_class2_ba_r1[i],angle_class2_ba_r2[i]);
} else if (strcmp(angle_style,"cosine") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g\n",i,angle_cosine_k[i]);
} else if ((strcmp(angle_style,"cosine/squared") == 0) ||
(strcmp(angle_style,"cosine/delta") == 0)) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g\n",i,
angle_cosine_squared_k[i],
angle_cosine_squared_theta0[i]/PI*180.0);
} else if (strcmp(angle_style,"harmonic") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g\n",i,
angle_harmonic_k[i],angle_harmonic_theta0[i]/PI*180.0);
} else if (strcmp(angle_style,"cg/cmm") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp,"%d %g %g %s %g %g\n",i,
angle_harmonic_k[i],angle_harmonic_theta0[i]/PI*180.0,
cg_type_list[angle_cg_cmm_type[i]],angle_cg_cmm_epsilon[i],
angle_cg_cmm_sigma[i]);
}
}
// angle coeffs to input file
// only supported styles = cosine/squared, harmonic, cg/cmm
if (angle_style && fp2) {
if ((strcmp(angle_style,"cosine/squared") == 0) ||
(strcmp(angle_style,"cosine/delta") == 0)) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp2,"angle_coeffs %d %g %g\n",i,
angle_cosine_squared_k[i],
angle_cosine_squared_theta0[i]/PI*180.0);
} else if (strcmp(angle_style,"harmonic") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp2,"angle_coeffs %d %g %g\n",i,
angle_harmonic_k[i],angle_harmonic_theta0[i]/PI*180.0);
} else if (strcmp(angle_style,"cg/cmm") == 0) {
for (int i = 1; i <= nangletypes; i++)
fprintf(fp2,"angle_coeffs %d %g %g %s %g %g\n",i,
angle_harmonic_k[i],angle_harmonic_theta0[i]/PI*180.0,
cg_type_list[angle_cg_cmm_type[i]],angle_cg_cmm_epsilon[i],
angle_cg_cmm_sigma[i]);
} else {
printf("ERROR: Cannot write angle_style %s to input file\n",
angle_style);
exit(1);
}
}
if (dihedral_style) {
if ((strcmp(dihedral_style,"none") != 0) &&
(strcmp(dihedral_style,"table") != 0) &&
(strcmp(dihedral_style,"hybrid") != 0))
fprintf(fp,"\nDihedral Coeffs\n\n");
if (strcmp(dihedral_style,"charmm") == 0) {
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %d %d %g\n",i,
dihedral_charmm_k[i],dihedral_charmm_multiplicity[i],
dihedral_charmm_sign[i],dihedral_charmm_weight[i]);
} else if (strcmp(dihedral_style,"class2") == 0) {
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g %g %g %g\n",i,
dihedral_class2_k1[i],
dihedral_class2_phi1[i]/PI*180.0,
dihedral_class2_k2[i],
dihedral_class2_phi2[i]/PI*180.0,
dihedral_class2_k3[i],
dihedral_class2_phi3[i]/PI*180.0);
fprintf(fp,"\nMiddleBondTorsion Coeffs\n\n");
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,
dihedral_class2_mbt_f1[i],dihedral_class2_mbt_f2[i],
dihedral_class2_mbt_f3[i],dihedral_class2_mbt_r0[i]);
fprintf(fp,"\nEndBondTorsion Coeffs\n\n");
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i,
dihedral_class2_ebt_f1_1[i],dihedral_class2_ebt_f2_1[i],
dihedral_class2_ebt_f3_1[i],
dihedral_class2_ebt_f1_2[i],dihedral_class2_ebt_f2_2[i],
dihedral_class2_ebt_f3_2[i],
dihedral_class2_ebt_r0_1[i],
dihedral_class2_ebt_r0_2[i]);
fprintf(fp,"\nAngleTorsion Coeffs\n\n");
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i,
dihedral_class2_at_f1_1[i],dihedral_class2_at_f2_1[i],
dihedral_class2_at_f3_1[i],
dihedral_class2_at_f1_2[i],dihedral_class2_at_f2_2[i],
dihedral_class2_at_f3_2[i],
dihedral_class2_at_theta0_1[i]/PI*180.0,
dihedral_class2_at_theta0_2[i]/PI*180.0);
fprintf(fp,"\nAngleAngleTorsion Coeffs\n\n");
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
dihedral_class2_aat_k[i],
dihedral_class2_aat_theta0_1[i]/PI*180.0,
dihedral_class2_aat_theta0_2[i]/PI*180.0);
fprintf(fp,"\nBondBond13 Coeffs\n\n");
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g\n",i,
dihedral_class2_bb13_k[i],
dihedral_class2_bb13_r10[i],dihedral_class2_bb13_r30[i]);
} else if (strcmp(dihedral_style,"harmonic") == 0) {
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %d %d\n",i,
dihedral_harmonic_k[i],dihedral_harmonic_multiplicity[i],
dihedral_harmonic_sign[i]);
} else if (strcmp(dihedral_style,"helix") == 0) {
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g\n",i,dihedral_helix_aphi[i],
dihedral_helix_bphi[i],dihedral_helix_cphi[i]);
} else if (strcmp(dihedral_style,"multi/harmonic") == 0) {
for (int i = 1; i <= ndihedraltypes; i++)
fprintf(fp,"%d %g %g %g %g %g\n",i,
dihedral_multi_a1[i],dihedral_multi_a2[i],
dihedral_multi_a3[i],dihedral_multi_a4[i],
dihedral_multi_a5[i]);
} else if (strcmp(dihedral_style,"opls") == 0) {
for (int i = 1; i <= ndihedraltypes; i++) // restore factor of 2
fprintf(fp,"%d %g %g %g %g\n",i,
2.0*dihedral_opls_k1[i],2.0*dihedral_opls_k2[i],
2.0*dihedral_opls_k3[i],2.0*dihedral_opls_k4[i]);
}
}
if (improper_style) {
if ((strcmp(improper_style,"none") != 0) &&
(strcmp(improper_style,"hybrid") != 0))
fprintf(fp,"\nImproper Coeffs\n\n");
if (strcmp(improper_style,"class2") == 0) {
for (int i = 1; i <= nimpropertypes; i++)
fprintf(fp,"%d %g %g\n",i,
improper_class2_k0[i],improper_class2_chi0[i]/PI*180.0);
fprintf(fp,"\nAngleAngle Coeffs\n\n");
for (int i = 1; i <= nimpropertypes; i++)
fprintf(fp,"%d %g %g %g %g %g %g\n",i,
improper_class2_aa_k1[i],improper_class2_aa_k2[i],
improper_class2_aa_k3[i],
improper_class2_aa_theta0_1[i]/PI*180.0,
improper_class2_aa_theta0_2[i]/PI*180.0,
improper_class2_aa_theta0_3[i]/PI*180.0);
} else if (strcmp(improper_style,"cvff") == 0) {
for (int i = 1; i <= nimpropertypes; i++)
fprintf(fp,"%d %g %d %d\n",i,
improper_cvff_k[i],improper_cvff_sign[i],
improper_cvff_multiplicity[i]);
} else if (strcmp(improper_style,"harmonic") == 0) {
for (int i = 1; i <= nimpropertypes; i++)
fprintf(fp,"%d %g %g\n",i,
improper_harmonic_k[i],improper_harmonic_chi[i]/PI*180.0);
}
}
if (natoms) {
fprintf(fp,"\nAtoms\n\n");
int ix,iy,iz;
for (uint64_t i = 0; i < natoms; i++) {
ix = (image[i] & 1023) - 512;
iy = (image[i] >> 10 & 1023) - 512;
iz = (image[i] >> 20) - 512;
if (style_hybrid == 0) {
if (style_angle) write_atom_angle(fp,i,ix,iy,iz);
if (style_atomic) write_atom_atomic(fp,i,ix,iy,iz);
if (style_bond) write_atom_bond(fp,i,ix,iy,iz);
if (style_charge) write_atom_charge(fp,i,ix,iy,iz);
if (style_dipole) write_atom_dipole(fp,i,ix,iy,iz);
if (style_ellipsoid) write_atom_ellipsoid(fp,i,ix,iy,iz);
if (style_full) write_atom_full(fp,i,ix,iy,iz);
if (style_sphere) write_atom_sphere(fp,i,ix,iy,iz);
if (style_molecular) write_atom_molecular(fp,i,ix,iy,iz);
if (style_peri) write_atom_peri(fp,i,ix,iy,iz);
fprintf(fp,"\n");
} else {
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e",
tag[i],type[i],x[i],y[i],z[i]);
for (int k = 1; k <= style_hybrid; k++) {
if (k == style_angle) write_atom_angle_extra(fp,i);
if (k == style_atomic) write_atom_atomic_extra(fp,i);
if (k == style_bond) write_atom_bond_extra(fp,i);
if (k == style_charge) write_atom_charge_extra(fp,i);
if (k == style_dipole) write_atom_dipole_extra(fp,i);
if (k == style_ellipsoid) write_atom_ellipsoid_extra(fp,i);
if (k == style_full) write_atom_full_extra(fp,i);
if (k == style_sphere) write_atom_sphere_extra(fp,i);
if (k == style_molecular) write_atom_molecular_extra(fp,i);
if (k == style_peri) write_atom_peri_extra(fp,i);
}
fprintf(fp," %d %d %d\n",ix,iy,iz);
}
}
}
if (natoms) {
fprintf(fp,"\nVelocities\n\n");
for (uint64_t i = 0; i < natoms; i++)
if (style_hybrid == 0) {
if (style_angle) write_vel_angle(fp,i);
if (style_atomic) write_vel_atomic(fp,i);
if (style_bond) write_vel_bond(fp,i);
if (style_charge) write_vel_charge(fp,i);
if (style_dipole) write_vel_dipole(fp,i);
if (style_ellipsoid) write_vel_ellipsoid(fp,i);
if (style_full) write_vel_full(fp,i);
if (style_sphere) write_vel_sphere(fp,i);
if (style_molecular) write_vel_molecular(fp,i);
if (style_peri) write_vel_peri(fp,i);
fprintf(fp,"\n");
} else {
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
for (int k = 1; k <= style_hybrid; k++) {
if (k == style_angle) write_vel_angle_extra(fp,i);
if (k == style_atomic) write_vel_atomic_extra(fp,i);
if (k == style_bond) write_vel_bond_extra(fp,i);
if (k == style_charge) write_vel_charge_extra(fp,i);
if (k == style_dipole) write_vel_dipole_extra(fp,i);
if (k == style_ellipsoid) write_vel_ellipsoid_extra(fp,i);
if (k == style_full) write_vel_full_extra(fp,i);
if (k == style_sphere) write_vel_sphere_extra(fp,i);
if (k == style_molecular) write_vel_molecular_extra(fp,i);
if (k == style_peri) write_vel_peri_extra(fp,i);
}
fprintf(fp,"\n");
}
}
if (nellipsoids) {
fprintf(fp,"\nEllipsoids\n\n");
for (uint64_t i = 0; i < natoms; i++) {
if (ellipsoid[i])
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e "
"%-1.16e %-1.16e %-1.16e %-1.16e \n",
tag[i],2.0*shapex[i],2.0*shapey[i],2.0*shapez[i],
quatw[i],quati[i],quatj[i],quatk[i]);
}
}
if (nbonds) {
fprintf(fp,"\nBonds\n\n");
for (uint64_t i = 0; i < nbonds; i++)
fprintf(fp,BIGINT_FORMAT " %d %d %d\n",
i+1,bond_type[i],bond_atom1[i],bond_atom2[i]);
}
if (nangles) {
fprintf(fp,"\nAngles\n\n");
for (uint64_t i = 0; i < nangles; i++)
fprintf(fp,BIGINT_FORMAT " %d %d %d %d\n",
i+1,angle_type[i],angle_atom1[i],angle_atom2[i],angle_atom3[i]);
}
if (ndihedrals) {
fprintf(fp,"\nDihedrals\n\n");
for (uint64_t i = 0; i < ndihedrals; i++)
fprintf(fp,BIGINT_FORMAT " %d %d %d %d %d\n",
i+1,dihedral_type[i],dihedral_atom1[i],dihedral_atom2[i],
dihedral_atom3[i],dihedral_atom4[i]);
}
if (nimpropers) {
fprintf(fp,"\nImpropers\n\n");
for (uint64_t i = 0; i < nimpropers; i++)
fprintf(fp,BIGINT_FORMAT " %d %d %d %d %d\n",
i+1,improper_type[i],improper_atom1[i],improper_atom2[i],
improper_atom3[i],improper_atom4[i]);
}
}
// ---------------------------------------------------------------------
// per-atom write routines
// one routine per atom style
// ---------------------------------------------------------------------
void Data::write_atom_angle(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],molecule[i],type[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_atomic(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_bond(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],molecule[i],type[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_charge(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],q[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_dipole(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e "
"%-1.16e %-1.16e %d %d %d",
tag[i],type[i],q[i],x[i],y[i],z[i],
mux[i],muy[i],muz[i],ix,iy,iz);
}
void Data::write_atom_ellipsoid(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],ellipsoid[i],density[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_full(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],molecule[i],type[i],q[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_sphere(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],2.0*radius[i],density[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_molecular(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %d %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],molecule[i],type[i],x[i],y[i],z[i],ix,iy,iz);
}
void Data::write_atom_peri(FILE *fp, int i, int ix, int iy, int iz)
{
fprintf(fp,"%d %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %d %d %d",
tag[i],type[i],vfrac[i],rmass[i],x[i],y[i],z[i],ix,iy,iz);
}
// ---------------------------------------------------------------------
// per-atom write routines of extra quantities unique to style
// one routine per atom style
// ---------------------------------------------------------------------
void Data::write_atom_angle_extra(FILE *fp, int i)
{
fprintf(fp," %d",molecule[i]);
}
void Data::write_atom_atomic_extra(FILE *fp, int i) {}
void Data::write_atom_bond_extra(FILE *fp, int i)
{
fprintf(fp," %d",molecule[i]);
}
void Data::write_atom_charge_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e",q[i]);
}
void Data::write_atom_dipole_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e",q[i],mux[i],muy[i],muz[i]);
}
void Data::write_atom_ellipsoid_extra(FILE *fp, int i)
{
fprintf(fp," %d %-1.16e",ellipsoid[i],density[i]);
}
void Data::write_atom_full_extra(FILE *fp, int i)
{
fprintf(fp," %d %-1.16e",molecule[i],q[i]);
}
void Data::write_atom_sphere_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e %-1.16e",2.0*radius[i],density[i]);
}
void Data::write_atom_molecular_extra(FILE *fp, int i)
{
fprintf(fp," %d",molecule[i]);
}
void Data::write_atom_peri_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e %-1.16e %-1.16e",vfrac[i],rmass[i]);
}
// ---------------------------------------------------------------------
// per-atom velocity write routines
// one routine per atom style
// ---------------------------------------------------------------------
void Data::write_vel_angle(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_atomic(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_bond(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_charge(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_dipole(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_ellipsoid(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e",
tag[i],vx[i],vy[i],vz[i],angmomx[i],angmomy[i],angmomz[i]);
}
void Data::write_vel_full(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_sphere(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e",
tag[i],vx[i],vy[i],vz[i],omegax[i],omegay[i],omegaz[i]);
}
void Data::write_vel_molecular(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
void Data::write_vel_peri(FILE *fp, int i)
{
fprintf(fp,"%d %-1.16e %-1.16e %-1.16e",tag[i],vx[i],vy[i],vz[i]);
}
// ---------------------------------------------------------------------
// per-atom velocity write routines of extra quantities unique to style
// one routine per atom style
// ---------------------------------------------------------------------
void Data::write_vel_angle_extra(FILE *fp, int i) {}
void Data::write_vel_atomic_extra(FILE *fp, int i) {}
void Data::write_vel_bond_extra(FILE *fp, int i) {}
void Data::write_vel_charge_extra(FILE *fp, int i) {}
void Data::write_vel_dipole_extra(FILE *fp, int i) {}
void Data::write_vel_ellipsoid_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e %-1.16e %-1.16e",angmomx[i],angmomy[i],angmomz[i]);
}
void Data::write_vel_full_extra(FILE *fp, int i) {}
void Data::write_vel_sphere_extra(FILE *fp, int i)
{
fprintf(fp," %-1.16e %-1.16e %-1.16e",omegax[i],omegay[i],omegaz[i]);
}
void Data::write_vel_molecular_extra(FILE *fp, int i) {}
void Data::write_vel_peri_extra(FILE *fp, int i) {}
// ---------------------------------------------------------------------
// strip suffix from style name if suffix is defined
// ---------------------------------------------------------------------
void strip_suffix(char *style, char *suffix)
{
if (!suffix) return;
int n = strlen(suffix) + 2;
char *esuffix = new char[n];
sprintf(esuffix,"/%s",suffix);
char *ptr = strstr(style,esuffix);
if (ptr && ptr-style+1+strlen(suffix) == strlen(style)) *ptr = '\0';
}
// ---------------------------------------------------------------------
// binary reads from restart file
// ---------------------------------------------------------------------
int read_int(FILE *fp)
{
int value;
fread(&value,sizeof(int),1,fp);
return value;
}
double read_double(FILE *fp)
{
double value;
fread(&value,sizeof(double),1,fp);
return value;
}
char *read_char(FILE *fp)
{
int n;
fread(&n,sizeof(int),1,fp);
if (n == 0) return NULL;
char *value = new char[n];
fread(value,sizeof(char),n,fp);
return value;
}
bigint read_bigint(FILE *fp)
{
bigint value;
fread(&value,sizeof(bigint),1,fp);
return value;
}

Event Timeline