Modularize electric field handling
authorDavid van der Spoel <spoel@xray.bmc.uu.se>
Mon, 23 Nov 2015 22:32:48 +0000 (23:32 +0100)
committerBerk Hess <hess@kth.se>
Fri, 7 Oct 2016 10:54:57 +0000 (12:54 +0200)
Move external electric field code to a C++ class where only a single
place in the code is responsible for initializing it, and everything
else operates only on relatively general interaces.  Details of the
electric field stuff is encapsulated within the class.

Moved the files into new directory applied-forces.

Added manual section for electric fields.

The interfaces may need more generalization to support more complicated
modules like the pull code, but that is better done when actually moving
those parts to this approach.  Various considerations are documented in
mdmodules.h and inputrect.h.

Part of #1972.

Change-Id: I513632c74a8fae28b5f1087a3b5781791a2627bd

30 files changed:
docs/manual/forcefield.tex
docs/manual/monster.bib
docs/manual/plots/field.eps [new file with mode: 0644]
docs/manual/plots/field.xvg [new file with mode: 0644]
docs/manual/special.tex
src/gromacs/CMakeLists.txt
src/gromacs/applied-forces/CMakeLists.txt [new file with mode: 0644]
src/gromacs/applied-forces/electricfield.cpp [new file with mode: 0644]
src/gromacs/applied-forces/electricfield.h [new file with mode: 0644]
src/gromacs/applied-forces/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/applied-forces/tests/electricfield.cpp [new file with mode: 0644]
src/gromacs/fileio/readinp.h
src/gromacs/fileio/tpxio.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/broadcaststructs.cpp
src/gromacs/mdlib/force.h
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdlib/mdoutf.cpp
src/gromacs/mdlib/mdoutf.h
src/gromacs/mdlib/minimize.cpp
src/gromacs/mdlib/shellfc.cpp
src/gromacs/mdlib/shellfc.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/tpi.cpp
src/gromacs/mdrunutility/mdmodules.cpp
src/gromacs/mdrunutility/mdmodules.h
src/gromacs/mdtypes/forcerec.h
src/gromacs/mdtypes/inputrec.cpp
src/gromacs/mdtypes/inputrec.h
src/programs/mdrun/md.cpp

index 59d8650e80831f40a7389ea14c71ff4000a93ffe..9d515bb51cec15dbcb660aac5fb522c8fb9cf903 100644 (file)
@@ -51,6 +51,10 @@ basis of fixed lists.
 \item   {\em Restraints}: position restraints, angle restraints,
 distance restraints, orientation restraints and dihedral restraints, all
 based on fixed lists. 
+%\ifthenelse{\equal{\gmxlite}{1}}{}{
+\item {\em Applied Forces}:
+externally applied forces, see \chref{special}.
+%}
 \end{enumerate}
 
 \section{Non-bonded interactions}
index cc94429cf0a8f61f1ccdb74fcddd16bfa49f818c..6cb35bd3c5e96655ac896fe0155117e840ac6056 100644 (file)
@@ -8760,6 +8760,16 @@ doi = "http://dx.doi.org/10.1016/j.softx.2015.06.001"
        pages = {1986--1994}
 }
 
+@article{Caleman2008a,
+  author = {Caleman, C and van der Spoel, D},
+  title = {{Picosecond Melting of Ice by an Infrared Laser Pulse - A simulation
+       study}},
+  journal = {Angew. Chem., Int. Ed. Engl.},
+  year = {2008},
+  volume = {47},
+  pages = {1417--1420}
+}
+
 @article{Wolf2010,
        author = {Wolf, M.G. and Hoefling, M. and Aponte-Santamar\'{i}a, C. and Grubm\"{u}ller, H. and Groenhof, G.},
        title = {{g\_membed}: Efficient insertion of a membrane protein into an equilibrated lipid bilayer with minimal perturbation},
diff --git a/docs/manual/plots/field.eps b/docs/manual/plots/field.eps
new file mode 100644 (file)
index 0000000..5ac7e7d
--- /dev/null
@@ -0,0 +1,4666 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 8 769 591
+%%LanguageLevel: 2
+%%Creator: Grace-5.1.25
+%%CreationDate: Tue Jul  5 08:32:47 2016
+%%DocumentData: Clean8Bit
+%%Orientation: Portrait
+%%Title: field.xvg
+%%For: spoel
+%%DocumentNeededResources: (atend)
+%%EndComments
+%%BeginProlog
+/m {moveto} def
+/l {lineto} def
+/s {stroke} def
+/n {newpath} def
+/c {closepath} def
+/RL {rlineto} def
+/SLW {setlinewidth} def
+/GS {gsave} def
+/GR {grestore} def
+/SC {setcolor} def
+/SGRY {setgray} def
+/SRGB {setrgbcolor} def
+/SD {setdash} def
+/SLC {setlinecap} def
+/SLJ {setlinejoin} def
+/SCS {setcolorspace} def
+/FFSF {findfont setfont} def
+/CC {concat} def
+/PXL {n m 0 0 RL s} def
+/Color0 {1.0000 1.0000 1.0000} def
+/Color1 {0.0000 0.0000 0.0000} def
+/Color2 {1.0000 0.0000 0.0000} def
+/Color3 {0.0000 1.0000 0.0000} def
+/Color4 {0.0000 0.0000 1.0000} def
+/Color5 {1.0000 1.0000 0.0000} def
+/Color6 {0.7373 0.5608 0.5608} def
+/Color7 {0.8627 0.8627 0.8627} def
+/Color8 {0.5804 0.0000 0.8275} def
+/Color9 {0.0000 1.0000 1.0000} def
+/Color10 {1.0000 0.0000 1.0000} def
+/Color11 {1.0000 0.6471 0.0000} def
+/Color12 {0.4471 0.1294 0.7373} def
+/Color13 {0.4039 0.0275 0.2824} def
+/Color14 {0.2510 0.8784 0.8157} def
+/Color15 {0.0000 0.5451 0.0000} def
+/Color16 {0.7529 0.7529 0.7529} def
+/Color17 {0.5059 0.5059 0.5059} def
+/Color18 {0.2588 0.2588 0.2588} def
+/PTRN {
+ /pat_bits exch def 
+ <<
+  /PaintType 2
+  /PatternType 1 /TilingType 1
+  /BBox[0 0 16 16]
+  /XStep 16 /YStep 16
+  /PaintProc {
+   pop
+   16 16 true [-1 0 0 -1 16 16] pat_bits imagemask
+  }
+ >>
+ [0.0016 0 0 0.0016 0 0]
+ makepattern
+} def
+/Pattern0 {<0000000000000000000000000000000000000000000000000000000000000000> PTRN} bind def
+/Pattern1 {<ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff> PTRN} bind def
+/Pattern2 {<eeeeffffbbbbffffeeeeffffbbbbffffeeeeffffbbbbffffeeeeffffbbbbffff> PTRN} bind def
+/Pattern3 {<eeeebbbbeeeebbbbeeeebbbbeeeebbbbeeeebbbbeeeebbbbeeeebbbbeeeebbbb> PTRN} bind def
+/Pattern4 {<5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa> PTRN} bind def
+/Pattern5 {<1111444411114444111144441111444411114444111144441111444411114444> PTRN} bind def
+/Pattern6 {<1111000044440000111100004444000011110000444400001111000044440000> PTRN} bind def
+/Pattern7 {<1010000000000000010100000000000010100000000000000101000000000000> PTRN} bind def
+/Pattern8 {<0000000000000000000000000000000000000000000000000000000000000000> PTRN} bind def
+/Pattern9 {<1e1e0f0f8787c3c3e1e1f0f078783c3c1e1e0f0f8787c3c3e1e1f0f078783c3c> PTRN} bind def
+/Pattern10 {<7878f0f0e1e1c3c387870f0f1e1e3c3c7878f0f0e1e1c3c387870f0f1e1e3c3c> PTRN} bind def
+/Pattern11 {<3333333333333333333333333333333333333333333333333333333333333333> PTRN} bind def
+/Pattern12 {<ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000> PTRN} bind def
+/Pattern13 {<8181424224241818181824244242818181814242242418181818242442428181> PTRN} bind def
+/Pattern14 {<8080404020201010080804040202010180804040202010100808040402020101> PTRN} bind def
+/Pattern15 {<0101020204040808101020204040808001010202040408081010202040408080> PTRN} bind def
+/Pattern16 {<2222222222222222222222222222222222222222222222222222222222222222> PTRN} bind def
+/Pattern17 {<0000ffff000000000000ffff000000000000ffff000000000000ffff00000000> PTRN} bind def
+/Pattern18 {<2222ffff222222222222ffff222222222222ffff222222222222ffff22222222> PTRN} bind def
+/Pattern19 {<ffffffff33333333ffffffff33333333ffffffff33333333ffffffff33333333> PTRN} bind def
+/Pattern20 {<0f0f0f0f0f0f0f0ff0f0f0f0f0f0f0f00f0f0f0f0f0f0f0ff0f0f0f0f0f0f0f0> PTRN} bind def
+/Pattern21 {<ff00ff00ff00ff00ff00ff00ff00ff0000ff00ff00ff00ff00ff00ff00ff00ff> PTRN} bind def
+/Pattern22 {<8001800180018001800180018001ffffffff8001800180018001800180018001> PTRN} bind def
+/Pattern23 {<c003c003c003c003c003c003ffffffffffffffffc003c003c003c003c003c003> PTRN} bind def
+/Pattern24 {<040404040404ffff404040404040ffff040404040404ffff404040404040ffff> PTRN} bind def
+/Pattern25 {<180018001800180018001800ffffffff001800180018001800180018ffffffff> PTRN} bind def
+/Pattern26 {<1111b8b87c7c3a3a1111a3a3c7c78b8b1111b8b87c7c3a3a1111a3a3c7c78b8b> PTRN} bind def
+/Pattern27 {<101010102828c7c70101010182827c7c101010102828c7c70101010182827c7c> PTRN} bind def
+/Pattern28 {<1c1c121211112121c1c12121111112121c1c121211112121c1c1212111111212> PTRN} bind def
+/Pattern29 {<3e3e414180808080e3e31414080808083e3e414180808080e3e3141408080808> PTRN} bind def
+/Pattern30 {<4848888884848383848488884848383848488888848483838484888848483838> PTRN} bind def
+/Pattern31 {<03030404080808080c0c12122121c0c003030404080808080c0c12122121c0c0> PTRN} bind def
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/EARC {
+ ellipsedict begin
+  /endangle exch def
+  /startangle exch def
+  /yrad exch def
+  /xrad exch def
+  /y exch def
+  /x exch def
+  /savematrix mtrx currentmatrix def
+  x y translate
+  xrad yrad scale
+  0 0 1 startangle endangle arc
+  savematrix setmatrix
+ end
+} def
+/TL {
+  /kcomp exch def
+  /linewidth exch def
+  /offset exch def
+  GS
+  0 offset rmoveto
+  linewidth SLW
+  dup stringwidth exch kcomp add exch RL s
+  GR
+} def
+/KINIT
+{
+ /kvector exch def
+ /kid 0 def
+} def
+/KPROC
+{
+ pop pop
+ kvector kid get
+ 0 rmoveto
+ /kid 1 kid add def
+} def
+/DefEncoding [
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /space
+ /exclam
+ /quotedbl
+ /numbersign
+ /dollar
+ /percent
+ /ampersand
+ /quoteright
+ /parenleft
+ /parenright
+ /asterisk
+ /plus
+ /comma
+ /hyphen
+ /period
+ /slash
+ /zero
+ /one
+ /two
+ /three
+ /four
+ /five
+ /six
+ /seven
+ /eight
+ /nine
+ /colon
+ /semicolon
+ /less
+ /equal
+ /greater
+ /question
+ /at
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+ /P
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+ /X
+ /Y
+ /Z
+ /bracketleft
+ /backslash
+ /bracketright
+ /asciicircum
+ /underscore
+ /grave
+ /a
+ /b
+ /c
+ /d
+ /e
+ /f
+ /g
+ /h
+ /i
+ /j
+ /k
+ /l
+ /m
+ /n
+ /o
+ /p
+ /q
+ /r
+ /s
+ /t
+ /u
+ /v
+ /w
+ /x
+ /y
+ /z
+ /braceleft
+ /bar
+ /braceright
+ /asciitilde
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /space
+ /exclamdown
+ /cent
+ /sterling
+ /currency
+ /yen
+ /brokenbar
+ /section
+ /dieresis
+ /copyright
+ /ordfeminine
+ /guillemotleft
+ /logicalnot
+ /hyphen
+ /registered
+ /macron
+ /degree
+ /plusminus
+ /twosuperior
+ /threesuperior
+ /acute
+ /mu
+ /paragraph
+ /periodcentered
+ /cedilla
+ /onesuperior
+ /ordmasculine
+ /guillemotright
+ /onequarter
+ /onehalf
+ /threequarters
+ /questiondown
+ /Agrave
+ /Aacute
+ /Acircumflex
+ /Atilde
+ /Adieresis
+ /Aring
+ /AE
+ /Ccedilla
+ /Egrave
+ /Eacute
+ /Ecircumflex
+ /Edieresis
+ /Igrave
+ /Iacute
+ /Icircumflex
+ /Idieresis
+ /Eth
+ /Ntilde
+ /Ograve
+ /Oacute
+ /Ocircumflex
+ /Otilde
+ /Odieresis
+ /multiply
+ /Oslash
+ /Ugrave
+ /Uacute
+ /Ucircumflex
+ /Udieresis
+ /Yacute
+ /Thorn
+ /germandbls
+ /agrave
+ /aacute
+ /acircumflex
+ /atilde
+ /adieresis
+ /aring
+ /ae
+ /ccedilla
+ /egrave
+ /eacute
+ /ecircumflex
+ /edieresis
+ /igrave
+ /iacute
+ /icircumflex
+ /idieresis
+ /eth
+ /ntilde
+ /ograve
+ /oacute
+ /ocircumflex
+ /otilde
+ /odieresis
+ /divide
+ /oslash
+ /ugrave
+ /uacute
+ /ucircumflex
+ /udieresis
+ /yacute
+ /thorn
+ /ydieresis
+] def
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+612.00 612.00 scale
+n
+0.0000 0.0000 m
+0.0000 1.0000 l
+1.2941 1.0000 l
+1.2941 0.0000 l
+c
+[/DeviceRGB] SCS
+Color0 SC
+fill
+[/DeviceRGB] SCS
+Color1 SC
+[] 0 SD
+0.0015 SLW
+0 SLC
+0 SLJ
+n
+0.1000 0.5250 m
+0.1003 0.5250 l
+0.1006 0.5250 l
+0.1009 0.5250 l
+0.1011 0.5250 l
+0.1014 0.5250 l
+0.1017 0.5250 l
+0.1020 0.5250 l
+0.1023 0.5250 l
+0.1026 0.5250 l
+0.1029 0.5250 l
+0.1031 0.5250 l
+0.1034 0.5250 l
+0.1037 0.5250 l
+0.1040 0.5250 l
+0.1043 0.5250 l
+0.1046 0.5250 l
+0.1049 0.5250 l
+0.1052 0.5250 l
+0.1054 0.5250 l
+0.1057 0.5250 l
+0.1060 0.5250 l
+0.1063 0.5250 l
+0.1066 0.5250 l
+0.1069 0.5250 l
+0.1072 0.5250 l
+0.1074 0.5250 l
+0.1077 0.5250 l
+0.1080 0.5250 l
+0.1083 0.5250 l
+0.1086 0.5250 l
+0.1089 0.5250 l
+0.1092 0.5250 l
+0.1094 0.5250 l
+0.1097 0.5250 l
+0.1100 0.5250 l
+0.1103 0.5250 l
+0.1106 0.5250 l
+0.1109 0.5250 l
+0.1112 0.5250 l
+0.1114 0.5250 l
+0.1117 0.5250 l
+0.1120 0.5250 l
+0.1123 0.5250 l
+0.1126 0.5250 l
+0.1129 0.5250 l
+0.1132 0.5250 l
+0.1135 0.5250 l
+0.1137 0.5250 l
+0.1140 0.5250 l
+0.1143 0.5250 l
+0.1146 0.5250 l
+0.1149 0.5250 l
+0.1152 0.5250 l
+0.1155 0.5250 l
+0.1157 0.5250 l
+0.1160 0.5250 l
+0.1163 0.5250 l
+0.1166 0.5250 l
+0.1169 0.5250 l
+0.1172 0.5250 l
+0.1175 0.5250 l
+0.1177 0.5250 l
+0.1180 0.5250 l
+0.1183 0.5250 l
+0.1186 0.5250 l
+0.1189 0.5250 l
+0.1192 0.5250 l
+0.1195 0.5250 l
+0.1197 0.5250 l
+0.1200 0.5250 l
+0.1203 0.5250 l
+0.1206 0.5250 l
+0.1209 0.5250 l
+0.1212 0.5250 l
+0.1215 0.5250 l
+0.1218 0.5250 l
+0.1220 0.5250 l
+0.1223 0.5250 l
+0.1226 0.5250 l
+0.1229 0.5250 l
+0.1232 0.5250 l
+0.1235 0.5250 l
+0.1238 0.5250 l
+0.1240 0.5250 l
+0.1243 0.5250 l
+0.1246 0.5250 l
+0.1249 0.5250 l
+0.1252 0.5250 l
+0.1255 0.5250 l
+0.1258 0.5250 l
+0.1260 0.5250 l
+0.1263 0.5250 l
+0.1266 0.5250 l
+0.1269 0.5250 l
+0.1272 0.5250 l
+0.1275 0.5250 l
+0.1278 0.5250 l
+0.1281 0.5250 l
+0.1283 0.5250 l
+0.1286 0.5250 l
+0.1289 0.5250 l
+0.1292 0.5250 l
+0.1295 0.5250 l
+0.1298 0.5250 l
+0.1301 0.5250 l
+0.1303 0.5250 l
+0.1306 0.5250 l
+0.1309 0.5250 l
+0.1312 0.5250 l
+0.1315 0.5250 l
+0.1318 0.5250 l
+0.1321 0.5250 l
+0.1323 0.5250 l
+0.1326 0.5250 l
+0.1329 0.5250 l
+0.1332 0.5250 l
+0.1335 0.5250 l
+0.1338 0.5250 l
+0.1341 0.5250 l
+0.1343 0.5250 l
+0.1346 0.5250 l
+0.1349 0.5250 l
+0.1352 0.5250 l
+0.1355 0.5250 l
+0.1358 0.5250 l
+0.1361 0.5250 l
+0.1364 0.5250 l
+0.1366 0.5250 l
+0.1369 0.5250 l
+0.1372 0.5250 l
+0.1375 0.5250 l
+0.1378 0.5250 l
+0.1381 0.5250 l
+0.1384 0.5250 l
+0.1386 0.5250 l
+0.1389 0.5250 l
+0.1392 0.5250 l
+0.1395 0.5250 l
+0.1398 0.5250 l
+0.1401 0.5250 l
+0.1404 0.5250 l
+0.1406 0.5250 l
+0.1409 0.5250 l
+0.1412 0.5250 l
+0.1415 0.5250 l
+0.1418 0.5250 l
+0.1421 0.5250 l
+0.1424 0.5250 l
+0.1426 0.5250 l
+0.1429 0.5250 l
+0.1432 0.5250 l
+0.1435 0.5250 l
+0.1438 0.5250 l
+0.1441 0.5250 l
+0.1444 0.5250 l
+0.1447 0.5250 l
+0.1449 0.5250 l
+0.1452 0.5250 l
+0.1455 0.5250 l
+0.1458 0.5250 l
+0.1461 0.5250 l
+0.1464 0.5250 l
+0.1467 0.5250 l
+0.1469 0.5250 l
+0.1472 0.5250 l
+0.1475 0.5250 l
+0.1478 0.5250 l
+0.1481 0.5250 l
+0.1484 0.5250 l
+0.1487 0.5250 l
+0.1489 0.5250 l
+0.1492 0.5250 l
+0.1495 0.5250 l
+0.1498 0.5250 l
+0.1501 0.5250 l
+0.1504 0.5250 l
+0.1507 0.5250 l
+0.1509 0.5250 l
+0.1512 0.5250 l
+0.1515 0.5250 l
+0.1518 0.5250 l
+0.1521 0.5250 l
+0.1524 0.5250 l
+0.1527 0.5250 l
+0.1530 0.5250 l
+0.1532 0.5250 l
+0.1535 0.5250 l
+0.1538 0.5250 l
+0.1541 0.5250 l
+0.1544 0.5250 l
+0.1547 0.5250 l
+0.1550 0.5250 l
+0.1552 0.5250 l
+0.1555 0.5250 l
+0.1558 0.5250 l
+0.1561 0.5250 l
+0.1564 0.5250 l
+0.1567 0.5250 l
+0.1570 0.5250 l
+0.1572 0.5250 l
+0.1575 0.5250 l
+0.1578 0.5250 l
+0.1581 0.5250 l
+0.1584 0.5250 l
+0.1587 0.5250 l
+0.1590 0.5250 l
+0.1592 0.5250 l
+0.1595 0.5250 l
+0.1598 0.5250 l
+0.1601 0.5250 l
+0.1604 0.5250 l
+0.1607 0.5250 l
+0.1610 0.5250 l
+0.1613 0.5250 l
+0.1615 0.5250 l
+0.1618 0.5250 l
+0.1621 0.5250 l
+0.1624 0.5250 l
+0.1627 0.5250 l
+0.1630 0.5250 l
+0.1633 0.5250 l
+0.1635 0.5250 l
+0.1638 0.5250 l
+0.1641 0.5250 l
+0.1644 0.5250 l
+0.1647 0.5250 l
+0.1650 0.5250 l
+0.1653 0.5250 l
+0.1655 0.5250 l
+0.1658 0.5250 l
+0.1661 0.5250 l
+0.1664 0.5250 l
+0.1667 0.5250 l
+0.1670 0.5250 l
+0.1673 0.5250 l
+0.1675 0.5250 l
+0.1678 0.5250 l
+0.1681 0.5250 l
+0.1684 0.5250 l
+0.1687 0.5250 l
+0.1690 0.5250 l
+0.1693 0.5250 l
+0.1696 0.5250 l
+0.1698 0.5250 l
+0.1701 0.5250 l
+0.1704 0.5250 l
+0.1707 0.5250 l
+0.1710 0.5250 l
+0.1713 0.5250 l
+0.1716 0.5250 l
+0.1718 0.5250 l
+0.1721 0.5250 l
+0.1724 0.5250 l
+0.1727 0.5250 l
+0.1730 0.5250 l
+0.1733 0.5250 l
+0.1736 0.5250 l
+0.1738 0.5250 l
+0.1741 0.5250 l
+0.1744 0.5250 l
+0.1747 0.5250 l
+0.1750 0.5250 l
+0.1753 0.5250 l
+0.1756 0.5250 l
+0.1758 0.5250 l
+0.1761 0.5250 l
+0.1764 0.5250 l
+0.1767 0.5250 l
+0.1770 0.5250 l
+0.1773 0.5250 l
+0.1776 0.5250 l
+0.1779 0.5250 l
+0.1781 0.5250 l
+0.1784 0.5250 l
+0.1787 0.5250 l
+0.1790 0.5250 l
+0.1793 0.5250 l
+0.1796 0.5250 l
+0.1799 0.5250 l
+0.1801 0.5250 l
+0.1804 0.5250 l
+0.1807 0.5250 l
+0.1810 0.5250 l
+0.1813 0.5250 l
+0.1816 0.5250 l
+0.1819 0.5250 l
+0.1821 0.5250 l
+0.1824 0.5250 l
+0.1827 0.5250 l
+0.1830 0.5250 l
+0.1833 0.5250 l
+0.1836 0.5250 l
+0.1839 0.5250 l
+0.1842 0.5250 l
+0.1844 0.5250 l
+0.1847 0.5250 l
+0.1850 0.5250 l
+0.1853 0.5250 l
+0.1856 0.5250 l
+0.1859 0.5250 l
+0.1862 0.5250 l
+0.1864 0.5250 l
+0.1867 0.5250 l
+0.1870 0.5250 l
+0.1873 0.5250 l
+0.1876 0.5250 l
+0.1879 0.5250 l
+0.1882 0.5250 l
+0.1884 0.5250 l
+0.1887 0.5250 l
+0.1890 0.5250 l
+0.1893 0.5250 l
+0.1896 0.5250 l
+0.1899 0.5250 l
+0.1902 0.5250 l
+0.1904 0.5250 l
+0.1907 0.5251 l
+0.1910 0.5251 l
+0.1913 0.5251 l
+0.1916 0.5251 l
+0.1919 0.5251 l
+0.1922 0.5251 l
+0.1925 0.5251 l
+0.1927 0.5251 l
+0.1930 0.5251 l
+0.1933 0.5251 l
+0.1936 0.5251 l
+0.1939 0.5251 l
+0.1942 0.5251 l
+0.1945 0.5251 l
+0.1947 0.5251 l
+0.1950 0.5251 l
+0.1953 0.5251 l
+0.1956 0.5251 l
+0.1959 0.5251 l
+0.1962 0.5250 l
+0.1965 0.5250 l
+0.1967 0.5250 l
+0.1970 0.5250 l
+0.1973 0.5250 l
+0.1976 0.5250 l
+0.1979 0.5250 l
+0.1982 0.5250 l
+0.1985 0.5250 l
+0.1987 0.5250 l
+0.1990 0.5250 l
+0.1993 0.5250 l
+0.1996 0.5250 l
+0.1999 0.5250 l
+0.2002 0.5250 l
+0.2005 0.5250 l
+0.2008 0.5250 l
+0.2010 0.5250 l
+0.2013 0.5249 l
+0.2016 0.5249 l
+0.2019 0.5249 l
+0.2022 0.5249 l
+0.2025 0.5249 l
+0.2028 0.5249 l
+0.2030 0.5249 l
+0.2033 0.5249 l
+0.2036 0.5249 l
+0.2039 0.5249 l
+0.2042 0.5249 l
+0.2045 0.5249 l
+0.2048 0.5249 l
+0.2050 0.5249 l
+0.2053 0.5249 l
+0.2056 0.5249 l
+0.2059 0.5249 l
+0.2062 0.5249 l
+0.2065 0.5249 l
+0.2068 0.5249 l
+0.2070 0.5249 l
+0.2073 0.5249 l
+0.2076 0.5249 l
+0.2079 0.5249 l
+0.2082 0.5249 l
+0.2085 0.5249 l
+0.2088 0.5249 l
+0.2091 0.5249 l
+0.2093 0.5250 l
+0.2096 0.5250 l
+0.2099 0.5250 l
+0.2102 0.5250 l
+0.2105 0.5250 l
+0.2108 0.5250 l
+0.2111 0.5250 l
+0.2113 0.5250 l
+0.2116 0.5250 l
+0.2119 0.5250 l
+0.2122 0.5250 l
+0.2125 0.5251 l
+0.2128 0.5251 l
+0.2131 0.5251 l
+0.2133 0.5251 l
+0.2136 0.5251 l
+0.2139 0.5251 l
+0.2142 0.5251 l
+0.2145 0.5251 l
+0.2148 0.5251 l
+0.2151 0.5251 l
+0.2153 0.5251 l
+0.2156 0.5251 l
+0.2159 0.5251 l
+0.2162 0.5251 l
+0.2165 0.5252 l
+0.2168 0.5252 l
+0.2171 0.5252 l
+0.2174 0.5252 l
+0.2176 0.5252 l
+0.2179 0.5252 l
+0.2182 0.5252 l
+0.2185 0.5251 l
+0.2188 0.5251 l
+0.2191 0.5251 l
+0.2194 0.5251 l
+0.2196 0.5251 l
+0.2199 0.5251 l
+0.2202 0.5251 l
+0.2205 0.5251 l
+0.2208 0.5251 l
+0.2211 0.5251 l
+0.2214 0.5251 l
+0.2216 0.5251 l
+0.2219 0.5250 l
+0.2222 0.5250 l
+0.2225 0.5250 l
+0.2228 0.5250 l
+0.2231 0.5250 l
+0.2234 0.5250 l
+0.2236 0.5250 l
+0.2239 0.5249 l
+0.2242 0.5249 l
+0.2245 0.5249 l
+0.2248 0.5249 l
+0.2251 0.5249 l
+0.2254 0.5249 l
+0.2257 0.5249 l
+0.2259 0.5248 l
+0.2262 0.5248 l
+0.2265 0.5248 l
+0.2268 0.5248 l
+0.2271 0.5248 l
+0.2274 0.5248 l
+0.2277 0.5248 l
+0.2279 0.5248 l
+0.2282 0.5248 l
+0.2285 0.5248 l
+0.2288 0.5248 l
+0.2291 0.5248 l
+0.2294 0.5248 l
+0.2297 0.5248 l
+0.2299 0.5248 l
+0.2302 0.5248 l
+0.2305 0.5248 l
+0.2308 0.5248 l
+0.2311 0.5248 l
+0.2314 0.5248 l
+0.2317 0.5248 l
+0.2320 0.5248 l
+0.2322 0.5248 l
+0.2325 0.5248 l
+0.2328 0.5249 l
+0.2331 0.5249 l
+0.2334 0.5249 l
+0.2337 0.5249 l
+0.2340 0.5249 l
+0.2342 0.5250 l
+0.2345 0.5250 l
+0.2348 0.5250 l
+0.2351 0.5250 l
+0.2354 0.5250 l
+0.2357 0.5251 l
+0.2360 0.5251 l
+0.2362 0.5251 l
+0.2365 0.5251 l
+0.2368 0.5252 l
+0.2371 0.5252 l
+0.2374 0.5252 l
+0.2377 0.5252 l
+0.2380 0.5252 l
+0.2382 0.5252 l
+0.2385 0.5253 l
+0.2388 0.5253 l
+0.2391 0.5253 l
+0.2394 0.5253 l
+0.2397 0.5253 l
+0.2400 0.5253 l
+0.2403 0.5253 l
+0.2405 0.5253 l
+0.2408 0.5253 l
+0.2411 0.5254 l
+0.2414 0.5254 l
+0.2417 0.5253 l
+0.2420 0.5253 l
+0.2423 0.5253 l
+0.2425 0.5253 l
+0.2428 0.5253 l
+0.2431 0.5253 l
+0.2434 0.5253 l
+0.2437 0.5253 l
+0.2440 0.5253 l
+0.2443 0.5252 l
+0.2445 0.5252 l
+0.2448 0.5252 l
+0.2451 0.5252 l
+0.2454 0.5251 l
+0.2457 0.5251 l
+0.2460 0.5251 l
+0.2463 0.5251 l
+0.2465 0.5250 l
+0.2468 0.5250 l
+0.2471 0.5250 l
+0.2474 0.5249 l
+0.2477 0.5249 l
+0.2480 0.5249 l
+0.2483 0.5248 l
+0.2486 0.5248 l
+0.2488 0.5248 l
+0.2491 0.5247 l
+0.2494 0.5247 l
+0.2497 0.5247 l
+0.2500 0.5247 l
+0.2503 0.5246 l
+0.2506 0.5246 l
+0.2508 0.5246 l
+0.2511 0.5246 l
+0.2514 0.5245 l
+0.2517 0.5245 l
+0.2520 0.5245 l
+0.2523 0.5245 l
+0.2526 0.5245 l
+0.2528 0.5245 l
+0.2531 0.5245 l
+0.2534 0.5245 l
+0.2537 0.5245 l
+0.2540 0.5245 l
+0.2543 0.5245 l
+0.2546 0.5245 l
+0.2548 0.5245 l
+0.2551 0.5245 l
+0.2554 0.5246 l
+0.2557 0.5246 l
+0.2560 0.5246 l
+0.2563 0.5246 l
+0.2566 0.5247 l
+0.2569 0.5247 l
+0.2571 0.5247 l
+0.2574 0.5248 l
+0.2577 0.5248 l
+0.2580 0.5249 l
+0.2583 0.5249 l
+0.2586 0.5250 l
+0.2589 0.5250 l
+0.2591 0.5251 l
+0.2594 0.5251 l
+0.2597 0.5251 l
+0.2600 0.5252 l
+0.2603 0.5252 l
+0.2606 0.5253 l
+0.2609 0.5253 l
+0.2611 0.5254 l
+0.2614 0.5254 l
+0.2617 0.5255 l
+0.2620 0.5255 l
+0.2623 0.5255 l
+0.2626 0.5256 l
+0.2629 0.5256 l
+0.2631 0.5256 l
+0.2634 0.5257 l
+0.2637 0.5257 l
+0.2640 0.5257 l
+0.2643 0.5257 l
+0.2646 0.5257 l
+0.2649 0.5258 l
+0.2652 0.5258 l
+0.2654 0.5258 l
+0.2657 0.5258 l
+0.2660 0.5257 l
+0.2663 0.5257 l
+0.2666 0.5257 l
+0.2669 0.5257 l
+0.2672 0.5257 l
+0.2674 0.5256 l
+0.2677 0.5256 l
+0.2680 0.5256 l
+0.2683 0.5255 l
+0.2686 0.5255 l
+0.2689 0.5254 l
+0.2692 0.5254 l
+0.2694 0.5253 l
+0.2697 0.5252 l
+0.2700 0.5252 l
+0.2703 0.5251 l
+0.2706 0.5251 l
+0.2709 0.5250 l
+0.2712 0.5249 l
+0.2714 0.5248 l
+0.2717 0.5248 l
+0.2720 0.5247 l
+0.2723 0.5246 l
+0.2726 0.5246 l
+0.2729 0.5245 l
+0.2732 0.5244 l
+0.2735 0.5244 l
+0.2737 0.5243 l
+0.2740 0.5243 l
+0.2743 0.5242 l
+0.2746 0.5242 l
+0.2749 0.5241 l
+0.2752 0.5241 l
+0.2755 0.5240 l
+0.2757 0.5240 l
+0.2760 0.5240 l
+0.2763 0.5239 l
+0.2766 0.5239 l
+0.2769 0.5239 l
+0.2772 0.5239 l
+0.2775 0.5239 l
+0.2777 0.5239 l
+0.2780 0.5239 l
+0.2783 0.5240 l
+0.2786 0.5240 l
+0.2789 0.5240 l
+0.2792 0.5241 l
+0.2795 0.5241 l
+0.2797 0.5242 l
+0.2800 0.5242 l
+0.2803 0.5243 l
+0.2806 0.5243 l
+0.2809 0.5244 l
+0.2812 0.5245 l
+0.2815 0.5246 l
+0.2818 0.5247 l
+0.2820 0.5248 l
+0.2823 0.5248 l
+0.2826 0.5249 l
+0.2829 0.5250 l
+0.2832 0.5251 l
+0.2835 0.5252 l
+0.2838 0.5253 l
+0.2840 0.5254 l
+0.2843 0.5255 l
+0.2846 0.5256 l
+0.2849 0.5257 l
+0.2852 0.5258 l
+0.2855 0.5259 l
+0.2858 0.5260 l
+0.2860 0.5261 l
+0.2863 0.5262 l
+0.2866 0.5262 l
+0.2869 0.5263 l
+0.2872 0.5263 l
+0.2875 0.5264 l
+0.2878 0.5264 l
+0.2881 0.5265 l
+0.2883 0.5265 l
+0.2886 0.5265 l
+0.2889 0.5266 l
+0.2892 0.5266 l
+0.2895 0.5266 l
+0.2898 0.5265 l
+0.2901 0.5265 l
+0.2903 0.5265 l
+0.2906 0.5264 l
+0.2909 0.5264 l
+0.2912 0.5263 l
+0.2915 0.5263 l
+0.2918 0.5262 l
+0.2921 0.5261 l
+0.2923 0.5260 l
+0.2926 0.5259 l
+0.2929 0.5258 l
+0.2932 0.5257 l
+0.2935 0.5256 l
+0.2938 0.5255 l
+0.2941 0.5253 l
+0.2943 0.5252 l
+0.2946 0.5251 l
+0.2949 0.5249 l
+0.2952 0.5248 l
+0.2955 0.5247 l
+0.2958 0.5245 l
+0.2961 0.5244 l
+0.2964 0.5242 l
+0.2966 0.5241 l
+0.2969 0.5240 l
+0.2972 0.5238 l
+0.2975 0.5237 l
+0.2978 0.5236 l
+0.2981 0.5235 l
+0.2984 0.5234 l
+0.2986 0.5233 l
+0.2989 0.5232 l
+0.2992 0.5231 l
+0.2995 0.5230 l
+0.2998 0.5229 l
+0.3001 0.5229 l
+0.3004 0.5229 l
+0.3006 0.5228 l
+0.3009 0.5228 l
+0.3012 0.5228 l
+0.3015 0.5228 l
+0.3018 0.5228 l
+0.3021 0.5229 l
+0.3024 0.5229 l
+0.3026 0.5230 l
+0.3029 0.5230 l
+0.3032 0.5231 l
+0.3035 0.5232 l
+0.3038 0.5233 l
+0.3041 0.5234 l
+0.3044 0.5236 l
+0.3047 0.5237 l
+0.3049 0.5239 l
+0.3052 0.5240 l
+0.3055 0.5242 l
+0.3058 0.5244 l
+0.3061 0.5245 l
+0.3064 0.5247 l
+0.3067 0.5249 l
+0.3069 0.5251 l
+0.3072 0.5253 l
+0.3075 0.5255 l
+0.3078 0.5257 l
+0.3081 0.5259 l
+0.3084 0.5261 l
+0.3087 0.5263 l
+0.3089 0.5265 l
+0.3092 0.5267 l
+0.3095 0.5268 l
+0.3098 0.5270 l
+0.3101 0.5272 l
+0.3104 0.5273 l
+0.3107 0.5275 l
+0.3109 0.5276 l
+0.3112 0.5277 l
+0.3115 0.5278 l
+0.3118 0.5279 l
+0.3121 0.5280 l
+0.3124 0.5280 l
+0.3127 0.5280 l
+0.3130 0.5281 l
+0.3132 0.5281 l
+0.3135 0.5281 l
+0.3138 0.5280 l
+0.3141 0.5280 l
+0.3144 0.5279 l
+0.3147 0.5278 l
+0.3150 0.5277 l
+0.3152 0.5276 l
+0.3155 0.5275 l
+0.3158 0.5273 l
+0.3161 0.5272 l
+0.3164 0.5270 l
+0.3167 0.5268 l
+0.3170 0.5266 l
+0.3172 0.5263 l
+0.3175 0.5261 l
+0.3178 0.5259 l
+0.3181 0.5256 l
+0.3184 0.5253 l
+0.3187 0.5251 l
+0.3190 0.5248 l
+0.3192 0.5245 l
+0.3195 0.5243 l
+0.3198 0.5240 l
+0.3201 0.5237 l
+0.3204 0.5234 l
+0.3207 0.5232 l
+0.3210 0.5229 l
+0.3213 0.5227 l
+0.3215 0.5224 l
+0.3218 0.5222 l
+0.3221 0.5220 l
+0.3224 0.5218 l
+0.3227 0.5216 l
+0.3230 0.5214 l
+0.3233 0.5213 l
+0.3235 0.5211 l
+0.3238 0.5210 l
+0.3241 0.5209 l
+0.3244 0.5208 l
+0.3247 0.5208 l
+0.3250 0.5208 l
+0.3253 0.5208 l
+0.3255 0.5208 l
+0.3258 0.5208 l
+0.3261 0.5209 l
+0.3264 0.5210 l
+0.3267 0.5211 l
+0.3270 0.5213 l
+0.3273 0.5214 l
+0.3275 0.5216 l
+0.3278 0.5218 l
+0.3281 0.5221 l
+0.3284 0.5223 l
+0.3287 0.5226 l
+0.3290 0.5229 l
+0.3293 0.5232 l
+0.3296 0.5235 l
+0.3298 0.5239 l
+0.3301 0.5242 l
+0.3304 0.5246 l
+0.3307 0.5249 l
+0.3310 0.5253 l
+0.3313 0.5257 l
+0.3316 0.5261 l
+0.3318 0.5264 l
+0.3321 0.5268 l
+0.3324 0.5272 l
+0.3327 0.5275 l
+0.3330 0.5279 l
+0.3333 0.5282 l
+0.3336 0.5286 l
+0.3338 0.5289 l
+0.3341 0.5292 l
+0.3344 0.5295 l
+0.3347 0.5297 l
+0.3350 0.5299 l
+0.3353 0.5302 l
+0.3356 0.5303 l
+0.3359 0.5305 l
+0.3361 0.5306 l
+0.3364 0.5307 l
+0.3367 0.5308 l
+0.3370 0.5308 l
+0.3373 0.5308 l
+0.3376 0.5308 l
+0.3379 0.5307 l
+0.3381 0.5306 l
+0.3384 0.5305 l
+0.3387 0.5303 l
+0.3390 0.5301 l
+0.3393 0.5298 l
+0.3396 0.5296 l
+0.3399 0.5293 l
+0.3401 0.5290 l
+0.3404 0.5286 l
+0.3407 0.5282 l
+0.3410 0.5278 l
+0.3413 0.5274 l
+0.3416 0.5270 l
+0.3419 0.5265 l
+0.3421 0.5260 l
+0.3424 0.5255 l
+0.3427 0.5250 l
+0.3430 0.5245 l
+0.3433 0.5240 l
+0.3436 0.5235 l
+0.3439 0.5230 l
+0.3442 0.5225 l
+0.3444 0.5220 l
+0.3447 0.5215 l
+0.3450 0.5210 l
+0.3453 0.5206 l
+0.3456 0.5201 l
+0.3459 0.5197 l
+0.3462 0.5193 l
+0.3464 0.5189 l
+0.3467 0.5186 l
+0.3470 0.5183 l
+0.3473 0.5180 l
+0.3476 0.5178 l
+0.3479 0.5176 l
+0.3482 0.5174 l
+0.3484 0.5173 l
+0.3487 0.5172 l
+0.3490 0.5172 l
+0.3493 0.5172 l
+0.3496 0.5172 l
+0.3499 0.5173 l
+0.3502 0.5175 l
+0.3504 0.5177 l
+0.3507 0.5179 l
+0.3510 0.5182 l
+0.3513 0.5185 l
+0.3516 0.5189 l
+0.3519 0.5193 l
+0.3522 0.5197 l
+0.3525 0.5202 l
+0.3527 0.5207 l
+0.3530 0.5212 l
+0.3533 0.5218 l
+0.3536 0.5224 l
+0.3539 0.5230 l
+0.3542 0.5237 l
+0.3545 0.5243 l
+0.3547 0.5250 l
+0.3550 0.5257 l
+0.3553 0.5264 l
+0.3556 0.5271 l
+0.3559 0.5278 l
+0.3562 0.5284 l
+0.3565 0.5291 l
+0.3567 0.5298 l
+0.3570 0.5304 l
+0.3573 0.5310 l
+0.3576 0.5316 l
+0.3579 0.5322 l
+0.3582 0.5327 l
+0.3585 0.5332 l
+0.3587 0.5336 l
+0.3590 0.5341 l
+0.3593 0.5344 l
+0.3596 0.5347 l
+0.3599 0.5350 l
+0.3602 0.5352 l
+0.3605 0.5353 l
+0.3608 0.5354 l
+0.3610 0.5355 l
+0.3613 0.5355 l
+0.3616 0.5354 l
+0.3619 0.5352 l
+0.3622 0.5350 l
+0.3625 0.5348 l
+0.3628 0.5344 l
+0.3630 0.5341 l
+0.3633 0.5336 l
+0.3636 0.5331 l
+0.3639 0.5326 l
+0.3642 0.5320 l
+0.3645 0.5313 l
+0.3648 0.5306 l
+0.3650 0.5299 l
+0.3653 0.5291 l
+0.3656 0.5283 l
+0.3659 0.5275 l
+0.3662 0.5266 l
+0.3665 0.5258 l
+0.3668 0.5249 l
+0.3670 0.5240 l
+0.3673 0.5230 l
+0.3676 0.5221 l
+0.3679 0.5212 l
+0.3682 0.5203 l
+0.3685 0.5194 l
+0.3688 0.5186 l
+0.3691 0.5177 l
+0.3693 0.5169 l
+0.3696 0.5161 l
+0.3699 0.5154 l
+0.3702 0.5147 l
+0.3705 0.5141 l
+0.3708 0.5135 l
+0.3711 0.5129 l
+0.3713 0.5125 l
+0.3716 0.5121 l
+0.3719 0.5117 l
+0.3722 0.5115 l
+0.3725 0.5113 l
+0.3728 0.5112 l
+0.3731 0.5111 l
+0.3733 0.5112 l
+0.3736 0.5113 l
+0.3739 0.5115 l
+0.3742 0.5118 l
+0.3745 0.5121 l
+0.3748 0.5126 l
+0.3751 0.5131 l
+0.3753 0.5137 l
+0.3756 0.5144 l
+0.3759 0.5151 l
+0.3762 0.5159 l
+0.3765 0.5167 l
+0.3768 0.5177 l
+0.3771 0.5186 l
+0.3774 0.5197 l
+0.3776 0.5207 l
+0.3779 0.5218 l
+0.3782 0.5230 l
+0.3785 0.5241 l
+0.3788 0.5253 l
+0.3791 0.5265 l
+0.3794 0.5277 l
+0.3796 0.5289 l
+0.3799 0.5301 l
+0.3802 0.5313 l
+0.3805 0.5324 l
+0.3808 0.5336 l
+0.3811 0.5347 l
+0.3814 0.5357 l
+0.3816 0.5367 l
+0.3819 0.5377 l
+0.3822 0.5386 l
+0.3825 0.5394 l
+0.3828 0.5402 l
+0.3831 0.5409 l
+0.3834 0.5415 l
+0.3836 0.5420 l
+0.3839 0.5424 l
+0.3842 0.5427 l
+0.3845 0.5430 l
+0.3848 0.5431 l
+0.3851 0.5431 l
+0.3854 0.5431 l
+0.3857 0.5429 l
+0.3859 0.5426 l
+0.3862 0.5422 l
+0.3865 0.5417 l
+0.3868 0.5411 l
+0.3871 0.5404 l
+0.3874 0.5397 l
+0.3877 0.5388 l
+0.3879 0.5378 l
+0.3882 0.5368 l
+0.3885 0.5356 l
+0.3888 0.5344 l
+0.3891 0.5331 l
+0.3894 0.5318 l
+0.3897 0.5304 l
+0.3899 0.5290 l
+0.3902 0.5275 l
+0.3905 0.5260 l
+0.3908 0.5244 l
+0.3911 0.5229 l
+0.3914 0.5213 l
+0.3917 0.5198 l
+0.3920 0.5182 l
+0.3922 0.5167 l
+0.3925 0.5152 l
+0.3928 0.5137 l
+0.3931 0.5123 l
+0.3934 0.5109 l
+0.3937 0.5096 l
+0.3940 0.5084 l
+0.3942 0.5072 l
+0.3945 0.5062 l
+0.3948 0.5052 l
+0.3951 0.5044 l
+0.3954 0.5036 l
+0.3957 0.5029 l
+0.3960 0.5024 l
+0.3962 0.5020 l
+0.3965 0.5017 l
+0.3968 0.5016 l
+0.3971 0.5016 l
+0.3974 0.5017 l
+0.3977 0.5019 l
+0.3980 0.5023 l
+0.3982 0.5028 l
+0.3985 0.5035 l
+0.3988 0.5043 l
+0.3991 0.5052 l
+0.3994 0.5062 l
+0.3997 0.5073 l
+0.4000 0.5086 l
+0.4003 0.5100 l
+0.4005 0.5115 l
+0.4008 0.5130 l
+0.4011 0.5147 l
+0.4014 0.5164 l
+0.4017 0.5182 l
+0.4020 0.5201 l
+0.4023 0.5220 l
+0.4025 0.5240 l
+0.4028 0.5260 l
+0.4031 0.5280 l
+0.4034 0.5300 l
+0.4037 0.5320 l
+0.4040 0.5340 l
+0.4043 0.5359 l
+0.4045 0.5378 l
+0.4048 0.5397 l
+0.4051 0.5415 l
+0.4054 0.5433 l
+0.4057 0.5449 l
+0.4060 0.5465 l
+0.4063 0.5479 l
+0.4065 0.5493 l
+0.4068 0.5505 l
+0.4071 0.5516 l
+0.4074 0.5525 l
+0.4077 0.5533 l
+0.4080 0.5540 l
+0.4083 0.5545 l
+0.4086 0.5548 l
+0.4088 0.5550 l
+0.4091 0.5550 l
+0.4094 0.5548 l
+0.4097 0.5545 l
+0.4100 0.5539 l
+0.4103 0.5533 l
+0.4106 0.5524 l
+0.4108 0.5514 l
+0.4111 0.5502 l
+0.4114 0.5489 l
+0.4117 0.5474 l
+0.4120 0.5457 l
+0.4123 0.5440 l
+0.4126 0.5421 l
+0.4128 0.5400 l
+0.4131 0.5379 l
+0.4134 0.5357 l
+0.4137 0.5334 l
+0.4140 0.5310 l
+0.4143 0.5285 l
+0.4146 0.5260 l
+0.4148 0.5235 l
+0.4151 0.5210 l
+0.4154 0.5184 l
+0.4157 0.5159 l
+0.4160 0.5133 l
+0.4163 0.5108 l
+0.4166 0.5084 l
+0.4169 0.5060 l
+0.4171 0.5038 l
+0.4174 0.5016 l
+0.4177 0.4995 l
+0.4180 0.4975 l
+0.4183 0.4957 l
+0.4186 0.4940 l
+0.4189 0.4925 l
+0.4191 0.4912 l
+0.4194 0.4900 l
+0.4197 0.4890 l
+0.4200 0.4882 l
+0.4203 0.4876 l
+0.4206 0.4872 l
+0.4209 0.4870 l
+0.4211 0.4871 l
+0.4214 0.4873 l
+0.4217 0.4878 l
+0.4220 0.4885 l
+0.4223 0.4894 l
+0.4226 0.4905 l
+0.4229 0.4918 l
+0.4231 0.4934 l
+0.4234 0.4951 l
+0.4237 0.4970 l
+0.4240 0.4991 l
+0.4243 0.5013 l
+0.4246 0.5038 l
+0.4249 0.5063 l
+0.4252 0.5090 l
+0.4254 0.5119 l
+0.4257 0.5148 l
+0.4260 0.5178 l
+0.4263 0.5209 l
+0.4266 0.5241 l
+0.4269 0.5272 l
+0.4272 0.5305 l
+0.4274 0.5337 l
+0.4277 0.5369 l
+0.4280 0.5400 l
+0.4283 0.5431 l
+0.4286 0.5462 l
+0.4289 0.5491 l
+0.4292 0.5520 l
+0.4294 0.5547 l
+0.4297 0.5573 l
+0.4300 0.5597 l
+0.4303 0.5620 l
+0.4306 0.5641 l
+0.4309 0.5659 l
+0.4312 0.5676 l
+0.4314 0.5690 l
+0.4317 0.5702 l
+0.4320 0.5712 l
+0.4323 0.5719 l
+0.4326 0.5723 l
+0.4329 0.5725 l
+0.4332 0.5724 l
+0.4335 0.5721 l
+0.4337 0.5714 l
+0.4340 0.5705 l
+0.4343 0.5694 l
+0.4346 0.5679 l
+0.4349 0.5662 l
+0.4352 0.5643 l
+0.4355 0.5621 l
+0.4357 0.5597 l
+0.4360 0.5570 l
+0.4363 0.5542 l
+0.4366 0.5511 l
+0.4369 0.5479 l
+0.4372 0.5445 l
+0.4375 0.5410 l
+0.4377 0.5373 l
+0.4380 0.5335 l
+0.4383 0.5297 l
+0.4386 0.5257 l
+0.4389 0.5218 l
+0.4392 0.5178 l
+0.4395 0.5138 l
+0.4397 0.5098 l
+0.4400 0.5059 l
+0.4403 0.5020 l
+0.4406 0.4982 l
+0.4409 0.4946 l
+0.4412 0.4911 l
+0.4415 0.4877 l
+0.4418 0.4845 l
+0.4420 0.4816 l
+0.4423 0.4788 l
+0.4426 0.4762 l
+0.4429 0.4740 l
+0.4432 0.4720 l
+0.4435 0.4702 l
+0.4438 0.4688 l
+0.4440 0.4676 l
+0.4443 0.4668 l
+0.4446 0.4663 l
+0.4449 0.4662 l
+0.4452 0.4663 l
+0.4455 0.4668 l
+0.4458 0.4677 l
+0.4460 0.4688 l
+0.4463 0.4703 l
+0.4466 0.4721 l
+0.4469 0.4743 l
+0.4472 0.4767 l
+0.4475 0.4795 l
+0.4478 0.4825 l
+0.4481 0.4858 l
+0.4483 0.4894 l
+0.4486 0.4932 l
+0.4489 0.4972 l
+0.4492 0.5014 l
+0.4495 0.5058 l
+0.4498 0.5104 l
+0.4501 0.5150 l
+0.4503 0.5198 l
+0.4506 0.5246 l
+0.4509 0.5295 l
+0.4512 0.5345 l
+0.4515 0.5394 l
+0.4518 0.5442 l
+0.4521 0.5491 l
+0.4523 0.5538 l
+0.4526 0.5584 l
+0.4529 0.5629 l
+0.4532 0.5672 l
+0.4535 0.5712 l
+0.4538 0.5751 l
+0.4541 0.5787 l
+0.4543 0.5821 l
+0.4546 0.5852 l
+0.4549 0.5879 l
+0.4552 0.5903 l
+0.4555 0.5924 l
+0.4558 0.5941 l
+0.4561 0.5954 l
+0.4564 0.5964 l
+0.4566 0.5969 l
+0.4569 0.5971 l
+0.4572 0.5968 l
+0.4575 0.5961 l
+0.4578 0.5950 l
+0.4581 0.5935 l
+0.4584 0.5916 l
+0.4586 0.5894 l
+0.4589 0.5867 l
+0.4592 0.5836 l
+0.4595 0.5802 l
+0.4598 0.5764 l
+0.4601 0.5724 l
+0.4604 0.5680 l
+0.4606 0.5633 l
+0.4609 0.5583 l
+0.4612 0.5532 l
+0.4615 0.5478 l
+0.4618 0.5422 l
+0.4621 0.5365 l
+0.4624 0.5307 l
+0.4626 0.5248 l
+0.4629 0.5188 l
+0.4632 0.5128 l
+0.4635 0.5068 l
+0.4638 0.5009 l
+0.4641 0.4951 l
+0.4644 0.4893 l
+0.4647 0.4838 l
+0.4649 0.4784 l
+0.4652 0.4732 l
+0.4655 0.4683 l
+0.4658 0.4636 l
+0.4661 0.4593 l
+0.4664 0.4552 l
+0.4667 0.4516 l
+0.4669 0.4483 l
+0.4672 0.4455 l
+0.4675 0.4430 l
+0.4678 0.4410 l
+0.4681 0.4395 l
+0.4684 0.4384 l
+0.4687 0.4378 l
+0.4689 0.4377 l
+0.4692 0.4381 l
+0.4695 0.4390 l
+0.4698 0.4404 l
+0.4701 0.4423 l
+0.4704 0.4447 l
+0.4707 0.4475 l
+0.4709 0.4508 l
+0.4712 0.4546 l
+0.4715 0.4588 l
+0.4718 0.4634 l
+0.4721 0.4684 l
+0.4724 0.4737 l
+0.4727 0.4794 l
+0.4730 0.4854 l
+0.4732 0.4917 l
+0.4735 0.4983 l
+0.4738 0.5050 l
+0.4741 0.5119 l
+0.4744 0.5189 l
+0.4747 0.5261 l
+0.4750 0.5333 l
+0.4752 0.5405 l
+0.4755 0.5477 l
+0.4758 0.5548 l
+0.4761 0.5618 l
+0.4764 0.5687 l
+0.4767 0.5753 l
+0.4770 0.5818 l
+0.4772 0.5879 l
+0.4775 0.5938 l
+0.4778 0.5994 l
+0.4781 0.6045 l
+0.4784 0.6093 l
+0.4787 0.6136 l
+0.4790 0.6174 l
+0.4792 0.6208 l
+0.4795 0.6236 l
+0.4798 0.6259 l
+0.4801 0.6277 l
+0.4804 0.6289 l
+0.4807 0.6295 l
+0.4810 0.6295 l
+0.4813 0.6289 l
+0.4815 0.6278 l
+0.4818 0.6260 l
+0.4821 0.6237 l
+0.4824 0.6208 l
+0.4827 0.6173 l
+0.4830 0.6132 l
+0.4833 0.6086 l
+0.4835 0.6036 l
+0.4838 0.5980 l
+0.4841 0.5919 l
+0.4844 0.5855 l
+0.4847 0.5786 l
+0.4850 0.5714 l
+0.4853 0.5638 l
+0.4855 0.5560 l
+0.4858 0.5480 l
+0.4861 0.5397 l
+0.4864 0.5313 l
+0.4867 0.5228 l
+0.4870 0.5142 l
+0.4873 0.5056 l
+0.4875 0.4971 l
+0.4878 0.4886 l
+0.4881 0.4803 l
+0.4884 0.4722 l
+0.4887 0.4643 l
+0.4890 0.4566 l
+0.4893 0.4494 l
+0.4896 0.4424 l
+0.4898 0.4359 l
+0.4901 0.4299 l
+0.4904 0.4243 l
+0.4907 0.4193 l
+0.4910 0.4148 l
+0.4913 0.4109 l
+0.4916 0.4076 l
+0.4918 0.4050 l
+0.4921 0.4030 l
+0.4924 0.4017 l
+0.4927 0.4011 l
+0.4930 0.4012 l
+0.4933 0.4020 l
+0.4936 0.4035 l
+0.4938 0.4057 l
+0.4941 0.4086 l
+0.4944 0.4121 l
+0.4947 0.4164 l
+0.4950 0.4212 l
+0.4953 0.4267 l
+0.4956 0.4329 l
+0.4959 0.4395 l
+0.4961 0.4467 l
+0.4964 0.4545 l
+0.4967 0.4626 l
+0.4970 0.4712 l
+0.4973 0.4802 l
+0.4976 0.4895 l
+0.4979 0.4990 l
+0.4981 0.5088 l
+0.4984 0.5187 l
+0.4987 0.5288 l
+0.4990 0.5389 l
+0.4993 0.5490 l
+0.4996 0.5590 l
+0.4999 0.5690 l
+0.5001 0.5787 l
+0.5004 0.5882 l
+0.5007 0.5975 l
+0.5010 0.6064 l
+0.5013 0.6149 l
+0.5016 0.6229 l
+0.5019 0.6305 l
+0.5021 0.6375 l
+0.5024 0.6440 l
+0.5027 0.6498 l
+0.5030 0.6549 l
+0.5033 0.6594 l
+0.5036 0.6631 l
+0.5039 0.6661 l
+0.5042 0.6683 l
+0.5044 0.6697 l
+0.5047 0.6702 l
+0.5050 0.6700 l
+0.5053 0.6690 l
+0.5056 0.6671 l
+0.5059 0.6644 l
+0.5062 0.6609 l
+0.5064 0.6566 l
+0.5067 0.6515 l
+0.5070 0.6457 l
+0.5073 0.6391 l
+0.5076 0.6319 l
+0.5079 0.6240 l
+0.5082 0.6155 l
+0.5084 0.6064 l
+0.5087 0.5967 l
+0.5090 0.5866 l
+0.5093 0.5761 l
+0.5096 0.5652 l
+0.5099 0.5541 l
+0.5102 0.5426 l
+0.5104 0.5310 l
+0.5107 0.5193 l
+0.5110 0.5075 l
+0.5113 0.4957 l
+0.5116 0.4841 l
+0.5119 0.4725 l
+0.5122 0.4612 l
+0.5125 0.4502 l
+0.5127 0.4395 l
+0.5130 0.4292 l
+0.5133 0.4194 l
+0.5136 0.4101 l
+0.5139 0.4014 l
+0.5142 0.3934 l
+0.5145 0.3860 l
+0.5147 0.3794 l
+0.5150 0.3735 l
+0.5153 0.3685 l
+0.5156 0.3643 l
+0.5159 0.3610 l
+0.5162 0.3586 l
+0.5165 0.3571 l
+0.5167 0.3566 l
+0.5170 0.3570 l
+0.5173 0.3584 l
+0.5176 0.3607 l
+0.5179 0.3640 l
+0.5182 0.3682 l
+0.5185 0.3733 l
+0.5187 0.3793 l
+0.5190 0.3862 l
+0.5193 0.3939 l
+0.5196 0.4024 l
+0.5199 0.4116 l
+0.5202 0.4216 l
+0.5205 0.4322 l
+0.5208 0.4434 l
+0.5210 0.4551 l
+0.5213 0.4674 l
+0.5216 0.4800 l
+0.5219 0.4929 l
+0.5222 0.5062 l
+0.5225 0.5196 l
+0.5228 0.5331 l
+0.5230 0.5467 l
+0.5233 0.5602 l
+0.5236 0.5737 l
+0.5239 0.5869 l
+0.5242 0.5999 l
+0.5245 0.6126 l
+0.5248 0.6248 l
+0.5250 0.6365 l
+0.5253 0.6477 l
+0.5256 0.6583 l
+0.5259 0.6682 l
+0.5262 0.6773 l
+0.5265 0.6856 l
+0.5268 0.6931 l
+0.5270 0.6997 l
+0.5273 0.7053 l
+0.5276 0.7100 l
+0.5279 0.7136 l
+0.5282 0.7162 l
+0.5285 0.7177 l
+0.5288 0.7181 l
+0.5291 0.7175 l
+0.5293 0.7157 l
+0.5296 0.7129 l
+0.5299 0.7090 l
+0.5302 0.7040 l
+0.5305 0.6980 l
+0.5308 0.6909 l
+0.5311 0.6829 l
+0.5313 0.6740 l
+0.5316 0.6641 l
+0.5319 0.6534 l
+0.5322 0.6419 l
+0.5325 0.6297 l
+0.5328 0.6168 l
+0.5331 0.6033 l
+0.5333 0.5892 l
+0.5336 0.5748 l
+0.5339 0.5599 l
+0.5342 0.5448 l
+0.5345 0.5295 l
+0.5348 0.5140 l
+0.5351 0.4985 l
+0.5353 0.4831 l
+0.5356 0.4678 l
+0.5359 0.4528 l
+0.5362 0.4380 l
+0.5365 0.4237 l
+0.5368 0.4099 l
+0.5371 0.3966 l
+0.5374 0.3840 l
+0.5376 0.3721 l
+0.5379 0.3610 l
+0.5382 0.3507 l
+0.5385 0.3414 l
+0.5388 0.3331 l
+0.5391 0.3258 l
+0.5394 0.3196 l
+0.5396 0.3145 l
+0.5399 0.3105 l
+0.5402 0.3078 l
+0.5405 0.3063 l
+0.5408 0.3060 l
+0.5411 0.3069 l
+0.5414 0.3091 l
+0.5416 0.3125 l
+0.5419 0.3171 l
+0.5422 0.3229 l
+0.5425 0.3300 l
+0.5428 0.3381 l
+0.5431 0.3473 l
+0.5434 0.3577 l
+0.5436 0.3690 l
+0.5439 0.3812 l
+0.5442 0.3944 l
+0.5445 0.4083 l
+0.5448 0.4230 l
+0.5451 0.4383 l
+0.5454 0.4543 l
+0.5457 0.4707 l
+0.5459 0.4875 l
+0.5462 0.5046 l
+0.5465 0.5219 l
+0.5468 0.5394 l
+0.5471 0.5568 l
+0.5474 0.5742 l
+0.5477 0.5914 l
+0.5479 0.6083 l
+0.5482 0.6248 l
+0.5485 0.6408 l
+0.5488 0.6563 l
+0.5491 0.6711 l
+0.5494 0.6852 l
+0.5497 0.6985 l
+0.5499 0.7108 l
+0.5502 0.7222 l
+0.5505 0.7325 l
+0.5508 0.7417 l
+0.5511 0.7497 l
+0.5514 0.7565 l
+0.5517 0.7620 l
+0.5520 0.7662 l
+0.5522 0.7690 l
+0.5525 0.7705 l
+0.5528 0.7706 l
+0.5531 0.7694 l
+0.5534 0.7667 l
+0.5537 0.7627 l
+0.5540 0.7573 l
+0.5542 0.7505 l
+0.5545 0.7425 l
+0.5548 0.7332 l
+0.5551 0.7226 l
+0.5554 0.7109 l
+0.5557 0.6981 l
+0.5560 0.6842 l
+0.5562 0.6694 l
+0.5565 0.6537 l
+0.5568 0.6371 l
+0.5571 0.6199 l
+0.5574 0.6020 l
+0.5577 0.5836 l
+0.5580 0.5648 l
+0.5582 0.5456 l
+0.5585 0.5263 l
+0.5588 0.5068 l
+0.5591 0.4873 l
+0.5594 0.4680 l
+0.5597 0.4489 l
+0.5600 0.4301 l
+0.5603 0.4118 l
+0.5605 0.3940 l
+0.5608 0.3769 l
+0.5611 0.3605 l
+0.5614 0.3450 l
+0.5617 0.3304 l
+0.5620 0.3168 l
+0.5623 0.3044 l
+0.5625 0.2931 l
+0.5628 0.2831 l
+0.5631 0.2744 l
+0.5634 0.2671 l
+0.5637 0.2612 l
+0.5640 0.2568 l
+0.5643 0.2538 l
+0.5645 0.2524 l
+0.5648 0.2525 l
+0.5651 0.2542 l
+0.5654 0.2574 l
+0.5657 0.2621 l
+0.5660 0.2683 l
+0.5663 0.2760 l
+0.5665 0.2852 l
+0.5668 0.2957 l
+0.5671 0.3076 l
+0.5674 0.3207 l
+0.5677 0.3351 l
+0.5680 0.3506 l
+0.5683 0.3672 l
+0.5686 0.3847 l
+0.5688 0.4032 l
+0.5691 0.4223 l
+0.5694 0.4422 l
+0.5697 0.4626 l
+0.5700 0.4834 l
+0.5703 0.5046 l
+0.5706 0.5260 l
+0.5708 0.5475 l
+0.5711 0.5689 l
+0.5714 0.5902 l
+0.5717 0.6112 l
+0.5720 0.6319 l
+0.5723 0.6520 l
+0.5726 0.6715 l
+0.5728 0.6902 l
+0.5731 0.7081 l
+0.5734 0.7250 l
+0.5737 0.7409 l
+0.5740 0.7556 l
+0.5743 0.7691 l
+0.5746 0.7813 l
+0.5748 0.7921 l
+0.5751 0.8014 l
+0.5754 0.8092 l
+0.5757 0.8154 l
+0.5760 0.8200 l
+0.5763 0.8230 l
+0.5766 0.8243 l
+0.5769 0.8239 l
+0.5771 0.8218 l
+0.5774 0.8180 l
+0.5777 0.8126 l
+0.5780 0.8055 l
+0.5783 0.7968 l
+0.5786 0.7866 l
+0.5789 0.7748 l
+0.5791 0.7616 l
+0.5794 0.7469 l
+0.5797 0.7310 l
+0.5800 0.7138 l
+0.5803 0.6955 l
+0.5806 0.6762 l
+0.5809 0.6559 l
+0.5811 0.6348 l
+0.5814 0.6130 l
+0.5817 0.5906 l
+0.5820 0.5678 l
+0.5823 0.5446 l
+0.5826 0.5213 l
+0.5829 0.4978 l
+0.5831 0.4744 l
+0.5834 0.4513 l
+0.5837 0.4284 l
+0.5840 0.4060 l
+0.5843 0.3842 l
+0.5846 0.3631 l
+0.5849 0.3428 l
+0.5852 0.3235 l
+0.5854 0.3052 l
+0.5857 0.2881 l
+0.5860 0.2723 l
+0.5863 0.2578 l
+0.5866 0.2448 l
+0.5869 0.2334 l
+0.5872 0.2235 l
+0.5874 0.2153 l
+0.5877 0.2088 l
+0.5880 0.2041 l
+0.5883 0.2012 l
+0.5886 0.2000 l
+0.5889 0.2008 l
+0.5892 0.2033 l
+0.5894 0.2077 l
+0.5897 0.2139 l
+0.5900 0.2218 l
+0.5903 0.2315 l
+0.5906 0.2429 l
+0.5909 0.2559 l
+0.5912 0.2705 l
+0.5914 0.2866 l
+0.5917 0.3040 l
+0.5920 0.3228 l
+0.5923 0.3428 l
+0.5926 0.3639 l
+0.5929 0.3860 l
+0.5932 0.4089 l
+0.5935 0.4325 l
+0.5937 0.4568 l
+0.5940 0.4815 l
+0.5943 0.5066 l
+0.5946 0.5319 l
+0.5949 0.5572 l
+0.5952 0.5824 l
+0.5955 0.6073 l
+0.5957 0.6319 l
+0.5960 0.6560 l
+0.5963 0.6794 l
+0.5966 0.7020 l
+0.5969 0.7237 l
+0.5972 0.7444 l
+0.5975 0.7638 l
+0.5977 0.7820 l
+0.5980 0.7988 l
+0.5983 0.8141 l
+0.5986 0.8279 l
+0.5989 0.8399 l
+0.5992 0.8502 l
+0.5995 0.8588 l
+0.5998 0.8654 l
+0.6000 0.8702 l
+0.6003 0.8731 l
+0.6006 0.8739 l
+0.6009 0.8729 l
+0.6012 0.8698 l
+0.6015 0.8648 l
+0.6018 0.8579 l
+0.6020 0.8491 l
+0.6023 0.8384 l
+0.6026 0.8259 l
+0.6029 0.8117 l
+0.6032 0.7958 l
+0.6035 0.7783 l
+0.6038 0.7594 l
+0.6040 0.7391 l
+0.6043 0.7175 l
+0.6046 0.6948 l
+0.6049 0.6710 l
+0.6052 0.6464 l
+0.6055 0.6210 l
+0.6058 0.5949 l
+0.6060 0.5684 l
+0.6063 0.5416 l
+0.6066 0.5146 l
+0.6069 0.4876 l
+0.6072 0.4608 l
+0.6075 0.4342 l
+0.6078 0.4080 l
+0.6081 0.3825 l
+0.6083 0.3576 l
+0.6086 0.3337 l
+0.6089 0.3107 l
+0.6092 0.2889 l
+0.6095 0.2684 l
+0.6098 0.2492 l
+0.6101 0.2316 l
+0.6103 0.2156 l
+0.6106 0.2012 l
+0.6109 0.1887 l
+0.6112 0.1780 l
+0.6115 0.1693 l
+0.6118 0.1625 l
+0.6121 0.1577 l
+0.6123 0.1550 l
+0.6126 0.1544 l
+0.6129 0.1559 l
+0.6132 0.1595 l
+0.6135 0.1651 l
+0.6138 0.1728 l
+0.6141 0.1825 l
+0.6143 0.1941 l
+0.6146 0.2076 l
+0.6149 0.2230 l
+0.6152 0.2401 l
+0.6155 0.2588 l
+0.6158 0.2791 l
+0.6161 0.3008 l
+0.6164 0.3239 l
+0.6166 0.3481 l
+0.6169 0.3734 l
+0.6172 0.3996 l
+0.6175 0.4266 l
+0.6178 0.4542 l
+0.6181 0.4823 l
+0.6184 0.5106 l
+0.6186 0.5391 l
+0.6189 0.5676 l
+0.6192 0.5960 l
+0.6195 0.6240 l
+0.6198 0.6515 l
+0.6201 0.6783 l
+0.6204 0.7044 l
+0.6206 0.7295 l
+0.6209 0.7535 l
+0.6212 0.7763 l
+0.6215 0.7977 l
+0.6218 0.8176 l
+0.6221 0.8359 l
+0.6224 0.8525 l
+0.6226 0.8673 l
+0.6229 0.8802 l
+0.6232 0.8911 l
+0.6235 0.9000 l
+0.6238 0.9068 l
+0.6241 0.9114 l
+0.6244 0.9139 l
+0.6247 0.9142 l
+0.6249 0.9123 l
+0.6252 0.9082 l
+0.6255 0.9020 l
+0.6258 0.8936 l
+0.6261 0.8831 l
+0.6264 0.8706 l
+0.6267 0.8561 l
+0.6269 0.8397 l
+0.6272 0.8215 l
+0.6275 0.8016 l
+0.6278 0.7801 l
+0.6281 0.7571 l
+0.6284 0.7328 l
+0.6287 0.7072 l
+0.6289 0.6806 l
+0.6292 0.6530 l
+0.6295 0.6247 l
+0.6298 0.5958 l
+0.6301 0.5664 l
+0.6304 0.5367 l
+0.6307 0.5069 l
+0.6309 0.4771 l
+0.6312 0.4476 l
+0.6315 0.4184 l
+0.6318 0.3898 l
+0.6321 0.3619 l
+0.6324 0.3349 l
+0.6327 0.3089 l
+0.6330 0.2841 l
+0.6332 0.2606 l
+0.6335 0.2385 l
+0.6338 0.2180 l
+0.6341 0.1992 l
+0.6344 0.1822 l
+0.6347 0.1671 l
+0.6350 0.1540 l
+0.6352 0.1430 l
+0.6355 0.1341 l
+0.6358 0.1274 l
+0.6361 0.1229 l
+0.6364 0.1207 l
+0.6367 0.1208 l
+0.6370 0.1231 l
+0.6372 0.1277 l
+0.6375 0.1345 l
+0.6378 0.1436 l
+0.6381 0.1548 l
+0.6384 0.1681 l
+0.6387 0.1835 l
+0.6390 0.2008 l
+0.6392 0.2199 l
+0.6395 0.2408 l
+0.6398 0.2633 l
+0.6401 0.2874 l
+0.6404 0.3128 l
+0.6407 0.3394 l
+0.6410 0.3671 l
+0.6413 0.3958 l
+0.6415 0.4252 l
+0.6418 0.4552 l
+0.6421 0.4857 l
+0.6424 0.5164 l
+0.6427 0.5472 l
+0.6430 0.5779 l
+0.6433 0.6083 l
+0.6435 0.6384 l
+0.6438 0.6678 l
+0.6441 0.6964 l
+0.6444 0.7242 l
+0.6447 0.7508 l
+0.6450 0.7762 l
+0.6453 0.8002 l
+0.6455 0.8227 l
+0.6458 0.8436 l
+0.6461 0.8626 l
+0.6464 0.8798 l
+0.6467 0.8950 l
+0.6470 0.9082 l
+0.6473 0.9192 l
+0.6475 0.9280 l
+0.6478 0.9345 l
+0.6481 0.9388 l
+0.6484 0.9407 l
+0.6487 0.9402 l
+0.6490 0.9375 l
+0.6493 0.9324 l
+0.6496 0.9250 l
+0.6498 0.9153 l
+0.6501 0.9035 l
+0.6504 0.8895 l
+0.6507 0.8734 l
+0.6510 0.8554 l
+0.6513 0.8354 l
+0.6516 0.8137 l
+0.6518 0.7904 l
+0.6521 0.7656 l
+0.6524 0.7393 l
+0.6527 0.7119 l
+0.6530 0.6833 l
+0.6533 0.6539 l
+0.6536 0.6237 l
+0.6538 0.5929 l
+0.6541 0.5617 l
+0.6544 0.5303 l
+0.6547 0.4988 l
+0.6550 0.4675 l
+0.6553 0.4364 l
+0.6556 0.4058 l
+0.6559 0.3759 l
+0.6561 0.3468 l
+0.6564 0.3187 l
+0.6567 0.2917 l
+0.6570 0.2660 l
+0.6573 0.2417 l
+0.6576 0.2191 l
+0.6579 0.1981 l
+0.6581 0.1790 l
+0.6584 0.1618 l
+0.6587 0.1466 l
+0.6590 0.1336 l
+0.6593 0.1227 l
+0.6596 0.1141 l
+0.6599 0.1079 l
+0.6601 0.1039 l
+0.6604 0.1024 l
+0.6607 0.1032 l
+0.6610 0.1064 l
+0.6613 0.1119 l
+0.6616 0.1198 l
+0.6619 0.1299 l
+0.6621 0.1423 l
+0.6624 0.1569 l
+0.6627 0.1735 l
+0.6630 0.1921 l
+0.6633 0.2126 l
+0.6636 0.2349 l
+0.6639 0.2588 l
+0.6642 0.2842 l
+0.6644 0.3110 l
+0.6647 0.3390 l
+0.6650 0.3680 l
+0.6653 0.3979 l
+0.6656 0.4286 l
+0.6659 0.4598 l
+0.6662 0.4914 l
+0.6664 0.5232 l
+0.6667 0.5550 l
+0.6670 0.5867 l
+0.6673 0.6180 l
+0.6676 0.6488 l
+0.6679 0.6789 l
+0.6682 0.7081 l
+0.6684 0.7363 l
+0.6687 0.7634 l
+0.6690 0.7891 l
+0.6693 0.8133 l
+0.6696 0.8359 l
+0.6699 0.8567 l
+0.6702 0.8757 l
+0.6704 0.8927 l
+0.6707 0.9076 l
+0.6710 0.9204 l
+0.6713 0.9310 l
+0.6716 0.9393 l
+0.6719 0.9452 l
+0.6722 0.9488 l
+0.6725 0.9500 l
+0.6727 0.9488 l
+0.6730 0.9452 l
+0.6733 0.9393 l
+0.6736 0.9310 l
+0.6739 0.9204 l
+0.6742 0.9076 l
+0.6745 0.8927 l
+0.6747 0.8757 l
+0.6750 0.8567 l
+0.6753 0.8359 l
+0.6756 0.8133 l
+0.6759 0.7891 l
+0.6762 0.7634 l
+0.6765 0.7363 l
+0.6767 0.7081 l
+0.6770 0.6789 l
+0.6773 0.6488 l
+0.6776 0.6180 l
+0.6779 0.5867 l
+0.6782 0.5550 l
+0.6785 0.5232 l
+0.6787 0.4914 l
+0.6790 0.4598 l
+0.6793 0.4286 l
+0.6796 0.3979 l
+0.6799 0.3680 l
+0.6802 0.3390 l
+0.6805 0.3110 l
+0.6808 0.2842 l
+0.6810 0.2588 l
+0.6813 0.2349 l
+0.6816 0.2126 l
+0.6819 0.1921 l
+0.6822 0.1735 l
+0.6825 0.1569 l
+0.6828 0.1423 l
+0.6830 0.1299 l
+0.6833 0.1198 l
+0.6836 0.1119 l
+0.6839 0.1064 l
+0.6842 0.1032 l
+0.6845 0.1024 l
+0.6848 0.1039 l
+0.6850 0.1079 l
+0.6853 0.1141 l
+0.6856 0.1227 l
+0.6859 0.1336 l
+0.6862 0.1466 l
+0.6865 0.1618 l
+0.6868 0.1790 l
+0.6870 0.1981 l
+0.6873 0.2191 l
+0.6876 0.2417 l
+0.6879 0.2660 l
+0.6882 0.2917 l
+0.6885 0.3187 l
+0.6888 0.3468 l
+0.6891 0.3759 l
+0.6893 0.4058 l
+0.6896 0.4364 l
+0.6899 0.4675 l
+0.6902 0.4988 l
+0.6905 0.5303 l
+0.6908 0.5617 l
+0.6911 0.5929 l
+0.6913 0.6237 l
+0.6916 0.6539 l
+0.6919 0.6833 l
+0.6922 0.7119 l
+0.6925 0.7393 l
+0.6928 0.7656 l
+0.6931 0.7904 l
+0.6933 0.8137 l
+0.6936 0.8354 l
+0.6939 0.8554 l
+0.6942 0.8734 l
+0.6945 0.8895 l
+0.6948 0.9035 l
+0.6951 0.9153 l
+0.6953 0.9250 l
+0.6956 0.9324 l
+0.6959 0.9375 l
+0.6962 0.9402 l
+0.6965 0.9407 l
+0.6968 0.9388 l
+0.6971 0.9345 l
+0.6974 0.9280 l
+0.6976 0.9192 l
+0.6979 0.9082 l
+0.6982 0.8950 l
+0.6985 0.8798 l
+0.6988 0.8626 l
+0.6991 0.8436 l
+0.6994 0.8227 l
+0.6996 0.8002 l
+0.6999 0.7762 l
+0.7002 0.7508 l
+0.7005 0.7242 l
+0.7008 0.6964 l
+0.7011 0.6678 l
+0.7014 0.6384 l
+0.7016 0.6083 l
+0.7019 0.5779 l
+0.7022 0.5472 l
+0.7025 0.5164 l
+0.7028 0.4857 l
+0.7031 0.4552 l
+0.7034 0.4252 l
+0.7037 0.3958 l
+0.7039 0.3671 l
+0.7042 0.3394 l
+0.7045 0.3128 l
+0.7048 0.2874 l
+0.7051 0.2633 l
+0.7054 0.2408 l
+0.7057 0.2199 l
+0.7059 0.2008 l
+0.7062 0.1835 l
+0.7065 0.1681 l
+0.7068 0.1548 l
+0.7071 0.1436 l
+0.7074 0.1345 l
+0.7077 0.1277 l
+0.7079 0.1231 l
+0.7082 0.1208 l
+0.7085 0.1207 l
+0.7088 0.1229 l
+0.7091 0.1274 l
+0.7094 0.1341 l
+0.7097 0.1430 l
+0.7099 0.1540 l
+0.7102 0.1671 l
+0.7105 0.1822 l
+0.7108 0.1992 l
+0.7111 0.2180 l
+0.7114 0.2385 l
+0.7117 0.2606 l
+0.7120 0.2841 l
+0.7122 0.3089 l
+0.7125 0.3349 l
+0.7128 0.3619 l
+0.7131 0.3898 l
+0.7134 0.4184 l
+0.7137 0.4476 l
+0.7140 0.4771 l
+0.7142 0.5069 l
+0.7145 0.5367 l
+0.7148 0.5664 l
+0.7151 0.5958 l
+0.7154 0.6247 l
+0.7157 0.6530 l
+0.7160 0.6806 l
+0.7162 0.7072 l
+0.7165 0.7328 l
+0.7168 0.7571 l
+0.7171 0.7801 l
+0.7174 0.8016 l
+0.7177 0.8215 l
+0.7180 0.8397 l
+0.7182 0.8561 l
+0.7185 0.8706 l
+0.7188 0.8831 l
+0.7191 0.8936 l
+0.7194 0.9020 l
+0.7197 0.9082 l
+0.7200 0.9123 l
+0.7203 0.9142 l
+0.7205 0.9139 l
+0.7208 0.9114 l
+0.7211 0.9068 l
+0.7214 0.9000 l
+0.7217 0.8911 l
+0.7220 0.8802 l
+0.7223 0.8673 l
+0.7225 0.8525 l
+0.7228 0.8359 l
+0.7231 0.8176 l
+0.7234 0.7977 l
+0.7237 0.7763 l
+0.7240 0.7535 l
+0.7243 0.7295 l
+0.7245 0.7044 l
+0.7248 0.6783 l
+0.7251 0.6515 l
+0.7254 0.6240 l
+0.7257 0.5960 l
+0.7260 0.5676 l
+0.7263 0.5391 l
+0.7265 0.5106 l
+0.7268 0.4823 l
+0.7271 0.4542 l
+0.7274 0.4266 l
+0.7277 0.3996 l
+0.7280 0.3734 l
+0.7283 0.3481 l
+0.7286 0.3239 l
+0.7288 0.3008 l
+0.7291 0.2791 l
+0.7294 0.2588 l
+0.7297 0.2401 l
+0.7300 0.2230 l
+0.7303 0.2076 l
+0.7306 0.1941 l
+0.7308 0.1825 l
+0.7311 0.1728 l
+0.7314 0.1651 l
+0.7317 0.1595 l
+0.7320 0.1559 l
+0.7323 0.1544 l
+0.7326 0.1550 l
+0.7328 0.1577 l
+0.7331 0.1625 l
+0.7334 0.1693 l
+0.7337 0.1780 l
+0.7340 0.1887 l
+0.7343 0.2012 l
+0.7346 0.2156 l
+0.7348 0.2316 l
+0.7351 0.2492 l
+0.7354 0.2684 l
+0.7357 0.2889 l
+0.7360 0.3107 l
+0.7363 0.3337 l
+0.7366 0.3576 l
+0.7369 0.3825 l
+0.7371 0.4080 l
+0.7374 0.4342 l
+0.7377 0.4608 l
+0.7380 0.4876 l
+0.7383 0.5146 l
+0.7386 0.5416 l
+0.7389 0.5684 l
+0.7391 0.5949 l
+0.7394 0.6210 l
+0.7397 0.6464 l
+0.7400 0.6710 l
+0.7403 0.6948 l
+0.7406 0.7175 l
+0.7409 0.7391 l
+0.7411 0.7594 l
+0.7414 0.7783 l
+0.7417 0.7958 l
+0.7420 0.8117 l
+0.7423 0.8259 l
+0.7426 0.8384 l
+0.7429 0.8491 l
+0.7431 0.8579 l
+0.7434 0.8648 l
+0.7437 0.8698 l
+0.7440 0.8729 l
+0.7443 0.8739 l
+0.7446 0.8731 l
+0.7449 0.8702 l
+0.7452 0.8654 l
+0.7454 0.8588 l
+0.7457 0.8502 l
+0.7460 0.8399 l
+0.7463 0.8279 l
+0.7466 0.8141 l
+0.7469 0.7988 l
+0.7472 0.7820 l
+0.7474 0.7638 l
+0.7477 0.7444 l
+0.7480 0.7237 l
+0.7483 0.7020 l
+0.7486 0.6794 l
+0.7489 0.6560 l
+0.7492 0.6319 l
+0.7494 0.6073 l
+0.7497 0.5824 l
+0.7500 0.5572 l
+0.7503 0.5319 l
+0.7506 0.5066 l
+0.7509 0.4815 l
+0.7512 0.4568 l
+0.7514 0.4325 l
+0.7517 0.4089 l
+0.7520 0.3859 l
+0.7523 0.3639 l
+0.7526 0.3428 l
+0.7529 0.3228 l
+0.7532 0.3040 l
+0.7535 0.2866 l
+0.7537 0.2705 l
+0.7540 0.2559 l
+0.7543 0.2429 l
+0.7546 0.2315 l
+0.7549 0.2218 l
+0.7552 0.2139 l
+0.7555 0.2077 l
+0.7557 0.2033 l
+0.7560 0.2008 l
+0.7563 0.2000 l
+0.7566 0.2012 l
+0.7569 0.2041 l
+0.7572 0.2088 l
+0.7575 0.2153 l
+0.7577 0.2235 l
+0.7580 0.2334 l
+0.7583 0.2448 l
+0.7586 0.2578 l
+0.7589 0.2723 l
+0.7592 0.2881 l
+0.7595 0.3052 l
+0.7598 0.3235 l
+0.7600 0.3428 l
+0.7603 0.3631 l
+0.7606 0.3842 l
+0.7609 0.4060 l
+0.7612 0.4284 l
+0.7615 0.4513 l
+0.7618 0.4744 l
+0.7620 0.4978 l
+0.7623 0.5213 l
+0.7626 0.5446 l
+0.7629 0.5678 l
+0.7632 0.5906 l
+0.7635 0.6130 l
+0.7638 0.6348 l
+0.7640 0.6559 l
+0.7643 0.6762 l
+0.7646 0.6955 l
+0.7649 0.7138 l
+0.7652 0.7310 l
+0.7655 0.7469 l
+0.7658 0.7616 l
+0.7660 0.7748 l
+0.7663 0.7866 l
+0.7666 0.7968 l
+0.7669 0.8055 l
+0.7672 0.8126 l
+0.7675 0.8180 l
+0.7678 0.8218 l
+0.7681 0.8239 l
+0.7683 0.8243 l
+0.7686 0.8230 l
+0.7689 0.8200 l
+0.7692 0.8154 l
+0.7695 0.8092 l
+0.7698 0.8014 l
+0.7701 0.7921 l
+0.7703 0.7813 l
+0.7706 0.7691 l
+0.7709 0.7556 l
+0.7712 0.7409 l
+0.7715 0.7250 l
+0.7718 0.7081 l
+0.7721 0.6902 l
+0.7723 0.6715 l
+0.7726 0.6520 l
+0.7729 0.6319 l
+0.7732 0.6112 l
+0.7735 0.5902 l
+0.7738 0.5689 l
+0.7741 0.5475 l
+0.7743 0.5260 l
+0.7746 0.5046 l
+0.7749 0.4834 l
+0.7752 0.4626 l
+0.7755 0.4422 l
+0.7758 0.4223 l
+0.7761 0.4032 l
+0.7764 0.3847 l
+0.7766 0.3672 l
+0.7769 0.3506 l
+0.7772 0.3351 l
+0.7775 0.3207 l
+0.7778 0.3076 l
+0.7781 0.2957 l
+0.7784 0.2852 l
+0.7786 0.2760 l
+0.7789 0.2683 l
+0.7792 0.2621 l
+0.7795 0.2574 l
+0.7798 0.2542 l
+0.7801 0.2525 l
+0.7804 0.2524 l
+0.7806 0.2538 l
+0.7809 0.2568 l
+0.7812 0.2612 l
+0.7815 0.2671 l
+0.7818 0.2744 l
+0.7821 0.2831 l
+0.7824 0.2931 l
+0.7826 0.3044 l
+0.7829 0.3168 l
+0.7832 0.3304 l
+0.7835 0.3450 l
+0.7838 0.3605 l
+0.7841 0.3769 l
+0.7844 0.3940 l
+0.7847 0.4118 l
+0.7849 0.4301 l
+0.7852 0.4489 l
+0.7855 0.4680 l
+0.7858 0.4873 l
+0.7861 0.5068 l
+0.7864 0.5263 l
+0.7867 0.5456 l
+0.7869 0.5648 l
+0.7872 0.5836 l
+0.7875 0.6020 l
+0.7878 0.6199 l
+0.7881 0.6371 l
+0.7884 0.6537 l
+0.7887 0.6694 l
+0.7889 0.6842 l
+0.7892 0.6981 l
+0.7895 0.7109 l
+0.7898 0.7226 l
+0.7901 0.7332 l
+0.7904 0.7425 l
+0.7907 0.7505 l
+0.7909 0.7573 l
+0.7912 0.7627 l
+0.7915 0.7667 l
+0.7918 0.7694 l
+0.7921 0.7706 l
+0.7924 0.7705 l
+0.7927 0.7690 l
+0.7930 0.7662 l
+0.7932 0.7620 l
+0.7935 0.7565 l
+0.7938 0.7497 l
+0.7941 0.7417 l
+0.7944 0.7325 l
+0.7947 0.7222 l
+0.7950 0.7108 l
+0.7952 0.6985 l
+0.7955 0.6852 l
+0.7958 0.6711 l
+0.7961 0.6563 l
+0.7964 0.6408 l
+0.7967 0.6248 l
+0.7970 0.6083 l
+0.7972 0.5914 l
+0.7975 0.5742 l
+0.7978 0.5568 l
+0.7981 0.5394 l
+0.7984 0.5219 l
+0.7987 0.5046 l
+0.7990 0.4875 l
+0.7992 0.4707 l
+0.7995 0.4543 l
+0.7998 0.4383 l
+0.8001 0.4230 l
+0.8004 0.4083 l
+0.8007 0.3944 l
+0.8010 0.3812 l
+0.8013 0.3690 l
+0.8015 0.3577 l
+0.8018 0.3473 l
+0.8021 0.3381 l
+0.8024 0.3300 l
+0.8027 0.3229 l
+0.8030 0.3171 l
+0.8033 0.3125 l
+0.8035 0.3091 l
+0.8038 0.3069 l
+0.8041 0.3060 l
+0.8044 0.3063 l
+0.8047 0.3078 l
+0.8050 0.3105 l
+0.8053 0.3145 l
+0.8055 0.3196 l
+0.8058 0.3258 l
+0.8061 0.3331 l
+0.8064 0.3414 l
+0.8067 0.3507 l
+0.8070 0.3610 l
+0.8073 0.3721 l
+0.8076 0.3840 l
+0.8078 0.3966 l
+0.8081 0.4099 l
+0.8084 0.4237 l
+0.8087 0.4380 l
+0.8090 0.4528 l
+0.8093 0.4678 l
+0.8096 0.4831 l
+0.8098 0.4985 l
+0.8101 0.5140 l
+0.8104 0.5295 l
+0.8107 0.5448 l
+0.8110 0.5599 l
+0.8113 0.5748 l
+0.8116 0.5892 l
+0.8118 0.6033 l
+0.8121 0.6168 l
+0.8124 0.6297 l
+0.8127 0.6419 l
+0.8130 0.6534 l
+0.8133 0.6641 l
+0.8136 0.6740 l
+0.8138 0.6829 l
+0.8141 0.6909 l
+0.8144 0.6980 l
+0.8147 0.7040 l
+0.8150 0.7090 l
+0.8153 0.7129 l
+0.8156 0.7157 l
+0.8159 0.7175 l
+0.8161 0.7181 l
+0.8164 0.7177 l
+0.8167 0.7162 l
+0.8170 0.7136 l
+0.8173 0.7100 l
+0.8176 0.7053 l
+0.8179 0.6997 l
+0.8181 0.6931 l
+0.8184 0.6856 l
+0.8187 0.6773 l
+0.8190 0.6682 l
+0.8193 0.6583 l
+0.8196 0.6477 l
+0.8199 0.6365 l
+0.8201 0.6248 l
+0.8204 0.6126 l
+0.8207 0.5999 l
+0.8210 0.5869 l
+0.8213 0.5737 l
+0.8216 0.5602 l
+0.8219 0.5467 l
+0.8221 0.5331 l
+0.8224 0.5196 l
+0.8227 0.5062 l
+0.8230 0.4929 l
+0.8233 0.4800 l
+0.8236 0.4674 l
+0.8239 0.4551 l
+0.8242 0.4434 l
+0.8244 0.4322 l
+0.8247 0.4216 l
+0.8250 0.4116 l
+0.8253 0.4024 l
+0.8256 0.3939 l
+0.8259 0.3862 l
+0.8262 0.3793 l
+0.8264 0.3733 l
+0.8267 0.3682 l
+0.8270 0.3640 l
+0.8273 0.3607 l
+0.8276 0.3584 l
+0.8279 0.3570 l
+0.8282 0.3566 l
+0.8284 0.3571 l
+0.8287 0.3586 l
+0.8290 0.3610 l
+0.8293 0.3643 l
+0.8296 0.3685 l
+0.8299 0.3735 l
+0.8302 0.3794 l
+0.8304 0.3860 l
+0.8307 0.3934 l
+0.8310 0.4014 l
+0.8313 0.4101 l
+0.8316 0.4194 l
+0.8319 0.4292 l
+0.8322 0.4395 l
+0.8325 0.4502 l
+0.8327 0.4612 l
+0.8330 0.4725 l
+0.8333 0.4841 l
+0.8336 0.4957 l
+0.8339 0.5075 l
+0.8342 0.5193 l
+0.8345 0.5310 l
+0.8347 0.5426 l
+0.8350 0.5541 l
+0.8353 0.5652 l
+0.8356 0.5761 l
+0.8359 0.5866 l
+0.8362 0.5967 l
+0.8365 0.6064 l
+0.8367 0.6155 l
+0.8370 0.6240 l
+0.8373 0.6319 l
+0.8376 0.6391 l
+0.8379 0.6457 l
+0.8382 0.6515 l
+0.8385 0.6566 l
+0.8387 0.6609 l
+0.8390 0.6644 l
+0.8393 0.6671 l
+0.8396 0.6690 l
+0.8399 0.6700 l
+0.8402 0.6702 l
+0.8405 0.6697 l
+0.8408 0.6683 l
+0.8410 0.6661 l
+0.8413 0.6631 l
+0.8416 0.6594 l
+0.8419 0.6549 l
+0.8422 0.6498 l
+0.8425 0.6440 l
+0.8428 0.6375 l
+0.8430 0.6305 l
+0.8433 0.6229 l
+0.8436 0.6149 l
+0.8439 0.6064 l
+0.8442 0.5975 l
+0.8445 0.5882 l
+0.8448 0.5787 l
+0.8450 0.5690 l
+0.8453 0.5590 l
+0.8456 0.5490 l
+0.8459 0.5389 l
+0.8462 0.5288 l
+0.8465 0.5187 l
+0.8468 0.5088 l
+0.8470 0.4990 l
+0.8473 0.4895 l
+0.8476 0.4802 l
+0.8479 0.4712 l
+0.8482 0.4626 l
+0.8485 0.4545 l
+0.8488 0.4467 l
+0.8491 0.4395 l
+0.8493 0.4329 l
+0.8496 0.4267 l
+0.8499 0.4212 l
+0.8502 0.4164 l
+0.8505 0.4121 l
+0.8508 0.4086 l
+0.8511 0.4057 l
+0.8513 0.4035 l
+0.8516 0.4020 l
+0.8519 0.4012 l
+0.8522 0.4011 l
+0.8525 0.4017 l
+0.8528 0.4030 l
+0.8531 0.4050 l
+0.8533 0.4076 l
+0.8536 0.4109 l
+0.8539 0.4148 l
+0.8542 0.4193 l
+0.8545 0.4243 l
+0.8548 0.4299 l
+0.8551 0.4359 l
+0.8553 0.4424 l
+0.8556 0.4494 l
+0.8559 0.4566 l
+0.8562 0.4643 l
+0.8565 0.4722 l
+0.8568 0.4803 l
+0.8571 0.4886 l
+0.8574 0.4971 l
+0.8576 0.5056 l
+0.8579 0.5142 l
+0.8582 0.5228 l
+0.8585 0.5313 l
+0.8588 0.5397 l
+0.8591 0.5480 l
+0.8594 0.5560 l
+0.8596 0.5638 l
+0.8599 0.5714 l
+0.8602 0.5786 l
+0.8605 0.5855 l
+0.8608 0.5919 l
+0.8611 0.5980 l
+0.8614 0.6036 l
+0.8616 0.6086 l
+0.8619 0.6132 l
+0.8622 0.6173 l
+0.8625 0.6208 l
+0.8628 0.6237 l
+0.8631 0.6260 l
+0.8634 0.6278 l
+0.8637 0.6289 l
+0.8639 0.6295 l
+0.8642 0.6295 l
+0.8645 0.6289 l
+0.8648 0.6277 l
+0.8651 0.6259 l
+0.8654 0.6236 l
+0.8657 0.6208 l
+0.8659 0.6174 l
+0.8662 0.6136 l
+0.8665 0.6093 l
+0.8668 0.6045 l
+0.8671 0.5994 l
+0.8674 0.5938 l
+0.8677 0.5880 l
+0.8679 0.5818 l
+0.8682 0.5753 l
+0.8685 0.5687 l
+0.8688 0.5618 l
+0.8691 0.5548 l
+0.8694 0.5477 l
+0.8697 0.5405 l
+0.8699 0.5333 l
+0.8702 0.5261 l
+0.8705 0.5189 l
+0.8708 0.5119 l
+0.8711 0.5050 l
+0.8714 0.4983 l
+0.8717 0.4917 l
+0.8720 0.4854 l
+0.8722 0.4794 l
+0.8725 0.4737 l
+0.8728 0.4684 l
+0.8731 0.4634 l
+0.8734 0.4588 l
+0.8737 0.4546 l
+0.8740 0.4508 l
+0.8742 0.4475 l
+0.8745 0.4447 l
+0.8748 0.4423 l
+0.8751 0.4404 l
+0.8754 0.4390 l
+0.8757 0.4381 l
+0.8760 0.4377 l
+0.8762 0.4378 l
+0.8765 0.4384 l
+0.8768 0.4395 l
+0.8771 0.4410 l
+0.8774 0.4430 l
+0.8777 0.4455 l
+0.8780 0.4483 l
+0.8782 0.4516 l
+0.8785 0.4552 l
+0.8788 0.4593 l
+0.8791 0.4636 l
+0.8794 0.4683 l
+0.8797 0.4732 l
+0.8800 0.4784 l
+0.8803 0.4838 l
+0.8805 0.4893 l
+0.8808 0.4951 l
+0.8811 0.5009 l
+0.8814 0.5068 l
+0.8817 0.5128 l
+0.8820 0.5188 l
+0.8823 0.5248 l
+0.8825 0.5307 l
+0.8828 0.5365 l
+0.8831 0.5422 l
+0.8834 0.5478 l
+0.8837 0.5532 l
+0.8840 0.5583 l
+0.8843 0.5633 l
+0.8845 0.5680 l
+0.8848 0.5724 l
+0.8851 0.5764 l
+0.8854 0.5802 l
+0.8857 0.5836 l
+0.8860 0.5867 l
+0.8863 0.5894 l
+0.8865 0.5916 l
+0.8868 0.5935 l
+0.8871 0.5950 l
+0.8874 0.5961 l
+0.8877 0.5968 l
+0.8880 0.5971 l
+0.8883 0.5969 l
+0.8886 0.5964 l
+0.8888 0.5954 l
+0.8891 0.5941 l
+0.8894 0.5924 l
+0.8897 0.5903 l
+0.8900 0.5879 l
+0.8903 0.5852 l
+0.8906 0.5821 l
+0.8908 0.5787 l
+0.8911 0.5751 l
+0.8914 0.5712 l
+0.8917 0.5672 l
+0.8920 0.5629 l
+0.8923 0.5584 l
+0.8926 0.5538 l
+0.8928 0.5491 l
+0.8931 0.5442 l
+0.8934 0.5394 l
+0.8937 0.5345 l
+0.8940 0.5295 l
+0.8943 0.5246 l
+0.8946 0.5198 l
+0.8948 0.5150 l
+0.8951 0.5104 l
+0.8954 0.5058 l
+0.8957 0.5014 l
+0.8960 0.4972 l
+0.8963 0.4932 l
+0.8966 0.4894 l
+0.8969 0.4858 l
+0.8971 0.4825 l
+0.8974 0.4795 l
+0.8977 0.4767 l
+0.8980 0.4743 l
+0.8983 0.4721 l
+0.8986 0.4703 l
+0.8989 0.4688 l
+0.8991 0.4677 l
+0.8994 0.4668 l
+0.8997 0.4663 l
+0.9000 0.4662 l
+0.9003 0.4663 l
+0.9006 0.4668 l
+0.9009 0.4676 l
+0.9011 0.4688 l
+0.9014 0.4702 l
+0.9017 0.4720 l
+0.9020 0.4740 l
+0.9023 0.4762 l
+0.9026 0.4788 l
+0.9029 0.4816 l
+0.9031 0.4845 l
+0.9034 0.4877 l
+0.9037 0.4911 l
+0.9040 0.4946 l
+0.9043 0.4982 l
+0.9046 0.5020 l
+0.9049 0.5059 l
+0.9052 0.5098 l
+0.9054 0.5138 l
+0.9057 0.5178 l
+0.9060 0.5218 l
+0.9063 0.5257 l
+0.9066 0.5297 l
+0.9069 0.5335 l
+0.9072 0.5373 l
+0.9074 0.5410 l
+0.9077 0.5445 l
+0.9080 0.5479 l
+0.9083 0.5511 l
+0.9086 0.5542 l
+0.9089 0.5570 l
+0.9092 0.5597 l
+0.9094 0.5621 l
+0.9097 0.5643 l
+0.9100 0.5662 l
+0.9103 0.5679 l
+0.9106 0.5694 l
+0.9109 0.5705 l
+0.9112 0.5714 l
+0.9115 0.5721 l
+0.9117 0.5724 l
+0.9120 0.5725 l
+0.9123 0.5723 l
+0.9126 0.5719 l
+0.9129 0.5712 l
+0.9132 0.5702 l
+0.9135 0.5690 l
+0.9137 0.5676 l
+0.9140 0.5659 l
+0.9143 0.5641 l
+0.9146 0.5620 l
+0.9149 0.5597 l
+0.9152 0.5573 l
+0.9155 0.5547 l
+0.9157 0.5520 l
+0.9160 0.5491 l
+0.9163 0.5462 l
+0.9166 0.5431 l
+0.9169 0.5400 l
+0.9172 0.5369 l
+0.9175 0.5337 l
+0.9177 0.5305 l
+0.9180 0.5272 l
+0.9183 0.5241 l
+0.9186 0.5209 l
+0.9189 0.5178 l
+0.9192 0.5148 l
+0.9195 0.5119 l
+0.9198 0.5090 l
+0.9200 0.5063 l
+0.9203 0.5038 l
+0.9206 0.5013 l
+0.9209 0.4991 l
+0.9212 0.4970 l
+0.9215 0.4951 l
+0.9218 0.4934 l
+0.9220 0.4918 l
+0.9223 0.4905 l
+0.9226 0.4894 l
+0.9229 0.4885 l
+0.9232 0.4878 l
+0.9235 0.4873 l
+0.9238 0.4871 l
+0.9240 0.4870 l
+0.9243 0.4872 l
+0.9246 0.4876 l
+0.9249 0.4882 l
+0.9252 0.4890 l
+0.9255 0.4900 l
+0.9258 0.4912 l
+0.9260 0.4925 l
+0.9263 0.4940 l
+0.9266 0.4957 l
+0.9269 0.4975 l
+0.9272 0.4995 l
+0.9275 0.5016 l
+0.9278 0.5038 l
+0.9281 0.5060 l
+0.9283 0.5084 l
+0.9286 0.5108 l
+0.9289 0.5133 l
+0.9292 0.5159 l
+0.9295 0.5184 l
+0.9298 0.5210 l
+0.9301 0.5235 l
+0.9303 0.5260 l
+0.9306 0.5285 l
+0.9309 0.5310 l
+0.9312 0.5334 l
+0.9315 0.5357 l
+0.9318 0.5379 l
+0.9321 0.5400 l
+0.9323 0.5421 l
+0.9326 0.5440 l
+0.9329 0.5457 l
+0.9332 0.5474 l
+0.9335 0.5489 l
+0.9338 0.5502 l
+0.9341 0.5514 l
+0.9343 0.5524 l
+0.9346 0.5533 l
+0.9349 0.5539 l
+0.9352 0.5545 l
+0.9355 0.5548 l
+0.9358 0.5550 l
+0.9361 0.5550 l
+0.9364 0.5548 l
+0.9366 0.5545 l
+0.9369 0.5540 l
+0.9372 0.5533 l
+0.9375 0.5525 l
+0.9378 0.5516 l
+0.9381 0.5505 l
+0.9384 0.5493 l
+0.9386 0.5479 l
+0.9389 0.5465 l
+0.9392 0.5449 l
+0.9395 0.5433 l
+0.9398 0.5415 l
+0.9401 0.5397 l
+0.9404 0.5378 l
+0.9406 0.5359 l
+0.9409 0.5340 l
+0.9412 0.5320 l
+0.9415 0.5300 l
+0.9418 0.5280 l
+0.9421 0.5260 l
+0.9424 0.5240 l
+0.9426 0.5220 l
+0.9429 0.5201 l
+0.9432 0.5182 l
+0.9435 0.5164 l
+0.9438 0.5147 l
+0.9441 0.5130 l
+0.9444 0.5115 l
+0.9447 0.5100 l
+0.9449 0.5086 l
+0.9452 0.5073 l
+0.9455 0.5062 l
+0.9458 0.5052 l
+0.9461 0.5043 l
+0.9464 0.5035 l
+0.9467 0.5028 l
+0.9469 0.5023 l
+0.9472 0.5019 l
+0.9475 0.5017 l
+0.9478 0.5016 l
+0.9481 0.5016 l
+0.9484 0.5017 l
+0.9487 0.5020 l
+0.9489 0.5024 l
+0.9492 0.5029 l
+0.9495 0.5036 l
+0.9498 0.5044 l
+0.9501 0.5052 l
+0.9504 0.5062 l
+0.9507 0.5072 l
+0.9509 0.5084 l
+0.9512 0.5096 l
+0.9515 0.5109 l
+0.9518 0.5123 l
+0.9521 0.5137 l
+0.9524 0.5152 l
+0.9527 0.5167 l
+0.9530 0.5182 l
+0.9532 0.5198 l
+0.9535 0.5213 l
+0.9538 0.5229 l
+0.9541 0.5244 l
+0.9544 0.5260 l
+0.9547 0.5275 l
+0.9550 0.5290 l
+0.9552 0.5304 l
+0.9555 0.5318 l
+0.9558 0.5331 l
+0.9561 0.5344 l
+0.9564 0.5356 l
+0.9567 0.5368 l
+0.9570 0.5378 l
+0.9572 0.5388 l
+0.9575 0.5397 l
+0.9578 0.5404 l
+0.9581 0.5411 l
+0.9584 0.5417 l
+0.9587 0.5422 l
+0.9590 0.5426 l
+0.9592 0.5429 l
+0.9595 0.5431 l
+0.9598 0.5431 l
+0.9601 0.5431 l
+0.9604 0.5430 l
+0.9607 0.5427 l
+0.9610 0.5424 l
+0.9613 0.5420 l
+0.9615 0.5415 l
+0.9618 0.5409 l
+0.9621 0.5402 l
+0.9624 0.5394 l
+0.9627 0.5386 l
+0.9630 0.5377 l
+0.9633 0.5367 l
+0.9635 0.5357 l
+0.9638 0.5347 l
+0.9641 0.5336 l
+0.9644 0.5324 l
+0.9647 0.5313 l
+0.9650 0.5301 l
+0.9653 0.5289 l
+0.9655 0.5277 l
+0.9658 0.5265 l
+0.9661 0.5253 l
+0.9664 0.5241 l
+0.9667 0.5230 l
+0.9670 0.5218 l
+0.9673 0.5207 l
+0.9676 0.5197 l
+0.9678 0.5186 l
+0.9681 0.5177 l
+0.9684 0.5167 l
+0.9687 0.5159 l
+0.9690 0.5151 l
+0.9693 0.5144 l
+0.9696 0.5137 l
+0.9698 0.5131 l
+0.9701 0.5126 l
+0.9704 0.5121 l
+0.9707 0.5118 l
+0.9710 0.5115 l
+0.9713 0.5113 l
+0.9716 0.5112 l
+0.9718 0.5111 l
+0.9721 0.5112 l
+0.9724 0.5113 l
+0.9727 0.5115 l
+0.9730 0.5117 l
+0.9733 0.5121 l
+0.9736 0.5125 l
+0.9738 0.5129 l
+0.9741 0.5135 l
+0.9744 0.5141 l
+0.9747 0.5147 l
+0.9750 0.5154 l
+0.9753 0.5161 l
+0.9756 0.5169 l
+0.9759 0.5177 l
+0.9761 0.5186 l
+0.9764 0.5194 l
+0.9767 0.5203 l
+0.9770 0.5212 l
+0.9773 0.5221 l
+0.9776 0.5230 l
+0.9779 0.5240 l
+0.9781 0.5249 l
+0.9784 0.5258 l
+0.9787 0.5266 l
+0.9790 0.5275 l
+0.9793 0.5283 l
+0.9796 0.5291 l
+0.9799 0.5299 l
+0.9801 0.5306 l
+0.9804 0.5313 l
+0.9807 0.5320 l
+0.9810 0.5326 l
+0.9813 0.5331 l
+0.9816 0.5336 l
+0.9819 0.5341 l
+0.9821 0.5344 l
+0.9824 0.5348 l
+0.9827 0.5350 l
+0.9830 0.5352 l
+0.9833 0.5354 l
+0.9836 0.5355 l
+0.9839 0.5355 l
+0.9842 0.5354 l
+0.9844 0.5353 l
+0.9847 0.5352 l
+0.9850 0.5350 l
+0.9853 0.5347 l
+0.9856 0.5344 l
+0.9859 0.5341 l
+0.9862 0.5336 l
+0.9864 0.5332 l
+0.9867 0.5327 l
+0.9870 0.5322 l
+0.9873 0.5316 l
+0.9876 0.5310 l
+0.9879 0.5304 l
+0.9882 0.5298 l
+0.9884 0.5291 l
+0.9887 0.5284 l
+0.9890 0.5278 l
+0.9893 0.5271 l
+0.9896 0.5264 l
+0.9899 0.5257 l
+0.9902 0.5250 l
+0.9904 0.5243 l
+0.9907 0.5237 l
+0.9910 0.5230 l
+0.9913 0.5224 l
+0.9916 0.5218 l
+0.9919 0.5212 l
+0.9922 0.5207 l
+0.9925 0.5202 l
+0.9927 0.5197 l
+0.9930 0.5193 l
+0.9933 0.5189 l
+0.9936 0.5185 l
+0.9939 0.5182 l
+0.9942 0.5179 l
+0.9945 0.5177 l
+0.9947 0.5175 l
+0.9950 0.5173 l
+0.9953 0.5172 l
+0.9956 0.5172 l
+0.9959 0.5172 l
+0.9962 0.5172 l
+0.9965 0.5173 l
+0.9967 0.5174 l
+0.9970 0.5176 l
+0.9973 0.5178 l
+0.9976 0.5180 l
+0.9979 0.5183 l
+0.9982 0.5186 l
+0.9985 0.5189 l
+0.9987 0.5193 l
+0.9990 0.5197 l
+0.9993 0.5201 l
+0.9996 0.5206 l
+0.9999 0.5210 l
+1.0002 0.5215 l
+1.0005 0.5220 l
+1.0008 0.5225 l
+1.0010 0.5230 l
+1.0013 0.5235 l
+1.0016 0.5240 l
+1.0019 0.5245 l
+1.0022 0.5250 l
+1.0025 0.5255 l
+1.0028 0.5260 l
+1.0030 0.5265 l
+1.0033 0.5270 l
+1.0036 0.5274 l
+1.0039 0.5278 l
+1.0042 0.5282 l
+1.0045 0.5286 l
+1.0048 0.5290 l
+1.0050 0.5293 l
+1.0053 0.5296 l
+1.0056 0.5298 l
+1.0059 0.5301 l
+1.0062 0.5303 l
+1.0065 0.5305 l
+1.0068 0.5306 l
+1.0070 0.5307 l
+1.0073 0.5308 l
+1.0076 0.5308 l
+1.0079 0.5308 l
+1.0082 0.5308 l
+1.0085 0.5307 l
+1.0088 0.5306 l
+1.0091 0.5305 l
+1.0093 0.5303 l
+1.0096 0.5302 l
+1.0099 0.5299 l
+1.0102 0.5297 l
+1.0105 0.5295 l
+1.0108 0.5292 l
+1.0111 0.5289 l
+1.0113 0.5286 l
+1.0116 0.5282 l
+1.0119 0.5279 l
+1.0122 0.5275 l
+1.0125 0.5272 l
+1.0128 0.5268 l
+1.0131 0.5264 l
+1.0133 0.5261 l
+1.0136 0.5257 l
+1.0139 0.5253 l
+1.0142 0.5249 l
+1.0145 0.5246 l
+1.0148 0.5242 l
+1.0151 0.5239 l
+1.0153 0.5235 l
+1.0156 0.5232 l
+1.0159 0.5229 l
+1.0162 0.5226 l
+1.0165 0.5223 l
+1.0168 0.5221 l
+1.0171 0.5218 l
+1.0174 0.5216 l
+1.0176 0.5214 l
+1.0179 0.5213 l
+1.0182 0.5211 l
+1.0185 0.5210 l
+1.0188 0.5209 l
+1.0191 0.5208 l
+1.0194 0.5208 l
+1.0196 0.5208 l
+1.0199 0.5208 l
+1.0202 0.5208 l
+1.0205 0.5208 l
+1.0208 0.5209 l
+1.0211 0.5210 l
+1.0214 0.5211 l
+1.0216 0.5213 l
+1.0219 0.5214 l
+1.0222 0.5216 l
+1.0225 0.5218 l
+1.0228 0.5220 l
+1.0231 0.5222 l
+1.0234 0.5224 l
+1.0237 0.5227 l
+1.0239 0.5229 l
+1.0242 0.5232 l
+1.0245 0.5234 l
+1.0248 0.5237 l
+1.0251 0.5240 l
+1.0254 0.5243 l
+1.0257 0.5245 l
+1.0259 0.5248 l
+1.0262 0.5251 l
+1.0265 0.5253 l
+1.0268 0.5256 l
+1.0271 0.5259 l
+1.0274 0.5261 l
+1.0277 0.5263 l
+1.0279 0.5266 l
+1.0282 0.5268 l
+1.0285 0.5270 l
+1.0288 0.5272 l
+1.0291 0.5273 l
+1.0294 0.5275 l
+1.0297 0.5276 l
+1.0299 0.5277 l
+1.0302 0.5278 l
+1.0305 0.5279 l
+1.0308 0.5280 l
+1.0311 0.5280 l
+1.0314 0.5281 l
+1.0317 0.5281 l
+1.0320 0.5281 l
+1.0322 0.5280 l
+1.0325 0.5280 l
+1.0328 0.5280 l
+1.0331 0.5279 l
+1.0334 0.5278 l
+1.0337 0.5277 l
+1.0340 0.5276 l
+1.0342 0.5275 l
+1.0345 0.5273 l
+1.0348 0.5272 l
+1.0351 0.5270 l
+1.0354 0.5268 l
+1.0357 0.5267 l
+1.0360 0.5265 l
+1.0362 0.5263 l
+1.0365 0.5261 l
+1.0368 0.5259 l
+1.0371 0.5257 l
+1.0374 0.5255 l
+1.0377 0.5253 l
+1.0380 0.5251 l
+1.0382 0.5249 l
+1.0385 0.5247 l
+1.0388 0.5245 l
+1.0391 0.5244 l
+1.0394 0.5242 l
+1.0397 0.5240 l
+1.0400 0.5239 l
+1.0403 0.5237 l
+1.0405 0.5236 l
+1.0408 0.5234 l
+1.0411 0.5233 l
+1.0414 0.5232 l
+1.0417 0.5231 l
+1.0420 0.5230 l
+1.0423 0.5230 l
+1.0425 0.5229 l
+1.0428 0.5229 l
+1.0431 0.5228 l
+1.0434 0.5228 l
+1.0437 0.5228 l
+1.0440 0.5228 l
+1.0443 0.5228 l
+1.0445 0.5229 l
+1.0448 0.5229 l
+1.0451 0.5229 l
+1.0454 0.5230 l
+1.0457 0.5231 l
+1.0460 0.5232 l
+1.0463 0.5233 l
+1.0465 0.5234 l
+1.0468 0.5235 l
+1.0471 0.5236 l
+1.0474 0.5237 l
+1.0477 0.5238 l
+1.0480 0.5240 l
+1.0483 0.5241 l
+1.0486 0.5242 l
+1.0488 0.5244 l
+1.0491 0.5245 l
+1.0494 0.5247 l
+1.0497 0.5248 l
+1.0500 0.5249 l
+1.0503 0.5251 l
+1.0506 0.5252 l
+1.0508 0.5253 l
+1.0511 0.5255 l
+1.0514 0.5256 l
+1.0517 0.5257 l
+1.0520 0.5258 l
+1.0523 0.5259 l
+1.0526 0.5260 l
+1.0528 0.5261 l
+1.0531 0.5262 l
+1.0534 0.5263 l
+1.0537 0.5263 l
+1.0540 0.5264 l
+1.0543 0.5264 l
+1.0546 0.5265 l
+1.0548 0.5265 l
+1.0551 0.5265 l
+1.0554 0.5266 l
+1.0557 0.5266 l
+1.0560 0.5266 l
+1.0563 0.5265 l
+1.0566 0.5265 l
+1.0569 0.5265 l
+1.0571 0.5264 l
+1.0574 0.5264 l
+1.0577 0.5263 l
+1.0580 0.5263 l
+1.0583 0.5262 l
+1.0586 0.5262 l
+1.0589 0.5261 l
+1.0591 0.5260 l
+1.0594 0.5259 l
+1.0597 0.5258 l
+1.0600 0.5257 l
+1.0603 0.5256 l
+1.0606 0.5255 l
+1.0609 0.5254 l
+1.0611 0.5253 l
+1.0614 0.5252 l
+1.0617 0.5251 l
+1.0620 0.5250 l
+1.0623 0.5249 l
+1.0626 0.5248 l
+1.0629 0.5248 l
+1.0631 0.5247 l
+1.0634 0.5246 l
+1.0637 0.5245 l
+1.0640 0.5244 l
+1.0643 0.5243 l
+1.0646 0.5243 l
+1.0649 0.5242 l
+1.0652 0.5242 l
+1.0654 0.5241 l
+1.0657 0.5241 l
+1.0660 0.5240 l
+1.0663 0.5240 l
+1.0666 0.5240 l
+1.0669 0.5239 l
+1.0672 0.5239 l
+1.0674 0.5239 l
+1.0677 0.5239 l
+1.0680 0.5239 l
+1.0683 0.5239 l
+1.0686 0.5239 l
+1.0689 0.5240 l
+1.0692 0.5240 l
+1.0694 0.5240 l
+1.0697 0.5241 l
+1.0700 0.5241 l
+1.0703 0.5242 l
+1.0706 0.5242 l
+1.0709 0.5243 l
+1.0712 0.5243 l
+1.0715 0.5244 l
+1.0717 0.5244 l
+1.0720 0.5245 l
+1.0723 0.5246 l
+1.0726 0.5246 l
+1.0729 0.5247 l
+1.0732 0.5248 l
+1.0735 0.5248 l
+1.0737 0.5249 l
+1.0740 0.5250 l
+1.0743 0.5251 l
+1.0746 0.5251 l
+1.0749 0.5252 l
+1.0752 0.5252 l
+1.0755 0.5253 l
+1.0757 0.5254 l
+1.0760 0.5254 l
+1.0763 0.5255 l
+1.0766 0.5255 l
+1.0769 0.5256 l
+1.0772 0.5256 l
+1.0775 0.5256 l
+1.0777 0.5257 l
+1.0780 0.5257 l
+1.0783 0.5257 l
+1.0786 0.5257 l
+1.0789 0.5257 l
+1.0792 0.5258 l
+1.0795 0.5258 l
+1.0798 0.5258 l
+1.0800 0.5258 l
+1.0803 0.5257 l
+1.0806 0.5257 l
+1.0809 0.5257 l
+1.0812 0.5257 l
+1.0815 0.5257 l
+1.0818 0.5256 l
+1.0820 0.5256 l
+1.0823 0.5256 l
+1.0826 0.5255 l
+1.0829 0.5255 l
+1.0832 0.5255 l
+1.0835 0.5254 l
+1.0838 0.5254 l
+1.0840 0.5253 l
+1.0843 0.5253 l
+1.0846 0.5252 l
+1.0849 0.5252 l
+1.0852 0.5251 l
+1.0855 0.5251 l
+1.0858 0.5251 l
+1.0860 0.5250 l
+1.0863 0.5250 l
+1.0866 0.5249 l
+1.0869 0.5249 l
+1.0872 0.5248 l
+1.0875 0.5248 l
+1.0878 0.5247 l
+1.0881 0.5247 l
+1.0883 0.5247 l
+1.0886 0.5246 l
+1.0889 0.5246 l
+1.0892 0.5246 l
+1.0895 0.5246 l
+1.0898 0.5245 l
+1.0901 0.5245 l
+1.0903 0.5245 l
+1.0906 0.5245 l
+1.0909 0.5245 l
+1.0912 0.5245 l
+1.0915 0.5245 l
+1.0918 0.5245 l
+1.0921 0.5245 l
+1.0923 0.5245 l
+1.0926 0.5245 l
+1.0929 0.5245 l
+1.0932 0.5245 l
+1.0935 0.5245 l
+1.0938 0.5246 l
+1.0941 0.5246 l
+1.0943 0.5246 l
+1.0946 0.5246 l
+1.0949 0.5247 l
+1.0952 0.5247 l
+1.0955 0.5247 l
+1.0958 0.5247 l
+1.0961 0.5248 l
+1.0964 0.5248 l
+1.0966 0.5248 l
+1.0969 0.5249 l
+1.0972 0.5249 l
+1.0975 0.5249 l
+1.0978 0.5250 l
+1.0981 0.5250 l
+1.0984 0.5250 l
+1.0986 0.5251 l
+1.0989 0.5251 l
+1.0992 0.5251 l
+1.0995 0.5251 l
+1.0998 0.5252 l
+1.1001 0.5252 l
+1.1004 0.5252 l
+1.1006 0.5252 l
+1.1009 0.5253 l
+1.1012 0.5253 l
+1.1015 0.5253 l
+1.1018 0.5253 l
+1.1021 0.5253 l
+1.1024 0.5253 l
+1.1026 0.5253 l
+1.1029 0.5253 l
+1.1032 0.5253 l
+1.1035 0.5254 l
+1.1038 0.5254 l
+1.1041 0.5253 l
+1.1044 0.5253 l
+1.1047 0.5253 l
+1.1049 0.5253 l
+1.1052 0.5253 l
+1.1055 0.5253 l
+1.1058 0.5253 l
+1.1061 0.5253 l
+1.1064 0.5253 l
+1.1067 0.5252 l
+1.1069 0.5252 l
+1.1072 0.5252 l
+1.1075 0.5252 l
+1.1078 0.5252 l
+1.1081 0.5252 l
+1.1084 0.5251 l
+1.1087 0.5251 l
+1.1089 0.5251 l
+1.1092 0.5251 l
+1.1095 0.5250 l
+1.1098 0.5250 l
+1.1101 0.5250 l
+1.1104 0.5250 l
+1.1107 0.5250 l
+1.1109 0.5249 l
+1.1112 0.5249 l
+1.1115 0.5249 l
+1.1118 0.5249 l
+1.1121 0.5249 l
+1.1124 0.5248 l
+1.1127 0.5248 l
+1.1130 0.5248 l
+1.1132 0.5248 l
+1.1135 0.5248 l
+1.1138 0.5248 l
+1.1141 0.5248 l
+1.1144 0.5248 l
+1.1147 0.5248 l
+1.1150 0.5248 l
+1.1152 0.5248 l
+1.1155 0.5248 l
+1.1158 0.5248 l
+1.1161 0.5248 l
+1.1164 0.5248 l
+1.1167 0.5248 l
+1.1170 0.5248 l
+1.1172 0.5248 l
+1.1175 0.5248 l
+1.1178 0.5248 l
+1.1181 0.5248 l
+1.1184 0.5248 l
+1.1187 0.5248 l
+1.1190 0.5248 l
+1.1192 0.5249 l
+1.1195 0.5249 l
+1.1198 0.5249 l
+1.1201 0.5249 l
+1.1204 0.5249 l
+1.1207 0.5249 l
+1.1210 0.5249 l
+1.1213 0.5250 l
+1.1215 0.5250 l
+1.1218 0.5250 l
+1.1221 0.5250 l
+1.1224 0.5250 l
+1.1227 0.5250 l
+1.1230 0.5250 l
+1.1233 0.5251 l
+1.1235 0.5251 l
+1.1238 0.5251 l
+1.1241 0.5251 l
+1.1244 0.5251 l
+1.1247 0.5251 l
+1.1250 0.5251 l
+1.1253 0.5251 l
+1.1255 0.5251 l
+1.1258 0.5251 l
+1.1261 0.5251 l
+1.1264 0.5251 l
+1.1267 0.5252 l
+1.1270 0.5252 l
+1.1273 0.5252 l
+1.1276 0.5252 l
+1.1278 0.5252 l
+1.1281 0.5252 l
+1.1284 0.5252 l
+1.1287 0.5251 l
+1.1290 0.5251 l
+1.1293 0.5251 l
+1.1296 0.5251 l
+1.1298 0.5251 l
+1.1301 0.5251 l
+1.1304 0.5251 l
+1.1307 0.5251 l
+1.1310 0.5251 l
+1.1313 0.5251 l
+1.1316 0.5251 l
+1.1318 0.5251 l
+1.1321 0.5251 l
+1.1324 0.5251 l
+1.1327 0.5250 l
+1.1330 0.5250 l
+1.1333 0.5250 l
+1.1336 0.5250 l
+1.1338 0.5250 l
+1.1341 0.5250 l
+1.1344 0.5250 l
+1.1347 0.5250 l
+1.1350 0.5250 l
+1.1353 0.5250 l
+1.1356 0.5250 l
+1.1359 0.5249 l
+1.1361 0.5249 l
+1.1364 0.5249 l
+1.1367 0.5249 l
+1.1370 0.5249 l
+1.1373 0.5249 l
+1.1376 0.5249 l
+1.1379 0.5249 l
+1.1381 0.5249 l
+1.1384 0.5249 l
+1.1387 0.5249 l
+1.1390 0.5249 l
+1.1393 0.5249 l
+1.1396 0.5249 l
+1.1399 0.5249 l
+1.1401 0.5249 l
+1.1404 0.5249 l
+1.1407 0.5249 l
+1.1410 0.5249 l
+1.1413 0.5249 l
+1.1416 0.5249 l
+1.1419 0.5249 l
+1.1421 0.5249 l
+1.1424 0.5249 l
+1.1427 0.5249 l
+1.1430 0.5249 l
+1.1433 0.5249 l
+1.1436 0.5249 l
+1.1439 0.5250 l
+1.1442 0.5250 l
+1.1444 0.5250 l
+1.1447 0.5250 l
+1.1450 0.5250 l
+1.1453 0.5250 l
+1.1456 0.5250 l
+1.1459 0.5250 l
+1.1462 0.5250 l
+1.1464 0.5250 l
+1.1467 0.5250 l
+1.1470 0.5250 l
+1.1473 0.5250 l
+1.1476 0.5250 l
+1.1479 0.5250 l
+1.1482 0.5250 l
+1.1484 0.5250 l
+1.1487 0.5250 l
+1.1490 0.5251 l
+1.1493 0.5251 l
+1.1496 0.5251 l
+1.1499 0.5251 l
+1.1502 0.5251 l
+1.1504 0.5251 l
+1.1507 0.5251 l
+1.1510 0.5251 l
+1.1513 0.5251 l
+1.1516 0.5251 l
+1.1519 0.5251 l
+1.1522 0.5251 l
+1.1525 0.5251 l
+1.1527 0.5251 l
+1.1530 0.5251 l
+1.1533 0.5251 l
+1.1536 0.5251 l
+1.1539 0.5251 l
+1.1542 0.5251 l
+1.1545 0.5250 l
+1.1547 0.5250 l
+1.1550 0.5250 l
+1.1553 0.5250 l
+1.1556 0.5250 l
+1.1559 0.5250 l
+1.1562 0.5250 l
+1.1565 0.5250 l
+1.1567 0.5250 l
+1.1570 0.5250 l
+1.1573 0.5250 l
+1.1576 0.5250 l
+1.1579 0.5250 l
+1.1582 0.5250 l
+1.1585 0.5250 l
+1.1587 0.5250 l
+1.1590 0.5250 l
+1.1593 0.5250 l
+1.1596 0.5250 l
+1.1599 0.5250 l
+1.1602 0.5250 l
+1.1605 0.5250 l
+1.1608 0.5250 l
+1.1610 0.5250 l
+1.1613 0.5250 l
+1.1616 0.5250 l
+1.1619 0.5250 l
+1.1622 0.5250 l
+1.1625 0.5250 l
+1.1628 0.5250 l
+1.1630 0.5250 l
+1.1633 0.5250 l
+1.1636 0.5250 l
+1.1639 0.5250 l
+1.1642 0.5250 l
+1.1645 0.5250 l
+1.1648 0.5250 l
+1.1650 0.5250 l
+1.1653 0.5250 l
+1.1656 0.5250 l
+1.1659 0.5250 l
+1.1662 0.5250 l
+1.1665 0.5250 l
+1.1668 0.5250 l
+1.1670 0.5250 l
+1.1673 0.5250 l
+1.1676 0.5250 l
+1.1679 0.5250 l
+1.1682 0.5250 l
+1.1685 0.5250 l
+1.1688 0.5250 l
+1.1691 0.5250 l
+1.1693 0.5250 l
+1.1696 0.5250 l
+1.1699 0.5250 l
+1.1702 0.5250 l
+1.1705 0.5250 l
+1.1708 0.5250 l
+1.1711 0.5250 l
+1.1713 0.5250 l
+1.1716 0.5250 l
+1.1719 0.5250 l
+1.1722 0.5250 l
+1.1725 0.5250 l
+1.1728 0.5250 l
+1.1731 0.5250 l
+1.1733 0.5250 l
+1.1736 0.5250 l
+1.1739 0.5250 l
+1.1742 0.5250 l
+1.1745 0.5250 l
+1.1748 0.5250 l
+1.1751 0.5250 l
+1.1754 0.5250 l
+1.1756 0.5250 l
+1.1759 0.5250 l
+1.1762 0.5250 l
+1.1765 0.5250 l
+1.1768 0.5250 l
+1.1771 0.5250 l
+1.1774 0.5250 l
+1.1776 0.5250 l
+1.1779 0.5250 l
+1.1782 0.5250 l
+1.1785 0.5250 l
+1.1788 0.5250 l
+1.1791 0.5250 l
+1.1794 0.5250 l
+1.1796 0.5250 l
+1.1799 0.5250 l
+1.1802 0.5250 l
+1.1805 0.5250 l
+1.1808 0.5250 l
+1.1811 0.5250 l
+1.1814 0.5250 l
+1.1816 0.5250 l
+1.1819 0.5250 l
+1.1822 0.5250 l
+1.1825 0.5250 l
+1.1828 0.5250 l
+1.1831 0.5250 l
+1.1834 0.5250 l
+1.1837 0.5250 l
+1.1839 0.5250 l
+1.1842 0.5250 l
+1.1845 0.5250 l
+1.1848 0.5250 l
+1.1851 0.5250 l
+1.1854 0.5250 l
+1.1857 0.5250 l
+1.1859 0.5250 l
+1.1862 0.5250 l
+1.1865 0.5250 l
+1.1868 0.5250 l
+1.1871 0.5250 l
+1.1874 0.5250 l
+1.1877 0.5250 l
+1.1879 0.5250 l
+1.1882 0.5250 l
+1.1885 0.5250 l
+1.1888 0.5250 l
+1.1891 0.5250 l
+1.1894 0.5250 l
+1.1897 0.5250 l
+1.1899 0.5250 l
+1.1902 0.5250 l
+1.1905 0.5250 l
+1.1908 0.5250 l
+1.1911 0.5250 l
+1.1914 0.5250 l
+1.1917 0.5250 l
+1.1920 0.5250 l
+1.1922 0.5250 l
+1.1925 0.5250 l
+1.1928 0.5250 l
+1.1931 0.5250 l
+1.1934 0.5250 l
+1.1937 0.5250 l
+1.1940 0.5250 l
+1.1942 0.5250 l
+1.1945 0.5250 l
+1.1948 0.5250 l
+1.1951 0.5250 l
+1.1954 0.5250 l
+1.1957 0.5250 l
+1.1960 0.5250 l
+1.1962 0.5250 l
+1.1965 0.5250 l
+1.1968 0.5250 l
+1.1971 0.5250 l
+1.1974 0.5250 l
+1.1977 0.5250 l
+1.1980 0.5250 l
+1.1982 0.5250 l
+1.1985 0.5250 l
+1.1988 0.5250 l
+1.1991 0.5250 l
+1.1994 0.5250 l
+1.1997 0.5250 l
+1.2000 0.5250 l
+1.2003 0.5250 l
+1.2005 0.5250 l
+1.2008 0.5250 l
+1.2011 0.5250 l
+1.2014 0.5250 l
+1.2017 0.5250 l
+1.2020 0.5250 l
+1.2023 0.5250 l
+1.2025 0.5250 l
+1.2028 0.5250 l
+1.2031 0.5250 l
+1.2034 0.5250 l
+1.2037 0.5250 l
+1.2040 0.5250 l
+1.2043 0.5250 l
+1.2045 0.5250 l
+1.2048 0.5250 l
+1.2051 0.5250 l
+1.2054 0.5250 l
+1.2057 0.5250 l
+1.2060 0.5250 l
+1.2063 0.5250 l
+1.2065 0.5250 l
+1.2068 0.5250 l
+1.2071 0.5250 l
+1.2074 0.5250 l
+1.2077 0.5250 l
+1.2080 0.5250 l
+1.2083 0.5250 l
+1.2086 0.5250 l
+1.2088 0.5250 l
+1.2091 0.5250 l
+1.2094 0.5250 l
+1.2097 0.5250 l
+1.2100 0.5250 l
+1.2103 0.5250 l
+1.2106 0.5250 l
+1.2108 0.5250 l
+1.2111 0.5250 l
+1.2114 0.5250 l
+1.2117 0.5250 l
+1.2120 0.5250 l
+1.2123 0.5250 l
+1.2126 0.5250 l
+1.2128 0.5250 l
+1.2131 0.5250 l
+1.2134 0.5250 l
+1.2137 0.5250 l
+1.2140 0.5250 l
+1.2143 0.5250 l
+1.2146 0.5250 l
+1.2148 0.5250 l
+1.2151 0.5250 l
+1.2154 0.5250 l
+1.2157 0.5250 l
+1.2160 0.5250 l
+1.2163 0.5250 l
+1.2166 0.5250 l
+1.2169 0.5250 l
+1.2171 0.5250 l
+1.2174 0.5250 l
+1.2177 0.5250 l
+1.2180 0.5250 l
+1.2183 0.5250 l
+1.2186 0.5250 l
+1.2189 0.5250 l
+1.2191 0.5250 l
+1.2194 0.5250 l
+1.2197 0.5250 l
+1.2200 0.5250 l
+1.2203 0.5250 l
+1.2206 0.5250 l
+1.2209 0.5250 l
+1.2211 0.5250 l
+1.2214 0.5250 l
+1.2217 0.5250 l
+1.2220 0.5250 l
+1.2223 0.5250 l
+1.2226 0.5250 l
+1.2229 0.5250 l
+1.2231 0.5250 l
+1.2234 0.5250 l
+1.2237 0.5250 l
+1.2240 0.5250 l
+1.2243 0.5250 l
+1.2246 0.5250 l
+1.2249 0.5250 l
+1.2252 0.5250 l
+1.2254 0.5250 l
+1.2257 0.5250 l
+1.2260 0.5250 l
+1.2263 0.5250 l
+1.2266 0.5250 l
+1.2269 0.5250 l
+1.2272 0.5250 l
+1.2274 0.5250 l
+1.2277 0.5250 l
+1.2280 0.5250 l
+1.2283 0.5250 l
+1.2286 0.5250 l
+1.2289 0.5250 l
+1.2292 0.5250 l
+1.2294 0.5250 l
+1.2297 0.5250 l
+1.2300 0.5250 l
+1.2303 0.5250 l
+1.2306 0.5250 l
+1.2309 0.5250 l
+1.2312 0.5250 l
+1.2315 0.5250 l
+1.2317 0.5250 l
+1.2320 0.5250 l
+1.2323 0.5250 l
+1.2326 0.5250 l
+1.2329 0.5250 l
+1.2332 0.5250 l
+1.2335 0.5250 l
+1.2337 0.5250 l
+1.2340 0.5250 l
+1.2343 0.5250 l
+1.2346 0.5250 l
+1.2349 0.5250 l
+1.2352 0.5250 l
+1.2355 0.5250 l
+1.2357 0.5250 l
+1.2360 0.5250 l
+1.2363 0.5250 l
+1.2366 0.5250 l
+1.2369 0.5250 l
+1.2372 0.5250 l
+1.2375 0.5250 l
+1.2377 0.5250 l
+1.2380 0.5250 l
+1.2383 0.5250 l
+1.2386 0.5250 l
+1.2389 0.5250 l
+1.2392 0.5250 l
+1.2395 0.5250 l
+1.2398 0.5250 l
+1.2400 0.5250 l
+1.2403 0.5250 l
+1.2406 0.5250 l
+1.2409 0.5250 l
+1.2412 0.5250 l
+1.2415 0.5250 l
+1.2418 0.5250 l
+1.2420 0.5250 l
+1.2423 0.5250 l
+1.2426 0.5250 l
+1.2429 0.5250 l
+1.2432 0.5250 l
+1.2435 0.5250 l
+1.2438 0.5250 l
+1.2440 0.5250 l
+1.2443 0.5250 l
+1.2446 0.5250 l
+1.2449 0.5250 l
+s
+n
+0.1000 0.1000 m
+1.2449 0.1000 l
+s
+n
+0.1000 0.9500 m
+1.2449 0.9500 l
+s
+n
+0.2431 0.1000 m
+0.2431 0.1100 l
+s
+n
+0.2431 0.9500 m
+0.2431 0.9400 l
+s
+n
+0.5293 0.1000 m
+0.5293 0.1100 l
+s
+n
+0.5293 0.9500 m
+0.5293 0.9400 l
+s
+n
+0.8156 0.1000 m
+0.8156 0.1100 l
+s
+n
+0.8156 0.9500 m
+0.8156 0.9400 l
+s
+n
+1.1018 0.1000 m
+1.1018 0.1100 l
+s
+n
+1.1018 0.9500 m
+1.1018 0.9400 l
+s
+n
+0.1000 0.1000 m
+0.1000 0.1200 l
+s
+n
+0.1000 0.9500 m
+0.1000 0.9300 l
+s
+n
+0.3862 0.1000 m
+0.3862 0.1200 l
+s
+n
+0.3862 0.9500 m
+0.3862 0.9300 l
+s
+n
+0.6725 0.1000 m
+0.6725 0.1200 l
+s
+n
+0.6725 0.9500 m
+0.6725 0.9300 l
+s
+n
+0.9587 0.1000 m
+0.9587 0.1200 l
+s
+n
+0.9587 0.9500 m
+0.9587 0.9300 l
+s
+n
+1.2449 0.1000 m
+1.2449 0.1200 l
+s
+n
+1.2449 0.9500 m
+1.2449 0.9300 l
+s
+/Helvetica findfont
+dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding DefEncoding def
+ currentdict
+end
+/Font4 exch definefont pop
+/Font4 FFSF
+0.0912 0.0653 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(0) show
+GR
+/Font4 FFSF
+0.3627 0.0653 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(0.5) show
+GR
+/Font4 FFSF
+0.6664 0.0653 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(1) show
+GR
+/Font4 FFSF
+0.9351 0.0653 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(1.5) show
+GR
+/Font4 FFSF
+1.2359 0.0653 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(2) show
+GR
+/Font4 FFSF
+0.5854 0.0239 m
+GS
+[0.0420 0.0000 0.0000 0.0420 0 0] CC
+(Time \(ps\)) show
+GR
+n
+0.1000 0.1000 m
+0.1000 0.9500 l
+s
+n
+1.2449 0.1000 m
+1.2449 0.9500 l
+s
+n
+0.1000 0.2063 m
+0.1100 0.2063 l
+s
+n
+1.2449 0.2063 m
+1.2349 0.2063 l
+s
+n
+0.1000 0.4188 m
+0.1100 0.4188 l
+s
+n
+1.2449 0.4188 m
+1.2349 0.4188 l
+s
+n
+0.1000 0.6312 m
+0.1100 0.6312 l
+s
+n
+1.2449 0.6312 m
+1.2349 0.6312 l
+s
+n
+0.1000 0.8438 m
+0.1100 0.8438 l
+s
+n
+1.2449 0.8438 m
+1.2349 0.8438 l
+s
+n
+0.1000 0.1000 m
+0.1200 0.1000 l
+s
+n
+1.2449 0.1000 m
+1.2249 0.1000 l
+s
+n
+0.1000 0.3125 m
+0.1200 0.3125 l
+s
+n
+1.2449 0.3125 m
+1.2249 0.3125 l
+s
+n
+0.1000 0.5250 m
+0.1200 0.5250 l
+s
+n
+1.2449 0.5250 m
+1.2249 0.5250 l
+s
+n
+0.1000 0.7375 m
+0.1200 0.7375 l
+s
+n
+1.2449 0.7375 m
+1.2249 0.7375 l
+s
+n
+0.1000 0.9500 m
+0.1200 0.9500 l
+s
+n
+1.2449 0.9500 m
+1.2249 0.9500 l
+s
+/Font4 FFSF
+0.0602 0.0878 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(-2) show
+GR
+/Font4 FFSF
+0.0661 0.3001 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(-1) show
+GR
+/Font4 FFSF
+0.0724 0.5130 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(0) show
+GR
+/Font4 FFSF
+0.0778 0.7251 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(1) show
+GR
+/Font4 FFSF
+0.0720 0.9378 m
+GS
+[0.0350 0.0000 0.0000 0.0350 0 0] CC
+(2) show
+GR
+/Font4 FFSF
+0.0412 0.3446 m
+GS
+[0.0000 0.0420 -0.0420 0.0000 0 0] CC
+(Electric field \(V/nm\)) show
+GR
+n
+0.1000 0.1000 m
+0.1000 0.9500 l
+1.2449 0.9500 l
+1.2449 0.1000 l
+0.1000 0.1000 l
+c
+s
+%%Trailer
+%%DocumentNeededResources: font Helvetica
+%%EOF
diff --git a/docs/manual/plots/field.xvg b/docs/manual/plots/field.xvg
new file mode 100644 (file)
index 0000000..0e333d3
--- /dev/null
@@ -0,0 +1,4299 @@
+# Grace project file
+#
+@version 50125
+@page size 792, 612
+@page scroll 5%
+@page inout 5%
+@link page off
+@map font 0 to "Times-Roman", "Times-Roman"
+@map font 1 to "Times-Italic", "Times-Italic"
+@map font 2 to "Times-Bold", "Times-Bold"
+@map font 3 to "Times-BoldItalic", "Times-BoldItalic"
+@map font 4 to "Helvetica", "Helvetica"
+@map font 5 to "Helvetica-Oblique", "Helvetica-Oblique"
+@map font 6 to "Helvetica-Bold", "Helvetica-Bold"
+@map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique"
+@map font 8 to "Courier", "Courier"
+@map font 9 to "Courier-Oblique", "Courier-Oblique"
+@map font 10 to "Courier-Bold", "Courier-Bold"
+@map font 11 to "Courier-BoldOblique", "Courier-BoldOblique"
+@map font 12 to "Symbol", "Symbol"
+@map font 13 to "ZapfDingbats", "ZapfDingbats"
+@map color 0 to (255, 255, 255), "white"
+@map color 1 to (0, 0, 0), "black"
+@map color 2 to (255, 0, 0), "red"
+@map color 3 to (0, 255, 0), "green"
+@map color 4 to (0, 0, 255), "blue"
+@map color 5 to (255, 255, 0), "yellow"
+@map color 6 to (188, 143, 143), "brown"
+@map color 7 to (220, 220, 220), "grey"
+@map color 8 to (148, 0, 211), "violet"
+@map color 9 to (0, 255, 255), "cyan"
+@map color 10 to (255, 0, 255), "magenta"
+@map color 11 to (255, 165, 0), "orange"
+@map color 12 to (114, 33, 188), "indigo"
+@map color 13 to (103, 7, 72), "maroon"
+@map color 14 to (64, 224, 208), "turquoise"
+@map color 15 to (0, 139, 0), "green4"
+@reference date 0
+@date wrap off
+@date wrap year 1950
+@default linewidth 1.0
+@default linestyle 1
+@default color 1
+@default pattern 1
+@default font 0
+@default char size 1.000000
+@default symbol size 1.000000
+@default sformat "%.8g"
+@background color 0
+@page background fill on
+@timestamp off
+@timestamp 0.03, 0.03
+@timestamp color 1
+@timestamp rot 0
+@timestamp font 0
+@timestamp char size 1.000000
+@timestamp def "Tue Jul  5 08:29:55 2016"
+@r0 off
+@link r0 to g0
+@r0 type above
+@r0 linestyle 1
+@r0 linewidth 1.0
+@r0 color 1
+@r0 line 0, 0, 0, 0
+@r1 off
+@link r1 to g0
+@r1 type above
+@r1 linestyle 1
+@r1 linewidth 1.0
+@r1 color 1
+@r1 line 0, 0, 0, 0
+@r2 off
+@link r2 to g0
+@r2 type above
+@r2 linestyle 1
+@r2 linewidth 1.0
+@r2 color 1
+@r2 line 0, 0, 0, 0
+@r3 off
+@link r3 to g0
+@r3 type above
+@r3 linestyle 1
+@r3 linewidth 1.0
+@r3 color 1
+@r3 line 0, 0, 0, 0
+@r4 off
+@link r4 to g0
+@r4 type above
+@r4 linestyle 1
+@r4 linewidth 1.0
+@r4 color 1
+@r4 line 0, 0, 0, 0
+@g0 on
+@g0 hidden false
+@g0 type XY
+@g0 stacked false
+@g0 bar hgap 0.000000
+@g0 fixedpoint off
+@g0 fixedpoint type 0
+@g0 fixedpoint xy 0.000000, 0.000000
+@g0 fixedpoint format general general
+@g0 fixedpoint prec 6, 6
+@with g0
+@    world 0, -2, 2, 2
+@    stack world 0, 0, 0, 0
+@    znorm 1
+@    view 0.100000, 0.100000, 1.244903, 0.950000
+@    title ""
+@    title font 0
+@    title size 1.500000
+@    title color 1
+@    subtitle ""
+@    subtitle font 0
+@    subtitle size 1.000000
+@    subtitle color 1
+@    xaxes scale Normal
+@    yaxes scale Normal
+@    xaxes invert off
+@    yaxes invert off
+@    xaxis  on
+@    xaxis  type zero false
+@    xaxis  offset 0.000000 , 0.000000
+@    xaxis  bar on
+@    xaxis  bar color 1
+@    xaxis  bar linestyle 1
+@    xaxis  bar linewidth 1.0
+@    xaxis  label "Time (ps)"
+@    xaxis  label layout para
+@    xaxis  label place auto
+@    xaxis  label char size 1.500000
+@    xaxis  label font 4
+@    xaxis  label color 1
+@    xaxis  label place normal
+@    xaxis  tick on
+@    xaxis  tick major 0.5
+@    xaxis  tick minor ticks 1
+@    xaxis  tick default 6
+@    xaxis  tick place rounded true
+@    xaxis  tick in
+@    xaxis  tick major size 1.000000
+@    xaxis  tick major color 1
+@    xaxis  tick major linewidth 1.0
+@    xaxis  tick major linestyle 1
+@    xaxis  tick major grid off
+@    xaxis  tick minor color 1
+@    xaxis  tick minor linewidth 1.0
+@    xaxis  tick minor linestyle 1
+@    xaxis  tick minor grid off
+@    xaxis  tick minor size 0.500000
+@    xaxis  ticklabel on
+@    xaxis  ticklabel format general
+@    xaxis  ticklabel prec 5
+@    xaxis  ticklabel formula ""
+@    xaxis  ticklabel append ""
+@    xaxis  ticklabel prepend ""
+@    xaxis  ticklabel angle 0
+@    xaxis  ticklabel skip 0
+@    xaxis  ticklabel stagger 0
+@    xaxis  ticklabel place normal
+@    xaxis  ticklabel offset auto
+@    xaxis  ticklabel offset 0.000000 , 0.010000
+@    xaxis  ticklabel start type auto
+@    xaxis  ticklabel start 0.000000
+@    xaxis  ticklabel stop type auto
+@    xaxis  ticklabel stop 0.000000
+@    xaxis  ticklabel char size 1.250000
+@    xaxis  ticklabel font 4
+@    xaxis  ticklabel color 1
+@    xaxis  tick place both
+@    xaxis  tick spec type none
+@    yaxis  on
+@    yaxis  type zero false
+@    yaxis  offset 0.000000 , 0.000000
+@    yaxis  bar on
+@    yaxis  bar color 1
+@    yaxis  bar linestyle 1
+@    yaxis  bar linewidth 1.0
+@    yaxis  label "Electric field (V/nm)"
+@    yaxis  label layout para
+@    yaxis  label place auto
+@    yaxis  label char size 1.500000
+@    yaxis  label font 4
+@    yaxis  label color 1
+@    yaxis  label place normal
+@    yaxis  tick on
+@    yaxis  tick major 1
+@    yaxis  tick minor ticks 1
+@    yaxis  tick default 6
+@    yaxis  tick place rounded true
+@    yaxis  tick in
+@    yaxis  tick major size 1.000000
+@    yaxis  tick major color 1
+@    yaxis  tick major linewidth 1.0
+@    yaxis  tick major linestyle 1
+@    yaxis  tick major grid off
+@    yaxis  tick minor color 1
+@    yaxis  tick minor linewidth 1.0
+@    yaxis  tick minor linestyle 1
+@    yaxis  tick minor grid off
+@    yaxis  tick minor size 0.500000
+@    yaxis  ticklabel on
+@    yaxis  ticklabel format general
+@    yaxis  ticklabel prec 5
+@    yaxis  ticklabel formula ""
+@    yaxis  ticklabel append ""
+@    yaxis  ticklabel prepend ""
+@    yaxis  ticklabel angle 0
+@    yaxis  ticklabel skip 0
+@    yaxis  ticklabel stagger 0
+@    yaxis  ticklabel place normal
+@    yaxis  ticklabel offset auto
+@    yaxis  ticklabel offset 0.000000 , 0.010000
+@    yaxis  ticklabel start type auto
+@    yaxis  ticklabel start 0.000000
+@    yaxis  ticklabel stop type auto
+@    yaxis  ticklabel stop 0.000000
+@    yaxis  ticklabel char size 1.250000
+@    yaxis  ticklabel font 4
+@    yaxis  ticklabel color 1
+@    yaxis  tick place both
+@    yaxis  tick spec type none
+@    altxaxis  off
+@    altyaxis  off
+@    legend on
+@    legend loctype view
+@    legend 0.85, 0.8
+@    legend box color 1
+@    legend box pattern 1
+@    legend box linewidth 1.0
+@    legend box linestyle 1
+@    legend box fill color 0
+@    legend box fill pattern 1
+@    legend font 0
+@    legend char size 1.000000
+@    legend color 1
+@    legend length 4
+@    legend vgap 1
+@    legend hgap 1
+@    legend invert false
+@    frame type 0
+@    frame linestyle 1
+@    frame linewidth 1.0
+@    frame color 1
+@    frame pattern 1
+@    frame background color 0
+@    frame background pattern 0
+@    s0 hidden false
+@    s0 type xy
+@    s0 symbol 0
+@    s0 symbol size 1.000000
+@    s0 symbol color 1
+@    s0 symbol pattern 1
+@    s0 symbol fill color 1
+@    s0 symbol fill pattern 0
+@    s0 symbol linewidth 1.0
+@    s0 symbol linestyle 1
+@    s0 symbol char 65
+@    s0 symbol char font 0
+@    s0 symbol skip 0
+@    s0 line type 1
+@    s0 line linestyle 1
+@    s0 line linewidth 1.0
+@    s0 line color 1
+@    s0 line pattern 1
+@    s0 baseline type 0
+@    s0 baseline off
+@    s0 dropline off
+@    s0 fill type 0
+@    s0 fill rule 0
+@    s0 fill color 1
+@    s0 fill pattern 1
+@    s0 avalue off
+@    s0 avalue type 2
+@    s0 avalue char size 1.000000
+@    s0 avalue font 0
+@    s0 avalue color 1
+@    s0 avalue rot 0
+@    s0 avalue format general
+@    s0 avalue prec 3
+@    s0 avalue prepend ""
+@    s0 avalue append ""
+@    s0 avalue offset 0.000000 , 0.000000
+@    s0 errorbar on
+@    s0 errorbar place both
+@    s0 errorbar color 1
+@    s0 errorbar pattern 1
+@    s0 errorbar size 1.000000
+@    s0 errorbar linewidth 1.0
+@    s0 errorbar linestyle 1
+@    s0 errorbar riser linewidth 1.0
+@    s0 errorbar riser linestyle 1
+@    s0 errorbar riser clip off
+@    s0 errorbar riser clip length 0.100000
+@    s0 comment "field.xvg"
+@    s0 legend  ""
+@target G0.S0
+@type xy
+0 5.21174e-06
+0.0005 4.8582e-06
+0.001 4.46725e-06
+0.0015 4.04017e-06
+0.002 3.57871e-06
+0.0025 3.08465e-06
+0.003 2.56005e-06
+0.0035 2.0072e-06
+0.004 1.42855e-06
+0.0045 8.27051e-07
+0.005 2.0556e-07
+0.0055 -4.3279e-07
+0.006 -1.08468e-06
+0.0065 -1.74674e-06
+0.007 -2.4151e-06
+0.0075 -3.08612e-06
+0.008 -3.75593e-06
+0.0085 -4.42057e-06
+0.009 -5.07613e-06
+0.0095 -5.7183e-06
+0.01 -6.34309e-06
+0.0105 -6.94642e-06
+0.011 -7.52419e-06
+0.0115 -8.07249e-06
+0.012 -8.58716e-06
+0.0125 -9.06443e-06
+0.013 -9.5006e-06
+0.0135 -9.89205e-06
+0.014 -1.02354e-05
+0.0145 -1.05275e-05
+0.015 -1.07651e-05
+0.0155 -1.09458e-05
+0.016 -1.10668e-05
+0.0165 -1.11262e-05
+0.017 -1.11219e-05
+0.0175 -1.10524e-05
+0.018 -1.09166e-05
+0.0185 -1.07135e-05
+0.019 -1.04426e-05
+0.0195 -1.01039e-05
+0.02 -9.69779e-06
+0.0205 -9.22485e-06
+0.021 -8.68609e-06
+0.0215 -8.0833e-06
+0.022 -7.41831e-06
+0.0225 -6.69347e-06
+0.023 -5.91155e-06
+0.0235 -5.07554e-06
+0.024 -4.18956e-06
+0.0245 -3.25681e-06
+0.025 -2.28218e-06
+0.0255 -1.27017e-06
+0.026 -2.25546e-07
+0.0265 8.45705e-07
+0.027 1.93884e-06
+0.0275 3.04734e-06
+0.028 4.1653e-06
+0.0285 5.28662e-06
+0.029 6.40417e-06
+0.0295 7.51217e-06
+0.03 8.60324e-06
+0.0305 9.67081e-06
+0.031 1.07082e-05
+0.0315 1.17081e-05
+0.032 1.26644e-05
+0.0325 1.357e-05
+0.033 1.44184e-05
+0.0335 1.52034e-05
+0.034 1.59185e-05
+0.0345 1.65582e-05
+0.035 1.71168e-05
+0.0355 1.75889e-05
+0.036 1.79698e-05
+0.0365 1.82549e-05
+0.037 1.84404e-05
+0.0375 1.85226e-05
+0.038 1.84986e-05
+0.0385 1.83658e-05
+0.039 1.81227e-05
+0.0395 1.77676e-05
+0.04 1.73001e-05
+0.0405 1.67203e-05
+0.041 1.60287e-05
+0.0415 1.52266e-05
+0.042 1.4316e-05
+0.0425 1.32999e-05
+0.043 1.21814e-05
+0.0435 1.09648e-05
+0.044 9.65433e-06
+0.0445 8.2561e-06
+0.045 6.77585e-06
+0.0455 5.22026e-06
+0.046 3.59662e-06
+0.0465 1.91244e-06
+0.047 1.76813e-07
+0.0475 -1.60169e-06
+0.048 -3.4137e-06
+0.0485 -5.24943e-06
+0.049 -7.09906e-06
+0.0495 -8.95136e-06
+0.05 -1.0796e-05
+0.0505 -1.26218e-05
+0.051 -1.44179e-05
+0.0515 -1.61733e-05
+0.052 -1.7876e-05
+0.0525 -1.95152e-05
+0.053 -2.10797e-05
+0.0535 -2.25588e-05
+0.054 -2.39418e-05
+0.0545 -2.52179e-05
+0.055 -2.63773e-05
+0.0555 -2.74107e-05
+0.056 -2.83084e-05
+0.0565 -2.90627e-05
+0.057 -2.96652e-05
+0.0575 -3.0109e-05
+0.058 -3.03877e-05
+0.0585 -3.04957e-05
+0.059 -3.04283e-05
+0.0595 -3.01817e-05
+0.06 -2.97532e-05
+0.0605 -2.9141e-05
+0.061 -2.83441e-05
+0.0615 -2.73627e-05
+0.062 -2.61986e-05
+0.0625 -2.48541e-05
+0.063 -2.33327e-05
+0.0635 -2.16391e-05
+0.064 -1.97788e-05
+0.0645 -1.77594e-05
+0.065 -1.55887e-05
+0.0655 -1.32758e-05
+0.066 -1.08307e-05
+0.0665 -8.26413e-06
+0.067 -5.58933e-06
+0.0675 -2.8188e-06
+0.068 3.3503e-08
+0.0685 2.95285e-06
+0.069 5.92437e-06
+0.0695 8.93009e-06
+0.07 1.19557e-05
+0.0705 1.49822e-05
+0.071 1.79924e-05
+0.0715 2.09691e-05
+0.072 2.38928e-05
+0.0725 2.67458e-05
+0.073 2.95098e-05
+0.0735 3.21666e-05
+0.074 3.46986e-05
+0.0745 3.70872e-05
+0.075 3.93155e-05
+0.0755 4.13667e-05
+0.076 4.32248e-05
+0.0765 4.48746e-05
+0.077 4.63011e-05
+0.0775 4.74911e-05
+0.078 4.8432e-05
+0.0785 4.91127e-05
+0.079 4.95229e-05
+0.0795 4.96542e-05
+0.08 4.94991e-05
+0.0805 4.90519e-05
+0.081 4.83086e-05
+0.0815 4.72662e-05
+0.082 4.59245e-05
+0.0825 4.4284e-05
+0.083 4.23475e-05
+0.0835 4.01187e-05
+0.084 3.76052e-05
+0.0845 3.48143e-05
+0.085 3.1756e-05
+0.0855 2.8442e-05
+0.086 2.48848e-05
+0.0865 2.11021e-05
+0.087 1.71074e-05
+0.0875 1.29217e-05
+0.088 8.5642e-06
+0.0885 4.05536e-06
+0.089 -5.79145e-07
+0.0895 -5.31895e-06
+0.09 -1.01359e-05
+0.0905 -1.50047e-05
+0.091 -1.98991e-05
+0.0915 -2.47881e-05
+0.092 -2.96471e-05
+0.0925 -3.44439e-05
+0.093 -3.91504e-05
+0.0935 -4.37376e-05
+0.094 -4.81737e-05
+0.0945 -5.24325e-05
+0.095 -5.64828e-05
+0.0955 -6.02969e-05
+0.096 -6.38478e-05
+0.0965 -6.7107e-05
+0.097 -7.00511e-05
+0.0975 -7.26541e-05
+0.098 -7.48937e-05
+0.0985 -7.67485e-05
+0.099 -7.81986e-05
+0.0995 -7.92268e-05
+0.1 -7.98172e-05
+0.1005 -7.99564e-05
+0.101 -7.96334e-05
+0.1015 -7.884e-05
+0.102 -7.75691e-05
+0.1025 -7.58184e-05
+0.103 -7.35867e-05
+0.1035 -7.08762e-05
+0.104 -6.76919e-05
+0.1045 -6.40408e-05
+0.105 -5.99352e-05
+0.1055 -5.53879e-05
+0.106 -5.04157e-05
+0.1065 -4.50365e-05
+0.107 -3.92749e-05
+0.1075 -3.31549e-05
+0.108 -2.67039e-05
+0.1085 -1.9952e-05
+0.109 -1.2932e-05
+0.1095 -5.67709e-06
+0.11 1.77265e-06
+0.1105 9.37968e-06
+0.111 1.71032e-05
+0.1115 2.49024e-05
+0.112 3.27304e-05
+0.1125 4.05437e-05
+0.113 4.82966e-05
+0.1135 5.59424e-05
+0.114 6.34357e-05
+0.1145 7.07264e-05
+0.115 7.77691e-05
+0.1155 8.45172e-05
+0.116 9.09248e-05
+0.1165 9.69478e-05
+0.117 0.000102541
+0.1175 0.000107662
+0.118 0.000112273
+0.1185 0.000116332
+0.119 0.000119806
+0.1195 0.000122661
+0.12 0.000124867
+0.1205 0.000126395
+0.121 0.000127223
+0.1215 0.00012733
+0.122 0.000126699
+0.1225 0.000125318
+0.123 0.000123178
+0.1235 0.000120274
+0.124 0.000116606
+0.1245 0.00011218
+0.125 0.000107004
+0.1255 0.000101092
+0.126 9.44624e-05
+0.1265 8.71353e-05
+0.127 7.91416e-05
+0.1275 7.05119e-05
+0.128 6.12822e-05
+0.1285 5.14929e-05
+0.129 4.11867e-05
+0.1295 3.04165e-05
+0.13 1.92326e-05
+0.1305 7.69112e-06
+0.131 -4.14868e-06
+0.1315 -1.62269e-05
+0.132 -2.8471e-05
+0.1325 -4.08232e-05
+0.133 -5.32067e-05
+0.1335 -6.55524e-05
+0.134 -7.77902e-05
+0.1345 -8.98416e-05
+0.135 -0.000101635
+0.1355 -0.000113095
+0.136 -0.000124152
+0.1365 -0.000134726
+0.137 -0.000144748
+0.1375 -0.00015415
+0.138 -0.000162861
+0.1385 -0.000170816
+0.139 -0.000177954
+0.1395 -0.000184212
+0.14 -0.000189537
+0.1405 -0.000193877
+0.141 -0.000197186
+0.1415 -0.000199421
+0.142 -0.000200548
+0.1425 -0.000200535
+0.143 -0.000199357
+0.1435 -0.000196997
+0.144 -0.000193441
+0.1445 -0.000188686
+0.145 -0.000182733
+0.1455 -0.000175591
+0.146 -0.000167273
+0.1465 -0.000157807
+0.147 -0.000147221
+0.1475 -0.000135553
+0.148 -0.000122847
+0.1485 -0.000109154
+0.149 -9.45312e-05
+0.1495 -7.90457e-05
+0.15 -6.27703e-05
+0.1505 -4.57812e-05
+0.151 -2.816e-05
+0.1515 -9.9992e-06
+0.152 8.61086e-06
+0.1525 2.75697e-05
+0.153 4.67707e-05
+0.1535 6.61152e-05
+0.154 8.54878e-05
+0.1545 0.000104781
+0.155 0.000123874
+0.1555 0.00014266
+0.156 0.000161019
+0.1565 0.000178834
+0.157 0.000195993
+0.1575 0.00021238
+0.158 0.000227882
+0.1585 0.000242394
+0.159 0.000255808
+0.1595 0.000268024
+0.16 0.000278943
+0.1605 0.000288479
+0.161 0.000296543
+0.1615 0.000303058
+0.162 0.000307954
+0.1625 0.000311168
+0.163 0.000312645
+0.1635 0.00031234
+0.164 0.000310218
+0.1645 0.000306253
+0.165 0.000300429
+0.1655 0.00029274
+0.166 0.000283191
+0.1665 0.0002718
+0.167 0.000258592
+0.1675 0.000243609
+0.168 0.000226898
+0.1685 0.000208519
+0.169 0.000188545
+0.1695 0.000167064
+0.17 0.000144158
+0.1705 0.00011994
+0.171 9.45162e-05
+0.1715 6.8015e-05
+0.172 4.0565e-05
+0.1725 1.23028e-05
+0.173 -1.66184e-05
+0.1735 -4.60506e-05
+0.174 -7.58303e-05
+0.1745 -0.000105786
+0.175 -0.000135759
+0.1755 -0.00016557
+0.176 -0.00019504
+0.1765 -0.000223991
+0.177 -0.000252251
+0.1775 -0.000279638
+0.178 -0.00030597
+0.1785 -0.000331079
+0.179 -0.000354791
+0.1795 -0.000376935
+0.18 -0.000397359
+0.1805 -0.000415904
+0.181 -0.000432421
+0.1815 -0.000446777
+0.182 -0.00045884
+0.1825 -0.000468496
+0.183 -0.000475638
+0.1835 -0.000480172
+0.184 -0.000482019
+0.1845 -0.000481113
+0.185 -0.000477401
+0.1855 -0.000470848
+0.186 -0.000461434
+0.1865 -0.000449155
+0.187 -0.000434021
+0.1875 -0.000416065
+0.188 -0.000395332
+0.1885 -0.000371882
+0.189 -0.000345801
+0.1895 -0.000317184
+0.19 -0.000286141
+0.1905 -0.000252807
+0.191 -0.000217334
+0.1915 -0.000179872
+0.192 -0.000140603
+0.1925 -9.97231e-05
+0.193 -5.7428e-05
+0.1935 -1.39473e-05
+0.194 3.05086e-05
+0.1945 7.56883e-05
+0.195 0.000121353
+0.1955 0.000167245
+0.196 0.000213091
+0.1965 0.000258644
+0.197 0.000303625
+0.1975 0.000347756
+0.198 0.000390773
+0.1985 0.0004324
+0.199 0.000472359
+0.1995 0.000510397
+0.2 0.000546255
+0.2005 0.000579676
+0.201 0.000610412
+0.2015 0.000638241
+0.202 0.000662939
+0.2025 0.000684297
+0.203 0.000702128
+0.2035 0.000716255
+0.204 0.000726522
+0.2045 0.000732793
+0.205 0.000734951
+0.2055 0.0007329
+0.206 0.000726571
+0.2065 0.000715911
+0.207 0.000700895
+0.2075 0.000681526
+0.208 0.000657829
+0.2085 0.00062985
+0.209 0.000597673
+0.2095 0.000561393
+0.21 0.000521145
+0.2105 0.000477082
+0.211 0.000429382
+0.2115 0.000378243
+0.212 0.000323899
+0.2125 0.000266607
+0.213 0.000206634
+0.2135 0.000144268
+0.214 7.98362e-05
+0.2145 1.36575e-05
+0.215 -5.39127e-05
+0.2155 -0.000122496
+0.216 -0.000191745
+0.2165 -0.000261247
+0.217 -0.000330622
+0.2175 -0.000399443
+0.218 -0.000467329
+0.2185 -0.000533853
+0.219 -0.000598597
+0.2195 -0.000661164
+0.22 -0.000721143
+0.2205 -0.000778123
+0.221 -0.000831738
+0.2215 -0.000881594
+0.222 -0.000927342
+0.2225 -0.00096862
+0.223 -0.00100512
+0.2235 -0.00103652
+0.224 -0.00106255
+0.2245 -0.00108295
+0.225 -0.00109749
+0.2255 -0.00110598
+0.226 -0.00110824
+0.2265 -0.00110414
+0.227 -0.00109358
+0.2275 -0.0010765
+0.228 -0.00105286
+0.2285 -0.00102268
+0.229 -0.000986009
+0.2295 -0.000942923
+0.23 -0.000893556
+0.2305 -0.000838068
+0.231 -0.000776655
+0.2315 -0.000709563
+0.232 -0.000637087
+0.2325 -0.00055951
+0.233 -0.000477207
+0.2335 -0.000390545
+0.234 -0.000299961
+0.2345 -0.000205893
+0.235 -0.000108808
+0.2355 -9.23019e-06
+0.236 9.23325e-05
+0.2365 0.000195321
+0.237 0.000299144
+0.2375 0.000403262
+0.238 0.000507054
+0.2385 0.000609903
+0.239 0.000711199
+0.2395 0.000810355
+0.24 0.000906734
+0.2405 0.000999717
+0.241 0.00108872
+0.2415 0.00117314
+0.242 0.00125239
+0.2425 0.00132595
+0.243 0.00139325
+0.2435 0.00145379
+0.244 0.0015071
+0.2445 0.00155272
+0.245 0.00159025
+0.2455 0.00161932
+0.246 0.0016396
+0.2465 0.00165079
+0.247 0.00165268
+0.2475 0.00164506
+0.248 0.0016278
+0.2485 0.00160082
+0.249 0.0015641
+0.2495 0.00151765
+0.25 0.00146156
+0.2505 0.00139598
+0.251 0.0013211
+0.2515 0.00123719
+0.252 0.00114455
+0.2525 0.00104356
+0.253 0.000934631
+0.2535 0.000818285
+0.254 0.000695002
+0.2545 0.000565389
+0.255 0.000430088
+0.2555 0.000289763
+0.256 0.000145101
+0.2565 -3.06876e-06
+0.257 -0.000154016
+0.2575 -0.000306921
+0.258 -0.000460919
+0.2585 -0.000615112
+0.259 -0.000768673
+0.2595 -0.000920672
+0.26 -0.00107018
+0.2605 -0.00121633
+0.261 -0.00135819
+0.2615 -0.00149484
+0.262 -0.00162542
+0.2625 -0.00174908
+0.263 -0.00186495
+0.2635 -0.0019722
+0.264 -0.00207009
+0.2645 -0.00215786
+0.265 -0.00223481
+0.2655 -0.00230031
+0.266 -0.00235376
+0.2665 -0.00239462
+0.267 -0.00242243
+0.2675 -0.0024368
+0.268 -0.00243738
+0.2685 -0.00242393
+0.269 -0.00239625
+0.2695 -0.00235424
+0.27 -0.0022979
+0.2705 -0.00222727
+0.271 -0.0021425
+0.2715 -0.00204382
+0.272 -0.00193154
+0.2725 -0.00180607
+0.273 -0.00166791
+0.2735 -0.00151759
+0.274 -0.00135576
+0.2745 -0.00118314
+0.275 -0.00100057
+0.2755 -0.000808891
+0.276 -0.000609027
+0.2765 -0.000402025
+0.277 -0.000188906
+0.2775 2.91893e-05
+0.278 0.000251046
+0.2785 0.00047552
+0.279 0.000701385
+0.2795 0.000927272
+0.28 0.0011519
+0.2805 0.00137402
+0.281 0.00159225
+0.2815 0.00180524
+0.282 0.00201172
+0.2825 0.00221035
+0.283 0.0023998
+0.2835 0.00257887
+0.284 0.00274636
+0.2845 0.00290102
+0.285 0.00304176
+0.2855 0.00316753
+0.286 0.00327733
+0.2865 0.00337022
+0.287 0.00344538
+0.2875 0.00350205
+0.288 0.00353956
+0.2885 0.00355737
+0.289 0.00355501
+0.2895 0.00353213
+0.29 0.00348852
+0.2905 0.00342402
+0.291 0.00333865
+0.2915 0.00323254
+0.292 0.00310591
+0.2925 0.00295915
+0.293 0.00279274
+0.2935 0.00260726
+0.294 0.00240346
+0.2945 0.00218224
+0.295 0.0019445
+0.2955 0.00169129
+0.296 0.0014239
+0.2965 0.00114356
+0.297 0.000851664
+0.2975 0.000549661
+0.298 0.000239175
+0.2985 -7.82175e-05
+0.299 -0.000400775
+0.2995 -0.000726663
+0.3 -0.00105419
+0.3005 -0.00138144
+0.301 -0.00170647
+0.3015 -0.00202738
+0.302 -0.00234234
+0.3025 -0.00264937
+0.303 -0.00294652
+0.3035 -0.00323196
+0.304 -0.00350382
+0.3045 -0.00376024
+0.305 -0.00399958
+0.3055 -0.00422009
+0.306 -0.00442015
+0.3065 -0.00459828
+0.307 -0.00475312
+0.3075 -0.00488328
+0.308 -0.00498762
+0.3085 -0.0050651
+0.309 -0.00511479
+0.3095 -0.00513592
+0.31 -0.00512787
+0.3105 -0.00509018
+0.311 -0.00502256
+0.3115 -0.00492488
+0.312 -0.00479717
+0.3125 -0.00463965
+0.313 -0.00445273
+0.3135 -0.00423693
+0.314 -0.00399306
+0.3145 -0.003722
+0.315 -0.00342483
+0.3155 -0.00310282
+0.316 -0.00275748
+0.3165 -0.00239025
+0.317 -0.00200295
+0.3175 -0.0015975
+0.318 -0.00117589
+0.3185 -0.000740179
+0.319 -0.000292861
+0.3195 0.000163868
+0.32 0.000627539
+0.3205 0.00109555
+0.321 0.00156519
+0.3215 0.00203396
+0.322 0.00249906
+0.3225 0.0029577
+0.323 0.00340721
+0.3235 0.0038448
+0.324 0.00426768
+0.3245 0.00467327
+0.325 0.00505895
+0.3255 0.0054221
+0.326 0.00576021
+0.3265 0.00607101
+0.327 0.0063522
+0.3275 0.00660161
+0.328 0.00681734
+0.3285 0.00699752
+0.329 0.00714054
+0.3295 0.00724495
+0.33 0.00730949
+0.3305 0.00733311
+0.331 0.007315
+0.3315 0.00725454
+0.332 0.00715136
+0.3325 0.00700537
+0.333 0.00681668
+0.3335 0.00658563
+0.334 0.00631287
+0.3345 0.00599924
+0.335 0.00564587
+0.3355 0.00525422
+0.336 0.00482578
+0.3365 0.00436241
+0.337 0.00386622
+0.3375 0.00333958
+0.338 0.00278496
+0.3385 0.00220503
+0.339 0.00160282
+0.3395 0.000981312
+0.34 0.000343815
+0.3405 -0.00030613
+0.341 -0.000965188
+0.3415 -0.00162979
+0.342 -0.00229592
+0.3425 -0.00295985
+0.343 -0.00361791
+0.3435 -0.0042661
+0.344 -0.00490045
+0.3445 -0.0055172
+0.345 -0.00611246
+0.3455 -0.00668234
+0.346 -0.0072233
+0.3465 -0.00773181
+0.347 -0.00820419
+0.3475 -0.0086372
+0.348 -0.00902783
+0.3485 -0.00937304
+0.349 -0.00967006
+0.3495 -0.00991647
+0.35 -0.01011
+0.3505 -0.0102486
+0.351 -0.0103306
+0.3515 -0.0103547
+0.352 -0.0103198
+0.3525 -0.010225
+0.353 -0.01007
+0.3535 -0.00985468
+0.354 -0.00957927
+0.3545 -0.00924437
+0.355 -0.008851
+0.3555 -0.00840043
+0.356 -0.00789427
+0.3565 -0.00733459
+0.357 -0.00672387
+0.3575 -0.00606459
+0.358 -0.00535969
+0.3585 -0.00461278
+0.359 -0.00382731
+0.3595 -0.00300721
+0.36 -0.00215651
+0.3605 -0.00127982
+0.361 -0.000381554
+0.3615 0.000533364
+0.362 0.00145975
+0.3625 0.00239285
+0.363 0.00332721
+0.3635 0.00425738
+0.364 0.00517796
+0.3645 0.00608377
+0.365 0.00696918
+0.3655 0.00782868
+0.366 0.00865711
+0.3665 0.00944909
+0.367 0.0101994
+0.3675 0.0109033
+0.368 0.0115558
+0.3685 0.0121524
+0.369 0.0126887
+0.3695 0.013161
+0.37 0.0135651
+0.3705 0.0138979
+0.371 0.0141563
+0.3715 0.0143375
+0.372 0.0144394
+0.3725 0.0144601
+0.373 0.0143982
+0.3735 0.0142527
+0.374 0.0140233
+0.3745 0.0137097
+0.375 0.0133127
+0.3755 0.012833
+0.376 0.0122722
+0.3765 0.0116322
+0.377 0.0109155
+0.3775 0.0101249
+0.378 0.00926381
+0.3785 0.00833631
+0.379 0.00734629
+0.3795 0.00629867
+0.38 0.00519866
+0.3805 0.00405167
+0.381 0.00286331
+0.3815 0.00164037
+0.382 0.000388846
+0.3825 -0.000884521
+0.383 -0.00217263
+0.3835 -0.00346804
+0.384 -0.00476396
+0.3845 -0.00605269
+0.385 -0.00732657
+0.3855 -0.00857832
+0.386 -0.00980029
+0.3865 -0.0109847
+0.387 -0.0121247
+0.3875 -0.0132128
+0.388 -0.0142421
+0.3885 -0.0152053
+0.389 -0.0160965
+0.3895 -0.0169092
+0.39 -0.0176373
+0.3905 -0.0182757
+0.391 -0.018819
+0.3915 -0.0192629
+0.392 -0.0196032
+0.3925 -0.0198365
+0.393 -0.0199596
+0.3935 -0.0199703
+0.394 -0.0198667
+0.3945 -0.0196477
+0.395 -0.0193128
+0.3955 -0.0188622
+0.396 -0.0182966
+0.3965 -0.0176176
+0.397 -0.0168273
+0.3975 -0.0159286
+0.398 -0.0149253
+0.3985 -0.0138211
+0.399 -0.0126209
+0.3995 -0.0113302
+0.4 -0.0099553
+0.4005 -0.00850257
+0.401 -0.00697904
+0.4015 -0.00539271
+0.402 -0.00375142
+0.4025 -0.00206392
+0.403 -0.000339552
+0.4035 0.00141286
+0.404 0.00318388
+0.4045 0.00496288
+0.405 0.00673997
+0.4055 0.00850546
+0.406 0.0102487
+0.4065 0.0119591
+0.407 0.0136268
+0.4075 0.0152414
+0.408 0.0167925
+0.4085 0.0182707
+0.409 0.0196666
+0.4095 0.0209704
+0.41 0.0221735
+0.4105 0.0232677
+0.411 0.0242449
+0.4115 0.0250978
+0.412 0.0258196
+0.4125 0.0264044
+0.413 0.0268466
+0.4135 0.0271417
+0.414 0.0272858
+0.4145 0.0272758
+0.415 0.0271096
+0.4155 0.0267857
+0.416 0.0263037
+0.4165 0.0256642
+0.417 0.0248683
+0.4175 0.0239184
+0.418 0.0228178
+0.4185 0.0215703
+0.419 0.0201811
+0.4195 0.0186564
+0.42 0.0170024
+0.4205 0.0152267
+0.421 0.0133383
+0.4215 0.011346
+0.422 0.00925979
+0.4225 0.00709001
+0.423 0.00484833
+0.4235 0.00254611
+0.424 0.000195897
+0.4245 -0.00218904
+0.425 -0.0045965
+0.4255 -0.00701253
+0.426 -0.00942313
+0.4265 -0.0118144
+0.427 -0.0141732
+0.4275 -0.0164848
+0.428 -0.0187353
+0.4285 -0.0209112
+0.429 -0.0229988
+0.4295 -0.0249845
+0.43 -0.0268561
+0.4305 -0.028601
+0.431 -0.0302072
+0.4315 -0.0316634
+0.432 -0.0329599
+0.4325 -0.034086
+0.433 -0.0350334
+0.4335 -0.0357939
+0.434 -0.0363606
+0.4345 -0.0367274
+0.435 -0.0368894
+0.4355 -0.0368427
+0.436 -0.0365846
+0.4365 -0.0361138
+0.437 -0.0354296
+0.4375 -0.0345333
+0.438 -0.0334268
+0.4385 -0.0321134
+0.439 -0.0305979
+0.4395 -0.0288861
+0.44 -0.0269848
+0.4405 -0.0249024
+0.441 -0.0226488
+0.4415 -0.0202334
+0.442 -0.0176684
+0.4425 -0.0149667
+0.443 -0.0121414
+0.4435 -0.00920658
+0.444 -0.00617889
+0.4445 -0.00307319
+0.445 9.38279e-05
+0.4455 0.00330456
+0.446 0.00654057
+0.4465 0.00978498
+0.447 0.0130187
+0.4475 0.0162226
+0.448 0.0193787
+0.4485 0.0224679
+0.449 0.025471
+0.4495 0.0283705
+0.45 0.0311483
+0.4505 0.0337865
+0.451 0.0362676
+0.4515 0.0385763
+0.452 0.0406963
+0.4525 0.0426129
+0.453 0.0443125
+0.4535 0.0457821
+0.454 0.0470104
+0.4545 0.0479869
+0.455 0.0487028
+0.4555 0.0491501
+0.456 0.0493228
+0.4565 0.049216
+0.457 0.0488265
+0.4575 0.0481527
+0.458 0.0471947
+0.4585 0.0459539
+0.459 0.0444338
+0.4595 0.0426389
+0.46 0.040576
+0.4605 0.0382538
+0.461 0.0356813
+0.4615 0.0328698
+0.462 0.0298324
+0.4625 0.0265838
+0.463 0.0231394
+0.4635 0.0195159
+0.464 0.0157324
+0.4645 0.0118076
+0.465 0.00776245
+0.4655 0.00361934
+0.466 -0.000600586
+0.4665 -0.00487467
+0.467 -0.00917742
+0.4675 -0.0134851
+0.468 -0.0177743
+0.4685 -0.0220194
+0.469 -0.0261952
+0.4695 -0.0302776
+0.47 -0.0342415
+0.4705 -0.0380621
+0.471 -0.0417166
+0.4715 -0.0451823
+0.472 -0.0484354
+0.4725 -0.0514549
+0.473 -0.0542213
+0.4735 -0.0567147
+0.474 -0.0589172
+0.4745 -0.0608126
+0.475 -0.0623858
+0.4755 -0.0636236
+0.476 -0.0645146
+0.4765 -0.065049
+0.477 -0.065219
+0.4775 -0.0650191
+0.478 -0.0644453
+0.4785 -0.0634961
+0.479 -0.0621721
+0.4795 -0.0604757
+0.48 -0.058412
+0.4805 -0.055988
+0.481 -0.0532125
+0.4815 -0.0500969
+0.482 -0.0466555
+0.4825 -0.0429026
+0.483 -0.0388552
+0.4835 -0.0345342
+0.484 -0.0299599
+0.4845 -0.0251554
+0.485 -0.0201444
+0.4855 -0.014954
+0.486 -0.00961063
+0.4865 -0.00414326
+0.487 0.00141726
+0.4875 0.00704261
+0.488 0.0127003
+0.4885 0.0183578
+0.489 0.0239829
+0.4895 0.0295446
+0.49 0.0350091
+0.4905 0.0403434
+0.491 0.0455165
+0.4915 0.0504961
+0.492 0.0552504
+0.4925 0.0597511
+0.493 0.0639685
+0.4935 0.0678742
+0.494 0.0714423
+0.4945 0.0746493
+0.495 0.0774705
+0.4955 0.0798857
+0.496 0.081876
+0.4965 0.0834246
+0.497 0.0845167
+0.4975 0.0851407
+0.498 0.0852869
+0.4985 0.0849485
+0.499 0.0841214
+0.4995 0.082804
+0.5 0.0809979
+0.5005 0.0787068
+0.501 0.0759384
+0.5015 0.0727022
+0.502 0.0690109
+0.5025 0.0648793
+0.503 0.060326
+0.5035 0.0553728
+0.504 0.0500409
+0.5045 0.0443576
+0.505 0.03835
+0.5055 0.0320489
+0.506 0.0254881
+0.5065 0.018699
+0.507 0.011719
+0.5075 0.00458631
+0.508 -0.00266161
+0.5085 -0.00998256
+0.509 -0.0173386
+0.5095 -0.0246866
+0.51 -0.0319838
+0.5105 -0.0391894
+0.511 -0.0462588
+0.5115 -0.0531529
+0.512 -0.0598287
+0.5125 -0.0662447
+0.513 -0.0723624
+0.5135 -0.0781414
+0.514 -0.0835468
+0.5145 -0.088542
+0.515 -0.0930931
+0.5155 -0.0971695
+0.516 -0.100741
+0.5165 -0.103783
+0.517 -0.106269
+0.5175 -0.108181
+0.518 -0.109499
+0.5185 -0.110208
+0.519 -0.110299
+0.5195 -0.109762
+0.52 -0.108593
+0.5205 -0.106791
+0.521 -0.104358
+0.5215 -0.101302
+0.522 -0.0976316
+0.5225 -0.093361
+0.523 -0.0885072
+0.5235 -0.0830903
+0.524 -0.0771355
+0.5245 -0.0706694
+0.525 -0.0637239
+0.5255 -0.0563325
+0.526 -0.0485311
+0.5265 -0.040361
+0.527 -0.0318629
+0.5275 -0.0230839
+0.528 -0.0140672
+0.5285 -0.00486342
+0.529 0.00447629
+0.5295 0.0139021
+0.53 0.0233583
+0.5305 0.0327951
+0.531 0.0421565
+0.5315 0.0513873
+0.532 0.060435
+0.5325 0.0692449
+0.533 0.0777623
+0.5335 0.0859384
+0.534 0.0937202
+0.5345 0.10106
+0.535 0.10791
+0.5355 0.114225
+0.536 0.119964
+0.5365 0.125086
+0.537 0.129556
+0.5375 0.133339
+0.538 0.136408
+0.5385 0.138735
+0.539 0.140299
+0.5395 0.141083
+0.54 0.141072
+0.5405 0.140258
+0.541 0.138635
+0.5415 0.136205
+0.542 0.132971
+0.5425 0.128943
+0.543 0.124134
+0.5435 0.118563
+0.544 0.112252
+0.5445 0.105232
+0.545 0.0975308
+0.5455 0.0891869
+0.546 0.080239
+0.5465 0.0707321
+0.547 0.0607162
+0.5475 0.0502385
+0.548 0.0393566
+0.5485 0.028126
+0.549 0.0166077
+0.5495 0.00486666
+0.55 -0.00703746
+0.5505 -0.019035
+0.551 -0.031061
+0.5515 -0.0430459
+0.552 -0.0549185
+0.5525 -0.0666147
+0.553 -0.0780621
+0.5535 -0.0891951
+0.554 -0.0999452
+0.5545 -0.110245
+0.555 -0.120035
+0.5555 -0.12925
+0.556 -0.137834
+0.5565 -0.145729
+0.557 -0.152881
+0.5575 -0.159244
+0.558 -0.164772
+0.5585 -0.169423
+0.559 -0.173161
+0.5595 -0.175956
+0.56 -0.177781
+0.5605 -0.178614
+0.561 -0.17844
+0.5615 -0.177249
+0.562 -0.175036
+0.5625 -0.171803
+0.563 -0.167556
+0.5635 -0.162311
+0.564 -0.156084
+0.5645 -0.148901
+0.565 -0.140792
+0.5655 -0.131792
+0.566 -0.121947
+0.5665 -0.111299
+0.567 -0.0999022
+0.5675 -0.0878121
+0.568 -0.075091
+0.5685 -0.0618074
+0.569 -0.0480254
+0.5695 -0.0338208
+0.57 -0.0192717
+0.5705 -0.00445414
+0.571 0.0105456
+0.5715 0.0256502
+0.572 0.0407716
+0.5725 0.0558222
+0.573 0.0707186
+0.5735 0.0853704
+0.574 0.0996952
+0.5745 0.113607
+0.575 0.12702
+0.5755 0.139855
+0.576 0.152031
+0.5765 0.163472
+0.577 0.174107
+0.5775 0.183863
+0.578 0.192678
+0.5785 0.20049
+0.579 0.207245
+0.5795 0.212894
+0.58 0.217391
+0.5805 0.2207
+0.581 0.222789
+0.5815 0.223633
+0.582 0.223215
+0.5825 0.221523
+0.583 0.218554
+0.5835 0.214311
+0.584 0.208806
+0.5845 0.202055
+0.585 0.194086
+0.5855 0.18493
+0.586 0.174627
+0.5865 0.163225
+0.587 0.150776
+0.5875 0.137342
+0.588 0.122986
+0.5885 0.107783
+0.589 0.0918109
+0.5895 0.0751504
+0.59 0.0578935
+0.5905 0.0401271
+0.591 0.0219507
+0.5915 0.00346363
+0.592 -0.0152348
+0.5925 -0.0340354
+0.593 -0.052838
+0.5935 -0.0715316
+0.594 -0.0900087
+0.5945 -0.108164
+0.595 -0.12589
+0.5955 -0.143078
+0.596 -0.159631
+0.5965 -0.175443
+0.597 -0.190419
+0.5975 -0.204465
+0.598 -0.21749
+0.5985 -0.229412
+0.599 -0.24015
+0.5995 -0.249631
+0.6 -0.257791
+0.6005 -0.264566
+0.601 -0.269907
+0.6015 -0.273767
+0.602 -0.276112
+0.6025 -0.27691
+0.603 -0.276144
+0.6035 -0.2738
+0.604 -0.269879
+0.6045 -0.264384
+0.605 -0.257333
+0.6055 -0.248751
+0.606 -0.23867
+0.6065 -0.227132
+0.607 -0.214193
+0.6075 -0.199906
+0.608 -0.184346
+0.6085 -0.167583
+0.609 -0.149704
+0.6095 -0.1308
+0.61 -0.110965
+0.6105 -0.0903091
+0.611 -0.0689348
+0.6115 -0.0469612
+0.612 -0.0245075
+0.6125 -0.0016946
+0.613 0.0213488
+0.6135 0.0444974
+0.614 0.0676168
+0.6145 0.0905752
+0.615 0.113243
+0.6155 0.135485
+0.616 0.157174
+0.6165 0.178181
+0.617 0.198376
+0.6175 0.21764
+0.618 0.235853
+0.6185 0.252901
+0.619 0.268678
+0.6195 0.283078
+0.62 0.29601
+0.6205 0.307385
+0.621 0.317121
+0.6215 0.325151
+0.622 0.33141
+0.6225 0.335848
+0.623 0.338421
+0.6235 0.339096
+0.624 0.337853
+0.6245 0.33468
+0.625 0.329577
+0.6255 0.322554
+0.626 0.313636
+0.6265 0.302851
+0.627 0.290249
+0.6275 0.275878
+0.628 0.259807
+0.6285 0.242113
+0.629 0.222877
+0.6295 0.2022
+0.63 0.18018
+0.6305 0.156932
+0.631 0.132581
+0.6315 0.107248
+0.632 0.0810733
+0.6325 0.0541978
+0.633 0.0267653
+0.6335 -0.00107051
+0.634 -0.0291593
+0.6345 -0.0573394
+0.635 -0.0854513
+0.6355 -0.113337
+0.636 -0.140834
+0.6365 -0.167785
+0.637 -0.19403
+0.6375 -0.219411
+0.638 -0.243779
+0.6385 -0.266984
+0.639 -0.288886
+0.6395 -0.309349
+0.64 -0.328238
+0.6405 -0.345438
+0.641 -0.360832
+0.6415 -0.374318
+0.642 -0.385802
+0.6425 -0.395198
+0.643 -0.402438
+0.6435 -0.407459
+0.644 -0.410213
+0.6445 -0.410665
+0.645 -0.408791
+0.6455 -0.40458
+0.646 -0.398036
+0.6465 -0.389178
+0.647 -0.378031
+0.6475 -0.364643
+0.648 -0.349066
+0.6485 -0.33137
+0.649 -0.311641
+0.6495 -0.289968
+0.65 -0.266463
+0.6505 -0.241235
+0.651 -0.21442
+0.6515 -0.186154
+0.652 -0.156582
+0.6525 -0.125868
+0.653 -0.0941679
+0.6535 -0.0616588
+0.654 -0.0285188
+0.6545 0.00507432
+0.655 0.0389249
+0.6555 0.072853
+0.656 0.10666
+0.6565 0.140152
+0.657 0.17314
+0.6575 0.205431
+0.658 0.236831
+0.6585 0.267161
+0.659 0.296234
+0.6595 0.323877
+0.66 0.349921
+0.6605 0.374199
+0.661 0.396566
+0.6615 0.416873
+0.662 0.434989
+0.6625 0.450793
+0.663 0.464172
+0.6635 0.475035
+0.664 0.483295
+0.6645 0.488885
+0.665 0.49175
+0.6655 0.491851
+0.666 0.489164
+0.6665 0.483681
+0.667 0.47541
+0.6675 0.464374
+0.668 0.450615
+0.6685 0.434184
+0.669 0.415155
+0.6695 0.393617
+0.67 0.369666
+0.6705 0.343425
+0.671 0.315015
+0.6715 0.284587
+0.672 0.252296
+0.6725 0.218306
+0.673 0.182804
+0.6735 0.145969
+0.674 0.108006
+0.6745 0.0691231
+0.675 0.0295283
+0.6755 -0.0105549
+0.676 -0.0509088
+0.6765 -0.0913003
+0.677 -0.1315
+0.6775 -0.171283
+0.678 -0.210415
+0.6785 -0.248673
+0.679 -0.285832
+0.6795 -0.321666
+0.68 -0.355968
+0.6805 -0.388526
+0.681 -0.419146
+0.6815 -0.447636
+0.682 -0.473813
+0.6825 -0.497519
+0.683 -0.518593
+0.6835 -0.536893
+0.684 -0.552299
+0.6845 -0.564696
+0.685 -0.573993
+0.6855 -0.58011
+0.686 -0.582988
+0.6865 -0.582586
+0.687 -0.57888
+0.6875 -0.571864
+0.688 -0.561552
+0.6885 -0.547981
+0.689 -0.531196
+0.6895 -0.511273
+0.69 -0.488295
+0.6905 -0.462372
+0.691 -0.433632
+0.6915 -0.402208
+0.692 -0.368267
+0.6925 -0.331972
+0.693 -0.293516
+0.6935 -0.253107
+0.694 -0.210947
+0.6945 -0.167271
+0.695 -0.122314
+0.6955 -0.0763184
+0.696 -0.0295412
+0.6965 0.017765
+0.697 0.0653285
+0.6975 0.112881
+0.698 0.160158
+0.6985 0.206883
+0.699 0.252793
+0.6995 0.29762
+0.7 0.341094
+0.7005 0.382966
+0.701 0.422982
+0.7015 0.460905
+0.702 0.496502
+0.7025 0.529549
+0.703 0.559849
+0.7035 0.5872
+0.704 0.611431
+0.7045 0.63238
+0.705 0.649901
+0.7055 0.663873
+0.706 0.674188
+0.7065 0.680762
+0.707 0.683529
+0.7075 0.682445
+0.708 0.677489
+0.7085 0.66866
+0.709 0.655982
+0.7095 0.639494
+0.71 0.619269
+0.7105 0.595386
+0.711 0.567958
+0.7115 0.537121
+0.712 0.503014
+0.7125 0.465818
+0.713 0.42571
+0.7135 0.382906
+0.714 0.337628
+0.7145 0.290109
+0.715 0.240615
+0.7155 0.189396
+0.716 0.136743
+0.7165 0.0829431
+0.717 0.0282854
+0.7175 -0.0269121
+0.718 -0.082357
+0.7185 -0.137725
+0.719 -0.192702
+0.7195 -0.246978
+0.72 -0.300241
+0.7205 -0.35217
+0.721 -0.402478
+0.7215 -0.450854
+0.722 -0.49702
+0.7225 -0.540695
+0.723 -0.581609
+0.7235 -0.61952
+0.724 -0.654184
+0.7245 -0.685388
+0.725 -0.712929
+0.7255 -0.736621
+0.726 -0.756311
+0.7265 -0.771853
+0.727 -0.783135
+0.7275 -0.790062
+0.728 -0.792565
+0.7285 -0.790599
+0.729 -0.784146
+0.7295 -0.773211
+0.73 -0.757825
+0.7305 -0.73805
+0.731 -0.71396
+0.7315 -0.685668
+0.732 -0.653309
+0.7325 -0.617031
+0.733 -0.577025
+0.7335 -0.533478
+0.734 -0.486624
+0.7345 -0.436707
+0.735 -0.38398
+0.7355 -0.328739
+0.736 -0.271263
+0.7365 -0.211874
+0.737 -0.150897
+0.7375 -0.0886603
+0.738 -0.0255159
+0.7385 0.0381943
+0.739 0.102103
+0.7395 0.165849
+0.74 0.229077
+0.7405 0.291418
+0.741 0.352519
+0.7415 0.412025
+0.742 0.469581
+0.7425 0.524855
+0.743 0.577514
+0.7435 0.627249
+0.744 0.673757
+0.7445 0.716746
+0.745 0.755962
+0.7455 0.791153
+0.746 0.822087
+0.7465 0.848573
+0.747 0.870424
+0.7475 0.887493
+0.748 0.89965
+0.7485 0.906793
+0.749 0.908853
+0.7495 0.905786
+0.75 0.897576
+0.7505 0.884236
+0.751 0.865815
+0.7515 0.842379
+0.752 0.814037
+0.7525 0.780909
+0.753 0.743159
+0.7535 0.700979
+0.754 0.654566
+0.7545 0.604174
+0.755 0.550046
+0.7555 0.492474
+0.756 0.431774
+0.7565 0.368251
+0.757 0.302261
+0.7575 0.234163
+0.758 0.164323
+0.7585 0.0931338
+0.759 0.0209795
+0.7595 -0.0517257
+0.76 -0.124573
+0.7605 -0.197158
+0.761 -0.269061
+0.7615 -0.339877
+0.762 -0.409198
+0.7625 -0.476612
+0.763 -0.541736
+0.7635 -0.604181
+0.764 -0.663583
+0.7645 -0.719588
+0.765 -0.771847
+0.7655 -0.820057
+0.766 -0.86391
+0.7665 -0.903139
+0.767 -0.937492
+0.7675 -0.966741
+0.768 -0.9907
+0.7685 -1.00919
+0.769 -1.02209
+0.7695 -1.02929
+0.77 -1.0307
+0.7705 -1.0263
+0.771 -1.01607
+0.7715 -1.00004
+0.772 -0.978266
+0.7725 -0.950838
+0.773 -0.917875
+0.7735 -0.879534
+0.774 -0.836011
+0.7745 -0.787509
+0.775 -0.734289
+0.7755 -0.67661
+0.776 -0.614785
+0.7765 -0.549141
+0.777 -0.480018
+0.7775 -0.407807
+0.778 -0.332877
+0.7785 -0.255652
+0.779 -0.176557
+0.7795 -0.0960186
+0.78 -0.0145043
+0.7805 0.0675539
+0.781 0.149678
+0.7815 0.231402
+0.782 0.312271
+0.7825 0.391821
+0.783 0.469578
+0.7835 0.545116
+0.784 0.617976
+0.7845 0.687743
+0.785 0.754002
+0.7855 0.816349
+0.786 0.874426
+0.7865 0.927868
+0.787 0.976356
+0.7875 1.01959
+0.788 1.05728
+0.7885 1.08921
+0.789 1.11515
+0.7895 1.13492
+0.79 1.14839
+0.7905 1.15544
+0.791 1.15599
+0.7915 1.15002
+0.792 1.13752
+0.7925 1.11853
+0.793 1.09312
+0.7935 1.0614
+0.794 1.02352
+0.7945 0.979661
+0.795 0.930041
+0.7955 0.874917
+0.796 0.814559
+0.7965 0.749293
+0.797 0.679468
+0.7975 0.605441
+0.798 0.527627
+0.7985 0.44643
+0.799 0.362298
+0.7995 0.275707
+0.8 0.187114
+0.8005 0.0970296
+0.801 0.00593733
+0.8015 -0.0856452
+0.802 -0.177186
+0.8025 -0.268193
+0.803 -0.358125
+0.8035 -0.446487
+0.804 -0.532762
+0.8045 -0.616443
+0.805 -0.697062
+0.8055 -0.774127
+0.806 -0.847206
+0.8065 -0.915853
+0.807 -0.979653
+0.8075 -1.03824
+0.808 -1.09124
+0.8085 -1.13833
+0.809 -1.17921
+0.8095 -1.21364
+0.81 -1.24137
+0.8105 -1.26223
+0.811 -1.27605
+0.8115 -1.28273
+0.812 -1.28221
+0.8125 -1.27443
+0.813 -1.25943
+0.8135 -1.23724
+0.814 -1.20796
+0.8145 -1.17173
+0.815 -1.1287
+0.8155 -1.07911
+0.816 -1.02319
+0.8165 -0.961235
+0.817 -0.893574
+0.8175 -0.820547
+0.818 -0.742554
+0.8185 -0.660021
+0.819 -0.573377
+0.8195 -0.483101
+0.82 -0.389702
+0.8205 -0.293667
+0.821 -0.195555
+0.8215 -0.0958884
+0.822 0.00476546
+0.8225 0.105831
+0.823 0.206761
+0.8235 0.306957
+0.824 0.405877
+0.8245 0.50294
+0.825 0.59758
+0.8255 0.689271
+0.826 0.777462
+0.8265 0.86166
+0.827 0.941356
+0.8275 1.01608
+0.828 1.08539
+0.8285 1.14887
+0.829 1.20614
+0.8295 1.25685
+0.83 1.30068
+0.8305 1.33735
+0.831 1.36663
+0.8315 1.38831
+0.832 1.40226
+0.8325 1.40834
+0.833 1.4065
+0.8335 1.39672
+0.834 1.37901
+0.8345 1.35344
+0.835 1.32013
+0.8355 1.27922
+0.836 1.23093
+0.8365 1.1755
+0.837 1.11319
+0.8375 1.04436
+0.838 0.969344
+0.8385 0.888553
+0.839 0.802429
+0.8395 0.71142
+0.84 0.616039
+0.8405 0.51679
+0.841 0.414224
+0.8415 0.308925
+0.842 0.201454
+0.8425 0.0924322
+0.843 -0.0175529
+0.8435 -0.127874
+0.844 -0.23789
+0.8445 -0.347009
+0.845 -0.454593
+0.8455 -0.560018
+0.846 -0.662701
+0.8465 -0.762031
+0.847 -0.857454
+0.8475 -0.948402
+0.848 -1.03434
+0.8485 -1.11477
+0.849 -1.18921
+0.8495 -1.25723
+0.85 -1.31841
+0.8505 -1.37238
+0.851 -1.41881
+0.8515 -1.4574
+0.852 -1.48792
+0.8525 -1.51015
+0.853 -1.52394
+0.8535 -1.52919
+0.854 -1.52583
+0.8545 -1.51384
+0.855 -1.49327
+0.8555 -1.46421
+0.856 -1.42677
+0.8565 -1.38115
+0.857 -1.32758
+0.8575 -1.26632
+0.858 -1.1977
+0.8585 -1.12207
+0.859 -1.03985
+0.8595 -0.951477
+0.86 -0.857418
+0.8605 -0.758201
+0.861 -0.654351
+0.8615 -0.546444
+0.862 -0.435094
+0.8625 -0.320894
+0.863 -0.204502
+0.8635 -0.0865447
+0.864 0.0323067
+0.8645 0.151363
+0.865 0.269987
+0.8655 0.387474
+0.866 0.503183
+0.8665 0.616442
+0.867 0.726591
+0.8675 0.833022
+0.868 0.935092
+0.8685 1.03224
+0.869 1.12388
+0.8695 1.20948
+0.87 1.28854
+0.8705 1.36059
+0.871 1.42519
+0.8715 1.48197
+0.872 1.53057
+0.8725 1.5707
+0.873 1.60209
+0.8735 1.62455
+0.874 1.63792
+0.8745 1.64209
+0.875 1.63701
+0.8755 1.62268
+0.876 1.59916
+0.8765 1.56655
+0.877 1.525
+0.8775 1.47472
+0.878 1.41597
+0.8785 1.34906
+0.879 1.27433
+0.8795 1.1922
+0.88 1.10309
+0.8805 1.00748
+0.881 0.905927
+0.8815 0.798947
+0.882 0.687141
+0.8825 0.571147
+0.883 0.451574
+0.8835 0.329119
+0.884 0.204439
+0.8845 0.0782435
+0.885 -0.048745
+0.8855 -0.17584
+0.886 -0.302289
+0.8865 -0.427414
+0.887 -0.55048
+0.8875 -0.670779
+0.888 -0.787646
+0.8885 -0.900389
+0.889 -1.00838
+0.8895 -1.11099
+0.89 -1.2076
+0.8905 -1.29769
+0.891 -1.38069
+0.8915 -1.45615
+0.892 -1.5236
+0.8925 -1.58263
+0.893 -1.63291
+0.8935 -1.67411
+0.894 -1.70599
+0.8945 -1.72833
+0.895 -1.74098
+0.8955 -1.74386
+0.896 -1.73691
+0.8965 -1.72015
+0.897 -1.69365
+0.8975 -1.65754
+0.898 -1.61198
+0.8985 -1.55722
+0.899 -1.49355
+0.8995 -1.42129
+0.9 -1.34085
+0.9005 -1.25264
+0.901 -1.15714
+0.9015 -1.0549
+0.902 -0.946445
+0.9025 -0.832403
+0.903 -0.713377
+0.9035 -0.590041
+0.904 -0.463096
+0.9045 -0.333221
+0.905 -0.201171
+0.9055 -0.0676599
+0.906 0.06655
+0.9065 0.200685
+0.907 0.334018
+0.9075 0.465778
+0.908 0.595203
+0.9085 0.721587
+0.909 0.844177
+0.9095 0.962304
+0.91 1.07527
+0.9105 1.18243
+0.911 1.28316
+0.9115 1.37688
+0.912 1.46306
+0.9125 1.54118
+0.913 1.61078
+0.9135 1.67146
+0.914 1.72285
+0.9145 1.76464
+0.915 1.79657
+0.9155 1.81845
+0.916 1.83012
+0.9165 1.83151
+0.917 1.82257
+0.9175 1.80335
+0.918 1.77392
+0.9185 1.73444
+0.919 1.6851
+0.9195 1.62617
+0.92 1.55795
+0.9205 1.48082
+0.921 1.39519
+0.9215 1.30152
+0.922 1.20035
+0.9225 1.0922
+0.923 0.977703
+0.9235 0.857461
+0.924 0.732157
+0.9245 0.602506
+0.925 0.469198
+0.9255 0.333013
+0.926 0.19468
+0.9265 0.0549945
+0.927 -0.085242
+0.9275 -0.22527
+0.928 -0.364266
+0.9285 -0.501477
+0.929 -0.636108
+0.9295 -0.767377
+0.93 -0.89457
+0.9305 -1.01693
+0.931 -1.13379
+0.9315 -1.24446
+0.932 -1.3483
+0.9325 -1.44473
+0.933 -1.53318
+0.9335 -1.61313
+0.934 -1.68414
+0.9345 -1.74577
+0.935 -1.79767
+0.9355 -1.83952
+0.936 -1.87108
+0.9365 -1.89215
+0.937 -1.90259
+0.9375 -1.90233
+0.938 -1.89135
+0.9385 -1.8697
+0.939 -1.83749
+0.9395 -1.79487
+0.94 -1.74208
+0.9405 -1.67939
+0.941 -1.60715
+0.9415 -1.52575
+0.942 -1.43564
+0.9425 -1.33731
+0.943 -1.2313
+0.9435 -1.11821
+0.944 -0.998652
+0.9445 -0.8733
+0.945 -0.74287
+0.9455 -0.608061
+0.946 -0.46966
+0.9465 -0.328409
+0.947 -0.185118
+0.9475 -0.0406129
+0.948 0.104329
+0.9485 0.248854
+0.949 0.39218
+0.9495 0.53348
+0.95 0.671937
+0.9505 0.8068
+0.951 0.937269
+0.9515 1.06263
+0.952 1.18217
+0.9525 1.29517
+0.953 1.40103
+0.9535 1.4991
+0.954 1.58886
+0.9545 1.66978
+0.955 1.74137
+0.9555 1.80324
+0.956 1.85502
+0.9565 1.89642
+0.957 1.92718
+0.9575 1.94711
+0.958 1.95611
+0.9585 1.95409
+0.959 1.94107
+0.9595 1.9171
+0.96 1.88232
+0.9605 1.83689
+0.961 1.78108
+0.9615 1.71518
+0.962 1.63956
+0.9625 1.55464
+0.963 1.46088
+0.9635 1.3588
+0.964 1.24899
+0.9645 1.13203
+0.965 1.00861
+0.9655 0.879391
+0.966 0.745105
+0.9665 0.606525
+0.967 0.464396
+0.9675 0.319552
+0.968 0.172774
+0.9685 0.0249056
+0.969 -0.123203
+0.9695 -0.270749
+0.97 -0.416884
+0.9705 -0.560763
+0.971 -0.701608
+0.9715 -0.838588
+0.972 -0.97096
+0.9725 -1.09796
+0.973 -1.21884
+0.9735 -1.33297
+0.974 -1.43964
+0.9745 -1.5383
+0.975 -1.62835
+0.9755 -1.70928
+0.976 -1.78065
+0.9765 -1.84203
+0.977 -1.89308
+0.9775 -1.9335
+0.978 -1.96305
+0.9785 -1.98156
+0.979 -1.98893
+0.9795 -1.98511
+0.98 -1.97011
+0.9805 -1.94401
+0.981 -1.90695
+0.9815 -1.85913
+0.982 -1.80084
+0.9825 -1.73237
+0.983 -1.65412
+0.9835 -1.56653
+0.984 -1.47007
+0.9845 -1.36531
+0.985 -1.25282
+0.9855 -1.13324
+0.986 -1.00722
+0.9865 -0.87549
+0.987 -0.738802
+0.9875 -0.597895
+0.988 -0.453594
+0.9885 -0.306679
+0.989 -0.157996
+0.9895 -0.00839989
+0.99 0.141301
+0.9905 0.290225
+0.991 0.437569
+0.9915 0.582483
+0.992 0.724131
+0.9925 0.861749
+0.993 0.994525
+0.9935 1.12174
+0.994 1.24266
+0.9945 1.3566
+0.995 1.46292
+0.9955 1.56102
+0.996 1.65034
+0.9965 1.73039
+0.997 1.80069
+0.9975 1.86087
+0.998 1.91058
+0.9985 1.94953
+0.999 1.97752
+0.9995 1.99437
+1 2
+1.0005 1.99437
+1.001 1.97752
+1.0015 1.94953
+1.002 1.91058
+1.0025 1.86086
+1.003 1.80069
+1.0035 1.73039
+1.004 1.65035
+1.0045 1.56101
+1.005 1.46292
+1.0055 1.35661
+1.006 1.24265
+1.0065 1.12174
+1.007 0.994541
+1.0075 0.861733
+1.008 0.724131
+1.0085 0.582483
+1.009 0.437587
+1.0095 0.290225
+1.01 0.141301
+1.0105 -0.00838203
+1.011 -0.158014
+1.0115 -0.306679
+1.012 -0.453577
+1.0125 -0.597912
+1.013 -0.738802
+1.0135 -0.87549
+1.014 -1.00724
+1.0145 -1.13324
+1.015 -1.25282
+1.0155 -1.3653
+1.016 -1.47008
+1.0165 -1.56653
+1.017 -1.65411
+1.0175 -1.73238
+1.018 -1.80084
+1.0185 -1.85913
+1.019 -1.90695
+1.0195 -1.94401
+1.02 -1.97011
+1.0205 -1.98511
+1.021 -1.98893
+1.0215 -1.98156
+1.022 -1.96305
+1.0225 -1.93349
+1.023 -1.89308
+1.0235 -1.84203
+1.024 -1.78064
+1.0245 -1.70928
+1.025 -1.62835
+1.0255 -1.53829
+1.026 -1.43964
+1.0265 -1.33297
+1.027 -1.21886
+1.0275 -1.09794
+1.028 -0.97096
+1.0285 -0.838605
+1.029 -0.701591
+1.0295 -0.560763
+1.03 -0.416884
+1.0305 -0.270731
+1.031 -0.123203
+1.0315 0.0249056
+1.032 0.172756
+1.0325 0.319552
+1.033 0.464396
+1.0335 0.606508
+1.034 0.745122
+1.0345 0.879391
+1.035 1.0086
+1.0355 1.13205
+1.036 1.24899
+1.0365 1.3588
+1.037 1.46087
+1.0375 1.55464
+1.038 1.63956
+1.0385 1.71518
+1.039 1.78108
+1.0395 1.83689
+1.04 1.88231
+1.0405 1.91711
+1.041 1.94107
+1.0415 1.95409
+1.042 1.95611
+1.0425 1.94711
+1.043 1.92718
+1.0435 1.89642
+1.044 1.85502
+1.0445 1.80324
+1.045 1.74138
+1.0455 1.66977
+1.046 1.58886
+1.0465 1.49911
+1.047 1.40101
+1.0475 1.29517
+1.048 1.18217
+1.0485 1.06265
+1.049 0.937269
+1.0495 0.8068
+1.05 0.671954
+1.0505 0.533463
+1.051 0.39218
+1.0515 0.24887
+1.052 0.104311
+1.0525 -0.0406129
+1.053 -0.185118
+1.0535 -0.328425
+1.054 -0.46966
+1.0545 -0.608061
+1.055 -0.742855
+1.0555 -0.873315
+1.056 -0.998652
+1.0565 -1.1182
+1.057 -1.23131
+1.0575 -1.33731
+1.058 -1.43563
+1.0585 -1.52576
+1.059 -1.60715
+1.0595 -1.67939
+1.06 -1.74207
+1.0605 -1.79487
+1.061 -1.83749
+1.0615 -1.8697
+1.062 -1.89135
+1.0625 -1.90233
+1.063 -1.90259
+1.0635 -1.89215
+1.064 -1.87108
+1.0645 -1.83952
+1.065 -1.79766
+1.0655 -1.74577
+1.066 -1.68414
+1.0665 -1.61314
+1.067 -1.53317
+1.0675 -1.44473
+1.068 -1.34831
+1.0685 -1.24445
+1.069 -1.13379
+1.0695 -1.01695
+1.07 -0.894556
+1.0705 -0.767377
+1.071 -0.636108
+1.0715 -0.501493
+1.072 -0.364266
+1.0725 -0.22527
+1.073 -0.0852581
+1.0735 0.0550105
+1.074 0.19468
+1.0745 0.332995
+1.075 0.469215
+1.0755 0.602506
+1.076 0.732157
+1.0765 0.857477
+1.077 0.977703
+1.0775 1.0922
+1.078 1.20033
+1.0785 1.30153
+1.079 1.39519
+1.0795 1.48081
+1.08 1.55796
+1.0805 1.62617
+1.081 1.6851
+1.0815 1.73444
+1.082 1.77392
+1.0825 1.80335
+1.083 1.82257
+1.0835 1.83151
+1.084 1.83012
+1.0845 1.81845
+1.085 1.79657
+1.0855 1.76464
+1.086 1.72285
+1.0865 1.67145
+1.087 1.61078
+1.0875 1.54118
+1.088 1.46305
+1.0885 1.37688
+1.089 1.28316
+1.0895 1.18244
+1.09 1.07526
+1.0905 0.962304
+1.091 0.844192
+1.0915 0.721572
+1.092 0.595203
+1.0925 0.465778
+1.093 0.334002
+1.0935 0.200685
+1.094 0.06655
+1.0945 -0.0676429
+1.095 -0.201171
+1.0955 -0.333221
+1.096 -0.463082
+1.0965 -0.590057
+1.097 -0.713377
+1.0975 -0.832389
+1.098 -0.946458
+1.0985 -1.0549
+1.099 -1.15714
+1.0995 -1.25262
+1.1 -1.34085
+1.1005 -1.42129
+1.101 -1.49354
+1.1015 -1.55723
+1.102 -1.61198
+1.1025 -1.65753
+1.103 -1.69365
+1.1035 -1.72015
+1.104 -1.73691
+1.1045 -1.74386
+1.105 -1.74098
+1.1055 -1.72833
+1.106 -1.70599
+1.1065 -1.67411
+1.107 -1.63291
+1.1075 -1.58264
+1.108 -1.52359
+1.1085 -1.45615
+1.109 -1.3807
+1.1095 -1.29768
+1.11 -1.2076
+1.1105 -1.11099
+1.111 -1.00839
+1.1115 -0.900389
+1.112 -0.787646
+1.1125 -0.670794
+1.113 -0.550468
+1.1135 -0.427414
+1.114 -0.302305
+1.1145 -0.175824
+1.115 -0.048745
+1.1155 0.0782435
+1.116 0.204455
+1.1165 0.329119
+1.117 0.451574
+1.1175 0.571132
+1.118 0.687155
+1.1185 0.798947
+1.119 0.905916
+1.1195 1.0075
+1.12 1.10309
+1.1205 1.19219
+1.121 1.27434
+1.1215 1.34906
+1.122 1.41597
+1.1225 1.47471
+1.123 1.525
+1.1235 1.56655
+1.124 1.59916
+1.1245 1.62268
+1.125 1.63701
+1.1255 1.64209
+1.126 1.63791
+1.1265 1.62455
+1.127 1.60209
+1.1275 1.57069
+1.128 1.53057
+1.1285 1.48197
+1.129 1.4252
+1.1295 1.36058
+1.13 1.28854
+1.1305 1.20949
+1.131 1.12387
+1.1315 1.03224
+1.132 0.935104
+1.1325 0.833009
+1.133 0.726591
+1.1335 0.616442
+1.134 0.503198
+1.1345 0.387474
+1.135 0.269987
+1.1355 0.151378
+1.136 0.0322916
+1.1365 -0.0865447
+1.137 -0.20449
+1.1375 -0.320908
+1.138 -0.435094
+1.1385 -0.546444
+1.139 -0.654361
+1.1395 -0.758201
+1.14 -0.857418
+1.1405 -0.951468
+1.141 -1.03986
+1.1415 -1.12207
+1.142 -1.19769
+1.1425 -1.26632
+1.143 -1.32758
+1.1435 -1.38115
+1.144 -1.42678
+1.1445 -1.46421
+1.145 -1.49327
+1.1455 -1.51384
+1.146 -1.52583
+1.1465 -1.52919
+1.147 -1.52395
+1.1475 -1.51015
+1.148 -1.48792
+1.1485 -1.4574
+1.149 -1.4188
+1.1495 -1.37238
+1.15 -1.31841
+1.1505 -1.25722
+1.151 -1.18921
+1.1515 -1.11477
+1.152 -1.03435
+1.1525 -0.948391
+1.153 -0.857454
+1.1535 -0.762043
+1.154 -0.662691
+1.1545 -0.560018
+1.155 -0.454593
+1.1555 -0.346996
+1.156 -0.23789
+1.1565 -0.127874
+1.157 -0.0175669
+1.1575 0.0924322
+1.158 0.201454
+1.1585 0.308915
+1.159 0.414237
+1.1595 0.51679
+1.16 0.616027
+1.1605 0.711432
+1.161 0.802429
+1.1615 0.888553
+1.162 0.969336
+1.1625 1.04436
+1.163 1.11319
+1.1635 1.17549
+1.164 1.23094
+1.1645 1.27922
+1.165 1.32012
+1.1655 1.35344
+1.166 1.37901
+1.1665 1.39672
+1.167 1.40651
+1.1675 1.40834
+1.168 1.40226
+1.1685 1.38832
+1.169 1.36663
+1.1695 1.33735
+1.17 1.30068
+1.1705 1.25684
+1.171 1.20614
+1.1715 1.14888
+1.172 1.08538
+1.1725 1.01608
+1.173 0.941356
+1.1735 0.861668
+1.174 0.777462
+1.1745 0.689271
+1.175 0.597592
+1.1755 0.50293
+1.176 0.405877
+1.1765 0.306969
+1.177 0.206749
+1.1775 0.105831
+1.178 0.00476546
+1.1785 -0.0959011
+1.179 -0.195555
+1.1795 -0.293667
+1.18 -0.38969
+1.1805 -0.483112
+1.181 -0.573377
+1.1815 -0.660012
+1.182 -0.742564
+1.1825 -0.820547
+1.183 -0.893564
+1.1835 -0.961242
+1.184 -1.02319
+1.1845 -1.07911
+1.185 -1.1287
+1.1855 -1.17173
+1.186 -1.20796
+1.1865 -1.23724
+1.187 -1.25943
+1.1875 -1.27443
+1.188 -1.28221
+1.1885 -1.28273
+1.189 -1.27605
+1.1895 -1.26223
+1.19 -1.24137
+1.1905 -1.21364
+1.191 -1.17921
+1.1915 -1.13833
+1.192 -1.09123
+1.1925 -1.03824
+1.193 -0.979661
+1.1935 -0.915846
+1.194 -0.847206
+1.1945 -0.774136
+1.195 -0.697052
+1.1955 -0.616443
+1.196 -0.532762
+1.1965 -0.446498
+1.197 -0.358125
+1.1975 -0.268193
+1.198 -0.177197
+1.1985 -0.0856335
+1.199 0.00593733
+1.1995 0.0970204
+1.2 0.187126
+1.2005 0.275707
+1.201 0.362298
+1.2015 0.446438
+1.202 0.527627
+1.2025 0.605441
+1.203 0.67946
+1.2035 0.749302
+1.204 0.814559
+1.2045 0.874909
+1.205 0.930046
+1.2055 0.979661
+1.206 1.02352
+1.2065 1.0614
+1.207 1.09312
+1.2075 1.11853
+1.208 1.13752
+1.2085 1.15002
+1.209 1.15599
+1.2095 1.15544
+1.21 1.14839
+1.2105 1.13492
+1.211 1.11515
+1.2115 1.0892
+1.212 1.05728
+1.2125 1.01959
+1.213 0.976351
+1.2135 0.927868
+1.214 0.874426
+1.2145 0.816358
+1.215 0.753996
+1.2155 0.687743
+1.216 0.617984
+1.2165 0.545109
+1.217 0.469578
+1.2175 0.391821
+1.218 0.312263
+1.2185 0.231402
+1.219 0.149678
+1.2195 0.0675623
+1.22 -0.0145043
+1.2205 -0.0960186
+1.221 -0.176549
+1.2215 -0.25566
+1.222 -0.332877
+1.2225 -0.407799
+1.223 -0.480029
+1.2235 -0.549141
+1.224 -0.614785
+1.2245 -0.676604
+1.225 -0.734289
+1.2255 -0.787509
+1.226 -0.836007
+1.2265 -0.879541
+1.227 -0.917875
+1.2275 -0.950834
+1.228 -0.97827
+1.2285 -1.00004
+1.229 -1.01607
+1.2295 -1.0263
+1.23 -1.0307
+1.2305 -1.02929
+1.231 -1.02209
+1.2315 -1.00919
+1.232 -0.9907
+1.2325 -0.966745
+1.233 -0.937489
+1.2335 -0.903139
+1.234 -0.863915
+1.2345 -0.820053
+1.235 -0.771847
+1.2355 -0.719588
+1.236 -0.663592
+1.2365 -0.604181
+1.237 -0.541736
+1.2375 -0.476619
+1.238 -0.409191
+1.2385 -0.339877
+1.239 -0.269068
+1.2395 -0.197151
+1.24 -0.124573
+1.2405 -0.0517257
+1.241 0.0209906
+1.2415 0.0931338
+1.242 0.164323
+1.2425 0.234156
+1.243 0.302268
+1.2435 0.368251
+1.244 0.431768
+1.2445 0.492483
+1.245 0.550046
+1.2455 0.604168
+1.246 0.654574
+1.2465 0.700979
+1.247 0.743159
+1.2475 0.780906
+1.248 0.814037
+1.2485 0.842379
+1.249 0.865813
+1.2495 0.884239
+1.25 0.897576
+1.2505 0.905785
+1.251 0.908853
+1.2515 0.906793
+1.252 0.89965
+1.2525 0.887492
+1.253 0.870424
+1.2535 0.848573
+1.254 0.822092
+1.2545 0.791149
+1.255 0.755962
+1.2555 0.716752
+1.256 0.673753
+1.2565 0.627249
+1.257 0.57752
+1.2575 0.52485
+1.258 0.469581
+1.2585 0.412025
+1.259 0.352528
+1.2595 0.291418
+1.26 0.229077
+1.2605 0.165856
+1.261 0.102097
+1.2615 0.0381943
+1.262 -0.0255094
+1.2625 -0.0886667
+1.263 -0.150897
+1.2635 -0.211874
+1.264 -0.271271
+1.2645 -0.328739
+1.265 -0.38398
+1.2655 -0.436701
+1.266 -0.486629
+1.2665 -0.533478
+1.267 -0.57702
+1.2675 -0.617037
+1.268 -0.653309
+1.2685 -0.685668
+1.269 -0.713963
+1.2695 -0.73805
+1.27 -0.757825
+1.2705 -0.77321
+1.271 -0.784146
+1.2715 -0.790599
+1.272 -0.792564
+1.2725 -0.790061
+1.273 -0.783135
+1.2735 -0.771855
+1.274 -0.756309
+1.2745 -0.736621
+1.275 -0.712929
+1.2755 -0.685385
+1.276 -0.654184
+1.2765 -0.61952
+1.277 -0.581615
+1.2775 -0.540691
+1.278 -0.49702
+1.2785 -0.450859
+1.279 -0.402473
+1.2795 -0.35217
+1.28 -0.300241
+1.2805 -0.246972
+1.281 -0.192702
+1.2815 -0.137725
+1.282 -0.0823626
+1.2825 -0.0269121
+1.283 0.0282854
+1.2835 0.0829376
+1.284 0.136749
+1.2845 0.189396
+1.285 0.24061
+1.2855 0.290116
+1.286 0.337628
+1.2865 0.382906
+1.287 0.425706
+1.2875 0.465818
+1.288 0.503014
+1.2885 0.537117
+1.289 0.567963
+1.2895 0.595386
+1.29 0.619265
+1.2905 0.639497
+1.291 0.655982
+1.2915 0.66866
+1.292 0.67749
+1.2925 0.682445
+1.293 0.683529
+1.2935 0.680762
+1.294 0.674188
+1.2945 0.663873
+1.295 0.649903
+1.2955 0.632378
+1.296 0.611431
+1.2965 0.587203
+1.297 0.559846
+1.2975 0.529549
+1.298 0.496502
+1.2985 0.46091
+1.299 0.422982
+1.2995 0.382966
+1.3 0.341098
+1.3005 0.297615
+1.301 0.252793
+1.3015 0.206888
+1.302 0.160153
+1.3025 0.112881
+1.303 0.0653285
+1.3035 0.0177578
+1.304 -0.0295412
+1.3045 -0.0763184
+1.305 -0.12231
+1.3055 -0.167275
+1.306 -0.210947
+1.3065 -0.253103
+1.307 -0.293522
+1.3075 -0.331972
+1.308 -0.368263
+1.3085 -0.402213
+1.309 -0.433632
+1.3095 -0.462372
+1.31 -0.488293
+1.3105 -0.511273
+1.311 -0.531196
+1.3115 -0.547979
+1.312 -0.561554
+1.3125 -0.571864
+1.313 -0.578879
+1.3135 -0.582586
+1.314 -0.582988
+1.3145 -0.58011
+1.315 -0.573992
+1.3155 -0.564696
+1.316 -0.552299
+1.3165 -0.536896
+1.317 -0.518591
+1.3175 -0.497519
+1.318 -0.473817
+1.3185 -0.447633
+1.319 -0.419146
+1.3195 -0.38853
+1.32 -0.355965
+1.3205 -0.321666
+1.321 -0.285832
+1.3215 -0.248678
+1.322 -0.210415
+1.3225 -0.171283
+1.323 -0.131504
+1.3235 -0.0912962
+1.324 -0.0509088
+1.3245 -0.010559
+1.325 0.0295323
+1.3255 0.0691231
+1.326 0.108006
+1.3265 0.145975
+1.327 0.182804
+1.3275 0.218306
+1.328 0.252293
+1.3285 0.28459
+1.329 0.315015
+1.3295 0.343422
+1.33 0.36967
+1.3305 0.393617
+1.331 0.415155
+1.3315 0.434186
+1.332 0.450615
+1.3325 0.464374
+1.333 0.475409
+1.3335 0.483681
+1.334 0.489164
+1.3345 0.491851
+1.335 0.49175
+1.3355 0.488885
+1.336 0.483296
+1.3365 0.475034
+1.337 0.464172
+1.3375 0.450793
+1.338 0.434987
+1.3385 0.416873
+1.339 0.396566
+1.3395 0.374203
+1.34 0.349919
+1.3405 0.323877
+1.341 0.296237
+1.3415 0.267158
+1.342 0.236831
+1.3425 0.205431
+1.343 0.173136
+1.3435 0.140152
+1.344 0.10666
+1.3445 0.0728565
+1.345 0.0389249
+1.3455 0.00507432
+1.346 -0.0285154
+1.3465 -0.0616621
+1.347 -0.0941679
+1.3475 -0.125865
+1.348 -0.156587
+1.3485 -0.186154
+1.349 -0.21442
+1.3495 -0.241233
+1.35 -0.266463
+1.3505 -0.289968
+1.351 -0.311639
+1.3515 -0.331373
+1.352 -0.349066
+1.3525 -0.364641
+1.353 -0.378033
+1.3535 -0.389178
+1.354 -0.398036
+1.3545 -0.404581
+1.355 -0.408791
+1.3555 -0.410665
+1.356 -0.410214
+1.3565 -0.407459
+1.357 -0.402438
+1.3575 -0.395199
+1.358 -0.385801
+1.3585 -0.374318
+1.359 -0.360833
+1.3595 -0.345436
+1.36 -0.328238
+1.3605 -0.309349
+1.361 -0.28889
+1.3615 -0.266984
+1.362 -0.243779
+1.3625 -0.219413
+1.363 -0.194027
+1.3635 -0.167785
+1.364 -0.140837
+1.3645 -0.113335
+1.365 -0.0854513
+1.3655 -0.0573394
+1.366 -0.029155
+1.3665 -0.00107051
+1.367 0.0267653
+1.3675 0.0541951
+1.368 0.081076
+1.3685 0.107248
+1.369 0.132578
+1.3695 0.156935
+1.37 0.18018
+1.3705 0.202198
+1.371 0.22288
+1.3715 0.242113
+1.372 0.259807
+1.3725 0.275877
+1.373 0.290249
+1.3735 0.302851
+1.374 0.313635
+1.3745 0.322555
+1.375 0.329577
+1.3755 0.334679
+1.376 0.337853
+1.3765 0.339096
+1.377 0.338421
+1.3775 0.335848
+1.378 0.33141
+1.3785 0.325151
+1.379 0.317123
+1.3795 0.307384
+1.38 0.29601
+1.3805 0.28308
+1.381 0.268677
+1.3815 0.252901
+1.382 0.235854
+1.3825 0.217638
+1.383 0.198376
+1.3835 0.178181
+1.384 0.157178
+1.3845 0.135485
+1.385 0.113243
+1.3855 0.0905775
+1.386 0.0676144
+1.3865 0.0444974
+1.387 0.0213512
+1.3875 -0.00169693
+1.388 -0.0245075
+1.3885 -0.0469612
+1.389 -0.0689382
+1.3895 -0.0903091
+1.39 -0.110965
+1.3905 -0.130798
+1.391 -0.149706
+1.3915 -0.167583
+1.392 -0.184345
+1.3925 -0.199909
+1.393 -0.214193
+1.3935 -0.227132
+1.394 -0.238671
+1.3945 -0.248751
+1.395 -0.257333
+1.3955 -0.264384
+1.396 -0.269879
+1.3965 -0.2738
+1.397 -0.276143
+1.3975 -0.27691
+1.398 -0.276112
+1.3985 -0.273768
+1.399 -0.269907
+1.3995 -0.264566
+1.4 -0.257791
+1.4005 -0.24963
+1.401 -0.24015
+1.4015 -0.229412
+1.402 -0.217492
+1.4025 -0.204464
+1.403 -0.190419
+1.4035 -0.175444
+1.404 -0.159629
+1.4045 -0.143078
+1.405 -0.12589
+1.4055 -0.108162
+1.406 -0.0900087
+1.4065 -0.0715316
+1.407 -0.0528399
+1.4075 -0.0340354
+1.408 -0.0152348
+1.4085 0.00346174
+1.409 0.0219525
+1.4095 0.0401271
+1.41 0.0578917
+1.4105 0.075153
+1.411 0.0918109
+1.4115 0.107783
+1.412 0.122984
+1.4125 0.137342
+1.413 0.150776
+1.4135 0.163224
+1.414 0.174628
+1.4145 0.18493
+1.415 0.194085
+1.4155 0.202056
+1.416 0.208806
+1.4165 0.214311
+1.417 0.218554
+1.4175 0.221523
+1.418 0.223215
+1.4185 0.223633
+1.419 0.222789
+1.4195 0.2207
+1.42 0.217392
+1.4205 0.212893
+1.421 0.207245
+1.4215 0.200491
+1.422 0.192677
+1.4225 0.183863
+1.423 0.174107
+1.4235 0.163474
+1.424 0.152031
+1.4245 0.139855
+1.425 0.127022
+1.4255 0.113606
+1.426 0.0996952
+1.4265 0.0853719
+1.427 0.0707171
+1.4275 0.0558222
+1.428 0.0407716
+1.4285 0.0256487
+1.429 0.0105456
+1.4295 -0.00445414
+1.43 -0.0192702
+1.4305 -0.0338223
+1.431 -0.0480254
+1.4315 -0.0618046
+1.432 -0.0750923
+1.4325 -0.0878121
+1.433 -0.099901
+1.4335 -0.1113
+1.434 -0.121947
+1.4345 -0.131792
+1.435 -0.140791
+1.4355 -0.148901
+1.436 -0.156084
+1.4365 -0.16231
+1.437 -0.167557
+1.4375 -0.171803
+1.438 -0.175036
+1.4385 -0.177249
+1.439 -0.17844
+1.4395 -0.178614
+1.44 -0.17778
+1.4405 -0.175956
+1.441 -0.173161
+1.4415 -0.169423
+1.442 -0.164771
+1.4425 -0.159244
+1.443 -0.152881
+1.4435 -0.145727
+1.444 -0.137834
+1.4445 -0.129251
+1.445 -0.120034
+1.4455 -0.110245
+1.446 -0.0999452
+1.4465 -0.0891962
+1.447 -0.0780621
+1.4475 -0.0666147
+1.448 -0.0549197
+1.4485 -0.0430435
+1.449 -0.031061
+1.4495 -0.0190362
+1.45 -0.00703624
+1.4505 0.00486666
+1.451 0.0166077
+1.4515 0.0281271
+1.452 0.0393566
+1.4525 0.0502385
+1.453 0.0607141
+1.4535 0.0707331
+1.454 0.080239
+1.4545 0.089186
+1.455 0.0975316
+1.4555 0.105232
+1.456 0.112252
+1.4565 0.118563
+1.457 0.124134
+1.4575 0.128943
+1.458 0.132971
+1.4585 0.136205
+1.459 0.138635
+1.4595 0.140258
+1.46 0.141072
+1.4605 0.141083
+1.461 0.140299
+1.4615 0.138735
+1.462 0.136408
+1.4625 0.133339
+1.463 0.129555
+1.4635 0.125086
+1.464 0.119964
+1.4645 0.114225
+1.465 0.107909
+1.4655 0.10106
+1.466 0.093721
+1.4665 0.0859376
+1.467 0.0777623
+1.4675 0.0692449
+1.468 0.0604341
+1.4685 0.0513873
+1.469 0.0421565
+1.4695 0.0327961
+1.47 0.0233583
+1.4705 0.0139021
+1.471 0.00447725
+1.4715 -0.00486436
+1.472 -0.0140672
+1.4725 -0.023082
+1.473 -0.0318637
+1.4735 -0.040361
+1.474 -0.0485311
+1.4745 -0.0563309
+1.475 -0.0637239
+1.4755 -0.0706694
+1.476 -0.0771349
+1.4765 -0.0830908
+1.477 -0.0885072
+1.4775 -0.0933606
+1.478 -0.097632
+1.4785 -0.101302
+1.479 -0.104358
+1.4795 -0.106791
+1.48 -0.108593
+1.4805 -0.109762
+1.481 -0.110299
+1.4815 -0.110208
+1.482 -0.109499
+1.4825 -0.108181
+1.483 -0.106269
+1.4835 -0.103783
+1.484 -0.100741
+1.4845 -0.0971687
+1.485 -0.0930931
+1.4855 -0.088542
+1.486 -0.0835474
+1.4865 -0.0781414
+1.487 -0.0723624
+1.4875 -0.0662454
+1.488 -0.059828
+1.4885 -0.0531529
+1.489 -0.0462602
+1.4895 -0.0391887
+1.49 -0.0319838
+1.4905 -0.0246866
+1.491 -0.0173379
+1.4915 -0.00998256
+1.492 -0.00266161
+1.4925 0.00458557
+1.493 0.0117197
+1.4935 0.018699
+1.494 0.0254867
+1.4945 0.0320496
+1.495 0.03835
+1.4955 0.044357
+1.496 0.0500414
+1.4965 0.0553728
+1.497 0.060326
+1.4975 0.0648789
+1.498 0.0690109
+1.4985 0.0727022
+1.499 0.0759381
+1.4995 0.0787071
+1.5 0.0809979
+1.5005 0.082804
+1.501 0.0841215
+1.5015 0.0849485
+1.502 0.0852869
+1.5025 0.0851406
+1.503 0.0845167
+1.5035 0.0834246
+1.504 0.0818762
+1.5045 0.0798857
+1.505 0.0774705
+1.5055 0.0746493
+1.506 0.0714423
+1.5065 0.0678742
+1.507 0.0639685
+1.5075 0.0597507
+1.508 0.0552504
+1.5085 0.0504961
+1.509 0.045517
+1.5095 0.0403434
+1.51 0.0350091
+1.5105 0.0295451
+1.511 0.0239829
+1.5115 0.0183578
+1.512 0.0127003
+1.5125 0.00704203
+1.513 0.00141726
+1.5135 -0.00414326
+1.514 -0.00961118
+1.5145 -0.014954
+1.515 -0.0201444
+1.5155 -0.0251543
+1.516 -0.0299599
+1.5165 -0.0345342
+1.517 -0.0388552
+1.5175 -0.0429026
+1.518 -0.0466555
+1.5185 -0.0500969
+1.519 -0.0532128
+1.5195 -0.055988
+1.52 -0.058412
+1.5205 -0.0604755
+1.521 -0.0621721
+1.5215 -0.0634961
+1.522 -0.0644453
+1.5225 -0.0650191
+1.523 -0.065219
+1.5235 -0.065049
+1.524 -0.0645145
+1.5245 -0.0636236
+1.525 -0.0623858
+1.5255 -0.0608123
+1.526 -0.0589172
+1.5265 -0.0567147
+1.527 -0.0542215
+1.5275 -0.0514549
+1.528 -0.0484354
+1.5285 -0.0451823
+1.529 -0.0417166
+1.5295 -0.0380621
+1.53 -0.0342415
+1.5305 -0.0302771
+1.531 -0.0261952
+1.5315 -0.0220194
+1.532 -0.0177747
+1.5325 -0.0134851
+1.533 -0.00917742
+1.5335 -0.00487467
+1.534 -0.000600586
+1.5345 0.00361934
+1.535 0.00776245
+1.5355 0.011808
+1.536 0.0157324
+1.5365 0.0195159
+1.537 0.0231387
+1.5375 0.0265838
+1.538 0.0298324
+1.5385 0.0328695
+1.539 0.0356813
+1.5395 0.0382538
+1.54 0.040576
+1.5405 0.0426391
+1.541 0.0444338
+1.5415 0.0459539
+1.542 0.0471948
+1.5425 0.0481527
+1.543 0.0488265
+1.5435 0.0492159
+1.544 0.0493228
+1.5445 0.0491501
+1.545 0.0487028
+1.5455 0.0479869
+1.546 0.0470104
+1.5465 0.0457821
+1.547 0.0443122
+1.5475 0.0426129
+1.548 0.0406963
+1.5485 0.0385765
+1.549 0.0362676
+1.5495 0.0337865
+1.55 0.0311486
+1.5505 0.0283705
+1.551 0.025471
+1.5515 0.0224679
+1.552 0.0193784
+1.5525 0.0162226
+1.553 0.0130187
+1.5535 0.00978465
+1.554 0.00654057
+1.5545 0.00330456
+1.555 9.41526e-05
+1.5555 -0.00307319
+1.556 -0.00617889
+1.5565 -0.00920658
+1.557 -0.0121414
+1.5575 -0.0149667
+1.558 -0.0176684
+1.5585 -0.0202337
+1.559 -0.0226488
+1.5595 -0.0249024
+1.56 -0.0269846
+1.5605 -0.0288861
+1.561 -0.0305979
+1.5615 -0.0321132
+1.562 -0.0334268
+1.5625 -0.0345333
+1.563 -0.0354296
+1.5635 -0.0361138
+1.564 -0.0365846
+1.5645 -0.0368427
+1.565 -0.0368893
+1.5655 -0.0367274
+1.566 -0.0363606
+1.5665 -0.035794
+1.567 -0.0350334
+1.5675 -0.034086
+1.568 -0.0329599
+1.5685 -0.0316634
+1.569 -0.0302072
+1.5695 -0.028601
+1.57 -0.026856
+1.5705 -0.0249845
+1.571 -0.0229988
+1.5715 -0.0209114
+1.572 -0.0187353
+1.5725 -0.0164848
+1.573 -0.0141734
+1.5735 -0.0118144
+1.574 -0.00942313
+1.5745 -0.00701253
+1.575 -0.00459626
+1.5755 -0.00218904
+1.576 0.000195897
+1.5765 0.00254635
+1.577 0.00484833
+1.5775 0.00709001
+1.578 0.00925935
+1.5785 0.011346
+1.579 0.0133383
+1.5795 0.0152267
+1.58 0.0170024
+1.5805 0.0186564
+1.581 0.0201811
+1.5815 0.0215704
+1.582 0.0228178
+1.5825 0.0239184
+1.583 0.0248682
+1.5835 0.0256642
+1.584 0.0263037
+1.5845 0.0267857
+1.585 0.0271096
+1.5855 0.0272758
+1.586 0.0272858
+1.5865 0.0271417
+1.587 0.0268466
+1.5875 0.0264044
+1.588 0.0258195
+1.5885 0.0250978
+1.589 0.0242449
+1.5895 0.0232678
+1.59 0.0221735
+1.5905 0.0209704
+1.591 0.0196666
+1.5915 0.0182707
+1.592 0.0167925
+1.5925 0.0152414
+1.593 0.0136266
+1.5935 0.0119591
+1.594 0.0102487
+1.5945 0.00850564
+1.595 0.00673997
+1.5955 0.00496288
+1.596 0.00318388
+1.5965 0.00141286
+1.597 -0.000339552
+1.5975 -0.00206392
+1.598 -0.00375159
+1.5985 -0.00539271
+1.599 -0.00697904
+1.5995 -0.00850226
+1.6 -0.0099553
+1.6005 -0.0113302
+1.601 -0.0126208
+1.6015 -0.0138211
+1.602 -0.0149253
+1.6025 -0.0159286
+1.603 -0.0168274
+1.6035 -0.0176176
+1.604 -0.0182966
+1.6045 -0.0188622
+1.605 -0.0193128
+1.6055 -0.0196477
+1.606 -0.0198667
+1.6065 -0.0199703
+1.607 -0.0199596
+1.6075 -0.0198365
+1.608 -0.0196032
+1.6085 -0.0192629
+1.609 -0.018819
+1.6095 -0.0182756
+1.61 -0.0176373
+1.6105 -0.0169092
+1.611 -0.0160966
+1.6115 -0.0152053
+1.612 -0.0142421
+1.6125 -0.0132129
+1.613 -0.0121247
+1.6135 -0.0109847
+1.614 -0.00980029
+1.6145 -0.0085782
+1.615 -0.00732657
+1.6155 -0.00605269
+1.616 -0.00476383
+1.6165 -0.00346804
+1.617 -0.00217263
+1.6175 -0.000884652
+1.618 0.000388846
+1.6185 0.00164037
+1.619 0.00286331
+1.6195 0.00405167
+1.62 0.00519866
+1.6205 0.00629867
+1.621 0.0073464
+1.6215 0.00833631
+1.622 0.00926381
+1.6225 0.0101248
+1.623 0.0109155
+1.6235 0.0116322
+1.624 0.0122721
+1.6245 0.012833
+1.625 0.0133127
+1.6255 0.0137097
+1.626 0.0140233
+1.6265 0.0142527
+1.627 0.0143982
+1.6275 0.0144601
+1.628 0.0144394
+1.6285 0.0143375
+1.629 0.0141563
+1.6295 0.0138979
+1.63 0.0135651
+1.6305 0.013161
+1.631 0.0126887
+1.6315 0.0121524
+1.632 0.0115558
+1.6325 0.0109032
+1.633 0.0101994
+1.6335 0.00944909
+1.634 0.00865719
+1.6345 0.00782868
+1.635 0.00696918
+1.6355 0.00608386
+1.636 0.00517796
+1.6365 0.00425738
+1.637 0.00332721
+1.6375 0.00239276
+1.638 0.00145975
+1.6385 0.000533364
+1.639 -0.000381646
+1.6395 -0.00127982
+1.64 -0.00215651
+1.6405 -0.00300703
+1.641 -0.00382731
+1.6415 -0.00461278
+1.642 -0.00535969
+1.6425 -0.00606459
+1.643 -0.00672387
+1.6435 -0.00733459
+1.644 -0.00789433
+1.6445 -0.00840043
+1.645 -0.008851
+1.6455 -0.00924433
+1.646 -0.00957927
+1.6465 -0.00985468
+1.647 -0.01007
+1.6475 -0.010225
+1.648 -0.0103198
+1.6485 -0.0103547
+1.649 -0.0103306
+1.6495 -0.0102486
+1.65 -0.01011
+1.6505 -0.00991643
+1.651 -0.00967006
+1.6515 -0.00937304
+1.652 -0.00902787
+1.6525 -0.0086372
+1.653 -0.00820419
+1.6535 -0.00773181
+1.654 -0.0072233
+1.6545 -0.00668234
+1.655 -0.00611246
+1.6555 -0.00551714
+1.656 -0.00490045
+1.6565 -0.0042661
+1.657 -0.00361798
+1.6575 -0.00295985
+1.658 -0.00229592
+1.6585 -0.00162979
+1.659 -0.000965188
+1.6595 -0.00030613
+1.66 0.000343815
+1.6605 0.000981375
+1.661 0.00160282
+1.6615 0.00220503
+1.662 0.00278484
+1.6625 0.00333958
+1.663 0.00386622
+1.6635 0.00436236
+1.664 0.00482578
+1.6645 0.00525422
+1.665 0.00564587
+1.6655 0.00599927
+1.666 0.00631287
+1.6665 0.00658563
+1.667 0.0068167
+1.6675 0.00700537
+1.668 0.00715136
+1.6685 0.00725453
+1.669 0.007315
+1.6695 0.00733311
+1.67 0.00730949
+1.6705 0.00724495
+1.671 0.00714054
+1.6715 0.00699752
+1.672 0.0068173
+1.6725 0.00660161
+1.673 0.0063522
+1.6735 0.00607104
+1.674 0.00576021
+1.6745 0.0054221
+1.675 0.00505899
+1.6755 0.00467327
+1.676 0.00426768
+1.6765 0.0038448
+1.677 0.00340716
+1.6775 0.0029577
+1.678 0.00249906
+1.6785 0.00203391
+1.679 0.00156519
+1.6795 0.00109555
+1.68 0.000627586
+1.6805 0.000163868
+1.681 -0.000292861
+1.6815 -0.000740179
+1.682 -0.00117589
+1.6825 -0.0015975
+1.683 -0.00200295
+1.6835 -0.00239029
+1.684 -0.00275748
+1.6845 -0.00310282
+1.685 -0.00342479
+1.6855 -0.003722
+1.686 -0.00399306
+1.6865 -0.00423691
+1.687 -0.00445273
+1.6875 -0.00463965
+1.688 -0.00479717
+1.6885 -0.00492489
+1.689 -0.00502256
+1.6895 -0.00509018
+1.69 -0.00512787
+1.6905 -0.00513592
+1.691 -0.00511479
+1.6915 -0.00506511
+1.692 -0.00498762
+1.6925 -0.00488328
+1.693 -0.00475312
+1.6935 -0.00459828
+1.694 -0.00442015
+1.6945 -0.00422009
+1.695 -0.00399955
+1.6955 -0.00376024
+1.696 -0.00350382
+1.6965 -0.00323199
+1.697 -0.00294652
+1.6975 -0.00264937
+1.698 -0.00234237
+1.6985 -0.00202738
+1.699 -0.00170647
+1.6995 -0.00138144
+1.7 -0.00105416
+1.7005 -0.000726663
+1.701 -0.000400775
+1.7015 -7.81849e-05
+1.702 0.000239175
+1.7025 0.000549661
+1.703 0.000851603
+1.7035 0.00114356
+1.704 0.0014239
+1.7045 0.00169129
+1.705 0.0019445
+1.7055 0.00218224
+1.706 0.00240346
+1.7065 0.00260728
+1.707 0.00279274
+1.7075 0.00295915
+1.708 0.0031059
+1.7085 0.00323254
+1.709 0.00333865
+1.7095 0.00342401
+1.71 0.00348852
+1.7105 0.00353213
+1.711 0.00355501
+1.7115 0.00355737
+1.712 0.00353956
+1.7125 0.00350205
+1.713 0.00344537
+1.7135 0.00337022
+1.714 0.00327733
+1.7145 0.00316754
+1.715 0.00304176
+1.7155 0.00290102
+1.716 0.00274636
+1.7165 0.00257887
+1.717 0.0023998
+1.7175 0.00221035
+1.718 0.0020117
+1.7185 0.00180524
+1.719 0.00159225
+1.7195 0.00137404
+1.72 0.0011519
+1.7205 0.000927272
+1.721 0.000701385
+1.7215 0.00047552
+1.722 0.000251046
+1.7225 2.91893e-05
+1.723 -0.000188927
+1.7235 -0.000402025
+1.724 -0.000609027
+1.7245 -0.000808851
+1.725 -0.00100057
+1.7255 -0.00118314
+1.726 -0.00135574
+1.7265 -0.00151759
+1.727 -0.00166791
+1.7275 -0.00180607
+1.728 -0.00193156
+1.7285 -0.00204382
+1.729 -0.0021425
+1.7295 -0.00222728
+1.73 -0.0022979
+1.7305 -0.00235424
+1.731 -0.00239625
+1.7315 -0.00242393
+1.732 -0.00243738
+1.7325 -0.0024368
+1.733 -0.00242243
+1.7335 -0.00239462
+1.734 -0.00235376
+1.7345 -0.0023003
+1.735 -0.00223481
+1.7355 -0.00215786
+1.736 -0.0020701
+1.7365 -0.0019722
+1.737 -0.00186495
+1.7375 -0.00174909
+1.738 -0.00162542
+1.7385 -0.00149484
+1.739 -0.00135819
+1.7395 -0.00121632
+1.74 -0.00107018
+1.7405 -0.000920672
+1.741 -0.000768657
+1.7415 -0.000615112
+1.742 -0.000460919
+1.7425 -0.000306936
+1.743 -0.000154016
+1.7435 -3.06876e-06
+1.744 0.000145101
+1.7445 0.000289763
+1.745 0.000430088
+1.7455 0.000565389
+1.746 0.000695016
+1.7465 0.000818285
+1.747 0.000934631
+1.7475 0.00104354
+1.748 0.00114455
+1.7485 0.00123719
+1.749 0.00132109
+1.7495 0.00139598
+1.75 0.00146156
+1.7505 0.00151765
+1.751 0.0015641
+1.7515 0.00160082
+1.752 0.0016278
+1.7525 0.00164506
+1.753 0.00165268
+1.7535 0.00165079
+1.754 0.0016396
+1.7545 0.00161932
+1.755 0.00159025
+1.7555 0.00155272
+1.756 0.00150709
+1.7565 0.00145379
+1.757 0.00139325
+1.7575 0.00132594
+1.758 0.00125239
+1.7585 0.00117314
+1.759 0.00108873
+1.7595 0.000999717
+1.76 0.000906734
+1.7605 0.000810364
+1.761 0.000711199
+1.7615 0.000609903
+1.762 0.000507054
+1.7625 0.000403251
+1.763 0.000299144
+1.7635 0.000195321
+1.764 9.23221e-05
+1.7645 -9.23019e-06
+1.765 -0.000108808
+1.7655 -0.000205873
+1.766 -0.000299961
+1.7665 -0.000390545
+1.767 -0.000477198
+1.7675 -0.000559518
+1.768 -0.000637087
+1.7685 -0.000709563
+1.769 -0.000776661
+1.7695 -0.000838068
+1.77 -0.000893556
+1.7705 -0.000942918
+1.771 -0.000986009
+1.7715 -0.00102268
+1.772 -0.00105286
+1.7725 -0.0010765
+1.773 -0.00109358
+1.7735 -0.00110414
+1.774 -0.00110824
+1.7745 -0.00110598
+1.775 -0.00109749
+1.7755 -0.00108295
+1.776 -0.00106255
+1.7765 -0.00103652
+1.777 -0.00100512
+1.7775 -0.00096862
+1.778 -0.000927342
+1.7785 -0.0008816
+1.779 -0.000831732
+1.7795 -0.000778123
+1.78 -0.000721143
+1.7805 -0.000661158
+1.781 -0.000598597
+1.7815 -0.000533853
+1.782 -0.000467336
+1.7825 -0.000399443
+1.783 -0.000330622
+1.7835 -0.000261255
+1.784 -0.000191737
+1.7845 -0.000122496
+1.785 -5.39127e-05
+1.7855 1.36643e-05
+1.786 7.98362e-05
+1.7865 0.000144268
+1.787 0.000206621
+1.7875 0.000266607
+1.788 0.000323899
+1.7885 0.000378238
+1.789 0.000429382
+1.7895 0.000477082
+1.79 0.000521141
+1.7905 0.000561396
+1.791 0.000597673
+1.7915 0.00062985
+1.792 0.000657832
+1.7925 0.000681526
+1.793 0.000700895
+1.7935 0.000715909
+1.794 0.000726571
+1.7945 0.0007329
+1.795 0.000734951
+1.7955 0.000732793
+1.796 0.000726522
+1.7965 0.000716255
+1.797 0.000702125
+1.7975 0.000684297
+1.798 0.000662939
+1.7985 0.000638244
+1.799 0.000610412
+1.7995 0.000579676
+1.8 0.000546258
+1.8005 0.000510397
+1.801 0.000472359
+1.8015 0.0004324
+1.802 0.000390768
+1.8025 0.000347756
+1.803 0.000303625
+1.8035 0.00025864
+1.804 0.000213091
+1.8045 0.000167245
+1.805 0.000121358
+1.8055 7.56883e-05
+1.806 3.05086e-05
+1.8065 -1.39384e-05
+1.807 -5.74324e-05
+1.8075 -9.97231e-05
+1.808 -0.000140603
+1.8085 -0.000179876
+1.809 -0.000217334
+1.8095 -0.000252807
+1.81 -0.000286138
+1.8105 -0.000317184
+1.811 -0.000345801
+1.8115 -0.000371879
+1.812 -0.000395332
+1.8125 -0.000416065
+1.813 -0.000434021
+1.8135 -0.000449157
+1.814 -0.000461434
+1.8145 -0.000470848
+1.815 -0.000477401
+1.8155 -0.000481113
+1.816 -0.000482019
+1.8165 -0.000480173
+1.817 -0.000475638
+1.8175 -0.000468496
+1.818 -0.000458841
+1.8185 -0.000446775
+1.819 -0.000432421
+1.8195 -0.000415904
+1.82 -0.000397357
+1.8205 -0.000376935
+1.821 -0.000354791
+1.8215 -0.000331082
+1.822 -0.00030597
+1.8225 -0.000279638
+1.823 -0.000252254
+1.8235 -0.000223991
+1.824 -0.00019504
+1.8245 -0.00016557
+1.825 -0.000135756
+1.8255 -0.000105786
+1.826 -7.58303e-05
+1.8265 -4.60475e-05
+1.827 -1.66184e-05
+1.8275 1.23028e-05
+1.828 4.05593e-05
+1.8285 6.8015e-05
+1.829 9.45162e-05
+1.8295 0.000119937
+1.83 0.000144161
+1.8305 0.000167064
+1.831 0.000188545
+1.8315 0.000208521
+1.832 0.000226898
+1.8325 0.000243609
+1.833 0.000258591
+1.8335 0.0002718
+1.834 0.000283191
+1.8345 0.000292739
+1.835 0.00030043
+1.8355 0.000306253
+1.836 0.000310218
+1.8365 0.000312341
+1.837 0.000312645
+1.8375 0.000311168
+1.838 0.000307953
+1.8385 0.000303058
+1.839 0.000296543
+1.8395 0.00028848
+1.84 0.000278943
+1.8405 0.000268024
+1.841 0.000255809
+1.8415 0.000242393
+1.842 0.000227882
+1.8425 0.00021238
+1.843 0.000195991
+1.8435 0.000178834
+1.844 0.000161019
+1.8445 0.000142662
+1.845 0.000123874
+1.8455 0.000104781
+1.846 8.54898e-05
+1.8465 6.61132e-05
+1.847 4.67707e-05
+1.8475 2.75697e-05
+1.848 8.60894e-06
+1.8485 -9.9992e-06
+1.849 -2.816e-05
+1.8495 -4.57777e-05
+1.85 -6.27703e-05
+1.8505 -7.90457e-05
+1.851 -9.45297e-05
+1.8515 -0.000109154
+1.852 -0.000122847
+1.8525 -0.000135552
+1.853 -0.000147222
+1.8535 -0.000157807
+1.854 -0.000167273
+1.8545 -0.00017559
+1.855 -0.000182733
+1.8555 -0.000188686
+1.856 -0.000193441
+1.8565 -0.000196997
+1.857 -0.000199357
+1.8575 -0.000200535
+1.858 -0.000200548
+1.8585 -0.000199421
+1.859 -0.000197186
+1.8595 -0.000193877
+1.86 -0.000189537
+1.8605 -0.000184212
+1.861 -0.000177954
+1.8615 -0.000170816
+1.862 -0.000162861
+1.8625 -0.000154151
+1.863 -0.000144748
+1.8635 -0.000134726
+1.864 -0.000124152
+1.8645 -0.000113095
+1.865 -0.000101635
+1.8655 -8.98416e-05
+1.866 -7.77878e-05
+1.8665 -6.55524e-05
+1.867 -5.32067e-05
+1.8675 -4.08257e-05
+1.868 -2.8471e-05
+1.8685 -1.62269e-05
+1.869 -4.15112e-06
+1.8695 7.69111e-06
+1.87 1.92326e-05
+1.8705 3.04165e-05
+1.871 4.11889e-05
+1.8715 5.14929e-05
+1.872 6.12822e-05
+1.8725 7.051e-05
+1.873 7.91416e-05
+1.8735 8.71353e-05
+1.874 9.44609e-05
+1.8745 0.000101092
+1.875 0.000107004
+1.8755 0.00011218
+1.876 0.000116607
+1.8765 0.000120274
+1.877 0.000123178
+1.8775 0.000125318
+1.878 0.000126699
+1.8785 0.00012733
+1.879 0.000127223
+1.8795 0.000126395
+1.88 0.000124867
+1.8805 0.000122661
+1.881 0.000119806
+1.8815 0.000116332
+1.882 0.000112273
+1.8825 0.000107661
+1.883 0.000102541
+1.8835 9.69478e-05
+1.884 9.0926e-05
+1.8845 8.45172e-05
+1.885 7.77691e-05
+1.8855 7.07265e-05
+1.886 6.34342e-05
+1.8865 5.59424e-05
+1.887 4.82981e-05
+1.8875 4.05437e-05
+1.888 3.27304e-05
+1.8885 2.49024e-05
+1.889 1.71032e-05
+1.8895 9.37968e-06
+1.89 1.77265e-06
+1.8905 -5.67709e-06
+1.891 -1.2932e-05
+1.8915 -1.9952e-05
+1.892 -2.67025e-05
+1.8925 -3.31548e-05
+1.893 -3.92749e-05
+1.8935 -4.50365e-05
+1.894 -5.04156e-05
+1.8945 -5.53879e-05
+1.895 -5.99352e-05
+1.8955 -6.40408e-05
+1.896 -6.76919e-05
+1.8965 -7.08762e-05
+1.897 -7.35861e-05
+1.8975 -7.58183e-05
+1.898 -7.75691e-05
+1.8985 -7.88397e-05
+1.899 -7.96335e-05
+1.8995 -7.99564e-05
+1.9 -7.98172e-05
+1.9005 -7.92267e-05
+1.901 -7.81986e-05
+1.9015 -7.67485e-05
+1.902 -7.4894e-05
+1.9025 -7.26541e-05
+1.903 -7.00511e-05
+1.9035 -6.71076e-05
+1.904 -6.38472e-05
+1.9045 -6.02969e-05
+1.905 -5.64828e-05
+1.9055 -5.24317e-05
+1.906 -4.81737e-05
+1.9065 -4.37376e-05
+1.907 -3.91513e-05
+1.9075 -3.44439e-05
+1.908 -2.96471e-05
+1.9085 -2.47891e-05
+1.909 -1.98981e-05
+1.9095 -1.50047e-05
+1.91 -1.01359e-05
+1.9105 -5.31799e-06
+1.911 -5.79145e-07
+1.9115 4.05536e-06
+1.912 8.56329e-06
+1.9125 1.29217e-05
+1.913 1.71074e-05
+1.9135 2.11013e-05
+1.914 2.48856e-05
+1.9145 2.8442e-05
+1.915 3.1756e-05
+1.9155 3.48149e-05
+1.916 3.76052e-05
+1.9165 4.01187e-05
+1.917 4.23474e-05
+1.9175 4.4284e-05
+1.918 4.59245e-05
+1.9185 4.72662e-05
+1.919 4.83086e-05
+1.9195 4.90519e-05
+1.92 4.94991e-05
+1.9205 4.96542e-05
+1.921 4.95229e-05
+1.9215 4.91127e-05
+1.922 4.8432e-05
+1.9225 4.74911e-05
+1.923 4.63011e-05
+1.9235 4.48746e-05
+1.924 4.32248e-05
+1.9245 4.13667e-05
+1.925 3.93155e-05
+1.9255 3.70868e-05
+1.926 3.46986e-05
+1.9265 3.21671e-05
+1.927 2.95098e-05
+1.9275 2.67458e-05
+1.928 2.38928e-05
+1.9285 2.09685e-05
+1.929 1.79924e-05
+1.9295 1.49822e-05
+1.93 1.19563e-05
+1.9305 8.93009e-06
+1.931 5.92437e-06
+1.9315 2.95345e-06
+1.932 3.35029e-08
+1.9325 -2.8188e-06
+1.933 -5.58933e-06
+1.9335 -8.26467e-06
+1.934 -1.08307e-05
+1.9345 -1.32758e-05
+1.935 -1.55883e-05
+1.9355 -1.77594e-05
+1.936 -1.97788e-05
+1.9365 -2.16387e-05
+1.937 -2.33327e-05
+1.9375 -2.48541e-05
+1.938 -2.61987e-05
+1.9385 -2.7363e-05
+1.939 -2.83441e-05
+1.9395 -2.9141e-05
+1.94 -2.97534e-05
+1.9405 -3.01817e-05
+1.941 -3.04283e-05
+1.9415 -3.04957e-05
+1.942 -3.03877e-05
+1.9425 -3.0109e-05
+1.943 -2.96653e-05
+1.9435 -2.90626e-05
+1.944 -2.83084e-05
+1.9445 -2.74107e-05
+1.945 -2.63771e-05
+1.9455 -2.52179e-05
+1.946 -2.39418e-05
+1.9465 -2.2559e-05
+1.947 -2.10797e-05
+1.9475 -1.95152e-05
+1.948 -1.7876e-05
+1.9485 -1.61729e-05
+1.949 -1.44179e-05
+1.9495 -1.26222e-05
+1.95 -1.07959e-05
+1.9505 -8.95136e-06
+1.951 -7.09906e-06
+1.9515 -5.24942e-06
+1.952 -3.4137e-06
+1.9525 -1.60169e-06
+1.953 1.76813e-07
+1.9535 1.91279e-06
+1.954 3.59662e-06
+1.9545 5.21993e-06
+1.955 6.77584e-06
+1.9555 8.2561e-06
+1.956 9.65433e-06
+1.9565 1.09648e-05
+1.957 1.21814e-05
+1.9575 1.32999e-05
+1.958 1.4316e-05
+1.9585 1.52266e-05
+1.959 1.60287e-05
+1.9595 1.67201e-05
+1.96 1.73001e-05
+1.9605 1.77676e-05
+1.961 1.81226e-05
+1.9615 1.83659e-05
+1.962 1.84986e-05
+1.9625 1.85226e-05
+1.963 1.84404e-05
+1.9635 1.82549e-05
+1.964 1.79698e-05
+1.9645 1.7589e-05
+1.965 1.71167e-05
+1.9655 1.65582e-05
+1.966 1.59186e-05
+1.9665 1.52032e-05
+1.967 1.44184e-05
+1.9675 1.357e-05
+1.968 1.26642e-05
+1.9685 1.17081e-05
+1.969 1.07082e-05
+1.9695 9.67102e-06
+1.97 8.60324e-06
+1.9705 7.51217e-06
+1.971 6.40439e-06
+1.9715 5.2864e-06
+1.972 4.1653e-06
+1.9725 3.04734e-06
+1.973 1.93862e-06
+1.9735 8.45705e-07
+1.974 -2.25546e-07
+1.9745 -1.26996e-06
+1.975 -2.28218e-06
+1.9755 -3.25681e-06
+1.976 -4.18937e-06
+1.9765 -5.07572e-06
+1.977 -5.91155e-06
+1.9775 -6.69348e-06
+1.978 -7.41846e-06
+1.9785 -8.0833e-06
+1.979 -8.68609e-06
+1.9795 -9.22484e-06
+1.98 -9.69779e-06
+1.9805 -1.01039e-05
+1.981 -1.04426e-05
+1.9815 -1.07135e-05
+1.982 -1.09166e-05
+1.9825 -1.10524e-05
+1.983 -1.11219e-05
+1.9835 -1.11262e-05
+1.984 -1.10668e-05
+1.9845 -1.09457e-05
+1.985 -1.07651e-05
+1.9855 -1.05275e-05
+1.986 -1.02355e-05
+1.9865 -9.89205e-06
+1.987 -9.5006e-06
+1.9875 -9.06445e-06
+1.988 -8.58707e-06
+1.9885 -8.07249e-06
+1.989 -7.5243e-06
+1.9895 -6.94641e-06
+1.99 -6.34309e-06
+1.9905 -5.7183e-06
+1.991 -5.07601e-06
+1.9915 -4.42057e-06
+1.992 -3.75593e-06
+1.9925 -3.08625e-06
+1.993 -2.41497e-06
+1.9935 -1.74674e-06
+1.994 -1.08481e-06
+1.9945 -4.32789e-07
+1.995 2.0556e-07
+1.9955 8.27053e-07
+1.996 1.42867e-06
+1.9965 2.0072e-06
+1.997 2.56005e-06
+1.9975 3.08454e-06
+1.998 3.57871e-06
+1.9985 4.04017e-06
+1.999 4.46717e-06
+1.9995 4.85819e-06
+2 5.21174e-06
+&
index fd5b51bbb2d0cc2ea2684d9e2b4b57be48c8d928..87c9ddbfc7f5e0b22f2d166eb145c439013b3dec 100644 (file)
@@ -1048,6 +1048,58 @@ rotation, torques $\ve{\tau}_{\!n}$ are calculated for each slab using the
 local rotation axis of the slab and the Gaussian-weighted positions.
 
 
+\section{\normindex{Electric fields}}
+A pulsed and oscillating electric field can be applied according to:
+\begin{equation}
+E(t) = E_0 \exp\left[-\frac{(t-t_0)^2}{2\sigma^2}\right]\cos\left[\omega (t-t_0)\right]
+\label{eq_efield}
+\end{equation}
+where $E_0$ is the field strength, the angular frequency \mbox{$\omega = 2\pi c/\lambda$}, $t_0$ is
+the time at of the peak in the field strength and $\sigma$ is the with
+of the pulse. Special cases occur when $\sigma$ = 0 (non-pulsed field)
+and for $\omega$ is 0 (static field).
+
+This simulated \normindex{laser}-pulse was applied to
+simulations of melting ice~\cite{Caleman2008a}. A pulsed electric field may
+look ike Fig.~\ref{fig:field}. In the supporting
+information of that paper the impact of an applied electric field on a
+system under periodic boundary conditions is analyzed. It is described
+that the effective electric field under PBC is larger than the applied
+field, by a factor depending on the size of the box and the dielectric
+properties of molecules in the box. For a system with static dielectric
+properties this factor can be corrected for. But for a system where
+the dielectric varies over time, for example a membrane protein with
+a pore that opens and closes during the simulatippn, this way of applying
+an electric field is not useful. In such cases one can use the computational
+electrophysiology protocol described in the next section (\secref{compel}).
+\begin{figure}[ht]
+\centerline{\includegraphics[width=8cm]{plots/field}}
+\caption {A simulated laser pulse in GROMACS.}
+\label{fig:field}
+\end{figure}
+
+Electric fields are applied when the following options are specified
+in the {\tt grompp.mdp} file. You specify, in order, $E_0$, $\omega$,
+$t_0$ and $\sigma$:
+\begin{verbatim}
+ElectricField-x = 0.04 0       0     0
+\end{verbatim}
+yields a static field with $E_0$ = 0.04 V/nm in the X-direction. In contrast,
+\begin{verbatim}
+ElectricField-x = 2.0  150     5     0
+\end{verbatim}
+yields an oscillating electric field with $E_0$ = 2 V/nm, $\omega$ = 150/ps and
+$t_0$ = 5 ps. Finally 
+\begin{verbatim}
+ElectricField-x = 2.0  150     5     1
+\end{verbatim}
+yields an pulsed-oscillating electric field with $E_0$ = 2 V/nm, $\omega$ = 150/ps and
+$t_0$ = 5 ps and $\sigma$ = 1 ps. Read more in ref.~\cite{Caleman2008a}.
+Note that the input file format is changed from the undocumented older
+version. A figure like Fig.~\ref{fig:field} may be produced by passing
+the {\tt -field} option to {\tt gmx mdrun}.
+
+
 \section{\normindex{Computational Electrophysiology}}
 \label{sec:compel}
 
index b7d9bf47da46e371f6dfbcddc33fe1a390d1d174..acbd7ad9697d6087673abe06f3113a79552648e3 100644 (file)
@@ -71,6 +71,7 @@ endfunction()
 
 add_subdirectory(gmxlib)
 add_subdirectory(mdlib)
+add_subdirectory(applied-forces)
 add_subdirectory(listed-forces)
 add_subdirectory(commandline)
 add_subdirectory(domdec)
diff --git a/src/gromacs/applied-forces/CMakeLists.txt b/src/gromacs/applied-forces/CMakeLists.txt
new file mode 100644 (file)
index 0000000..702e776
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2015,2016, by the GROMACS development team, led by
+# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+# and including many others, as listed in the AUTHORS file in the
+# top-level source directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org.
+
+gmx_add_libgromacs_sources(
+    electricfield.cpp
+    )
+
+if (BUILD_TESTING)
+    add_subdirectory(tests)
+endif()
diff --git a/src/gromacs/applied-forces/electricfield.cpp b/src/gromacs/applied-forces/electricfield.cpp
new file mode 100644 (file)
index 0000000..a6a909b
--- /dev/null
@@ -0,0 +1,563 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2015,2016, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+/*! \internal \file
+ * \brief
+ * Declares data structure and utilities for electric fields
+ *
+ * \author David van der Spoel <david.vanderspoel@icm.uu.se>
+ * \ingroup module_applied_forces
+ */
+#include "gmxpre.h"
+
+#include "electricfield.h"
+
+#include <cmath>
+
+#include "gromacs/commandline/filenm.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/gmxfio-xdr.h"
+#include "gromacs/fileio/readinp.h"
+#include "gromacs/fileio/warninp.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/gmxlib/network.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/mdtypes/commrec.h"
+#include "gromacs/mdtypes/forcerec.h"
+#include "gromacs/mdtypes/inputrec.h"
+#include "gromacs/mdtypes/mdatom.h"
+#include "gromacs/utility/compare.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/pleasecite.h"
+#include "gromacs/utility/strconvert.h"
+#include "gromacs/utility/stringutil.h"
+#include "gromacs/utility/txtdump.h"
+
+namespace gmx
+{
+
+namespace
+{
+
+/*! \internal
+ * \brief Declaration of storage unit for fields
+ */
+class ElectricFieldData
+{
+    public:
+        ElectricFieldData() : a_(0), omega_(0), t0_(0), sigma_(0)
+        {
+        }
+
+        /*! \brief Evaluates this field component at given time.
+         *
+         * \param[in] t The time to evualate at
+         * \return The electric field
+         */
+        real evaluate(real t) const
+        {
+            if (sigma_ > 0)
+            {
+                return a_ * (std::cos(omega_*(t-t0_))
+                             * std::exp(-square(t-t0_)/(2.0*square(sigma_))));
+            }
+            else
+            {
+                return a_ * std::cos(omega_*t);
+            }
+        }
+
+        /*! \brief Initiate the field values
+         *
+         * \param[in] a     Amplitude
+         * \param[in] omega Frequency
+         * \param[in] t0    Peak of the pulse
+         * \param[in] sigma Width of the pulse
+         */
+        void setField(real a, real omega, real t0, real sigma)
+        {
+            a_     = a;
+            omega_ = omega;
+            t0_    = t0;
+            sigma_ = sigma;
+        }
+
+        //! Return the amplitude
+        real a()     const { return a_; }
+        //! Return the frequency
+        real omega() const { return omega_; }
+        //! Return the time for the peak of the pulse
+        real t0()    const { return t0_; }
+        //! Return the width of the pulse (0 means inifinite)
+        real sigma() const { return sigma_; }
+
+    private:
+        //! Coeffient (V / nm)
+        real a_;
+        //! Frequency (1/ps)
+        real omega_;
+        //! Central time point (ps) for pulse
+        real t0_;
+        //! Width of pulse (ps, if zero there is no pulse)
+        real sigma_;
+};
+
+/*! \internal
+ * \brief Describe time dependent electric field
+ *
+ * Class that implements a force to be evaluated in mdrun.
+ * The electric field can be pulsed and oscillating, simply
+ * oscillating, or static, in each of X,Y,Z directions.
+ */
+class ElectricField : public IInputRecExtension, public IForceProvider
+{
+    public:
+        ElectricField() : fpField_(nullptr) {}
+
+        // From IInputRecExtension
+        virtual void doTpxIO(t_fileio *fio, bool bRead);
+        virtual void readMdp(int *ninp_p, t_inpfile **inp_p, warninp *wi);
+        virtual void broadCast(const t_commrec *cr);
+        virtual void compare(FILE                     *fp,
+                             const IInputRecExtension *field2,
+                             real                      reltol,
+                             real                      abstol);
+        virtual void printParameters(FILE *fp, int indent);
+        virtual void initOutput(FILE *fplog, int nfile, const t_filenm fnm[],
+                                bool bAppendFiles, const gmx_output_env_t *oenv);
+        virtual void finishOutput();
+        virtual void initForcerec(t_forcerec *fr);
+
+        // From IForceProvider
+        virtual void calculateForces(const t_commrec  *cr,
+                                     const t_mdatoms  *atoms,
+                                     PaddedRVecVector *force,
+                                     double            t);
+
+    private:
+        /*! \brief Extract relevant fields from an mdp file
+         *
+         * \todo Remove this when new tests are in place.
+         * \param[in] dim          The direction XX, YY, or ZZ
+         * \param[in] staticField  Static components of the field
+         * \param[in] dynamicField Dynamic components of the field
+         * \param[in] wi           Warning control structure
+         */
+        void decodeMdp(int         dim,
+                       const char *staticField,
+                       const char *dynamicField,
+                       warninp    *wi);
+
+        //! Return whether or not to apply a field
+        bool isActive() const;
+
+        /*! \brief Add a component to the electric field
+         *
+         * The electric field has three spatial dimensions that are
+         * added to the data structure one at a time.
+         * \param[in] dim   Dimension, XX, YY, ZZ (0, 1, 2)
+         * \param[in] a     Amplitude of the field in V/nm
+         * \param[in] omega Frequency (1/ps)
+         * \param[in] t0    Time of pulse peak (ps)
+         * \param[in] sigma Width of peak (ps)
+         */
+        void setFieldTerm(int dim, real a, real omega, real t0, real sigma);
+
+        /*! \brief Return the field strength
+         *
+         * \param[in] dim The spatial direction
+         * \param[in] t   The time (ps)
+         * \return The field strength in V/nm units
+         */
+        real field(int dim, real t) const;
+
+        /*! \brief Return amplitude of field
+         *
+         * \param[in] dim Direction of the field (XX, YY, ZZ)
+         * \return Amplitude of the field
+         */
+        real a(int dim)     const { return efield_[dim].a(); }
+        /*! \brief Return frequency of field (1/ps)
+         *
+         * \param[in] dim Direction of the field (XX, YY, ZZ)
+         * \return Frequency of the field
+         */
+        real omega(int dim) const { return efield_[dim].omega(); }
+        /*! \brief Return time of pulse peak
+         *
+         * \param[in] dim Direction of the field (XX, YY, ZZ)
+         * \return Time of pulse peak
+         */
+        real t0(int dim) const { return efield_[dim].t0(); }
+        /*! \brief Return width of the pulse
+         *
+         * \param[in] dim Direction of the field (XX, YY, ZZ)
+         * \return Width of the pulse
+         */
+        real sigma(int dim) const { return efield_[dim].sigma(); }
+
+        /*! \brief Print the field components to a file
+         *
+         * \param[in] t   The time
+         * Will throw and exit with fatal error if file is not open.
+         */
+        void printComponents(double t) const;
+
+        //! The field strength in each dimension
+        ElectricFieldData efield_[DIM];
+        //! File pointer for electric field
+        FILE             *fpField_;
+};
+
+void ElectricField::doTpxIO(t_fileio *fio, bool bRead)
+{
+    // The content of the tpr file for this feature has
+    // been the same since gromacs 4.0 that was used for
+    // developing.
+    for (int j = 0; (j < DIM); j++)
+    {
+        int n = 0, nt = 0;
+        if (!bRead)
+        {
+            n = 1;
+            if (omega(j) != 0 || sigma(j) != 0 || t0(j) != 0)
+            {
+                nt = 1;
+            }
+        }
+        gmx_fio_do_int(fio, n);
+        gmx_fio_do_int(fio, nt);
+        std::vector<real> aa, phi, at, phit;
+        if (!bRead)
+        {
+            aa.push_back(a(j));
+            phi.push_back(t0(j));
+            at.push_back(omega(j));
+            phit.push_back(sigma(j));
+        }
+        else
+        {
+            aa.resize(n+1);
+            phi.resize(nt+1);
+            at.resize(nt+1);
+            phit.resize(nt+1);
+        }
+        gmx_fio_ndo_real(fio, aa.data(),  n);
+        gmx_fio_ndo_real(fio, phi.data(), n);
+        gmx_fio_ndo_real(fio, at.data(),  nt);
+        gmx_fio_ndo_real(fio, phit.data(), nt);
+        if (bRead && n > 0)
+        {
+            setFieldTerm(j, aa[0], at[0], phi[0], phit[0]);
+            if (n > 1 || nt > 1)
+            {
+                gmx_fatal(FARGS, "Can not handle tpr files with more than one electric field term per direction.");
+            }
+        }
+    }
+}
+
+void ElectricField::readMdp(int *ninp_p, t_inpfile **inp_p, warninp_t wi)
+{
+    // Old style MDP. Will be removed later.
+    char        efield_x[STRLEN], efield_xt[STRLEN], efield_y[STRLEN],
+                efield_yt[STRLEN], efield_z[STRLEN], efield_zt[STRLEN];
+    efield_x[0]  = '\0';
+    efield_xt[0] = '\0';
+    efield_y[0]  = '\0';
+    efield_yt[0] = '\0';
+    efield_z[0]  = '\0';
+    efield_zt[0] = '\0';
+
+    const char *tmp;
+    int         ninp = *ninp_p;
+    t_inpfile  *inp  = *inp_p;
+
+    CCTYPE("Electric fields");
+    // Old style inputs for backward compatibility
+    STYPE ("E-x",     efield_x,   NULL);
+    STYPE ("E-xt",    efield_xt,  NULL);
+    STYPE ("E-y",     efield_y,   NULL);
+    STYPE ("E-yt",    efield_yt,  NULL);
+    STYPE ("E-z",     efield_z,   NULL);
+    STYPE ("E-zt",    efield_zt,  NULL);
+
+    *ninp_p = ninp;
+    *inp_p  = inp;
+
+    // Extract mdp parameters
+    decodeMdp(XX, efield_x, efield_xt, wi);
+    decodeMdp(YY, efield_y, efield_yt, wi);
+    decodeMdp(ZZ, efield_z, efield_zt, wi);
+}
+
+void ElectricField::decodeMdp(int         dim,
+                              const char *staticField,
+                              const char *dynamicField,
+                              warninp_t   wi)
+{
+    char warn_buf[STRLEN];
+    // TODO: Better context for the exceptions from the converters (possibly
+    // also convert them to warning_errors).
+    std::vector<std::string> sx  = splitString(staticField);
+    if (sx.empty())
+    {
+        return;
+    }
+    // Old style for backwards compatibility
+    int   n  = fromString<int>(sx[0]);
+    if (n <= 0)
+    {
+        return;
+    }
+    if (n != 1)
+    {
+        sprintf(warn_buf, "Only one electric field term supported for each dimension");
+        warning_error(wi, warn_buf);
+    }
+    if (sx.size() != 3)
+    {
+        sprintf(warn_buf, "Expected exactly one electric field amplitude value");
+        warning_error(wi, warn_buf);
+    }
+    real                     E0 = fromString<real>(sx[1]);
+
+    std::vector<std::string> sxt = splitString(dynamicField);
+    if (!sxt.empty())
+    {
+        real  omega = 0, t0 = 0, sigma = 0;
+        int   n     = fromString<int>(sxt[0]);
+        switch (n)
+        {
+            case 1:
+                if (sxt.size() != 3)
+                {
+                    sprintf(warn_buf, "Please specify 1 omega 0 for non-pulsed fields");
+                    warning_error(wi, warn_buf);
+                }
+                omega = fromString<real>(sxt[1]);
+                break;
+            case 3:
+                if (sxt.size() != 7)
+                {
+                    sprintf(warn_buf, "Please specify 1 omega 0 t0 0 sigma 0 for pulsed fields");
+                    warning_error(wi, warn_buf);
+                }
+                omega = fromString<real>(sxt[1]);
+                t0    = fromString<real>(sxt[3]);
+                sigma = fromString<real>(sxt[5]);
+                break;
+            default:
+                sprintf(warn_buf, "Incomprehensible input for electric field");
+                warning_error(wi, warn_buf);
+        }
+        setFieldTerm(dim, E0, omega, t0, sigma);
+    }
+    else
+    {
+        setFieldTerm(dim, E0, 0, 0, 0);
+    }
+}
+
+void ElectricField::broadCast(const t_commrec *cr)
+{
+    rvec a1, omega1, sigma1, t01;
+
+    if (MASTER(cr))
+    {
+        // Load the parameters read from tpr into temp vectors
+        for (int m = 0; m < DIM; m++)
+        {
+            a1[m]     = a(m);
+            omega1[m] = omega(m);
+            sigma1[m] = sigma(m);
+            t01[m]    = t0(m);
+        }
+    }
+    // Broadcasting the parameters
+    gmx_bcast(DIM*sizeof(a1[0]), a1, cr);
+    gmx_bcast(DIM*sizeof(omega1[0]), omega1, cr);
+    gmx_bcast(DIM*sizeof(t01[0]), t01, cr);
+    gmx_bcast(DIM*sizeof(sigma1[0]), sigma1, cr);
+
+    // And storing them locally
+    if (!MASTER(cr))
+    {
+        for (int m = 0; m < DIM; m++)
+        {
+            setFieldTerm(m, a1[m], omega1[m], t01[m], sigma1[m]);
+        }
+    }
+}
+
+void ElectricField::initOutput(FILE *fplog, int nfile, const t_filenm fnm[],
+                               bool bAppendFiles, const gmx_output_env_t *oenv)
+{
+    if (isActive())
+    {
+        please_cite(fplog, "Caleman2008a");
+
+        // Optional outpuf file showing the field, see manual.
+        if (opt2bSet("-field", nfile, fnm))
+        {
+            if (bAppendFiles)
+            {
+                fpField_ = gmx_fio_fopen(opt2fn("-field", nfile, fnm), "a+");
+            }
+            else
+            {
+                fpField_ = xvgropen(opt2fn("-field", nfile, fnm),
+                                    "Applied electric field", "Time (ps)",
+                                    "E (V/nm)", oenv);
+            }
+        }
+    }
+}
+
+void ElectricField::finishOutput()
+{
+    if (fpField_ != nullptr)
+    {
+        // This is opened sometimes with xvgropen, sometimes with
+        // gmx_fio_fopen, so we use the least common denominator for closing.
+        gmx_fio_fclose(fpField_);
+        fpField_ = nullptr;
+    }
+}
+
+void ElectricField::initForcerec(t_forcerec *fr)
+{
+    if (isActive())
+    {
+        fr->bF_NoVirSum = TRUE;
+        fr->efield      = this;
+    }
+}
+
+void ElectricField::printParameters(FILE *fp, int indent)
+{
+    const char *const dimension[DIM] = { "X", "Y", "Z" };
+    indent = pr_title(fp, indent, "ElectricField");
+    for (int m = 0; m < DIM; m++)
+    {
+        pr_indent(fp, indent);
+        fprintf(fp, "-%s E0 = %g omega = %g t0 = %g sigma = %g\n",
+                dimension[m], a(m), omega(m), t0(m), sigma(m));
+    }
+}
+
+void ElectricField::setFieldTerm(int dim, real a, real omega, real t0, real sigma)
+{
+    range_check(dim, 0, DIM);
+    efield_[dim].setField(a, omega, t0, sigma);
+}
+
+real ElectricField::field(int dim, real t) const
+{
+    return efield_[dim].evaluate(t);
+}
+
+bool ElectricField::isActive() const
+{
+    return (efield_[XX].a() != 0 ||
+            efield_[YY].a() != 0 ||
+            efield_[ZZ].a() != 0);
+}
+
+void ElectricField::compare(FILE                     *fp,
+                            const IInputRecExtension *other,
+                            real                      reltol,
+                            real                      abstol)
+{
+    GMX_ASSERT(dynamic_cast<const ElectricField *>(other) != nullptr,
+               "Invalid other type");
+    const ElectricField *f2 = static_cast<const ElectricField *>(other);
+    for (int m = 0; (m < DIM); m++)
+    {
+        char buf[256];
+
+        sprintf(buf, "inputrec->field[%d]", m);
+        cmp_real(fp, buf, -1, a(m), f2->a(m), reltol, abstol);
+        cmp_real(fp, buf, -1, omega(m), f2->omega(m), reltol, abstol);
+        cmp_real(fp, buf, -1, t0(m), f2->t0(m), reltol, abstol);
+        cmp_real(fp, buf, -1, sigma(m), f2->sigma(m), reltol, abstol);
+    }
+}
+
+void ElectricField::printComponents(double t) const
+{
+    fprintf(fpField_, "%10g  %10g  %10g  %10g\n", t,
+            field(XX, t), field(YY, t), field(ZZ, t));
+}
+
+void ElectricField::calculateForces(const t_commrec  *cr,
+                                    const t_mdatoms  *mdatoms,
+                                    PaddedRVecVector *force,
+                                    double            t)
+{
+    if (isActive())
+    {
+        rvec *f = as_rvec_array(force->data());
+
+        for (int m = 0; (m < DIM); m++)
+        {
+            real Ext = FIELDFAC*field(m, t);
+
+            if (Ext != 0)
+            {
+                // TODO: Check parallellism
+                for (int i = 0; i < mdatoms->homenr; ++i)
+                {
+                    // NOTE: Not correct with perturbed charges
+                    f[i][m] += mdatoms->chargeA[i]*Ext;
+                }
+            }
+        }
+        if (MASTER(cr) && fpField_ != nullptr)
+        {
+            printComponents(t);
+        }
+    }
+}
+
+}   // namespace
+
+std::unique_ptr<IInputRecExtension> createElectricFieldModule()
+{
+    return std::unique_ptr<IInputRecExtension>(new ElectricField());
+}
+
+} // namespace gmx
diff --git a/src/gromacs/applied-forces/electricfield.h b/src/gromacs/applied-forces/electricfield.h
new file mode 100644 (file)
index 0000000..9f1cce8
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2015,2016, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+#ifndef GMX_APPLIED_FORCES_ELECTRICFIELD_H
+#define GMX_APPLIED_FORCES_ELECTRICFIELD_H
+
+#include <memory>
+
+namespace gmx
+{
+
+class IInputRecExtension;
+
+/*! \brief
+ * Creates a module for an external electric field.
+ *
+ * The returned class describes the time dependent electric field that can
+ * be applied to all charges in a simulation. The field is described
+ * by the following:
+ *     E(t) = A cos(omega*(t-t0))*exp(-sqr(t-t0)/(2.0*sqr(sigma)));
+ * If sigma = 0 there is no pulse and we have instead
+ *     E(t) = A cos(omega*t)
+ *
+ * force is kJ mol^-1 nm^-1 = e * kJ mol^-1 nm^-1 / e
+ *
+ * WARNING:
+ * There can be problems with the virial.
+ * Since the field is not self-consistent this is unavoidable.
+ * For neutral molecules the virial is correct within this approximation.
+ * For neutral systems with many charged molecules the error is small.
+ * But for systems with a net charge or a few charged molecules
+ * the error can be significant when the field is high.
+ * Solution: implement a self-consistent electric field into PME.
+ */
+std::unique_ptr<IInputRecExtension> createElectricFieldModule();
+
+} // namespace gmx
+
+#endif
diff --git a/src/gromacs/applied-forces/tests/CMakeLists.txt b/src/gromacs/applied-forces/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3788986
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2015,2016, by the GROMACS development team, led by
+# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+# and including many others, as listed in the AUTHORS file in the
+# top-level source directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org.
+
+gmx_add_unit_test(AppliedForcesUnitTest applied-forces-test
+                  electricfield.cpp
+                )
diff --git a/src/gromacs/applied-forces/tests/electricfield.cpp b/src/gromacs/applied-forces/tests/electricfield.cpp
new file mode 100644 (file)
index 0000000..ea99b90
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2015,2016, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+/*! \internal \file
+ * \brief
+ * Tests for functionality of the "angle" trajectory analysis module.
+ *
+ * \author David van der Spoel <david.vanderspoel@icm.uu.se>
+ * \ingroup module_applied_forces
+ */
+#include "gmxpre.h"
+
+#include "gromacs/applied-forces/electricfield.h"
+
+#include <gtest/gtest.h>
+
+#include "gromacs/fileio/readinp.h"
+#include "gromacs/fileio/warninp.h"
+#include "gromacs/gmxlib/network.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/mdlib/forcerec.h"
+#include "gromacs/mdrunutility/mdmodules.h"
+#include "gromacs/mdtypes/forcerec.h"
+#include "gromacs/mdtypes/inputrec.h"
+#include "gromacs/mdtypes/mdatom.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/real.h"
+#include "gromacs/utility/smalloc.h"
+
+#include "testutils/testasserts.h"
+
+namespace
+{
+
+/********************************************************************
+ * ElectricFieldTest
+ */
+
+class ElectricFieldTest : public ::testing::Test
+{
+    public:
+        ElectricFieldTest() {}
+
+        void test(int  dim,
+                  real E0,
+                  real omega,
+                  real t0,
+                  real sigma,
+                  real expectedValue)
+        {
+            gmx::test::FloatingPointTolerance tolerance(
+                    gmx::test::relativeToleranceAsFloatingPoint(1.0, 0.005));
+            gmx::MDModules                    module;
+            t_inputrec *inputrec = module.inputrec();
+            // Prepare MDP inputs
+            int         ninp = 0;
+            t_inpfile  *inp  = NULL;
+            char        name[128];
+            char        value[128];
+            const char *dimXYZ[3] = { "X", "Y", "Z" };
+            GMX_RELEASE_ASSERT((dim >= 0 && dim < 3), "Dimension should be 0, 1 or 2");
+            t_inpfile   tmp;
+            tmp.bObsolete = FALSE;
+            tmp.bSet      = TRUE;
+            tmp.inp_count = 0;
+            tmp.count     = 0;
+            tmp.name      = NULL;
+            tmp.value     = NULL;
+
+            ninp = 2;
+            snew(inp, ninp);
+            inp[0] = tmp;
+            snprintf(name, sizeof(name), "E%s", dimXYZ[dim]);
+            snprintf(value, sizeof(value), "1 %g 0", E0);
+            inp[0].name      = gmx_strdup(name);
+            inp[0].value     = gmx_strdup(value);
+
+            inp[1]       = tmp;
+            inp[1].count = 1;
+            snprintf(name, sizeof(name), "E%s-t", dimXYZ[dim]);
+            snprintf(value, sizeof(value), "3 %g 0 %g 0 %g 0", omega, t0, sigma);
+            inp[1].name      = gmx_strdup(name);
+            inp[1].value     = gmx_strdup(value);
+
+            warninp_t  wi = init_warning(TRUE, 0);
+
+            inputrec->efield->readMdp(&ninp, &inp, wi);
+            t_mdatoms        md;
+            PaddedRVecVector f = { { 0, 0, 0 } };
+            md.homenr = 1;
+            snew(md.chargeA, md.homenr);
+            md.chargeA[0] = 1;
+
+            t_commrec  *cr       = init_commrec();
+            t_forcerec *forcerec = mk_forcerec();
+            inputrec->efield->initForcerec(forcerec);
+            forcerec->efield->calculateForces(cr, &md, &f, 0);
+
+            EXPECT_REAL_EQ_TOL(f[0][dim], expectedValue, tolerance);
+            for (int i = 0; i < ninp; i++)
+            {
+                sfree(inp[i].name);
+                sfree(inp[i].value);
+            }
+            done_warning(wi, 0, "no file", 0);
+        }
+};
+
+TEST_F(ElectricFieldTest, Static)
+{
+    test(0, 1, 0, 0, 0, 96.4853363);
+}
+
+TEST_F(ElectricFieldTest, Oscillating)
+{
+    test(0, 1, 5, 0.2, 0, 96.4853363);
+}
+
+TEST_F(ElectricFieldTest, Pulsed)
+{
+    test(0, 1, 5, 0.5, 1, -68.215782);
+}
+
+} // namespace
index ead2d0d3d69cecba83fbcaa3479ba1f2285b2b77..3ebb2563b2b741579b8674394e43a75b0b7605ca 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -42,7 +42,7 @@
 #include "gromacs/fileio/warninp.h"
 #include "gromacs/utility/basedefinitions.h"
 
-typedef struct {
+typedef struct t_inpfile {
     int      count;     /* sort order for output  */
     gmx_bool bObsolete; /* whether it is an obsolete param value */
     gmx_bool bSet;      /* whether it it has been read out */
index dce979e3c4081d4b20153246637b481da79a0aad..b28ee11a7c1ffc531af8d3f13e30a82f5cf91b56 100644 (file)
@@ -1625,22 +1625,7 @@ static void do_inputrec(t_fileio *fio, t_inputrec *ir, gmx_bool bRead,
         ir->wall_ewald_zfac  = 3;
     }
     /* Cosine stuff for electric fields */
-    for (j = 0; (j < DIM); j++)
-    {
-        gmx_fio_do_int(fio, ir->ex[j].n);
-        gmx_fio_do_int(fio, ir->et[j].n);
-        if (bRead)
-        {
-            snew(ir->ex[j].a,  ir->ex[j].n);
-            snew(ir->ex[j].phi, ir->ex[j].n);
-            snew(ir->et[j].a,  ir->et[j].n);
-            snew(ir->et[j].phi, ir->et[j].n);
-        }
-        gmx_fio_ndo_real(fio, ir->ex[j].a,  ir->ex[j].n);
-        gmx_fio_ndo_real(fio, ir->ex[j].phi, ir->ex[j].n);
-        gmx_fio_ndo_real(fio, ir->et[j].a,  ir->et[j].n);
-        gmx_fio_ndo_real(fio, ir->et[j].phi, ir->et[j].n);
-    }
+    ir->efield->doTpxIO(fio, bRead);
 
     /* Swap ions */
     if (file_version >= tpxv_ComputationalElectrophysiology)
index b6f32da73b204a4d41a03a769dc709c24203a784..6f1c559f8c2938fb420e5db3c45b7a361b02a017 100644 (file)
@@ -96,8 +96,6 @@ typedef struct t_inputrec_strings
     char   QMmethod[STRLEN], QMbasis[STRLEN], QMcharge[STRLEN], QMmult[STRLEN],
            bSH[STRLEN], CASorbitals[STRLEN], CASelectrons[STRLEN], SAon[STRLEN],
            SAoff[STRLEN], SAsteps[STRLEN], bTS[STRLEN], bOPT[STRLEN];
-    char efield_x[STRLEN], efield_xt[STRLEN], efield_y[STRLEN],
-         efield_yt[STRLEN], efield_z[STRLEN], efield_zt[STRLEN];
 
 } gmx_inputrec_strings;
 
@@ -2187,18 +2185,7 @@ void get_ir(const char *mdparin, const char *mdparout,
     }
 
     /* Electric fields */
-    CCTYPE("Electric fields");
-    CTYPE ("Format is number of terms (int) and for all terms an amplitude (real)");
-    CTYPE ("and a phase angle (real)");
-    STYPE ("E-x",     is->efield_x,   NULL);
-    CTYPE ("Time dependent (pulsed) electric field. Format is omega, time for pulse");
-    CTYPE ("peak, and sigma (width) for pulse. Sigma = 0 removes pulse, leaving");
-    CTYPE ("the field to be a cosine function.");
-    STYPE ("E-xt",    is->efield_xt,  NULL);
-    STYPE ("E-y",     is->efield_y,   NULL);
-    STYPE ("E-yt",    is->efield_yt,  NULL);
-    STYPE ("E-z",     is->efield_z,   NULL);
-    STYPE ("E-zt",    is->efield_zt,  NULL);
+    ir->efield->readMdp(&ninp, &inp, wi);
 
     /* Ion/water position swapping ("computational electrophysiology") */
     CCTYPE("Ion/water position swapping for computational electrophysiology setups");
@@ -3023,54 +3010,6 @@ static void calc_nrdf(gmx_mtop_t *mtop, t_inputrec *ir, char **gnames)
     sfree(nrdf_vcm_sub);
 }
 
-static void decode_cos(char *s, t_cosines *cosine)
-{
-    char              *t;
-    char               format[STRLEN], f1[STRLEN];
-    double             a, phi;
-    int                i;
-
-    t = gmx_strdup(s);
-    trim(t);
-
-    cosine->n   = 0;
-    cosine->a   = NULL;
-    cosine->phi = NULL;
-    if (strlen(t))
-    {
-        if (sscanf(t, "%d", &(cosine->n)) != 1)
-        {
-            gmx_fatal(FARGS, "Cannot parse cosine multiplicity from string '%s'", t);
-        }
-        if (cosine->n <= 0)
-        {
-            cosine->n = 0;
-        }
-        else
-        {
-            snew(cosine->a, cosine->n);
-            snew(cosine->phi, cosine->n);
-
-            sprintf(format, "%%*d");
-            for (i = 0; (i < cosine->n); i++)
-            {
-                double  gmx_unused canary;
-
-                strcpy(f1, format);
-                strcat(f1, "%lf%lf%lf");
-                if (sscanf(t, f1, &a, &phi, &canary) != 2)
-                {
-                    gmx_fatal(FARGS, "Invalid input for electric field shift: '%s'", t);
-                }
-                cosine->a[i]   = a;
-                cosine->phi[i] = phi;
-                strcat(format, "%*lf%*lf");
-            }
-        }
-    }
-    sfree(t);
-}
-
 static gmx_bool do_egp_flag(t_inputrec *ir, gmx_groups_t *groups,
                             const char *option, const char *val, int flag)
 {
@@ -3789,13 +3728,6 @@ void do_index(const char* mdparin, const char *ndx,
         gmx_fatal(FARGS, "Can only have energy group pair tables in combination with user tables for VdW and/or Coulomb");
     }
 
-    decode_cos(is->efield_x, &(ir->ex[XX]));
-    decode_cos(is->efield_xt, &(ir->et[XX]));
-    decode_cos(is->efield_y, &(ir->ex[YY]));
-    decode_cos(is->efield_yt, &(ir->et[YY]));
-    decode_cos(is->efield_z, &(ir->ex[ZZ]));
-    decode_cos(is->efield_zt, &(ir->et[ZZ]));
-
     for (i = 0; (i < grps->nr); i++)
     {
         sfree(gnames[i]);
index 631ee3587da2a65ca8495a3a4186cb371b876bb9..e4cc11daafe4aa9d14c892ef6cbc642dc32e0294 100644 (file)
@@ -511,18 +511,6 @@ static void bc_grpopts(const t_commrec *cr, t_grpopts *g)
     }
 }
 
-static void bc_cosines(const t_commrec *cr, t_cosines *cs)
-{
-    block_bc(cr, cs->n);
-    snew_bc(cr, cs->a, cs->n);
-    snew_bc(cr, cs->phi, cs->n);
-    if (cs->n > 0)
-    {
-        nblock_bc(cr, cs->n, cs->a);
-        nblock_bc(cr, cs->n, cs->phi);
-    }
-}
-
 static void bc_pull_group(const t_commrec *cr, t_pull_group *pgrp)
 {
     block_bc(cr, *pgrp);
@@ -705,9 +693,13 @@ static void bc_swapions(const t_commrec *cr, t_swapcoords *swap)
 
 static void bc_inputrec(const t_commrec *cr, t_inputrec *inputrec)
 {
-    int      i;
-
+    /* The statement below is dangerous. It overwrites all structures in inputrec.
+     * If something is added to inputrec, like efield it will need to be
+     * treated here.
+     */
+    gmx::IInputRecExtension *eptr = inputrec->efield;
     block_bc(cr, *inputrec);
+    inputrec->efield = eptr;
 
     bc_grpopts(cr, &(inputrec->opts));
 
@@ -745,11 +737,7 @@ static void bc_inputrec(const t_commrec *cr, t_inputrec *inputrec)
         snew_bc(cr, inputrec->imd, 1);
         bc_imd(cr, inputrec->imd);
     }
-    for (i = 0; (i < DIM); i++)
-    {
-        bc_cosines(cr, &(inputrec->ex[i]));
-        bc_cosines(cr, &(inputrec->et[i]));
-    }
+    inputrec->efield->broadCast(cr);
     if (inputrec->eSwapCoords != eswapNO)
     {
         snew_bc(cr, inputrec->swap, 1);
index b582dc1ea4abb0542b416b67a0e2a81918384f1a..704561c4642f05875e7afe15dfc4c78a4b0035bc 100644 (file)
@@ -170,7 +170,7 @@ void do_force(FILE *log, t_commrec *cr,
               std::vector<real> *lambda, struct t_graph *graph,
               t_forcerec *fr,
               gmx_vsite_t *vsite, rvec mu_tot,
-              double t, FILE *field, struct gmx_edsam *ed,
+              double t, struct gmx_edsam *ed,
               gmx_bool bBornRadii,
               int flags);
 
index 327c0842e79d27e84e3c8b1750589c0ba28c5789..5c27505942141b4ba6e6a117a3d290186e71b1aa 100644 (file)
@@ -2823,9 +2823,13 @@ void init_forcerec(FILE                *fp,
 
     fr->bF_NoVirSum = (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype) ||
                        gmx_mtop_ftype_count(mtop, F_POSRES) > 0 ||
-                       gmx_mtop_ftype_count(mtop, F_FBPOSRES) > 0 ||
-                       inputrecElecField(ir)
-                       );
+                       gmx_mtop_ftype_count(mtop, F_FBPOSRES) > 0);
+
+    /* Initialization call after setting bF_NoVirSum,
+     * since it efield->initForcerec also sets this to true.
+     */
+    ir->efield->initForcerec(fr);
+
     if (fr->bF_NoVirSum)
     {
         fr->forceBufferNoVirialSummation = new PaddedRVecVector;
index 369b2a4afe125d499b2e8e402aee8532073589d8..8cebe1651d733b2079264745d2c3ea3ea894ae17 100644 (file)
@@ -70,7 +70,6 @@ struct gmx_mdoutf {
     int               elamstats;
     int               simulation_part;
     FILE             *fp_dhdl;
-    FILE             *fp_field;
     int               natoms_global;
     int               natoms_x_compressed;
     gmx_groups_t     *groups; /* for compressed position writing */
@@ -97,7 +96,6 @@ gmx_mdoutf_t init_mdoutf(FILE *fplog, int nfile, const t_filenm fnm[],
     of->tng          = NULL;
     of->tng_low_prec = NULL;
     of->fp_dhdl      = NULL;
-    of->fp_field     = NULL;
 
     of->eIntegrator             = ir->eI;
     of->bExpanded               = ir->bExpanded;
@@ -194,21 +192,7 @@ gmx_mdoutf_t init_mdoutf(FILE *fplog, int nfile, const t_filenm fnm[],
             }
         }
 
-        if (opt2bSet("-field", nfile, fnm) &&
-            (ir->ex[XX].n || ir->ex[YY].n || ir->ex[ZZ].n))
-        {
-            if (bAppendFiles)
-            {
-                of->fp_field = gmx_fio_fopen(opt2fn("-field", nfile, fnm),
-                                             filemode);
-            }
-            else
-            {
-                of->fp_field = xvgropen(opt2fn("-field", nfile, fnm),
-                                        "Applied electric field", "Time (ps)",
-                                        "E (V/nm)", oenv);
-            }
-        }
+        ir->efield->initOutput(fplog, nfile, fnm, bAppendFiles, oenv);
 
         /* Set up atom counts so they can be passed to actual
            trajectory-writing routines later. Also, XTC writing needs
@@ -239,11 +223,6 @@ gmx_mdoutf_t init_mdoutf(FILE *fplog, int nfile, const t_filenm fnm[],
     return of;
 }
 
-FILE *mdoutf_get_fp_field(gmx_mdoutf_t of)
-{
-    return of->fp_field;
-}
-
 ener_file_t mdoutf_get_fp_ene(gmx_mdoutf_t of)
 {
     return of->fp_ene;
@@ -413,7 +392,7 @@ void mdoutf_tng_close(gmx_mdoutf_t of)
     }
 }
 
-void done_mdoutf(gmx_mdoutf_t of)
+void done_mdoutf(gmx_mdoutf_t of, const t_inputrec *ir)
 {
     if (of->fp_ene != NULL)
     {
@@ -431,13 +410,7 @@ void done_mdoutf(gmx_mdoutf_t of)
     {
         gmx_fio_fclose(of->fp_dhdl);
     }
-    if (of->fp_field != NULL)
-    {
-        /* This is opened sometimes with xvgropen, sometimes with
-         * gmx_fio_fopen, so we use the least common denominator for closing.
-         */
-        gmx_fio_fclose(of->fp_field);
-    }
+    ir->efield->finishOutput();
     if (of->f_global != NULL)
     {
         sfree(of->f_global);
index c830e1f2b9ee67c1d7d57035b26b5e355972c187..29f0b7d8e813d8aa3c71ed371e21b48adbcebb38 100644 (file)
@@ -65,9 +65,6 @@ gmx_mdoutf_t init_mdoutf(FILE                   *fplog,
                          const gmx_output_env_t *oenv,
                          gmx_wallcycle_t         wcycle);
 
-/*! \brief Getter for file pointer */
-FILE *mdoutf_get_fp_field(gmx_mdoutf_t of);
-
 /*! \brief Getter for file pointer */
 ener_file_t mdoutf_get_fp_ene(gmx_mdoutf_t of);
 
@@ -85,7 +82,7 @@ gmx_wallcycle_t mdoutf_get_wcycle(gmx_mdoutf_t of);
 void mdoutf_tng_close(gmx_mdoutf_t of);
 
 /*! \brief Close all open output files and free the of pointer */
-void done_mdoutf(gmx_mdoutf_t of);
+void done_mdoutf(gmx_mdoutf_t of, const t_inputrec *ir);
 
 /*! \brief Routine that writes trajectory-like frames.
  *
index fe629ce7f77f25586fc2667960762fd5e6d90164..9607e4450c5793e1a11754ca5fef95e73aaadd31 100644 (file)
@@ -468,7 +468,7 @@ void init_em(FILE *fplog, const char *title,
 }
 
 //! Finalize the minimization
-static void finish_em(t_commrec *cr, gmx_mdoutf_t outf,
+static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, const t_inputrec *ir,
                       gmx_walltime_accounting_t walltime_accounting,
                       gmx_wallcycle_t wcycle)
 {
@@ -478,7 +478,7 @@ static void finish_em(t_commrec *cr, gmx_mdoutf_t outf,
         gmx_pme_send_finish(cr);
     }
 
-    done_mdoutf(outf);
+    done_mdoutf(outf, ir);
 
     em_time_end(walltime_accounting, wcycle);
 }
@@ -757,7 +757,7 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr,
              count, nrnb, wcycle, top, &top_global->groups,
              ems->s.box, &ems->s.x, &ems->s.hist,
              &ems->f, force_vir, mdatoms, enerd, fcd,
-             &ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, NULL, TRUE,
+             &ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, TRUE,
              GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES |
              GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY |
              (bNS ? GMX_FORCE_NS : 0));
@@ -1594,7 +1594,7 @@ double do_cg(FILE *fplog, t_commrec *cr, const gmx::MDLogger gmx_unused &mdlog,
         fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval);
     }
 
-    finish_em(cr, outf, walltime_accounting, wcycle);
+    finish_em(cr, outf, inputrec, walltime_accounting, wcycle);
 
     /* To print the actual number of steps we needed somewhere */
     walltime_accounting_set_nsteps_done(walltime_accounting, step);
@@ -2365,7 +2365,7 @@ double do_lbfgs(FILE *fplog, t_commrec *cr, const gmx::MDLogger gmx_unused &mdlo
         fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval);
     }
 
-    finish_em(cr, outf, walltime_accounting, wcycle);
+    finish_em(cr, outf, inputrec, walltime_accounting, wcycle);
 
     /* To print the actual number of steps we needed somewhere */
     walltime_accounting_set_nsteps_done(walltime_accounting, step);
@@ -2631,7 +2631,7 @@ double do_steep(FILE *fplog, t_commrec *cr, const gmx::MDLogger gmx_unused &mdlo
                         s_min, sqrtNumAtoms);
     }
 
-    finish_em(cr, outf, walltime_accounting, wcycle);
+    finish_em(cr, outf, inputrec, walltime_accounting, wcycle);
 
     /* To print the actual number of steps we needed somewhere */
     inputrec->nsteps = count;
@@ -2857,7 +2857,7 @@ double do_nm(FILE *fplog, t_commrec *cr, const gmx::MDLogger &mdlog,
                                                &state_work.s, &state_work.f, vir, mdatoms,
                                                nrnb, wcycle, graph, &top_global->groups,
                                                shellfc, fr, bBornRadii, t, mu_tot,
-                                               vsite, NULL);
+                                               vsite);
                     bNS = false;
                     step++;
                 }
@@ -2961,7 +2961,7 @@ double do_nm(FILE *fplog, t_commrec *cr, const gmx::MDLogger &mdlog,
         gmx_mtxio_write(ftp2fn(efMTX, nfile, fnm), sz, sz, full_matrix, sparse_matrix);
     }
 
-    finish_em(cr, outf, walltime_accounting, wcycle);
+    finish_em(cr, outf, inputrec, walltime_accounting, wcycle);
 
     walltime_accounting_set_nsteps_done(walltime_accounting, atom_index.size()*2);
 
index 7fc5ae8d521395023d622f09523c475ce50a335b..1a86663027320d84f56083715f1eca22b44001e0 100644 (file)
@@ -1000,8 +1000,7 @@ void relax_shell_flexcon(FILE *fplog, t_commrec *cr, gmx_bool bVerbose,
                          t_forcerec *fr,
                          gmx_bool bBornRadii,
                          double t, rvec mu_tot,
-                         gmx_vsite_t *vsite,
-                         FILE *fp_field)
+                         gmx_vsite_t *vsite)
 {
     int        nshell;
     t_shell   *shell;
@@ -1128,7 +1127,7 @@ void relax_shell_flexcon(FILE *fplog, t_commrec *cr, gmx_bool bVerbose,
              state->box, &state->x, &state->hist,
              force[Min], force_vir, md, enerd, fcd,
              &state->lambda, graph,
-             fr, vsite, mu_tot, t, fp_field, NULL, bBornRadii,
+             fr, vsite, mu_tot, t, NULL, bBornRadii,
              (bDoNS ? GMX_FORCE_NS : 0) | force_flags);
 
     sf_dir = 0;
@@ -1230,7 +1229,7 @@ void relax_shell_flexcon(FILE *fplog, t_commrec *cr, gmx_bool bVerbose,
                  top, groups, state->box, pos[Try], &state->hist,
                  force[Try], force_vir,
                  md, enerd, fcd, &state->lambda, graph,
-                 fr, vsite, mu_tot, t, fp_field, NULL, bBornRadii,
+                 fr, vsite, mu_tot, t, NULL, bBornRadii,
                  force_flags);
 
         if (gmx_debug_at)
index 0fb154e2146dba7702feb3c863ced44cf342c2bc..f02f5127df8df44fb2c622bfdd10a44046d038f7 100644 (file)
@@ -82,8 +82,7 @@ void relax_shell_flexcon(FILE *log, t_commrec *cr, gmx_bool bVerbose,
                          t_forcerec *fr,
                          gmx_bool bBornRadii,
                          double t, rvec mu_tot,
-                         gmx_vsite_t *vsite,
-                         FILE *fp_field);
+                         gmx_vsite_t *vsite);
 
 /* Print some final output */
 void done_shellfc(FILE *fplog, gmx_shellfc_t *shellfc, gmx_int64_t numSteps);
index 050ec0121e490209ac9fe0f176aefbd9798f2ee4..ab1b7ceac3e90c15803b305732c2f6c9ed1ffa59 100644 (file)
@@ -221,74 +221,6 @@ static void sum_forces(rvec f[], const PaddedRVecVector *forceToAdd)
     }
 }
 
-/*
- * calc_f_el calculates forces due to an electric field.
- *
- * force is kJ mol^-1 nm^-1 = e * kJ mol^-1 nm^-1 / e
- *
- * Et[] contains the parameters for the time dependent
- * part of the field.
- * Ex[] contains the parameters for
- * the spatial dependent part of the field.
- * The function should return the energy due to the electric field
- * (if any) but for now returns 0.
- *
- * WARNING:
- * There can be problems with the virial.
- * Since the field is not self-consistent this is unavoidable.
- * For neutral molecules the virial is correct within this approximation.
- * For neutral systems with many charged molecules the error is small.
- * But for systems with a net charge or a few charged molecules
- * the error can be significant when the field is high.
- * Solution: implement a self-consistent electric field into PME.
- */
-static void calc_f_el(FILE *fp, int  start, int homenr,
-                      real charge[], rvec f[],
-                      t_cosines Ex[], t_cosines Et[], double t)
-{
-    rvec Ext;
-    real t0;
-    int  i, m;
-
-    for (m = 0; (m < DIM); m++)
-    {
-        if (Et[m].n > 0)
-        {
-            if (Et[m].n == 3)
-            {
-                t0     = Et[m].a[1];
-                Ext[m] = std::cos(Et[m].a[0]*(t-t0))*std::exp(-gmx::square(t-t0)/(2.0*gmx::square(Et[m].a[2])));
-            }
-            else
-            {
-                Ext[m] = std::cos(Et[m].a[0]*t);
-            }
-        }
-        else
-        {
-            Ext[m] = 1.0;
-        }
-        if (Ex[m].n > 0)
-        {
-            /* Convert the field strength from V/nm to MD-units */
-            Ext[m] *= Ex[m].a[0]*FIELDFAC;
-            for (i = start; (i < start+homenr); i++)
-            {
-                f[i][m] += charge[i]*Ext[m];
-            }
-        }
-        else
-        {
-            Ext[m] = 0;
-        }
-    }
-    if (fp != NULL)
-    {
-        fprintf(fp, "%10g  %10g  %10g  %10g #FIELD\n", t,
-                Ext[XX]/FIELDFAC, Ext[YY]/FIELDFAC, Ext[ZZ]/FIELDFAC);
-    }
-}
-
 static void calc_virial(int start, int homenr, rvec x[], rvec f[],
                         tensor vir_part, t_graph *graph, matrix box,
                         t_nrnb *nrnb, const t_forcerec *fr, int ePBC)
@@ -786,12 +718,11 @@ void do_force_cutsVERLET(FILE *fplog, t_commrec *cr,
                          real *lambda, t_graph *graph,
                          t_forcerec *fr, interaction_const_t *ic,
                          gmx_vsite_t *vsite, rvec mu_tot,
-                         double t, FILE *field, gmx_edsam_t ed,
+                         double t, gmx_edsam_t ed,
                          gmx_bool bBornRadii,
                          int flags)
 {
     int                 cg1, i, j;
-    int                 start, homenr;
     double              mu[2*DIM];
     gmx_bool            bStateChanged, bNS, bFillGrid, bCalcCGCM;
     gmx_bool            bDoForces, bUseGPU, bUseOrEmulGPU;
@@ -808,8 +739,8 @@ void do_force_cutsVERLET(FILE *fplog, t_commrec *cr,
     cycles_wait_gpu = 0;
     nbv             = fr->nbv;
 
-    start  = 0;
-    homenr = mdatoms->homenr;
+    const int start  = 0;
+    const int homenr = mdatoms->homenr;
 
     clear_mat(vir_force);
 
@@ -1450,13 +1381,10 @@ void do_force_cutsVERLET(FILE *fplog, t_commrec *cr,
 
     if (bDoForces)
     {
-        if (inputrecElecField(inputrec))
+        /* Compute forces due to electric field */
+        if (fr->efield != nullptr)
         {
-            /* Compute forces due to electric field */
-            calc_f_el(MASTER(cr) ? field : NULL,
-                      start, homenr, mdatoms->chargeA,
-                      as_rvec_array(fr->f_novirsum->data()),
-                      inputrec->ex, inputrec->et, t);
+            fr->efield->calculateForces(cr, mdatoms, fr->f_novirsum, t);
         }
 
         /* If we have NoVirSum forces, but we do not calculate the virial,
@@ -1538,19 +1466,18 @@ void do_force_cutsGROUP(FILE *fplog, t_commrec *cr,
                         gmx_enerdata_t *enerd, t_fcdata *fcd,
                         real *lambda, t_graph *graph,
                         t_forcerec *fr, gmx_vsite_t *vsite, rvec mu_tot,
-                        double t, FILE *field, gmx_edsam_t ed,
+                        double t, gmx_edsam_t ed,
                         gmx_bool bBornRadii,
                         int flags)
 {
     int        cg0, cg1, i, j;
-    int        start, homenr;
     double     mu[2*DIM];
     gmx_bool   bStateChanged, bNS, bFillGrid, bCalcCGCM;
     gmx_bool   bDoForces;
     float      cycles_pme, cycles_force;
 
-    start  = 0;
-    homenr = mdatoms->homenr;
+    const int  start  = 0;
+    const int  homenr = mdatoms->homenr;
 
     clear_mat(vir_force);
 
@@ -1812,13 +1739,10 @@ void do_force_cutsGROUP(FILE *fplog, t_commrec *cr,
 
     if (bDoForces)
     {
-        if (inputrecElecField(inputrec))
+        /* Compute forces due to electric field */
+        if (fr->efield != nullptr)
         {
-            /* Compute forces due to electric field */
-            calc_f_el(MASTER(cr) ? field : NULL,
-                      start, homenr, mdatoms->chargeA,
-                      as_rvec_array(fr->f_novirsum->data()),
-                      inputrec->ex, inputrec->et, t);
+            fr->efield->calculateForces(cr, mdatoms, fr->f_novirsum, t);
         }
 
         /* Communicate the forces */
@@ -1919,7 +1843,7 @@ void do_force(FILE *fplog, t_commrec *cr,
               std::vector<real> *lambda, t_graph *graph,
               t_forcerec *fr,
               gmx_vsite_t *vsite, rvec mu_tot,
-              double t, FILE *field, gmx_edsam_t ed,
+              double t, gmx_edsam_t ed,
               gmx_bool bBornRadii,
               int flags)
 {
@@ -1948,7 +1872,7 @@ void do_force(FILE *fplog, t_commrec *cr,
                                 lambda->data(), graph,
                                 fr, fr->ic,
                                 vsite, mu_tot,
-                                t, field, ed,
+                                t, ed,
                                 bBornRadii,
                                 flags);
             break;
@@ -1963,7 +1887,7 @@ void do_force(FILE *fplog, t_commrec *cr,
                                enerd, fcd,
                                lambda->data(), graph,
                                fr, vsite, mu_tot,
-                               t, field, ed,
+                               t, ed,
                                bBornRadii,
                                flags);
             break;
@@ -2764,10 +2688,6 @@ void init_md(FILE *fplog,
             please_cite(fplog, "Goga2012");
         }
     }
-    if ((ir->et[XX].n > 0) || (ir->et[YY].n > 0) || (ir->et[ZZ].n > 0))
-    {
-        please_cite(fplog, "Caleman2008a");
-    }
     init_nrnb(nrnb);
 
     if (nfile != -1)
index 98c2d353d53d20564996cd825005bda430f337db..e5edbb1eae7d66f775fcc5f12b275c39d5ec8bcb 100644 (file)
@@ -662,7 +662,7 @@ double do_tpi(FILE *fplog, t_commrec *cr, const gmx::MDLogger gmx_unused &mdlog,
                      state_global->box, &state_global->x, &state_global->hist,
                      &f, force_vir, mdatoms, enerd, fcd,
                      &state_global->lambda,
-                     NULL, fr, NULL, mu_tot, t, NULL, NULL, FALSE,
+                     NULL, fr, NULL, mu_tot, t, NULL, FALSE,
                      GMX_FORCE_NONBONDED | GMX_FORCE_ENERGY |
                      (bNS ? GMX_FORCE_DYNAMICBOX | GMX_FORCE_NS : 0) |
                      (bStateChanged ? GMX_FORCE_STATECHANGED : 0));
index 5792041313c618aaee1b9e192dc2c1ad8774bbfc..6440dd85c46db17e5aa9d68c8e9fc8fc867c071d 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "mdmodules.h"
 
+#include "gromacs/applied-forces/electricfield.h"
 #include "gromacs/mdtypes/inputrec.h"
 #include "gromacs/utility/smalloc.h"
 
@@ -61,14 +62,17 @@ class MDModules::Impl
         {
             if (ir_ == nullptr)
             {
+                field_ = createElectricFieldModule();
                 snew(ir_, 1);
                 snew(ir_->fepvals, 1);
                 snew(ir_->expandedvals, 1);
                 snew(ir_->simtempvals, 1);
+                ir_->efield = field_.get();
             }
         }
 
-        t_inputrec *ir_;
+        std::unique_ptr<IInputRecExtension>  field_;
+        t_inputrec                          *ir_;
 };
 
 MDModules::MDModules() : impl_(new Impl)
index a951136c1efebd4bcc9e1124cfa17b5cafb6d82a..d43cc96755ba0990883604b0e5bc1b6c0a6fb607 100644 (file)
@@ -55,7 +55,28 @@ namespace gmx
  *
  * This class acts as a central place for constructing t_inputrec (and possibly
  * other mdrun structures in the future) and wiring up dependencies between
- * modules that are referenced from these structures.
+ * modules that are referenced from these structures.  This class owns all such
+ * modules, and needs to remain in existence as long as the returned data
+ * structures are in use.  Ideally, it is also the only place that creates
+ * instances of these modules (outside test code).
+ *
+ * The general idea is that each module takes care of its own data rather than
+ * mdrun having to know about all the details of each type of force calculation.
+ * Initially this is applied for simple things like electric field calculations
+ * but later more complex forces will be supported too.
+ *
+ * The current approach uses t_inputrec and IInputRecExtension to pass
+ * references to the modules to other code to avoid changing many function
+ * signatures.  Also, the current usage means that nearly every use of
+ * t_inputrec (in particular, reading it from mdp or tpr files) needs to be
+ * initialized through MDModules for correct functionality.  For the future, a
+ * better approach would be to pass around a reference to MDModules instead and
+ * call it directly for cases that are not related to t_inputrec functionality.
+ * This (and other refactoring) would allow simplifying IInputRecExtension.
+ * IForceProvider is the other interface currently used to interact with these
+ * modules.  Also, all the places where these interfaces are used should become
+ * loops over a container of these interfaces, instead of the current single
+ * pointer.
  *
  * \inlibraryapi
  * \ingroup module_mdrunutility
index 07b292ea07d799ae130186ae7fafa5268ec6fa05..4b1c0de83d3628fd25f299d11400be51a9b27239 100644 (file)
 
 #ifdef __cplusplus
 extern "C" {
-#endif
-#if 0
-} /* fixes auto-indentation problems */
+
+struct t_mdatoms;
+struct t_commrec;
+
+/*! \libinternal \brief
+ * Interface for a component that provides forces during MD.
+ *
+ * This is typically part of a larger structure/class managing its own
+ * data, such that it has the information on what to do stored locally.
+ * \todo Implement returning of energy and dH/dlambda.
+ * \inlibraryapi
+ */
+struct IForceProvider
+{
+    public:
+        /*! \brief Compute forces
+         *
+         * \todo This is specific for electric fields and needs to be generalized.
+         * \param[in]    cr      Communication record for parallel operations
+         * \param[in]    mdatoms Atom information
+         * \param[inout] force   The forces
+         * \param[in]    t       The actual time in the simulation (ps)
+         */
+        virtual void calculateForces(const t_commrec  *cr,
+                                     const t_mdatoms  *mdatoms,
+                                     PaddedRVecVector *force,
+                                     double            t) = 0;
+
+    protected:
+        ~IForceProvider() {}
+};
 #endif
 
 /* Abstract type for PME that is defined only in the routine that use them. */
@@ -433,8 +461,10 @@ typedef struct t_forcerec {
     struct bonded_threading_t *bonded_threading;
 
     /* Ewald correction thread local virial and energy data */
-    int                  nthread_ewc;
-    ewald_corr_thread_t *ewc_t;
+    int                    nthread_ewc;
+    ewald_corr_thread_t   *ewc_t;
+
+    struct IForceProvider *efield;
 } t_forcerec;
 
 /* Important: Starting with Gromacs-4.6, the values of c6 and c12 in the nbfp array have
index aa4b2502526beb5d775af8a9866c530e96af9db1..7173ae78f270ba34c515af8bca02fd6db0e4cf3a 100644 (file)
@@ -277,28 +277,6 @@ static void done_pull_params(pull_params_t *pull)
 
 void done_inputrec(t_inputrec *ir)
 {
-    int m;
-
-    for (m = 0; (m < DIM); m++)
-    {
-        if (ir->ex[m].a)
-        {
-            sfree(ir->ex[m].a);
-        }
-        if (ir->ex[m].phi)
-        {
-            sfree(ir->ex[m].phi);
-        }
-        if (ir->et[m].a)
-        {
-            sfree(ir->et[m].a);
-        }
-        if (ir->et[m].phi)
-        {
-            sfree(ir->et[m].phi);
-        }
-    }
-
     sfree(ir->opts.nrdf);
     sfree(ir->opts.ref_t);
     sfree(ir->opts.annealing);
@@ -469,40 +447,6 @@ static void pr_matrix(FILE *fp, int indent, const char *title, const rvec *m,
     }
 }
 
-static void pr_cosine(FILE *fp, int indent, const char *title, const t_cosines *cos,
-                      gmx_bool bMDPformat)
-{
-    int j;
-
-    if (bMDPformat)
-    {
-        fprintf(fp, "%s = %d\n", title, cos->n);
-    }
-    else
-    {
-        indent = pr_title(fp, indent, title);
-        pr_indent(fp, indent);
-        fprintf(fp, "n = %d\n", cos->n);
-        if (cos->n > 0)
-        {
-            pr_indent(fp, indent+2);
-            fprintf(fp, "a =");
-            for (j = 0; (j < cos->n); j++)
-            {
-                fprintf(fp, " %e", cos->a[j]);
-            }
-            fprintf(fp, "\n");
-            pr_indent(fp, indent+2);
-            fprintf(fp, "phi =");
-            for (j = 0; (j < cos->n); j++)
-            {
-                fprintf(fp, " %e", cos->phi[j]);
-            }
-            fprintf(fp, "\n");
-        }
-    }
-}
-
 #define PS(t, s) pr_str(fp, indent, t, s)
 #define PI(t, s) pr_int(fp, indent, t, s)
 #define PSTEP(t, s) pr_int64(fp, indent, t, s)
@@ -1003,12 +947,7 @@ void pr_inputrec(FILE *fp, int indent, const char *title, const t_inputrec *ir,
         }
 
         /* ELECTRIC FIELDS */
-        pr_cosine(fp, indent, "E-x", &(ir->ex[XX]), bMDPformat);
-        pr_cosine(fp, indent, "E-xt", &(ir->et[XX]), bMDPformat);
-        pr_cosine(fp, indent, "E-y", &(ir->ex[YY]), bMDPformat);
-        pr_cosine(fp, indent, "E-yt", &(ir->et[YY]), bMDPformat);
-        pr_cosine(fp, indent, "E-z", &(ir->ex[ZZ]), bMDPformat);
-        pr_cosine(fp, indent, "E-zt", &(ir->et[ZZ]), bMDPformat);
+        ir->efield->printParameters(fp, indent);
 
         /* ION/WATER SWAPPING FOR COMPUTATIONAL ELECTROPHYSIOLOGY */
         PS("swapcoords", ESWAPTYPE(ir->eSwapCoords));
@@ -1085,23 +1024,6 @@ static void cmp_grpopts(FILE *fp, const t_grpopts *opt1, const t_grpopts *opt2,
     }
 }
 
-
-static void cmp_cosines(FILE *fp, const char *s, const t_cosines c1[DIM], const t_cosines c2[DIM], real ftol, real abstol)
-{
-    int  i, m;
-    char buf[256];
-
-    for (m = 0; (m < DIM); m++)
-    {
-        sprintf(buf, "inputrec->%s[%d]", s, m);
-        cmp_int(fp, buf, 0, c1->n, c2->n);
-        for (i = 0; (i < std::min(c1->n, c2->n)); i++)
-        {
-            cmp_real(fp, buf, i, c1->a[i], c2->a[i], ftol, abstol);
-            cmp_real(fp, buf, i, c1->phi[i], c2->phi[i], ftol, abstol);
-        }
-    }
-}
 static void cmp_pull(FILE *fp)
 {
     fprintf(fp, "WARNING: Both files use COM pulling, but comparing of the pull struct is not implemented (yet). The pull parameters could be the same or different.\n");
@@ -1329,8 +1251,7 @@ void cmp_inputrec(FILE *fp, const t_inputrec *ir1, const t_inputrec *ir2, real f
     cmp_real(fp, "inputrec->userreal3", -1, ir1->userreal3, ir2->userreal3, ftol, abstol);
     cmp_real(fp, "inputrec->userreal4", -1, ir1->userreal4, ir2->userreal4, ftol, abstol);
     cmp_grpopts(fp, &(ir1->opts), &(ir2->opts), ftol, abstol);
-    cmp_cosines(fp, "ex", ir1->ex, ir2->ex, ftol, abstol);
-    cmp_cosines(fp, "et", ir1->et, ir2->et, ftol, abstol);
+    ir1->efield->compare(fp, ir2->efield, ftol, abstol);
 }
 
 void comp_pull_AB(FILE *fp, pull_params_t *pull, real ftol, real abstol)
@@ -1367,11 +1288,6 @@ gmx_bool inputrecNeedMutot(const t_inputrec *ir)
             (ir->ewald_geometry == eewg3DC || ir->epsilon_surface != 0));
 }
 
-gmx_bool inputrecElecField(const t_inputrec *ir)
-{
-    return (ir->ex[XX].n > 0 || ir->ex[YY].n > 0 || ir->ex[ZZ].n > 0);
-}
-
 gmx_bool inputrecExclForces(const t_inputrec *ir)
 {
     return (EEL_FULL(ir->coulombtype) || (EEL_RF(ir->coulombtype)) ||
index 897c0d90a587b9fe4342957eea7eda5fff0925cd..02afca47c6538c62fce0da3532a46b15af5c739e 100644 (file)
 #include "gromacs/utility/basedefinitions.h"
 #include "gromacs/utility/real.h"
 
-struct pull_params_t;
+#define EGP_EXCL  (1<<0)
+#define EGP_TABLE (1<<1)
 
-typedef struct {
-    //! Number of terms
-    int   n;
-    //! Coeffients (V / nm)
-    real *a;
-    //! Phase angles
-    real *phi;
-} t_cosines;
+struct gmx_output_env_t;
+struct pull_params_t;
+struct t_commrec;
+struct t_fileio;
+struct t_filenm;
+struct t_forcerec;
+struct t_inpfile;
+struct warninp;
+
+namespace gmx
+{
 
-typedef struct {
-    real E0;            /* Field strength (V/nm)                        */
-    real omega;         /* Frequency (1/ps)                             */
-    real t0;            /* Centre of the Gaussian pulse (ps)            */
-    real sigma;         /* Width of the Gaussian pulse (FWHM) (ps)      */
-} t_efield;
+/*! \libinternal \brief
+ * Inputrec extension interface for a mdrun module.
+ *
+ * This interface provides a mechanism for additional modules to contribute
+ * data that traditionally has been kept in t_inputrec. This is essentially
+ * parameters read from an mdp file and subsequently stored in a tpr file.
+ * The functionality to broadcast, compare, and print these parameters
+ * currently needs to be provided separately, but this should simplify
+ * significantly if/when we move to a more structured file format (both for mdp
+ * and tpr) that allows a generic representation for code that does not need to
+ * know the interpretation of the values.
+ *
+ * For now, this interface also includes some unrelated methods (initOutput(),
+ * finishOutput(), initForcerec()), because t_inputrec is used as a container
+ * to pass references to the modules around.
+ * See MDModules for more information on the general approach and future
+ * considerations.
+ */
+class IInputRecExtension
+{
+    public:
+        virtual ~IInputRecExtension() {}
+
+        /*! \brief Read or write tpr file
+         *
+         * Read or write the necessary data from a tpr file. The routine is responsible
+         * for consistency, such that all data belonging to this module is read or written.
+         * \param[inout] fio Gromacs file descriptor
+         * \param[in]    bRead boolean determines whether we are reading or writing
+         */
+        virtual void doTpxIO(t_fileio *fio, bool bRead) = 0;
+
+        /*! \brief
+         * Extracts parameters from mdp file.
+         *
+         * \param[inout] ninp_p Number of inpfile elements before and after processing
+         * \param[inout] inp_p  The inpfile elements corresponding to lines in the mdp
+         * \param[inout] wi     Structure for managing warnings in grompp
+         */
+        virtual void readMdp(int *ninp_p, t_inpfile **inp_p, warninp *wi) = 0;
+
+        /*! \brief Broadcast input parameters to all ranks
+         *
+         * \param[in] cr  Communication record, gromacs structure
+         */
+        virtual void broadCast(const t_commrec *cr)     = 0;
+
+        /*! \brief compare a section of two input record structures
+         *
+         * Routine is used in gmx check.
+         * \param[in]    fp     File pointer
+         * \param[inout] field2 Electric field
+         * \param[in]    reltol Relative tolerance
+         * \param[in]    abstol Absolute tolerance
+         */
+        virtual void compare(FILE                          *fp,
+                             const gmx::IInputRecExtension *field2,
+                             real                           reltol,
+                             real                           abstol)  = 0;
+
+        /*! \brief Print parameters belonging to this class to a file
+         *
+         * \param[in] fp     File pointer
+         * \param[in] indent Initial indentation level for printing
+         */
+        virtual void printParameters(FILE *fp, int indent)           = 0;
+
+        /*! \brief Initiate output parameters
+         *
+         * \param[in] fplog File pointer for log messages
+         * \param[in] nfile Number of files
+         * \param[in] fnm   Array of filenames and properties
+         * \param[in] bAppendFiles Whether or not we should append to files
+         * \param[in] oenv  The output environment for xvg files
+         */
+        virtual void initOutput(FILE *fplog, int nfile, const t_filenm fnm[],
+                                bool bAppendFiles, const gmx_output_env_t *oenv) = 0;
+
+        //! Finalize output
+        virtual void finishOutput()               = 0;
+
+        /*! \brief Set/initiate relevant options in the forcerec structure
+         *
+         * \param[inout] fr The forcerec structure
+         */
+        virtual void initForcerec(t_forcerec *fr) = 0;
+};
 
-#define EGP_EXCL  (1<<0)
-#define EGP_TABLE (1<<1)
+} // namespace gmx
 
 typedef struct t_grpopts {
     int       ngtc;           /* # T-Coupl groups                        */
@@ -371,32 +455,31 @@ struct t_inputrec
     struct pull_t        *pull_work;         /* The COM pull force calculation data structure; TODO this pointer should live somewhere else */
 
     /* Enforced rotation data */
-    gmx_bool        bRot;                    /* Calculate enforced rotation potential(s)?    */
-    t_rot          *rot;                     /* The data for enforced rotation potentials    */
-
-    int             eSwapCoords;             /* Do ion/water position exchanges (CompEL)?    */
-    t_swapcoords   *swap;
-
-    gmx_bool        bIMD;                    /* Allow interactive MD sessions for this .tpr? */
-    t_IMD          *imd;                     /* Interactive molecular dynamics               */
-
-    real            cos_accel;               /* Acceleration for viscosity calculation       */
-    tensor          deform;                  /* Triclinic deformation velocities (nm/ps)     */
-    int             userint1;                /* User determined parameters                   */
-    int             userint2;
-    int             userint3;
-    int             userint4;
-    real            userreal1;
-    real            userreal2;
-    real            userreal3;
-    real            userreal4;
-    t_grpopts       opts;          /* Group options                            */
-    t_cosines       ex[DIM];       /* Electric field stuff     (spatial part)          */
-    t_cosines       et[DIM];       /* Electric field stuff     (time part)             */
-    gmx_bool        bQMMM;         /* QM/MM calculation                            */
-    int             QMconstraints; /* constraints on QM bonds                      */
-    int             QMMMscheme;    /* Scheme: ONIOM or normal                      */
-    real            scalefactor;   /* factor for scaling the MM charges in QM calc.*/
+    gmx_bool                 bRot;           /* Calculate enforced rotation potential(s)?    */
+    t_rot                   *rot;            /* The data for enforced rotation potentials    */
+
+    int                      eSwapCoords;    /* Do ion/water position exchanges (CompEL)?    */
+    t_swapcoords            *swap;
+
+    gmx_bool                 bIMD;           /* Allow interactive MD sessions for this .tpr? */
+    t_IMD                   *imd;            /* Interactive molecular dynamics               */
+
+    real                     cos_accel;      /* Acceleration for viscosity calculation       */
+    tensor                   deform;         /* Triclinic deformation velocities (nm/ps)     */
+    int                      userint1;       /* User determined parameters                   */
+    int                      userint2;
+    int                      userint3;
+    int                      userint4;
+    real                     userreal1;
+    real                     userreal2;
+    real                     userreal3;
+    real                     userreal4;
+    t_grpopts                opts;          /* Group options                           */
+    gmx::IInputRecExtension *efield;        /* Applied electric field                       */
+    gmx_bool                 bQMMM;         /* QM/MM calculation                            */
+    int                      QMconstraints; /* constraints on QM bonds                      */
+    int                      QMMMscheme;    /* Scheme: ONIOM or normal                      */
+    real                     scalefactor;   /* factor for scaling the MM charges in QM calc.*/
 
     /* Fields for removed features go here (better caching) */
     gmx_bool        bAdress;       // Whether AdResS is enabled - always false if a valid .tpr was read
@@ -465,8 +548,6 @@ gmx_bool inputrecNeedMutot(const t_inputrec *ir);
 
 gmx_bool inputrecTwinRange(const t_inputrec *ir);
 
-gmx_bool inputrecElecField(const t_inputrec *ir);
-
 gmx_bool inputrecExclForces(const t_inputrec *ir);
 
 gmx_bool inputrecNptTrotter(const t_inputrec *ir);
index e8e56c831766ec47af1b1e89b3187320e673ca6f..b7d924fa0273f8cd8b45329716513bbc9718c7f1 100644 (file)
@@ -1067,7 +1067,7 @@ double gmx::do_md(FILE *fplog, t_commrec *cr, const gmx::MDLogger &mdlog,
                                 state, &f, force_vir, mdatoms,
                                 nrnb, wcycle, graph, groups,
                                 shellfc, fr, bBornRadii, t, mu_tot,
-                                vsite, mdoutf_get_fp_field(outf));
+                                vsite);
         }
         else
         {
@@ -1080,7 +1080,7 @@ double gmx::do_md(FILE *fplog, t_commrec *cr, const gmx::MDLogger &mdlog,
                      state->box, &state->x, &state->hist,
                      &f, force_vir, mdatoms, enerd, fcd,
                      &state->lambda, graph,
-                     fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii,
+                     fr, vsite, mu_tot, t, ed, bBornRadii,
                      (bNS ? GMX_FORCE_NS : 0) | force_flags);
         }
 
@@ -1802,7 +1802,7 @@ double gmx::do_md(FILE *fplog, t_commrec *cr, const gmx::MDLogger &mdlog,
         }
     }
 
-    done_mdoutf(outf);
+    done_mdoutf(outf, ir);
 
     if (bPMETune)
     {